Skip to main content

Cached DEM coverage and the current surface

One visible coverage selection for cached child tiles, terrain and derived elevation layers

With terrain enabled, elevation queries prefer the current displayed coverage at that location and include exaggeration. When zooming out, cached children can cover a pending exact target. Arrival of that exact target replaces terrain, picking, elevation queries, hillshade and color relief together, avoiding heights from a cached detail tile that is no longer displayed.

const caps = await map.sqs.getCapabilities();
if (caps.commonDemDescendantFallback) {
  map.setTerrain({source: 'dem', exaggeration: 2});
  await map.sqs.flush({render: true});
  const height = await map.queryTerrainElevation([lng, lat]);
}

Add an available raster-dem source first; see terrain API. Exact targets take priority. A nearer cached child owns its region while ancestors fill remaining regions; uncovered regions stay empty. Selected NoData remains a hole and returns null without using another level or epoch to fill it. Where no current coverage exists, the existing loaded-data fallback query remains available. fallbackTiles counts visible targets, including world copies; readyTiles and loaded require exact targets. Visible fallback does not mean loading is complete.

Current coverage regions share world-position sampling, including differing pixel dimensions and levels. Equal grids retain exact sample positions; other region boundaries resample at world positions. X wraps at the date line and Y stops at the poles. Missing neighbors renormalize available weights, while weighted NoData retains holes. No extra neighbor requests or original DEM changes are introduced. Surfaces retain the33×33 grid and existing skirts.

Limits remain64MiB of tile cache,4096 raw tiles,512 current coverage regions,32MiB of terrain CPU geometry and64 visible/32 in-flight tiles. Resource, camera and budget failures retain the complete previous state. Full LOD blending, slope foundations, terrain symbols, globe/full depth occlusion, mobile GIS/iOS, device validation and formal releases remain pending.

The shared script and fixture require the repository's controlled local gate server. Core 0762741e6c8e5f5b6b00ba140a999ed0b51fa54a. Actual cross-host validation and matching artifacts are recorded below when verified.

Local public acceptance: the same29 checks and10 observed phases passed in Native, main-thread and Worker hosts, totaling30 real frames. Both browser hosts stay within the256-call budget, with identical protocol sequences and no browser errors. Integrated CPU and actual software Vulkan cases passed. Matching packaging, production HTTP and four-repository synchronization are recorded separately when completed.

Current DEM development delivery: core0762741e6c8e5f5b6b00ba140a999ed0b51fa54a, SDK 0.3.0-dev.0762741e. The same29 checks and10 observed phases passed in Native, main-thread and Worker hosts, totaling30 real frames. Each browser host uses103 calls, with identical protocol sequences and no browser errors. Integrated CPU/actual software Vulkan, affected regressions, workspace all-targets and seven-crate wasm boundaries passed; application102/data49 cases, locked check, matching core/application WASM and Android API24 ARM64/JNI are complete. The233-entry script contract is unchanged and its compiled bytes retain their SHA. New archive SqsMap-SDK-0.3.0-dev.0762741e-dem-coverage.tar.gz contains633 manifest files plus bundle.json,38253092 bytes, SHA256 3c85d3a504557743d55f3c562cf21117babb6b265002d2c3487f82b1f985bbf4. The independent read-only verifier checked every member; fixed74 and MVT archives remain byte-identical. Bilingual production HTTP and four-repository synchronization are recorded separately. External/device validation, mobile GIS/iOS, full capabilities and formal release remain pending.