Leaflet Headless

Alternatives To Leaflet Headless
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Leaflet766337171a month ago9February 16, 2022291otherJavaScript
R Interface to Leaflet Maps
Wind Layer397102 months ago15April 09, 202111otherTypeScript
:flags: :rocket: wind-layer | a openlayers && maptalks && amap && bmap && leaflet && mapbox-gl extension like windy.com
Geopackage Js2645116 months ago107October 10, 202221mitTypeScript
GeoPackage JavaScript Library
4 years ago67otherJavaScript
A user-friendly, map-based tool to combine and explore real-time or historical data.
a month ago76bsd-2-clauseJavaScript
The open source geosocial network platform written in NodeJs
Node Tileserver141
5 years ago25JavaScript
A lightweight tileserver based on NodeJS for serving bitmap and vector tiles.
25 days ago9March 26, 202112bsd-3-clauseJavaScript
a Tree Layers Control for Leaflet
Leaflet Headless8816145 years ago15July 22, 20178JavaScript
Leaflet for node.
2 years ago12June 03, 20207mitJavaScript
Lightweight Node.js Mapbox Vector Tiles server
10 years ago1JavaScript
This is a Node.JS + MongoDBwith a Leaflet frontend mapping application. It should be all self contained
Alternatives To Leaflet Headless
Select To Compare

Alternative Project Comparisons


Leaflet for node.

  • Has Leaflet 1.1.x as dependency.
  • Uses jsdom to fake ad DOM.
  • Uses Image implementation and canvas from canvas. Note that node-canvas needs some dependencies to be installed: for ubuntu: sudo apt-get install libcairo2-dev libjpeg8-dev libpango1.0-dev libgif-dev build-essential g++
  • Tiles, Markers and vector layers work well with leaflet-image
  • It's slow (~4s for the examples/choropleth/ on my machine).


Run npm install leaflet-headless to install the package. Requiring leaflet-headless will introduce a global L which just works like in the browser.

For vector layers, make sure to use the canvas renderer if you want to use leaflet-image:

var L = require('leaflet-headless');

var map = L.map(document.createElement('div')).setView([52, 4], 10);

var marker = L.marker([52, 4]).addTo(map);

var latlngs = [[52, 4], [54, 4], [54, 6], [52, 6], [52, 4]];
var polyline = L.polyline(latlngs).addTo(map);

Setting map size

Because jsdom does not support clientWidth/clientHeight, leaflet-headless defaults to a map size of 1024x1024px. To adjust this size, use L.Map.setSize(width, height).

map.setSize(800, 600);

Saving images

leaflet-headless adds a convenience function to L.Map to save the current map to an image using leaflet-image.

L.Map.saveImage(filename, callback): Save image to filename and call callback when ready.

map.saveImage('test.png', function (filename) {
    console.log('Saved map image to ' + filename);

Other examples:

~/leaflet-headless$ npm install
~/leaflet-headless$ cd examples/leaflet-image/
~/leaflet-headless/examples/leaflet-image/$ node index.js
Save to image using leaflet-image...
Saved test.png

Run tests

npm test


This is inspired by rclark/server-side-leaflet.

Popular Nodejs Projects
Popular Leaflet Projects
Popular Runtime Environments Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.