Leaflet/plugins.md
2013-06-26 14:30:50 -04:00

22 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.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.
		Its Leaflet layer implementation supports large datasets because it is tile based and uses a quadtree index to store the data.
	</td><td>
		<a href="https://github.com/pa7">Patrick Wied</a>
	</td>
</tr>
<tr>
	<td>
		<a href="http://moonlite.github.com/Leaflet.MultiTileLayer/">Leaflet.MultiTileLayer</a>
	</td><td>
		Allows to compose a TileLayer from several tile sources. Each source is active only on a defined set of zoomlevels.
	</td><td>
		<a href="https://github.com/moonlite">Mattias Bengtsson</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/openplans/Leaflet.AnimatedMarker">Leaflet.AnimatedMarker</a>
	</td><td>
		Animate a marker along a polyline.
	</td><td>
		<a href="https://github.com/atogle">Aaron Ogle</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/jieter/Leaflet-semicircle">Leaflet-semicircle</a>
	</td><td>
		Adds functionality to <code>L.Circle</code> to draw semicircles.
	</td><td>
		<a href="https://github.com/jieter">Jieter</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/ismyrnow/Leaflet.functionaltilelayer">Leaflet.FunctionalTileLayer</a>
	</td><td>
		Allows you to define tile layer URLs using a function, with support for jQuery deferreds.
	</td><td>
		<a href="https://github.com/ismyrnow">Ishmael Smyrnow</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/joker-x/Leaflet.geoCSV">Leaflet.geoCSV</a>
	</td><td>
		Leaflet plugin for loading a CSV file as geoJSON layer.
	</td><td>
		<a href="https://github.com/joker-x">Iván Eixarch</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/bbecquet/Leaflet.PolylineDecorator">Leaflet.PolylineDecorator</a>
	</td><td>
		Allows you to draw patterns (like dashes, arrows or evenly spaced Markers) along Polylines or coordinate paths.
	</td><td>
		<a href="https://github.com/bbecquet">Benjamin Becquet</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/leaflet-extras/leaflet.sprite">Leaflet.Sprite</a>
	</td><td>
		Use sprite based icons in your markers.
	</td><td>
		<a href="https://github.com/calvinmetcalf">Calvin Metcalf</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/maximeh/leaflet.bouncemarker">Leaflet.BounceMarker</a>
	</td><td>
		Make a marker bounce when you add it to a map.
	</td><td>
		<a href="https://github.com/maximeh">Maxime Hadjinlian</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/makinacorpus/Leaflet.TextPath">Leaflet.TextPath</a>
	</td><td>
		Allows you to draw text along Polylines.
	</td><td>
		<a href="https://github.com/leplatrem">Mathieu Leplatre</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/lvoogdt/Leaflet.awesome-markers">Leaflet.Awesome-Markers</a>
	</td><td>
		Colorful, iconic & retina-proof markers based on the Font Awesome icons/Twitter Bootstrap icons
	</td><td>
		<a href="http://www.lennardvoogdt.nl">Lennard Voogdt</a>
	</td>
</tr>
<tr>
	<td>
		<a href="http://humangeo.github.com/leaflet-dvf/">Leaflet Data Visualization Framework</a>
	</td><td>
		New markers, layers, and utility classes for easy thematic mapping and data visualization.
	</td><td>
		<a href="https://github.com/sfairgrieve">Scott Fairgrieve</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/Zverik/leaflet-grayscale/">TileLayer.Grayscale</a>
	</td><td>
		A regular TileLayer with grayscale makeover.
	</td><td>
		<a href="https://github.com/Zverik">Ilya Zverev</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/glenrobertson/leaflet-tilelayer-geojson/">TileLayer.GeoJSON</a>
	</td><td>
		A TileLayer for GeoJSON tiles (requires JQuery).
	</td><td>
		<a href="https://github.com/glenrobertson">Glen Robertson</a>
	</td>
</tr>
<tr>
	<td>
		<a href="https://github.com/turban/Leaflet.Zoomify">TileLayer.Zoomify</a>
	</td><td>
		A TileLayer for Zoomify images.
	</td><td>
		<a href="https://github.com/turban">Bjørn Sandvik</a>
	</td>
</tr>		

Services, Providers and Formats

Plugin Description Maintainer
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 alternative Scale controls. Pavel Shramov
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, Mapbox Streets, Stamen, Esri, etc. Stefan Seelmann
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

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. Eeasily 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

Controls and Interaction

Plugin Description Maintainer
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
Leaflet.utfgrid Provides a utfgrid interaction handler for leaflet a very small footprint. Dave Leaver
Leaflet.EditableHandlers A set of plugins that includes circle editing, measuring tool, and label for polygon sides. Kartena
Leaflet.Pancontrol A simple panning control. Kartena
Leaflet.zoomslider A zoom slider control. Kartena
Leaflet.Locate A customizable locate control. Dominik Moritz
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-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.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

Other Plugins and Libraries

Plugin Description Maintainer
OSM Buildings Amazing JS library for visualizing 3D OSM building data on top of Leaflet. Jan Marsch
Leaflet Maps Marker A Wordpress plugin that uses Leaflet and a set of its plugins for adding maps to your posts through a nice admin interface. 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

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).