Leaflet Plugins

While Leaflet is meant to be as lightweight as possible, and focuses on a core set of features, an easy way to extend its functionality is to use third-party plugins. Thanks to the awesome community behind Leaflet, there are literally hundreds of nice plugins to choose from.

Tile & image layers

The following plugins allow loading different maps and provide functionality to tile and image layers.

Basemap providers

Ready-to-go basemaps, with little or no configuration at all.

Basemap formats

Plugins for loading basemaps or GIS raster layers in common (albeit non-default) formats.

Non-map base layers

Sometimes you don’t want to load a map, just big custom images. Really big ones.

Tile/image display

The following plugins change the way that tile or image layers are displayed in the map.

Tile Load

The following plugins change the way that tile layers are loaded into the map.

Vector tiles

Plugins to display vector tiles.

Plugin Description Maintainer Leaflet.MapboxVectorTile A Leaflet Plugin that renders Mapbox Vector Tiles on canvas. See demo. Compatible with Leaflet 0.7.x only. SpatialDev Hoverboard Render vector tiles on canvas with leaflet (geojson, topojson, and protobuf). See demo. Compatible with Leaflet 0.7.x only. Tristan Davies geojson-vt Efficient library for slicing GeoJSON data into vector tiles on the fly. Mapbox Leaflet.VectorGrid Display gridded vector data (GeoJSON or TopoJSON sliced with geojson-vt, or protobuf vector tiles) in Leaflet 1.0.0. See demos. Not compatible with 0.7.x. Iván Sánchez Leaflet.VectorTileLayer A Leaflet layer for displaying vector tiles. Very similar to Leaflet.VectorGrid except for styling: a single style can be specified for all layers while VectorGrid requires knowing layer names in advance. For Leaflet 1.0.0. Joachim Kuebart

Overlay data

The following plugins provide new ways of loading overlay data (GIS vector data): points, lines and polygons.

Overlay data formats

Load your own data from various GIS formats.

Dynamic/custom data loading

Load dynamic data which is updated in the map, or load GIS vector data in non-standard ways.

Synthetic overlays

These plugins create useful overlays from scratch, no loading required.

Data providers

Load overlay data from third-party-services. See also basemap providers and plugin collections.

Overlay display

The following plugins provide new ways of displaying overlay data information.

Markers & renderers

These plugins provide new markers or news ways of converting abstract data into images in your screen. Leaflet users versed in GIS also know these as symbolizers.

Overlay animations

These plugins animate markers or some geometries. See also geometries with time or elevation.

Clustering/Decluttering

When you are displaying a lot of data, these plugins will make your map look cleaner.

Heatmaps

These plugins create heatmaps and heatmap-like visualizations from vector data.

DataViz

Powerful multi-purpose libraries for data visualization.

Interaction with geometries/features

The following plugins enable users to interact with overlay data: edit geometries, select areas or features, interact with the time dimension, search features and display information about them.

Edit geometries

Allows users to create, draw, edit and/or delete points, lines and polygons.

Time & elevation

Most data is two-dimensional (latitude and longitude), but some data has more dimensions (altitude and/or time). The following plugins help users navigate these extra dimensions.

Plugins that search for overlays and enhance how to display information about them.

Area/overlay selection

These plugins help users select either overlays or areas in the map.

Map interaction

New ways to interact with the map itself.

Layer switching controls

The following plugins enhance or extend L.Control.Layers .

Interactive pan/zoom

Change the way the user can interactively move around the map.

Bookmarked pan/zoom

Change the way the user is moved around the map, by jumping to predefined/stored places.

Fullscreen controls

Allows display of the map in full-screen mode.

Plugin Description Maintainer Leaflet.fullscreen A fullscreen button control by Mapbox Mapbox leaflet.fullscreen Another fullscreen button control but for modern browsers, using HTML5 Fullscreen API. Bruno B leaflet.zoomfs A fullscreen button control. Eli Dupuis

Minimaps & synced maps

Display two maps at once. One of them might be a different size and zoom level, usable as a minimap to aid with navigation.

Plugin Description Maintainer Leaflet.Sync Synchronized view of two maps. Bjørn Sandvik Leaflet.MiniMap A small minimap showing the map at a different scale to aid navigation. Robert Nordan Leaflet.MagnifyingGlass Allows you to display a small portion of the map at another zoom level, either at a fixed position or linked to the mouse movement, for a magnifying glass effect. Benjamin Becquet Leaflet.layerscontrol-minimap Extends the default Leaflet layers control with synced minimaps. Jieter Leaflet.GlobeMiniMap Simple minimap control that places a 3D Globe in the corner of your map, centered on the same location as the main map (demo). Chris Whong leaflet-clonelayer Clone Leaflet layers to allow reuse across different maps in the same runtime. Jieter

Measurement

Allow the user to measure distances or areas.

Mouse coordinates

Show the geographical coordinates under the mouse cursor in different ways.

Events

These plugins extend Leaflet event handling.

User interface

Buttons, sliders, toolbars, sidebars, and panels.

Print/export

Print or export your map.

Plugin Description Maintainer Leaflet.print Implements the Mapfish print protocol allowing a Leaflet map to be printed using either the Mapfish or GeoServer print module. Adam Ratcliffe Leaflet-image Export images out of Leaflet maps without a server component, by using Canvas and CORS. Tom MacWright Leaflet-easyPrint A simple plugin which adds an icon to print your Leaflet map. Rowan Winsemius leaflet.browser.print Allows users to print full page map directly from the browser. Igor Vladyka Leaflet.BigImage Allows users to download an image with a scaled-up version of the visible map. Vasyl Pasichnyk (Oswald)

Geolocation

Plugins that extend Leaflet’s geolocation capabilities.

Miscellaneous

Geoprocessing

The following plugins perform several sorts of geoprocessing (mathematical and topological operations on points, lines and polygons).

Routing

The following plugins use external services to calculate driving or walking routes.

Geocoding

External services that transform an address or the name of a place into latitude and longitude (or vice versa).

Plugin collections

Sets of plugins that span several categories.

Plugin developers: please keep future plugins in individual repositories.

Integration

Frameworks & build systems

Ease your development integrating Leaflet into a development framework or automating some of the javascript/CSS work for complex applications.

3rd party integration

The following plugins integrate Leaflet into third party services or websites.

Develop your own

Leaflet keeps it simple. If you can think of a feature that is not required by all Leaflet users, and you can write the JavaScript code in a reusable way, you’ve got yourself a Leaflet plugin already.

There are no hard requirements on how to create your own plugin, but all developers are encouraged to read the recommendations in the plugin guide.

Once your plugin is ready, you can submit it to this list: just send a pull request with the addition to /docs/plugins.md to our GitHub repository.