Geospatial workspace: manage sources and maps, run spatial analysis, and publish interactive maps
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
List the personal and organization accounts that can own new geospatial work — projects, datasets, maps, collections — including the handle the create tools require.
This tool takes no arguments.
List the personal and organization accounts that can own new geospatial work — projects, datasets, maps, collections — including the handle the create tools require.
No arguments.
{
"type": "object",
"properties": {}
}Invalidate a pending Geobble confirmation without executing the underlying action.
| Argument | Type | Description |
|---|---|---|
| confirmationId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"confirmationId"
],
"properties": {
"confirmationId": {
"type": "string",
"maxLength": 128,
"minLength": 32
}
}
}Describe this server's geospatial capabilities: authoring and editing GIS projects and maps, spatial analysis, publishing interactive web maps, and moving geospatial data in and out.
No arguments.
{
"type": "object",
"properties": {}
}Create a collection — a curated group of geospatial datasets — under an accessible account.
| Argument | Type | Description |
|---|---|---|
| collection* | object | |
| ownerHandle* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ownerHandle",
"collection"
],
"properties": {
"collection": {
"type": "object",
"required": [
"title",
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 128,
"minLength": 1
},
"about": {
"type": "string",
"default": ""
},
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"licenceUrl": {
"anyOf": [
{
"type": "string",
"format": "uri",
"maxLength": 1024
},
{
"type": "null"
}
]
},
"description": {
"type": "string",
"default": "",
"maxLength": 500
},
"licenceName": {
"anyOf": [
{
"type": "string",
"maxLength": 256
},
{
"type": "null"
}
]
},
"originalUrl": {
"anyOf": [
{
"type": "string",
"format": "uri",
"maxLength": 1024
},
{
"type": "null"
}
]
},
"reviewDueAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"subjectTags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 96,
"minLength": 1
},
"maxItems": 30
},
"countryCodes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2,
"minLength": 2
},
"maxItems": 50
},
"reviewStatus": {
"enum": [
"CURRENT",
"NEEDS_REVIEW",
"IN_REVIEW",
"STALE"
],
"type": "string"
},
"versionLabel": {
"anyOf": [
{
"type": "string",
"maxLength": 128
},
{
"type": "null"
}
]
},
"updateCadence": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"collectionKind": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastReviewedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"geographicScope": {
"anyOf": [
{
"type": "string",
"maxLength": 128
},
{
"type": "null"
}
]
},
"originalCreator": {
"anyOf": [
{
"type": "string",
"maxLength": 512
},
{
"type": "null"
}
]
}
}
},
"ownerHandle": {
"type": "string",
"maxLength": 64,
"minLength": 3
}
}
}Update the title, description, and visibility metadata of a geospatial collection.
| Argument | Type | Description |
|---|---|---|
| patch* | object | |
| collectionId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"collectionId",
"patch"
],
"properties": {
"patch": {
"type": "object",
"properties": {
"about": {
"type": "string"
},
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"licenceUrl": {
"anyOf": [
{
"type": "string",
"format": "uri",
"maxLength": 1024
},
{
"type": "null"
}
]
},
"description": {
"type": "string",
"maxLength": 500
},
"licenceName": {
"anyOf": [
{
"type": "string",
"maxLength": 256
},
{
"type": "null"
}
]
},
"originalUrl": {
"anyOf": [
{
"type": "string",
"format": "uri",
"maxLength": 1024
},
{
"type": "null"
}
]
},
"reviewDueAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"subjectTags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 96,
"minLength": 1
},
"maxItems": 30
},
"countryCodes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2,
"minLength": 2
},
"maxItems": 50
},
"reviewStatus": {
"enum": [
"CURRENT",
"NEEDS_REVIEW",
"IN_REVIEW",
"STALE"
],
"type": "string"
},
"versionLabel": {
"anyOf": [
{
"type": "string",
"maxLength": 128
},
{
"type": "null"
}
]
},
"updateCadence": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"collectionKind": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastReviewedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"geographicScope": {
"anyOf": [
{
"type": "string",
"maxLength": 128
},
{
"type": "null"
}
]
},
"originalCreator": {
"anyOf": [
{
"type": "string",
"maxLength": 512
},
{
"type": "null"
}
]
}
}
},
"collectionId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Execute the exact server-stored action from a confirmation_required response, such as publishing a map or granting access.
| Argument | Type | Description |
|---|---|---|
| confirmationId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"confirmationId"
],
"properties": {
"confirmationId": {
"type": "string",
"maxLength": 128,
"minLength": 32
}
}
}Get one accessible geospatial resource: a dataset (source), project, published map, or collection.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| identifier* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind",
"identifier"
],
"properties": {
"kind": {
"enum": [
"collection",
"project",
"map",
"source"
],
"type": "string"
},
"identifier": {
"type": "string",
"maxLength": 256,
"minLength": 1
}
}
}Get a published interactive map: its active publication, canonical URL, and iframe embed markup when public embedding is enabled.
| Argument | Type | Description |
|---|---|---|
| mapId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mapId"
],
"properties": {
"mapId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Create or reuse an asynchronous PNG image export of a project map or published map.
| Argument | Type | Description |
|---|---|---|
| options | object | |
| resourceId* | string | |
| resourceType* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"resourceType",
"resourceId"
],
"properties": {
"options": {
"type": "object",
"properties": {
"view": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"center",
"zoom"
],
"properties": {
"type": {
"type": "string",
"const": "static"
},
"zoom": {
"type": "number",
"maximum": 24,
"minimum": 0
},
"pitch": {
"type": "number",
"default": 0,
"maximum": 85,
"minimum": 0
},
"center": {
"type": "array",
"prefixItems": [
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
}
]
},
"bearing": {
"type": "number",
"default": 0,
"maximum": 360,
"minimum": -360
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"prefixItems": [
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
},
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
}
]
},
"type": {
"type": "string",
"const": "bounds"
},
"padding": {
"type": "integer",
"default": 40,
"maximum": 512,
"minimum": 0
}
},
"additionalProperties": false
}
]
},
"scale": {
"type": "object",
"default": {
"units": "metric",
"enabled": true
},
"properties": {
"units": {
"enum": [
"metric",
"imperial",
"dual"
],
"type": "string",
"default": "metric"
},
"enabled": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"theme": {
"enum": [
"light",
"dark"
],
"type": "string",
"default": "light"
},
"title": {
"type": "object",
"default": {
"text": "",
"enabled": false
},
"properties": {
"text": {
"type": "string",
"default": "",
"maxLength": 128
},
"enabled": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"width": {
"type": "integer",
"default": 1600,
"maximum": 4096,
"minimum": 320
},
"height": {
"type": "integer",
"default": 900,
"maximum": 4096,
"minimum": 320
},
"legend": {
"type": "object",
"default": {
"note": "",
"enabled": false
},
"properties": {
"note": {
"type": "string",
"default": "",
"maxLength": 500
},
"enabled": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
},
"compass": {
"type": "object",
"default": {
"enabled": true
},
"properties": {
"enabled": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"hiddenLayerIds": {
"type": "array",
"items": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"default": [],
"maxItems": 500
}
},
"additionalProperties": false
},
"resourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"resourceType": {
"enum": [
"project",
"map"
],
"type": "string"
}
}
}Poll a map image export and return a download capability once the PNG is rendered.
| Argument | Type | Description |
|---|---|---|
| exportId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"exportId"
],
"properties": {
"exportId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Preview rolling a map forward or back to an immutable publication revision.
| Argument | Type | Description |
|---|---|---|
| mapId* | string | |
| publicationId* | string | |
| idempotencyKey* | string | |
| expectedCurrentPublicationId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mapId",
"publicationId",
"expectedCurrentPublicationId",
"idempotencyKey"
],
"properties": {
"mapId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"publicationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"idempotencyKey": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"expectedCurrentPublicationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}List the immutable publication revisions of a map and identify which revision is live.
| Argument | Type | Description |
|---|---|---|
| mapId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mapId"
],
"properties": {
"mapId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Render an accessible published map with its preview, delivery state, and canonical link.
| Argument | Type | Description |
|---|---|---|
| mapId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mapId"
],
"properties": {
"mapId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Return the connected Geobble account: identity, display name, email, and handle. Use it to confirm which geospatial workspace is connected.
No arguments.
{
"type": "object",
"properties": {}
}Add a map layer to a project from a dataset, collection, or map already present in its context. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layer",
"title"
],
"properties": {
"layer": {
"oneOf": [
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "point"
},
"label": {
"type": "object",
"properties": {
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"field": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"haloColor": {
"type": "string"
},
"haloWidth": {
"type": "number",
"maximum": 20,
"minimum": 0
},
"placement": {
"enum": [
"point",
"line"
],
"type": "string"
}
}
},
"paint": {
"type": "object",
"properties": {
"color": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"radius": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"opacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"iconSize": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"iconImage": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"iconOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeWidth": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "object",
"properties": {
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"field": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"haloColor": {
"type": "string"
},
"haloWidth": {
"type": "number",
"maximum": 20,
"minimum": 0
},
"placement": {
"enum": [
"point",
"line"
],
"type": "string"
}
}
},
"paint": {
"type": "object",
"properties": {
"color": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"width": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"opacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"dashArray": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "polygon"
},
"label": {
"type": "object",
"properties": {
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"field": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"haloColor": {
"type": "string"
},
"haloWidth": {
"type": "number",
"maximum": 20,
"minimum": 0
},
"placement": {
"enum": [
"point",
"line"
],
"type": "string"
}
}
},
"paint": {
"type": "object",
"properties": {
"fillColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"fillOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeWidth": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "circle"
},
"label": {
"type": "object",
"properties": {
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"field": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"haloColor": {
"type": "string"
},
"haloWidth": {
"type": "number",
"maximum": 20,
"minimum": 0
},
"placement": {
"enum": [
"point",
"line"
],
"type": "string"
}
}
},
"paint": {
"type": "object",
"properties": {
"fillColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"fillOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeWidth": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "raster"
},
"label": {
"not": {}
},
"paint": {
"type": "object",
"properties": {
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"contrast": {
"type": "number",
"maximum": 1,
"minimum": -1
},
"hueRotate": {
"type": "number",
"maximum": 360,
"minimum": -360
},
"resampling": {
"enum": [
"linear",
"nearest"
],
"type": "string"
},
"saturation": {
"type": "number",
"maximum": 1,
"minimum": -1
},
"fadeDuration": {
"type": "number",
"minimum": 0
},
"brightnessMax": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"brightnessMin": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "heatmap"
},
"label": {
"not": {}
},
"paint": {
"type": "object",
"properties": {
"radius": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"weight": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"opacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"intensity": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "h3"
},
"label": {
"not": {}
},
"paint": {
"type": "object",
"properties": {
"fillColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"fillOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"type": "string",
"minLength": 1
},
"strokeWidth": {
"type": "number",
"minimum": 0
},
"strokeOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
}
],
"description": "Full GMS layer object. Required fields: version (MUST be \"1.0\"), type (point|line|polygon|circle|raster|heatmap|h3), id (unique string), source (namespaced ID like \"source:uuid\"), paint (type-specific object). IMPORTANT: Paint properties use camelCase, NOT MapLibre hyphenated format. Missing paint properties are filled from Geobble agent design defaults, but explicit paint values are preserved. Polygon paint: { fillColor, fillOpacity, strokeColor, strokeWidth, strokeOpacity }. Point paint: { color, radius, strokeWidth, strokeColor, opacity, iconImage, iconSize, iconOpacity }. Use iconImage with a canonical symbol:uuid ref returned by get_resource when a symbol set icon should render instead of a circle marker. Do not use symbol slugs, symbol set IDs, @references, or file paths. For point overlays on thematic maps, keep minZoom at 0 unless the user explicitly asks to hide low zooms; prefer zoom-dependent radius/opacity over making points disappear. Line paint: { color, width, dashArray, opacity }. Heatmap paint: { weight, radius, intensity, colorRamp, opacity }. H3 paint: { fillColor, fillOpacity, strokeColor, strokeWidth, strokeOpacity }. Raster paint: { opacity, saturation, contrast, brightnessMin, brightnessMax }. Colors can be hex strings or GMS expressions like [\"case\", [\"==\", [\"get\", \"prop\"], \"val\"], \"#color1\", \"#color2\"]. Feature navigation states hovered, active, focused, and selected are boolean MapLibre feature-state values. Use [\"boolean\", [\"feature-state\", \"hovered\"], false] for branches. Geobble supplies each *Progress state as a normalized 0-1 blend factor for smooth transitions, with [\"coalesce\", [\"feature-state\", \"hoveredProgress\"], 0] as the numeric input. At input stop 0 preserve the existing base paint value or expression; at stop 1 use the state appearance. Do not use zero as a paint output unless it is intentionally the base appearance. When scale materially affects readability, use zoom as the outer interpolate or step expression with only a few meaningful stops, placing the feature-state blend in each stop output. Example polygon layer: { version: \"1.0\", id: \"my-layer\", type: \"polygon\", source: \"source:abc-123\", paint: { fillColor: \"#B66A32\", fillOpacity: 0.34, strokeColor: \"#7A421F\", strokeWidth: 1 } }"
},
"title": {
"type": "string",
"description": "Short description of what layer was added."
},
"position": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Insert position in the layers array. Defaults to end."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Queue provider-backed mobility analysis: routing, reachability and isochrones, nearest, travel-time metrics, or map-matching.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"operation"
],
"properties": {
"mode": {
"enum": [
"preview",
"materialize"
],
"type": "string",
"default": "preview"
},
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"profile": {
"enum": [
"driving",
"walking",
"cycling",
"truck"
],
"type": "string",
"default": "driving"
},
"operation": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"locations"
],
"properties": {
"type": {
"type": "string",
"const": "route"
},
"locations": {
"type": "array",
"items": {
"type": "object",
"required": [
"longitude",
"latitude"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"label": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
"maxItems": 25,
"minItems": 2
},
"alternatives": {
"type": "integer",
"default": 0,
"maximum": 3,
"minimum": 0
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"origins"
],
"properties": {
"type": {
"type": "string",
"const": "reachability"
},
"detail": {
"enum": [
"auto",
"coarse",
"standard",
"detailed"
],
"type": "string",
"default": "auto"
},
"extent": {
"type": "array",
"prefixItems": [
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
},
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
}
]
},
"output": {
"enum": [
"contours",
"h3"
],
"type": "string",
"default": "contours"
},
"origins": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"values"
],
"properties": {
"type": {
"type": "string",
"const": "coordinates"
},
"values": {
"type": "array",
"items": {
"type": "object",
"required": [
"longitude",
"latitude"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"label": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"resource"
],
"properties": {
"type": {
"type": "string",
"const": "resource"
},
"idField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
},
"resource": {
"type": "string",
"pattern": "^(source|derived):[0-9a-f-]{36}$"
},
"maxPoints": {
"type": "integer",
"default": 500,
"maximum": 500,
"minimum": 1
},
"labelField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"h3Resolution": {
"type": "integer",
"maximum": 10,
"minimum": 4
},
"contourMinutes": {
"type": "array",
"items": {
"type": "integer",
"maximum": 240,
"minimum": 1
},
"default": [
15,
30
],
"maxItems": 4,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"origins",
"destinations"
],
"properties": {
"type": {
"type": "string",
"const": "nearest"
},
"origins": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"values"
],
"properties": {
"type": {
"type": "string",
"const": "coordinates"
},
"values": {
"type": "array",
"items": {
"type": "object",
"required": [
"longitude",
"latitude"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"label": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"resource"
],
"properties": {
"type": {
"type": "string",
"const": "resource"
},
"idField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
},
"resource": {
"type": "string",
"pattern": "^(source|derived):[0-9a-f-]{36}$"
},
"maxPoints": {
"type": "integer",
"default": 500,
"maximum": 500,
"minimum": 1
},
"labelField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"destinations": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"values"
],
"properties": {
"type": {
"type": "string",
"const": "coordinates"
},
"values": {
"type": "array",
"items": {
"type": "object",
"required": [
"longitude",
"latitude"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"label": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"resource"
],
"properties": {
"type": {
"type": "string",
"const": "resource"
},
"idField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
},
"resource": {
"type": "string",
"pattern": "^(source|derived):[0-9a-f-]{36}$"
},
"maxPoints": {
"type": "integer",
"default": 500,
"maximum": 500,
"minimum": 1
},
"labelField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"sources",
"targets"
],
"properties": {
"type": {
"type": "string",
"const": "travelMetrics"
},
"sources": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"values"
],
"properties": {
"type": {
"type": "string",
"const": "coordinates"
},
"values": {
"type": "array",
"items": {
"type": "object",
"required": [
"longitude",
"latitude"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"label": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"resource"
],
"properties": {
"type": {
"type": "string",
"const": "resource"
},
"idField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
},
"resource": {
"type": "string",
"pattern": "^(source|derived):[0-9a-f-]{36}$"
},
"maxPoints": {
"type": "integer",
"default": 500,
"maximum": 500,
"minimum": 1
},
"labelField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
}
},
"additionalProperties": false
}
]
},
"targets": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"values"
],
"properties": {
"type": {
"type": "string",
"const": "coordinates"
},
"values": {
"type": "array",
"items": {
"type": "object",
"required": [
"longitude",
"latitude"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"label": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
"maxItems": 500,
"minItems": 1
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"resource"
],
"properties": {
"type": {
"type": "string",
"const": "resource"
},
"idField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
},
"resource": {
"type": "string",
"pattern": "^(source|derived):[0-9a-f-]{36}$"
},
"maxPoints": {
"type": "integer",
"default": 500,
"maximum": 500,
"minimum": 1
},
"labelField": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
"maxLength": 63,
"minLength": 1
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type",
"trace"
],
"properties": {
"type": {
"type": "string",
"const": "mapMatch"
},
"trace": {
"type": "array",
"items": {
"type": "object",
"required": [
"longitude",
"latitude"
],
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"label": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 2
}
},
"additionalProperties": false
}
]
},
"attachToProject": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Configure bubble interactions for a project map. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"bubble",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the bubble change."
},
"bubble": {
"anyOf": [
{
"type": "object",
"required": [
"name",
"targetSource",
"linkFilter"
],
"properties": {
"id": {
"type": "string",
"description": "Bubble ID (auto-generated if not provided)."
},
"name": {
"type": "string",
"description": "Display name for the bubble."
},
"linkFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
},
"description": "GMS filter expression linking source to target features."
},
"targetSource": {
"type": "string",
"description": "Namespaced ID of the target source (source:uuid)."
},
"titleTemplate": {
"type": "string"
},
"artifactsLayer": {
"type": "string",
"description": "Layer ID that renders the target features and uses selected/selectedProgress feature-state styling for current bubble results. May be the trigger layer when it already renders the targets."
},
"subtitleTemplate": {
"type": "string"
}
}
},
{
"type": "null"
}
],
"description": "Bubble config or null to remove all bubbles."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Configure camera interaction behaviour for a project map. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"camera",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the camera change."
},
"camera": {
"anyOf": [
{
"type": "object",
"properties": {
"delay": {
"type": "number",
"description": "Delay in ms before camera moves (hover only)."
},
"camera": {
"type": "object",
"properties": {
"zoom": {
"type": "number"
},
"pitch": {
"type": "number"
},
"center": {
"anyOf": [
{
"type": "string",
"const": "feature"
},
{
"type": "string",
"const": "bbox"
},
{
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
}
]
},
"bearing": {
"type": "number"
},
"duration": {
"type": "number"
}
}
},
"enabled": {
"type": "boolean"
},
"padding": {
"type": "number"
},
"trigger": {
"enum": [
"click",
"hover"
],
"type": "string"
}
}
},
{
"type": "null"
}
],
"description": "Camera config or null to disable."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Configure computed feature fields and expressions for a project map. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$defs": {
"__schema0": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
},
{
"type": "array",
"prefixItems": [
{
"type": "string",
"const": "get"
},
{
"type": "string"
}
]
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
},
"prefixItems": [
{
"type": "string",
"const": "concat"
}
]
},
{
"type": "array",
"prefixItems": [
{
"type": "string",
"const": "upcase"
},
{
"$ref": "#/$defs/__schema0"
}
]
},
{
"type": "array",
"prefixItems": [
{
"type": "string",
"const": "downcase"
},
{
"$ref": "#/$defs/__schema0"
}
]
},
{
"type": "array",
"prefixItems": [
{
"type": "string",
"const": "length"
},
{
"$ref": "#/$defs/__schema0"
}
]
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
},
"prefixItems": [
{
"anyOf": [
{
"type": "string",
"const": "+"
},
{
"type": "string",
"const": "-"
},
{
"type": "string",
"const": "*"
},
{
"type": "string",
"const": "/"
},
{
"type": "string",
"const": "%"
}
]
}
]
},
{
"type": "array",
"prefixItems": [
{
"anyOf": [
{
"type": "string",
"const": "round"
},
{
"type": "string",
"const": "ceil"
},
{
"type": "string",
"const": "floor"
},
{
"type": "string",
"const": "abs"
}
]
},
{
"$ref": "#/$defs/__schema0"
}
]
},
{
"type": "array",
"prefixItems": [
{
"anyOf": [
{
"type": "string",
"const": "=="
},
{
"type": "string",
"const": "!="
},
{
"type": "string",
"const": ">"
},
{
"type": "string",
"const": ">="
},
{
"type": "string",
"const": "<"
},
{
"type": "string",
"const": "<="
}
]
},
{
"$ref": "#/$defs/__schema0"
},
{
"$ref": "#/$defs/__schema0"
}
]
},
{
"type": "array",
"prefixItems": [
{
"type": "string",
"const": "!"
},
{
"$ref": "#/$defs/__schema0"
}
]
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
},
"prefixItems": [
{
"type": "string",
"const": "&&"
}
]
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
},
"prefixItems": [
{
"type": "string",
"const": "||"
}
]
},
{
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
},
"prefixItems": [
{
"type": "string",
"const": "coalesce"
}
]
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"computed",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the computed expression change."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
},
"computed": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/$defs/__schema0"
}
},
{
"type": "null"
}
],
"description": "Computed expression map, keyed by variable name, or null to remove all computed expressions."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Configure the legend of a project map and its entries. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"legend",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the legend change."
},
"legend": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"enum": [
"categorical",
"choropleth",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
},
"description": "Explicit legend items. Each item MUST have: id (unique string), label, type (one of \"symbol\", \"line\", \"fill\", \"gradient\", \"choropleth\"), and a style object. Match type to the layer geometry: use \"line\" for line layers, \"fill\" for polygon layers, \"symbol\" for point layers. Line style: { color: \"#hex\", width?: number, dashArray?: [number], opacity?: 0-1 }. Fill style: { fillColor: \"#hex\", outlineColor?: \"#hex\", fillOpacity?: 0-1 }. Symbol style: { color?: \"#hex\", iconImage?: string, iconSize?: number, strokeColor?: \"#hex\" }. Use canonical symbol:uuid refs for custom symbol icons. Example line item: { id: \"trunk\", label: \"Trunk\", type: \"line\", style: { color: \"#8B0000\", width: 3 } }"
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"displayName": {
"type": "string",
"description": "Layer label shown in the legend. Defaults to the current legend label or layer ID."
},
"interactive": {
"type": "boolean",
"description": "When true, clicking legend items filters the map."
}
}
},
{
"type": "null"
}
],
"description": "Legend config or null to disable."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Configure popup presentation and which feature attributes appear in a project map's popups. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"popup",
"title"
],
"properties": {
"popup": {
"anyOf": [
{
"type": "object",
"properties": {
"media": {
"type": "object",
"required": [
"url"
],
"properties": {
"alt": {
"type": "string"
},
"url": {
"type": "string"
},
"type": {
"enum": [
"image",
"video"
],
"type": "string"
}
}
},
"title": {
"type": "string",
"description": "Title template. Use ${property} for feature values, $[computed] for computed vars."
},
"actions": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"label",
"urlTemplate"
],
"properties": {
"type": {
"type": "string",
"const": "openUrl"
},
"label": {
"type": "string"
},
"openIn": {
"enum": [
"_blank",
"_self"
],
"type": "string",
"default": "_blank"
},
"urlTemplate": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"type",
"label",
"textTemplate"
],
"properties": {
"type": {
"type": "string",
"const": "copy"
},
"label": {
"type": "string"
},
"textTemplate": {
"type": "string"
},
"toastMessage": {
"type": "string"
}
}
},
{
"type": "object",
"required": [
"type",
"label",
"bubbleId"
],
"properties": {
"type": {
"type": "string",
"const": "bubble"
},
"label": {
"type": "string"
},
"bubbleId": {
"type": "string"
},
"openPanel": {
"type": "boolean",
"default": true
}
}
}
]
},
"description": "Popup actions: openUrl, copy, or bubble."
},
"enabled": {
"type": "boolean"
},
"trigger": {
"enum": [
"click",
"hover"
],
"type": "string"
},
"properties": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string"
},
"label": {
"type": "string"
},
"format": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"auto",
"text",
"number",
"currency",
"percentage",
"date",
"boolean",
"url"
],
"type": "string"
},
"prefix": {
"type": "string"
},
"suffix": {
"type": "string"
},
"nullLabel": {
"type": "string"
},
"precision": {
"type": "integer",
"maximum": 10,
"minimum": 0
},
"trueLabel": {
"type": "string"
},
"dateFormat": {
"type": "string"
},
"falseLabel": {
"type": "string"
}
}
},
"default": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
}
}
},
"description": {
"type": "string",
"description": "Description template."
}
}
},
{
"type": "null"
}
],
"description": "Popup config or null to disable."
},
"title": {
"type": "string",
"description": "Short description of the popup change."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Configure how search behaves in a project map. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"search",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the search change."
},
"search": {
"anyOf": [
{
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"orderBy": {
"type": "string",
"description": "SQL ORDER BY clause for results. Supports ${center} template."
},
"placeholder": {
"type": "string"
},
"titleTemplate": {
"type": "string",
"description": "Template for result titles. ${prop} or $[computed] syntax."
},
"searchableFields": {
"type": "array",
"items": {
"type": "string"
},
"description": "Fields to search on."
},
"subtitleTemplate": {
"type": "string"
}
}
},
{
"type": "null"
}
],
"description": "Search config or null to disable."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Create an empty private project — the geospatial workspace holding map layers, datasets, styles, and analysis results — under an account where the caller can create.
| Argument | Type | Description |
|---|---|---|
| title* | string | |
| ownerHandle* | string | |
| basemapIdDark | string | |
| basemapIdLight | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ownerHandle",
"title"
],
"properties": {
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"ownerHandle": {
"type": "string",
"maxLength": 64,
"minLength": 3
},
"basemapIdDark": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"basemapIdLight": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Create a reusable cartographic colour theme owned by the project account and attach it to the project.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"title",
"type",
"colors"
],
"properties": {
"type": {
"enum": [
"SEQUENTIAL",
"DIVERGING",
"QUALITATIVE"
],
"type": "string",
"description": "SEQUENTIAL for light-to-dark gradients, DIVERGING for two-tone with midpoint, QUALITATIVE for distinct categories."
},
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"description": "Human-readable name for the theme."
},
"colors": {
"type": "array",
"items": {
"type": "string",
"pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$"
},
"maxItems": 12,
"minItems": 2,
"description": "Array of hex color strings forming the palette."
},
"description": {
"type": "string",
"maxLength": 500,
"description": "Optional description of the theme."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Duplicate a map layer while preserving canonical GMS validity. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the duplication."
},
"layerId": {
"type": "string",
"description": "The ID of the layer to duplicate."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}List and inspect the geospatial datasets in a collection attached to the project.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"collectionId"
],
"properties": {
"limit": {
"type": "number",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Maximum number of sources to return (prevents loading huge collections)."
},
"collectionId": {
"type": "string",
"description": "The resource ID of the collection to explore (format: collection:{uuid})."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Inspect a dataset's attribute schema, provenance, freshness, and a small sample of features.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"sourceId"
],
"properties": {
"sourceId": {
"type": "string",
"description": "Namespaced source ID, e.g. source:516d075e-bdb5-4e27-aa61-0b14b4eff0df."
},
"sampleRows": {
"type": "integer",
"default": 5,
"maximum": 20,
"minimum": 0,
"description": "Number of sample rows to return when the source is queryable. Use 0 for schema-only inspection."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}List the valid basemaps available to a project: light, dark, vector, raster, and DEM elevation sources.
| Argument | Type | Description |
|---|---|---|
| type | string | Optional basemap type filter. |
| theme | string | Optional theme filter. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"enum": [
"VECTOR",
"RASTER",
"DEM"
],
"type": "string",
"description": "Optional basemap type filter."
},
"theme": {
"enum": [
"LIGHT",
"DARK"
],
"type": "string",
"description": "Optional theme filter."
}
}
}Add or remove a source, collection, symbol set, or theme from a project context. Adding a resource makes it available to project layer and query tools.
| Argument | Type | Description |
|---|---|---|
| title | string | |
| action* | string | |
| projectId* | string | |
| resourceId* | string | |
| resourceType* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"action",
"resourceType",
"resourceId"
],
"properties": {
"title": {
"type": "string"
},
"action": {
"enum": [
"add",
"remove"
],
"type": "string"
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"resourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"resourceType": {
"enum": [
"source",
"collection",
"symbol_set",
"theme"
],
"type": "string"
}
}
}Create, update, delete, or assign layer groups in a project map. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"action",
"group",
"title"
],
"properties": {
"group": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Group ID (required for update/delete, auto-generated for create)."
},
"name": {
"type": "string",
"description": "Group name (required for create, optional for update)."
},
"collapsed": {
"type": "boolean",
"description": "Whether the group is collapsed in the panel."
}
},
"description": "Group definition."
},
"title": {
"type": "string",
"description": "Short description of the group change."
},
"action": {
"enum": [
"create",
"update",
"delete",
"assign_layers"
],
"type": "string",
"description": "The action to perform."
},
"layerIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Existing layer IDs to assign to group.id. Valid for create, update, and assign_layers."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Read the status and result of a queued mobility analysis job.
| Argument | Type | Description |
|---|---|---|
| runId* | string | |
| projectId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"runId"
],
"properties": {
"runId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Run read-only DuckDB SQL over the project's GeoParquet data — filter, aggregate, join, and measure features — with optional materialisation of derived datasets.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "SQL SELECT query. Use namespaced IDs as table names, e.g.: SELECT name, landuse FROM \"source:516d075e-bdb5-4e27-aa61-0b14b4eff0df\" WHERE landuse IS NOT NULL LIMIT 10"
},
"title": {
"type": "string",
"description": "Required for materialize: title for the new derived source."
},
"action": {
"enum": [
"preview",
"materialize"
],
"type": "string",
"default": "preview",
"description": "'preview' returns rows; 'materialize' creates a derived source."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Remove one or more layers from a project map. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerIds",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of what was removed."
},
"layerIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "The IDs of the layers to remove."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Change the draw order of layers in a project map. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerIds",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the reorder."
},
"layerIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Complete ordered list of all layer IDs."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Geocode place names to coordinates, or reverse geocode coordinates to place names.
No arguments.
{
"type": "object",
"oneOf": [
{
"type": "object",
"required": [
"action",
"queries"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"action": {
"type": "string",
"const": "forward"
},
"context": {
"type": "object",
"properties": {
"bbox": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
]
},
"language": {
"type": "string",
"default": "en",
"maxLength": 16,
"minLength": 2
},
"countryCode": {
"type": "string",
"maxLength": 2,
"minLength": 2
}
}
},
"queries": {
"type": "array",
"items": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"maxItems": 10,
"minItems": 1
}
}
},
{
"type": "object",
"required": [
"action",
"longitude",
"latitude"
],
"properties": {
"limit": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1
},
"action": {
"type": "string",
"const": "reverse"
},
"context": {
"type": "object",
"properties": {
"bbox": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
]
},
"language": {
"type": "string",
"default": "en",
"maxLength": 16,
"minLength": 2
},
"countryCode": {
"type": "string",
"maxLength": 2,
"minLength": 2
}
}
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
}
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Run a predefined spatial operation (buffer, intersect, union, clip, spatial join, proximity, dissolve) and persist derived results.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"operation",
"sourceId",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Human-readable title for the resulting derived layer."
},
"params": {
"type": "object",
"properties": {
"keyA": {
"type": "string",
"description": "Join key on primary source."
},
"keyB": {
"type": "string",
"description": "Join key on secondary source."
},
"groupBy": {
"type": "string",
"description": "Property name to group by (dissolve)."
},
"distanceMeters": {
"type": "number",
"description": "Buffer distance in meters."
}
},
"description": "Operation-specific parameters."
},
"sourceId": {
"type": "string",
"description": "Primary source for the operation."
},
"operation": {
"enum": [
"bounds",
"buffer",
"centroid",
"dissolve",
"clip",
"countPoints",
"intersect",
"join",
"subtract"
],
"type": "string",
"description": "The spatial operation to run. Single-layer: bounds, buffer, centroid, dissolve. Multi-layer: clip (target+mask), countPoints (polygons primary + points secondary), intersect, join, subtract (target-mask)."
},
"secondarySourceId": {
"type": "string",
"description": "Second source for multi-layer operations. Omit (or pass empty string) for single-layer ops."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Assign light and/or dark basemaps to a project map. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the basemap change."
},
"basemapIdDark": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "UUID of the dark basemap."
},
"basemapIdLight": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "UUID of the light basemap."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Set or clear a validated attribute filter controlling which features a layer draws. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"filter",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the filter change."
},
"filter": {
"anyOf": [
{
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
},
{
"type": "null"
}
],
"description": "GMS filter expression object, or null to clear the filter."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Show or hide one layer in the project map. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"visibility"
],
"properties": {
"layerId": {
"type": "string",
"description": "The ID of the layer."
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string",
"description": "'visible' or 'none'."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Set a layer's minimum and maximum visible zoom levels. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of the zoom range change."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
},
"maxZoom": {
"type": "integer",
"maximum": 22,
"minimum": 0,
"description": "Maximum zoom level (default 22)."
},
"minZoom": {
"type": "integer",
"maximum": 22,
"minimum": 0,
"description": "Minimum zoom level (default 0)."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Navigate the live project camera or persist a default view. expectedSpecVersion protects persisted changes from stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"camera"
],
"properties": {
"title": {
"type": "string",
"description": "Short description for history. Only used when action === \"save\"."
},
"action": {
"enum": [
"navigate",
"save"
],
"type": "string",
"default": "navigate",
"description": "navigate = ephemeral fly-to (default); save = persist as project default view."
},
"camera": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"center",
"zoom"
],
"properties": {
"type": {
"type": "string",
"const": "static"
},
"zoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"pitch": {
"type": "number",
"default": 0,
"maximum": 85,
"minimum": 0
},
"center": {
"type": "array",
"prefixItems": [
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
}
]
},
"bearing": {
"type": "number",
"default": 0,
"maximum": 360,
"minimum": 0
}
}
},
{
"type": "object",
"required": [
"type",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
]
},
"type": {
"type": "string",
"const": "bounds"
},
"padding": {
"type": "number",
"default": 20
}
}
},
{
"type": "object",
"required": [
"type",
"layerId"
],
"properties": {
"type": {
"type": "string",
"const": "layer-extent"
},
"layerId": {
"type": "string"
},
"padding": {
"type": "number",
"default": 20
}
}
}
]
},
"timing": {
"type": "object",
"properties": {
"pause": {
"type": "number",
"maximum": 15000,
"minimum": 0,
"description": "Hold time in milliseconds after arriving before continuing. Use for multi-step demos so the user can observe each view."
},
"duration": {
"type": "number",
"maximum": 15000,
"minimum": 0,
"description": "Fly animation duration in milliseconds. Omit for auto (MapLibre default based on distance)."
}
},
"description": "Animation and pacing config. Only used with navigate action."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Submit a private request for missing geospatial data for the project owner, after catalogue search found nothing suitable.
| Argument | Type | Description |
|---|---|---|
| dataset* | string | |
| geography | string | |
| projectId* | string | |
| requirements | string | |
| knownSourceUrl | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"dataset"
],
"properties": {
"dataset": {
"type": "string",
"maxLength": 200,
"minLength": 3
},
"geography": {
"type": "string",
"maxLength": 160
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"requirements": {
"type": "string",
"maxLength": 2000
},
"knownSourceUrl": {
"type": "string",
"format": "uri",
"maxLength": 2048
}
}
}Configure or clear the label definition for a map layer. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"label",
"title"
],
"properties": {
"label": {
"anyOf": [
{
"type": "object",
"properties": {
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"field": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"haloColor": {
"type": "string"
},
"haloWidth": {
"type": "number",
"maximum": 20,
"minimum": 0
},
"placement": {
"enum": [
"point",
"line"
],
"type": "string"
}
}
},
{
"type": "null"
}
],
"description": "Label config object, or null to clear labels."
},
"title": {
"type": "string",
"description": "Short description of the label change."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Merge typed paint and display properties into a map layer's symbology: colours, ramps, opacity, and stroke. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | any | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"oneOf": [
{
"type": "object",
"required": [
"layerId",
"layerType",
"title"
],
"properties": {
"paint": {
"type": "object",
"properties": {
"color": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"radius": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"opacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"iconSize": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"iconImage": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"iconOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeWidth": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
}
},
"description": "Point paint properties to merge. Feature navigation states hovered, active, focused, and selected are boolean MapLibre feature-state values; read them with [\"boolean\", [\"feature-state\", \"hovered\"], false]. Geobble supplies each *Progress state as a normalized 0-1 blend factor for transitions, with [\"coalesce\", [\"feature-state\", \"hoveredProgress\"], 0] as the numeric input. At input stop 0 preserve the existing base paint value or expression; at stop 1 use the state appearance. Do not use zero as a paint output unless it is intentionally the base appearance. When scale materially affects readability, use zoom as the outer interpolate or step expression with only a few meaningful stops, placing the feature-state blend in each stop output.",
"additionalProperties": false
},
"title": {
"type": "string",
"description": "Short description of style changes."
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"description": "Display metadata to merge (e.g. vizType, styleBy).",
"additionalProperties": false
},
"layerId": {
"type": "string",
"description": "The ID of the layer to update."
},
"layerType": {
"type": "string",
"const": "point"
}
}
},
{
"type": "object",
"required": [
"layerId",
"layerType",
"title"
],
"properties": {
"paint": {
"type": "object",
"properties": {
"color": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"width": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"opacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"dashArray": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"title": {
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"layerId": {
"type": "string"
},
"layerType": {
"type": "string",
"const": "line"
}
}
},
{
"type": "object",
"required": [
"layerId",
"layerType",
"title"
],
"properties": {
"paint": {
"type": "object",
"properties": {
"fillColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"fillOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeWidth": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
}
},
"additionalProperties": false
},
"title": {
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"layerId": {
"type": "string"
},
"layerType": {
"type": "string",
"const": "polygon"
}
}
},
{
"type": "object",
"required": [
"layerId",
"layerType",
"title"
],
"properties": {
"paint": {
"type": "object",
"properties": {
"fillColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"fillOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeWidth": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
}
},
"additionalProperties": false
},
"title": {
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"layerId": {
"type": "string"
},
"layerType": {
"type": "string",
"const": "circle"
}
}
},
{
"type": "object",
"required": [
"layerId",
"layerType",
"title"
],
"properties": {
"paint": {
"type": "object",
"properties": {
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"contrast": {
"type": "number",
"maximum": 1,
"minimum": -1
},
"hueRotate": {
"type": "number",
"maximum": 360,
"minimum": -360
},
"resampling": {
"enum": [
"linear",
"nearest"
],
"type": "string"
},
"saturation": {
"type": "number",
"maximum": 1,
"minimum": -1
},
"fadeDuration": {
"type": "number",
"minimum": 0
},
"brightnessMax": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"brightnessMin": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"title": {
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"layerId": {
"type": "string"
},
"layerType": {
"type": "string",
"const": "raster"
}
}
},
{
"type": "object",
"required": [
"layerId",
"layerType",
"title"
],
"properties": {
"paint": {
"type": "object",
"properties": {
"radius": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"weight": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"opacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"intensity": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
},
"title": {
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"layerId": {
"type": "string"
},
"layerType": {
"type": "string",
"const": "heatmap"
}
}
},
{
"type": "object",
"required": [
"layerId",
"layerType",
"title"
],
"properties": {
"paint": {
"type": "object",
"properties": {
"fillColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"fillOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"type": "string",
"minLength": 1
},
"strokeWidth": {
"type": "number",
"minimum": 0
},
"strokeOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"title": {
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"layerId": {
"type": "string"
},
"layerType": {
"type": "string",
"const": "h3"
}
}
}
]
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Merge Workspace-owned map settings into a project: camera, interactions, metadata, and computed fields, with optimistic concurrency and canonical GMS validation.
| Argument | Type | Description |
|---|---|---|
| title* | string | |
| settings* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"settings",
"title"
],
"properties": {
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"settings": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"defaultView": {
"type": "object",
"required": [
"center",
"zoom"
],
"properties": {
"zoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"pitch": {
"type": "number",
"default": 0,
"maximum": 85,
"minimum": 0
},
"center": {
"type": "array",
"prefixItems": [
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
}
]
},
"bearing": {
"type": "number",
"default": 0,
"maximum": 360,
"minimum": 0
}
},
"additionalProperties": false
},
"description": {
"type": "string"
},
"zoomConstraints": {
"type": "object",
"required": [
"minZoom",
"maxZoom"
],
"properties": {
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
}
}
},
"extentConstraints": {
"type": "array",
"prefixItems": [
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
},
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
}
]
}
},
"additionalProperties": false
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Validate a project map: canonical GMS, renderer compatibility, referenced resources, and expected outputs.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"input"
],
"properties": {
"input": {
"type": "object",
"properties": {
"reason": {
"type": "string",
"description": "Short reason for validation, e.g. \"before final response\"."
},
"expectedOutputs": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"layerId"
],
"properties": {
"layerId": {
"type": "string",
"minLength": 1
},
"sourceId": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string",
"minLength": 1
},
"mustBeVisible": {
"type": "boolean",
"default": true
},
"distinctSourceFromLayerIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
},
"description": "One entry for every distinct visible output the user requested. Checks actual layer presence, visibility, source, and requested source distinctness."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Read the full map specification of a project as it was at a prior version.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"version"
],
"properties": {
"version": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The version number to view (e.g., 1, 2, 3, etc.). Use the history list to see available versions.",
"exclusiveMinimum": 0
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Inspect effective access to a geospatial resource: visibility, inheritance, and individual or organization shares.
| Argument | Type | Description |
|---|---|---|
| resourceId* | string | |
| resourceType* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"resourceType",
"resourceId"
],
"properties": {
"resourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"resourceType": {
"enum": [
"SOURCE",
"COLLECTION",
"MAP",
"PROJECT",
"SYMBOL_SET",
"THEME"
],
"type": "string"
}
}
}Preview publishing or unpublishing a resource.
| Argument | Type | Description |
|---|---|---|
| resourceId* | string | |
| visibility* | string | |
| resourceType* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"resourceType",
"resourceId",
"visibility"
],
"properties": {
"resourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"visibility": {
"enum": [
"PUBLIC",
"PRIVATE"
],
"type": "string"
},
"resourceType": {
"enum": [
"COLLECTION",
"MAP",
"SYMBOL_SET",
"THEME"
],
"type": "string"
}
}
}Preview moving a source, collection, map, or project to trash.
| Argument | Type | Description |
|---|---|---|
| resourceId* | string | |
| resourceType* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"resourceType",
"resourceId"
],
"properties": {
"resourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"resourceType": {
"enum": [
"SOURCE",
"COLLECTION",
"MAP",
"PROJECT"
],
"type": "string"
}
},
"additionalProperties": false
}Restore an eligible dataset, collection, map, or project from trash.
| Argument | Type | Description |
|---|---|---|
| resourceId* | string | |
| resourceType* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"resourceType",
"resourceId"
],
"properties": {
"resourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"resourceType": {
"enum": [
"SOURCE",
"COLLECTION",
"MAP",
"PROJECT"
],
"type": "string"
}
},
"additionalProperties": false
}Preview granting a user, organization, or public share.
| Argument | Type | Description |
|---|---|---|
| role* | string | |
| target* | any | |
| expiresAt | any | |
| resourceId* | string | |
| resourceType* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"resourceType",
"resourceId",
"target",
"role"
],
"properties": {
"role": {
"enum": [
"VIEWER",
"EDITOR",
"ADMIN"
],
"type": "string"
},
"target": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"handle"
],
"properties": {
"type": {
"type": "string",
"const": "ACCOUNT"
},
"handle": {
"type": "string",
"maxLength": 64,
"minLength": 1
}
}
},
{
"type": "object",
"required": [
"type",
"teamId"
],
"properties": {
"type": {
"type": "string",
"const": "TEAM"
},
"teamId": {
"type": "string",
"maxLength": 128,
"minLength": 1
}
}
}
]
},
"expiresAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"resourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"resourceType": {
"enum": [
"SOURCE",
"COLLECTION",
"MAP",
"PROJECT",
"SYMBOL_SET"
],
"type": "string"
}
}
}Preview revoking an existing share.
| Argument | Type | Description |
|---|---|---|
| shareId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shareId"
],
"properties": {
"shareId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Fetch and render an accessible collection, project, map, or source for visual inspection.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| identifier* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind",
"identifier"
],
"properties": {
"kind": {
"enum": [
"collection",
"project",
"map",
"source"
],
"type": "string"
},
"identifier": {
"type": "string",
"maxLength": 256,
"minLength": 1
}
}
}Search accessible geospatial resources — datasets, projects, published maps, and collections — in one ordered result set. Use it to find GIS data or a map before calling the get tools.
| Argument | Type | Description |
|---|---|---|
| kinds | array | |
| limit | integer | |
| query | string | |
| offset | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kinds": {
"type": "array",
"items": {
"enum": [
"collection",
"project",
"map",
"source"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0
}
}
}Search accessible Geobble resources and render an interactive result grid. Use when visual selection would help the user.
| Argument | Type | Description |
|---|---|---|
| kinds | array | |
| limit | integer | |
| query | string | |
| offset | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"kinds": {
"type": "array",
"items": {
"enum": [
"collection",
"project",
"map",
"source"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1
},
"limit": {
"type": "integer",
"default": 12,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0
}
}
}Poll a prepared geospatial export and return a fresh download capability once the format conversion is ready. Repeat the same filter used to prepare the export; a different filter is a different artifact and it is not enqueued here.
| Argument | Type | Description |
|---|---|---|
| download* | object | |
| sourceId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sourceId",
"download"
],
"properties": {
"download": {
"type": "object",
"properties": {
"filter": {
"type": "object",
"properties": {
"bbox": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
]
},
"limit": {
"type": "integer",
"maximum": 100000,
"minimum": 1
},
"columns": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"maxItems": 64,
"minItems": 1
},
"expression": {}
},
"additionalProperties": false
},
"format": {
"enum": [
"original",
"cog",
"parquet",
"geojson",
"gpkg",
"shp",
"csv"
],
"type": "string",
"default": "parquet"
},
"expiresIn": {
"type": "integer",
"default": 900,
"maximum": 3600,
"minimum": 60
}
}
},
"sourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Import a geospatial dataset from a public URL, validated against SSRF and enqueued as a bounded import.
| Argument | Type | Description |
|---|---|---|
| upload* | object | |
| ownerHandle* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ownerHandle",
"upload"
],
"properties": {
"upload": {
"type": "object",
"required": [
"title",
"slug",
"collectionSlug",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 128,
"minLength": 1
},
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"description": {
"type": "string",
"default": "",
"maxLength": 2000
},
"collectionSlug": {
"type": "string",
"minLength": 1
}
}
},
"ownerHandle": {
"type": "string",
"maxLength": 64,
"minLength": 3
}
}
}Prepare a dataset download and return a short-lived download capability, or enqueue a billed export when the requested GIS format needs conversion. An optional stateless filter (bbox, typed attribute predicates, column projection, row cap) produces a snapshot export; parquet filters are computed with DuckDB over the source GeoParquet. Repeat the same filter when polling status.
| Argument | Type | Description |
|---|---|---|
| download* | object | |
| sourceId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sourceId",
"download"
],
"properties": {
"download": {
"type": "object",
"properties": {
"filter": {
"type": "object",
"properties": {
"bbox": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
},
{
"type": "number"
}
]
},
"limit": {
"type": "integer",
"maximum": 100000,
"minimum": 1
},
"columns": {
"type": "array",
"items": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"maxItems": 64,
"minItems": 1
},
"expression": {}
},
"additionalProperties": false
},
"format": {
"enum": [
"original",
"cog",
"parquet",
"geojson",
"gpkg",
"shp",
"csv"
],
"type": "string",
"default": "parquet"
},
"expiresIn": {
"type": "integer",
"default": 900,
"maximum": 3600,
"minimum": 60
}
}
},
"sourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Prepare a dataset upload: create a pending spatial source and return a presigned upload capability for GIS files such as GeoJSON, Shapefile, GeoPackage, KML, or CSV with coordinates.
| Argument | Type | Description |
|---|---|---|
| upload* | object | |
| ownerHandle* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ownerHandle",
"upload"
],
"properties": {
"upload": {
"type": "object",
"required": [
"title",
"slug",
"collectionSlug",
"fileName",
"fileSize"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 128,
"minLength": 1
},
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"fileName": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"fileSize": {
"type": "integer",
"maximum": 209715200,
"minimum": 1
},
"expiresIn": {
"type": "integer",
"default": 900,
"maximum": 3600,
"minimum": 60
},
"contentType": {
"type": "string"
},
"description": {
"type": "string",
"default": "",
"maxLength": 2000
},
"collectionSlug": {
"type": "string",
"minLength": 1
}
}
},
"ownerHandle": {
"type": "string",
"maxLength": 64,
"minLength": 3
}
}
}Update a dataset's descriptive, temporal, provenance, and review metadata.
| Argument | Type | Description |
|---|---|---|
| patch* | object | |
| sourceId* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sourceId",
"patch"
],
"properties": {
"patch": {
"type": "object",
"properties": {
"about": {
"type": "string"
},
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"adminLevel": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"licenceUrl": {
"anyOf": [
{
"type": "string",
"format": "uri",
"maxLength": 1024
},
{
"type": "null"
}
]
},
"sourceKind": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"description": {
"type": "string",
"maxLength": 500
},
"licenceName": {
"anyOf": [
{
"type": "string",
"maxLength": 256
},
{
"type": "null"
}
]
},
"limitations": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "null"
}
]
},
"originalUrl": {
"anyOf": [
{
"type": "string",
"format": "uri",
"maxLength": 1024
},
{
"type": "null"
}
]
},
"retrievedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"reviewDueAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"temporalEnd": {
"anyOf": [
{
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
{
"type": "null"
}
]
},
"citationText": {
"anyOf": [
{
"type": "string",
"maxLength": 2000
},
{
"type": "null"
}
]
},
"countryCodes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 2,
"minLength": 2
},
"maxItems": 50
},
"reviewStatus": {
"enum": [
"CURRENT",
"NEEDS_REVIEW",
"IN_REVIEW",
"STALE"
],
"type": "string"
},
"referenceDate": {
"anyOf": [
{
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
{
"type": "null"
}
]
},
"temporalStart": {
"anyOf": [
{
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
{
"type": "null"
}
]
},
"lastReviewedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
{
"type": "null"
}
]
},
"originalCreator": {
"anyOf": [
{
"type": "string",
"maxLength": 512
},
{
"type": "null"
}
]
},
"processingNotes": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "null"
}
]
}
}
},
"sourceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}Add a map layer using Studio defaults and Studio-owned fields. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layer",
"title"
],
"properties": {
"layer": {
"oneOf": [
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "point"
},
"label": {
"type": "object",
"properties": {
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"field": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"haloColor": {
"type": "string"
},
"haloWidth": {
"type": "number",
"maximum": 20,
"minimum": 0
},
"placement": {
"enum": [
"point",
"line"
],
"type": "string"
}
}
},
"paint": {
"type": "object",
"properties": {
"color": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"radius": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"opacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"iconSize": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"iconImage": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"iconOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeWidth": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "object",
"properties": {
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"field": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"haloColor": {
"type": "string"
},
"haloWidth": {
"type": "number",
"maximum": 20,
"minimum": 0
},
"placement": {
"enum": [
"point",
"line"
],
"type": "string"
}
}
},
"paint": {
"type": "object",
"properties": {
"color": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"width": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"opacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"dashArray": {
"anyOf": [
{
"type": "array",
"items": {
"type": "number"
}
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "polygon"
},
"label": {
"type": "object",
"properties": {
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"field": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"haloColor": {
"type": "string"
},
"haloWidth": {
"type": "number",
"maximum": 20,
"minimum": 0
},
"placement": {
"enum": [
"point",
"line"
],
"type": "string"
}
}
},
"paint": {
"type": "object",
"properties": {
"fillColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"fillOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeWidth": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "circle"
},
"label": {
"type": "object",
"properties": {
"size": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"color": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"field": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"haloColor": {
"type": "string"
},
"haloWidth": {
"type": "number",
"maximum": 20,
"minimum": 0
},
"placement": {
"enum": [
"point",
"line"
],
"type": "string"
}
}
},
"paint": {
"type": "object",
"properties": {
"fillColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"fillOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeWidth": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "raster"
},
"label": {
"not": {}
},
"paint": {
"type": "object",
"properties": {
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"contrast": {
"type": "number",
"maximum": 1,
"minimum": -1
},
"hueRotate": {
"type": "number",
"maximum": 360,
"minimum": -360
},
"resampling": {
"enum": [
"linear",
"nearest"
],
"type": "string"
},
"saturation": {
"type": "number",
"maximum": 1,
"minimum": -1
},
"fadeDuration": {
"type": "number",
"minimum": 0
},
"brightnessMax": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"brightnessMin": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "heatmap"
},
"label": {
"not": {}
},
"paint": {
"type": "object",
"properties": {
"radius": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"weight": {
"anyOf": [
{
"type": "number"
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"opacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"intensity": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
},
{
"type": "object",
"required": [
"version",
"id",
"source",
"type",
"paint"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "h3"
},
"label": {
"not": {}
},
"paint": {
"type": "object",
"properties": {
"fillColor": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"fillOpacity": {
"anyOf": [
{
"type": "number",
"maximum": 1,
"minimum": 0
},
{
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
]
},
"strokeColor": {
"type": "string",
"minLength": 1
},
"strokeWidth": {
"type": "number",
"minimum": 0
},
"strokeOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"filter": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
},
"legend": {
"type": "object",
"required": [
"displayName",
"type"
],
"properties": {
"type": {
"enum": [
"choropleth",
"categorical",
"simple",
"gradient"
],
"type": "string"
},
"items": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "symbol"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"iconSize": {
"type": "number"
},
"iconImage": {
"type": "string"
},
"strokeColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"strokeWidth": {
"type": "number"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "line"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"width": {
"type": "number"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"dashArray": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "fill"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"fillColor"
],
"properties": {
"fillColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"fillOpacity": {
"type": "number",
"maximum": 1,
"minimum": 0
},
"outlineColor": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"style"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "gradient"
},
"label": {
"type": "string",
"minLength": 1
},
"style": {
"type": "object",
"required": [
"stops"
],
"properties": {
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"offset",
"color"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"offset": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
},
"interactive": {
"type": "boolean"
}
}
},
{
"type": "object",
"required": [
"id",
"label",
"type",
"property",
"stops"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"const": "choropleth"
},
"label": {
"type": "string",
"minLength": 1
},
"stops": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color",
"label"
],
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"label": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0
}
},
"additionalProperties": false
}
},
"property": {
"type": "string"
},
"interactive": {
"type": "boolean"
}
}
}
]
}
},
"caption": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"displayName": {
"type": "string",
"minLength": 1
},
"interactive": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
},
"source": {
"type": "string",
"minLength": 1
},
"binMode": {
"enum": [
"fixed",
"low",
"medium",
"high"
],
"type": "string"
},
"display": {
"type": "object",
"properties": {
"styleBy": {
"type": "string"
},
"vizType": {
"enum": [
"simple",
"categorical",
"numeric",
"proportional"
],
"type": "string",
"default": "simple"
},
"colorRamp": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
},
"sizeRange": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"categories": {
"type": "array",
"items": {
"type": "object",
"required": [
"value",
"color"
],
"properties": {
"color": {
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
},
"additionalProperties": false
}
},
"rampDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"sizeDomain": {
"type": "array",
"prefixItems": [
{
"type": "number"
},
{
"type": "number"
}
]
},
"fallbackColor": {
"type": "string"
}
},
"additionalProperties": false
},
"groupId": {
"type": "string"
},
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"version": {
"type": "string",
"const": "1.0"
},
"attributes": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"name",
"fieldType"
],
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"fieldType": {
"enum": [
"string",
"number",
"boolean"
],
"type": "string"
}
}
}
},
"properties": {
"type": "array",
"items": {
"type": "string"
}
},
"resolution": {
"type": "integer",
"maximum": 15,
"minimum": 0
},
"visibility": {
"enum": [
"visible",
"none"
],
"type": "string"
},
"aggregation": {
"enum": [
"count",
"sum",
"mean",
"min",
"max"
],
"type": "string"
},
"sourceLayer": {
"type": "string"
},
"weightField": {
"type": "string"
},
"serverFilter": {
"type": "object",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "array",
"items": {},
"minItems": 1,
"description": "GMS expression array."
}
}
}
}
}
],
"description": "Full GMS layer object. Required fields: version (MUST be \"1.0\"), type (point|line|polygon|circle|raster|heatmap|h3), id (unique string), source (namespaced ID like \"source:uuid\"), paint (type-specific object). IMPORTANT: Paint properties use camelCase, NOT MapLibre hyphenated format. Missing paint properties are filled from Geobble agent design defaults, but explicit paint values are preserved. Polygon paint: { fillColor, fillOpacity, strokeColor, strokeWidth, strokeOpacity }. Point paint: { color, radius, strokeWidth, strokeColor, opacity, iconImage, iconSize, iconOpacity }. Use iconImage with a canonical symbol:uuid ref returned by get_resource when a symbol set icon should render instead of a circle marker. Do not use symbol slugs, symbol set IDs, @references, or file paths. For point overlays on thematic maps, keep minZoom at 0 unless the user explicitly asks to hide low zooms; prefer zoom-dependent radius/opacity over making points disappear. Line paint: { color, width, dashArray, opacity }. Heatmap paint: { weight, radius, intensity, colorRamp, opacity }. H3 paint: { fillColor, fillOpacity, strokeColor, strokeWidth, strokeOpacity }. Raster paint: { opacity, saturation, contrast, brightnessMin, brightnessMax }. Colors can be hex strings or GMS expressions like [\"case\", [\"==\", [\"get\", \"prop\"], \"val\"], \"#color1\", \"#color2\"]. Feature navigation states hovered, active, focused, and selected are boolean MapLibre feature-state values. Use [\"boolean\", [\"feature-state\", \"hovered\"], false] for branches. Geobble supplies each *Progress state as a normalized 0-1 blend factor for smooth transitions, with [\"coalesce\", [\"feature-state\", \"hoveredProgress\"], 0] as the numeric input. At input stop 0 preserve the existing base paint value or expression; at stop 1 use the state appearance. Do not use zero as a paint output unless it is intentionally the base appearance. When scale materially affects readability, use zoom as the outer interpolate or step expression with only a few meaningful stops, placing the feature-state blend in each stop output. Example polygon layer: { version: \"1.0\", id: \"my-layer\", type: \"polygon\", source: \"source:abc-123\", paint: { fillColor: \"#B66A32\", fillOpacity: 0.34, strokeColor: \"#7A421F\", strokeWidth: 1 } }"
},
"title": {
"type": "string",
"description": "Short description of what layer was added."
},
"position": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Insert position in the layers array. Defaults to end."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Configure the basic popup fields owned by the Studio editing surface. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"layerId",
"popup",
"title"
],
"properties": {
"popup": {
"anyOf": [
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"trigger": {
"enum": [
"click",
"hover"
],
"type": "string"
},
"properties": {
"type": "array",
"items": {
"type": "object",
"required": [
"field"
],
"properties": {
"field": {
"type": "string"
},
"label": {
"type": "string"
},
"format": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"auto",
"text",
"number",
"currency",
"percentage",
"date",
"boolean",
"url"
],
"type": "string"
},
"prefix": {
"type": "string"
},
"suffix": {
"type": "string"
},
"nullLabel": {
"type": "string"
},
"precision": {
"type": "integer",
"maximum": 10,
"minimum": 0
},
"trueLabel": {
"type": "string"
},
"dateFormat": {
"type": "string"
},
"falseLabel": {
"type": "string"
}
}
},
"default": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
}
}
}
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Basic popup config, or null to disable without deleting project-owned content."
},
"title": {
"type": "string",
"description": "Short description of the popup change."
},
"layerId": {
"type": "string",
"description": "The ID of the layer."
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Update Studio-owned map settings, including contour lines. expectedSpecVersion is required to prevent stale writes.
| Argument | Type | Description |
|---|---|---|
| input* | object | |
| projectId* | string | |
| expectedSpecVersion* | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"settings",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Short description of settings changes."
},
"settings": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"contour": {
"type": "object",
"required": [
"enabled"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 20
},
"enabled": {
"type": "boolean"
},
"opacity": {
"type": "number",
"default": 0.85,
"maximum": 1,
"minimum": 0
},
"interval": {
"type": "number",
"default": 100,
"minimum": 1
},
"demTileUrl": {
"type": "string"
},
"majorColor": {
"type": "string",
"default": "#7e22ce"
},
"majorWidth": {
"type": "number",
"default": 2,
"minimum": 0
},
"minorColor": {
"type": "string",
"default": "#a855f7"
},
"minorWidth": {
"type": "number",
"default": 0.8,
"minimum": 0
},
"demEncoding": {
"enum": [
"terrarium",
"mapbox"
],
"type": "string"
},
"majorInterval": {
"type": "number",
"default": 500,
"minimum": 1
},
"elevationLabel": {
"type": "boolean",
"default": true
}
}
},
"defaultView": {
"type": "object",
"required": [
"center",
"zoom"
],
"properties": {
"zoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"pitch": {
"type": "number",
"default": 0,
"maximum": 85,
"minimum": 0
},
"center": {
"type": "array",
"prefixItems": [
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
}
]
},
"bearing": {
"type": "number",
"default": 0,
"maximum": 360,
"minimum": 0
}
},
"additionalProperties": false
},
"description": {
"type": "string"
},
"zoomConstraints": {
"type": "object",
"required": [
"minZoom",
"maxZoom"
],
"properties": {
"maxZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
},
"minZoom": {
"type": "number",
"maximum": 22,
"minimum": 0
}
}
},
"extentConstraints": {
"type": "array",
"prefixItems": [
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
},
{
"type": "number",
"maximum": 180,
"minimum": -180
},
{
"type": "number",
"maximum": 90,
"minimum": -90
}
]
}
},
"description": "Settings object to merge. Keys: title, description, defaultView ({center, zoom, bearing, pitch}), extentConstraints ([west, south, east, north]), zoomConstraints ({minZoom, maxZoom}), contour ({enabled, interval, majorInterval, minorColor, minorWidth, majorColor, majorWidth, opacity, elevationLabel}).",
"additionalProperties": false
}
}
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Preview publishing a project as a new immutable map revision. Set targetMapId and expectedCurrentPublicationId to republish an existing map.
| Argument | Type | Description |
|---|---|---|
| slug | string | |
| title | string | |
| projectId* | string | |
| visibility | string | |
| description | string | |
| ownerHandle* | string | |
| targetMapId | string | |
| embedEnabled | boolean | |
| idempotencyKey* | string | |
| expectedSpecVersion* | integer | |
| expectedCurrentPublicationId | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"projectId",
"expectedSpecVersion",
"idempotencyKey",
"ownerHandle"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"title": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"projectId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"visibility": {
"enum": [
"PUBLIC",
"PRIVATE"
],
"type": "string",
"default": "PRIVATE"
},
"description": {
"type": "string",
"maxLength": 4000
},
"ownerHandle": {
"type": "string",
"maxLength": 64,
"minLength": 3
},
"targetMapId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"embedEnabled": {
"type": "boolean"
},
"idempotencyKey": {
"type": "string",
"maxLength": 128,
"minLength": 1
},
"expectedSpecVersion": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"expectedCurrentPublicationId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}