Types
Types
This page contains all types that can be provided as arguments to Map SDK functions. All types used throughout Map SDK functions link to this page, and any types that employ other types are referenced via clickable links.
Analytics Types
AnalyticsEventHandlers
AnalyticsEventHandlers
Called whenever a user-triggered event happens.
Note: This is a on-prem feature and is not available for other versions of the Map SDK.
type AnalyticsEventHandlers = {
onUserEvent?: (event: UserEvent) => void
};
NoPayloadEvents
NoPayloadEvents
export type NoPayloadEvent =
| RemoveDatasetEvent
| AddLayerEvent
| RemoveLayerEvent
| AddLayerGroupEvent
| RemoveLayerGroupEvent;
RasterTileLoadEvent
RasterTileLoadEvent
A type returning raster tile loading status updates.
assetUrls: string[];
tileIndex: [number, number, number];
remainingTiles: number;
status: 'loading' | 'loaded' | 'canceled';
error?: Error;
Argument | Type | Description |
---|---|---|
assetUrls | string[] | An array of URLs that the tile assets are being requested from. |
tileIndex | [number, number, number] | An array containing tile coordinates [x, y, z]. |
remainingTiles | number | Total number of tiles that are being loaded. |
status | string | The status of the raster tile loading. Either 'loading' , 'loaded' , 'canceled' , or 'failed' . |
error | Error | If an error occurred, an error object describing the loading error. |
UserEvent
UserEvent
A collection of types of events that are reported by onUserEvent
callback.
type UserEvent = NoPayloadEvent | MapControlClickedEvent | SidePanelSectionChangedEvent;
Parameters
MapControlClickedEvent
can return a payload with the control modified.
type MapControlClickedEvent = EventWithPayload<
'activate-map-control',
| {control: 'legend' | 'chart'}
| {control: 'toggle-3d', mode: ViewMode}
| {control: 'split-map', mode: SplitMode}
| {control: 'map-draw', mode: DrawMode}
>;
SidePanelSectionChangedEvent
can return the side panel changed.
type SidePanelSectionChangedEvent = EventWithPayload<
'change-side-panel-section',
{panel: SidePanelType}
>;
UserEventType
UserEventType
A collection of types of events that are reported by onUserEvent
callback.
type UserEventType =
| 'remove-dataset'
| 'add-layer'
| 'remove-layer'
| 'add-layer-group'
| 'remove-layer-group'
| 'activate-map-control'
| 'change-side-panel-section';
Argument | Type | Description |
---|---|---|
'remove-dataset' | string | Reported when a user removed a dataset. |
'add-layer' | string | Reported when a user adds a layer. |
'remove-layer' | string | Reported when a user removes a layer. |
'add-layer-group' | string | Reported when a user adds a layer group. |
'activate-map-control' | string | Reported when a user activates the map's controls. |
'change-side-panel-section' | string | Reported when a user changes side panel sections. |
Annotation Types
Annotation
Annotation
A callout on the map, including a text label and an optional pointer to a location. See examples in Studio product documentation.
Annotation = {
id: string;
kind: 'POINT' | 'CIRCLE' | 'ARROW' | 'TEXT';
isVisible: boolean;
autoSize?: boolean;
autoSizeY?: boolean;
anchorPoint: AnchorPoint;
label: string;
editorState?: EditorState;
mapIndex?: number;
lineColor: string;
lineWidth: number;
textWidth: number;
textHeight: number;
textVerticalAlign?: 'top' | 'middle' | 'bottom';
armLength?: number;
angle?: number;
radiusInMeters?: number;
};
class Annotation():
id: StrictStr
kind: Literal["TEXT", "ARROW", "POINT", "CIRCLE"]
is_visible: StrictBool
auto_size: Optional[StrictBool]
auto_size_y: Optional[StrictBool]
anchor_point: Tuple[float, float]
label: StrictStr
editor_state: Optional[Any]
map_index: Optional[int]
line_color: StrictStr
line_width: float
text_width: float
text_height: float
text_vertical_align: Literal["top", "middle", "bottom"]
arm_length: Optional[float]
angle: Optional[float]
radius_in_meters: Optional[float]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
id | string | The unique identifier of the annotation. |
kind | 'POINT' | 'CIRCLE' | 'ARROW' | 'TEXT' | The type of annotation. |
isVisible | boolean | Whether the annotation should be visible on the map. |
autoSize | boolean | undefined | Whether the annotation should be auto-sized horizontally to fit the text. |
autoSizeY | boolean | undefined | Whether the annotation should be auto-sized vertically to fit the text. |
anchorPoint | AnchorPoint ([lon, lat] ) | The anchor point of the annotation in [lon, lat] format. |
label | string | The textual description of the annotation. |
editorState | EditorState | The state of the editor. See more information for EditorState |
mapIndex | number | undefined | The index of the map this annotation is attached to. |
lineColor | string | The color of the annotation line. |
lineWidth | number | The width of the annotation line. |
textWidth | number | The width of the annotation text. |
textHeight | number | The height of the annotation text. |
textVerticalAlign | 'top' | 'middle' | 'bottom' | undefined | The vertical alignment of the annotation text. |
armLength | number | The length of the annotation arm in pixels. |
angle | number | The angle of the annotation in degrees. |
radiusInMeters | number | The radius in meters (only for kind 'CIRCLE'). |
Python
Arguments
Argument | Type | Description |
---|---|---|
id | StrictStr | The unique identifier of the annotation. |
kind | Literal["TEXT", "ARROW", "POINT", "CIRCLE"] | The type of annotation. |
is_visible | StrictBool | Whether the annotation should be visible on the map. |
auto_size | Optional[StrictBool] | Whether the annotation should be auto-sized horizontally to fit the text. |
auto_size_y | Optional[StrictBool] | Whether the annotation should be auto-sized vertically to fit the text. |
anchor_point | Tuple[float, float] | The anchor point of the annotation. |
label | StrictStr | The textual description of the annotation. |
editor_state | Optional[Any] | See more information for EditorState |
map_index | Optional[int] | The index of the map this annotation is attached to. |
line_color | StrictStr | The color of the annotation line. |
line_width | float | The width of the annotation line. |
text_width | float | The width of the annotation text. |
text_height | float | The height of the annotation text. |
text_vertical_align | Literal["top", "middle", "bottom"] | The vertical alignment of the annotation text. |
arm_length | Optional[float] | The length of the annotation arm in pixels. |
angle | Optional[float] | The angle of the annotation in degrees. |
radius_in_meters | Optional[float] | The radius in meters (only for kind 'CIRCLE'). |
EditorState
EditorState
Serialized content of Lexical editor (https://lexical.dev/). This object is used for formatting text within map annotations. It supports various customization options such as bold, italic, underline, color, and background color.
To see an example of the EditorState
object working to format text, see our example here.
Arguments
Parameter | Type | Description |
---|---|---|
root | object | Root element containing the entire structure. |
root.children[] | array | Array of child elements (e.g., paragraphs, text, links). |
root.children[].type | string | Specifies element type (text , paragraph , link , linebreak ). |
root.children[].version | number | Indicates element version (always 1). |
root.children[].detail | number | Additional detail for some text elements. |
root.children[].format | number | Formatting options (bold , italic , underline ). |
root.children[].mode | string | Mode of the element (usually "normal"). |
root.children[].style | string | Custom styles like color and background-color . |
root.children[].text | string | Text content of the element. |
root.children[].direction | string | Text direction (usually left to right, or "ltr" ). |
root.children[].indent | number | Indentation level (always 0). |
root.children[].rel | string | Link relationship attribute (for link elements). |
root.children[].target | string | Target attribute for links (for link elements). |
root.children[].url | string | URL for links (for link elements). |
root.children[].children[] | array | Nested array of child elements within a paragraph or other parent element. |
root.children[].children[].type | string | Specifies element type within nested elements. |
root.children[].children[].version | number | Indicates element version within nested elements. |
root.children[].children[].detail | number | Additional detail for nested text elements. |
root.children[].children[].format | number | Formatting options for nested elements. |
root.children[].children[].mode | string | Mode of the element within nested elements. |
root.children[].children[].style | string | Custom styles for nested elements. |
root.children[].children[].text | string | Text content of nested elements. |
root.children[].children[].direction | string | Text direction for nested elements (usually left to right, or "ltr" ), |
root.children[].children[].indent | number | Indentation level for nested elements (always 0). |
root.children[].children[].rel | string | Link relationship attribute for nested link elements. |
root.children[].children[].target | string | Target attribute for nested link elements. |
root.children[].children[].url | string | URL for nested link elements. |
Example
export const editorContent = {
root: {
children: [
{
children: [
{
detail: 0,
format: 0,
mode: "normal",
style: "",
text: "This is ",
type: "text",
version: 1,
},
{
detail: 0,
format: 1,
mode: "normal",
style: "",
text: "bold, ",
type: "text",
version: 1,
},
{
detail: 0,
format: 2,
mode: "normal",
style: "",
text: "italic",
type: "text",
version: 1,
},
{
detail: 0,
format: 1,
mode: "normal",
style: "",
text: ", ",
type: "text",
version: 1,
},
{
detail: 0,
format: 8,
mode: "normal",
style: "",
text: "underline",
type: "text",
version: 1,
},
{
detail: 0,
format: 0,
mode: "normal",
style: "",
text: ".",
type: "text",
version: 1,
},
{
type: "linebreak",
version: 1,
},
{
children: [
{
detail: 0,
format: 0,
mode: "normal",
style: "",
text: "Link",
type: "text",
version: 1,
},
],
direction: "ltr",
format: "",
indent: 0,
type: "link",
version: 1,
rel: "noopener noreferrer",
target: "_blank",
url: "https://studio.foursquare.com",
},
{
detail: 0,
format: 0,
mode: "normal",
style: "",
text: ", ",
type: "text",
version: 1,
},
{
detail: 0,
format: 0,
mode: "normal",
style: "color: #C90000;",
text: "red text",
type: "text",
version: 1,
},
{
detail: 0,
format: 0,
mode: "normal",
style: "",
text: ", ",
type: "text",
version: 1,
},
{
detail: 0,
format: 0,
mode: "normal",
style: "background-color: #52A353;",
text: "green bg",
type: "text",
version: 1,
},
{
detail: 0,
format: 0,
mode: "normal",
style: "",
text: ".",
type: "text",
version: 1,
},
],
direction: "ltr",
format: "",
indent: 0,
type: "paragraph",
version: 1,
},
{
children: [
{
detail: 0,
format: 11,
mode: "normal",
style: "color: #C90000;background-color: #52A353;",
text: "All styles",
type: "text",
version: 1,
},
],
direction: "ltr",
format: "",
indent: 0,
type: "paragraph",
version: 1,
},
],
direction: "ltr",
format: "",
indent: 0,
type: "root",
version: 1,
},
};
editor_content = {
"root": {
"children": [
{
"children": [
{
"detail": 0,
"format": 0,
"mode": "normal",
"style": "",
"text": "This is ",
"type": "text",
"version": 1
},
{
"detail": 0,
"format": 1,
"mode": "normal",
"style": "",
"text": "bold, ",
"type": "text",
"version": 1
},
{
"detail": 0,
"format": 2,
"mode": "normal",
"style": "",
"text": "italic",
"type": "text",
"version": 1
},
{
"detail": 0,
"format": 1,
"mode": "normal",
"style": "",
"text": ", ",
"type": "text",
"version": 1
},
{
"detail": 0,
"format": 8,
"mode": "normal",
"style": "",
"text": "underline",
"type": "text",
"version": 1
},
{
"detail": 0,
"format": 0,
"mode": "normal",
"style": "",
"text": ".",
"type": "text",
"version": 1
},
{
"type": "linebreak",
"version": 1
},
{
"children": [
{
"detail": 0,
"format": 0,
"mode": "normal",
"style": "",
"text": "Link",
"type": "text",
"version": 1
}
],
"direction": "ltr",
"format": "",
"indent": 0,
"type": "link",
"version": 1,
"rel": "noopener noreferrer",
"target": "_blank",
"url": "https://studio.foursquare.com"
},
{
"detail": 0,
"format": 0,
"mode": "normal",
"style": "",
"text": ", ",
"type": "text",
"version": 1
},
{
"detail": 0,
"format": 0,
"mode": "normal",
"style": "color: #C90000;",
"text": "red text",
"type": "text",
"version": 1
},
{
"detail": 0,
"format": 0,
"mode": "normal",
"style": "",
"text": ", ",
"type": "text",
"version": 1
},
{
"detail": 0,
"format": 0,
"mode": "normal",
"style": "background-color: #52A353;",
"text": "green bg",
"type": "text",
"version": 1
},
{
"detail": 0,
"format": 0,
"mode": "normal",
"style": "",
"text": ".",
"type": "text",
"version": 1
}
],
"direction": "ltr",
"format": "",
"indent": 0,
"type": "paragraph",
"version": 1
},
{
"children": [
{
"detail": 0,
"format": 11,
"mode": "normal",
"style": "color: #C90000;background-color: #52A353;",
"text": "All styles",
"type": "text",
"version": 1
}
],
"direction": "ltr",
"format": "",
"indent": 0,
"type": "paragraph",
"version": 1
}
],
"direction": "ltr",
"format": "",
"indent": 0,
"type": "root",
"version": 1
}
}
Dataset Types
AddDatasetOptions
AddDatasetOptions
Javascript-exclusive type.
Options applicable when adding a new dataset.
type AddDatasetOptions = {
autoCreateLayers?: boolean,
centerMap?: boolean
};
Arguments
Argument | Type | Description |
---|---|---|
autoCreateLayers | boolean | Whether to attempt and create new layer(s) when adding a dataset. Defaults to true . |
centerMap | boolean | Whether to center the map to fit the new layer bounds. Defaults to true . |
BaseDataset
BaseDataset
Properties common to both tabular and tiled datasets.
type BaseDataset = {
id: string,
label: string,
color: RGBColor,
fields: Field[]
};
class BaseDataset():
id: str
type: string
label: str
color: RGBColor
fields: List[Field]
Javascript
Arguments
Python
Arguments
BaseDatasetCreationProps
BaseDatasetCreationProps
Data used to create a dataset, in CSV, JSON, GeoJSON format.
type BaseDatasetCreationProps = Partial<Omit<BaseDataset, 'fields'>> & {
data: string | object | unknown[][]
};
class DatasetCreationProps():
id: Optional[str]
label: Optional[str]
color: Optional[RGBColor]
data: Union[str, dict, List[List[Any]]]
Javascript
Parent | Description |
---|---|
BaseDataset | Properties common to both tabular and tiled datasets. |
Arguments
Argument | Type | Description |
---|---|---|
data | string | object | unknown[][] | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
Python
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier for the dataset. |
label | string | Displayable dataset label. |
color | RGBColor | Color label of the dataset. |
data | Union[str, dict, List[List[Any]]] | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
BaseField
BaseField
The field's unique identifier and user-facing label.
type BaseField = {
name: string,
label: string
};
class BaseField():
name: str
label: str
type: FieldType
Javascript
Arguments
Argument | Type | Description |
---|---|---|
name | string | A unique identifier for the field. |
label | string | A user-facing field label. |
Python
Arguments
Argument | Type | Description |
---|---|---|
name | string | A unique identifier for the field. |
label | string | A user-facing field label. |
BasicField
BasicField
Contains semantics around a single field in a dataset table.
type BasicField = BaseField & {
type:
| 'boolean'
| 'date'
| 'geojson'
| 'integer'
| 'real'
| 'string'
| 'array'
| 'object'
| 'point'
| 'h3'
};
class BasicField(BaseField):
type: BasicFieldType
Parent | Description |
---|---|
BaseField | The field's unique identifier and user-facing label. |
Javascript
Arguments
Argument | Type | Description |
---|---|---|
type | string | Type of the field. |
Python
Arguments
Argument | Type | Description |
---|---|---|
type | BasicFieldType | Type of the field. |
BasicFieldType
BasicFieldType
Python exclsuive type.
Available field types.
class BasicFieldType(FieldType):
BOOLEAN = "boolean"
DATE = "date"
GEOJSON = "geojson"
INTEGER = "integer"
REAL = "real"
STRING = "string"
ARRAY = "array"
OBJECT = "object"
POINT = "point"
H3 = "h3"
Dataset
Dataset
Dataset record.
type Dataset = LocalDataset | VectorTileDataset | RasterTileDataset;
Dataset = Union[LocalDataset, VectorTileDataset, RasterTileDataset]
Member | Description |
---|---|
LocalDataset | Dataset record representing a local dataset, with data provided by the caller. |
VectorTileDataset | Dataset record representing a vector tileset. |
RasterTileDataset | Raster tileset metadata. |
DatasetCreationProps
DatasetCreationProps
A set of properties used to synchronously add a dataset to the map.
type DatasetCreationProps =
| LocalDatasetCreationProps
| VectorTileDatasetCreationProps
| RasterTileDatasetCreationProps;
class DatasetCreationProps() = Union[
LocalDatasetCreationProps,
VectorTileDatasetCreationProps,
RasterTileDatasetCreationProps
]
Member | Description |
---|---|
LocalDatasetCreationProps | Dataset record representing a local dataset, with data provided by the caller. |
VectorTileDatasetCreationProps | Dataset record representing a vector tileset. |
RasterTileDatasetCreationProps | Raster tileset metadata. |
DatasetType
DatasetType
Python-exclusive type
Types of currently support datasets.
class DatasetType(str, Enum):
LOCAL = "local"
VECTOR_TILE = "vector-tile"
RASTER_TILE = "raster-tile
DatasetUpdateProps
DatasetUpdateProps
A set of properties used to update a dataset.
type DatasetUpdateProps = Partial<Pick<Dataset, 'label' | 'color'>>;
class _DatasetUpdateProps():
label: Optional[str]
color: Optional[RGBColor]
fields: Optional[List[Field]]
Python
Arguments
DatasetWithData
DatasetWithData
Type encapsulating a dataset record along with its data.
type DatasetWithData = Dataset & {
data: unknown[][]
};
class DatasetWithData(LocalDataset):
data: List[List[Any]]
Javascript
Parent | Description |
---|---|
Dataset | Dataset record. |
Arguments
Argument | Type | Description |
---|---|---|
Dataset | Dataset | Type encapsulating dataset properties. |
data | unknown[][] | Tabular data backing the dataset, where the order of fields matches the order in Dataset.fields |
Python
Parent | Description |
---|---|
Dataset | Dataset record representing a local dataset, with data provided by the caller. |
Arguments
Argument | Type | Description |
---|---|---|
data | List[List[any]] | Tabular data backing the dataset, where the order of fields matches the order in Dataset.fields |
DrawMode
DrawMode
Supported map draw modes.
type DrawMode = 'select' | 'polygon' | 'rectangle';
Field
Field
A unison of available field types.
type Field = BasicField | TimestampField;
Field = Union[BasicField, TimestampField]
Member | Description |
---|---|
BasicField | Contains semantics around a single field in a dataset table. |
TimestampField | Contains semantics around a single timestamp field in a dataset table. |
LocalDataset
LocalDataset
Dataset record representing a local dataset, with data provided by the caller.
type LocalDataset = BaseDataset & {
type: 'local'
};
class LocalDataset(BaseDataset):
type = DatasetType.LOCAL;
Parent | Description |
---|---|
BaseDataset | Properties common to both tabular and tiled datasets. |
Arguments
Argument | Type | Description |
---|---|---|
type | string | Must be "local" . |
LocalDatasetCreationProps
LocalDatasetCreationProps
Dataset record representing a local dataset, with data provided by the caller.
LocalDatasetCreationProps = BaseDatasetCreationProps & {
type?: 'local';
data: string | object | unknown[][];
};
Parent | Description |
---|---|
BaseDatasetCreationProps | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
Arguments
Argument | Type | Description |
---|---|---|
BaseDatasetCreationProps | BaseDatasetCreationProps | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
type | string | Must be "local" . |
data | string , object , unknown[][] | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
RasterTileCreationMetadata
RasterTileCreationMetadata
Raster tileset metadata in STAC Item format. STAC version must be >= 1.0.0, and the EO and Raster STAC extensions are required. This metadata shape can be passed to the map to synchronously add a raster tileset.
type RasterTileCreationMetadata = {
metadataUrl?: string,
type: 'Feature',
stac_version: string,
extensions: string[],
assets: Record<string, any>
};
Arguments
Argument | Type | Description |
---|---|---|
metadataUrl | string | URL for tileset metadata. |
type | string | Type of the raster tileset. |
stac_version | string | STAC version for tileset. |
extensions | string[] | An array of extensions the Item implements. |
assets | Record<string, any>; | Dictionary of asset objects that can be downloaded, each with a unique key. |
RasterTileDataset
RasterTileDataset
Raster tileset metadata.
type RasterTileDataset = BaseDataset & {
type: 'raster-tile',
metadata: RasterTileMetadata
};
class RasterTileDataset(BaseDataset):
type = DatasetType.RASTER_TILE
metadata: RasterTileMetadata
Parent | Description |
---|---|
BaseDataset | Properties common to both tabular and tiled datasets. |
Javascript
Arguments
Argument | Type | Description |
---|---|---|
type | string | Must be "raster-tile" . |
metadata | RasterTileMetadata | Raster tileset metadata. |
Python
Arguments
Argument | Type | Description |
---|---|---|
type | string | Must be "raster-tile" . |
metadata | RasterTileMetadata | Raster tileset metadata. |
RasterTileDatasetCreationProps
RasterTileDatasetCreationProps
Dataset record representing a raster tileset.
type RasterTileDatasetCreationProps = BaseDatasetCreationProps & {
type: 'raster-tile',
metadata: RasterTileCreationMetadata
};
Parent | Description |
---|---|
BaseDatasetCreationProps | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
Arguments
Argument | Type | Description |
---|---|---|
type | string | Must be "raster-tile" . |
metadata | RasterTileCreationMetadata | Raster tileset metadata in STAC Item format. |
RasterTileDatasetRemoteCreationProps
RasterTileDatasetRemoteCreationProps
Dataset record representing a raster tileset.
type RasterTileDatasetRemoteCreationProps = BaseDatasetCreationProps & {
type: 'raster-tile',
metadata: RasterTileRemoteMetadata
};
Parent | Description |
---|---|
BaseDatasetCreationProps | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
Arguments
Argument | Type | Description |
---|---|---|
type | string | Must be "raster-tile" . |
metadata | RasterTileMetadata | The metadata of the raster tile. |
RasterTileLocalMetadata
RasterTileLocalMetadata
Python-exclusive type
Raster tileset metadata in STAC Item format. STAC version must be >= 1.0.0, and the EO and Raster STAC extensions are required. This metadata shape can be passed to the map to synchronously add a raster tileset.
class RasterTileLocalMetadata(RasterTileBaseMetadata):
metadata_url: Optional[string]
type: str = "Feature"
stac_version: str = PydanticField(..., alias="stac_version")
stac_extensions: List[str] = PydanticField(..., alias="stac_extensions")
assets: Dict[str, Any]
Parent | Description |
---|---|
RasterTileBaseMetadata | Raster tileset metadata. |
Arguments
Argument | Type | Description |
---|---|---|
metadata_url | string | URL for tileset metadata. |
type | string | Type of the raster tileset. |
stac_version | string | STAC version for tilesets. |
stac_extensions | List[str] | A list of extensions the Item implements. |
assets | Dict[str, Any] | Dictionary of asset objects that can be downloaded, each with a unique key. |
RasterTileMetadata
RasterTileMetadata
Raster tileset metadata.
type RasterTileMetadata = RasterTileCreationMetadata | RasterTileRemoteMetadata;
RasterTileMetadata = Union[RasterTileLocalMetadata, RasterTileRemoteMetadata]
Javascript
Member | Description |
---|---|
RasterTileCreationMetadata | Raster tileset metadata in STAC Item format. STAC version must be >= 1.0.0, and the EO and Raster STAC extensions are required. This metadata shape can be passed to the map to synchronously add a raster tileset. |
RasterTileRemoteMetadata | Raster tileset metadata with a remote metadata URL. This metadata can be passed to the map to asynchronously load a raster tileset. |
Python
Member | Description |
---|---|
RasterTileLocalMetadata | Raster tileset metadata in STAC Item format. STAC version must be >= 1.0.0, and the EO and Raster STAC extensions are required. This metadata shape can be passed to the map to synchronously add a raster tileset. |
RasterTileRemoteMetadata | Raster tileset metadata with a remote metadata URL. This metadata can be passed to the map to asynchronously load a raster tileset. |
RasterTileRemoteMetadata
RasterTileRemoteMetadata
Raster tileset metadata with a remote metadata URL. This metadata can be passed to the map to asynchronously load a raster tileset.
type RasterTileRemoteMetadata = {
metadataUrl: string
};
class RasterTileRemoteMetadata(RasterTileBaseMetadata):
metadata_url: string
Javascript
Arguments
Argument | Type | Description |
---|---|---|
metadataUrl | string | The metadata of the raster tile. |
Python
Arguments
Argument | Type | Description |
---|---|---|
metadata_url | string | The metadata of the raster tile. |
DatasetCreationProps
DatasetCreationProps
Dataset record representing a local dataset, with data provided by the caller.
LocalDatasetCreationProps = BaseDatasetCreationProps & {
type?: 'local';
data: string | object | unknown[][];
};
Parent | Description |
---|---|
BaseDatasetCreationProps | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
Arguments
Argument | Type | Description | ||
---|---|---|---|---|
type | string | Must be "local" . | ||
data | `string | object | unknown[][]` | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
RGBColor
RGBColor
Red, green, and blue channels of a color in [0-255]
range.
type RGBColor = [number, number, number];
RGBColor = Tuple[Number, Number, Number]
ReplaceDatasetOptions
ReplaceDatasetOptions
Javascript-exclusive type.
Options applicable when adding a new dataset.
type ReplaceDatasetOptions = {
force?: boolean,
strict?: boolean
};
Arguments
Argument | Type | Description |
---|---|---|
force | boolean | Whether to force a dataset replace, even if the compatibility check fails. Default: false . |
strict | boolean | Whether to ensure strict equality of types for each field being replaced. Default: false . |
TileDatasetCreationProps
TileDatasetCreationProps
A set of properties used to asynchronously add a dataset to the map based on remote files.
type TileDatasetCreationProps =
| VectorTileDatasetRemoteCreationProps
| RasterTileDatasetRemoteCreationProps;
Member | Description |
---|---|
VectorTileDatasetRemoteCreationProps | A set of properties used to create a vector tile dataset with provided metadata. |
RasterTileDatasetRemoteCreationProps | Dataset record representing a raster tileset. |
TimestampField
TimestampField
Contains semantics around a single timestamp field in a dataset table.
type TimestampField = BaseField & {
type: 'timestamp',
timeFormat: string
};
class TimestampField(BaseField):
type: TimestampFieldType = TimestampFieldType.TIMESTAMP
time_format: str
Parent | Description |
---|---|
BaseField | The fields's unique identifier and user-facing label. |
Javascript
Arguments
Argument | Type | Description |
---|---|---|
timeformat | string | moment.js time format of the field's temporal data. |
Python
Arguments
Argument | Type | Description |
---|---|---|
type | TimestampFieldType.TIMESTAMP | Timestamp type identifier. |
timeformat | string | moment.js time format of the field's temporal data. |
VectorTileBaseMetadata
VectorTileBaseMetadata
Vector tileset base metadata.
type VectorTileBaseMetadata = {
dataUrl: string
};
class VectorTileBaseMetadata():
data_url: string
Javascript
Parent | Description |
---|---|
VectorTileMetadata | Vector tileset metadata with a remote metadata URL. |
Arguments
Argument | Type | Description |
---|---|---|
dataUrl | string | URL template for tiles, with {x}/{y}/{z} placeholders |
Python
Arguments
Argument | Type | Description |
---|---|---|
data_url | string | URL template for tiles, with {x}/{y}/{z} placeholders |
VectorTileCreationMetadata
VectorTileCreationMetadata
Vector tileset metadata, following the metadata format generated by Tippecanoe. This metadata shape can be passed to the map to synchronously add a vector tileset.
type VectorTileCreationMetadata = VectorTileBaseMetadata & {
metadataUrl?: string,
bounds?: string | number[],
center?: string | number[],
maxzoom?: number,
minzoom?: number,
json: string | VectorTileEmbeddedMetadata
};
Parent | Description |
---|---|
VectorTileBaseMetadata | Vector tileset base metadata. |
Arguments
Argument | Type | Description |
---|---|---|
VectorTileBaseMetadata | VectorTileBaseMetadata | Vector tileset base metadata. |
metadataUrl | string | URL for tileset metadata. |
bounds | string , number[] | Tileset bounds, as an array or comma-delimited string in format "w,s,e,n". |
center | string , number[] | Tileset center, as an array or comma-delimited string in format "lng,lat". |
maxzoom | number | Maximum zoom supported by the tileset. |
minzoom | number | Minimum zoom supported by the tileset. |
json | string or VectorTileEmbeddedMetadata | Metadata for the tileset, as a JSON string or object. |
VectorTileDataset
VectorTileDataset
Dataset record representing a vector tileset.
type VectorTileDataset = BaseDataset & {
type: 'vector-tile',
metadata: VectorTileMetadata
};
class VectorTileDataset(BaseDataset):
type = DatasetType.VECTOR_TILE
metadata: VectorTileMetadata
Parent | Description |
---|---|
BaseDataset | Properties common to both tabular and tiled datasets. |
Javascript
Arguments
Argument | Type | Description |
---|---|---|
type | string | Must be vector-tile . |
metadata | VectorTileMetadata | Vector tileset metadata with a remote metadata URL. |
Python
Arguments
Argument | Type | Description |
---|---|---|
type | string | Must be vector-tile . |
metadata | VectorTileMetadata | Vector tileset metadata with a remote metadata URL. |
VectorTileDatasetCreationProps
VectorTileDatasetCreationProps
A set of properties used to create a vector tile dataset with provided metadata.
type VectorTileDatasetCreationProps = BaseDatasetCreationProps & {
type: 'vector-tile',
metadata: VectorTileCreationMetadata
};
Parent | Description |
---|---|
BaseDatasetCreationProps | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
Arguments
Argument | Type | Description |
---|---|---|
type | string | Must be vector-tile . |
metadata | VectorTileCreationMetadata | Vector tileset metadata, following the metadata format generated by Tippecanoe. |
VectorTileDatasetRemoteCreationProps
VectorTileDatasetRemoteCreationProps
A set of properties used to create a vector tile dataset with provided metadata.
type VectorTileDatasetRemoteCreationProps = BaseDatasetCreationProps & {
type: 'vector-tile',
metadata: VectorTileRemoteMetadata
};
Parent | Description |
---|---|
BaseDatasetCreationProps | Data used to create a dataset, in CSV, JSON, GeoJSON format. |
Arguments
Argument | Type | Description |
---|---|---|
type | string | Must be vector-tile . |
metadata | VectorTileRemoteMetadata | Vector tileset metadata with a remote metadata URL. |
VectorTileLocalMetadata
VectorTileLocalMetadata
Python-exclusive type
Vector tileset metadata, following the metadata format generated by Tippecanoe. This metadata shape can be passed to the map to synchronously add a vector tileset. See https://github.com/mapbox/tippecanoe
class VectorTileLocalMetadata(VectorTileBaseMetadata):
metadata_url: Optional[str]
bounds: Optional[Union[str, List[Number]]]
center: Optional[Union[str, List[Number]]]
maxzoom: Optional[Number]
minzoom: Optional[Number]
Parent | Description |
---|---|
VectorTileBaseMetadata | Vector tileset base metadata. |
Arguments
Argument | Type | Description |
---|---|---|
metadata_url | string | URL for tileset metadata. |
bounds | Union[str, List[Number]] | Tileset bounds, as an array or comma-delimited string in format "w,s,e,n". |
center | Union[str, List[Number]] | Tileset center, as an array or comma-delimited string in format "lng,lat". |
maxZoom | Number | Maximum zoom supported by the tileset. |
minzoom | Number | Minimum zoom supported by the tileset. |
VectorTileMetadata
VectorTileMetadata
Vector tileset metadata.
type VectorTileMetadata = VectorTileCreationMetadata | VectorTileRemoteMetadata;
VectorTileMetadata = Union[VectorTileLocalMetadata, VectorTileRemoteMetadata]
Javascript
Member | Description |
---|---|
VectorTileCreationMetadata | Vector tileset metadata, following the metadata format generated by Tippecanoe. This metadata shape can be passed to the map to synchronously add a vector tileset. |
VectorTileRemoteMetadata | Vector tileset metadata. |
Python
Member | Description |
---|---|
VectorTileLocalMetadata | Vector tileset metadata, following the metadata format generated by Tippecanoe. This metadata shape can be passed to the map to synchronously add a vector tileset. See https://github.com/mapbox/tippecanoe |
VectorTileRemoteMetadata | Vector tileset metadata. |
VectorTileRemoteMetadata
VectorTileRemoteMetadata
Vector tileset metadata.
type VectorTileRemoteMetadata = VectorTileBaseMetadata & {
metadataUrl: string
};
class VectorTileRemoteMetadata(VectorTileBaseMetadata):
metadata_url: string
Parent | Description |
---|---|
VectorTileBaseMetadata | Vector tileset base metadata. |
Javascript
Arguments
Argument | Type | Description |
---|---|---|
metadataUrl | string | URL for tileset metadata. |
Python
Arguments
Argument | Type | Description |
---|---|---|
metadata_url | string | URL for tileset metadata. |
Filter Types
BaseFilter
BaseFilter
Type encapsulating common filter properties.
type BaseFilter<Type extends FilterType, Value> = {
id: string;
type: Type;
sources: FilterSource[];
value: Value;
};
class BaseFilter():
id: Optional[str]
type: FilterType
sources: List[FilterSource]
value: Any
Javascript
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the filter. |
type | FilterType | Type of the filter. |
sources | FilterSource[] | Data source(s) to apply the filter to. Note that only TimeRangeFilter currently supports multiple sources. The first given source is used for all other filters. |
value | Value | Value to base the filters on. |
Python
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the filter. |
type | FilterType | Type of the filter. |
sources | List[ FilterSource[] ] | Data source(s) to apply the filter to. Note that only TimeRangeFilter currently supports multiple sources. The first given source is used for all other filters. |
value | Any | Value to base the filters on. |
Filter
Filter
Union of available filter types.
type Filter = RangeFilter | SelectFilter | TimeRangeFilter | MultiSelectFilter;
Filter = Union[
RangeFilter,
SelectFilter,
TimeRangeFilter,
MultiSelectFilter,
]
Member | Description |
---|---|
RangeFilter | Filter type that filters a range of values. |
SelectFilter | Filter type that filters based on a boolean value. |
TimeRangeFilter | Filter type that filters data within a range of time. |
MultiSelectFilter | Filter type that filters based on multiple string values. |
FilterCreationProps
FilterCreationProps
A set of properties used to create a filter. If source dataId
is not provided, the filter will be applied to the first dataset with a given field name.
type FilterCreationProps = Optional<
Omit<Filter, 'sources'> & {sources: PartialFilterSource[]},
'id'
>;`
FilterCreationProps = _PartialFilter
Parent | Description |
---|---|
Filter | Union of available filter types. |
FilterEventHandlers
FilterEventHandlers
A set of event handlers that are called on appropriate filter events.
type FilterEventHandlers = {
onFilterUpdate?: (filter: Filter) => void
};
class FilterEventHandlers():
on_filter_update: Optional[Callable[[Filter], None]]
FilterSource
FilterSource
Source that the filter is applied to.
type FilterSource = {
dataId: string,
fieldName: string
};
class FilterSource():
data_id: str
field_name: str
Javascript
Arguments
Argument | Type | Description |
---|---|---|
dataId | string | Identifier of the dataset that the filter applies to. |
fieldName | string | Field to filter by. The field identifier defaults to the field name and can be retrieved as part of the dataset record. |
Python
Arguments
Argument | Type | Description |
---|---|---|
data_id | string | Identifier of the dataset that the filter applies to. |
field_name | string | Field to filter by. The field identifier defaults to the field name and can be retrieved as part of the dataset record. |
FilterTimeline
FilterTimeline
Time range filter properties that encapsulate timeline interaction.
type FilterTimeline = {
view: 'side' | 'enlarged' | 'minified',
timeFormat: string,
timezone: string | null,
isAnimating: boolean,
animationSpeed: number,
step: number
};
class FilterTimeline():
view: FilterView
time_format: str
timezone: Optional[str]
is_animating: bool
animation_speed: Number
step: Number
Javascript
Arguments
Argument | Type | Description |
---|---|---|
view | string | Current timeline presentation. |
timeFormat | string | Time format that the timeline is using in day.js supported format. |
timezone | string | Timezone that the timeline is using in tz format. |
isAnimating | boolean | Flag indicating whether the timeline is animating or not. |
animationSpeed | number | Speed at which timeline is animating. |
step | number | Minimum animation step size in milliseconds. |
Python
Arguments
Argument | Type | Description |
---|---|---|
view | FilterView | Current timeline presentation. |
time_format | string | Time format that the timeline is using in day.js supported format. |
timezone | string | Timezone that the timeline is using in tz format. |
is_animating | boolean | Flag indicating whether the timeline is animating or not. |
animation_speed | number | Speed at which timeline is animating. |
step | number | Minimum animation step size in milliseconds. |
FilterTimelineUpdateProps
FilterTimelineUpdateProps
A set of properties that can be updated on a timeline.
type FilterTimelineUpdateProps = Partial<Omit<FilterTimeline, 'step'>>;
class FilterTimelineUpdateProps():
view: Optional[FilterView]
time_format: Optional[str]
timezone: Optional[str]
is_animating: Optional[bool]
animation_speed: Optional[Number]
Javascript
Parent | Type | Description |
---|---|---|
FilterTimeline | FilterTimeline | A partial FilterTimeline object. |
Python
Arguments
Argument | Type | Description |
---|---|---|
view | FilterView | Current timeline presentation. |
time_format | string | Time format that the timeline is using in day.js supported format. |
timezone | string | Timezone that the timeline is using in tz format. |
is_animating | boolean | Flag indicating whether the timeline is animating or not. |
animation_speed | number | Speed at which timeline is animating. |
FilterType
FilterType
Types of currently supported filters.
type FilterType = 'range' | 'select' | 'time-range' | 'multi-select';
class FilterType(str, Enum):
RANGE = "range"
SELECT = "select"
TIME_RANGE = "time-range"
MULTI_SELECT = "multi-select"`
FilterUpdateProps
FilterUpdateProps
A set of properties used to update a filter.
type FilterUpdateProps = Partial<Pick<Filter, 'value'> & {sources: PartialFilterSource[]}>;
FilterUpdateProps = _PartialFilter
Parent | Description |
---|---|
Filter | Union of available filter types. |
FilterView
FilterView
Python-exclusive type.
A union of filter views.
Literal["side", "enlarged", "minified"]
MultiSelectFilter
MultiSelectFilter
Filter type that filters based on a multiple string value.
type MultiSelectFilter = BaseFilter<'multi-select', string[]>;
class MultiSelectFilter(BaseFilter):
type = FilterType.MULTI_SELECT
value: List[str]
Parent | Description |
---|---|
BaseFilter | Type encapsulating common filter properties. |
PartialFilterSource
PartialFilterSource
Partially defined filter source where the dataId can be left out.
type PartialFilterSource = Optional<FilterSource, 'dataId'>;
PartialFilter = Union[
PartialRangeFilter,
PartialSelectFilter,
PartialTimeRangeFilter,
PartialMultiSelectFilter,
]
Parent | Description |
---|---|
FilterSource | Source that the filter is applied to. |
RangeFilter
RangeFilter
Filter type that filters a range of values.
type RangeFilter = BaseFilter<'range', Range>;
class RangeFilter(BaseFilter):
type = FilterType.RANGE
value: Range
SelectFilter
SelectFilter
Filter type that filters based on a boolean value.
type SelectFilter = BaseFilter<'select', boolean>;
class SelectFilter(BaseFilter):
type = FilterType.SELECT
value: bool
Parent | Description |
---|---|
BaseFilter | Type encapsulating common filter properties. |
TimeRangeFilter
TimeRangeFilter
type TimeRangeFilter = BaseFilter<'time-range', TimeRange> & {
domain: TimeRange,
timeline: FilterTimeline
};
class TimeRangeFilter(BaseFilter):
type = FilterType.TIME_RANGE
value: TimeRange
domain: TimeRange
timeline: FilterTimeline
Parent | Description |
---|---|
BaseFilter | Type encapsulating common filter properties. |
Javascript
Arguments
Argument | Type | Description |
---|---|---|
domain | timeRange | Time domain of the dataset this filter is being applied to. |
timeline | FilterTimeline | Time range filter timeline information. |
Python
Arguments
Argument | Type | Description |
---|---|---|
type | FilterType .TIME_RANGE | The time range filter type. |
value | timeRange | The range of time this filter is being applied to. |
domain | timeRange | Time domain of the dataset this filter is being applied to. |
timeline | FilterTimeline | Time range filter timeline information. |
Layer Types
Types of layers that the visualization is supported for.
Layer
Layer
Type encapsulating layer properties.
type Layer = {
id: string,
type: LayerType | null,
dataId: string,
fields: Record<string, string | null>,
label: string,
isVisible: boolean,
config: LayerConfig
};
class Layer(LayerCreationProps):
id: str
type: Optional[LayerType]
data_id: str
fields: Dict[str, Optional[str]]
label: str
is_visible: bool
config: LayerConfig
Javascript
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the layer. |
type | LayerType | Type of the layer. |
dataId | string | Unique identifier of the dataset this layer visualizes. |
fields | Record<string, string> | Dictionary that maps fields that the layer requires for visualization to appropriate dataset fields. |
label | string | Canonic label of this layer. |
isVisible | boolean | Flag indicating whether layer is visible or not. |
config | LayerConfig | Layer configuration specific to its type. |
Python
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the layer. |
type | LayerType | Type of the layer. |
data_id | string | Unique identifier of the dataset this layer visualizes. |
fields | Dict[str, Optional[str]] | Dictionary that maps fields that the layer requires for visualization to appropriate dataset fields. |
label | string | Canonic label of this layer. |
is_visible | boolean | Flag indicating whether layer is visible or not. |
config | LayerConfig | Layer configuration specific to its type. |
LayerConfig
LayerConfig
Internal layer configuration.
type LayerConfig = {
visualChannels: VisualChannels,
visConfig: Record<string, unknown>
columnMode?: 'points' | 'geojson' | 'table' | 'neighbors' | 'LAT_LNG' | 'H3';
};
class LayerConfig(PartialLayerConfig):
visual_channels: VisualChannels
vis_config: Dict[str, Any]
column_mode: Optional[
Literal["points", "geojson", "table", "neighbors", "LAT_LNG", "H3"]
]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
visualChannels | VisualChannels | Dictionary of visualization properties that the layer supports. |
visConfig | Record<string, unknown>; | General layer settings. |
columnMode | string | Column mode for the layer, relevant only to layers that support multiple input data formats (such as the Trip layer). Can be 'points' , 'geojson' , 'table' , 'neighbors' , 'LAT_LNG' , 'H3' . |
Python
Arguments
Argument | Type | Description |
---|---|---|
visual_channels | VisualChannels | Dictionary of visualization properties that the layer supports. |
vis_config | Dict[str, Any] | General layer settings. |
column_mode | string | Column mode for the layer, relevant only to layers that support multiple input data formats (such as the Trip layer). Can be 'points' , 'geojson' , 'table' , 'neighbors' , 'LAT_LNG' , 'H3' . |
LayerCreationProps
LayerCreationProps
A set of properties used to create a layer.
type LayerCreationProps = Omit<
Optional<Layer, 'id' | 'fields' | 'label' | 'isVisible'>,
'config'
> & {
config?: Partial<LayerConfig>
};
class LayerCreationProps(LayerUpdateProps):
id: Optional[str]
type: Optional[LayerType]
data_id: Optional[str]
fields: Dict[str, Optional[str]]
label: Optional[str]
is_visible: Optional[bool]
config: Optional[PartialLayerConfig]
Python
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the layer. |
type | LayerType | Type of the layer. |
data_id | string | Unique identifier of the dataset this layer visualizes. |
fields | Dict[str, Optional[str]] | Dictionary that maps fields that the layer requires for visualization to appropriate dataset fields. |
label | string | Canonical label of this layer. |
is_visible | bool | Flag indicating whether layer is visible or not. |
config | PartialLayerConfig | Layer configuration specific to its type. |
LayerEventHandlers
LayerEventHandlers
A set of event handlers that are called on appropriate layer events.
type LayerEventHandlers = {
onLayerTimelineUpdate?: (layerTimeline: LayerTimeline) => void
};
class LayerEventHandlers():
on_layer_timeline_update: Callable[[LayerTimeline], None]
LayerTimeline
LayerTimeline
Type encapsulating layer timeline properties.
type LayerTimeline = {
currentTime: number,
domain: TimeRange,
isAnimating: boolean,
isVisible: boolean,
animationSpeed: number,
timeFormat: string,
timezone: string | null,
timeSteps: number[] | null
};
class LayerTimelineUpdateProps():
current_time: Optional[Number]
domain: TimeRange
is_animating: Optional[bool]
is_visible: Optional[bool]
animation_speed: Optional[Number]
time_format: Optional[str]
timezone: Optional[str]
time_steps: Optional[List[Number]]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
currentTime | number | Current time on the timeline in milliseconds. |
domain | timeRange | Range of time that the timeline shows. |
isAnimating | boolean | Flag indicating whether the timeline is animating or not. |
isVisible | boolean | Flag indicating whether the timeline is visible or not. |
animationSpeed | number | Speed at which timeline is animating. |
timeFormat | string | Time format that the timeline is using in day.js supported format. |
timezone | string | Timezone that the timeline is using in tz format. |
timeSteps | number[] | Step duration for all the animation keyframes in milliseconds. |
Python
Arguments
Argument | Type | Description |
---|---|---|
current_time | number | Current time on the timeline in milliseconds. |
domain | timeRange | Range of time that the timeline shows. |
is_animating | boolean | Flag indicating whether the timeline is animating or not. |
is_visible | boolean | Flag indicating whether the timeline is visible or not. |
animation_speed | number | Speed at which timeline is animating. |
time_format | string | Time format that the timeline is using in day.js supported format. |
timezone | string | Timezone that the timeline is using in tz format. |
time_steps | List[Number]] | Step duration for all the animation keyframes in milliseconds. |
LayerGroup
LayerGroup
A conceptual group used to organize layers.
type LayerGroup = {
id: string,
label: string,
isVisible: boolean,
layerIds: string[]
};
class LayerGroup:
id: StrictStr
label: StrictStr
is_visible: StrictBool
layers: List[StrictStr]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the layer group. |
label | string | Canonical label of this group. |
isVisible | boolean | Flag indicating whether layer group is visible or not. |
layerIds | string[] | Layers that are part of this group, sorted in the order in which they are shown. |
Python
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the layer group. |
label | string | Canonical label of this group. |
is_visible | boolean | Flag indicating whether layer group is visible or not. |
layers | List[string] | Layers that are part of this group, sorted in the order in which they are shown. |
LayerTimelineUpdateProps
LayerTimelineUpdateProps
type LayerTimelineUpdateProps = Partial<
Pick<
LayerTimeline,
'currentTime' | 'isAnimating' | 'isVisible' | 'animationSpeed' | 'timeFormat' | 'timezone'
>
>;
class LayerTimelineUpdateProps():
current_time: Optional[Number]
is_animating: Optional[bool]
is_visible: Optional[bool]
animation_speed: Optional[Number]
time_format: Optional[str]
timezone: Optional[str]
Python
Arguments
Argument | Type | Description |
---|---|---|
current_time | number | Current time on the timeline in milliseconds. |
is_animating | boolean | Flag indicating whether the timeline is animating or not. |
is_visible | boolean | Flag indicating whether the timeline is visible or not. |
animation_speed | number | Speed at which timeline is animating. |
time_format | string | Time format that the timeline is using in day.js supported format. |
timezone | string | Timezone that the timeline is using in tz format. |
LayerType
LayerType
type LayerType =
| 'point'
| 'arc'
| 'line'
| 'grid'
| 'hexagon'
| 'geojson'
| 'cluster'
| 'icon'
| 'heatmap'
| 'h3'
| '3d'
| 'trip'
| 's2'
| 'raster-tile'
| 'vector-tile';
class LayerType(str, Enum):
POINT = "point"
ARC = "arc"
LINE = "line"
GRID = "grid"
HEXAGON = "hexagon"
GEOJSON = "geojson"
CLUSTER = "cluster"
ICON = "icon"
HEATMAP = "heatmap"
H3 = "h3"
THREE_D = "3d"
TRIP = "trip"
S2 = "s2"
RASTER_TILE = "raster-tile"
VECTOR_TILE = "vector-tile"
LayerUpdateProps
LayerUpdateProps
A set of properties used to update a layer.
type LayerUpdateProps = Omit<PartialWithoutId<Layer>, 'config'> & {
config?: Partial<LayerConfig>
};
class LayerUpdateProps():
type: Optional[LayerType]
data_id: str
fields: Optional[Dict[str, Optional[str]]]
label: Optional[str]
is_visible: Optional[bool]
config: Optional[PartialLayerConfig
Python
Arguments
Argument | Type | Description |
---|---|---|
type | number | Type of the layer. |
data_id | string | Unique identifier of the dataset this layer visualizes. |
fields | Dict[str, Optional[str]] | Dictionary that maps fields that the layer requires for visualization to appropriate dataset fields. |
label | string | Canonical label of this layer. |
is_visible | bool | Flag indicating whether layer is visible or not. |
config | PartialLayerConfig | Layer configuration specific to its type. |
PartialLayerConfig
PartialLayerConfig
Python-exclusive type.
class PartialLayerConfig():
visual_channels: Optional[VisualChannels]
vis_config: Optional[Dict[str, Any]]
Arguments
Argument | Type | Description |
---|---|---|
visual_channels | VisualChannels | Dictionary of visualization properties that the layer supports. |
vis_config | [Dict[str, Any]] | General layer settings. |
TileDatasetCreationProps
TileDatasetCreationProps
A set of properties used to asynchronously add a dataset to the map based on remote vector or raster tileset files.
type TileDatasetCreationProps =
| VectorTileDatasetRemoteCreationProps
| RasterTileDatasetRemoteCreationProps;
`}
Member | Description |
---|---|
VectorTileDatasetRemoteCreationProps | A set of properties used to create a vector tile dataset with provided metadata. |
RasterTileDatasetRemoteCreationProps | Dataset record representing a raster tileset. |
VisualChannel
VisualChannel
Python-exclusive type.
A dictionary of visualization properties that the layer supports.
class VisualChannel():
name: str
type: str
VisualChannels
VisualChannels
A dictionary of visualization properties that the layer supports.
type VisualChannels = {
[key: string]:
| {
name: string,
type: string
}
| string
| null
};
VisualChannels =
Dict[str, Union[VisualChannel, str, None]]
Map Types
Bounds
Bounds
Type representing map bounds.
type Bounds = {
minLongitude: number,
maxLongitude: number,
minLatitude: number,
maxLatitude: number
};
class Bounds():
min_longitude: Number
max_longitude: Number
min_latitude: Number
max_latitude: Number
Javascript
Arguments
Argument | Type | Description |
---|---|---|
minLongitude | number | Minimum (left) longitude value. |
maxLongitude | number | Maximum (right) longitude value. |
minLatitude | number | Minimum (bottom) latitude value. |
maxLatitude | number | Maximum (top) latitude value. |
Python
Arguments
Argument | Type | Description |
---|---|---|
min_longitude | number | Minimum (left) longitude value. |
max_longitude | number | Maximum (right) longitude value. |
min_latitude | number | Minimum (bottom) latitude value. |
max_latitude | number | Maximum (top) latitude value. |
Effect
Effect
A visual post-processing effect to apply to the map.
type Effect = {
id: string;
type: EffectType;
isEnabled: boolean;
parameters: Record<string, number | [number, number] | [number, number, number] | string>;
};
class Effect():
id: StrictStr
type: EffectType
is_enabled: StrictBool
parameters: Optional[
Dict[StrictStr, Union[Number, List[Number], StrictBool, StrictStr]]
]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the effect. |
type | EffectType | The type of the effect. |
isEnabled | bool | Flag indicating whether the effect is enabled or not. |
parameters | dict | Effect-specific settings. |
Python
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the effect. |
type | EffectType | The type of the effect. |
is_enabled | bool | Flag indicating whether the effect is enabled or not. |
parameters | dict | Effect-specific settings. |
EffectCreationProps
EffectCreationProps
A set of optional properties used to create an effect. See effect.
EffectCreationProps = Optional<Effect, 'id' | 'isEnabled' | 'parameters'>;
_EffectCreationProps(_EffectUpdateProps):
id: Optional[StrictStr]
type: Optional[EffectType]
is_enabled: Optional[StrictBool]
parameters: Optional[
Dict[StrictStr, Union[Number, List[Number], StrictBool, StrictStr]]
]
--
EffectType
EffectType
The type of effect to use.
type EffectType =
| 'ink'
| 'brightness-contrast'
| 'hue-saturation'
| 'vibrance'
| 'sepia'
| 'dot-screen'
| 'color-halftone'
| 'noise'
| 'triangle-blur'
| 'zoom-blur'
| 'tilt-shift'
| 'edge-work'
| 'vignette'
| 'magnify'
| 'hexagonal-pixelate'
| 'light-and-shadow';
EffectType = [
'ink',
'brightness-contrast',
'hue-saturation',
'vibrance',
'sepia',
'dot-screen',
'color-halftone',
'noise',
'triangle-blur',
'zoom-blur',
'tilt-shift',
'edge-work',
'vignette',
'magnify',
'hexagonal-pixelate',
'light-and-shadow'
]
EffectUpdateProps
EffectUpdateProps
A set of optional properties used to update an effect. See effect.
EffectUpdateProps = Omit<PartialWithoutId<Effect>, 'type'>;
_EffectUpdateProps(CamelCaseBaseModel):
is_enabled: Optional[StrictBool]
parameters: Optional[
Dict[StrictStr, Union[Number, List[Number], StrictBool, StrictStr]]
]
GeometrySelectionEvent
GeometrySelectionEvent
Geometry selection event containing an array of GeoJSON polygon features.
type GeometrySelectionEvent = {
features: Feature<Polygon>[]
};
class GeometrySelectionEvent():
features: List[Feature[Polygon, Any]]
HTMLMap
HTMLMap
Python exclsuive type.
class HTMLMap(
self,
style: Optional[Dict] = None,
basemaps: Optional[Dict] = None,
)`
Arguments
Argument | Type | Description |
---|---|---|
style | Dict | Optional map container CSS style customization. Uses camelCase as this is React standard. |
basemaps | Dict | Basemap customization settings. |
basemaps.custom_map_styles | List[ MapStyleCreationProps ] | A set of properties required when specifying a map style. |
basemaps.initial_map_styles | string | A mapbox style ID. |
MapControlVisibility
MapControlVisibility
A map of map control component visibility.
type MapControlVisibility = {
[control in MapControls]: boolean;
};
class MapControlVisibility():
legend: bool
toggle_3d: bool
split_map: bool
map_draw: bool
Python
Arguments
Argument | Type | Description |
---|---|---|
legend | bool | Whether the legend is visible. |
toggle_3d | bool | Whether the 3D toggle is visible. |
split_map | bool | Whether the split map button is visible. |
map_draw | bool | Whether the map draw button is visible. |
MapControls
MapControls
Javascript-exclusive type.
Map controls that support customization.
type MapControls = 'legend' | 'toggle-3d' | 'split-map' | 'map-draw';
MapCreationProps
MapCreationProps
A set of properties used to initialize the map.
type MapCreationProps = {
container?: HTMLElement,
style?: CSSProperties,
eventHandlers?: MapEventHandlers,
showPlaceholder?: boolean,
initialState?: {
publishedMapId: string;
};
basemaps?: {
customMapStyles?: MapStyleCreationProps[],
initialMapStyleId?: string,
mapboxAccessToken?: string,
transformRequest?: (opts: {url: string}) => RequestParameters
},
raster?: {
serverUrls?: string[],
stacSearchUrl?: string
onTileLoadUpdate?: RasterTileLoadEvent
},
uiConfig?: {
mapName?: string,
sidePanel?: {
view?: 'hidden' | 'collapsed' | 'visible',
isAddLayerVisible?: boolean,
addDataButton?: {
onClick?: () => void
}
},
exportEnabled?: boolean;
sideNav?: {
isVisible?: boolean
}
}
};
Arguments
Argument | Type | Description |
---|---|---|
container | HTMLElement | DOM element to embed map into. |
style | CSSProperties | Map container CSS style customization. |
eventHandlers | MapEventHandlers | Event handlers to attach to the map. |
showPlaceholder | bool | Visibility of loading screen placeholder. Default: true |
initialState | object | Information about the state to load upon creation. |
initialState.publishedMapID | string | Identifier of the map to load. Note: the map must be published (currently an action available in the Studio UI). Not supported in the on-prem SDK. |
basemaps | object | Basemap customization settings. |
basemaps.customMapStyles | MapStyleCreationProps[] | Custom map styles to make available for usage. |
basemaps.mapboxAccessToken | string | Mapbox token to be used when loading the provided custom map styles. |
basemaps.initialMapStyleId | string | Identifier for the map style to be used initially. |
transformRequest | function | Function to transform basemap resource requests. |
raster | object | Customization related to raster datasets and tiles. |
raster.serverUrls | string[] | URLs to custom servers to target when serving raster tiles. |
raster.stacSearchUrls | string | URL to pass to the backend for searching a STAC Collection. |
raster.onTileLoadUpdate | RasterTileLoadEvent | Called whenever a raster layer tile loading status updates. |
uiConfig | object | UI configuration object. |
uiConfig.mapName | string | Name of the map to show in the title. Default = Studio |
uiConfig.sidePanel | object | A UI component displaying options for data, layer, and map manipulation. |
uiConfig.sidePanel.view | string | View state of the side panel. Options include 'hidden' ,'collapsed' , or 'visible' . |
uiConfig.sidePanel.isAddLayerVisible | bool | When enabled, display the "Add Layer" button. |
uiConfig.sidePanel.addDataButton | object | Custom settings for the Add Data button. |
uiConfig.sidePanel.addDatabutton.onClick | Custom event handler for the Add Data button. | |
uiConfig.exportEnabled | bool | When enabled, users may export data from the map via the Export button. |
urls.staticAssetUrlBase | string | Custom URL base for static assets. |
urls.applicationUrlBase | string | Custom URL base for workers and other script resources loaded by the SDK. |
MapEventHandlers
MapEventHandlers
A set of event handlers that are called on appropriate map events.
type MapEventHandlers = {
onClick?: (event: MouseEvent) => void,
onHover?: (event: MouseEvent) => void,
onViewUpdate?: (view: View) => void,
onGeometrySelection?: (event: GeometrySelectionEvent) => void
} & LayerEventHandlers &
FilterEventHandlers;
class MapEventHandlers():
on_click: Optional[OnClickHandlerType]
on_hover: Optional[OnHoverHandlerType]
on_view_update: Optional[OnViewUpdateType]
on_geometry_selection: Optional[OnGeometrySelectionType]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
onClick | (event: MouseEvent) | Called whenever user clicks the visible part of the map. |
onHover | (event: MouseEvent) | Called whenever a mouse hovers over a visible part of the map. |
onViewUpdate | (view: View) | Called whenever visible map viewport changes. |
onGeometrySelection | (event: GeometrySelectionEvent) | Called whenever a geometry is selected on the map. |
AnalyticsEventHandlers | (event: UserEvent) | Called whenever a user-triggered event happens. |
Python
Arguments
Argument | Type | Description |
---|---|---|
on_click | OnClickHandlerType | Called whenever user clicks the visible part of the map. |
on_hover | OnHoverHandlerType | Called whenever a mouse hovers over a visible part of the map. |
on_view_update | OnViewUpdateType | Called whenever visible map viewport changes. |
on_geometry_selection_event | OnGeometrySelectionType | Called whenever a geometry is selected on the map. |
MapStyle
MapStyle
Unique identifier of the MapStyle.
type MapStyle = {
id: string,
label: string,
url: string,
thumbnailUrl: string,
layerGroups: MapStyleLayerGroup[]
};
class MapStyle():
id: str
label: str
url: str
thumbnail_url: str
layer_groups: List[MapStyleLayerGroup]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the MapStyle. |
label | string | User facing MapStyle label. |
url | string | URL of the MapStyle descriptor json in Mapbox style format. |
thumbnailUrl | string | URL of the thumbnail to show alongside the MapStyle. |
layerGroups | MapStyleLayerGroup[] | An array of MapStyle layer groups. |
Python
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the MapStyle. |
label | string | User facing MapStyle label. |
url | string | URL of the MapStyle descriptor json in Mapbox style format. |
thumbnail_url | string | URL of the thumbnail to show alongside the MapStyle. |
layer_groups | List[ MapStyleLayerGroup ] | An array of MapStyle layer groups. |
MapStyleCreationProps
MapStyleCreationProps
A set of properties required when specifying a MapStyle.
type MapStyleCreationProps = Merge<
Optional<MapStyle, 'id' | 'thumbnailUrl'>,
{layerGroups?: MapStyleLayerGroupCreationProps[]}
>;
class MapStyleCreationProps():
id: Optional[str]
thumbnail_url: Optional[str]
layer_groups: Optional[List[MapStyleLayerGroupCreationProps]]
Python
Arguments
Argument | Type | Description |
---|---|---|
id | string | Unique identifier of the MapStyle. |
thumbnail_url | string | User facing MapStyle label. |
thumbnail_groups | string | URL of the MapStyle descriptor json in Mapbox style format. |
MapStyleLayerGroup
MapStyleLayerGroup
A grouping concept for MapStyle layers, allowing for interaction on a set of layers.
type MapStyleLayerGroup = {
label: string,
defaultVisibility: boolean
};
class MapStyleLayerGroup():
label: str
default_visibility: bool
Javascript
Arguments
Argument | Type | Description |
---|---|---|
label | string | Layer group text representation. Currently supported labels are: label, road, border, building, water, land, 3d building. |
defaultVisibility | boolean | Whether this group should be visible by default. |
Python
Arguments
Argument | Type | Description |
---|---|---|
label | string | Layer group text representation. Currently supported labels are: label, road, border, building, water, land, 3d building. |
default_visibility | boolean | Whether this group should be visible by default. |
MapStyleLayerGroupCreationProps
MapStyleLayerGroupCreationProps
A set of properties required when specifying a MapStyle layer group.
type MapStyleLayerGroupCreationProps = MapStyleLayerGroup & {
filter: string
};
class MapStyleLayerGroupCreationProps(MapStyleLayerGroup):
filter: str
Parent | Description |
---|---|
MapStyleLayerGroup | A grouping concept for MapStyle layers, allowing for interaction on a set of layers. |
Arguments
Argument | Type | Description |
---|---|---|
filter | string | Layer filtering regular expression that determines whether layer with a given id should be part of this group. Supports regular JS RegExp syntax. |
MouseEvent
MouseEvent
Mouse event capturing information such as position and any map features related to it.
type MouseEvent = {
coordinate: [number, number],
position: [number, number],
pickInfo?: {
layerId: string,
rowIndex: number,
rowData: unknown[]
}
};
class MouseEvent():
coordinate: Tuple[Number, Number]
position: Tuple[Number, Number]
pick_info: Optional[PickInfo]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
coordinate | [number , number ] | Geospatial coordinates [longitude, latitude]. |
position | [number , number ] | Mouse position relative to the viewport [x, y]. |
pickInfo | object | Additional context on map data associated with this event. |
pickInfo.layerId | string | Identifier of the layer that the mouse event is related to. |
pickInfo.rowIndex | number | Index of the row in the data table that picked layer visualizes. |
pickInfo.rowData | unknown[] | Row data that the picked layer visualizes. |
Python
Arguments
Argument | Type | Description |
---|---|---|
coordinate | Tuple[``number , number``] | Geospatial coordinates [longitude, latitude]. |
position | [number , number ] | Mouse position relative to the viewport [x, y]. |
pickInfo | PickInfo | Additional context on map data associated with this event. |
OnClickHandlerType
OnClickHandlerType
Python-exclusive type.
OnClickHandlerType = Callable[([MouseEvent], None)];
OnGeometrySelectionType
OnGeometrySelectionType
Python-exclusive type.
OnGeometrySelectionType = Callable[[GeometrySelectionEvent], None]
OnHoverHandlerType
OnHoverHandlerType
Python-exclusive type.
OnHoverHandlerType = Callable[[MouseEvent], None]
OnViewUpdateType
OnViewUpdateType
Python-exclusive type.
OnViewUpdateType = Callable[[View], None]
PickInfo
PickInfo
Python-exclusive type.
Additional context on map data associated to this event.
class PickInfo():
layer_id: str
row_index: Number
row_data: List[Any]
Arguments
Argument | Type | Description |
---|---|---|
layer_id | string | Identifier of the layer that the mouse event is related to. |
row_index | number | User facing MapStyle label. |
row_data | List[Any] | Row data that the picked layer visualizes. |
RequestParameters
RequestParameters
Allows createMap to transform any requests related to the base map (tiles, source, etc).
type RequestParameters = {
url: string;
headers?: {[header: string]: string};
method?: 'GET' | 'POST' | 'PUT';
Arguments
Argument | Type | Description |
---|---|---|
url | string | The URL to be requested. |
headers | {[header: string]: string}; | The headers to be sent with the request. |
method | string | Request method to use. 'GET' , 'POST' , or 'PUT' . |
SetMapConfigOptions
SetMapConfigOptions
Options applicable when setting the map configuration.
type SetMapConfigOptions = {
additionalDatasets?: DatasetCreationProps[]
};
class SetMapConfigOptions():
additional_datasets: Optional[List[_DatasetCreationProps]]
Argument | Type | Description |
---|---|---|
additionalDatasets | DatasetCreationProps[] | Datasets to add to the map before loading the map configuration. |
SetSplitModeOptions
SetSplitModeOptions
Options applicable when setting split map mode.
type SetSplitModeOptions: Partial<SplitModeContext>
Parent | Description |
---|---|
SplitModeContext | Base type that contains context around the split map mode. |
SidePanelType
SidePanelType
Available side panel types.
type SidePanelType = 'layer' | 'column' | 'filter' | 'interaction' | 'map' | 'analysis';
SplitMode
SplitMode
Supported map split modes.
type SplitMode = 'single' | 'dual' | 'swipe';
SplitMode = Literal["single", "dual", "swipe"]
SplitModeProps
SplitModeProps
Container type for split map mode options.
type SplitModeProps={
splitMode: SplitMode
layers: Optional[SplitLayers]
};
class SplitModeProps():
split_mode: SplitMode
layers: Optional[SplitLayers]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
splitMode | SplitMode | Supported split map modes. |
layers | string[][] | Optional array of layer ids to show on either side of the split. Only applicable for dual and swipe split modes. |
Python
Arguments
Argument | Type | Description |
---|---|---|
split_mode | SplitMode | Supported split map modes. |
layers | SplitLayers | Optional array of layer ids to show on either side of the split. Only applicable for dual and swipe split modes. |
SplitModeContext
SplitModeContext
Base type that contains context around the split map mode.
type SplitModeContext = {
layers: string[][],
isViewSynced: boolean,
isZoomSynced: boolean
};
Arguments
Argument | Type | Description |
---|---|---|
layers | string[][] | An array of layer ids to show on either side of the split. Only applicable for multi-view split modes. |
isViewSynced | bool | Boolean indicating whether views are synced. Only applicable to dual split mode. |
isZoomSynced | bool | Boolean indicating whether zoom is synced between views. Only applicable to dual split mode. |
SplitModeDetails
SplitModeDetails
Container type for split map mode details.
export type SplitModeDetails = {
splitMode: SplitMode
} & SplitModeContext;
Arguments
Argument | Type | Description |
---|---|---|
splitMode | SplitMode | Supported split map modes. |
SplitModeContext | SplitModeContext | Base type that contains context around the split map mode. |
SplitLayers
SplitLayers
Python-exclusive type.
Arrays with layer Ids per each post-split map section.
SplitLayers = List[List[str]]
StudioLoadingProps
StudioLoadingProps
Type that allows for studio application customization to be specified.
type StudioLoadingProps = {
url: string,
namespace?: string
};
Arguments
Argument | Type | Description |
---|---|---|
url | string | The URL to load the studio application from. |
namespace | string | The name of the object attached to the window that contains createMap function. |
SyncWidgetMap
SyncWidgetMap
Initializes a new widget map.
Python-exclsuive type.
class SyncWidgetMap(
self,
*,
style: Optional[Dict] = None,
basemaps: Optional[Dict] = None,
raster: Optional[Dict] = None,
studio: Optional[Dict] = None,
)
Arguments
Argument | Type | Description |
---|---|---|
style | Dict | Optional map container CSS style customization. Uses camelCase as this is React standard. |
basemaps | Dict | Basemap customization settings. |
basemaps.custom_map_styles | List[ MapStyleCreationProps ] | A set of properties required when specifying a map style. |
basemaps.initial_map_styles | string | A mapbox style ID. |
raster | Dict | Customization related to raster datasets and tiles. Not available when renderer = html |
raster.server_urls | List[string] | URLs to custom servers to target when serving raster tiles. |
raster.stac_search_url | string | URL to pass to the backend for searching a STAC Collection. |
ThemeOptions
ThemeOptions
Python-exclusive type.
lass ThemeOptions():
background_color: Optional[str]
Arguments
Argument | Type | Description |
---|---|---|
background_color | string | Background color of UI elements. |
ThemePresets
ThemePresets
Python-exclusive type.
ThemePresets = Literal["light", "dark"]
ThemeUpdateProps
ThemeUpdateProps
Map UI theme settings that support customization.
type ThemeUpdateProps = {
preset: 'light' | 'dark',
options?: {
backgroundColor?: CSSColor
}
};
class ThemeUpdateProps():
preset: Optional[ThemePresets]
options: Optional[ThemeOptions]
Javascript
Arguments
Argument | Type | Description |
---|---|---|
preset | string | UI theme preset name. |
options | object | Optional UI theme customization options. |
options.backgroundColor | CSSColor | Background color of UI elements in a CSS color string. |
Python
Arguments
Argument | Type | Description |
---|---|---|
preset | ThemePresets | UI theme preset name. |
options | ThemeOptions | Optional UI theme customization options. |
View
View
Type encapsulating view properties.
type View = {
longitude: number,
latitude: number,
zoom: number,
pitch: number,
bearing: number,
dragRotate: boolean
};
class View(_PartialView):
longitude: Number
latitude: Number
zoom: Number
pitch: Number
bearing: Number
drag_rotate: StrictBool
Javascript
Arguments
Argument | Type | Description |
---|---|---|
longitude | number | Longitude of the view center [-180, 180]. |
latitude | number | Latitude of the view center [-90, 90]. |
zoom | number | View zoom level [0-22]. |
pitch | number | View pitch value [0-90]. |
bearing | number | View bearing. |
bearing | number | View bearing. |
dragRotate | boolean | Whether to enable rotating with pointer drag. |
Python
Arguments
Argument | Type | Description |
---|---|---|
longitude | number | Longitude of the view center [-180, 180]. |
latitude | number | Latitude of the view center [-90, 90]. |
zoom | number | View zoom level [0-22]. |
pitch | number | View pitch value [0-90]. |
bearing | number | View bearing. |
drag_rotate | boolean | Whether to enable rotating with pointer drag. |
ViewLimits
ViewLimits
Type encapsulating map view limits.
type ViewLimits = {
minZoom: number,
maxZoom: number,
maxBounds?: Bounds
};
class ViewLimits():
min_zoom: Number
max_zoom: Number
max_bounds: Bounds
Javascript
Arguments
Argument | Type | Description |
---|---|---|
minZoom | number | Minimum allowed zoom level. |
maxZoom | number | Maximum allowed zoom level. |
maxBounds | Bounds | Optional maximum allowed bounds. |
Python
Arguments
Argument | Type | Description |
---|---|---|
min_zoom | number | Minimum allowed zoom level. |
max_zoom | number | Maximum allowed zoom level. |
maxBounds | Bounds | Optional maximum allowed bounds. |
ViewMode
ViewMode
Supported map view modes.
type ViewMode = '2d' | '3d' | 'globe';
Updated 11 months ago