- src/lib/search.ts: dependency-free fuzzy search engine that matches POIs
and zones by name/address with text normalization (st->street, compass
words), substring + Levenshtein fuzzy matching, and field-aware ranking
- MapView.svelte: builds a searchable index from loaded layers, adds a
search box that shows ranked results, pans/zooms + opens popup on select,
and renders dedicated popup rows for address, Facing (compass), and
Field of view
- custom-layers.mjs: documents optional address / bearing / fov POI fields
with examples; osm-data.mjs normalizes bearing (compass point or degrees)
into degrees and carries the new properties through to GeoJSON
- README: documents POI data fields and the search feature
- 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