57 KiB
57 KiB
layout | title |
---|---|
default | Plugins |
Notable 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 lots of nice plugins to choose from.
Layers and Overlays
Plugin | Description | Maintainer |
---|---|---|
Leaflet.FreeDraw | Zoopla inspired freehand polygon creation using Leaflet.js and D3. | Wildhoney |
Leaflet.ellipse | Leaflet.ellipse place ellipses on map by specifying center point, semi-major axis, semi-minor axis, and tilt degrees from west. | JD Fergason |
Leaflet.plotter | leaflet-plotter allows you to create routes using a leaflet powered map. You can click on the mid-points to create a new, draggable point. | Nathan Mahdavi |
Leaflet.markercluster | Beautiful, sophisticated, high performance marker clustering solution with smooth animations and lots of great features. Recommended! | Dave Leaver |
Leaflet.label | Adds text labels to map markers and vector layers. | Jacob Toye |
RaphaelLayer | Allows you to use Raphael as a layer on a Leaflet map for advanced animations and visualizations. | Dynamic Methods |
Overlapping Marker Spiderfier | Deals with overlapping markers in a Google Earth-inspired way by gracefully springing them apart on click. | George MacKerron |
TileLayer.BoundaryCanvas | Allows you to draw tile layers with arbitrary polygonal boundary. HTML5 Canvas is used for rendering. | Alexander Parshin |
MaskCanvas | Canvas layer that can be used to visualize coverage. | Dominik Moritz |
HeatCanvas | Simple heatmap api based on HTML5 canvas. | Sun Ning |
heatmap.js |
JavaScript Library for HTML5 canvas based heatmaps.
|
Services, Providers and Formats
Plugin | Description | Maintainer |
---|---|---|
Spectrum4Leaflet | Tools for using Spectrum Spatial Server services with leaflet. This plugin supports: map service, tile service, feature service. It has layers, legend and feature controls. | SVoyt, ESTI MAP |
Proj4Leaflet | Proj4js integration plugin, allowing you to use all kinds of weird projections in Leaflet. | Kartena |
Plugins by Pavel Shramov | A set of plugins for: GPX, KML layers; Bing tile layer; Google and Yandex layers (implemented with their APIs), permalink and distance measurement controls. | Pavel Shramov, Bruno B |
cartodb-leaflet | Official CartoDB plugin for Leaflet. | Vizzuality |
Leaflet Vector Layers | Allows to easily create vector layers from a number of geo web services, such as ArcGIS Server, Arc2Earth, GeoIQ, CartoDB and GIS Cloud. | Jason Sanford |
leaflet-tilejson | Adds support for the TileJSON specification to Leaflet. | Per Liedman, Kartena |
leaflet-providers | Contains configurations for various free tile providers — OSM, OpenCycleMap, MapQuest, Stamen, Esri, etc. | leaflet-extras members |
azgs-leaflet | A set of small plugins for Leaflet, including WFS-GeoJSON layer with filtering, a hover control for GeoJSON, and an Esri tile layer. | AZGS |
Leaflet.encoded | Use encoded polylines in Leaflet. | Jieter |
Leaflet.Pouch | Use PouchDB to sync CouchDB data to local storage (indexedDB), to just add couchDB data or as just a less confusing implementation of indexedDB. | Calvin Metcalf |
Leaflet Ajax | Add GeoJSON data via ajax or jsonp. | Calvin Metcalf |
Leaflet GPX | GPX layer, targeted at sporting activities by providing access to information such as distance, moving time, pace, elevation, heart rate, etc. | Maxime Petazzoni |
Wicket | A modest library for translating between Well-Known Text (WKT) and Leaflet geometry objects (e.g. between L.marker() instances and "POINT()" strings). | K. Arthur Endsley |
Leaflet.dbpediaLayer | A layer with Points of interest from Wikipedia - loaded via ajax from DBpedia's SPARQL endpoint. | Kr1 |
Leaflet-2gis | Adds support for 2GIS tile layer | Eugene Mikhalev |
Leaflet.KoreanTmsProviders | Contains configurations for various (South) Korean tile providers — Daum, Naver, VWorld, etc. | Seong Choi |
Leaflet.ChineseTmsProviders | Contains configurations for various Chinese tile providers — TianDiTu, MapABC, GaoDe, etc. | Tao Huang |
Esri Leaflet | A set of tools for using ArcGIS services with Leaflet. Support for map services, feature layers, ArcGIS Online tiles and more. | Patrick Arlt |
Leaflet.geojsonCSS | Geojson CSS implementation for Leaflet. | Alexander Burtsev |
leaflet.wms | Enhanced WMS support for Leaflet, including single-tile/untiled layers, shared WMS sources, and layer identify via GetFeatureInfo. |
S. Andrew Sheppard (HEI Geo) |
Leaflet.bpg | TileLayer with .bpg image format decoding. | Andrzej Zaborowski |
Geocoding (Address Lookup)
Plugin | Description | Maintainer |
---|---|---|
Leaflet GeoSearch |
Small geocoding plugin that brings address searching/lookup (aka geosearching) to Leaflet. Comes with support for Google, OpenStreetMap Nominatim, Bing, Esri and Nokia. Easily extensible. | Stephan Meijer |
Leaflet Control OSM Geocoder | A simple geocoder that uses OpenstreetMap Nominatim to locate places by address. | Karsten Hinz |
Leaflet Control Bing Geocoder | A simple geocoder control that uses Bing to locate places. | Samuel Piquet |
Leaflet Control Geocoder | A clean and extensible control that uses Nominatim (OSM) or Bing to locate places. Easy to adapt for other providers. | Per Liedman |
Leaflet GeoIP Locator | A simple plugin that allows finding the approximate location of IP addresses and map centering on said location. | Jakub Dostal |
Esri Leaflet Geocoder | A geocoding control with suggestions powered by the ArcGIS Online geocoder. | Patrick Arlt |
Leaflet.OpenCage.Search | A search plugin plugin that uses OpenCage Data's geocoding API. | The OpenCage team |
Leaflet.Geonames | A lightweight geocoding control powered by GeoNames. Demo | Brendan Ward |
Routing and route search
Plugin | Description | Maintainer |
---|---|---|
Leaflet Routing Machine | Control for route search between waypoints, displaying itinerary and alternative routes. Currently uses OSRM to search routes. | Per Liedman |
Leaflet.Routing | Leaflet controller and interface for routing paths between waypoints using any user provided routing service. | Norwegian Trekking Association |
Route360° | Route360° visualizes the area which is reachable from a set of starting points in a given time and gives detailed routing information (walk, bike, car and public transportation) to targets. | Motion Intelligence GmbH |
Controls and Interaction
Plugin | Description | Maintainer |
---|---|---|
Leaflet.AreaSelect | A fixed positioned, resizable rectangle for selecting an area on the map. | Jonatan Heyman |
Leaflet.draw | Enables drawing features like polylines, polygons, rectangles, circles and markers through a very nice user-friendly interface with icons and hints. Recommended! | Jacob Toye |
L.Sleep | Avoid unwanted scroll capturing. Demo | atstp |
Leaflet.utfgrid | Provides a utfgrid interaction handler for leaflet a very small footprint. | Dave Leaver |
L.EasyButton | In one line, add a Font Awesome control button with attached click events. Demo | atstp |
Leaflet.EditableHandlers | A set of plugins that includes circle editing, measuring tool, and label for polygon sides. | Kartena |
L.LocationShare | Allow users to send and receive a marker with a message. Demo | atstp |
Leaflet.Pancontrol | A simple panning control. | Kartena |
Leaflet.BoxZoom | A visible, clickable control to perform a box zoom. | Greg Allensworth |
Leaflet.zoomslider | A zoom slider control. | Kartena |
Leaflet.Locate | A customizable locate control. | Dominik Moritz |
Leaflet.fullscreen | A fullscreen button control by mapbox | mapbox |
leaflet.zoomfs | A fullscreen button control. | Eli Dupuis |
leaflet.fullscreen | Another fullscreen button control but for modern browsers, using HTML5 Fullscreen API. | Bruno B |
leaflet-search | A control for search Markers/Features location by custom property in LayerGroup/GeoJSON. Support AJAX/JSONP, Autocompletion and 3rd party service | Stefano Cudini |
leaflet-fusesearch | A control that provides a panel to search features in a GeoJSON layer using the lightweight fuzzy search Fuse.js | Antoine Riche |
leaflet-locationfilter | A draggable/resizable rectangle for selecting an area on the map. | Robert Kajic |
Leaflet.MiniMap | A small minimap showing the map at a different scale to aid navigation. | Robert Nordan |
Leaflet.Rrose | A 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. | Eric Theise |
Leaflet.EditInOSM | Add a control with links to open the current map view on main OSM editors. | Yohan Boniface |
Leaflet.Spin | Shows a nice spinner on the map using Spin.js, for asynchronous data load, like with Leaflet Ajax. | Mathieu Leplatre |
Leaflet.RestoreView | Stores and restores map view using localStorage. | Mathieu Leplatre |
Leaflet.FileLayer | Loads files (GeoJSON, GPX, KML) into the map using the HTML5 FileReader API (i.e. locally without server). | Mathieu Leplatre |
Leaflet.Snap | Enables snapping of draggable markers to polylines and other layers. | Mathieu Leplatre |
Leaflet Time-Slider | The Leaflet Time-Slider enables you to dynamically add and remove Markers on a map by using a JQuery UI slider | Dennis Wilhelm |
Leaflet.RevealOSM | Very simple but extendable Leaflet plugin to display OSM POIs data on map click. | Yohan Boniface |
Leaflet.MousePosition | A simple MousePosition control that displays geographic coordinates of the mouse pointer, as it is moved about the map | Ardhi Lukianto |
Leaflet.SelectLayers | a Leaflet plugin which adds new control to switch between different layers on the map. New control replaces L.Control.Layers radio button panel with select tag. | vogdb |
Leaflet.StyledLayerControl | A Leaflet plugin that implements the management and control of layers by organization into categories or groups. | Davi Custodio |
Leaflet.Coordinates | A simple Leaflet plugin viewing the mouse LatLng-coordinates. Also views a marker with coordinate popup on userinput. | Felix Bache |
Leaflet.Elevation | A Leaflet plugin to view interactive height profiles of GeoJSON lines using d3. | Felix Bache |
Leaflet.Sync | Synchronized view of two maps. | Bjørn Sandvik |
Leaflet.GroupedLayerControl | Leaflet layer control with support for grouping overlays together. | Ishmael Smyrnow |
Leaflet.BorderPan | A Leaflet plugin to pan by clicking on map borders. | Sebastián Lara |
Leaflet.TileLegend | Create illustrated and interactive legends for your background layers. | Yohan Boniface |
LeafletPlayback | Play back time-stamped GPS Tracks synchronized to a clock. | Nicholas Hallahan |
Leaflet.loading | A simple control that adds a loading indicator as tiles and other data are loaded. | Eric Brelsford |
Leaflet.viewcenter | A simple control that adds a button to change view and zoom to predefinied values in options. | Dariusz Pawlak |
Leaflet.contextmenu | A context menu for Leaflet. | Adam Ratcliffe |
Leaflet.MeasureControl | A simple tool to measure distances on maps (*relies on Leaflet.Draw*). | Makina Corpus |
Leaflet.OverIntent | Adds a new event ``mouseintent``, that differs from ``mouseover`` since it reflects user intentions to aim a particular layer. | Mathieu Leplatre |
Leaflet.AlmostOver | Trigger mouse events when cursor is "almost" over a layer. | Mathieu Leplatre |
Leaflet Control Order Layers | Adds the ability to change overlay order in the layers control. | Michael Salgado |
Leaflet.layerscontrol-minimap | Extends the default Leaflet layers control with synced minimaps. | Jieter |
leaflet-sidebar | A responsive sidebar plugin. | Tobias Bieniek |
sidebar-v2 | Another responsive sidebar plugin. This time with tabs! | Tobias Bieniek |
leaflet-zoom-min | Adds a button to the zoom control that allows you to zoom to the map minimum zoom level in a single click. | Alan Shaw |
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.OpacityControls | Simple Leaflet controls to adjust the opacity of a map layer. | Jared Dominguez |
Leaflet.StyleEditor | Enables editing the styles of features (lines, polygons, etc) and markers with a GUI. | Dennis Wilhelm |
Leaflet.UniformControl | Leaflet layer control with stylable checkboxes and radio buttons. | Chris Calip |
Leaflet.SimpleMarkers | A light-weight Leaflet plugin for adding and deleting markers. | Jared Dominguez |
Leaflet Panel Layers | Leaflet Control Layers extended for group of layers and icons legend | Stefano Cudini |
Leaflet Categorized Layers | Leaflet Control Layers extended for groups of categorized layers | Robbie Trencheny |
Leaflet Navigation Toolbar | Leaflet control for simple back, forward and home navigation. | David C |
Leaflet LimitZoom | Plugins to limit available zoom levels to a given list, either by restricting zooming or by interpolating tiles. | Ilya Zverev |
Leaflet Coordinates Control | Captures mouseclick and displays its coordinates with easy way to copy them. | Michal Zimmermann |
Leaflet GameController | Interaction handler providing support for gamepads. | Antoine Pultier |
Leaflet.MeasureAreaControl | Control for measuring element's area. | Ondrej Zvara |
Leaflet.twofingerZoom | Interaction handler for touch devices enabling zooming out with a two finger tap. | Adam Ratcliffe |
Leaflet Control Compass | A leaflet control plugin to build a simple rotating compass | Stefano Cudini |
Leaflet.Editable | Lightweight fully customisable and controlable drawing/editing plugin. | Yohan Boniface |
Leaflet.AccuratePosition | Leaflet.AccuratePosition aims to provide a desired device location accuracy. | Michael Schmidt-Voigt |
Leaflet Locationlist | A control to jump between predefined locations and zooms. | Ivan Ignatyev |
Leaflet.defaultextent | A control that returns to the original start extent of the map. Similar to the HomeButton widget. | Alex Nguyen |
Leaflet.buffer | Enables buffering of shapes drawn with Leaflet.draw. | Jonathan Skeate |
Leaflet.Bookmarks | Control for adding and navigating between user-created bookmarks on the map. | Alexander Milevski |
Leaflet.MapPaint | Bitmap painting plugin designed for touch devices. | Antoine Pultier |
Leaflet.ShowAll | A control that can show a predefined extent while saving the current one so it can be jumped back to. | Mor Yariv |
Leaflet.timeline | Display arbitrary GeoJSON on a map with a timeline slider and play button. | Jonathan Skeate |
Leaflet.ZoomBox | A lightweight zoom box control: draw a box around the area you want to zoom to. Demo | Brendan Ward |
L.Control.LineStringSelect | Fast LineString(polyline) partial selection tool: select a stretch between two points in a complex path. Demo | Alexander Milevski |
Leaflet.TimeDimension | Add time dimension capabilities on a Leaflet map. Demos | ICTS SOCIB |
Leaflet.Liveupdate | Periodically ('live') update something on a map (Demo) | Martijn Grendelman |
Leaflet.Messagebox | Display a temporary text message on a map (Demo) | Martijn Grendelman |
Leaflet.Path.Drag | Drag handler and interaction for polygons and polylines (Demo) | Alexander Milevski |
Leaflet.NACCoordinates | Displays NAC coordinate of the mouse pointer on mouse move (Demo) | Mahmood Dehghan |
Leaflet.zoomhome | Zoom control with a home button for resetting the view (Demo) | Florian Brucker |
leaflet-measure | Coordinate, linear, and area measure control for Leaflet maps | LJA GIS |
Leaflet-History | Track history of map movements and zoom locations similar to a browser. | Chris Scott |
Leaflet GeoJSON List | Leaflet Control for listing GeoJSON properties in a interactive menu(Demo). | Stefano Cudini |
Other Plugins and Libraries
Plugin | Description | Maintainer |
---|---|---|
OSM Buildings | Amazing JS library for visualizing 3D OSM building geometry on top of Leaflet. | Jan Marsch |
Maps Marker Pro | A WordPress plugin that enables users to pin, organize and share their favorite places and tracks through their WordPress powered site. | Robert Harm |
leaflet-hash | Plugin for persisting map state and browsing history through the URL hash. | Michael Lawrence Evans |
arc.js | A JS library for drawing great circle routes that can be used with Leaflet. | Dane Springmeyer |
Leaflet.Storage | Create/update/delete Map, Marker, Polygon, Polyline... and expose them for backend storage with an API. | Yohan Boniface |
Leaflet.CSS | Add the main Leaflet CSS files (or any css) from within JavaScript, be gone conditional comments. | Calvin Metcalf |
Leaflet.LayerIndex | An efficient spatial index for features and layers, using RTree.js. | Mathieu Leplatre |
Leaflet-pip | Simple point in polygon calculation using point-in-polygon. | Tom MacWright |
Leaflet.GeometryUtil | A collection of utilities for Leaflet geometries (linear referencing, etc.) | Benjamin Becquet, Mathieu Leplatre |
Leaflet.i18n | Internationalization for Leaflet plugins. | Yohan Boniface |
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-easyPrint | A simple leaflet plugin which adds an icon to print the map. The resulting print page will strip ot the other content on the page and only print the leaflet map div. | Rowan Winsemius |
Leaflet-active-area | This plugin allows you to use a smaller portion of the map as an active area. All positionning methods (setView, fitBounds, setZoom) will be applied on this portion instead of the all map. | Mappy |
WordPress Leaflet Map | Interactive and flexible shortcode to create multiple maps in posts and pages, and to add multiple markers on those maps. | Benjamin J DeLong |
MapBBCode-related leaflet plugins | Seven plugins for various features, independent of the MapBBCode library. From circular and popup icons to buttons, layer switcher, better search and attribution. | Ilya Zverev |
Leaflet Yeoman Generator | Yeoman generator that scaffolds out a basic Leaflet map application. | Moritz Klack |
L.Credits | A simple, attractive, interactive control to put your logo and link in the corner of your map. | Greg Allensworth |
Leaflet LayerConfig | Provide a json file or service response with a configuration of layers and markers to automatically set up a Leaflet client. | Alexander Nossum |
Leaflet ZoomLevel CSS Class | Add zoom level css class to map element for easy style updates based on zoom levels | Dag Jomar Mersland |
Greiner-Hormann | Greiner-Hormann algorithm for polygon clipping and binary operations, adapted for use with Leaflet. | Alexander Milevski |
Maptiks | Analytics platform for web maps. Track map activities, layer load times, marker clicks, and more! | Sparkgeo |
To submit your own Leaflet plugin to this list, just send a pull request with the addition to Leaflet repo's gh-pages branch (plugins.md
file).