- scripts/custom-layers.mjs: hand-authored, self-documenting config for
custom zones (polygons) and points of interest, shipped with example
Tulsa POIs and district zones plus a copy-paste template
- osm-data.mjs: merges custom layers into static/data/custom/<id>.geojson
and includes them in the _index.json manifest with category, layerType,
and color metadata
- MapView.svelte: renders each manifest entry as an independent toggleable
Leaflet layer with per-layer styling and an on-map legend panel
- +page.svelte: loads all data sources (OSM + custom) from the manifest
- SvelteKit project with @sveltejs/adapter-static (runs fully static)
- scripts/osm-data.mjs: pulls OSM data from Overpass API and converts to
static GeoJSON under static/data/ with per-area manifest
- Leaflet map frontend that loads the static data and renders features
with popups and area selection dropdown
- npm run build fetches data then produces a self-contained static site