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. Within each section, they’re sorted by GitHub stars.
Tile & image layers
Integration
Overlay display
Overlay interaction
Map interaction
Analysis & services
Ready for Leaflet 2
Plugins that already work with Leaflet 2.0. Ported yours? Mark it with compatible-v2: true.
-
Leaflet.
markercluster ★ 4.2KBeautiful, sophisticated, high performance marker clustering solution with smooth animations and lots of great features.
-
Leaflet.
heat ★ 1.7KA tiny, simple and fast Leaflet heatmap plugin. Uses simpleheat under the hood, additionally clustering points into a grid for performance.
-
Geocoding and reverse geocoding with the MapTiler Geocoding API, from states and cities down to addresses and POIs. Supports many languages, per-country limits, fuzzy matching and autocomplete.
-
location-picker ★ 82
A form field for picking a location by panning the map under a fixed pin. Comes as a
<location-picker>web component and a JavaScript class, with address search and a locate button. -
Edit only a local portion of a large polyline.
-
Leaflet.
Boating ★ 2Leaflet plugin to geolocate the user and display heading, speed and location like a simple navigation app.
-
A fully customizable coordinate viewer written in TypeScript, with its look defined by a custom JSX component.
-
A lightweight Leaflet plugin that adds a burger menu with nested submenus to the map interface. Hovering over menu items reveals submenus, and clicking items can trigger custom actions.
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.
-
leaflet-providers ★ 2.4K
Contains configurations for various free tile providers — OSM, OpenCycleMap, Stamen, Esri, etc.
-
Esri Leaflet ★ 1.7K
A set of tools for using ArcGIS services with Leaflet. Support for map services, feature layers, ArcGIS Online tiles and more.
-
Leaflet.
ChineseTmsProviders ★ 1.1KContains configurations for various Chinese tile providers — TianDiTu, MapABC, GaoDe, etc.
-
L.
GridLayer. ★ 103GoogleMutant Displays Google maps (with minimal artifacts thanks to a DOM mutation observer technique).
-
Leaflet-2gis ★ 103
Adds support for 2GIS tile layer
-
Bing Maps Layer ★ 89
Add Bing Maps tiles to your Leaflet Map.
-
Displays national maps of Switzerland using map tiles from Swisstopo.
-
PolarMap.
js ★ 53JavaScript library for displaying tiles from ArcticWebMap, a free tile provider with OSM data in multiple Arctic polar projections. Includes lower-level API for deeper integration with other Leaflet plugins.
-
Leaflet.
GIBS ★ 47NASA EOSDIS GIBS imagery integration. The plugin provides 96 daily updated layers with satellite imagery and science parameters.
-
Provides easy setup of the tile layers from Kartverket (The Norwegian Mapping Authority)
-
A leafletjs plugin that makes it easy to overlay all the different tile layers available from the Azure Maps. Supports using an Azure Maps subscription key or Azure Active Directory for authentication.
-
L.
MapkitMutant ★ 8Displays Apple’s MapkitJS basemaps.
-
Displays tiles from HERE maps.
-
L.
TileLayer. ★ 2HERE Displays map tiles from HERE maps.
-
Displays Hong Kong map tiles from Hong Kong GeoData Store provider.
Raster formats & large images
Load basemaps and GIS raster layers in formats beyond plain tile URLs, such as WMS, WMTS, GeoTIFF and MBTiles, or show really big non-map images, such as IIIF and DeepZoom.
-
GeoRasterLayer ★ 352
Display small and large GeoTIFF files with configurable resolution. Built for simplicity and performance. Integrates with GeoBlaze, a JavaScript raster analysis library.
-
leaflet.
wms ★ 252Enhanced WMS support for Leaflet, including single-tile/untiled layers, shared WMS sources, and layer identify via GetFeatureInfo.
-
allmaps-leaflet ★ 147
Displays georeferenced IIIF images, warped into place with WebGL. Gives access to hundreds of thousands of historical maps from libraries, archives and museums. See allmaps.org for more.
-
Leaflet-IIIF ★ 138
A IIIF (International Image Interoperability Framework) viewer for Leaflet.
-
leaflet-rastercoords ★ 132
Renders large tiled images generated with gdal2tiles-leaflet. Image raster coordinates can be used to set markers, etc.
-
Add WMTS (IGN) layering for leaflet.
-
leaflet-geotiff-2 ★ 62
Display raster data from geoTIFF files as images or direction arrows. Rasters can be styled and queried in the client. An optional clipping mask can be applied, e.g. to restrict DEMs to land areas.
-
leaflet-tilejson ★ 49
Adds support for the TileJSON specification to Leaflet.
-
TileLayer.
DeepZoom ★ 24A TileLayer for DeepZoom images.
-
Loads
.mbtilestilesets. -
L.
TileLayer. ★ 6WMTS A simple WMTS Tile Layer plugin for Leaflet.
-
A client for the (untiled) OGC API Maps draft specification.
Tile & image effects
The following plugins change the way that tile or image layers are displayed in the map.
-
A Leaflet control to add a split screen to compare two map overlays.
-
Leaflet.
DistortableImage ★ 286Enable users to scale, rotate, and distort images on Leaflet maps.
-
TileLayer.
BoundaryCanvas ★ 172Allows you to draw tile layers with arbitrary polygonal boundary. HTML Canvas is used for rendering.
-
TileLayer.
Grayscale ★ 107A regular TileLayer with grayscale makeover.
-
Displays rotated, scaled and skewed (but not rubbersheeted) ImageOverlays, given three control points.
-
A simple and lightweight Leaflet plugin to apply CSS filters on map tiles.
-
A Leaflet layer for non-tiled overlays.
-
A TileLayer with mask effect.
-
Make multiple tile layers transparent.
-
A TileLayer which can filter and replace pixels by RGB code.
-
Render tiles as canvas elements.
-
A Leaflet TileLayer which can modify colors by RGBA code.
-
WebGL TileLayer: Colorize floating-point pixels, mouse event handlers for pixel values, hillshading, contours, transitions, filter and do calculations on multiple layers.
-
Provides multispectral channel manipulation and processing tools (such as NDVI or other remote sensing methods) for Leaflet image layers using pure client-side JavaScript. It uses
image-sequencervia an ImageOverlayfilter()function. -
A Leaflet TileLayer with getColor(latLng).
-
Leaflet.
TileLayer. ★ 20GL Applies custom WebGL shaders to each tile in a tilelayer.
-
Enable users to scale, rotate, and distort videos on Leaflet maps.
-
Extends
L.TileLayerto add custom headers to tile requests. -
Displays reprojected ImageOverlays, given four control points and a proj4js projection function.
-
Leaflet WMS Crop ★ 0
Client-side clipping for Leaflet WMS layers using GeoJSON/polygon boundaries.
-
Adds gutter support to WMS tile layers, so that symbols crossing tile boundaries don’t get cut off.
Tile loading
The following plugins change the way that tile layers are loaded into the map.
-
leaflet.
offline ★ 375Allow tiles to be stored in an database for offline access.
-
Leaflet.
EdgeBuffer ★ 90Buffer tiles beyond the edge of the viewport.
-
TileLayer.
Cordova ★ 83For use with Cordova/Phonegap, adds tile caching onto local device storage, switching between offline and online mode.
-
Allows you to define tile layer URLs using a function. Even works with asynchronous sources, using promises.
-
Replaces missing Tiles (HTTP 404 Not Found Error) by scaled up equivalent Tiles from lower zooms.
-
Fades out grid layers and tile layers when they are removed, making basemap changes smoother.
-
Load tiles in a different CRS than the map’s, starting at a custom zoom.
Vector tiles & GL maps
Display vector tiles, or add a MapLibre or Mapbox GL map to Leaflet as a layer.
-
geojson-vt ★ 2.1K
Efficient library for slicing GeoJSON data into vector tiles on the fly.
-
protomaps-leaflet ★ 857
Lightweight vector map rendering + labeling and symbology for Leaflet (supporting pmtiles and pbf format)
-
Leaflet.
VectorGrid ★ 676Display gridded vector data (GeoJSON or TopoJSON sliced with geojson-vt, or protobuf vector tiles).
-
mapbox-gl-leaflet ★ 546
Binding from Mapbox GL JS to the Leaflet API
-
maplibre-gl-leaflet ★ 231
Loads a maplibre-gl-js map as a Leaflet layer
-
leaflet-geojson-vt ★ 60
Displaying the vector tiles of GeoJSON data on the fly on leaflet
-
Vector Tiles plugin for Leaflet. Use the power of the MapTiler SDK to access their catalog of professionally created multi-lingual vector tile basemaps. You can also use it for vector tile data overlays.
-
Displays vector tiles. Similar to Leaflet.VectorGrid, but a single style can apply to all layers, without knowing their names in advance.
Overlay data
The following plugins provide new ways of loading overlay data (GIS vector data): points, lines and polygons.
Data formats
Load your own data from various GIS formats.
-
Plugins by Pavel Shramov ★ 730
A set of plugins for: GPX, KML, TOPOJSON layers; Bing tile layer; Yandex layers (implemented with their APIs), and permalink control.
-
qgis2web ★ 726
A QGIS plugin to make webmaps without coding.
-
leaflet-omnivore ★ 680
Loads & converts CSV, KML, GPX, TopoJSON, WKT formats for Leaflet.
-
Leaflet GPX ★ 619
GPX layer, targeted at sporting activities by providing access to information such as distance, moving time, pace, elevation, heart rate, etc.
-
Wicket ★ 589
A modest library for translating between Well-Known Text (WKT) and Leaflet geometry objects (e.g. between L.marker() instances and “POINT()” strings).
-
Leaflet.
FileLayer ★ 285Loads files (GeoJSON, GPX, KML) into the map using the HTML FileReader API (i.e. locally without server).
-
Leaflet.
Shapefile ★ 262Put a shapefile onto your map as a layer.
-
leaflet-kml ★ 179
Loads & displays KML
-
Leaflet.
encoded ★ 176Use encoded polylines in Leaflet.
-
Leaflet-WFST ★ 153
WFS client layer with transaction support
-
Leaflet.
geoCSV ★ 108Leaflet plugin for loading a CSV file as geoJSON layer.
-
Leaflet LayerJSON ★ 93
Turns any JSON data source into a Leaflet layer, with caching to minimize remote requests.
-
Load spatial data files of many formats into the map.
-
Leaflet-GeoPackage ★ 25
Load GeoPackage Tile and Feature Layers.
-
@s57-parser/leaflet ★ 17
Renders S-57 and S-101 electronic navigational charts (ENC
.000files) on the map with IHO S-52 symbology: depth areas, soundings, buoys, lights and coastline. Parsing happens in the browser, no server or GDAL needed. -
Leaflet-CsvTiles ★ 4
Load points from tiled CSV files, using PapaParse.
Realtime & dynamic data
Load data that keeps updating on the map, from live tracking to periodic refreshes.
-
Leaflet Realtime ★ 763
Put realtime data on a Leaflet map: live tracking GPS units, sensor data or just about anything.
-
Leaflet Ajax ★ 367
Add GeoJSON data via ajax or jsonp.
-
Leaflet uGeoJSON ★ 38
Add an auto updating GeoJSON data Layer via ajax post requests.
-
Leaflet.
Liveupdate ★ 29Periodically (‘live’) update something on a map.
-
Leaflet GeoSSE ★ 14
Add realtime data to a Leaflet map using server sent events.
-
Dynamically add and manage WMS and WMTS directly from the client side.
Grids & boundaries
Overlays that need no data of your own: graticules and reference grids, day and night, time zones, and ready-made boundary layers.
-
Leaflet.
Terminator ★ 132Overlay day and night regions on a map.
-
Leaflet.
Graticule ★ 63Draws a grid of latitude and longitude lines.
-
Create a Canvas as ImageOverlay to draw the Lat/Lon Graticule, and show the grid tick label at the edges of the map.
-
Draws a grid lines for L.CRS.Simple coordinate system.
-
Leaflet.
timezones ★ 20Overlay timezones on a Leaflet Earth map.
-
Draws a grid of latitude and longitude lines, automatically adjusting the scale to the current zoom level.
-
An implementation of the Maidenhead Locator System grid.
-
Draws India’s boundary per the Survey of India (J&K, Ladakh, Aksai Chin), styled to match the borders in OSM tiles.
-
Draws a projection aware grid of latitude and longitude lines, with labels on the lines and options to set the extent of and interval between the lines.
-
leaflet-daynight ★ 0
Live day/night shading with smooth civil, nautical and astronomical twilight, painted per tile. Includes a layer that masks city lights imagery (NASA Black Marble) to the night side.
-
Renders world country boundaries keyed by ISO 3166-1 alpha-2 codes, with per-country colors, permanent labels and click/hover popups. Built on leaflet.regions.
-
leaflet.
regions ★ 0Renders GeoJSON regions with per-feature colors, permanent labels and click/hover popups, bound to data through a simple key → object map. The base of leaflet.us-states and leaflet.countries.
-
Renders US state boundaries with per-state colors, permanent labels (abbreviated when zoomed out) and click/hover popups. Built on leaflet.regions.
Data providers
Load overlay data from third-party services. See also basemap providers.
-
Windy-Leaflet-plugin ★ 914
Displays animated weather map on your page using Windy’s free API.
-
Basic geoserver requests in leaflet. Currently supports wms, wfs, legend, wmsImage request on the leaflet.
-
Collection of different environmental map layers in an easy to use Leaflet library.
-
Easily include data from the overpass api.
-
Leaflet.
Rainviewer ★ 30Plugin for RainViewer radar data API.
-
Leaflet Weather ★ 30
A Leaflet plugin for adding a weather widget to the map using OpenWeatherMap API.
-
Display Geographical-Photos from Geograph Britain and Ireland in an interactive overlay, using their API.
-
Leaflet-Wikipedia ★ 13
A leaflet plugin to display Wikipedia API entries on a map layer.
-
An overlay with nautical features from FreieTonne.
-
Simple and fast way to get any Open Street Map (OSM) data in your drawn zone. Data from overpass-turbo.
-
Include a rain radar layer from RainViewer using Leaflet.TimeDimension.
-
Shows the CoworkingView Price Index as one marker per city, with the median coworking price.
Integration
Frameworks & build systems
Ease your development integrating Leaflet into a development framework or automating some of the javascript/CSS work for complex applications.
-
react-leaflet ★ 5.6K
React components for Leaflet maps.
-
Vue2Leaflet ★ 2K
A JavaScript library for the Vue.js framework that wraps Leaflet, making it easy to create reactive maps.
-
Leaflet for R ★ 843
Allows using Leaflet from within R programs, a programming language popular for statistical analysis and data mining.
-
ngx-leaflet ★ 814
Leaflet components and extensions for Angular.io.
-
Django Leaflet ★ 752
Use Leaflet in your Django projects. Includes admin integration, form widget, template tags, and much more!
-
@shadcn-map/map ★ 351
A map component integrated with shadcn/ui, built with Leaflet and React Leaflet.
-
ember-leaflet ★ 210
Easy and declarative mapping for Ember.js using Leaflet.
-
leaflet-map ★ 123
Integrate Leaflet in applications made with the Polymer >= 1.0 web component framework.
-
Reads the default icon options from CSS, so that marker icon URLs work with bundlers and frameworks that rewrite URLs in CSS (webpack, Rails Asset Pipeline, Django pipeline). Fixes #4968.
-
meteor-leaflet ★ 84
Provides a Meteor package to quickly build real-time cross-platform map apps.
-
YAGA leaflet-ng2 ★ 64
Granular integration into Angular.
-
V-Leaflet ★ 43
Use Leaflet as a component for the Vaadin Java/HTML framework.
-
Leaflet.
i18n ★ 32Internationalization for Leaflet plugins.
-
Leaflet Map Builder ★ 19
Builds a map from a configuration object, including zoom, layers, attribution and draw controls.
-
Add zoom level css class to map element for easy style updates based on zoom levels
-
Insert and use Angularized HTML code in your Leaflet map as a Leaflet control.
-
Leaflet.
a11y ★ 7An accessibility and localization/translation plugin for Leaflet.
-
Translations for Leaflet and its plugins: language packs and the code to load them.
-
Yii2-locator ★ 4
Leaflet widget for Yii2 PHP Framework. Geographical data stored in an ActiveRecord can be displayed and updated on interactive maps.
-
Comprehensive Java Server Faces(JSF) Component/Wrapper for Leaflet.
CMS & app integrations
Leaflet maps in WordPress, Drupal, Joomla, forums and other apps, without writing code.
-
WordPress Leaflet Map ★ 149
Interactive and flexible shortcode to create multiple maps in posts and pages, and to add multiple markers on those maps.
-
HA Map Card ★ 141
A Home Assistant map card with more advanced features than the stock one.
-
Waymark ★ 28
A WordPress plugin for creating interactive maps, with GPX, KML and GeoJSON import and custom meta fields.
-
WP-Trip-Summary ★ 13
A WordPress trip summary plugin to help travel bloggers manage and display structured information about their train rides and biking or hiking trips.
-
Joomla 4/5 system plugin for embedding Leaflet maps in articles, with multiple maps per page, GeoJSON and KML layers and a choice of base layers.
-
A plugin for MyBB creating a map of users based on Open Street Map and Leaflet, with customisable popup and markers
-
A Drupal module for choropleth maps of statistical data, integrated with the Drupal Leaflet module.
-
A Drupal module for Leaflet maps, from basic to advanced: draw and insert points and geometries, and display CMS data dynamically with tokens. Used by over 25,000 sites.
-
A WordPress block editor block for adding and customizing maps through a visual interface.
-
Seven plugins for various features, independent of the MapBBCode library: from circular and popup icons to buttons, layer switcher, better search and attribution.
-
A WordPress plugin for pinning, organizing and sharing places and tracks, with elevation charts. Bundles several Leaflet plugins, including markercluster, fullscreen, minimap and locatecontrol.
-
WordPress plugin to showcase widely distributed locations on a single map with additional navigation tabs for regions. The map is based on Leaflet JS and offers you several free map styles. Gutenberg Block included.
-
Easy to use, WordPress Map plugin based on Open Street Map and Leaflet with custom markers images, descriptions and links.
-
A WordPress plugin that lets visitors add locations from the frontend without registering. New locations wait for your approval before they get published.
Overlay display
The following plugins provide new ways of displaying overlay data information.
Markers & icons
New kinds of markers and icons: icon fonts, SVG and canvas markers, photos, directional symbols, and markers for points outside the view.
-
Leaflet.
Awesome-Markers ★ 1.3KColorful, iconic & retina-proof markers based on the Font Awesome icons/Twitter Bootstrap icons
-
Leaflet.
Extra-Markers ★ 349Awesome-Markers with more shapes, colors and Semantic UI support.
-
Leaflet Rotated Marker ★ 274
Enables rotation of marker icons in Leaflet.
-
leaflet-icon-pulse ★ 211
Renders pulsing icon using CSS. It can be used for location marker.
-
Leaflet.
BeautifyMarkers ★ 184Lightweight plugin that adds colorful iconic markers without image and gives full control of style to end user (i.e. Unlimited colors and CSS styling).
-
Leaflet.
MakiMarkers ★ 141Create markers using Maki Icons from MapBox.
-
Leaflet.
Photo ★ 139Plugin to show geotagged photos on a Leaflet map.
-
Leaflet.
Icon. ★ 129Glyph Use icon font glyphs in your markers (from Font Awesome, Material Design Icons, Glyphicons, Metro UI icons, Elusive, and other icon fonts).
-
Leaflet.
VectorMarkers ★ 119Vector SVG markers for Leaflet, with an option for Font Awesome/Twitter Bootstrap icons.
-
Leaflet-SVGIcon ★ 113
A simple and customizable SVG icon with no external dependencies. Also included is a convenience Marker class and two example subclasses.
-
leaflet-usermarker ★ 78
Plugin for plotting a marker representing a user - or multiple users - on a map, with support for drawing an accuracy circle.
-
Leaflet.
GeotagPhoto ★ 73Plugin for photo geotagging, with two modes: camera and crosshair.
-
Leaflet.
EdgeMarker ★ 71Plugin to indicate the existence of Features outside of the current view.
-
Leaflet.
BoatMarker ★ 66A boat marker using HTML Canvas for displaying yachts and sailboats with heading and optional wind information.
-
Adding highlight performance for L.marker.
-
Adds support for additional SVG marker types such as triangles, diamonds and squares.
-
Leaflet.
Marker. ★ 44Stack A pure Leaflet implementation of CartoDB’s “stacked chips” symbolizer.
-
Leaflet.
Sprite ★ 44Use sprite based icons in your markers.
-
Special type of SVG marker with a label inside and draggable around the anchor point.
-
AIS extension for leaflet-tracksymbol that displays AIS contacts on the map.
-
Displays coordinated images in map bounds.
-
Leaflet.
Signposts ★ 21Guides users to points outside the current map view with directional arrows and a count of points in each given direction.
-
Displays the path and the direction of a marker.
-
Leaflet.
ArrowCircle ★ 12A Marker extension to display circles with directional arrows.
-
Leaflet.
IconEx ★ 11A Leaflet plugin that creates a DivIcon with three customizable layers.
-
Shows tracks (triangle symbols) and AIS contacts on the map. An updated version of leaflet-tracksymbol and leaflet-ais-tracksymbol.
-
Display thousands of markers with custom WebGL shaders, optionally animated.
-
Marker that is kept fixed to the center of the map when the map is panned by dragging. Can be seen in action on What is my address?
-
A Leaflet plugin for displaying a large number of highly customizable markers, such as those from a CSV file read using Papa Parse.
-
Overwrite color of the icon with CSS filters and make it possible to add same icon-image in different colors.
-
Leaflet plugin that provides direction markers that can indicate the position of a marker, even when it is out of range or covered by a control. Can be used, for example, to highlight markers when hovering on labels in a sidebar.
-
Renders millions of point markers on a single WebGL canvas, with projection and picking on the GPU and no redraws while panning or zooming.
-
Displays points of interest as pictograms, with customizable layouts, accessibility features and pluggable POI and pictogram services.
-
Displays markers when wrapping around the globe, once every 360 degrees of longitude.
Lines & shapes
Draw curves, geodesic lines, arcs and new shapes, or decorate lines with arrows, patterns and offsets.
-
Allows you to draw patterns (like dashes, arrows or evenly spaced Markers) along Polylines or coordinate paths.
-
Leaflet.
curve ★ 225A Leaflet plugin for drawing Bézier curves and other complex shapes.
-
Leaflet-arrowheads ★ 173
Allows user to quickly draw arrowheads on polylines for vector visualization.
-
Leaflet.
Geodesic ★ 167Draws geodesic lines and circles (shortest paths on the Earth’s surface), using Vincenty’s formulae for high precision.
-
Leaflet Polyline Offset ★ 161
Shifts polylines left or right by a pixel offset without changing their coordinates. The offset stays the same across zoom levels.
-
Leaflet-semicircle ★ 125
Adds functionality to
L.Circleto draw semicircles. -
Leaflet.
bezier ★ 88Draws a Bézier line between two points with an animated flight object.
-
Allows displaying markers along a route (L.Polyline) at equivalent distances (eg. one per mile).
-
Leaflet Swoopy ★ 74
A plugin for creating customizable swoopy arrow annotations.
-
Leaflet Truesize ★ 61
A plugin for creating projection aware draggable polygons and polylines.
-
Leaflet.
Arc ★ 45This plugin adds L.Polyline.Arc function which wraps arc.js functionality for creation of Great Circle arcs.
-
Leaflet.
ellipse ★ 45Draws ellipses given a center point, semi-major and semi-minor axes, and tilt from west in degrees.
-
leaflet-corridor ★ 37
Renders a polyline with width fixed in meters, not in pixels. Adjusts width depending on zoom level.
-
Show symbols at the extremities of polylines, using SVG markers.
-
Leaflet.
greatCircle ★ 32A wrapper class for the Leaflet.js Polygon object that draws true “great circles” (showing true geodesic, spherical paths) that wrap around the Earth.
-
Leaflet.
River ★ 29Draw lines with different width (like rivers) on a map. Useful when you want to show how rivers ‘flow’ on the map.
-
leaflet-polycolor ★ 27
Color each polyline segment.
-
L.
Donut ★ 17Extension of L.Circle which allows to define a outer and inner radius.
-
leaflet-spline ★ 13
Built on Leaflet.Curve, leaflet-spline draws quadratic bezier spline based on a series of geographic coordinates.
-
Drawing triangle, square, star(n-corner) in leaflet.
-
Reprojects polylines from a source CRS (Coordinate Reference System) so that they look like curves. Meant to better display bounding boxes of raster images in arbitrary CRSs.
Styling & labels
Style overlays from data, fill them with patterns, or label them. Leaflet users versed in GIS also know these as symbolizers.
-
Leaflet.
TextPath ★ 291Allows you to draw text along Polylines.
-
leaflet-choropleth ★ 184
Extends L.geoJson to add a choropleth visualization (color scale based on value).
-
Leaflet.
pattern ★ 128Add support for pattern fills on Paths.
-
Displays labels on paths (polylines, polygons, circles) avoiding label collision.
-
Leaflet.
RoughCanvas ★ 93Leaflet.RoughCanvas renders hand-drawn, sketch style vector map (polyline, polygon, geojson).
-
Leaflet.
geojsonCSS ★ 92Geojson CSS implementation for Leaflet.
-
Leaflet.
streetlabels ★ 74A Leaflet plugin to show labels following the paths of polylines. An extension of yakitoritabetai Leaflet.LabelTextCollision.
-
Extend the Polygon Object to fill SVG Path element with an image pattern.
-
Extends L.Map with automatic labeling of layers that have a
labeloption, generalizing labels to avoid overlaps. -
Highlight Leaflet lines and polygons by adding a border and raising them above others. Add a transparent border to increase the tolerance for mouse/touch interactions.
-
Extends L.Layer and L.LayerGroup with methods to hide/show layers without removing/re-adding them.
-
Extend the Polygon Object to fill canvas element with an image pattern. Performance is better than svg rendering. Can improve the rendering performance of big data.
-
Extends L.geoJSON to support the simple style spec.
-
Adds a custom Canvas renderer to show labels on polylines along the path.
Animations
These plugins animate markers or some geometries. See also time & elevation.
-
Leaflet.
AntPath ★ 481Animates a polyline with a flowing dash pattern, like ants walking.
-
Leaflet.
AnimatedMarker ★ 377Animate a marker along a polyline.
-
Leaflet.
MovingMarker ★ 349Allow to move markers along a polyline with custom durations.
-
Animates (poly)lines into existence, as if they were being slowly drawn from start to end.
-
leaflet.
motion ★ 229Adds simple motion to your polyline with marker in a head on line.
-
Smooth animation of marker bouncing for Leaflet.
-
Leaflet.
BounceMarker ★ 150Make a marker bounce when you add it to a map.
-
Leaflet.
TrackPlayer ★ 145Plays back a trajectory, rotating the marker in the direction of travel and coloring the traveled and remaining parts of the path differently. Speed and more are configurable.
-
Transition in/out markers with CSS transitions. It supports jitter for staggering markers into view to prevent visual overload.
-
Leaflet.
Rain ★ 25Customizable WebGL rain animation for Leaflet. Useful for weather maps.
-
Leaflet.
magicMarker ★ 24Adding magical animation effect to a marker while loading.
-
Leaflet.
Radar ★ 16Radar sector scan animation
-
Leaflet.
MoveMarker ★ 14Used to create moving marker animation and also trail polyline animation.
-
Leaflet.
MarkerPlayer ★ 13A plug-in for animating marker along polyline with ability to get/set progress.
-
Smoothly move (slide) markers to a new location.
-
Smoothly animates markers along predefined paths, for visualizing routes or map-based animations.
-
Flexible animation of GeoJSON features.
-
A Leaflet plugin for creating realistic radar scanning effects.
-
Animate a large number of GeoJSON points.
-
Animates the dashArray of lines and circles, creating a basic flow effect.
Clustering & decluttering
When you are displaying a lot of data, these plugins will make your map look cleaner.
-
Leaflet.
markercluster v2 ★ 4.2KBeautiful, sophisticated, high performance marker clustering solution with smooth animations and lots of great features.
-
PruneCluster ★ 558
Fast and realtime marker clustering library.
-
Deals with overlapping markers in a Google Earth-inspired way by gracefully springing them apart on click.
-
Leaflet.
Deflate ★ 151Deflates lines and polygons to a marker when their screen size becomes too small in lower zoom levels.
-
A simple plugin to create Feature Groups that add their child layers into a parent group. Typical usage is to switch them through L.Control.Layers to dynamically add/remove groups of markers from Leaflet.markercluster.
-
A plugin to avoid tooltips overlapping and make it easier to find out the relationship between each tooltip and marker.
-
A FeatureGroup that does not show any more than a certain amount of markers visible in the viewport.
-
Control which layers in a group to show based on any condition. E.g. heatmap on low zoom levels, markers on higher levels.
-
A lightweight standalone Leaflet plugin to display donut charts instead of circles in map when using Leaflet marker cluster.
-
An alternative to marker clustering: markers deflate into a smaller, simpler state to declutter the map.
Heatmaps
These plugins create heatmaps and heatmap-like visualizations from vector data.
-
Leaflet.
heat v2 ★ 1.7KA tiny, simple and fast Leaflet heatmap plugin. Uses simpleheat under the hood, additionally clustering points into a grid for performance.
-
HeatCanvas ★ 403
Simple heatmap api based on HTML canvas.
-
MaskCanvas ★ 196
Canvas layer that can be used to visualize coverage.
-
WebGL Heatmap ★ 148
High performance Javascript heatmap plugin using WebGL.
-
Leaflet-Solr-Heatmap ★ 27
A Leaflet plugin for rendering heatmaps and clusters from Solr’s Heatmap Faceting. High performance for millions of points or polygons.
-
Uses paperJS under the hood to draw paths on canvas.
Data visualization
Powerful multi-purpose libraries for data visualization.
-
New markers, layers, and utility classes for easy thematic mapping and data visualization.
-
leaflet-velocity ★ 666
Visualise velocity layers with leaflet.
-
Leaflet.
glify ★ 538Fast rendering for large (+100MB) GeoJSON datasets with WebGL.
-
Leaflet.
PixiOverlay ★ 511A Leaflet overlay class for drawing and animating with Pixi.js.
-
Leaflet.
D3SvgOverlay ★ 185SVG overlay class for using with D3 library. Supports zoom animation and scaling without need to redraw the layer.
-
A LeafletJS custom map layer for mapping the flow of objects, ideas, people, etc. with Bezier curves rendered on the HTML canvas.
-
leaflet.
migrationLayer ★ 135leaflet.migrationLayer is used to show migration data such as population, flight, vehicle, traffic and so on. Data visualization on map.
-
jquery-storymap ★ 99
A jQuery plugin to display several map locations as the user scrolls through paragraphs.
-
Single-step data classification, symbology and legend creation for GeoJSON data powered thematic maps.
-
Leaflet.
CustomLayer ★ 32A Leaflet plugin L.CustomLayer - fully custom Layer.
-
leaflet.
migration ★ 27A layer that shows migration flylines, with customizable markers, lines and popovers.
-
Leaflet.
glify. ★ 24layer Add-on for the Leaflet.glify plugin to provide more leaflet-idiomatic bindings. Provides fast webgl rendering for GeoJSON FeatureCollections (currently limited to polygons, lines and points).
-
geogrid.
js ★ 12Displays data aggregated by the ISEA3H discrete global grid system, e.g. served by Measures REST or aggregated with geogrid.
-
Divide the area into parts in different ways such as voronoi(triangulation) and hexagonal tiling.
-
Leaflet.
Gleo ★ 0Embed a Gleo renderer as a Leaflet layer. Gleo is a general-purpose object-oriented WebGL cartographic rendering library.
-
An Apache ECharts 5 extension that adds a Leaflet map as a coordinate system, so ECharts series like scatter, lines and heatmaps render on top of Leaflet layers.
-
A Leaflet plugin for display and monitoring (wireless) network on the map.
-
JS library for visualizing 3D OSM buildings on top of Leaflet.
Overlay interaction
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.
-
Leaflet-Geoman ★ 2.4K
Draw, edit, drag, cut, rotate, split, scale, measure, snap and pin markers, polylines, polygons, circles, rectangles, image overlays, text and more. Supports holes in polygons and canvas mode.
-
Leaflet.
draw ★ 2.1KEnables drawing features like polylines, polygons, rectangles, circles and markers through a very nice user-friendly interface with icons and hints.
-
Terra Draw ★ 1.1K
Terra Draw’s TerraDrawLeafletAdapter allows users to create, select and edit a variety of geometry types (points, lines polygons etc) on a Leaflet map.
-
Leaflet.
Editable ★ 604Lightweight fully customisable and controllable drawing/editing plugin.
-
Leaflet.
FreeDraw ★ 576Zoopla inspired freehand polygon creation using Leaflet.js and D3.
-
Leaflet.
Snap ★ 197Enables snapping of draggable markers to polylines and other layers.
-
Leaflet.
StyleEditor ★ 179Enables editing the styles of features (lines, polygons, etc) and markers with a GUI.
-
Leaflet.
Path. ★ 174Transform Scale & rotate handler and interaction for polygons and polylines.
-
Leaflet.
Path. ★ 111Drag Drag handler and interaction for polygons and polylines.
-
Editable polylines: move existing points, add new points and split polylines.
-
Leaflet.
Pather ★ 69L.Pather is a freehand polyline creator that simplifies the polyline for mutability. Requires D3 support.
-
Draw polygons with a circle brush, like in Paint. Includes turf.js dependencies.
-
Leaflet.
MapPaint ★ 46Bitmap painting plugin designed for touch devices.
-
Leaflet.
Pin ★ 25Enable attaching of markers to other layers during draw or edit features with Leaflet.Draw.
-
Add/move/remove points on routes, lines and polygons by drag&drop.
-
Leaflet.
Polydraw ★ 15Draws and edits polygons, freehand or point by point, with merging of overlapping shapes, holes, vertex editing and dragging.
-
Leaflet-Craft ★ 14
Extends Leaflet.FreeDraw with undo/redo, deleting markers, area calculation of polygons, hooks and events, built-in control bars and more.
-
Leaflet.
draw. ★ 6svg Plugin to Leaflet.Draw to allow adding/moving/removing custom SVG files on a leaflet map. It allows to define a SVG as XML text, and converts it into an SVG object that can be displayed by leaflet as an editable feature.
-
PartiallyEditablePolyline v2 ★ 4
Edit only a local portion of a large polyline.
-
Leaflet.
trace ★ 4Extends Leaflet.draw to add a new set of tools which allow the user to select a L.geoJSON line to trace or snap a marker to.
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.
-
LeafletPlayback ★ 488
Play back time-stamped GPS Tracks synchronized to a clock.
-
Leaflet.
TimeDimension ★ 455Add time dimension capabilities on a Leaflet map.
-
Leaflet.
timeline ★ 420Display arbitrary GeoJSON on a map with a timeline slider and play button.
-
Leaflet.
Elevation ★ 278A Leaflet plugin to view interactive height profiles of GeoJSON lines using d3.
-
Leaflet Time-Slider ★ 223
Dynamically add and remove markers on a map with a jQuery UI slider.
-
Leaflet.
hotline ★ 204A Leaflet plugin for drawing gradients along polylines.
-
leaflet.
TrackPlayBack ★ 161A leaflet track-playback plugin, can display and dynamically play tracks.
-
Leaflet.
Heightgraph ★ 101Interactive height profiles from GeoJSON, with segments (e.g. surface type or steepness) colored by feature properties. Inspired by Leaflet.Elevation.
-
Leaflet plugin that creates a customizable timeline slider with user designed functionality.
-
Leaflet Topography ★ 43
A set of tools for calculating and visualizing topographic data (elevation, slope, aspect) at lightning speed. Based on Mapbox RGB Encoded DEM tiles.
-
leaflet-calendar ★ 7
Adds a calendar picker that calls a custom function when a date is selected.
-
Unopinionated timeline control that helps you display time series data.
-
Minimalistic time slider using leaflet + d3.js and nouislider for displaying time series data using a geoJSON file.
-
Dynamically add and remove markers on a map with a jQuery UI slider, showing the date range in local time.
-
Hillshading and slope layer from RGB-encoded DEM tiles (Mapterhorn, Terrarium, Mapbox Terrain-RGB or a custom encoding), with configurable sun position and slope colors.
Search & filter
Search for markers and features on the map, or filter them by their properties. To search for addresses and places, see geocoding.
-
Leaflet Search ★ 814
A control for searching markers and features in a LayerGroup or GeoJSON by a custom property. Supports AJAX/JSONP, autocompletion and 3rd party services.
-
leaflet-fusesearch ★ 96
A control that provides a panel to search features in a GeoJSON layer using the lightweight fuzzy search Fuse.js
-
L.
tagFilterButton ★ 58Filter markers by tags.
-
Leaflet Autocomplete For Remote Searching with GeoJSON Services.
-
A google map style search box which includes a side panel slider control.
-
A simple Leaflet plugin that provides a collapsible search box.
-
A leaflet plugin for a configurable search bar component with autocomplete on all existing pins on the map.
Hover, click & popups
Make overlays easier to hover and click, find what is under the cursor, and enhance popups and tooltips.
-
Leaflet.
utfgrid ★ 130A lightweight UTFGrid interaction handler, with mouseover support and highlighting of features on hover.
-
Leaflet.
Rrose ★ 85A Leaflet Plugin for Edge Cases. For use when you want popups on mouseover, not click, and you need popup tips to reorient as you get close to the edges of your map.
-
Leaflet.
AlmostOver ★ 76Trigger mouse events when cursor is “almost” over a layer.
-
Leaflet Underneath ★ 32
Find interesting features near a location using Mapbox Vector Tiles data, to add interactive functionality to a tile layer with speed and limited bandwidth.
-
Allows user to edit the contents of a popup, or use the popup to remove its source marker.
-
Leaflet Touch Helper ★ 23
Makes it easy to touch vector overlays with thick fingers on a small display by adding a transparent, larger touch surface
-
Leaflet.
OverIntent ★ 19Adds a
mouseintentevent which, unlikemouseover, reflects the user’s intention to aim at a particular layer. -
Allows querying which layer is under a screen coordinate.
-
This plug-in makes L.Popup movable by user drag and automatically draws leads.
-
Extends the clickable area of canvas-rendered vector layers beyond their visible shape, for features that are hard to click otherwise.
-
Makes marker tooltips draggable and pinnable: click a marker to keep its tooltip open, then drag it anywhere. Supports touch and fires drag events.
Area selection
Let users select an area on the map, or select features by drawing around them.
-
leaflet-lasso ★ 118
Lasso selection plugin.
-
Leaflet GeoJSON Selector ★ 113
Leaflet Control for selection from GeoJSON feature in an interactive list and map.
-
Leaflet.
AreaSelect ★ 112A fixed positioned, resizable rectangle for selecting an area on the map.
-
Fast LineString(polyline) partial selection tool: select a stretch between two points in a complex path.
-
Select a polygonal area on the map.
-
Selecting feature layers on a map by drawing an area.
-
Leaflet-Select-Polygons allows the selection of several polygons and also adjusts the base map view.
-
Leaflet-Shades ★ 16
A draggable and resizable rectangle for selecting an area on a map and creating a gray overlay in unselected areas.
Map interaction
New ways to interact with the map itself.
Layer switching & legends
The following plugins enhance or extend LayersControl, or add legends for the layers on the map.
-
Leaflet Panel Layers ★ 297
Leaflet Control Layers extended for group of layers and icons legend
-
Leaflet layer control with support for grouping overlays together.
-
L.Control.Layers extension that supports a Tree structure, both for base and overlay layers. Simple and highly configurable.
-
A Leaflet plugin that implements the management and control of layers by organization into categories or groups.
-
Leaflet.
Basemaps ★ 74A basemap chooser with a preview image from the tile stack.
-
Leaflet.
TileLegend ★ 73Create illustrated and interactive legends for your background layers.
-
Leaflet-IconLayers ★ 66
Leaflet control that displays base layers as small icons.
-
Leaflet.
HtmlLegend ★ 60A simple Leaflet plugin for creating legends using HTML elements.
-
Leaflet.
Legend ★ 58Display legend symbols and toggle overlays.
-
Leaflet.
ActiveLayers ★ 42Adds new L.Control.ActiveLayers with functionality to get currently active layers on the map.
-
Leaflet.
SelectLayers ★ 41A layer control that replaces the radio buttons of L.Control.Layers with a select element.
-
Leaflet control allows to switch layers on and off, display them in a tree-like way.
-
Leaflet.
AutoLayers ★ 32Automatically pull layers from multiple mapservers and organize/search them with user controlled overlay zIndex management.
-
L.
switchBasemap ★ 27An easy leaflet plugin to switch basemap.
-
leaflet-multicontrol ★ 24
Layers control with opacity, color, bring to front/back, zoom to layer, delete and legend.
-
Allows to navigate between GeoJSON layers, select some, and return selection.
-
A leaflet plugin to group multiple types of layers in a tree structure.
-
L.
basemapControl ★ 2Leaflet plugin that creates a synchronized minimap preview to switch between multiple basemap layers. With a click on the minimap the next basemap layer in the sequence is applied.
-
Plugin for the Leaflet maps that allows grouping places in groups whose visibility can be toggled.
Navigation
Change the way the user moves around the map: zoom and pan controls, map rotation, saved and shared views, fullscreen, and control over scroll and touch gestures.
-
Leaflet.
fullscreen ★ 451A fullscreen button control using the Fullscreen API.
-
leaflet.
fullscreen ★ 423Another fullscreen button control but for modern browsers, using HTML Fullscreen API.
-
leaflet-hash ★ 301
Plugin for persisting map state and browsing history through the URL hash.
-
Leaflet.
GestureHandling ★ 296Brings the basic functionality of Google Maps Gesture Handling into Leaflet. Prevents users from getting trapped on the map when scrolling a long page.
-
Leaflet-active-area ★ 121
Lets you use a smaller part of the map as its active area: all positioning methods (
setView,fitBounds,setZoom) apply to that part instead of the whole map. -
leaflet-rotate ★ 108
Adds rotation functionality to leaflet map panes
-
Leaflet.
zoomslider ★ 103A zoom slider control.
-
L.
Sleep ★ 91Avoid unwanted scroll capturing.
-
Leaflet.
Bookmarks ★ 59Control for adding and navigating between user-created bookmarks on the map.
-
Leaflet.
RestoreView ★ 50Stores and restores map view using localStorage.
-
Leaflet.
zoomhome ★ 49Zoom control with a home button for resetting the view.
-
Leaflet.
Pancontrol ★ 48A simple panning control.
-
Leaflet-History ★ 42
Track history of map movements and zoom locations similar to a browser.
-
Leaflet.
BoxZoom ★ 27A visible, clickable control to perform a box zoom.
-
Leaflet.
ZoomBox ★ 23A lightweight zoom box control: draw a box around the area you want to zoom to.
-
Control to resize your map on the right or bottom side.
-
A reset view control, designed for the Drupal Leaflet module.
-
Plugin for one finger zoom.
-
Leaflet.
ZoomEx ★ 2A Leaflet plugin that displays a zoom control on the map, with a customizable appearance and position using CSS.
-
Leaflet.
SyncView ★ 1A sync view control, designed for the Drupal Leaflet module.
-
Makes map panning work when a parent of the map container stops the propagation of
mousemoveevents. -
Leaflet.
Freezy ★ 0Avoid unwanted scroll capture using hover-to-activate or click-to-activate.
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.
-
Leaflet.
MiniMap ★ 390A small minimap showing the map at a different scale to aid navigation.
-
Leaflet.
Sync ★ 246Synchronized view of two maps.
-
Leaflet.
GlobeMiniMap ★ 123Simple minimap control that places a 3D Globe in the corner of your map, centered on the same location as the main map.
-
Leaflet.
MagnifyingGlass ★ 105Allows 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.
-
Extends the default Leaflet layers control with synced minimaps.
-
leaflet-clonelayer ★ 24
Clone Leaflet layers to allow reuse across different maps in the same runtime.
-
A small minimap showing the map-view on a world-mini-map to aid navigation.
Location & coordinates
Show the user’s location, display the coordinates under the cursor, or let the user pick a location.
-
Leaflet.
Locate ★ 876A customizable locate control.
-
Leaflet.
Coordinates ★ 107A simple Leaflet plugin viewing the mouse LatLng-coordinates. Also views a marker with coordinate popup on userinput.
-
Leaflet.
MousePosition ★ 101A simple MousePosition control that displays geographic coordinates of the mouse pointer, as it is moved about the map
-
A leaflet control plugin to build a simple rotating compass
-
location-picker v2 ★ 82
A form field for picking a location by panning the map under a fixed pin. Comes as a
<location-picker>web component and a JavaScript class, with address search and a locate button. -
Simple location picker with mini Leaflet map.
-
A Leaflet-based interface for selecting a “blurred” or low-resolution location, to preserve privacy.
-
Leaflet.
SimpleLocate ★ 14A Leaflet plugin displaying device location and orientation on the map, with orientation adjusted according to screen rotation.
-
Leaflet.
mytrack ★ 13Track my way on a map and download it.
-
Cleverly displays “blurred” locations using color-coded heatmap and color-coded markers while fetching data from remote API.
-
Geolet ★ 10
A simple but highly customizable geolocation plugin for Leaflet
-
Displays the mouse coordinate in a box. Multiple formats are possible: GPS, UTM, UTMREF / MGRS, QTH
-
Shows coordinates on mouse move and displays it based on given projection.
-
Leaflet.
Mapcodes ★ 4Displays the Mapcode of the mouse pointer on mouse move.
-
Leaflet.
Boating v2 ★ 2Leaflet plugin to geolocate the user and display heading, speed and location like a simple navigation app.
-
Leaflet.
MousePosition. v2 ★ 2ts A fully customizable coordinate viewer written in TypeScript, with its look defined by a custom JSX component.
Measurement
Allow the user to measure distances or areas, or show a scale.
-
leaflet-measure ★ 389
Coordinate, linear, and area measure control for Leaflet maps
-
Leaflet.
PolylineMeasure ★ 221Measure great-circle distances of simple lines as well as of complex polylines.
-
leaflet-ruler ★ 140
A simple leaflet plugin to measure true bearing and distance between clicked points.
-
Leaflet Measure Path ★ 104
Show measurements on paths; polylines, polygons and circles currently supported.
-
A simple tool to measure distances on maps (relies on Leaflet.Draw).
-
Leaflet-BetterScale ★ 29
A new, more GIS-like scalebar with alternating black/white bars.
-
Calculates the area and perimeter of a polygon while you draw it.
-
Configurable and animated graphic scale control.
-
Display a Nauticscale on Leaflet maps
-
A highly interactive, draggable measurement and drawing control for Leaflet.js that provides a fully movable widget to prevent UI corner stacking.
-
Leaflet plugin for displaying Topographical Scale.
Buttons & menus
Buttons, toolbars, context menus, sliders and other custom controls.
-
L.
EasyButton ★ 539In one line, add a Font Awesome control button with attached click events.
-
Leaflet.
contextmenu ★ 372A context menu for Leaflet.
-
Leaflet.
toolbar ★ 198Flexible, extensible toolbars for Leaflet maps.
-
Fully customizable Leaflet control panel with HTML element.
-
Control with menu of all countries, and an event listener that returns the selected country as a GeoJSON feature.
-
Leaflet.
EditInOSM ★ 37Add a control with links to open the current map view on main OSM editors.
-
Leaflet.
Slider ★ 36Adds a
<input type="range">slider that calls a function every time its input is changed. -
L.
Credits ★ 28A simple, attractive, interactive control to put your logo and link in the corner of your map.
-
Customisable menu-style control.
-
L.
cascadeButtons ★ 8A leaflet plugin to create cascade buttons.
-
A Leaflet plugin to show bootstrap dropdowns.
-
leaflet-burgermenu v2 ★ 1
A lightweight Leaflet plugin that adds a burger menu with nested submenus to the map interface. Hovering over menu items reveals submenus, and clicking items can trigger custom actions.
Sidebars & panels
Sidebars, windows, messages and loading indicators.
-
sidebar-v2 ★ 861
Another responsive sidebar plugin. This time with tabs!
-
leaflet-sidebar ★ 499
A responsive sidebar plugin.
-
Leaflet.
loading ★ 149A simple control that adds a loading indicator as tiles and other data are loaded.
-
leaflet-sidebar-v2 ★ 133
A responsive, tabbed sidebar with HTML & JS API.
-
Leaflet.
Spin ★ 132Shows a nice spinner on the map using Spin.js, for asynchronous data load, like with Leaflet Ajax.
-
Creates modal/modeless, draggable, responsive, customisable window in your map.
-
Leaflet.
SlideMenu ★ 60A simple slide menu for Leaflet.
-
Leaflet.
Messagebox ★ 31Display a temporary text message on a map.
-
A sidepanel with tabs.
-
Spawn toast notifications inside your map
-
leaflet.
superbar ★ 0A customizable sidebar for importing and managing vector layers on a map.
Print & export
Print or export your map.
-
Leaflet-image ★ 380
Export images out of Leaflet maps without a server component, by using Canvas and CORS.
-
Leaflet-easyPrint ★ 255
A simple plugin which adds an icon to print your Leaflet map.
-
leaflet.
browser. ★ 161print Allows users to print full page map directly from the browser.
-
Leaflet.
print ★ 113Implements the Mapfish print protocol allowing a Leaflet map to be printed using either the Mapfish or GeoServer print module.
-
Leaflet.
BigImage ★ 93Allows users to download an image with a scaled-up version of the visible map.
-
leaflet-route-print ★ 10
Automatic PDF printing of routes (i.e. polylines) with custom scale, paper size and margin by covering the route with a sequence of identical rectangles.
Analysis & services
Geoprocessing & projections
Geometry operations, spatial indexes and antimeridian handling, plus support for other projections and coordinate systems.
-
Proj4Leaflet ★ 612
Proj4js integration plugin, allowing you to use all kinds of weird projections in Leaflet.
-
arc.
js ★ 385A JS library for drawing great circle routes that can be used with Leaflet.
-
Leaflet.
GeometryUtil ★ 259A collection of utilities for Leaflet geometries (linear referencing, etc.)
-
Greiner-Hormann ★ 250
Greiner-Hormann algorithm for polygon clipping and binary operations, adapted for use with Leaflet.
-
Leaflet-pip ★ 203
Simple point in polygon calculation using point-in-polygon.
-
Leaflet.
LayerIndex ★ 68An efficient spatial index for features and layers, using RTree.js.
-
Leaflet.
UTM ★ 63A simple way to convert L.LatLng into UTM (WGS84) and vice versa. UTM string format easily configurable. It does not depend on any other plugin or 3rd party.
-
Leaflet plugin for visualizing spatial prefix trees, quadtree and geohash.
-
Leaflet.
buffer ★ 52Enables buffering of shapes drawn with Leaflet.draw.
-
Leaflet.
Quadtree ★ 28Leaflet.Quadtree is used to retrieve visible data inside given bounds
-
Leaflet.
Antimeridian ★ 25A plugin to allow polygons and polylines to naturally draw across the Antimeridian (or the International Date Line) instead of always wrapping across the Greenwich meridian.
-
Wraps vector layers (polylines, polygons, circles, markers, GeoJSON) across the antimeridian without splitting them, copying them into every visible world copy.
Routing
The following plugins use external services to calculate driving or walking routes.
-
Leaflet Routing Machine ★ 1.2K
Control for route search with via points, displaying itinerary and alternative routes. Uses OSRM by default, but also supports GraphHopper, Mapbox Directions API and more.
-
Leaflet.
Reachability ★ 69Show areas of reachability based on time or distance for different modes of travel using the openrouteservice isochrones API.
-
Leaflet RouteBoxer ★ 46
A Leaflet port of Google’s RouteBoxer: generates a set of bounds that covers every point within a given distance of a path.
-
Targomo JS ★ 29
Shows the areas reachable from a set of starting points within a given time, with routing details for walking, cycling, driving and public transport.
-
leaflet.
TravelNotes ★ 19Standalone app with editable markers and routing for car, bike or walking, with routing engines for Mapbox, GraphHopper and OSRM.
Geocoding
External services that transform an address or the name of a place into latitude and longitude (or vice versa).
-
Leaflet GeoSearch ★ 1.1K
Small geocoding plugin that brings address search to Leaflet, with support for Google, OpenStreetMap Nominatim, Bing, Esri and more. Easily extensible.
-
Leaflet Control Geocoder ★ 617
A clean and extensible control for both geocoding and reverse geocoding. Built-in support for Nominatim, Bing, MapQuest, Mapbox, What3Words, Google and Photon. Easy to extend to other providers.
-
Esri Leaflet Geocoder ★ 253
A geocoding control with suggestions powered by the ArcGIS Online geocoder.
-
Pelias Leaflet Plugin ★ 193
A geocoding control using Geocode Earth or any hosted service powered by the Pelias Geocoder API.
-
Geocoding from MapTiler v2 ★ 85
Geocoding and reverse geocoding with the MapTiler Geocoding API, from states and cities down to addresses and POIs. Supports many languages, per-country limits, fuzzy matching and autocomplete.
-
Leaflet.
Autocomplete ★ 67An accessible autocomplete for geocoding and showing results on the map, with full ARIA and keyboard support. The demo uses OpenStreetMap Nominatim.
-
A simple geocoder that uses OpenstreetMap Nominatim to locate places by address.
-
Add google places search into map
-
A plugin that adds the ability to search (geocode) a Leaflet-powered map using LocationIQ.
-
Leaflet.
Geonames ★ 34A lightweight geocoding control powered by GeoNames.
-
Forward and reverse geocoding with OpenCage’s geocoding API.
-
L.
Highlight ★ 20A plugin that adds the ability to quick highlighting streets and areas using Nominatim.
-
Leaflet-search ★ 19
A Search Control with autocomplete/suggest capabilities. Supports Nominatim, GeoNames, Here, TomTom, and Kadaster (Netherlands).
-
A plugin that uses OpenCage’s geosearch for location autosuggest.
-
Adds an Address Autocomplete field to the map, powered by Geoapify.
-
Autocomplete search for all U.S. cities, based on U.S. Census Gazetteer data, with fly-to, a marker and a popup with city details.
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: copy template.md into the category folder in /docs/_plugins/ that fits your plugin, fill it in, and send a pull request to our GitHub repository. If your plugin works with Leaflet 2, set compatible-v2: true to have it listed in the Ready for Leaflet 2 section too.
