gistda-sphere-react

Layer

Add built-in or custom tile layers to the map

Base Layer
Data Layers
{/* Built-in data layer */}
<Layer preset="TRAFFIC" />

{/* Custom WMS layer */}
<Layer
  name="my-wms-layer"
  type="WMS"
  url="https://example.com/wms"
  zoomRange={{ min: 1, max: 18 }}
  opacity={0.7}
/>

{/* Change the base layer */}
<Layer preset="HYBRID" isBase />

Props

PropTypeRequiredDefaultDescription
presetBuiltInLayerNo-Use a built-in layer
namestringConditional-Layer name (required when preset is not provided)
isBasebooleanNofalseSet as the base layer
typeLayerTypeNo"Vector"Layer type
urlstringNoSphere tile serverTile server URL
zoomRangeRangeNoAll zoom levelsVisible zoom range
sourceRangeNoAll zoom levelsAvailable tile zoom range
opacitynumberNo1Layer opacity (0-1)
zIndexnumberNo0Stacking order
boundBoundNoWorldBounding box for tiles
attributionstringNo-Attribution text
extraQuerystringNo-Extra query string for tile requests
idstringNoLayer nameUnique layer identifier
formatstringNo"image/png" / "png"Image format
srsstringNo"EPSG:3857"Spatial reference system
tileMatrixPrefixstringNo-WMTS tile matrix prefix
stylesstringNoDefaultLayer styles
versionstringNo"1.1.1"WMS/WMTS version
refreshnumberNo-Auto-refresh interval in ms
zoomOffsetnumberNo-Zoom level offset
beforeIdstringNoSymbol layerInsert before layer ID

Layer types

TypeDescription
"Vector"Mapbox Vector Tiles (default)
"XYZ"XYZ raster tiles
"WMS"Web Map Service
"WMTS"Web Map Tile Service (KVP encoding)
"WMTS_REST"Web Map Tile Service (RESTful encoding)
"TMS"Tile Map Service
"Tiles3D"OGC 3D Tiles
"I3S"Indexed 3D Scene Layer

Built-in base layers

Base layers replace the current base map. Only one can be active at a time.

LayerDescription
"SIMPLE"Low-complexity base layer
"STREETS"Standard street map (default)
"STREETS_NIGHT"Street map with dark theme
"HYBRID"Satellite imagery with labels
"IMAGES"Satellite imagery without labels

Built-in data layers

Data layers are added on top of the base layer. Multiple can be active.

LayerDescription
"TRAFFIC"Real-time traffic (auto-refreshes every 3 minutes)
"PM25"Air quality (PM2.5) heatmap
"HOTSPOT"Fire hotspot locations
"FLOOD"Flood-affected areas
"DROUGHT"Drought-affected areas

Predefined overlays

The Sphere API provides predefined overlays that display live data on the map.

OverlayDescription
"cameras"Live CCTV traffic camera feeds with optional motion video
"events"Active traffic and road events with popup details
"aqi"Thai Air Quality Index data points with popup details
const { loadPredefinedOverlay, unloadPredefinedOverlay } = useMapControls();

loadPredefinedOverlay('cameras');
loadPredefinedOverlay('events');
loadPredefinedOverlay('aqi');
unloadPredefinedOverlay('cameras');

Color filters

Apply visual color filters to the map for accessibility or aesthetics.

FilterDescription
"Dark"Dark mode filter
"Light"Lighter map colors
"Protanopia"Red color blindness filter
"Deuteranopia"Green color blindness filter
"None"No filter (default)
const { setFilter } = useMapControls();

setFilter('Dark');
setFilter('Protanopia');
setFilter(false); // same as 'None'

Or via SphereMap prop:

<SphereMap filter="Dark" style={{ height: '500px' }}>
  {/* children */}
</SphereMap>

Using layers programmatically

const { setBaseLayer, addLayer, removeLayer } = useMapControls();

setBaseLayer('HYBRID');
addLayer('TRAFFIC');
addLayer('PM25');
removeLayer('TRAFFIC');

On this page