Skip to content


Repository files navigation


Hide/show instances of L.Layer or L.LayerGroup without removing/re-adding them to a Leaflet map. This is useful if you have a lot of features (e.g. a dataset with a large amount of points or a more complex polygon dataset) and the adding/removing-process takes some time. Another use case may be if you want to hide/show features of a GeoJSON depending on a particular condition.

Extends L.Layer and L.LayerGroup with methods hide, show and toggleVisibility. The methods hide and show in L.LayerGroup can take a filter function that has access to the layer instance of each layer in the layergroup. It can be used to hide or show a layer depending on a condition.

For an example you can explore the Leaflet geometries of the index.html with which you can play around here (open up the developer tools...). E.g. for hiding only the circle with radius 500 of the circleLayerGroup you would call hide on it like so:

circleLayerGroup.hide(layer => layer.options.radius === 500)

The plugin does works with Leaflet 1.7.1 but older versions should also work, although this has not been tested yet.


webpack, rollup etc.

If you are using a bundler like webpack or rollup you can install leaflet-layervisibility via npm:

npm install leaflet-layervisibility

and then import it after importing Leaflet:

import L from "leaflet"
import "leaflet-layervisibility"

Note that plugin does not export any functions or classes. It just needs to be executed once to extend the described Leaflet classes.


You can use leaflet-layervisibility from a CDN like unpkg. Include the plugin's js files after the links to the Leaflet files in the header section of your html page. Then run your code by using the script tags in the body of the page.

    <link rel="stylesheet" href="" />
    <script src="" ></script>
    <script src=""></script>


Change the visibility of L.Layer and L.LayerGroup instances







No packages published