feat(street-level): one imagery source at a time; IC8 review fixes

- One provider is lit at a time: lighting a chip darkens the others, and a
  chip click records every registered provider's switch in one update so
  the share link keeps the swap (also off Google 3D, where Street View is
  not listed). The layer starts with the first default-on provider
  (Mapillary, free); params that light several keep the one already on,
  so reapplying them never flips (litByParams). The now-unreachable
  "several lit" chip paths are gone.
- Leaving Google 3D during a Street View lookup ends it without an error
  or a stuck loading state (openImage's early return resets it; the
  lookup loop rechecks availability).
- A source swap during a lookup no longer reports "no imagery".
- Street View lit off Google 3D says the panel needs the Google 3D map.
- Comments trimmed to the why; keySetupCore.test.mjs back to upstream's
  formatting plus the one new test (was a 551-line reformat).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Said TurkseverandClaude Opus 5.5 committed 2026-10-13 15:10:58 +01:00
1 parent 64d939f3d2
commit b1efd22f02
24 files changed
+388 -625

No files matched your search

+4 -5
View File
@@ -49,9 +49,8 @@ export function isPickedWorldPosition(position) {
}
/**
* The world position under a screen point: the rendered surface (terrain,
* Google 3D) where the depth buffer has it, else the ellipsoid. Null over the
* sky or for a pick that names no place.
* The world position under a screen point: the rendered surface where the
* depth buffer has it, else the ellipsoid; null over the sky.
*
* @param {object} viewer A Cesium viewer.
* @param {{x: number, y: number}} screenPosition
@@ -84,8 +83,8 @@ export function pickGroundPosition(viewer, screenPosition) {
}
/**
* Whether a `scene.pick()` result is the map itself: nothing, or Google 3D
* tile content, which picks without an id.
* Whether a `scene.pick()` result is the map itself: nothing, or 3D tile
* content (which has no id).
*
* @param {object|null|undefined} picked
* @returns {boolean}