- Python 71%
- HTML 29%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Same fix as glenridge-map, ported here -- neither town page had any social-preview metadata before this. og-image.png for each is a real Playwright screenshot of that town's own map at 1200x630, not a generic placeholder. |
||
| bloomfield | ||
| montclair | ||
| fetch_data.py | ||
| README.md | ||
nj-town-maps
Plain reference "ink maps" (boundary + every street, no basemap tiles) for two towns neighboring Glen Ridge, NJ — Bloomfield and Montclair — built with the exact same data pipeline and rendering library as glenridge-map, just pointed at different towns' data.
This repo does not fork or vendor glenridge-map.js/.css — both
towns' index.html load them straight from https://map.jonathan.gluck.dev/
(that site already serves them with Access-Control-Allow-Origin: *
specifically so other origins can embed them). This repo only contains:
bloomfield/
data/{boundary,streets}.geojson
index.html
montclair/
data/{boundary,streets}.geojson
index.html
fetch_data.py
Each index.html is a copy of glenridge-map's own reference page (same
palette, same "tap or hover a street" behavior), just retitled and pointed
at data/ relative to itself for that town's GeoJSON. No data layer is
active in either — that's deliberately not this repo's job, same reasoning
as glenridge-map's own index.html.
Regenerating the data
Same two-source pipeline as glenridge-map (see that repo's own
fetch_data.py for the fuller rationale write-up): OSM/Nominatim for the
real boundary polygon (not a bounding box — a bbox around a town this size
pulls in neighboring towns' streets), TIGERweb for the street geometry
inside that polygon.
python3 fetch_data.py bloomfield "Bloomfield, Essex County, New Jersey"
python3 fetch_data.py montclair "Montclair, Essex County, New Jersey"
Both queries resolved to a single, unambiguous boundary/administrative
Nominatim relation each (no same-named-town-in-another-state collision to
worry about here) — fetch_data.py still refuses to proceed if a query
returns no administrative boundary polygon, or if the winning result's
display_name doesn't contain "New Jersey", as a safety net for reuse
against other town names later.
Deploying
No container, no CI, same pattern as glenridge-map:
sudo cp -r bloomfield/* /var/www/bloomfield-map/
sudo cp -r montclair/* /var/www/montclair-map/
Live at https://bloomfield-map.jonathan.gluck.dev and
https://montclair-map.jonathan.gluck.dev (Caddy blocks in the caddyfiles
repo).