Feature Comparison of Online Mapping Libraries
Feature Comparison
Let’s have a closer look at these features, their availability and their easy of use.
I refer to all the libraries by their name as follow:
d3.js = D3
Mapbox GL JS = Mapbox
OpenLayers = Openlayers
Leaflet = Leaflet
Google Maps JavaScript API = Google Maps
Projections
Does the library support different projections?
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
D3
Mapbox
OpenLayers
Leaflet
https://kartena.github.io/Proj4Leaflet/
Google Maps
You can use custom projections with google maps but it is very complex.
A Projection implementation must provide not only a mapping from one coordinate system to another, but a bi-directional mapping. That is, you must define how to translate from Earth coordinates (LatLng objects) to the Projection class’s world coordinate system, and vice versa. Google Maps uses the Mercator projection to create its maps from geographic data and convert events on the map into geographic coordinates.
So you need to do all the heavy lifting!
Dynamic vector styling
Can you style your layers depending on values of your features?
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
D3
Mapbox
OpenLayers
Leaflet
Google Maps
Default Basemaps
Does the library ship a default basemap you can use right away.
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
D3
Mapbox
OpenLayers
Leaflet
Google Maps
Use your own Basemap
Can you define a different basemap than the default?
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
D3
Mapbox
OpenLayers
Leaflet
Google Maps
Marker clustering
Are you able to cluster markers based on their location and show the amount of markers
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
d3
Mapbox
OpenLayers
Leaflet
Google Maps
Custom Tooltip
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
d3
Mapbox
OpenLayers
Leaflet
Google Maps
User Drawing
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
d3
Mapbox
OpenLayers
Leaflet
Google Maps
Geocoder
Does the library provide a geocoder for the user to search for addresses and center on the map?
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
d3
Mapbox
OpenLayers
Leaflet
Google Maps
Image Tiles
Support for integrating images via a tile server. For example satellite images from sentinel data.
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
d3
Mapbox
OpenLayers
Leaflet
Google Maps
Raster data
Display single raster images. Can you add single images like geotiffs to you map?
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
d3
Mapbox
OpenLayers
Leaflet
Google Maps
Raster Styling
Can you style raster images within the library? For example on a pixel basis for raster tiles.
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
d3
Mapbox
OpenLayers
Leaflet
Google Maps
Heatmap
Can you display a heatmap? Can you change the weight?
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
d3
Mapbox
OpenLayers
Leaflet
Google Maps
OGC Services (WMS, WFS)
Can you integrate OGC Services like WMS (Web Mapping Service) or a WFS?
d3 | mapbox | OpenLayers | Leaflet | Google Maps | |
---|---|---|---|---|---|
Support | |||||
Ease of use |
d3
Mapbox
OpenLayers
Leaflet
Example 2: https://github.com/Flexberry/Leaflet-WFST
Google Maps
Company support
d3
No direct company support. But the creator works full-time on d3 and other visualization tools like observable.
Mapbox
Yes, company provides basic support. You can pay them for better support.
OpenLayers
Yes, there are external companies who provide support and they employ core contributors.
Leaflet
Unknown
Google Maps
Yes, company offers support.
Open Source Code License
Is the code open source? And does the library state a license?
d3
Open License: BSD 3-Clause “New” or “Revised” License
Mapbox
No Open Source License specified: Copyright © 2016, Mapbox All rights reserved.
OpenLayers
Yes: BSD 2-Clause License
Leaflet
No open source license specified: Copyright © 2010-2018, Vladimir Agafonkin Copyright © 2010-2011, CloudMade All rights reserved.
Google Maps
No, closed source