Beste Wahl für einfache Karten. Klein, schnell, riesiges Plugin-Ökosystem. Wenn Du nur Marker und Tiles brauchst – nimm Leaflet.
Beste Wahl für Custom-Styling, Globe, Vector-Tiles und 3D. Modernste Technik, aber schwerer. Snap-Map-Look geht nur hiermit.
Beste Wahl für GIS-Profis. WMS/WMTS, Projektionen, Drawing – alles built-in. Schwergewichtig, aber kein Plugin nötig.
| Feature | Leaflet | MapLibre GL JS | OpenLayers |
|---|---|---|---|
| Bundle-Größe | ~40 KB gzip + Plugins Sehr leicht |
~350 KB gzip Mittel |
~400 KB gzip (Tree-Shaking möglich) Schwer |
| Tile-Typ | Raster-Tiles (OSM, CartoDB, Esri …) | Vector-Tiles + Raster per GL Style JSON | Raster + Vector via ol/source |
| Globe (rund wie Google Maps) | Nicht möglich | Ja – projection: { type: 'globe' } ab v5 | Nicht möglich |
| Custom Styling (wie Snap Map) | Nicht möglich (nur Raster) | Ja – eigenes GL Style JSON (Maputnik) | Eingeschränkt – ol-mapbox-style + Code |
| 3D-Gebäude | Nicht möglich | Ja – FillExtrusionLayer | Nicht möglich |
| Eigene Icons & Marker | HTML/DivIcon/Bilder | HTML-Overlay oder GL-Symbol | ol/style/Icon + ol/style/Text |
| Routenplanung | Plugin Leaflet Routing Machine + OSRM | Manuell via OSRM + map.addSource() | Manuell via OSRM + ol/format/GeoJSON |
| Heatmaps | Plugin Leaflet.heat | Built-in – type: 'heatmap' | Built-in – ol/layer/Heatmap |
| Clustering | Plugin MarkerCluster | Built-in – cluster: true | Built-in – ol/source/Cluster |
| GeoJSON | L.geoJSON() | map.addSource() + map.addLayer() | ol/format/GeoJSON |
| Drawing & Editing | Plugin Leaflet.draw | Plugin (MapLibre Draw) | Built-in – ol/interaction/Draw + Modify |
| WMS / WMTS | Plugin L.tileLayer.wms | Nicht nativ | Built-in – ol/source/WMS, WMTS, TileJSON |
| Projektionen | Nur Web Mercator (EPSG:3857) | Nur Web Mercator (EPSG:3857) | Alle EPSG-Codes |
| Lizenz | BSD-2-Clause | BSD-3-Clause | BSD-2-Clause |