refactor(street-level): one provider, no orbit overview, no prewarm, simpler tile choice

The layer now owns its Mapillary parts directly: the provider registry,
pick router, multi-provider UI summary, params codec helper and provider
context are gone. createStreetLevelLayer({ source }) builds coverage,
sequences, the nearest-image lookup and the MapillaryJS viewer itself; a
single providerOn switch keeps the share link's `mapillary` option (off
draws nothing), and getParams/setParams keep { mapillary, pano, sinceDays }.

No z0-5 overview points: above 60 km nothing is drawn and the panel says to
zoom in; the proxy now serves only coverage z11-14. Tiles come from the
visible ground within range of the camera, ranked from the ground under it
(no line-of-sight ranking or near-range padding). MapillaryJS loads on the
first photo; viewer prewarm is removed. Key status, a rejected key and a
rate limit share one `blocked` state on coverage.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
German KhokhlovandClaude Opus 5.5 committed 2026-10-07 22:19:24 +04:00
1 parent 0f41fb04cd
commit 37a96072fa
51 files changed
+1240 -2659

No files matched your search

+8 -8
View File
@@ -2,14 +2,14 @@
## [Unreleased]
- Street Level: a street-level imagery layer modelled on the iD editor's photo
overlay, with Mapillary as its first provider (free client token, CC BY-SA 4.0
imagery). One right-rail panel holds an ON/OFF pill, shared 360°/flat and
captured-since filters, a legend, and an embedded viewer with full-screen
EXPAND and FIT/FILL. Coverage lines and image cones are drawn from orbit
down to a single street, draped on the terrain and on Google 3D tiles;
opening a photo frames it with one camera flight.
Share links carry the provider switches, the filters and the panel's collapsed
- Street Level: Mapillary street-level imagery modelled on the iD editor's
photo overlay (free client token, CC BY-SA 4.0 imagery). One right-rail panel
holds an ON/OFF pill, 360°/flat and captured-since filters, a legend, and an
embedded viewer with full-screen EXPAND and FIT/FILL. Coverage lines (below
60 km; from orbit the panel says to zoom in) and image cones are draped on
the terrain and on Google 3D tiles; MapillaryJS loads on the first photo,
and opening one frames it with one camera flight.
Share links carry the Mapillary switch, the filters and the panel's collapsed
state. A server proxy caches Mapillary coverage tiles (24 h, 1 GiB on disk),
refuses cross-site requests, rate-limits per IP and backs off when Mapillary
rejects the token or rate-limits.