--- layout: v2 title: Plugins bodyclass: plugins-page --- ## Leaflet Plugins database 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

Overlay data

Overlay Display

Overlay interaction

Map interaction

Miscellaneous

Integration


Develop your own
--- ## Tile & image layers The following plugins allow loading different maps and provide functionality to tile and image layers. * [Basemap providers](#basemap-providers) * [Basemap formats](#basemap-formats) * [Non-map base layers](#non-map-base-layers) * [Tile/image display](#tileimage-display) * [Tile load](#tile-load) * [Vector tiles](#vector-tiles) ### Basemap providers Ready-to-go basemaps, with little or no configuration at all. {% include plugin_category_table.html category="basemap-providers" %} ### Basemap formats Plugins for loading basemaps or GIS raster layers in common (albeit non-default) formats. {% include plugin_category_table.html category="basemap-formats" %} ### Non-map base layers Sometimes you don't want to load a map, just big custom images. **Really** big ones. {% include plugin_category_table.html category="non-map-base-layers" %} ### Tile/image display The following plugins change the way that tile or image layers are displayed in the map. {% include plugin_category_table.html category="tile-image-display" %} ### Tile Load The following plugins change the way that tile layers are loaded into the map. {% include plugin_category_table.html category="tile-load" %} ### Vector tiles Plugins to display [vector tiles](https://github.com/mapbox/vector-tile-spec). {% include plugin_category_table.html category="vector-tiles" %} ## Overlay data The following plugins provide new ways of loading overlay data (GIS vector data): points, lines and polygons. * [Overlay data formats](#overlay-data-formats) * [Dynamic data loading](#dynamiccustom-data-loading) * [Synthetic overlays](#synthetic-overlays) * [Data providers](#data-providers) ### Overlay data formats Load your own data from various GIS formats. {% include plugin_category_table.html category="overlay-data-formats" %} ### Dynamic/custom data loading Load dynamic data which is updated in the map, or load GIS vector data in non-standard ways. {% include plugin_category_table.html category="dynamic-custom-data-loading" %} ### Synthetic overlays These plugins create useful overlays from scratch, no loading required. {% include plugin_category_table.html category="synthetic-overlays" %} ### Data providers Load overlay data from third-party-services. See also [basemap providers](#basemap-providers) and [plugin collections](#collections). {% include plugin_category_table.html category="data-providers" %} ## Overlay display The following plugins provide new ways of displaying overlay data information. * [Markers & renderers](#markers--renderers) * [Overlay animations](#overlay-animations) * [Clustering/decluttering](#clusteringdecluttering) * [Heatmaps](#heatmaps) * [DataViz](#dataviz) ### 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. {% include plugin_category_table.html category="markers-renderers" %} ### Overlay animations These plugins animate markers or some geometries. See also [geometries with time or elevation](#geometryinteraction-time). {% include plugin_category_table.html category="overlay-animations" %} ### Clustering/Decluttering When you are displaying a lot of data, these plugins will make your map look cleaner. {% include plugin_category_table.html category="clustering-decluttering" %} ### Heatmaps These plugins create heatmaps and heatmap-like visualizations from vector data. {% include plugin_category_table.html category="heatmaps" %} ### DataViz Powerful multi-purpose libraries for data visualization. {% include plugin_category_table.html category="dataviz" %} ## 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](#edit-geometries) * [Time & elevation](#time--elevation) * [Search & popups](#search--popups) * [Area/overlay selection](#areaoverlay-selection) ### Edit geometries Allows users to create, draw, edit and/or delete points, lines and polygons. {% include plugin_category_table.html category="edit-geometries" %} ### 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. {% include plugin_category_table.html category="time-elevation" %} ### Search & popups Plugins that search for overlays and enhance how to display information about them. {% include plugin_category_table.html category="search-popups" %} ### Area/overlay selection These plugins help users select either overlays or areas in the map. {% include plugin_category_table.html category="area-overlay-selection" %} ## Map interaction New ways to interact with the map itself. * [Layer switching controls](#layer-switching-controls) * [Interactive pan/zoom](#interactive-panzoom) * [Bookmarked pan/zoom](#bookmarked-panzoom) * [Fullscreen](#fullscreen-controls) * [Minimaps & synced maps](#minimaps--synced-maps) * [Measurement](#measurement) * [Mouse coordinates](#mouse-coordinates) * [Events](#events) * [User interface](#user-interface) * [Print/export](#printexport) * [Geolocation](#geolocation) ### Layer switching controls The following plugins enhance or extend `L.Control.Layers`. {% include plugin_category_table.html category="layer-switching-controls" %} ### Interactive pan/zoom Change the way the user can interactively move around the map. {% include plugin_category_table.html category="interactive-pan-zoom" %} ### Bookmarked pan/zoom Change the way the user is moved around the map, by jumping to predefined/stored places. {% include plugin_category_table.html category="bookmarked-pan-zoom" %} ### Fullscreen controls Allows display of the map in full-screen mode. {% include plugin_category_table.html category="fullscreen-controls" %} ### 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. {% include plugin_category_table.html category="minimaps-synced-maps" %} ### Measurement Allow the user to measure distances or areas. {% include plugin_category_table.html category="measurement" %} ### Mouse coordinates Show the geographical coordinates under the mouse cursor in different ways. {% include plugin_category_table.html category="mouse-coordinates" %} ### Events These plugins extend Leaflet event handling. {% include plugin_category_table.html category="events" %} ### User interface Buttons, sliders, toolbars, sidebars, and panels. {% include plugin_category_table.html category="user-interface" %} ### Print/export Print or export your map. {% include plugin_category_table.html category="print-export" %} ### Geolocation Plugins that extend Leaflet's geolocation capabilities. {% include plugin_category_table.html category="geolocation" %} ## Miscellaneous ### Geoprocessing The following plugins perform several sorts of geoprocessing (mathematical and topological operations on points, lines and polygons). {% include plugin_category_table.html category="geoprocessing" %} ### Routing The following plugins use external services to calculate driving or walking routes. {% include plugin_category_table.html category="routing" %} ### Geocoding External services that transform an address or the name of a place into latitude and longitude (or vice versa). {% include plugin_category_table.html category="geocoding" %} ### Plugin collections Sets of plugins that span several categories. Plugin developers: please keep future plugins in individual repositories. {% include plugin_category_table.html category="plugin-collections" %} ## Integration ### Frameworks & build systems Ease your development integrating Leaflet into a development framework or automating some of the javascript/CSS work for complex applications. {% include plugin_category_table.html category="frameworks-build-systems" %} ### 3rd party integration The following plugins integrate Leaflet into third party services or websites. {% include plugin_category_table.html category="3rd-party-integration" %} ## 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](https://github.com/Leaflet/Leaflet/blob/main/PLUGIN-GUIDE.md). Once your plugin is ready, you can submit it: just send a pull request with a new plugin file in [/docs/_plugins/](https://github.com/Leaflet/Leaflet/tree/main/docs/_plugins)to our GitHub repository.