Layer Functions
The Map SDK provides a variety of layer functions, allowing you to add, remove, and configure the visibility of layers on your map.
Add Layer
Add a new layer to the map.
This function requires the user to supply at least one valid layer configuration object.
Note:
For Typescript, we recommend using
addLayerFromConfig()
.
For Python users, we recommend usingadd_layer_from_config()
and specialized layer classes. See Python layer guide
map.addLayer({
id: "test-layer-01",
type: "point",
dataId: "test-dataset-01",
label: "New Layer",
isVisible: true,
fields: {
lat: "latitude",
lng: "longitude",
},
config: {
visualChannels: {
colorField: {
name: "cityName",
type: "string",
},
colorScale: "ordinal",
},
},
});
map.add_layer(
LayerCreationProps(
id="test-layer-01",
type=LayerType.POINT
data_id="test-dataset-01",
label="New Layer",
is_visible=True,
fields={"lat": "latitude", "lng": "longitude"},
config={
"visual_channels": {
"color_field": {"name": "city_name", "type": "string"},
"color_scale":"ordinal",
}
},
)
)
Arguments
Note: Python Arguments require Python syntax and snake_case parameter names.
Argument | Type | Description |
---|---|---|
layer | object | An object containing layer details. |
layer.id | string | Unique identifier of the layer. |
layer.type | string | Type of the layer. See all available layers in the LayerType documentation. |
layer.dataId | string | Unique identifier of the dataset this layer visualizes. |
layer.fields | Record<string, string> | Dictionary that maps fields that the layer requires for visualization to appropriate dataset fields. |
layer.label | string | Canonic label of this layer. |
layer.isVisible | boolean | Flag indicating whether layer is visible or not. |
layer.config | LayerConfig | JSON layer configuration. |
For more information, including full Python documentation, see addLayer()
in the full API reference.
Add Layer From Config
Adds a layer using the specified config. Provides improved typing over addLayer()
, and can work with JSON objects from the JSON editor for layers directly.
Note:
Use
addLayerFromConfig()
overaddLayer()
when working with large, non-trivial layer configurations.
For more information, see the full Python layer guide.
map.addLayerFromConfig({
type: 'point',
config: {
dataId: myDataset.id,
columnMode: 'points',
columns: {
lat: 'lat',
lng: 'lon'
},
visConfig: {},
color: [0, 255, 0],
textLabel: []
}
});
# layer config as a dict
map.add_layer_from_config(
{
"id": "sample-layer",
"type": "point",
"config": {
"dataId": "sample-data",
"label": "Sample layer",
"columnMode": "points",
"columns": {"lat": "Latitude", "lng": "Longitude"},
"visConfig": {},
"color": [0, 255, 0],
"textLabel": [],
},
}
)
# or layer config as a JSON string
map.add_layer_from_config("""
{
"id": "sample-layer",
"type": "point",
"config": {
# ...
},
}
""")
By using JSON editor for layers, you can create and adjust your layer directly through the UI, and once you're satisfied, you can simply open the layer config editor and copy the JSON from it and paste it as a parameter into this SDK function.
# create a layer by using a JSON string straight from the JSON editor
map.add_layer_from_config("""
{
"id": "sample-layer-json-str",
"type": "point",
"config": {
"dataId": "sample-data",
"label": "Sample layer str",
# ...
# ...
"columnMode": "points",
"columns": {
"lat": "Latitude",
"lng": "Longitude"
}
},
"visualChannels": {
"colorField": null,
"colorScale": "quantile",
"strokeColorField": null,
"strokeColorScale": "quantile",
"sizeField": null,
"sizeScale": "linear"
}
}
""")
This allows for some very ergonomic and fast workflows, where you can combine code and changes made in the UI to get to a desired state as fast as possible, without any guesswork either for how things might look like or what the parameters should be, and the full type safety guarantees this.
Arguments
Note: in both Javascript and Python version of this function, camelCase is being used.
Argument | Type | Description |
---|---|---|
layerConfig | object | A layer config. |
For more information, including full Python documentation, see addLayerFromConfig()
in the full API reference.
Add Layer Group
Add a new layer group to the map.
Layer groups do not impact the visualization itself, and instead serve as folders that organize layers within the sidebar. Assign layerIds
to be a member of the layer group.
map.addLayerGroup({
id: "layer-group-1",
label: "Layer Group 1",
isVisible: true,
layerIds: ["layer1", "layer2", "layer3"],
});
map.add_layer_group(LayerGroupCreationProps(
id="layer-group-1",
label="Layer Group 1",
is_visible=True,
layer_ids=["layer1", "layer2", "layer3"]
))
Arguments
Note: Python Arguments require Python syntax and snake_case parameter names.
Argument | Type | Description |
---|---|---|
layerGroup | object | An object containing layer group options. |
layerGroup.id | string | Unique identifier of the layer group. |
layerGroup.label | string | Canonical label of this group. |
layerGroup.isVisible | boolean | Flag indicating whether layer group is visible or not. |
layerGroup.layerIds | string[] | Layers referenced by layerId that are part of this group, sorted in the order in which they are shown. |
For more information, including full Python documentation, see addLayerGroup()
in the full API reference.
Get Layer by ID
Retrieve a Layer
object by passing a valid layer layerId
.
layer = map.getLayerById("test-layer-01");
layer = map.get_layer_by_id('test-layer-01')
Arguments
Note: Python Arguments require Python syntax and snake_case parameter names.
Argument | Type | Description |
---|---|---|
layerId | string | Unique identifier of the layer. |
For more information, including full Python documentation, see getLayerById()
in the full API reference.
Get Layer Group by ID
Retrieve a LayerGroup
object by passing a valid layer group LayerGroupId
.
layerGroup = map.getLayerGroupById("layer-group-1");
layer_group = map.get_layer_group_by_id("layer-group-1")
Arguments
Note: Python Arguments require Python syntax and snake_case parameter names.
Argument | Type | Description |
---|---|---|
layerGroupId | string | Unique identifier of the layer group. |
For more information, including full Python documentation, see getLayerGroupById()
in the full API reference.
Get Layer Groups
Retrieve all LayerGroups
present on the map.
layerGroups = map.getLayerGroups();
layer_groups = map.get_layer_groups()
For more information, including full Python documentation, see getLayerGroups()
in the full API reference.
Get Layers
Gets all the Layers
currently available on the map.
layers = map.getLayers();
layers = map.get_layers()
For more information, including full Python documentation, see getLayers()
in the full API reference.
Get Layer Timeline
Retrieve the LayerTimeline
object associated with the map.
layerTimeline = map.getLayerTimeline();
layer_timeline = map.get_layer_timeline()
For more information, including full Python documentation, see getLayerTimeline()
in the full API reference.
Remove Layer
Remove a layer from the map by passing a valid layerId
.
map.removeLayer("test-layer-01");
map.remove_layer('test-layer-01')
Arguments
Note: Python Arguments require Python syntax and snake_case parameter names.
Argument | Type | Description |
---|---|---|
layerId | string | Unique identifier of the layer to remove. |
For more information, including full Python documentation, see removeLayer()
in the full API reference.
Remove Layer Group
Remove a layer group by passing a valid layerGroupId
.
map.removeLayerGroup("layer-group-1");
map.remove_layer_group("layer-group-1")
Arguments
Note: Python Arguments require Python syntax and snake_case parameter names.
Argument | Type | Description |
---|---|---|
layerGroupId | string | Unique identifier of the layer group to remove. |
For more information, including full Python documentation, see removeLayerGroup()
in the full API reference.
Update Layer
Update an existing layer with the given values. Pass the layerId
to target the layer you wish to update, then provide new Layer
parameters in a values
object.
map.updateLayer("test-layer-01", {
type: "point",
dataId: "test-dataset-01",
label: "Updated Layer",
isVisible: true,
fields: {
lat: "latitude",
lng: "longitude",
alt: "altitude",
},
config: {
visualChannels: {
colorField: {
name: "cityName",
type: "string",
},
},
visConfig: {
radius: 10,
fixedRadius: false,
opacity: 0.8,
outline: false,
thickness: 2,
},
},
});
map.update_layer('layer-id', LayerUpdateProps(
label="My new label"
))
Arguments
Note: Python Arguments require Python syntax and snake_case parameter names.
Argument | Type | Description |
---|---|---|
layerId | string | Unique identifier of the layer to update. |
layer | object | An object containing layer details. |
layer.type | string | Type of the layer. See all available layers in the LayerType documentation. |
layer.dataId | string | Unique identifier of the dataset this layer visualizes. |
layer.fields | Record<string, string> | Dictionary that maps fields that the layer requires for visualization to appropriate dataset fields. |
layer.label | string | Canonic label of this layer. |
layer.isVisible | boolean | Flag indicating whether layer is visible or not. |
layer.config | LayerConfig | JSON layer configuration. |
For more information, including full Python documentation, see updateLayer()
in the full API reference.
Update Layer Group
Update an existing layer group with the given values. Pass the layerGroupId
to target the layer you wish to update, then provide new LayerGroup
parameters in a values
object.
map.updateLayerGroup(
"layer-group-1",
{
id: "layer-group-1",
label: "Layer Group 1",
isVisible: false,
layerIds: ["layer1", "layer2". "layer3"]
}
);
map.update_layer_group(LayerGroupUpdateProps(
"layer-group-1",
label = "New Layer Group 1",
layers = ["layer1", "layer2"]
))
Arguments
Note: Python Arguments require Python syntax and snake_case parameter names.
Argument | Type | Description |
---|---|---|
layerGroupId | string | Unique identifier of the layer group. |
layerGroup | object | An object containing layer group options. |
layerGroup.label | string | Canonical label of this group. |
layerGroup.isVisible | boolean | Flag indicating whether layer group is visible or not. |
layerGroup.layerIds | string[] | Layers referenced by layerId that are part of this group, sorted in the order in which they are shown. |
For more information, including full Python documentation, see updateLayerGroup()
in the full API reference.
Update Layer Timeline
Updates the current layer timeline configuration. Pass LayerTimeline
parameters in a values
object.
map.updateLayerTimeline({
currentTime: 1660637600498,
isAnimating: true,
isVisible: true,
animationSpeed: 1,
timeFormat: "YYYY-MM-DDTHH:mm:ss",
timezone: "America/Los_Angeles",
});
map.update_layer_timeline(LayerTimelineUpdateProps(
current_time=1660637600498,
is_animating=True,
is_visible=True,
animation_speed=1,
time_format="YYYY-MM-DDTHH:mm:ss",
timezone="America/Los_Angeles"
))
Arguments
Note: Python Arguments require Python syntax and snake_case parameter names.
Argument | Type | Description |
---|---|---|
values | object | An object containing layer timeline settings to pass as an update. |
values.currentTime | number | Current time on the timeline in milliseconds. |
values.domain | timeRange | Range of time that the timeline shows. |
values.isAnimating | boolean | Flag indicating whether the timeline is animating or not. |
values.isVisible | boolean | Flag indicating whether the timeline is visible or not. |
values.animationSpeed | number | Speed at which timeline is animating. |
values.timeFormat | string | Time format that the timeline is using in day.js supported format. |
values.timezone | string | Timezone that the timeline is using in tz format. |
values.timeSteps | number[] | Step duration for all the animation keyframes in milliseconds. |
For more information, including full Python documentation, see updateLayerTimeline()
in the full API reference.
Updated 4 months ago