Skip to content

1build/leaflet-headless

This branch is 1 commit ahead of jieter/leaflet-headless:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Michael Darr
Dec 29, 2020
aa3a219 · Dec 29, 2020
Jul 24, 2017
Dec 16, 2016
Jul 24, 2017
May 18, 2016
May 18, 2016
Mar 16, 2015
Nov 12, 2013
May 3, 2016
Dec 29, 2020
Apr 26, 2015
Jul 22, 2017
Dec 29, 2020

Repository files navigation

Leaflet-headless

note: This fork upgrades the canvas dependency from ~1.6.2 to ^2.6.1, fixing upstream build errors.

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

Example

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

Attribution

This is inspired by https://github.com/rclark/server-side-leaflet.

About

Leaflet for node.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.0%
  • Shell 1.0%