javascriptmapboxmapbox-gl-jsmapbox-gl

Remove all labels on Mapbox GL JS?


I'm using the Mapbox Dark v9 style and would like to remove all the labels.

I found a list of labels here.

And have tried the map.removeLayer function to remove some of them, e.g.:

map.removeLayer("place_label");

As well as:

map.removeLayer("place-city-lg-n");
map.removeLayer("place-city-lg-s");
map.removeLayer("place-city-md-n");
map.removeLayer("place-city-md-s");
map.removeLayer("place-city-sm");

Is there a way to remove labels from a style?


Solution

  • If you're just looking for a dark basemap without labels — i.e. it's not important for you to remove them programmatically at runtime — you can create a new style in Mapbox Studio using the Dark template and use the style editor to select and delete all label layers. You can then publish the style and use its url in your app.

    screenshot

    If it is important for you to remove all label layers at runtime, you could do something like

    map.style.stylesheet.layers.forEach(function(layer) {
        if (layer.type === 'symbol') {
            map.removeLayer(layer.id);
        }
    });