Plugins
Extend MapLibre GL JS with plugins for drawing, 3D rendering, data visualization, and more. Most run live on their page: open one to try it.
See them in action
Each one opens the plugin running on a live map.
Drawing and measuring
Draw, edit, and measure shapes and routes on the map.

maplibre-geoman
Drawing and geometry editing
A powerful drawing and editing plugin for MapLibre GL JS. Draw polygons, lines, markers, and complex shapes with snapping and editing capabilities.
Live demo

Terra Draw
Multi-library drawing tool
A cross-library drawing tool that works with MapLibre GL JS, Leaflet, OpenLayers, and Google Maps. Draw and edit geometries with a consistent API.
Live demo
Used by 5 products

maplibre-gl-measures
Distance and area measurement
A measurement plugin for MapLibre GL JS that lets users interactively measure distances and areas on the map.
Live demo

route-snapper
Draw road-snapped routes
A MapLibre GL JS plugin for drawing routes that snap to the road network. Useful for planning cycling routes, bus routes, or delivery paths.
Live demo

maplibre-gl-terradraw
Drawing and measuring toolbar on Terra Draw
A MapLibre GL JS control that puts Terra Draw behind a ready-made toolbar: points, lines, polygons, circles, freehand and text, with select, undo, GeoJSON download, and a measuring variant.
Live demo
Data and 3D layers
Put more on the map: WebGL and 3D layers, rasters and point clouds, climate data, historical maps, and street-level imagery.

deck.gl
WebGL-powered data visualization
A GPU-powered framework for visual exploratory analysis of large datasets. Integrates with MapLibre GL JS as a base map layer for high-performance geospatial visualizations.
Live demo
Used by 2 products

maplibre-contour
Contour lines from DEM tiles
Generate real-time contour lines and hillshade from raster DEM (digital elevation model) tiles directly in MapLibre GL JS.
Live demo
Used by 3 products

maplibre-three-plugin
Three.js 3D rendering bridge
Bridge Three.js 3D objects and scenes into MapLibre GL JS maps. Add 3D models, animations, and custom WebGL content to your maps.
Live demo

Allmaps MapLibre
Georeferenced historical maps from IIIF
Allmaps' MapLibre GL JS layer that warps scanned maps served over IIIF onto their geographic position in WebGL, straight from Georeference Annotations, with no pre-rendered tiles.
Live demo

MapLibre COG Protocol
Cloud Optimized GeoTIFFs as map layers
A custom protocol that reads Cloud Optimized GeoTIFFs straight from static hosting into MapLibre GL JS: imagery as raster layers, single-band data with color ramps, and elevation models as hillshade or 3D terrain.
Live demo
Used by 1 product

maplibre-gl-lidar
LiDAR point clouds on the map
A MapLibre GL JS control for viewing LiDAR point clouds (LAS, LAZ and streamed COPC) with deck.gl: color by elevation, intensity or classification, filter points, and hover to inspect them.
Live demo

zarr-layer
Render Zarr datasets on the GPU
A custom layer from CarbonPlan that renders Zarr datasets, such as climate model output, in MapLibre GL JS and Mapbox GL JS, with GPU color maps, dimension selectors and custom fragment shaders.
Live demo
maplibre-gl-indoorequal
Indoor maps from OpenStreetMap
A MapLibre GL JS plugin that shows indoor maps of OpenStreetMap buildings from indoor=, with a level switcher and indoor POI icons, from indoor= vector tiles or your own.
Open-Meteo Weather Map Layer
Weather model data as map layers
Open-Meteo's layer for MapLibre GL JS: a custom protocol that decodes weather model files (temperature, wind, precipitation and more) in the browser and draws them as raster and vector layers.

maplibre-gl-panoramax
Panoramax street-level imagery on the map
A MapLibre GL JS plugin for Panoramax, the open, federated street-level imagery platform: coverage layers with filters, picture lookup and sequence navigation, and orientation corrections sent back to the source instance.
Live demo
Controls
Switch basemaps and styles, toggle layers, show a legend, compare two maps, and step through time.

MapLibre Theme
Custom CSS theme for map controls
A CSS theme system for MapLibre GL JS map controls with a visual customizer. Easily restyle navigation, attribution, and other built-in controls.
Live demo

maplibre-gl-compareOfficial
Swipe comparison between maps
A MapLibre GL JS plugin for comparing two maps side-by-side with a swipeable divider. Perfect for before/after or multi-style comparisons.
Live demo
Used by 1 product

maplibre-gl-inspect
Inspect vector tile features
A development tool for MapLibre GL JS that lets you inspect vector tile features, view properties, and debug map data interactively.
Live demo

maplibre-gl-opacity
Layer opacity control
A MapLibre GL JS plugin for toggling layer visibility and adjusting opacity with a compact UI control.
Live demo

maplibre-gl-temporal-control
Animate time-series data
A temporal control plugin for MapLibre GL JS that adds a timeline slider to animate time-series data on the map.
Live demo

maplibre-gl-basemaps
Basemap style switcher
A raster basemap switcher control for MapLibre GL JS with thumbnail previews and easy style toggling.
Live demo

maplibre-gl-layer-control
Layer panel with opacity and styling
A MapLibre GL JS layer control with visibility toggles, opacity sliders, drag-to-reorder, and a per-layer style editor. Basemap layers are grouped as one background entry.
Live demo

maplibre-gl-legend
Legend control generated from the style
A MapLibre GL JS control that builds a legend from the map's own style, with a symbol per layer and checkboxes to show or hide layers.
Live demo
maplibre-style-control
Style switcher control with thumbnails
A MapLibre GL JS control that lets users switch map styles from a thumbnail panel. It ships Maptoolkit's styles as defaults and accepts any style URL or inline style.
Live demo
Labels and effects
Localize labels, add callouts and a graticule, fan out clusters, mask an area, and animate features.

Diplomat
Localize map labels to the reader's languages
An internationalization plugin for MapLibre GL JS from OpenStreetMap Americana. It rewrites a style's labels to prefer the reader's languages, with fallbacks, optional local-name glosses, and locale-aware country names.
Live demo

GeoGrid
Graticule with degree labels
A MapLibre GL JS plugin that draws a customizable geographic grid (graticule) with degree labels along the map edges, redrawn as the map moves.
Live demo

map-gl-js-spiderfy
Fan out overlapping clustered points
A spiderfy plugin for MapLibre GL JS and Mapbox GL JS: clicking a cluster of points that share a location fans them out on legs in a circle or spiral, so each one can be clicked.
Live demo

maplibre-gl-dates
Filter a time-enabled map by date
A MapLibre GL JS plugin from OpenHistoricalMap that filters every layer of a style to the features that existed on a given date, for historical maps built on OpenHistoricalMap vector tiles.
Live demo
Used by 1 product

maplibre-gl-mask-plugin
Fade out everything outside an area
A MapLibre GL JS plugin that masks the map around a polygon: everything outside it is faded, with an optional soft edge and labels limited to the area.
Live demo

maplibre-image-plugins
Animated map icons drawn on the GPU
Animated style images for MapLibre GL JS v6: icons from GIF, animated WebP, APNG or AVIF files, and a pulsing location dot, drawn on the GPU.
Live demo

maplibre-label-callout
HTML labels on leader lines
A MapLibre GL JS plugin that places HTML labels on connector lines from their points, with priorities and collision avoidance so the callouts do not overlap.
Live demo

maplibre-transition
Animate paint properties per feature
A MapLibre GL JS plugin that animates paint properties (radius, color, opacity, width) of individual features through feature state, with easing, delays and multi-step values.
Live demo
Export
Save the map as an image, a PDF, vector SVG, or video.

maplibre-gl-export
Export map as PDF or images
A MapLibre GL JS plugin to export the current map view as a PDF, PNG, JPEG, or SVG image with configurable DPI and page sizes.
Live demo

maplibre-gl-video-export
Record map animations to video
A MapLibre GL JS control that records camera animations of the map (orbits, flights between waypoints, custom paths) to WebM or MP4 video in the browser, frame by frame.
Live demo

MapLibre SVG Export
Export the map view as vector SVG
A MapLibre GL JS control from VersaTiles that renders the current map view as a vector SVG image, with a live preview, a size setting and a download button.
Live demo
Bridges and other platforms
Run MapLibre inside Leaflet or OpenLayers, load ArcGIS services, and extend MapLibre Native on Android.

MapLibre ArcGIS
Esri's plugin for ArcGIS services
Esri's official MapLibre GL JS plugin for ArcGIS: basemap styles, hosted vector tile layers and feature layers, with the attribution ArcGIS data requires.
Live demo

MapLibre GL LeafletOfficial
MapLibre as a Leaflet layer
The MapLibre project's binding that renders a MapLibre GL JS map as a Leaflet layer, so Leaflet apps get vector basemaps while keeping their Leaflet markers, popups and plugins.
Live demo
Used by 3 products
MapLibre Plugins for AndroidOfficial
Annotation, marker view, offline, and more for Android
Single-purpose Android libraries built on MapLibre Native for Android, including the annotation plugin (a MapLibre core project), marker views, buildings, localization, offline regions, and a scale bar.

ol-maplibre-layer
MapLibre as an OpenLayers layer
Renders a MapLibre GL JS map as a layer of an OpenLayers map, so OpenLayers apps can show MapLibre vector styles alongside their own layers and interactions.
Live demo
Know of another plugin?
Suggest plugins and extensions for MapLibre.