Anleitung

MapLibre vs. Leaflet vs. OpenLayers

Die drei Open-Source-Bibliotheken für Karten in einer Webseite im Vergleich: wie sie zeichnen, Vektorkacheln, 3D, Projektionen, Datenformate und Downloadgrösse, mit derselben Karte aus jeder. Die Zahlen sind vom 2. November 2026.

Kurz gesagt:
  • MapLibre GL JS, wenn die Grundkarte zählt: Vektorstile, flüssiger Zoom, Neigung, 3D-Gelände und ein Globus. Es braucht WebGL 2 und ist der grösste Download.
  • Leaflet für Marker, Popups und Formen auf einer Grundkarte, mit vielen Plugins, im kleinsten Download. Vektorkacheln brauchen ein Plugin.
  • OpenLayers für GIS-Arbeit: viele Formate und Kartendienste, jede Projektion, Zeichnen und Bearbeiten eingebaut.

Nebeneinander

MapLibre GL JSLeafletOpenLayers
Aktuelle Version6.16.0, 25. Okt. 20261.9.4, 18. Mai 2023; 2.0.0-beta.1 am 2. Nov. 202610.11.0, 4. Okt. 2026
npm-Downloads, 26. Okt. bis 1. Nov. 20269,1 Millionen10,9 Millionen1,2 Millionen
LizenzBSD-3-ClauseBSD-2-ClauseBSD-2-Clause
Zeichnet mitWebGL 2Bildkacheln, Formen mit SVG oder CanvasCanvas 2D, WebGL für einige Layer
Vektorkacheln mit StilEingebautMit einem PluginEingebaut; MapLibre-Stile mit ol-mapbox-style
Neigung und 3D-GeländeJaNeinNein
DrehenJaNeinJa
ProjektionenWeb Mercator und ein GlobusWeb Mercator; andere mit Proj4LeafletJede Projektion, die proj4 kennt; Bild-Layer werden umprojiziert
DatenformateGeoJSON, Vektor- und Rasterkacheln, Bilder, VideoGeoJSON und WMS; weitere mit PluginsGeoJSON, KML, GPX, GML, TopoJSON, WKT, WFS, WMS, WMTS, GeoTIFF und mehr
Zeichnen und BearbeitenMit PluginsMit PluginsEingebaut
TypeScript-TypenEnthaltenIn @types/leafletEnthalten

Versionen, Daten, Lizenzen und Downloads aus der npm-Registry. Die npm-Downloads zählen jede Installation, auch über andere Pakete wie react-map-gl.

Dieselbe Karte in jeder

Unser Stil Light über Zürich, von jeder Bibliothek aus denselben Vektorkacheln gezeichnet:

Zürich im Stil Light, gezeichnet von MapLibre: Symbole für Bahnhof, ETH und Universität, viele Strassennamen
MapLibre GL JS 6.16: der Stil, wie er gemacht ist, mit Symbolen und Strassennamen. Leaflet mit maplibre-gl-leaflet zeigt dasselbe Bild, da MapLibre es zeichnet.
Dieselbe Ansicht, gezeichnet von OpenLayers: Die Symbole liegen auf ihren Beschriftungen, weniger Strassen sind benannt
OpenLayers 10.11 mit ol-mapbox-style 13.9: dieselben Farben; Symbole liegen auf ihren Beschriftungen, und weniger Strassen sind benannt.
Dieselbe Ansicht, gezeichnet von protomaps-leaflet: keine Symbole, wenige Beschriftungen, feinere Linien
Leaflet 1.9.4 mit protomaps-leaflet 5.1: eine eigene Fassung des Stils Light, ohne Symbole und ohne WebGL.

Downloadgrösse

Eine einfache KarteJavaScript, gzip
Leaflet mit Bildkacheln41 KB
OpenLayers mit Bildkacheln, gebündelt66 KB
Leaflet mit protomaps-leaflet77 KB
OpenLayers mit ol-mapbox-style, gebündelt mit Vite151 KB
Leaflet mit maplibre-gl-leaflet und MapLibre 5311 KB
MapLibre GL JS 6.16, gebündelt mit Vite282 KB, und 143 KB für den Worker

Gemessen an den minifizierten Dateien von npm oder am Build einer Seite mit einer Karte, komprimiert mit gzip -9. Bildkacheln sind Bilder von einem Kachelserver; overpass.ch liefert nur Vektorkacheln.

MapLibre GL JS

MapLibre entstand im Dezember 2020 als Fork von Mapbox GL JS 1.13 und zeichnet die ganze Karte auf der Grafikkarte: Zoom und Drehen laufen flüssig, und die Karte neigt sich für 3D-Gelände und Gebäude. Ein Stil beschreibt alles in einer JSON-Datei; andere Farben oder eine andere Sprache der Beschriftung brauchen also keine neuen Kacheln. MapLibre 6 braucht WebGL 2 und gibt es nur als ES-Module. Unsere Stile sind dafür gemacht.

MapLibre GL JS: Anleitung für die erste Karte

Leaflet

Leaflet legt Bildkacheln in ein Raster und Marker, Popups und Formen darüber, mit SVG oder Canvas. Seine Plugins decken Clustering, Heatmaps, Zeichnen, Routing und vieles mehr ab. Für Vektorkacheln hat es keinen Renderer: maplibre-gl-leaflet setzt eine MapLibre-Karte als Layer in Leaflet, und protomaps-leaflet zeichnet die Kacheln von Protomaps auf Canvas. Leaflet 2.0 ist in der Beta: Es kommt als ES-Module, und new Marker(…) ersetzt L.marker(…).

Vektorkacheln in Leaflet

OpenLayers

OpenLayers liest die meisten GIS-Formate und -Dienste selbst, arbeitet in jeder Projektion, die proj4 kennt, und hat Werkzeuge zum Zeichnen, Ändern und Einrasten von Objekten. Es zeichnet Vektorkacheln auf Canvas, und ol-mapbox-style macht aus einem MapLibre-Stil OpenLayers-Stile; einige Teile der Stilspezifikation fehlen, deshalb sieht nicht jeder Stil aus wie in MapLibre. Für diese kann MapLibre die Grundkarte als OpenLayers-Layer zeichnen.

Vektorkacheln in OpenLayers

Von Leaflet zu MapLibre

  • Die Koordinaten drehen sich um: Leaflet nimmt [Breite, Länge], MapLibre und GeoJSON [Länge, Breite].
  • Die Zoomstufen unterscheiden sich um eins: MapLibre-Zoomstufe 12 zeigt das Gebiet von Leaflet-Zoomstufe 13.
  • Aus L.marker wird maplibregl.Marker, aus bindPopup wird setPopup, und GeoJSON-Layer werden zu einer Quelle und einem Layer des Stils.

Die Kacheln

Alle drei zeigen die Vektorkacheln und Stile von overpass.ch mit einer Stil-URL und einem Schlüssel. Jedes Konto enthält 100'000 Kartenkacheln im Monat; die Seite Kartenkacheln zeigt die Stile auf einer Live-Karte und die Preise.