Skip to content
Make with

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.

Each one opens the plugin running on a live map.

Drawing and measuring

Draw, edit, and measure shapes and routes on the map.

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.

d

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
A

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

JavaScriptTypeScript
M

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
z

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

JavaScriptTypeScript
m

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.

JavaScriptTypeScript
O

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.

JavaScriptTypeScript
m

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

JavaScriptTypeScript

Controls

Switch basemaps and styles, toggle layers, show a legend, compare two maps, and step through time.

M

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

maplibre-gl-basemaps

Basemap style switcher

A raster basemap switcher control for MapLibre GL JS with thumbnail previews and easy style toggling.

Live demo

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript

Labels and effects

Localize labels, add callouts and a graticule, fan out clusters, mask an area, and animate features.

D

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

JavaScriptTypeScript
G

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript
m

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

JavaScriptTypeScript

Export

Save the map as an image, a PDF, vector SVG, or video.

Bridges and other platforms

Run MapLibre inside Leaflet or OpenLayers, load ArcGIS services, and extend MapLibre Native on Android.

Know of another plugin?

Suggest plugins and extensions for MapLibre.