mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 10:24:02 +00:00
Google's Maps Platform terms forbid Street View imagery beside non-Google maps, so the provider declares requiresMapStack: 'photoreal': off Google 3D its chip is dashed with the reason, lookups and opens skip it, and leaving Google 3D closes its panorama. - Ground clicks: only a click on the map itself (scenePick.isSurfacePick: nothing picked or Google 3D tile content) at street zoom opens Street View, and the camera stays put; higher up the hint says to zoom in. scenePick.pickGroundPosition replaces the copy in Directions. - Viewer: poses go out at once and again when the date and address arrive, so an open never hangs on that lookup; one lookup per panorama, seeded by the nearest lookup; a close settles a pending open; failed lookups are asked again; poses follow position changes, not pano_changed. - Loader: the gm_authFailure handler is installed once, so a retried load reports a refusal once. - Viewer host: a prewarm that lands after another provider took the host is released; FIT/FILL availability is set on every open. - Provider: a refusal while switched off reports no error over another photo; SINCE compares against the end of Google's month; messages name the referrer and network causes; FLAT says Street View is 360° only. - The layer row names the key of the providers that are on; the MCP panel CSP admits Street View's tiles, control images and photos. - Tests for each, against fakes that now follow Google's event order; the browser gate restores its state, waits instead of sleeping, aims its panel clicks and corner drags, and asserts the camera stays put. Co-Authored-By: Claude Opus 5.5 <[email protected]>
28 lines
916 B
JavaScript
28 lines
916 B
JavaScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import { createApplicationStreetLevel } from './streetLevel.js';
|
|
import { createDefaultLayerState } from '../../data/layerState.js';
|
|
|
|
test('each provider starts as its share-link option does, so a fresh page and a restored one agree', () => {
|
|
const layer = createApplicationStreetLevel({
|
|
surface: null,
|
|
sources: {
|
|
mapillary: {
|
|
getStatus() {},
|
|
getTile() {},
|
|
getSequenceImages() {},
|
|
nearestImages() {},
|
|
},
|
|
},
|
|
});
|
|
const options = createDefaultLayerState().options['street-level'];
|
|
const providers = layer.getUIState().providers;
|
|
assert.deepEqual(
|
|
providers.map((p) => p.id),
|
|
layer.providerIds,
|
|
);
|
|
for (const provider of providers)
|
|
assert.equal(provider.on, options[provider.id], provider.id);
|
|
assert.equal(options.google, false, 'Street View is billed: off');
|
|
});
|