Tool tree
flyToact
Animate the camera to a geographic location. Use for visible navigation requested by the user. Returns { success: boolean, message?: string, error?: string }.
View tool JSON
{
"name": "flyTo",
"kind": "act",
"impl": "imperative",
"description": "Animate the camera to a geographic location. Use for visible navigation requested by the user. Returns { success: boolean, message?: string, error?: string }.",
"inputSchema": {
"type": "object",
"properties": {
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 50000000,
"description": "Height above the ellipsoid in meters"
},
"heading": {
"type": "number",
"minimum": 0,
"maximum": 360
},
"pitch": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"duration": {
"type": "number",
"minimum": 0,
"maximum": 60
}
},
"required": [
"longitude",
"latitude"
],
"additionalProperties": false
}
}setViewact
Set the camera position immediately without animation. Use for deterministic setup or instant view changes. Returns { success: boolean, message?: string, error?: string }.
View tool JSON
{
"name": "setView",
"kind": "act",
"impl": "imperative",
"description": "Set the camera position immediately without animation. Use for deterministic setup or instant view changes. Returns { success: boolean, message?: string, error?: string }.",
"inputSchema": {
"type": "object",
"properties": {
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
"height": {
"type": "number",
"minimum": 0,
"maximum": 50000000,
"description": "Height above the ellipsoid in meters"
},
"heading": {
"type": "number",
"minimum": 0,
"maximum": 360
},
"pitch": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"roll": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"longitude",
"latitude"
],
"additionalProperties": false
}
}getViewanswer
Get current camera position (longitude, latitude, height, angles) Returns { success, data: { longitude, latitude, height, heading, pitch, roll }, message? }.
View tool JSON
{
"name": "getView",
"kind": "answer",
"impl": "imperative",
"description": "Get current camera position (longitude, latitude, height, angles) Returns { success, data: { longitude, latitude, height, heading, pitch, roll }, message? }.",
"inputSchema": {
"type": "object",
"properties": {}
}
}addMarkeract
Add a point marker at coordinates, returns entityId for later reference Returns { success, data: { entityId }, message? }; keep entityId for removeEntity.
View tool JSON
{
"name": "addMarker",
"kind": "act",
"impl": "imperative",
"description": "Add a point marker at coordinates, returns entityId for later reference Returns { success, data: { entityId }, message? }; keep entityId for removeEntity.",
"inputSchema": {
"type": "object",
"properties": {
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
"label": {
"type": "string",
"maxLength": 200
},
"color": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"size": {
"type": "number",
"minimum": 1,
"maximum": 128
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"longitude",
"latitude"
],
"additionalProperties": false
}
}addPolylineact
Draw a polyline (path/route) on the map, returns entityId Returns { success, data: { entityId }, message? }; keep entityId for removeEntity.
View tool JSON
{
"name": "addPolyline",
"kind": "act",
"impl": "imperative",
"description": "Draw a polyline (path/route) on the map, returns entityId Returns { success, data: { entityId }, message? }; keep entityId for removeEntity.",
"inputSchema": {
"type": "object",
"properties": {
"coordinates": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
{
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
{
"type": "number",
"minimum": -12000,
"maximum": 50000000,
"description": "Optional height in meters"
}
],
"minItems": 2,
"maxItems": 3,
"description": "Coordinate tuple [longitude, latitude, optional height]"
},
"minItems": 2,
"maxItems": 10000
},
"color": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"width": {
"type": "number",
"minimum": 1,
"maximum": 64
},
"clampToGround": {
"type": "boolean"
},
"label": {
"type": "string",
"maxLength": 200
}
},
"required": [
"coordinates"
],
"additionalProperties": false
}
}addPolygonact
Draw a polygon area on the map, returns entityId Returns { success, data: { entityId }, message? }; keep entityId for removeEntity.
View tool JSON
{
"name": "addPolygon",
"kind": "act",
"impl": "imperative",
"description": "Draw a polygon area on the map, returns entityId Returns { success, data: { entityId }, message? }; keep entityId for removeEntity.",
"inputSchema": {
"type": "object",
"properties": {
"coordinates": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
{
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
{
"type": "number",
"minimum": -12000,
"maximum": 50000000,
"description": "Optional height in meters"
}
],
"minItems": 2,
"maxItems": 3,
"description": "Coordinate tuple [longitude, latitude, optional height]"
},
"minItems": 3,
"maxItems": 10000
},
"color": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"outlineColor": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"extrudedHeight": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"clampToGround": {
"type": "boolean"
},
"label": {
"type": "string",
"maxLength": 200
}
},
"required": [
"coordinates"
],
"additionalProperties": false
}
}addLabelact
Add text labels for GeoJSON features (display property values) Returns { success, data: { labelCount: integer }, message? }.
View tool JSON
{
"name": "addLabel",
"kind": "act",
"impl": "imperative",
"description": "Add text labels for GeoJSON features (display property values) Returns { success, data: { labelCount: integer }, message? }.",
"inputSchema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "GeoJSON FeatureCollection containing Point, LineString, or Polygon features",
"properties": {
"type": {
"const": "FeatureCollection"
},
"features": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"const": "Feature"
},
"id": {
"type": [
"string",
"number"
]
},
"geometry": {
"oneOf": [
{
"type": "object",
"properties": {
"type": {
"const": "Point"
},
"coordinates": {
"type": "array",
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
{
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
{
"type": "number",
"minimum": -12000,
"maximum": 50000000,
"description": "Optional height in meters"
}
],
"minItems": 2,
"maxItems": 3,
"description": "Coordinate tuple [longitude, latitude, optional height]"
}
},
"required": [
"type",
"coordinates"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"const": "LineString"
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
{
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
{
"type": "number",
"minimum": -12000,
"maximum": 50000000,
"description": "Optional height in meters"
}
],
"minItems": 2,
"maxItems": 3,
"description": "Coordinate tuple [longitude, latitude, optional height]"
},
"minItems": 2
}
},
"required": [
"type",
"coordinates"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"const": "Polygon"
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
{
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
{
"type": "number",
"minimum": -12000,
"maximum": 50000000,
"description": "Optional height in meters"
}
],
"minItems": 2,
"maxItems": 3,
"description": "Coordinate tuple [longitude, latitude, optional height]"
},
"minItems": 4
},
"minItems": 1
}
},
"required": [
"type",
"coordinates"
],
"additionalProperties": false
}
]
},
"properties": {
"type": [
"object",
"null"
],
"description": "Feature attributes used for labels and thematic styling"
}
},
"required": [
"type",
"geometry",
"properties"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"features"
],
"additionalProperties": false
},
"field": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"style": {
"type": "object",
"properties": {
"font": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"fillColor": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"outlineColor": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"outlineWidth": {
"type": "number",
"minimum": 0,
"maximum": 10
},
"backgroundColor": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"showBackground": {
"type": "boolean"
},
"pixelOffset": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 2,
"maxItems": 2
},
"scale": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10
}
},
"additionalProperties": false
}
},
"required": [
"data",
"field"
],
"additionalProperties": false
}
}addGeoJsonLayeract
Add a GeoJSON data layer to the map (Point/Line/Polygon with styling) Returns { success, data: { id, name, type, visible, color, dataRefId? }, message? }; use id with highlight.
View tool JSON
{
"name": "addGeoJsonLayer",
"kind": "act",
"impl": "imperative",
"description": "Add a GeoJSON data layer to the map (Point/Line/Polygon with styling) Returns { success, data: { id, name, type, visible, color, dataRefId? }, message? }; use id with highlight.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"data": {
"type": "object",
"description": "GeoJSON FeatureCollection containing Point, LineString, or Polygon features",
"properties": {
"type": {
"const": "FeatureCollection"
},
"features": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"const": "Feature"
},
"id": {
"type": [
"string",
"number"
]
},
"geometry": {
"oneOf": [
{
"type": "object",
"properties": {
"type": {
"const": "Point"
},
"coordinates": {
"type": "array",
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
{
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
{
"type": "number",
"minimum": -12000,
"maximum": 50000000,
"description": "Optional height in meters"
}
],
"minItems": 2,
"maxItems": 3,
"description": "Coordinate tuple [longitude, latitude, optional height]"
}
},
"required": [
"type",
"coordinates"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"const": "LineString"
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
{
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
{
"type": "number",
"minimum": -12000,
"maximum": 50000000,
"description": "Optional height in meters"
}
],
"minItems": 2,
"maxItems": 3,
"description": "Coordinate tuple [longitude, latitude, optional height]"
},
"minItems": 2
}
},
"required": [
"type",
"coordinates"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"const": "Polygon"
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
{
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
{
"type": "number",
"minimum": -12000,
"maximum": 50000000,
"description": "Optional height in meters"
}
],
"minItems": 2,
"maxItems": 3,
"description": "Coordinate tuple [longitude, latitude, optional height]"
},
"minItems": 4
},
"minItems": 1
}
},
"required": [
"type",
"coordinates"
],
"additionalProperties": false
}
]
},
"properties": {
"type": [
"object",
"null"
],
"description": "Feature attributes used for labels and thematic styling"
}
},
"required": [
"type",
"geometry",
"properties"
],
"additionalProperties": false
}
}
},
"required": [
"type",
"features"
],
"additionalProperties": false
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"opacity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"pointSize": {
"type": "number",
"minimum": 1,
"maximum": 128
},
"strokeWidth": {
"type": "number",
"minimum": 0,
"maximum": 64
},
"randomColor": {
"type": "boolean"
},
"gradient": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"minItems": 2,
"maxItems": 2
},
"choropleth": {
"type": "object",
"properties": {
"field": {
"type": "string",
"minLength": 1
},
"breaks": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 1
},
"colors": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"minItems": 2
}
},
"required": [
"field",
"breaks",
"colors"
],
"additionalProperties": false
},
"category": {
"type": "object",
"properties": {
"field": {
"type": "string",
"minLength": 1
},
"colors": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
},
"minItems": 1
}
},
"required": [
"field"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"data"
],
"additionalProperties": false
}
}setBasemapact
Switch basemap style Returns { success, data: { basemap }, message? }.
View tool JSON
{
"name": "setBasemap",
"kind": "act",
"impl": "imperative",
"description": "Switch basemap style Returns { success, data: { basemap }, message? }.",
"inputSchema": {
"type": "object",
"properties": {
"basemap": {
"type": "string",
"enum": [
"dark",
"satellite",
"standard",
"osm",
"arcgis",
"light"
],
"description": "Basemap type: dark, satellite, standard, osm, arcgis, light"
}
},
"required": [
"basemap"
]
}
}removeEntityact
Remove a single entity by its entityId Returns { success, message? } or { success: false, error } when entityId is not found.
View tool JSON
{
"name": "removeEntity",
"kind": "act",
"impl": "imperative",
"description": "Remove a single entity by its entityId Returns { success, message? } or { success: false, error } when entityId is not found.",
"inputSchema": {
"type": "object",
"properties": {
"entityId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"entityId"
],
"additionalProperties": false
}
}clearAllact
Clear all layers, entities, animations, and trajectories (reset scene) Returns { success, data: { removedLayers, removedEntities }, message? }.
View tool JSON
{
"name": "clearAll",
"kind": "act",
"impl": "imperative",
"description": "Clear all layers, entities, animations, and trajectories (reset scene) Returns { success, data: { removedLayers, removedEntities }, message? }.",
"inputSchema": {
"type": "object",
"properties": {}
}
}geocodeact
Convert address/place name to geographic coordinates (uses OSM Nominatim, no API key needed) Returns { success, longitude?, latitude?, displayName?, boundingBox?, message? }.
View tool JSON
{
"name": "geocode",
"kind": "act",
"impl": "imperative",
"description": "Convert address/place name to geographic coordinates (uses OSM Nominatim, no API key needed) Returns { success, longitude?, latitude?, displayName?, boundingBox?, message? }.",
"inputSchema": {
"type": "object",
"properties": {
"address": {
"type": "string",
"minLength": 2,
"maxLength": 300
},
"countryCode": {
"type": "string",
"pattern": "^[A-Za-z]{2}$"
}
},
"required": [
"address"
],
"additionalProperties": false
}
}highlightact
Highlight features of a layer Returns { success: boolean, message?: string, error?: string }.
View tool JSON
{
"name": "highlight",
"kind": "act",
"impl": "imperative",
"description": "Highlight features of a layer Returns { success: boolean, message?: string, error?: string }.",
"inputSchema": {
"type": "object",
"properties": {
"layerId": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"featureIndex": {
"type": "integer",
"minimum": 0
},
"color": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "CSS color such as #3B82F6 or rgba(59,130,246,0.8)"
}
},
"required": [
"layerId"
],
"additionalProperties": false
}
}measureact
Measure distance or area between coordinates Returns { success, data: { mode, value, unit, segments?, id? }, message? }.
View tool JSON
{
"name": "measure",
"kind": "act",
"impl": "imperative",
"description": "Measure distance or area between coordinates Returns { success, data: { mode, value, unit, segments?, id? }, message? }.",
"inputSchema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"distance",
"area"
]
},
"positions": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees"
},
{
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees"
},
{
"type": "number",
"minimum": -12000,
"maximum": 50000000,
"description": "Optional height in meters"
}
],
"minItems": 2,
"maxItems": 3,
"description": "Coordinate tuple [longitude, latitude, optional height]"
},
"minItems": 2,
"maxItems": 10000
},
"showOnMap": {
"type": "boolean"
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"mode",
"positions"
],
"additionalProperties": false
}
}screenshotact
Capture current map view (returns base64 PNG) Returns { success, data: { dataUrl, width, height }, message? }; dataUrl is a base64 PNG.
View tool JSON
{
"name": "screenshot",
"kind": "act",
"impl": "imperative",
"description": "Capture current map view (returns base64 PNG) Returns { success, data: { dataUrl, width, height }, message? }; dataUrl is a base64 PNG.",
"inputSchema": {
"type": "object",
"properties": {}
}
}