City of Berkeley · Administrative Regulation 10.2 · Method & sources
What Berkeley’s sidewalk-objects regulation actually says, where the zoning data comes from, and exactly how the map was built.
← Open the interactive mapAdministrative Regulation 10.2 is issued by Berkeley’s City Manager, not by the City Council — it is an administrative rule implementing the municipal code, originally dated November 13, 2018 and most recently reissued in January 2025. It governs “temporary non-commercial objects” (TNC objects): personal belongings placed on public sidewalks and parklets. Despite the bureaucratic name, this is the rule that determines where an unhoused person’s tent, cart, or bedding may lawfully sit on a Berkeley sidewalk, which is why the map reads it through that lens.
The regulation draws one bright line by zoning: on sidewalks in residential districts, TNC objects are prohibited outright, with an exception for objects actively in transit. In commercial and manufacturing districts they are permitted, but only within tight limits — an object may not be left unattended for more than two hours, must fit within a nine-square-foot footprint and stand under five feet tall, must sit at least three feet clear of building entrances, and must leave a pedestrian path of travel of six feet (ten feet on wide sidewalks). Nothing may be placed in parklets, in BART access corridors, at blue or white curb zones, or in posted no-object areas. Objects that violate these rules can be moved or removed by the city after notice.
All geometry comes from the City of Berkeley’s own GIS, the same services that power the city’s Community GIS Portal. Three layers of the Planning/Land_Use_Planning ArcGIS map service were retrieved on August 27, 2026: the Zoning Districts polygon layer (layer 41 — 42 multipolygon features covering 41 district codes), the street centerline layer (layer 42 — 6,971 segments with street names, types, and speeds), and the city boundary layer (layer 43). Geometry was requested in WGS-84 with roughly five-meter simplification and five-decimal coordinates, which keeps the page light while staying accurate at neighborhood scale.
Each zoning district was assigned to one of five categories according to what AR 10.2 says about it. Acreage was computed from the polygon geometry itself.
| Category | Districts | Under AR 10.2 | Acres |
|---|---|---|---|
| Residential | R-1 through R-5 (and hillside variants), R-S, ES-R | Belongings prohibited on sidewalks | 3,680 |
| Mixed-use residential | MU-R, R-SMU, R-BMU | Ambiguous — likely treated as residential | 138 |
| Commercial | All 16 C-* districts | Allowed, with limits | 357 |
| Manufacturing | M, MM, MU-LI, MRD | Allowed, with limits | 313 |
| Parks, campus & special plan | U, X, SP | Outside the rule’s categories — separate laws | 448 |
Residential districts cover about 75 percent of Berkeley’s zoned land. The land where AR 10.2 permits belongings on sidewalks at all — commercial plus manufacturing — amounts to about 670 acres, concentrated along Shattuck, University, San Pablo, Telegraph, Adeline, Solano, and the West Berkeley industrial flats.
The map is a single self-contained HTML file with no server, no database, and no build step required to view it. The zoning polygons, street centerlines, boundary, and labels are embedded directly in the page as GeoJSON, and Leaflet 1.9.4 — inlined into the same file — renders them as interactive vector layers. Because everything is embedded, the file works offline and can be hosted anywhere static files can, which is how this site is published.
A few details of the pipeline are worth recording. Street segments were merged by name and type into one feature per street, and label points were placed along each street at intervals, keeping only points that fall within about eighty meters of a zoning polygon — a practical test for “inside Berkeley,” since street rights-of-way are excluded from the zoning polygons themselves. Labels appear in three tiers as you zoom: nine major arterials first, the remaining arterials next, and every named street when zoomed well in; hovering any street shows its name at any zoom. District acreage uses an equirectangular projection of each ring with the shoelace formula, accurate to well under a percent at city scale. The five category colors were chosen in OKLCH and validated programmatically — in both light and dark themes — for color-vision-deficiency separation and contrast, which is also why identity is never carried by color alone: every district popup and the table below the legend name the category in text.
An optional OpenStreetMap raster basemap can be toggled under the legend for extra street context. It loads in the standalone copies of the map (like this site); on the Claude-hosted artifact version, the page’s security policy blocks outside tile servers, so the map falls back to its built-in vector streets automatically.
The pink pins are locations photographed in the field. Each one is derived entirely from the photograph: tools/survey_sites.py reads the GPS coordinates, timestamp, and compass heading out of the image’s EXIF data, writes a web-sized copy into photos/, and records the result in sites.json, which is embedded into the map at build time. Re-running the script over a folder of new photos regenerates the layer; any label or notes written into sites.json by hand are preserved across runs.
Placing a photo in a zoning district takes one step that deserves stating plainly. Field photos are taken from the street, and the city’s zoning polygons stop at the property line — the right-of-way is not zoned — so a photographed point almost never falls inside a district. It typically sits six to twenty-five meters outside one. The script therefore tests each point against every polygon, and where it falls inside none, attributes it to the nearest district within sixty meters, measured point-to-edge on a local equirectangular projection. The popup states that distance rather than hiding it. Where a district in a different AR 10.2 category is within twenty meters of the nearest one — a point standing in a street with different zoning on either side — the site is flagged as being between two districts and both are named, because the map cannot tell from a coordinate which frontage a given stretch of sidewalk belongs to.
A pin marks where a photograph was taken. It is not a finding that the spot is lawful, available, safe, or usable, and nothing in the photograph or its metadata could establish that. What the layer does is put a specific place next to the district reading that applies around it, so the two can be checked against each other on the ground.
Two further layers mark public drinking water and public toilets. Both come from OpenStreetMap, queried through the Overpass API on September 13, 2026 for every amenity=drinking_water and amenity=toilets feature in a box around the city, then clipped to points within a hundred and twenty meters of a zoning polygon — the same practical test for “inside Berkeley” the street labels use, and the one that keeps Albany, Kensington, Emeryville and north Oakland out. That produced a hundred drinking water points and sixty-eight toilets; two tagged private or staff-only were dropped, leaving a hundred and sixty-six on the map. The raw result is committed at data/osm-amenities.psv with the date it was retrieved, so the map builds without depending on a live third-party API and every point stays traceable.
Each pin carries the identifier of the OpenStreetMap element it came from and links back to it, along with whatever that element records: who operates it, opening hours, wheelchair access, whether a fountain takes a bottle, what kind of toilet it is, and the date a mapper last checked it on the ground. Access is stated in plain words rather than left as a tag — “Open access,” “Customers only,” “School hours only” — because walking to a locked door costs more than reading one extra line. The badges appear only above zoom 14.5; a hundred and sixty-six of them across the whole city is noise rather than information.
This is community-maintained data and it ages. A fountain may be shut off, a restroom locked, a porta-potty removed; roughly a fifth of these points carry a survey date and the rest do not. The city’s own Citywide Restroom Study of October 2020 lists some forty-seven city-operated restrooms with their hours, including the park and porta-potty locations open around the clock; it is the better authority on what the city runs and when, but it gives no coordinates, so it is cited here as corroboration rather than plotted. Berkeley’s own open data portal publishes no restroom or fountain dataset. The right place to fix an error in these layers is OpenStreetMap itself, which is what CONTRIBUTING.md asks contributors to do.
Colors fill whole zoning districts, but the regulation itself applies to the public sidewalks within them — a green district means AR 10.2 permits a compliant object on its sidewalks, not on private lots. Click any district for its code, name, and what the rule says there; click legend rows to isolate categories (turning residential off leaves precisely the areas where belongings could lawfully sit); the B markers are the three BART stations, whose access corridors are excluded everywhere; the pink pins are surveyed sites — click one for the field photo and the district it abuts. Zoom past 14.5 and the teal W and orange WC badges appear: drinking water and toilets, each linking back to the OpenStreetMap record behind it.
This is information, not legal advice, and AR 10.2 is not a camping permit. Camping and lodging remain restricted by other city, state, and university rules; Berkeley’s separate encampment policy still allows closures and removals anywhere on health-and-safety grounds; and city parks prohibit camping under their own provisions. Boundaries are simplified about five meters for display and should be verified against the city’s official zoning viewer before anything consequential. Two quirks of the source data are preserved rather than corrected: the central UC campus appears with an R-5 designation in the city’s layer even though university land is largely exempt from local zoning, and the R-2 district is stored as two separate features (merged in the acreage figures).
Administrative Regulation 10.2 (City of Berkeley, City Manager’s Office, revised January 2025) · Community GIS Portal · Land Use Planning map service (Zoning Districts, layer 41; street centerlines, layer 42; boundary, layer 43) · City of Berkeley Geospatial Hub · OpenStreetMap contributors, ODbL 1.0 (drinking water and toilets, retrieved September 13, 2026, and basemap tiles when enabled) · City of Berkeley, Citywide Restroom Study (October 2020).