@kahwee/sf-map-svg 4.0.1 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +9 -13
  3. package/dist/data/guide/coast.json +1 -1
  4. package/dist/data/guide/landmarks.json +1 -1
  5. package/dist/data/guide/neighborhoods-realtor.json +1 -1
  6. package/dist/data/stations.d.ts +2 -2
  7. package/dist/data/types.d.ts +8 -1
  8. package/dist/src/api.d.ts +1 -1
  9. package/dist/src/api.js +1 -1
  10. package/dist/src/appearance.d.ts +5 -0
  11. package/dist/src/appearance.js +54 -0
  12. package/dist/src/configuration.js +50 -25
  13. package/dist/src/controller-types.d.ts +53 -6
  14. package/dist/src/district-morph.d.ts +17 -0
  15. package/dist/src/district-morph.js +148 -0
  16. package/dist/src/explorer-core.d.ts +14 -2
  17. package/dist/src/explorer-core.js +233 -52
  18. package/dist/src/features.d.ts +6 -0
  19. package/dist/src/features.js +11 -1
  20. package/dist/src/guide-map.js +1 -1
  21. package/dist/src/guide-static.js +3 -3
  22. package/dist/src/layer-transition.d.ts +18 -0
  23. package/dist/src/layer-transition.js +102 -0
  24. package/dist/src/layers.d.ts +9 -7
  25. package/dist/src/layers.js +28 -18
  26. package/dist/src/map-core.d.ts +14 -0
  27. package/dist/src/map-core.js +11 -5
  28. package/dist/src/map.js +125 -20
  29. package/dist/src/overlays.d.ts +3 -4
  30. package/dist/src/overlays.js +5 -1
  31. package/dist/src/static-animation.d.ts +13 -0
  32. package/dist/src/static-animation.js +36 -0
  33. package/dist/src/static.d.ts +1 -1
  34. package/dist/src/static.js +31 -2
  35. package/dist/src/transit.js +2 -1
  36. package/dist/src/types.d.ts +33 -2
  37. package/dist/src/validation.js +2 -0
  38. package/docs/API.md +85 -0
  39. package/docs/api-audit.md +3 -1
  40. package/docs/consumer-integration.md +1 -1
  41. package/docs/developer-guide.md +139 -0
  42. package/docs/guide-bundle-report.md +4 -4
  43. package/llms-full.txt +1979 -0
  44. package/llms.txt +25 -0
  45. package/package.json +12 -5
package/CHANGELOG.md CHANGED
@@ -4,6 +4,42 @@ User-visible changes are recorded here. Unreleased entries describe changes on `
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 4.2.0 — 2026-10-01
8
+
9
+ - Reuse one native dropdown treatment across Pages, with an inset chevron, a reserved end gutter, and preserved labels, keyboard behavior, and mobile pickers.
10
+ - Strengthen the playground with strict TypeScript, checked JavaScript/TypeScript snippets, versioned design links, persistent explicit layer choices and independent static rendering. Keep mobile controls unobstructed and picker labels legible in dark mode.
11
+ - Express explicit configuration resets for consumers using `exactOptionalPropertyTypes`, including nested appearance tokens. Make Pages API and guide references describe their actual package version without internal preview warnings.
12
+
13
+ - Share grouped `layers` and supported `appearance` options between static and interactive maps, retaining flat static options and existing defaults; accept readonly static marker arrays.
14
+ - Update interactive appearance, mode, source, district year and labels through `configure`, preserving camera and retained marker nodes. Merge appearance tokens by key and validate combined patches before commit.
15
+ - Add `getResolvedConfiguration()` and `getCapabilities()` for effective layer switches and supplied geography, plus an additive `selectionchange` event with consistent current/previous snapshots.
16
+ - Add a live Pages map design playground with six editable palettes, layers, typography, sample pins/routes, browser/static previews, undo/redo, shareable designs, copyable code and full-city SVG export. Keep released-package previews compatible with their installed API.
17
+ - Refresh the Pages site: a new SF Map SVG mark traced from the real coastline, a reframed header with a release link, card-style reference tables that no longer collapse, a live filter for the API reference, an aligned playground with one-row-per-colour inks, and 12px minimum type for labels and badges.
18
+
19
+ ## 4.1.0 — 2026-10-01
20
+
21
+ - Validate canonical and generated GeoJSON during data checks, rejecting invalid WGS84 coordinates and malformed polygon rings before release.
22
+
23
+ - Reject nonnumeric or nonfinite custom district IDs before they enter SVG markup or animation CSS; fall back to the primary district label when `labelPoints` is empty.
24
+ - Stop district activation and keyboard focus after selection callbacks destroy the map or replace the selection; share pointer and keyboard activation guards.
25
+ - Keep layers studio controls safe while data loads, honor the chosen rendering mode, and report failed loading without a second error. Narrow the older-release feature fallback to its supported compatibility cases.
26
+
27
+ - Preserve existing HTML entities in generated social titles instead of double-escaping them.
28
+
29
+ - Gate studio interactions until geography loads, keep failed loads safe, disable controls unsupported by static maps or the selected release, and label preview-only APIs on released documentation pages.
30
+ - Make the camera ownership browser check independent of a short animation timing window; clarify that marker-change events report selection rather than every activation.
31
+
32
+ - Make misplaced interactive-option errors name the supported appearance, feature, or event API.
33
+
34
+ - Clarify developer integration defaults, runtime configuration and lifecycle; generate version-aware llms.txt, complete text docs, Markdown guides and TypeScript contracts for npm and Pages.
35
+
36
+ - Fix layers studio copied examples to preserve the selected mode, layers, motion durations, and supported release features; execute generated examples in the regression checks.
37
+
38
+ - Add opt-in `animation` for `renderMap`: a self-contained, scoped CSS draw-in (coast and lines draw, districts grow, labels and points follow) that plays inline or as an image and respects reduced motion. Default output is unchanged.
39
+ - Add `features.layerTransitions`: layer switches fade, `setSource()` crossfades neighborhood definitions, and `setDistrictStyle()` crossfades district fills.
40
+ - Add `features.districtMorph`: district outlines morph between map years on `setDistrictYear()`, settling on the exact geometry; `{ animate: false }` stays instant.
41
+ - Pages site: a classic, editorial redesign with an animated atlas home, a scroll-driven tour of the controller, a layers studio for every layer and neighborhood definition, rebuilt local measures, California propositions and supervisorial votes examples, and new documentation and API reference pages. Example pages now load prebuilt display maps and a display-simplified dataset instead of raw geometry.
42
+
7
43
  ## 4.0.1 — 2026-09-28
8
44
 
9
45
  - Reconcile marker updates by ID, preserving retained SVG nodes, picker options, keyboard focus, and entrance animations. Identical ordered updates no longer mutate the DOM; only new IDs animate in and removed markers cancel their entrances.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Offline, self-contained San Francisco SVG maps. The package has no runtime dependencies. Geography is always an explicit import; the root entry does not bundle data.
4
4
 
5
- [Live examples](https://kahwee.github.io/sf-map-svg/examples.html) · [Storybook source](stories/) · [Geographic sources](SOURCES.md) · [v3 migration](docs/migration-v3.md)
5
+ [Design playground](https://kahwee.github.io/sf-map-svg/playground.html) · [Live examples](https://kahwee.github.io/sf-map-svg/examples.html) · [Storybook source](stories/) · [Geographic sources](SOURCES.md) · [v3 migration](docs/migration-v3.md)
6
6
 
7
7
  ## Install
8
8
 
@@ -29,7 +29,7 @@ const { svg, project, viewBox } = renderMap(staticMapData, {
29
29
 
30
30
  `renderMap(data, options)` returns SVG markup and matching projection helpers. `/data/static` includes the complete static map without interactive lookup collections. Small maps can compose selected JSON exports from `/data/*` and pass them as `StaticMapData`. `getLayerPaths(data, options)` returns fitted geographic paths without SVG markup.
31
31
 
32
- Static options include `theme`, `width`, `height`, `padding`, `year` (2002, 2012, 2022), `districtLines`, `districtFills`, `districtStyle`, `districtLabels`, `neighborhoodLines`, `labels`, `highways`, `keyRoads`, `roadLabels`, `landmarks`, `bartStations`, `markers`, `overlays`, `title`, `idPrefix`, and `colors`. Each optional layer is independent. User-supplied text and attributes are escaped in SVG output.
32
+ See [map options and animations](docs/API.md#static-maps) for optional layers and static animation.
33
33
 
34
34
  ## Interactive map
35
35
 
@@ -52,19 +52,15 @@ map.camera.zoom(1.5);
52
52
  map.destroy();
53
53
  ```
54
54
 
55
- `createMap(data, options)` returns a controller. Use `map.element` for mounting, `map.configure({ features, layers, controls })` for runtime switches, `map.camera` for pan/zoom/fit/reset, and `map.on()` for typed events. Appearance is set at construction. SFAR realtor neighborhoods are the default when supplied; SF Find and analysis are explicit alternate sources. The `/data/full` preset includes all three collections and historical districts.
55
+ `createMap(data, options)` returns a controller. Use `map.element` for mounting, `map.configure({ features, layers, controls, appearance, mode, source, year, labels })` for runtime switches, `map.camera` for pan/zoom/fit/reset, and `map.on()` for typed events. Appearance can change live while preserving camera, selection, and focus. `getResolvedConfiguration()` explains effective layers; `getCapabilities()` reports supplied geography. SFAR realtor neighborhoods are the default when supplied; SF Find and analysis are explicit alternate sources. The `/data/full` preset includes all three collections and historical districts.
56
56
 
57
- Construction options include `mode` (`basemap`, `neighborhoods`, or `districts`), `source`, `neighborhood`, `year`, `labels`, `layers`, `controls`, `features`, `appearance`, `markers`, `overlays`, `legend`, `strings`, `attribution`, and `fitPadding`. Enable map touch gestures with the touch control or `map.setTouchNavigation(true)`. `features` holds motion, marker entrances, selected marker rings, clustering, north arrow, and scale bar. `appearance` holds theme, color tokens, label and area styles, marker colors and sizes, and district styling. `layers` controls district fill/line/labels, neighborhood lines/labels, landmarks, BART, highways, key roads, and road labels. See the exported `MapOptions` type for exact values and the [Storybook examples](stories/) for live controls.
57
+ See [controller options, events, and lifecycle](docs/API.md#interactive-maps),
58
+ [examples](docs/EXAMPLES.md), and [consumer integration](docs/consumer-integration.md).
59
+ Call `destroy()` when removing an interactive map.
58
60
 
59
- The controller also supports marker, neighborhood, and district selection; district year and style changes; source and mode changes; labels and touch navigation; screen projection; and typed `markerchange`, `neighborhoodchange`, `districtchange`, `districthover`, `districtactivate`, `districtyearchange`, `overlayactivate`, `clusteractivate`, `viewportchange`, and `mapresize` events. `destroy()` releases browser resources; operations after destruction throw.
61
+ ## Documentation for coding assistants
60
62
 
61
- `setMarkers()` reconciles by stable marker `id`: retained markers keep their DOM nodes, focus, and in-progress entrance animations; only new IDs animate in. Identical ordered marker updates are a visual no-op. Camera state and `viewportchange` events remain synchronous, while animated camera steps and their dependent label/marker layout commit in the same browser frame.
62
-
63
- For a small guide, import `guideMapData` from `/guide/data` and pass it to `createMap`. The optional `/guide` entry also provides `createGuideMap`, `mountGuideMap`, and detailed-data loading for existing guide layouts. `/transit` provides the standalone schematic transit animation. See [examples](docs/EXAMPLES.md) and [consumer integration](docs/consumer-integration.md).
64
-
65
- For the guide preset with the same controller API, use `createGuideController(options)` from `/guide` (or `/guide/map`). It accepts grouped `MapOptions` and returns `MapController`; `mountGuideController(shell, options)` enhances a `createGuideShell()` container. Both use the lightweight guide geography. Existing `createGuideMap` and `mountGuideMap` calls retain their element-based API.
66
-
67
- District style callbacks are evaluated once per district at construction and on style or year updates. Hover, selection, and layer toggles reuse the prepared styles; call `setDistrictStyle()` again when external styling data changes. Invalid styles leave the current map unchanged. District fades respect reduced motion and are removed on interruption or destruction.
63
+ [Developer guide](docs/developer-guide.md) · [llms.txt index](llms.txt) · [Complete text documentation](llms-full.txt). Generated from project docs and TypeScript declarations; run `pnpm docs:llms` after changing those inputs.
68
64
 
69
65
  ## Data and development
70
66
 
@@ -79,4 +75,4 @@ pnpm test:stories:coverage
79
75
  pnpm test:package
80
76
  ```
81
77
 
82
- The [contributing guide](CONTRIBUTING.md) explains the geographic and release checks. Version 3 removes the five old compatibility entry points; [migrate before upgrading](docs/migration-v3.md).
78
+ The [contributing guide](CONTRIBUTING.md) explains the geographic and release checks. If you are upgrading from v2, follow the [v3 migration guide](docs/migration-v3.md).
@@ -1 +1 @@
1
- { "type": "FeatureCollection", "schemaVersion": 1, "id": "guide-coast-overview", "title": "Guide coastline overview", "coordinateSystem": "WGS84 longitude, latitude (EPSG:4326)", "definition": { "kind": "display-coast", "description": "Common clipped land mask from the original Site, including Treasure Island and excluding the Farallon Islands." }, "sources": [{ "id": "land-mask", "title": "Display land mask", "url": "https://data.sf.gov/resource/hcgx-vtsb.geojson", "retrievedAt": "2026-09-25", "licenseUrl": "https://datasf.org/opendata/terms-of-use/" }], "features": [{ "type": "Feature", "id": "coast", "bbox": [-122.51494798458785, 37.70813199967883, -122.35696700050588, 37.83242700044341], "properties": { "name": "San Francisco" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.42562247656319, 37.70831616007394], [-122.429841781, 37.708530291], [-122.44739779795987, 37.708244536132455], [-122.44815957533682, 37.70851693846695], [-122.44863415082004, 37.70824043161256], [-122.45346848640251, 37.708224708322334], [-122.453608348, 37.708484936], [-122.45435151804031, 37.708231999635046], [-122.502777262504, 37.70813299958074], [-122.50603890139797, 37.71908906073846], [-122.50804576033174, 37.729755436802975], [-122.50872381952291, 37.740254550336324], [-122.50968276929112, 37.74443971391659], [-122.50933586068263, 37.74593861448263], [-122.509713, 37.749084], [-122.51102746344195, 37.75254680648806], [-122.51185940942172, 37.76088378720577], [-122.512471999, 37.762518], [-122.5122749997709, 37.7631990004542], [-122.51310781678522, 37.7672423237982], [-122.51311599984498, 37.77599200013542], [-122.51351148963131, 37.77760251472979], [-122.51462964367589, 37.77850639732981], [-122.51472341204752, 37.78113364646814], [-122.513759, 37.781477], [-122.51349899900548, 37.782700633421804], [-122.5124659995058, 37.783743000078914], [-122.51268096205607, 37.78412001052793], [-122.51211200046262, 37.78379299964425], [-122.51191100062118, 37.784325999673406], [-122.50980800009482, 37.78481600004583], [-122.50605199989332, 37.78819199960187], [-122.50270431741205, 37.788039643461715], [-122.49957779800255, 37.78870386497085], [-122.49654710296048, 37.78728701797894], [-122.49480341029593, 37.78783226997738], [-122.49470080821759, 37.7881379934989], [-122.494002, 37.787581], [-122.493462, 37.787628], [-122.49128142374417, 37.78828118339819], [-122.4898287465386, 37.78948200198018], [-122.48736900010958, 37.789429999927385], [-122.48576538464472, 37.790672843455184], [-122.483592999, 37.794035], [-122.482079, 37.798472], [-122.48155399956126, 37.79874799971265], [-122.480202, 37.801417], [-122.47872883475314, 37.80549264781968], [-122.47840500012403, 37.8080930005458], [-122.477896, 37.808449], [-122.47773564878918, 37.810927242220195], [-122.47648749755751, 37.81084889843413], [-122.476049, 37.80964], [-122.47480200047606, 37.80917899954168], [-122.47060081384791, 37.808598861774264], [-122.46992362184089, 37.8094349364806], [-122.46944647056186, 37.809067953006874], [-122.47004699977322, 37.809289000447954], [-122.470537, 37.808582], [-122.46879000048132, 37.80700299975854], [-122.46814828750884, 37.8069805470069], [-122.4669960003269, 37.80590999971966], [-122.46641763807544, 37.806046851906125], [-122.466652, 37.805791], [-122.46357961470801, 37.804879881320694], [-122.458423, 37.805477], [-122.45448300077636, 37.80646899996972], [-122.452439, 37.806267], [-122.44872828916216, 37.80670157927226], [-122.44718026456493, 37.80747705884892], [-122.4430599949121, 37.80788238692801], [-122.44700719, 37.806547819], [-122.446831516, 37.80539116], [-122.44251599975422, 37.80595100000914], [-122.4422639995008, 37.80677500000322], [-122.4356861090081, 37.807714278616494], [-122.43554545105309, 37.806877466960046], [-122.43416500003714, 37.80697199966466], [-122.43353501802494, 37.80558986786683], [-122.43216515257353, 37.80609920907052], [-122.43260900796155, 37.80850226396037], [-122.43207899985552, 37.80722300035001], [-122.43138599968805, 37.80731399974551], [-122.4317271219686, 37.80902359451273], [-122.43134194374419, 37.809056690660114], [-122.43091599945808, 37.80732000038555], [-122.4303030003585, 37.80745699987419], [-122.43062118028507, 37.809166692931925], [-122.43010818627229, 37.80921498254278], [-122.429835, 37.807825], [-122.42823668281531, 37.80840566112987], [-122.427000999, 37.808109], [-122.42754514480073, 37.80864083842721], [-122.4280139999623, 37.80857000000572], [-122.42753323759783, 37.80878250147908], [-122.42661323201868, 37.80815201066661], [-122.42672024564848, 37.8095211273093], [-122.426341406855, 37.80761668574975], [-122.42578890635471, 37.80740595222087], [-122.42613200058445, 37.80735228235583], [-122.42395961228662, 37.80662272794094], [-122.4219166131334, 37.80774655760214], [-122.42153205983378, 37.80807146479975], [-122.42178917768433, 37.808374243348524], [-122.42132400029308, 37.808279000153306], [-122.42158500042763, 37.80854300009901], [-122.42130099937053, 37.808301999581545], [-122.42106162302592, 37.80855640313718], [-122.42284373847815, 37.810255806159915], [-122.42091100028149, 37.80879699951139], [-122.42036100001339, 37.80900400000414], [-122.4206686779243, 37.80895835651509], [-122.4204619998446, 37.80830299958906], [-122.41784397577705, 37.80882986388343], [-122.41734499985911, 37.8081410003539], [-122.41574773, 37.808157252], [-122.41634668219606, 37.80826522973579], [-122.41618699975513, 37.80885399986301], [-122.41742798477556, 37.80892723716339], [-122.41942294939717, 37.810454630353945], [-122.41972436265208, 37.811134853169015], [-122.41893534542463, 37.81088261821501], [-122.41935085639821, 37.811486352280376], [-122.41884636036305, 37.81147300899098], [-122.41535240470715, 37.80916086951749], [-122.41537068051503, 37.80940630265627], [-122.41488880185955, 37.80924118486687], [-122.41518028173887, 37.80948071790404], [-122.41249877526597, 37.80906570835373], [-122.41223371234008, 37.80957445805853], [-122.41047300019568, 37.80880399958489], [-122.4103181455029, 37.809229679927604], [-122.41130130566806, 37.81098877373097], [-122.41039588609809, 37.81142802679761], [-122.4093876918129, 37.80871987978142], [-122.40743132450919, 37.807903432240266], [-122.406644, 37.807818], [-122.406816, 37.809995], [-122.40612549670035, 37.810035489351286], [-122.4059044392015, 37.80715967344681], [-122.40532220572858, 37.806866922646584], [-122.40437226633524, 37.808871], [-122.4039081557617, 37.808718046486604], [-122.40471727887088, 37.80697146191799], [-122.4039559997589, 37.806579000329506], [-122.40276073089967, 37.80801512163345], [-122.40235183359594, 37.8078356255909], [-122.40342200025773, 37.80647099988127], [-122.40280437117052, 37.80602307404304], [-122.40094027856352, 37.807638759202405], [-122.40039903429854, 37.807261777769874], [-122.4009635939847, 37.803563389537295], [-122.40048, 37.803466], [-122.39852174272056, 37.80460002137844], [-122.39822556089459, 37.80425644380741], [-122.39997200044068, 37.803225000557866], [-122.39960274367951, 37.80280795091089], [-122.39781743086465, 37.80381206933367], [-122.39751480467146, 37.803470603868355], [-122.39961599944063, 37.80228200012581], [-122.39940966791225, 37.80182423786562], [-122.39710450660525, 37.8030236746417], [-122.39614385363528, 37.801952701751155], [-122.39838400000392, 37.80067300033485], [-122.39798900032325, 37.800230000076034], [-122.39575903223853, 37.801474865080365], [-122.39544429525077, 37.8011645582107], [-122.3975884087541, 37.799916314098475], [-122.39725700036036, 37.79944200034358], [-122.39689762275587, 37.79963228561377], [-122.39725156594827, 37.799401202631635], [-122.3965789998322, 37.798832999941474], [-122.3943387194934, 37.80015740631918], [-122.39657465186184, 37.79865051441526], [-122.39586066071908, 37.79787089099389], [-122.39380884939862, 37.79893717653993], [-122.39355806531395, 37.79863680301785], [-122.39549385903727, 37.79746956214999], [-122.3950159627847, 37.797123574969824], [-122.39319974353468, 37.79825044462857], [-122.39292104768789, 37.79796157499769], [-122.39468192193175, 37.79658162351102], [-122.3931689995961, 37.79750800040448], [-122.394127, 37.796862999], [-122.3929977657149, 37.795560733356076], [-122.39158999936502, 37.796204999833044], [-122.39119635709832, 37.795779174029825], [-122.39241100010568, 37.794820000321835], [-122.3916496140018, 37.79454747860815], [-122.39198201234144, 37.79387190392659], [-122.38880860453241, 37.7909781166636], [-122.388612001, 37.790313], [-122.38804897498, 37.790507520587184], [-122.38824400033306, 37.79000699965057], [-122.38734800090573, 37.78931099976726], [-122.38528448030664, 37.789757777331836], [-122.38514853924615, 37.78922031127896], [-122.38718801901145, 37.78877358776065], [-122.38704956674022, 37.78822849172339], [-122.38526168122591, 37.78851956372173], [-122.38513787575802, 37.78811828764879], [-122.38738105052838, 37.787720502120145], [-122.387407, 37.787241], [-122.38452007072524, 37.78738927289337], [-122.38434551697964, 37.78573011523009], [-122.387565, 37.785458], [-122.38770999992755, 37.78387599982706], [-122.38736044706805, 37.783347201986174], [-122.38777700035283, 37.78286800017092], [-122.38475167411198, 37.782938795193914], [-122.38468192053227, 37.78255105981172], [-122.38778799958457, 37.78227499990533], [-122.38775480910786, 37.781795651540904], [-122.385486126, 37.781752089], [-122.38762900011079, 37.78145100007824], [-122.38734099966071, 37.77835999968625], [-122.38529300030125, 37.77845100019215], [-122.38769112530255, 37.77833696044211], [-122.39041033420776, 37.777142439507166], [-122.39248024070336, 37.77511978890256], [-122.39817085760953, 37.770836515999385], [-122.39783035909586, 37.77044438511593], [-122.39459484528584, 37.773293464624786], [-122.39427307529525, 37.773024638083534], [-122.38996172875291, 37.77661816324873], [-122.38753637250112, 37.77674142820583], [-122.38708238728287, 37.776103866692374], [-122.38500456341089, 37.77632809560351], [-122.38487731806524, 37.77533018196434], [-122.386996001, 37.775082], [-122.38692306581841, 37.77432780215158], [-122.381814, 37.774615], [-122.3814565176791, 37.77191756024899], [-122.38474091330514, 37.77336421233438], [-122.38675999983646, 37.77327300037887], [-122.38584, 37.770682999], [-122.38562199909826, 37.77216199949081], [-122.3856818864475, 37.771444192808055], [-122.38528710091373, 37.77163439603435], [-122.38572427874843, 37.7705919760463], [-122.38315513589036, 37.769708769562065], [-122.38337592822391, 37.769333122677544], [-122.38557020093204, 37.77017965757931], [-122.38478800053423, 37.768657000826], [-122.38652000035223, 37.765411999876946], [-122.38660470135164, 37.76390217190762], [-122.387272, 37.763605], [-122.38631439131838, 37.7631020399505], [-122.38518200021434, 37.76337300028575], [-122.38510425391658, 37.762319303146406], [-122.38429164704539, 37.76213451999171], [-122.3844612636819, 37.76404704690856], [-122.38413211961496, 37.762256559083234], [-122.383427, 37.762301], [-122.38389933999773, 37.76408823538617], [-122.38329703641386, 37.76408402897687], [-122.38310956125683, 37.76232028549336], [-122.381748, 37.762405], [-122.38169499964904, 37.76473800001672], [-122.3811730009979, 37.76493299999427], [-122.38102934601237, 37.76222397810977], [-122.38330765060273, 37.76208157445985], [-122.38178994637649, 37.76056974009187], [-122.381716126, 37.759986137], [-122.379507, 37.76025], [-122.37953314184313, 37.7634661203481], [-122.37920200103622, 37.75993800038619], [-122.38146912248597, 37.75957348970635], [-122.38140000028807, 37.756404999995944], [-122.38075042297989, 37.75525870167735], [-122.38407313263959, 37.754951430875614], [-122.38407700000965, 37.754658999664564], [-122.38301599983212, 37.75459199959807], [-122.38265312097982, 37.753389157120814], [-122.37988033483772, 37.75288614800792], [-122.37995990211888, 37.75202988586154], [-122.37608733051087, 37.75224882537185], [-122.37577100043163, 37.74870699997347], [-122.38474399959445, 37.748303000062336], [-122.38733894937059, 37.74759102521558], [-122.38775721510883, 37.747850775699476], [-122.39041572220691, 37.747713389588206], [-122.39253474972281, 37.74846636452747], [-122.39297940515004, 37.747588456373315], [-122.39049185124422, 37.74669443442443], [-122.38746145236995, 37.74710217255324], [-122.37613401807835, 37.74714817569362], [-122.37412391402245, 37.74497605478401], [-122.37276200722101, 37.74550499560783], [-122.36763100023558, 37.740134000041216], [-122.36827462148314, 37.73982796597564], [-122.37395291237695, 37.73956737603957], [-122.3736106827799, 37.73882119888803], [-122.37260299993329, 37.738281999769896], [-122.36739439370564, 37.73822281750438], [-122.371297, 37.737063001], [-122.37292299955004, 37.73704300042665], [-122.37553747784428, 37.73834760525907], [-122.37633398522017, 37.73838505015297], [-122.37514168674561, 37.73780627157288], [-122.37488314340033, 37.73729580757025], [-122.37523690600038, 37.736225408180324], [-122.37596646474685, 37.73581567839854], [-122.37587445215917, 37.73504835073973], [-122.37531940075029, 37.73539436797341], [-122.37487649638238, 37.734975995160056], [-122.37496323074194, 37.73388958382183], [-122.37568832902728, 37.732881259582776], [-122.37417636410906, 37.73258633239894], [-122.37193776212139, 37.734206966066964], [-122.3692086102399, 37.73199260331634], [-122.36838778861915, 37.732291640145235], [-122.3674608534259, 37.73194683940149], [-122.36667729250364, 37.7322150610017], [-122.36525152187392, 37.73380126575213], [-122.36654200023604, 37.73218400041865], [-122.36533079198318, 37.732998650983646], [-122.36619076159508, 37.73191614607498], [-122.36501353984433, 37.732829587348654], [-122.36565100023516, 37.731625999846514], [-122.36482820572803, 37.73254238044864], [-122.36510850236931, 37.732065821439], [-122.3637009998674, 37.73128399971966], [-122.36287615349995, 37.73214268764048], [-122.36262300022719, 37.73200600012302], [-122.36340400079396, 37.73111500051861], [-122.36285289540533, 37.73080084541848], [-122.36206043066242, 37.73167472773923], [-122.36177600032705, 37.731538999916246], [-122.362568, 37.730643001], [-122.361907, 37.73009], [-122.36087811659962, 37.72990600423481], [-122.36074099993145, 37.73023299963161], [-122.35991499992598, 37.73033199973259], [-122.35879026368355, 37.729783134348665], [-122.36228300033741, 37.72852100014598], [-122.35773127020053, 37.72944293571173], [-122.35747937201938, 37.729245291516385], [-122.36040853712443, 37.72821000260562], [-122.35696700050588, 37.72870999983798], [-122.35770079929702, 37.72628217051206], [-122.36164100045505, 37.72521899999028], [-122.36125599959226, 37.72416499986791], [-122.35796185437937, 37.72494362420365], [-122.35783800021166, 37.724623999546196], [-122.36152359001585, 37.72377509408359], [-122.36490379623552, 37.725700016945844], [-122.36532415677318, 37.72550005415727], [-122.36236700032295, 37.723678999645855], [-122.36275032151731, 37.72325878677685], [-122.3599760000655, 37.72162900003848], [-122.36023531600992, 37.72135852409167], [-122.36299748561204, 37.722979151802114], [-122.3638106524897, 37.72210204482894], [-122.35913105272125, 37.719323417605985], [-122.359986, 37.718478], [-122.36271400033267, 37.720071000298375], [-122.363657, 37.719055], [-122.3585840004121, 37.71588299957593], [-122.362644992038, 37.71802106662596], [-122.36386606603507, 37.71672684560301], [-122.36003614879623, 37.714297998711864], [-122.36397478269897, 37.71658090699752], [-122.36521645659869, 37.71535158449372], [-122.36117135548902, 37.71275175076213], [-122.36538818425794, 37.71523658644932], [-122.36462196257604, 37.71646491415775], [-122.365637613, 37.716080085], [-122.36774678604505, 37.71765838109377], [-122.36951323544288, 37.71784186908899], [-122.37050191821415, 37.718723043119], [-122.37222849610325, 37.71903829514961], [-122.37399565972883, 37.71890546459162], [-122.37446869091009, 37.71976802171535], [-122.37555628943575, 37.72045461104069], [-122.37594650613795, 37.72269365620368], [-122.37708010931745, 37.72424099650655], [-122.37894336063734, 37.72380028494585], [-122.38059395434658, 37.72178999106817], [-122.38236200333128, 37.722304261471486], [-122.38340253613258, 37.720378528091594], [-122.38129499980779, 37.71878299956732], [-122.38042199994668, 37.718721000732614], [-122.3761633356925, 37.716151270535704], [-122.3773559999303, 37.714341000084666], [-122.3788975026068, 37.71309422267677], [-122.38005699946922, 37.71148999988474], [-122.38010438900858, 37.71077510454442], [-122.37794200028057, 37.70860800009701], [-122.37686390140539, 37.70890016458694], [-122.37602200048111, 37.70969099965325], [-122.37455205982187, 37.70900814619391], [-122.37456260211309, 37.70854226334115], [-122.37939999410942, 37.70842021492831], [-122.38451610717314, 37.70929532563916], [-122.38602323915862, 37.709999236371694], [-122.3880629997743, 37.70867300024679], [-122.3897180000687, 37.70962000031737], [-122.39061999994682, 37.70920500008273], [-122.39150999982165, 37.7096950000442], [-122.39314469418976, 37.70844647030215], [-122.42011081579068, 37.70833256788383], [-122.42335300031276, 37.709251000101155], [-122.42377635869232, 37.70834194401491], [-122.425359743, 37.708612508], [-122.42562247656319, 37.70831616007394]], [[-122.46289320163415, 37.71056275046378], [-122.46417562588739, 37.71054824592799], [-122.46289320163415, 37.71056275046378]], [[-122.4636765119546, 37.71141911161741], [-122.4636765119546, 37.71141911161741]]], [[[-122.4415365402417, 37.80812703385164], [-122.43992809827509, 37.80877905002839], [-122.440411001, 37.80815], [-122.44271355341645, 37.807793177409714], [-122.4415365402417, 37.80812703385164]]], [[[-122.441490203017, 37.80794375825696], [-122.44197599958497, 37.807876999711745], [-122.441490203017, 37.80794375825696]]], [[[-122.43263215247613, 37.805892763112446], [-122.43263215247613, 37.805892763112446]]], [[[-122.41887314801079, 37.80883613271764], [-122.41993820819755, 37.809120528585794], [-122.41789740623845, 37.80902815812045], [-122.41887314801079, 37.80883613271764]]], [[[-122.40979444539182, 37.80948535514294], [-122.40979444539182, 37.80948535514294]]], [[[-122.4097326825584, 37.80943500745665], [-122.4097326825584, 37.80943500745665]]], [[[-122.363881, 37.823927], [-122.36298099948509, 37.822527000443166], [-122.36424203286602, 37.81888188892412], [-122.36489875663027, 37.81834342683861], [-122.36528099995115, 37.81852700005355], [-122.371081001, 37.816027], [-122.36980426212074, 37.813402259092946], [-122.3675577434081, 37.81232537549601], [-122.35930891969248, 37.81498788660059], [-122.35891447767243, 37.814767214867295], [-122.35928100133778, 37.813726999304336], [-122.36104009118405, 37.812474403907856], [-122.361197987957, 37.81037986789158], [-122.36238100114507, 37.807227997189074], [-122.36738099976196, 37.80772799800727], [-122.37279999951068, 37.81110000016902], [-122.37204113699308, 37.81162320810846], [-122.37126554633154, 37.814712690038], [-122.37912454390779, 37.82678384475163], [-122.37769319322405, 37.83043592744325], [-122.37328100038383, 37.83242700044341], [-122.36871423701048, 37.83117050823964], [-122.363881, 37.823927]]]] } }] }
1
+ { "type": "FeatureCollection", "schemaVersion": 1, "id": "guide-coast-overview", "title": "Guide coastline overview", "coordinateSystem": "WGS84 longitude, latitude (EPSG:4326)", "definition": { "kind": "display-coast", "description": "Common clipped land mask from the original Site, including Treasure Island and excluding the Farallon Islands." }, "sources": [{ "id": "land-mask", "title": "Display land mask", "url": "https://data.sf.gov/resource/hcgx-vtsb.geojson", "retrievedAt": "2026-09-25", "licenseUrl": "https://datasf.org/opendata/terms-of-use/" }], "features": [{ "type": "Feature", "id": "coast", "bbox": [-122.51494798458785, 37.70813199967883, -122.35696700050588, 37.83242700044341], "properties": { "name": "San Francisco" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.42562247656319, 37.70831616007394], [-122.429841781, 37.708530291], [-122.44739779795987, 37.708244536132455], [-122.44815957533682, 37.70851693846695], [-122.44863415082004, 37.70824043161256], [-122.45346848640251, 37.708224708322334], [-122.453608348, 37.708484936], [-122.45435151804031, 37.708231999635046], [-122.502777262504, 37.70813299958074], [-122.50603890139797, 37.71908906073846], [-122.50804576033174, 37.729755436802975], [-122.50872381952291, 37.740254550336324], [-122.50968276929112, 37.74443971391659], [-122.50933586068263, 37.74593861448263], [-122.509713, 37.749084], [-122.51102746344195, 37.75254680648806], [-122.51185940942172, 37.76088378720577], [-122.512471999, 37.762518], [-122.5122749997709, 37.7631990004542], [-122.51310781678522, 37.7672423237982], [-122.51311599984498, 37.77599200013542], [-122.51351148963131, 37.77760251472979], [-122.51462964367589, 37.77850639732981], [-122.51472341204752, 37.78113364646814], [-122.513759, 37.781477], [-122.51349899900548, 37.782700633421804], [-122.5124659995058, 37.783743000078914], [-122.51268096205607, 37.78412001052793], [-122.51211200046262, 37.78379299964425], [-122.51191100062118, 37.784325999673406], [-122.50980800009482, 37.78481600004583], [-122.50605199989332, 37.78819199960187], [-122.50270431741205, 37.788039643461715], [-122.49957779800255, 37.78870386497085], [-122.49654710296048, 37.78728701797894], [-122.49480341029593, 37.78783226997738], [-122.49470080821759, 37.7881379934989], [-122.494002, 37.787581], [-122.493462, 37.787628], [-122.49128142374417, 37.78828118339819], [-122.4898287465386, 37.78948200198018], [-122.48736900010958, 37.789429999927385], [-122.48576538464472, 37.790672843455184], [-122.483592999, 37.794035], [-122.482079, 37.798472], [-122.48155399956126, 37.79874799971265], [-122.480202, 37.801417], [-122.47872883475314, 37.80549264781968], [-122.47840500012403, 37.8080930005458], [-122.477896, 37.808449], [-122.47773564878918, 37.810927242220195], [-122.47648749755751, 37.81084889843413], [-122.476049, 37.80964], [-122.47480200047606, 37.80917899954168], [-122.47060081384791, 37.808598861774264], [-122.46992362184089, 37.8094349364806], [-122.46944647056186, 37.809067953006874], [-122.47004699977322, 37.809289000447954], [-122.470537, 37.808582], [-122.46879000048132, 37.80700299975854], [-122.46814828750884, 37.8069805470069], [-122.4669960003269, 37.80590999971966], [-122.46641763807544, 37.806046851906125], [-122.466652, 37.805791], [-122.46357961470801, 37.804879881320694], [-122.458423, 37.805477], [-122.45448300077636, 37.80646899996972], [-122.452439, 37.806267], [-122.44872828916216, 37.80670157927226], [-122.44718026456493, 37.80747705884892], [-122.4430599949121, 37.80788238692801], [-122.44700719, 37.806547819], [-122.446831516, 37.80539116], [-122.44251599975422, 37.80595100000914], [-122.4422639995008, 37.80677500000322], [-122.4356861090081, 37.807714278616494], [-122.43554545105309, 37.806877466960046], [-122.43416500003714, 37.80697199966466], [-122.43353501802494, 37.80558986786683], [-122.43216515257353, 37.80609920907052], [-122.43260900796155, 37.80850226396037], [-122.43207899985552, 37.80722300035001], [-122.43138599968805, 37.80731399974551], [-122.4317271219686, 37.80902359451273], [-122.43134194374419, 37.809056690660114], [-122.43091599945808, 37.80732000038555], [-122.4303030003585, 37.80745699987419], [-122.43062118028507, 37.809166692931925], [-122.43010818627229, 37.80921498254278], [-122.429835, 37.807825], [-122.42823668281531, 37.80840566112987], [-122.427000999, 37.808109], [-122.42754514480073, 37.80864083842721], [-122.4280139999623, 37.80857000000572], [-122.42753323759783, 37.80878250147908], [-122.42661323201868, 37.80815201066661], [-122.42672024564848, 37.8095211273093], [-122.426341406855, 37.80761668574975], [-122.42578890635471, 37.80740595222087], [-122.42613200058445, 37.80735228235583], [-122.42395961228662, 37.80662272794094], [-122.4219166131334, 37.80774655760214], [-122.42153205983378, 37.80807146479975], [-122.42178917768433, 37.808374243348524], [-122.42132400029308, 37.808279000153306], [-122.42158500042763, 37.80854300009901], [-122.42130099937053, 37.808301999581545], [-122.42106162302592, 37.80855640313718], [-122.42284373847815, 37.810255806159915], [-122.42091100028149, 37.80879699951139], [-122.42036100001339, 37.80900400000414], [-122.4206686779243, 37.80895835651509], [-122.4204619998446, 37.80830299958906], [-122.41784397577705, 37.80882986388343], [-122.41734499985911, 37.8081410003539], [-122.41574773, 37.808157252], [-122.41634668219606, 37.80826522973579], [-122.41618699975513, 37.80885399986301], [-122.41742798477556, 37.80892723716339], [-122.41942294939717, 37.810454630353945], [-122.41972436265208, 37.811134853169015], [-122.41893534542463, 37.81088261821501], [-122.41935085639821, 37.811486352280376], [-122.41884636036305, 37.81147300899098], [-122.41535240470715, 37.80916086951749], [-122.41537068051503, 37.80940630265627], [-122.41488880185955, 37.80924118486687], [-122.41518028173887, 37.80948071790404], [-122.41249877526597, 37.80906570835373], [-122.41223371234008, 37.80957445805853], [-122.41047300019568, 37.80880399958489], [-122.4103181455029, 37.809229679927604], [-122.41130130566806, 37.81098877373097], [-122.41039588609809, 37.81142802679761], [-122.4093876918129, 37.80871987978142], [-122.40743132450919, 37.807903432240266], [-122.406644, 37.807818], [-122.406816, 37.809995], [-122.40612549670035, 37.810035489351286], [-122.4059044392015, 37.80715967344681], [-122.40532220572858, 37.806866922646584], [-122.40437226633524, 37.808871], [-122.4039081557617, 37.808718046486604], [-122.40471727887088, 37.80697146191799], [-122.4039559997589, 37.806579000329506], [-122.40276073089967, 37.80801512163345], [-122.40235183359594, 37.8078356255909], [-122.40342200025773, 37.80647099988127], [-122.40280437117052, 37.80602307404304], [-122.40094027856352, 37.807638759202405], [-122.40039903429854, 37.807261777769874], [-122.4009635939847, 37.803563389537295], [-122.40048, 37.803466], [-122.39852174272056, 37.80460002137844], [-122.39822556089459, 37.80425644380741], [-122.39997200044068, 37.803225000557866], [-122.39960274367951, 37.80280795091089], [-122.39781743086465, 37.80381206933367], [-122.39751480467146, 37.803470603868355], [-122.39961599944063, 37.80228200012581], [-122.39940966791225, 37.80182423786562], [-122.39710450660525, 37.8030236746417], [-122.39614385363528, 37.801952701751155], [-122.39838400000392, 37.80067300033485], [-122.39798900032325, 37.800230000076034], [-122.39575903223853, 37.801474865080365], [-122.39544429525077, 37.8011645582107], [-122.3975884087541, 37.799916314098475], [-122.39725700036036, 37.79944200034358], [-122.39689762275587, 37.79963228561377], [-122.39725156594827, 37.799401202631635], [-122.3965789998322, 37.798832999941474], [-122.3943387194934, 37.80015740631918], [-122.39657465186184, 37.79865051441526], [-122.39586066071908, 37.79787089099389], [-122.39380884939862, 37.79893717653993], [-122.39355806531395, 37.79863680301785], [-122.39549385903727, 37.79746956214999], [-122.3950159627847, 37.797123574969824], [-122.39319974353468, 37.79825044462857], [-122.39292104768789, 37.79796157499769], [-122.39468192193175, 37.79658162351102], [-122.3931689995961, 37.79750800040448], [-122.394127, 37.796862999], [-122.3929977657149, 37.795560733356076], [-122.39158999936502, 37.796204999833044], [-122.39119635709832, 37.795779174029825], [-122.39241100010568, 37.794820000321835], [-122.3916496140018, 37.79454747860815], [-122.39198201234144, 37.79387190392659], [-122.38880860453241, 37.7909781166636], [-122.388612001, 37.790313], [-122.38804897498, 37.790507520587184], [-122.38824400033306, 37.79000699965057], [-122.38734800090573, 37.78931099976726], [-122.38528448030664, 37.789757777331836], [-122.38514853924615, 37.78922031127896], [-122.38718801901145, 37.78877358776065], [-122.38704956674022, 37.78822849172339], [-122.38526168122591, 37.78851956372173], [-122.38513787575802, 37.78811828764879], [-122.38738105052838, 37.787720502120145], [-122.387407, 37.787241], [-122.38452007072524, 37.78738927289337], [-122.38434551697964, 37.78573011523009], [-122.387565, 37.785458], [-122.38770999992755, 37.78387599982706], [-122.38736044706805, 37.783347201986174], [-122.38777700035283, 37.78286800017092], [-122.38475167411198, 37.782938795193914], [-122.38468192053227, 37.78255105981172], [-122.38778799958457, 37.78227499990533], [-122.38775480910786, 37.781795651540904], [-122.385486126, 37.781752089], [-122.38762900011079, 37.78145100007824], [-122.38734099966071, 37.77835999968625], [-122.38529300030125, 37.77845100019215], [-122.38769112530255, 37.77833696044211], [-122.39041033420776, 37.777142439507166], [-122.39248024070336, 37.77511978890256], [-122.39817085760953, 37.770836515999385], [-122.39783035909586, 37.77044438511593], [-122.39459484528584, 37.773293464624786], [-122.39427307529525, 37.773024638083534], [-122.38996172875291, 37.77661816324873], [-122.38753637250112, 37.77674142820583], [-122.38708238728287, 37.776103866692374], [-122.38500456341089, 37.77632809560351], [-122.38487731806524, 37.77533018196434], [-122.386996001, 37.775082], [-122.38692306581841, 37.77432780215158], [-122.381814, 37.774615], [-122.3814565176791, 37.77191756024899], [-122.38474091330514, 37.77336421233438], [-122.38675999983646, 37.77327300037887], [-122.38584, 37.770682999], [-122.38562199909826, 37.77216199949081], [-122.3856818864475, 37.771444192808055], [-122.38528710091373, 37.77163439603435], [-122.38572427874843, 37.7705919760463], [-122.38315513589036, 37.769708769562065], [-122.38337592822391, 37.769333122677544], [-122.38557020093204, 37.77017965757931], [-122.38478800053423, 37.768657000826], [-122.38652000035223, 37.765411999876946], [-122.38660470135164, 37.76390217190762], [-122.387272, 37.763605], [-122.38631439131838, 37.7631020399505], [-122.38518200021434, 37.76337300028575], [-122.38510425391658, 37.762319303146406], [-122.38429164704539, 37.76213451999171], [-122.3844612636819, 37.76404704690856], [-122.38413211961496, 37.762256559083234], [-122.383427, 37.762301], [-122.38389933999773, 37.76408823538617], [-122.38329703641386, 37.76408402897687], [-122.38310956125683, 37.76232028549336], [-122.381748, 37.762405], [-122.38169499964904, 37.76473800001672], [-122.3811730009979, 37.76493299999427], [-122.38102934601237, 37.76222397810977], [-122.38330765060273, 37.76208157445985], [-122.38178994637649, 37.76056974009187], [-122.381716126, 37.759986137], [-122.379507, 37.76025], [-122.37953314184313, 37.7634661203481], [-122.37920200103622, 37.75993800038619], [-122.38146912248597, 37.75957348970635], [-122.38140000028807, 37.756404999995944], [-122.38075042297989, 37.75525870167735], [-122.38407313263959, 37.754951430875614], [-122.38407700000965, 37.754658999664564], [-122.38301599983212, 37.75459199959807], [-122.38265312097982, 37.753389157120814], [-122.37988033483772, 37.75288614800792], [-122.37995990211888, 37.75202988586154], [-122.37608733051087, 37.75224882537185], [-122.37577100043163, 37.74870699997347], [-122.38474399959445, 37.748303000062336], [-122.38733894937059, 37.74759102521558], [-122.38775721510883, 37.747850775699476], [-122.39041572220691, 37.747713389588206], [-122.39253474972281, 37.74846636452747], [-122.39297940515004, 37.747588456373315], [-122.39049185124422, 37.74669443442443], [-122.38746145236995, 37.74710217255324], [-122.37613401807835, 37.74714817569362], [-122.37412391402245, 37.74497605478401], [-122.37276200722101, 37.74550499560783], [-122.36763100023558, 37.740134000041216], [-122.36827462148314, 37.73982796597564], [-122.37395291237695, 37.73956737603957], [-122.3736106827799, 37.73882119888803], [-122.37260299993329, 37.738281999769896], [-122.36739439370564, 37.73822281750438], [-122.371297, 37.737063001], [-122.37292299955004, 37.73704300042665], [-122.37553747784428, 37.73834760525907], [-122.37633398522017, 37.73838505015297], [-122.37514168674561, 37.73780627157288], [-122.37488314340033, 37.73729580757025], [-122.37523690600038, 37.736225408180324], [-122.37596646474685, 37.73581567839854], [-122.37587445215917, 37.73504835073973], [-122.37531940075029, 37.73539436797341], [-122.37487649638238, 37.734975995160056], [-122.37496323074194, 37.73388958382183], [-122.37568832902728, 37.732881259582776], [-122.37417636410906, 37.73258633239894], [-122.37193776212139, 37.734206966066964], [-122.3692086102399, 37.73199260331634], [-122.36838778861915, 37.732291640145235], [-122.3674608534259, 37.73194683940149], [-122.36667729250364, 37.7322150610017], [-122.36525152187392, 37.73380126575213], [-122.36654200023604, 37.73218400041865], [-122.36533079198318, 37.732998650983646], [-122.36619076159508, 37.73191614607498], [-122.36501353984433, 37.732829587348654], [-122.36565100023516, 37.731625999846514], [-122.36482820572803, 37.73254238044864], [-122.36510850236931, 37.732065821439], [-122.3637009998674, 37.73128399971966], [-122.36287615349995, 37.73214268764048], [-122.36262300022719, 37.73200600012302], [-122.36340400079396, 37.73111500051861], [-122.36285289540533, 37.73080084541848], [-122.36206043066242, 37.73167472773923], [-122.36177600032705, 37.731538999916246], [-122.362568, 37.730643001], [-122.361907, 37.73009], [-122.36087811659962, 37.72990600423481], [-122.36074099993145, 37.73023299963161], [-122.35991499992598, 37.73033199973259], [-122.35879026368355, 37.729783134348665], [-122.36228300033741, 37.72852100014598], [-122.35773127020053, 37.72944293571173], [-122.35747937201938, 37.729245291516385], [-122.36040853712443, 37.72821000260562], [-122.35696700050588, 37.72870999983798], [-122.35770079929702, 37.72628217051206], [-122.36164100045505, 37.72521899999028], [-122.36125599959226, 37.72416499986791], [-122.35796185437937, 37.72494362420365], [-122.35783800021166, 37.724623999546196], [-122.36152359001585, 37.72377509408359], [-122.36490379623552, 37.725700016945844], [-122.36532415677318, 37.72550005415727], [-122.36236700032295, 37.723678999645855], [-122.36275032151731, 37.72325878677685], [-122.3599760000655, 37.72162900003848], [-122.36023531600992, 37.72135852409167], [-122.36299748561204, 37.722979151802114], [-122.3638106524897, 37.72210204482894], [-122.35913105272125, 37.719323417605985], [-122.359986, 37.718478], [-122.36271400033267, 37.720071000298375], [-122.363657, 37.719055], [-122.3585840004121, 37.71588299957593], [-122.362644992038, 37.71802106662596], [-122.36386606603507, 37.71672684560301], [-122.36003614879623, 37.714297998711864], [-122.36397478269897, 37.71658090699752], [-122.36521645659869, 37.71535158449372], [-122.36117135548902, 37.71275175076213], [-122.36538818425794, 37.71523658644932], [-122.36462196257604, 37.71646491415775], [-122.365637613, 37.716080085], [-122.36774678604505, 37.71765838109377], [-122.36951323544288, 37.71784186908899], [-122.37050191821415, 37.718723043119], [-122.37222849610325, 37.71903829514961], [-122.37399565972883, 37.71890546459162], [-122.37446869091009, 37.71976802171535], [-122.37555628943575, 37.72045461104069], [-122.37594650613795, 37.72269365620368], [-122.37708010931745, 37.72424099650655], [-122.37894336063734, 37.72380028494585], [-122.38059395434658, 37.72178999106817], [-122.38236200333128, 37.722304261471486], [-122.38340253613258, 37.720378528091594], [-122.38129499980779, 37.71878299956732], [-122.38042199994668, 37.718721000732614], [-122.3761633356925, 37.716151270535704], [-122.3773559999303, 37.714341000084666], [-122.3788975026068, 37.71309422267677], [-122.38005699946922, 37.71148999988474], [-122.38010438900858, 37.71077510454442], [-122.37794200028057, 37.70860800009701], [-122.37686390140539, 37.70890016458694], [-122.37602200048111, 37.70969099965325], [-122.37455205982187, 37.70900814619391], [-122.37456260211309, 37.70854226334115], [-122.37939999410942, 37.70842021492831], [-122.38451610717314, 37.70929532563916], [-122.38602323915862, 37.709999236371694], [-122.3880629997743, 37.70867300024679], [-122.3897180000687, 37.70962000031737], [-122.39061999994682, 37.70920500008273], [-122.39150999982165, 37.7096950000442], [-122.39314469418976, 37.70844647030215], [-122.42011081579068, 37.70833256788383], [-122.42335300031276, 37.709251000101155], [-122.42377635869232, 37.70834194401491], [-122.425359743, 37.708612508], [-122.42562247656319, 37.70831616007394]], [[-122.46289320163415, 37.71056275046378], [-122.46354657874448, 37.71055536464888], [-122.46417562588739, 37.71054824592799], [-122.46289320163415, 37.71056275046378]], [[-122.4636765119546, 37.71141911161741], [-122.4635304804308, 37.71137799544858], [-122.46347272116284, 37.711361737755524], [-122.4636765119546, 37.71141911161741]]], [[[-122.4415365402417, 37.80812703385164], [-122.440652999, 37.808288], [-122.43992809827509, 37.80877905002839], [-122.440411001, 37.80815], [-122.44271355341645, 37.807793177409714], [-122.4415365402417, 37.80812703385164]]], [[[-122.441490203017, 37.80794375825696], [-122.44148099942412, 37.8079170000461], [-122.44197599958497, 37.807876999711745], [-122.44180810155946, 37.80798590829288], [-122.441490203017, 37.80794375825696]]], [[[-122.43263215247613, 37.805892763112446], [-122.43260958373816, 37.80589651706323], [-122.4325953875804, 37.80589887835756], [-122.43262894591876, 37.805873041527555], [-122.43263215247613, 37.805892763112446]]], [[[-122.41887314801079, 37.80883613271764], [-122.41994800043578, 37.80890200015781], [-122.41993820819755, 37.809120528585794], [-122.41789740623845, 37.80902815812045], [-122.41887314801079, 37.80883613271764]]], [[[-122.40979444539182, 37.80948535514294], [-122.40979043834137, 37.80950377346966], [-122.40975927227741, 37.80947774644889], [-122.40979493511473, 37.80948238945957], [-122.40979444539182, 37.80948535514294]]], [[[-122.4097326825584, 37.80943500745665], [-122.40972838045563, 37.80942809247059], [-122.40978805455231, 37.80941111002071], [-122.4097326825584, 37.80943500745665]]], [[[-122.363881, 37.823927], [-122.36298099948509, 37.822527000443166], [-122.36424203286602, 37.81888188892412], [-122.36489875663027, 37.81834342683861], [-122.36528099995115, 37.81852700005355], [-122.371081001, 37.816027], [-122.36980426212074, 37.813402259092946], [-122.3675577434081, 37.81232537549601], [-122.35930891969248, 37.81498788660059], [-122.35891447767243, 37.814767214867295], [-122.35928100133778, 37.813726999304336], [-122.36104009118405, 37.812474403907856], [-122.361197987957, 37.81037986789158], [-122.36238100114507, 37.807227997189074], [-122.36738099976196, 37.80772799800727], [-122.37279999951068, 37.81110000016902], [-122.37204113699308, 37.81162320810846], [-122.37126554633154, 37.814712690038], [-122.37912454390779, 37.82678384475163], [-122.37769319322405, 37.83043592744325], [-122.37328100038383, 37.83242700044341], [-122.36871423701048, 37.83117050823964], [-122.363881, 37.823927]]]] } }] }
@@ -1 +1 @@
1
- { "type": "FeatureCollection", "schemaVersion": 1, "id": "guide-parks-overview", "title": "Major park outlines", "coordinateSystem": "WGS84 longitude, latitude (EPSG:4326)", "definition": { "kind": "park-properties", "description": "Six selected property areas. Golden Gate Park combines sections 1–7. Labels use hand-positioned display anchors." }, "sources": [{ "id": "rpd-properties", "title": "Recreation and Parks Properties", "url": "https://data.sf.gov/resource/gtr9-ntp6.geojson?$limit=1000", "retrievedAt": "2026-09-25", "licenseUrl": "https://datasf.org/opendata/terms-of-use/" }, { "id": "presidio", "title": "Presidio Boundary Polygon", "url": "https://data.sf.gov/resource/jt6f-vx2z.geojson", "retrievedAt": "2026-09-25", "licenseUrl": "https://datasf.org/opendata/terms-of-use/" }], "features": [{ "type": "Feature", "id": "golden-gate-park", "bbox": [-122.511122943, 37.764093235, -122.440868541, 37.774681275], "properties": { "name": "Golden Gate Park", "label": [-122.482, 37.7694], "offset": [0, 0], "anchor": "middle" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.454733525, 37.774624933], [-122.45417498, 37.771867857], [-122.446015886, 37.772904115], [-122.445864152, 37.772153301], [-122.454040057, 37.771115325], [-122.453097132, 37.766460305], [-122.454025538, 37.766563385], [-122.453975755, 37.766314844], [-122.457406474, 37.765978582], [-122.457802722, 37.766139026], [-122.458289786, 37.767284986], [-122.455024548, 37.768371182], [-122.454872195, 37.769075753], [-122.455419201, 37.770379195], [-122.455302949, 37.770934706], [-122.456534797, 37.770957022], [-122.461196861, 37.771630433], [-122.464137436, 37.772324615], [-122.463789699, 37.773534206], [-122.454733525, 37.774624933]]], [[[-122.460879203, 37.772704245], [-122.460943503, 37.772348045], [-122.459527303, 37.772432846], [-122.459505904, 37.772738145], [-122.460214004, 37.772924745], [-122.460879203, 37.772704245]]], [[[-122.440903168, 37.772786185], [-122.445644128, 37.772180623], [-122.445817555, 37.772920614], [-122.441013108, 37.773533166], [-122.440903168, 37.772786185]]], [[[-122.463789699, 37.773534206], [-122.464137436, 37.772324615], [-122.459175123, 37.771319312], [-122.459554723, 37.770650202], [-122.460120797, 37.770404394], [-122.461813255, 37.770291561], [-122.464415116, 37.769674371], [-122.467065548, 37.767972701], [-122.469058524, 37.768998161], [-122.470857758, 37.769145996], [-122.470888475, 37.770115386], [-122.470427062, 37.769533565], [-122.469961758, 37.769580407], [-122.469285752, 37.770367991], [-122.469720711, 37.770844892], [-122.470806204, 37.770466344], [-122.470891994, 37.77012707], [-122.470792604, 37.770821543], [-122.470556605, 37.771059045], [-122.470256206, 37.771042044], [-122.470042415, 37.771709614], [-122.469488018, 37.772096003], [-122.468099367, 37.772529471], [-122.468034372, 37.773206013], [-122.463789699, 37.773534206]]], [[[-122.46654163, 37.766024755], [-122.477162441, 37.765549707], [-122.477229361, 37.765926463], [-122.473103773, 37.767062144], [-122.472580114, 37.767520597], [-122.471985034, 37.768779387], [-122.47132126, 37.769085425], [-122.470332917, 37.769171424], [-122.468792325, 37.768910159], [-122.466879673, 37.767856163], [-122.46654163, 37.766024755]]], [[[-122.469494226, 37.770649649], [-122.469285752, 37.770367991], [-122.469749657, 37.769745585], [-122.470427062, 37.769533565], [-122.470896202, 37.77012149], [-122.470806204, 37.770466344], [-122.469720711, 37.770844892], [-122.469494226, 37.770649649]]], [[[-122.459527303, 37.772432846], [-122.460943503, 37.772348045], [-122.460879203, 37.772704245], [-122.460214004, 37.772924745], [-122.459505904, 37.772738145], [-122.459527303, 37.772432846]]], [[[-122.468137175, 37.773218955], [-122.468099367, 37.772529471], [-122.469488018, 37.772096003], [-122.470042415, 37.771709614], [-122.470256206, 37.771042044], [-122.470556605, 37.771059045], [-122.470792604, 37.770821543], [-122.470857758, 37.769145996], [-122.472099819, 37.768680547], [-122.472848105, 37.767214957], [-122.477177863, 37.7659858], [-122.477173692, 37.76555246], [-122.488130773, 37.765065909], [-122.488832115, 37.765622569], [-122.49101681, 37.765414726], [-122.492927235, 37.766149438], [-122.49112897, 37.7666958], [-122.488342289, 37.767903667], [-122.484217001, 37.768622922], [-122.479903242, 37.769917216], [-122.47947676, 37.76988201], [-122.479908634, 37.770500922], [-122.480449981, 37.770321651], [-122.481798562, 37.771893046], [-122.483738809, 37.771907797], [-122.484258174, 37.772467733], [-122.468137175, 37.773218955]]], [[[-122.484346887, 37.772481082], [-122.483752362, 37.771907569], [-122.481812117, 37.771892819], [-122.480463533, 37.770321424], [-122.479922187, 37.770500694], [-122.479490313, 37.769881783], [-122.479916797, 37.769916988], [-122.484230554, 37.768622694], [-122.48835584, 37.76790344], [-122.491142521, 37.766695572], [-122.492940788, 37.766149208], [-122.491030362, 37.765414497], [-122.488845667, 37.765622341], [-122.488144435, 37.765064089], [-122.496113791, 37.764710776], [-122.496159472, 37.765380204], [-122.498380911, 37.765146405], [-122.496171561, 37.76636599], [-122.495375261, 37.766512912], [-122.49511776, 37.766954012], [-122.495525461, 37.767276313], [-122.497563861, 37.767276313], [-122.497478061, 37.768141313], [-122.498121762, 37.768802913], [-122.499816962, 37.768395812], [-122.499816962, 37.769023412], [-122.500675264, 37.770142812], [-122.500334417, 37.771761423], [-122.484346887, 37.772481082]]], [[[-122.500320864, 37.771761652], [-122.500661709, 37.770143042], [-122.49980341, 37.769023642], [-122.499803409, 37.768396042], [-122.498108209, 37.768803143], [-122.497464508, 37.768141542], [-122.497550309, 37.767276542], [-122.495511909, 37.767276542], [-122.495104209, 37.766954242], [-122.495361708, 37.766513142], [-122.496158009, 37.766366221], [-122.498367359, 37.765146634], [-122.49614592, 37.765380434], [-122.496100237, 37.764711006], [-122.510233656, 37.76410912], [-122.510249285, 37.76719813], [-122.510845217, 37.771256785], [-122.500320864, 37.771761652]]], [[[-122.510962117, 37.77290023], [-122.510944314, 37.771996087], [-122.511073738, 37.773027806], [-122.510962117, 37.77290023]]], [[[-122.456534779, 37.770957049], [-122.455302931, 37.770934733], [-122.455419183, 37.770379222], [-122.454925756, 37.769325864], [-122.454927302, 37.768572921], [-122.455369725, 37.768131841], [-122.458289767, 37.767285013], [-122.457802704, 37.766139053], [-122.458570056, 37.766376238], [-122.460441425, 37.766288232], [-122.45986138, 37.766562065], [-122.460527149, 37.766305509], [-122.466549144, 37.766018429], [-122.466691175, 37.767563718], [-122.46706553, 37.767972728], [-122.464769411, 37.769529801], [-122.461813237, 37.770291588], [-122.459913993, 37.770446671], [-122.459450999, 37.770764857], [-122.459175105, 37.771319339], [-122.456534779, 37.770957049]]]] } }, { "type": "Feature", "id": "lincoln-park", "bbox": [-122.505078904, 37.781351688, -122.493336372, 37.787191486], "properties": { "name": "Lincoln Park", "label": [-122.496, 37.7835], "offset": [0, -12], "anchor": "middle" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.500609765, 37.786106978], [-122.50017749, 37.785966393], [-122.499344762, 37.786557087], [-122.498965856, 37.786586009], [-122.497321783, 37.786301175], [-122.495149169, 37.786704601], [-122.494178331, 37.786388199], [-122.493799996, 37.786891533], [-122.493336372, 37.781706908], [-122.501115367, 37.781351688], [-122.501340202, 37.784146099], [-122.504154106, 37.784017625], [-122.505078904, 37.78524268], [-122.503519892, 37.786024866], [-122.50335983, 37.786485535], [-122.501814937, 37.787191486], [-122.501168723, 37.787010725], [-122.501022942, 37.786395343], [-122.500609765, 37.786106978]]]] } }, { "type": "Feature", "id": "mclaren-park", "bbox": [-122.427265808, 37.710355665, -122.408006004, 37.724624177], "properties": { "name": "McLaren Park", "label": [-122.419, 37.7181], "offset": [0, 18], "anchor": "middle" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.419916146, 37.724624177], [-122.419425463, 37.723428057], [-122.418449759, 37.723685303], [-122.417946261, 37.722486723], [-122.416962597, 37.722739181], [-122.416636994, 37.721964058], [-122.415484536, 37.722253848], [-122.415166343, 37.721784737], [-122.414299528, 37.721398802], [-122.412172797, 37.721667697], [-122.410990662, 37.71878507], [-122.409018745, 37.719295615], [-122.408765727, 37.71889002], [-122.408997002, 37.718387697], [-122.408317292, 37.718188402], [-122.408850849, 37.716940181], [-122.408006004, 37.716781215], [-122.408144955, 37.716456144], [-122.408471778, 37.716545716], [-122.408555146, 37.716350672], [-122.409862444, 37.716708947], [-122.409918019, 37.716578918], [-122.410244848, 37.716668484], [-122.410565042, 37.716357092], [-122.41220473, 37.716801706], [-122.413195993, 37.716460071], [-122.413192316, 37.716317238], [-122.414063805, 37.716196654], [-122.414348468, 37.715292493], [-122.415488717, 37.715601828], [-122.415453244, 37.714363111], [-122.415685765, 37.713847462], [-122.415325934, 37.71374963], [-122.415423573, 37.713508485], [-122.416121954, 37.713936415], [-122.416305087, 37.714672396], [-122.416770566, 37.71458345], [-122.417680616, 37.713560909], [-122.417663044, 37.713041201], [-122.421784623, 37.714208864], [-122.422026794, 37.713698039], [-122.423695182, 37.714168941], [-122.424279339, 37.712741367], [-122.422655139, 37.712271233], [-122.423206981, 37.711127402], [-122.42258303, 37.710911], [-122.423992254, 37.710690369], [-122.423973323, 37.710355665], [-122.426600546, 37.711593378], [-122.425318174, 37.714395645], [-122.427265808, 37.71489706], [-122.427119357, 37.715639607], [-122.42619021, 37.718299579], [-122.425607553, 37.717928496], [-122.425051395, 37.716920299], [-122.422918519, 37.718262677], [-122.423356258, 37.718887177], [-122.423498187, 37.719844831], [-122.425546278, 37.720366998], [-122.42437179, 37.721921074], [-122.425208631, 37.722320019], [-122.424376216, 37.723527328], [-122.419916146, 37.724624177]]]] } }, { "type": "Feature", "id": "dolores-park", "bbox": [-122.428346126, 37.758154746, -122.425929253, 37.761374942], "properties": { "name": "Dolores Park", "label": [-122.4271, 37.7598], "offset": [-10, 4], "anchor": "end" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.42621774, 37.761313178], [-122.425933772, 37.758298388], [-122.428030617, 37.758157089], [-122.428345348, 37.761211548], [-122.428185666, 37.760889668], [-122.428250495, 37.761252251], [-122.42621774, 37.761313178]]]] } }, { "type": "Feature", "id": "twin-peaks", "bbox": [-122.450751642, 37.746013868, -122.445402674, 37.754127349], "properties": { "name": "Twin Peaks", "label": [-122.4479, 37.7509], "offset": [-12, 4], "anchor": "end" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.446330516, 37.75149657], [-122.446736049, 37.751495238], [-122.447368985, 37.750225059], [-122.445601605, 37.749387786], [-122.445487083, 37.748769045], [-122.445840833, 37.748569465], [-122.446425289, 37.748594664], [-122.4476072, 37.749323056], [-122.448081898, 37.748646095], [-122.448538444, 37.746657013], [-122.44949488, 37.746190442], [-122.450718472, 37.746023997], [-122.449178955, 37.746758884], [-122.447698454, 37.749446512], [-122.446253898, 37.748719141], [-122.445608094, 37.748908619], [-122.445712285, 37.749288402], [-122.446572625, 37.749827132], [-122.447974261, 37.750313128], [-122.448296336, 37.750216301], [-122.449134941, 37.749207803], [-122.449420891, 37.749156942], [-122.449622769, 37.749383346], [-122.449227357, 37.750563958], [-122.448697524, 37.750827026], [-122.447745675, 37.75080512], [-122.447032298, 37.751524655], [-122.447383296, 37.752542712], [-122.44666961, 37.753445727], [-122.44704088, 37.753987749], [-122.445658196, 37.753819136], [-122.446693476, 37.752496372], [-122.446330516, 37.75149657]]], [[[-122.447939889, 37.750851102], [-122.448604124, 37.751037061], [-122.448344006, 37.751866095], [-122.447557701, 37.7523129], [-122.447110425, 37.751636514], [-122.447939889, 37.750851102]]], [[[-122.447547293, 37.752670503], [-122.448106136, 37.753491362], [-122.447215842, 37.753963419], [-122.446795433, 37.75338783], [-122.447547293, 37.752670503]]], [[[-122.448660841, 37.751178381], [-122.449566573, 37.750302859], [-122.449773661, 37.749682249], [-122.449594014, 37.749165847], [-122.449024579, 37.749178726], [-122.447990476, 37.750232705], [-122.446851832, 37.749875125], [-122.445817182, 37.749244157], [-122.445749827, 37.748902537], [-122.446293618, 37.748822803], [-122.447520472, 37.749559044], [-122.447992976, 37.749430928], [-122.447673818, 37.74994782], [-122.447993658, 37.750086861], [-122.449101766, 37.748958692], [-122.449593389, 37.748971881], [-122.449929374, 37.749340885], [-122.450027644, 37.750307079], [-122.449297738, 37.751310539], [-122.44913292, 37.75199627], [-122.448209818, 37.752539701], [-122.448947785, 37.754021618], [-122.447512757, 37.754037346], [-122.448193605, 37.753548051], [-122.447698141, 37.752466726], [-122.448440117, 37.75190301], [-122.448660841, 37.751178381]]]] } }, { "type": "Feature", "id": "presidio", "bbox": [-122.48598078755872, 37.786790577621325, -122.44647397402353, 37.811025401937634], "properties": { "name": "Presidio", "label": [-122.466, 37.799], "offset": [0, 0], "anchor": "middle" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.47320105664052, 37.78721660548222], [-122.4745537280318, 37.786950318169644], [-122.47454214823001, 37.786790577621325], [-122.47675021622688, 37.78685125883496], [-122.47727714554647, 37.78702685346136], [-122.4779829765058, 37.78684586161814], [-122.48089433810927, 37.78701636178681], [-122.48147292932534, 37.787227445774505], [-122.48217472576343, 37.78724499621108], [-122.48237050875154, 37.78709063013397], [-122.48464285317212, 37.78737878533401], [-122.48466743669667, 37.78752958506124], [-122.48415030179557, 37.78755468309154], [-122.48370790142899, 37.78877712013687], [-122.48382290532508, 37.78928273089158], [-122.48471722132957, 37.78955645643663], [-122.48505250784541, 37.790367992302684], [-122.48598078755872, 37.790803460511135], [-122.48436408721982, 37.79273978948222], [-122.4835930259187, 37.79403513315391], [-122.48329386416182, 37.79467123701157], [-122.48351786484277, 37.794730018812814], [-122.48207909546979, 37.798472234953906], [-122.48183124637096, 37.79857395443075], [-122.48193337128666, 37.7987749206443], [-122.48155413537286, 37.79874823138816], [-122.48168549252142, 37.798930036720215], [-122.48110630315662, 37.799613015841835], [-122.48097424630762, 37.80033090940849], [-122.48020230905269, 37.801416965889224], [-122.47989898314036, 37.80289755888889], [-122.47872908698903, 37.805492611321895], [-122.47840512957187, 37.80809330830708], [-122.47789620306555, 37.80844904353552], [-122.4779827947981, 37.81054499268309], [-122.47769135059653, 37.8106279232068], [-122.47773818038137, 37.81094296744406], [-122.47646645701259, 37.81083647637273], [-122.4760486272011, 37.80963984307043], [-122.47480154464486, 37.80917933095321], [-122.47266638137003, 37.809034062288106], [-122.47060108370172, 37.80859892469956], [-122.46992295374415, 37.80943513627851], [-122.4694031213374, 37.809203749869745], [-122.4694457056319, 37.809068068682336], [-122.47004685361424, 37.80928875928312], [-122.47053667576192, 37.80858248560048], [-122.46930446828206, 37.80772703241594], [-122.46879005846057, 37.80700281442103], [-122.46830302229266, 37.80681790224474], [-122.46814854551367, 37.80698053371517], [-122.46815494282775, 37.8067001769564], [-122.46667067845313, 37.80580284233949], [-122.46605790015646, 37.80641611820378], [-122.46588856323116, 37.80630831672921], [-122.46612372587693, 37.806324567219], [-122.46665191564561, 37.8057909610574], [-122.46357930812047, 37.80487981539589], [-122.46160190149648, 37.80495706366093], [-122.45839436009298, 37.805481831368155], [-122.45448347611784, 37.806469137180315], [-122.45243873445101, 37.80626725684183], [-122.4493040709117, 37.80683742864506], [-122.44872848182982, 37.80670159837632], [-122.44839841159059, 37.80459236526121], [-122.44951632124076, 37.803920258470214], [-122.44984287616094, 37.80281718582641], [-122.44919941718919, 37.801805633758896], [-122.44788704698945, 37.80135890790842], [-122.44691333315089, 37.79500721412724], [-122.44713720201975, 37.79500612806063], [-122.44711719281482, 37.794243088316385], [-122.44679644259202, 37.794244644397715], [-122.44647397402353, 37.79214151726552], [-122.47100432190123, 37.787234062358436], [-122.47100383184892, 37.787649114408424], [-122.47320105664052, 37.78721660548222]]]] } }] }
1
+ { "type": "FeatureCollection", "schemaVersion": 1, "id": "guide-parks-overview", "title": "Major park outlines", "coordinateSystem": "WGS84 longitude, latitude (EPSG:4326)", "definition": { "kind": "park-properties", "description": "Six selected property areas. Golden Gate Park combines sections 1–7. Labels use hand-positioned display anchors." }, "sources": [{ "id": "rpd-properties", "title": "Recreation and Parks Properties", "url": "https://data.sf.gov/resource/gtr9-ntp6.geojson?$limit=1000", "retrievedAt": "2026-09-25", "licenseUrl": "https://datasf.org/opendata/terms-of-use/" }, { "id": "presidio", "title": "Presidio Boundary Polygon", "url": "https://data.sf.gov/resource/jt6f-vx2z.geojson", "retrievedAt": "2026-09-25", "licenseUrl": "https://datasf.org/opendata/terms-of-use/" }], "features": [{ "type": "Feature", "id": "golden-gate-park", "bbox": [-122.511122943, 37.764093235, -122.440868541, 37.774681275], "properties": { "name": "Golden Gate Park", "label": [-122.482, 37.7694], "offset": [0, 0], "anchor": "middle" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.454733525, 37.774624933], [-122.45417498, 37.771867857], [-122.446015886, 37.772904115], [-122.445864152, 37.772153301], [-122.454040057, 37.771115325], [-122.453097132, 37.766460305], [-122.454025538, 37.766563385], [-122.453975755, 37.766314844], [-122.457406474, 37.765978582], [-122.457802722, 37.766139026], [-122.458289786, 37.767284986], [-122.455024548, 37.768371182], [-122.454872195, 37.769075753], [-122.455419201, 37.770379195], [-122.455302949, 37.770934706], [-122.456534797, 37.770957022], [-122.461196861, 37.771630433], [-122.464137436, 37.772324615], [-122.463789699, 37.773534206], [-122.454733525, 37.774624933]]], [[[-122.460879203, 37.772704245], [-122.460943503, 37.772348045], [-122.459527303, 37.772432846], [-122.459505904, 37.772738145], [-122.460214004, 37.772924745], [-122.460879203, 37.772704245]]], [[[-122.440903168, 37.772786185], [-122.445644128, 37.772180623], [-122.445817555, 37.772920614], [-122.441013108, 37.773533166], [-122.440903168, 37.772786185]]], [[[-122.463789699, 37.773534206], [-122.464137436, 37.772324615], [-122.459175123, 37.771319312], [-122.459554723, 37.770650202], [-122.460120797, 37.770404394], [-122.461813255, 37.770291561], [-122.464415116, 37.769674371], [-122.467065548, 37.767972701], [-122.469058524, 37.768998161], [-122.470857758, 37.769145996], [-122.470888475, 37.770115386], [-122.470427062, 37.769533565], [-122.469961758, 37.769580407], [-122.469285752, 37.770367991], [-122.469720711, 37.770844892], [-122.470806204, 37.770466344], [-122.470891994, 37.77012707], [-122.470792604, 37.770821543], [-122.470556605, 37.771059045], [-122.470256206, 37.771042044], [-122.470042415, 37.771709614], [-122.469488018, 37.772096003], [-122.468099367, 37.772529471], [-122.468034372, 37.773206013], [-122.463789699, 37.773534206]]], [[[-122.46654163, 37.766024755], [-122.477162441, 37.765549707], [-122.477229361, 37.765926463], [-122.473103773, 37.767062144], [-122.472580114, 37.767520597], [-122.471985034, 37.768779387], [-122.47132126, 37.769085425], [-122.470332917, 37.769171424], [-122.468792325, 37.768910159], [-122.466879673, 37.767856163], [-122.46654163, 37.766024755]]], [[[-122.469494226, 37.770649649], [-122.469285752, 37.770367991], [-122.469749657, 37.769745585], [-122.470427062, 37.769533565], [-122.470896202, 37.77012149], [-122.470806204, 37.770466344], [-122.469720711, 37.770844892], [-122.469494226, 37.770649649]]], [[[-122.459527303, 37.772432846], [-122.460943503, 37.772348045], [-122.460879203, 37.772704245], [-122.460214004, 37.772924745], [-122.459505904, 37.772738145], [-122.459527303, 37.772432846]]], [[[-122.468137175, 37.773218955], [-122.468099367, 37.772529471], [-122.469488018, 37.772096003], [-122.470042415, 37.771709614], [-122.470256206, 37.771042044], [-122.470556605, 37.771059045], [-122.470792604, 37.770821543], [-122.470857758, 37.769145996], [-122.472099819, 37.768680547], [-122.472848105, 37.767214957], [-122.477177863, 37.7659858], [-122.477173692, 37.76555246], [-122.488130773, 37.765065909], [-122.488832115, 37.765622569], [-122.49101681, 37.765414726], [-122.492927235, 37.766149438], [-122.49112897, 37.7666958], [-122.488342289, 37.767903667], [-122.484217001, 37.768622922], [-122.479903242, 37.769917216], [-122.47947676, 37.76988201], [-122.479908634, 37.770500922], [-122.480449981, 37.770321651], [-122.481798562, 37.771893046], [-122.483738809, 37.771907797], [-122.484258174, 37.772467733], [-122.468137175, 37.773218955]]], [[[-122.484346887, 37.772481082], [-122.483752362, 37.771907569], [-122.481812117, 37.771892819], [-122.480463533, 37.770321424], [-122.479922187, 37.770500694], [-122.479490313, 37.769881783], [-122.479916797, 37.769916988], [-122.484230554, 37.768622694], [-122.48835584, 37.76790344], [-122.491142521, 37.766695572], [-122.492940788, 37.766149208], [-122.491030362, 37.765414497], [-122.488845667, 37.765622341], [-122.488144435, 37.765064089], [-122.496113791, 37.764710776], [-122.496159472, 37.765380204], [-122.498380911, 37.765146405], [-122.496171561, 37.76636599], [-122.495375261, 37.766512912], [-122.49511776, 37.766954012], [-122.495525461, 37.767276313], [-122.497563861, 37.767276313], [-122.497478061, 37.768141313], [-122.498121762, 37.768802913], [-122.499816962, 37.768395812], [-122.499816962, 37.769023412], [-122.500675264, 37.770142812], [-122.500334417, 37.771761423], [-122.484346887, 37.772481082]]], [[[-122.500320864, 37.771761652], [-122.500661709, 37.770143042], [-122.49980341, 37.769023642], [-122.499803409, 37.768396042], [-122.498108209, 37.768803143], [-122.497464508, 37.768141542], [-122.497550309, 37.767276542], [-122.495511909, 37.767276542], [-122.495104209, 37.766954242], [-122.495361708, 37.766513142], [-122.496158009, 37.766366221], [-122.498367359, 37.765146634], [-122.49614592, 37.765380434], [-122.496100237, 37.764711006], [-122.510233656, 37.76410912], [-122.510249285, 37.76719813], [-122.510845217, 37.771256785], [-122.500320864, 37.771761652]]], [[[-122.510962117, 37.77290023], [-122.510805046, 37.7721851], [-122.510944314, 37.771996087], [-122.511073738, 37.773027806], [-122.510962117, 37.77290023]]], [[[-122.456534779, 37.770957049], [-122.455302931, 37.770934733], [-122.455419183, 37.770379222], [-122.454925756, 37.769325864], [-122.454927302, 37.768572921], [-122.455369725, 37.768131841], [-122.458289767, 37.767285013], [-122.457802704, 37.766139053], [-122.458570056, 37.766376238], [-122.460441425, 37.766288232], [-122.45986138, 37.766562065], [-122.460527149, 37.766305509], [-122.466549144, 37.766018429], [-122.466691175, 37.767563718], [-122.46706553, 37.767972728], [-122.464769411, 37.769529801], [-122.461813237, 37.770291588], [-122.459913993, 37.770446671], [-122.459450999, 37.770764857], [-122.459175105, 37.771319339], [-122.456534779, 37.770957049]]]] } }, { "type": "Feature", "id": "lincoln-park", "bbox": [-122.505078904, 37.781351688, -122.493336372, 37.787191486], "properties": { "name": "Lincoln Park", "label": [-122.496, 37.7835], "offset": [0, -12], "anchor": "middle" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.500609765, 37.786106978], [-122.50017749, 37.785966393], [-122.499344762, 37.786557087], [-122.498965856, 37.786586009], [-122.497321783, 37.786301175], [-122.495149169, 37.786704601], [-122.494178331, 37.786388199], [-122.493799996, 37.786891533], [-122.493336372, 37.781706908], [-122.501115367, 37.781351688], [-122.501340202, 37.784146099], [-122.504154106, 37.784017625], [-122.505078904, 37.78524268], [-122.503519892, 37.786024866], [-122.50335983, 37.786485535], [-122.501814937, 37.787191486], [-122.501168723, 37.787010725], [-122.501022942, 37.786395343], [-122.500609765, 37.786106978]]]] } }, { "type": "Feature", "id": "mclaren-park", "bbox": [-122.427265808, 37.710355665, -122.408006004, 37.724624177], "properties": { "name": "McLaren Park", "label": [-122.419, 37.7181], "offset": [0, 18], "anchor": "middle" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.419916146, 37.724624177], [-122.419425463, 37.723428057], [-122.418449759, 37.723685303], [-122.417946261, 37.722486723], [-122.416962597, 37.722739181], [-122.416636994, 37.721964058], [-122.415484536, 37.722253848], [-122.415166343, 37.721784737], [-122.414299528, 37.721398802], [-122.412172797, 37.721667697], [-122.410990662, 37.71878507], [-122.409018745, 37.719295615], [-122.408765727, 37.71889002], [-122.408997002, 37.718387697], [-122.408317292, 37.718188402], [-122.408850849, 37.716940181], [-122.408006004, 37.716781215], [-122.408144955, 37.716456144], [-122.408471778, 37.716545716], [-122.408555146, 37.716350672], [-122.409862444, 37.716708947], [-122.409918019, 37.716578918], [-122.410244848, 37.716668484], [-122.410565042, 37.716357092], [-122.41220473, 37.716801706], [-122.413195993, 37.716460071], [-122.413192316, 37.716317238], [-122.414063805, 37.716196654], [-122.414348468, 37.715292493], [-122.415488717, 37.715601828], [-122.415453244, 37.714363111], [-122.415685765, 37.713847462], [-122.415325934, 37.71374963], [-122.415423573, 37.713508485], [-122.416121954, 37.713936415], [-122.416305087, 37.714672396], [-122.416770566, 37.71458345], [-122.417680616, 37.713560909], [-122.417663044, 37.713041201], [-122.421784623, 37.714208864], [-122.422026794, 37.713698039], [-122.423695182, 37.714168941], [-122.424279339, 37.712741367], [-122.422655139, 37.712271233], [-122.423206981, 37.711127402], [-122.42258303, 37.710911], [-122.423992254, 37.710690369], [-122.423973323, 37.710355665], [-122.426600546, 37.711593378], [-122.425318174, 37.714395645], [-122.427265808, 37.71489706], [-122.427119357, 37.715639607], [-122.42619021, 37.718299579], [-122.425607553, 37.717928496], [-122.425051395, 37.716920299], [-122.422918519, 37.718262677], [-122.423356258, 37.718887177], [-122.423498187, 37.719844831], [-122.425546278, 37.720366998], [-122.42437179, 37.721921074], [-122.425208631, 37.722320019], [-122.424376216, 37.723527328], [-122.419916146, 37.724624177]]]] } }, { "type": "Feature", "id": "dolores-park", "bbox": [-122.428346126, 37.758154746, -122.425929253, 37.761374942], "properties": { "name": "Dolores Park", "label": [-122.4271, 37.7598], "offset": [-10, 4], "anchor": "end" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.42621774, 37.761313178], [-122.425933772, 37.758298388], [-122.428030617, 37.758157089], [-122.428345348, 37.761211548], [-122.428185666, 37.760889668], [-122.428250495, 37.761252251], [-122.42621774, 37.761313178]]]] } }, { "type": "Feature", "id": "twin-peaks", "bbox": [-122.450751642, 37.746013868, -122.445402674, 37.754127349], "properties": { "name": "Twin Peaks", "label": [-122.4479, 37.7509], "offset": [-12, 4], "anchor": "end" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.446330516, 37.75149657], [-122.446736049, 37.751495238], [-122.447368985, 37.750225059], [-122.445601605, 37.749387786], [-122.445487083, 37.748769045], [-122.445840833, 37.748569465], [-122.446425289, 37.748594664], [-122.4476072, 37.749323056], [-122.448081898, 37.748646095], [-122.448538444, 37.746657013], [-122.44949488, 37.746190442], [-122.450718472, 37.746023997], [-122.449178955, 37.746758884], [-122.447698454, 37.749446512], [-122.446253898, 37.748719141], [-122.445608094, 37.748908619], [-122.445712285, 37.749288402], [-122.446572625, 37.749827132], [-122.447974261, 37.750313128], [-122.448296336, 37.750216301], [-122.449134941, 37.749207803], [-122.449420891, 37.749156942], [-122.449622769, 37.749383346], [-122.449227357, 37.750563958], [-122.448697524, 37.750827026], [-122.447745675, 37.75080512], [-122.447032298, 37.751524655], [-122.447383296, 37.752542712], [-122.44666961, 37.753445727], [-122.44704088, 37.753987749], [-122.445658196, 37.753819136], [-122.446693476, 37.752496372], [-122.446330516, 37.75149657]]], [[[-122.447939889, 37.750851102], [-122.448604124, 37.751037061], [-122.448344006, 37.751866095], [-122.447557701, 37.7523129], [-122.447110425, 37.751636514], [-122.447939889, 37.750851102]]], [[[-122.447547293, 37.752670503], [-122.448106136, 37.753491362], [-122.447215842, 37.753963419], [-122.446795433, 37.75338783], [-122.447547293, 37.752670503]]], [[[-122.448660841, 37.751178381], [-122.449566573, 37.750302859], [-122.449773661, 37.749682249], [-122.449594014, 37.749165847], [-122.449024579, 37.749178726], [-122.447990476, 37.750232705], [-122.446851832, 37.749875125], [-122.445817182, 37.749244157], [-122.445749827, 37.748902537], [-122.446293618, 37.748822803], [-122.447520472, 37.749559044], [-122.447992976, 37.749430928], [-122.447673818, 37.74994782], [-122.447993658, 37.750086861], [-122.449101766, 37.748958692], [-122.449593389, 37.748971881], [-122.449929374, 37.749340885], [-122.450027644, 37.750307079], [-122.449297738, 37.751310539], [-122.44913292, 37.75199627], [-122.448209818, 37.752539701], [-122.448947785, 37.754021618], [-122.447512757, 37.754037346], [-122.448193605, 37.753548051], [-122.447698141, 37.752466726], [-122.448440117, 37.75190301], [-122.448660841, 37.751178381]]]] } }, { "type": "Feature", "id": "presidio", "bbox": [-122.48598078755872, 37.786790577621325, -122.44647397402353, 37.811025401937634], "properties": { "name": "Presidio", "label": [-122.466, 37.799], "offset": [0, 0], "anchor": "middle" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-122.47320105664052, 37.78721660548222], [-122.4745537280318, 37.786950318169644], [-122.47454214823001, 37.786790577621325], [-122.47675021622688, 37.78685125883496], [-122.47727714554647, 37.78702685346136], [-122.4779829765058, 37.78684586161814], [-122.48089433810927, 37.78701636178681], [-122.48147292932534, 37.787227445774505], [-122.48217472576343, 37.78724499621108], [-122.48237050875154, 37.78709063013397], [-122.48464285317212, 37.78737878533401], [-122.48466743669667, 37.78752958506124], [-122.48415030179557, 37.78755468309154], [-122.48370790142899, 37.78877712013687], [-122.48382290532508, 37.78928273089158], [-122.48471722132957, 37.78955645643663], [-122.48505250784541, 37.790367992302684], [-122.48598078755872, 37.790803460511135], [-122.48436408721982, 37.79273978948222], [-122.4835930259187, 37.79403513315391], [-122.48329386416182, 37.79467123701157], [-122.48351786484277, 37.794730018812814], [-122.48207909546979, 37.798472234953906], [-122.48183124637096, 37.79857395443075], [-122.48193337128666, 37.7987749206443], [-122.48155413537286, 37.79874823138816], [-122.48168549252142, 37.798930036720215], [-122.48110630315662, 37.799613015841835], [-122.48097424630762, 37.80033090940849], [-122.48020230905269, 37.801416965889224], [-122.47989898314036, 37.80289755888889], [-122.47872908698903, 37.805492611321895], [-122.47840512957187, 37.80809330830708], [-122.47789620306555, 37.80844904353552], [-122.4779827947981, 37.81054499268309], [-122.47769135059653, 37.8106279232068], [-122.47773818038137, 37.81094296744406], [-122.47646645701259, 37.81083647637273], [-122.4760486272011, 37.80963984307043], [-122.47480154464486, 37.80917933095321], [-122.47266638137003, 37.809034062288106], [-122.47060108370172, 37.80859892469956], [-122.46992295374415, 37.80943513627851], [-122.4694031213374, 37.809203749869745], [-122.4694457056319, 37.809068068682336], [-122.47004685361424, 37.80928875928312], [-122.47053667576192, 37.80858248560048], [-122.46930446828206, 37.80772703241594], [-122.46879005846057, 37.80700281442103], [-122.46830302229266, 37.80681790224474], [-122.46814854551367, 37.80698053371517], [-122.46815494282775, 37.8067001769564], [-122.46667067845313, 37.80580284233949], [-122.46605790015646, 37.80641611820378], [-122.46588856323116, 37.80630831672921], [-122.46612372587693, 37.806324567219], [-122.46665191564561, 37.8057909610574], [-122.46357930812047, 37.80487981539589], [-122.46160190149648, 37.80495706366093], [-122.45839436009298, 37.805481831368155], [-122.45448347611784, 37.806469137180315], [-122.45243873445101, 37.80626725684183], [-122.4493040709117, 37.80683742864506], [-122.44872848182982, 37.80670159837632], [-122.44839841159059, 37.80459236526121], [-122.44951632124076, 37.803920258470214], [-122.44984287616094, 37.80281718582641], [-122.44919941718919, 37.801805633758896], [-122.44788704698945, 37.80135890790842], [-122.44691333315089, 37.79500721412724], [-122.44713720201975, 37.79500612806063], [-122.44711719281482, 37.794243088316385], [-122.44679644259202, 37.794244644397715], [-122.44647397402353, 37.79214151726552], [-122.47100432190123, 37.787234062358436], [-122.47100383184892, 37.787649114408424], [-122.47320105664052, 37.78721660548222]]]] } }] }