type: reference title: "Sample basemap policy and inventory" description: "Shared free online basemaps, explicit overrides, sample exceptions, attribution, offline behavior and SDK/scaffold publication order." resource: "https://www.npmjs.com/package/@honua/sdk-js"

Basemap inventory

Source inventory at SDK commit 9f63b4c3b; 34 catalog entries. Each generated playground inherits its source sample policy.

Sample Source Policy Playground
ai-spatial-app-builder examples/ai-spatial-app-builder No map renderer; no online basemap requests Generated from source
app-bootstrap-basic examples/app-bootstrap-basic Offline fixture demonstration; retain local style, document live override where supported —
automatic-source-workflow docs/examples/automatic-source-workflow Offline fixture demonstration; retain local style, document live override where supported —
cesium-route-playback docs/examples/cesium-route-playback Scene / renderer-state demonstration; preserve declared scene fixture/provider credits —
columnar-query-quickstart examples/columnar-query-quickstart Offline fixture demonstration; retain local style, document live override where supported Generated from source
coverages-wcs-basic examples/coverages-wcs-basic Purpose-specific imagery/coverage/terrain/archive; keep audited fixture style and attribution Generated from source
edit-workflow-demo examples/edit-workflow-demo Offline fixture demonstration; retain local style, document live override where supported —
geocoding-quickstart examples/geocoding-quickstart Offline fixture demonstration; retain local style, document live override where supported —
geoprocessing-job-runner examples/geoprocessing-job-runner Purpose-specific SVG buffer/result schematic; retain bounded projection and labels, no geographic basemap —
geoservices-source-app examples/geoservices-source-app Offline fixture demonstration; retain local style, document live override where supported —
imagery-cog-quickstart examples/imagery-cog-quickstart Purpose-specific imagery/coverage/terrain/archive; keep audited fixture style and attribution —
maplibre-quickstart examples/maplibre-quickstart Live: shared OpenFreeMap Positron / Dark, Liberty for street detail; fixture: local reviewed style —
mcp-gis-assistant examples/mcp-gis-assistant Offline fixture demonstration; retain local style, document live override where supported —
migration-workbench examples/migration-workbench Offline fixture demonstration; retain local style, document live override where supported —
nl-map-control examples/nl-map-control Offline fixture demonstration; retain local style, document live override where supported —
node-backend-quickstart examples/node-backend-quickstart No map renderer; no online basemap requests —
oauth-signin examples/oauth-signin No map renderer; no online basemap requests —
offline-region-reference docs/examples/offline-region-reference No map renderer; no online basemap requests —
overture-geoparquet examples/overture-geoparquet Purpose-specific SVG AOI point preview; retain explicit AOI bounds and labels, no geographic basemap —
planning-permitting-workbench examples/planning-permitting-workbench Purpose-specific schematic parcel locator; retain visible scope labels, no geographic basemap —
pmtiles-static examples/pmtiles-static Purpose-specific imagery/coverage/terrain/archive; keep audited fixture style and attribution —
react-quickstart examples/react-quickstart Live: shared OpenFreeMap Positron / Dark, Liberty for street detail; fixture: local reviewed style Generated from source
realtime-incident-dashboard examples/realtime-incident-dashboard Live: shared OpenFreeMap Positron / Dark, Liberty for street detail; fixture: local reviewed style —
runtime-parity-showcase examples/runtime-parity-showcase Scene / renderer-state demonstration; preserve declared scene fixture/provider credits —
service-explorer examples/service-explorer Live: shared OpenFreeMap Positron / Dark, Liberty for street detail; fixture: local reviewed style —
shared-renderer-state docs/examples/shared-renderer-state Scene / renderer-state demonstration; preserve declared scene fixture/provider credits —
sketch-editing examples/sketch-editing Offline fixture demonstration; retain local style, document live override where supported Generated from source
spatial-analytics-workbench examples/spatial-analytics-workbench Purpose-specific schematic cell/aggregation maps; retain visible scope labels, no geographic basemap —
stac-imagery-browser examples/stac-imagery-browser Purpose-specific imagery/coverage/terrain/archive; keep audited fixture style and attribution Generated from source
storytelling-25d-map examples/storytelling-25d-map Live: shared OpenFreeMap Positron / Dark, Liberty for street detail; fixture: local reviewed style —
temporal-playback examples/temporal-playback Offline fixture demonstration; retain local style, document live override where supported Generated from source
terrain-rgb-elevation examples/terrain-rgb-elevation Purpose-specific imagery/coverage/terrain/archive; keep audited fixture style and attribution —
unified-ops-workspace examples/unified-ops-workspace Offline fixture demonstration; retain local style, document live override where supported —
web-components-basic examples/web-components-basic Offline fixture demonstration; retain local style, document live override where supported —

Starters: vanilla-ts and react-ts keep local default fixture style; configured VITE_HONUA_ENDPOINT lane receives shared online default/override with attribution.

honua-samples: create-honua-app-react-ts/vanilla-ts consume the published scaffold. browser-featureserver-query renders a table, and geocode-single-line, hello-featureserver-rest, odata-query-rest, ogc-features-python, stac-search-rest and wms-getmap-check are request/response checks. No map basemap required.

Installed API design: /runtime explicit basemap style loader/binding, no network in core construction. Namespaced sources/layers inserted beneath operational overlays. Preserve TileJSON attribution and complete vector glyph/sprite resources. Surface style/tile/glyph/sprite failures with self-hosted override action while operational layers stay usable; no provider substitution.

Provider and offline evidence

The shared online defaults are OpenFreeMap Positron (thematic context), Liberty (street detail) and Dark (dark theme). Provider terms and quick start were checked 2026-10-10: no key or account is required, commercial use is allowed, and the public service has no SLA. Keep OpenMapTiles and OpenStreetMap attribution; do not strip source TileJSON attribution. Public style URLs are mutable. Use documented provider downloads/self-hosting for offline packs with recorded style/data versions and licenses; never scrape the public tile service as an implicit offline fallback.

@honua/sdk-js/runtime exports resolveHonuaOnlineBasemapStyle and HonuaOnlineBasemapBinding. Core client construction performs no basemap I/O. The browser binding explicitly fetches a style after the local initial map is ready. Custom/self-hosted styles take precedence over theme defaults. A custom glyph template must agree with any operational glyph template already on the map; otherwise the binding reports an actionable error and preserves the current base. Image, GeoJSON, video, glyph, sprite and tile URLs resolve relative to their style.

Custom sprite expressions preserve string/image coalesce fallback behavior and lexical let/var bindings. A case, match, step, or interpolate branch directly inside coalesce must use an explicit image expression; otherwise activation reports an unsupported expression without replacing the current basemap. Variable expansion is limited to 10,000 visited nodes and 64 levels to keep pathological styles bounded.

Online views keep operational source/layer objects, filters, feature state, selection, camera, imported bindings and popups during theme changes. Asset failures leave local operational rendering and controls available and show a status message; no other provider is silently substituted. Mobile layouts use MapLibre's compact attribution control, whose expanded credits remain accessible. Screenshots/exports must include that control or carry the exact visible source credits alongside the image. Canvas-only exports omit DOM attribution and must not be distributed without those credits.

Publication order

Publish the SDK containing the new /runtime exports and promote its certified release channel before publishing a create-honua-app release whose starter templates import them. Release-please owns both version bumps; do not move template pins ahead of registry availability. npm run create-app:verify:sdk-pair verifies packed scaffold projects beside a packed SDK under default npm peer resolution, then typechecks/builds both installed starters and imports the installed runtime default. The published scaffold consumer lane cannot exercise the new helper until the coordinated SDK and scaffold artifacts are available.

Map export inventory

The live map views covered here (First Map, React quickstart, service explorer, realtime incident dashboard, storytelling) and both starters have no user-facing map image export. Their browser evidence captures the page with expanded credits, including at mobile width, rather than exporting only the WebGL canvas. The imagery COG sample's image-server-export access path retrieves a server-authored raster; it is not a composite map screenshot and does not include an online basemap. Its purpose-specific imagery provenance/credits remain authoritative. Other fixture/scene/archive examples retain their own reviewed attribution; none exposes a canvas map PNG download. Future map image exports must include visible credits or an attached exact credit record before they can qualify.

Live style overrides

View Custom/self-hosted style environment variable
First Map VITE_HONUA_QUICKSTART_BASEMAP_STYLE
Storytelling 2.5D VITE_HONUA_25D_BASEMAP_STYLE
React quickstart VITE_HONUA_BASEMAP_STYLE
Realtime incident dashboard VITE_HONUA_BASEMAP_STYLE
Service explorer VITE_HONUA_BASEMAP_STYLE
Vanilla and React scaffold templates VITE_HONUA_BASEMAP_STYLE

These are non-secret browser-visible style URLs. Set them when building the corresponding Vite app; a missing provider asset message names the exact key. Explicit overrides stay selected across light/dark changes. Fixture lanes retain their reviewed local style and do not implicitly fetch the online defaults.

Copied playground and starter adapters detect the runtime helper at activation, so older published SDKs still build and run their local fixture lane. A live map with an older SDK displays an explicit upgrade instruction. Source examples use direct imports so their normal bundle tree shaking is preserved. The compatibility adapter does not select an alternate provider.

After the deterministic packed-pair gate, opt in to the registry compatibility lane with HONUA_CREATE_APP_REGISTRY_COMPAT_ENABLED=true npm run create-app:verify:sdk-pair. This additionally builds both packed starters beside registry SDK 0.1.14 and executes their shipped adapter against those installed bytes, checking the actionable upgrade notice. The 0.1.14 version is a compatibility test target, not a release or generated dependency pin.

Bundle comparison is a separate opt-in review measurement: set HONUA_BASEMAP_BUNDLE_BASELINE_REF to an explicit existing Git ref or SHA while running the packed-pair gate. The receipt records its resolved commit and compares both live starter builds against that template source using the same installed packed SDK and dependencies, counting every emitted JavaScript chunk and its gzip size. The ordinary gate requires no Git remote or baseline history.