Hide the Navara globe under photoreal tiles and keep credits on screen

Under Google 3D tiles Navara hid only the base imagery and kept drawing
the terrain globe, which showed through the tiles wherever the terrain
mesh lies above them (grey patches over the Nepal mountains). As on
Cesium, the globe now stops drawing under the tiles while terrain
sampling continues, and the tileset is kept across map switches instead
of being fetched again.

Sea Marks and Ski Pistes drew as native globe rasters and would vanish
with it; they now go through engine.imagery, which drapes onto the tiles
on both engines, and the native overlay path is gone.

Navara opened its attribution card to keep on-screen credits visible,
covering the scene; it now shows them in a persistent strip like
Cesium's, with the card behind its button.
This commit is contained in:
German Khokhlov committed 2026-11-12 00:42:17 +04:00
1 parent 14b2adb7af
commit 8a00049b85
15 files changed
+979 -192

No files matched your search

+7 -1
View File
@@ -307,12 +307,13 @@ test('Navara accepts the local 3D source without a key or Google credit, and rej
globals(t, { location: new URL('http://localhost:4303/') });
const sources = [],
credits = [];
const update = t.mock.fn();
const view = {
addSource: (desc) => {
sources.push(desc);
return { delete() {} };
},
addLayer: () => ({ id: 'fixture', delete() {} }),
addLayer: () => ({ id: 'fixture', update, delete() {} }),
forceUpdate() {},
attribution: {
add: (items) => credits.push(...items),
@@ -342,6 +343,11 @@ test('Navara accepts the local 3D source without a key or Google credit, and rej
assert.equal(sources.length, 1);
await owner.maps.setPhotorealTiles(null);
assert.equal(owner.maps.photorealActive(), false);
assert.deepEqual(update.mock.calls[0].arguments[0].model, {
maxSse: 16,
height: 0,
show: false,
});
});
test('strict keyless assertion permits only the opted-in fixture and its real tileset URL', async (t) => {