This sample shows how to update style layers in the current style of a VectorTileLayer.
At version 4.18, we introduced the following methods on VectorTileLayer that will get and set the various properties of style layers in the VectorTileLayer's currentStyleInfo.style. These methods can be used in 2D MapView without having to reload the entire VectorTileLayer.
- getStyleLayer(layerName) - returns a JSON object representing the style layer from the style.
- setStyleLayer(styleLayer) - lets you change properties of a specified style layer, add a new style layer, or reorder existing style layers in the style.
- deleteStyleLayer(layerName) - deletes a style layer in the style.
- setStyleLayerVisibility(layerName, visibility) - toggles the visibility of a given style layer in the style.
// delete a style layer
layer.deleteStyleLayer("City small scale/medium other capital");
// add a new style layer at the specified index
layer.setStyleLayer(styleLayer, 15);
// make a layer visible
layer.setStyleLayerVisibility("Admin0 point/medium", "visible");
// change style layer paint and layout properties at once
const styleLayer = layer.getStyleLayer("City small scale/x large admin0 capital");
styleLayer.paint["text-color"] = "#E400E0";
styleLayer.paint["text-halo-color"] = "#E400E0";
styleLayer.layout["icon-size"] = 1.5;
layer.setStyleLayer(styleLayer);