Geolokalisierung und Karten in JavaScript (Node.js): Bibliotheken und Werkzeuge

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Geolokalisierung und Karten in JavaScript (Node.js): Vollständiger Leitfaden zu Bibliotheken und Werkzeugen



Die Arbeit mit geografischen Daten und Karten ist eine der zentralen Aufgaben moderner Webanwendungen. Auf der Node.js-Plattform gibt es zahlreiche Bibliotheken, die es ermöglichen, Karten nicht nur auf dem Client anzuzeigen, sondern auch komplexe serverseitige Verarbeitung von Geodaten durchzuführen: Geokodierung, Reverse-Geokodierung, Entfernungsberechnung, Routenplanung und Geometrieanalyse.



In diesem Artikel betrachten wir die wichtigsten Bibliotheken für die Arbeit mit Geolokalisierung und Karten im JavaScript-Ökosystem (Node.js), geben Codebeispiele und Empfehlungen zur Auswahl des richtigen Werkzeugs für spezifische Aufgaben.



1. Leaflet – Interaktive Karten auf dem Client



Leaflet ist eine leichte, aber leistungsstarke JavaScript-Bibliothek zur Erstellung interaktiver Karten. Sie läuft im Browser, lässt sich aber hervorragend mit Node.js über Bundler (Webpack, Vite) oder als Teil von SSR-Anwendungen integrieren.



Hauptfunktionen:

  • Unterstützung von Kachelebenen (OpenStreetMap, Mapbox, Google Maps u.a.);
  • Marker, Popups, Polygone, Linien;
  • Ereignisbehandlung (Klick, Verschiebung, Zoom);
  • Plugins für Clusterbildung, Heatmap, Suche.


Beispiel für die Einbindung und Darstellung einer Karte mit Marker:



<!DOCTYPE html><html><head>    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script></head><body>    <div id="map" style="height: 400px;"></div>    <script>        const map = L.map('map').setView([55.7558, 37.6173], 10);        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {            attribution: '&copy; OpenStreetMap contributors'        }).addTo(map);        L.marker([55.7558, 37.6173]).addTo(map)            .bindPopup('Moskau, Kreml')            .openPopup();    </script></body></html>


Leaflet ist ideal für das Frontend. Wenn Sie jedoch eine serverseitige Kartengenerierung benötigen (z. B. für Drucke oder statische Bilder), verwenden Sie leaflet-headless oder eine Kombination mit Puppeteer.



2. node-geocoder – Geokodierung und Reverse-Geokodierung



node-geocoder ist eine universelle Bibliothek zur Umwandlung von Adressen in Koordinaten und umgekehrt. Sie unterstützt zahlreiche Anbieter: Google, OpenStreetMap (Nominatim), Yandex, Here und andere.



Installation:

npm install node-geocoder


Beispielverwendung mit OpenStreetMap:



const NodeGeocoder = require('node-geocoder');

const options = { provider: 'openstreetmap', language: 'de'};

const geocoder = NodeGeocoder(options);

// Direkte Geokodierung (Adresse → Koordinaten)geocoder.geocode('Roter Platz, Moskau') .then(res => { console.log('Koordinaten:', res[0].latitude, res[0].longitude); }) .catch(err => console.error(err));

// Reverse-Geokodierung (Koordinaten → Adresse)geocoder.reverse({ lat: 55.7558, lon: 37.6173 }) .then(res => { console.log('Adresse:', res[0].formattedAddress); }) .catch(err => console.error(err));


Die Bibliothek verarbeitet automatisch Anfragelimitierungen und unterstützt Caching. Sie wird für serverseitige Anwendungen empfohlen, bei denen Benutzerdaten konvertiert werden müssen.



3. Turf.js – Geoanalytik und räumliche Operationen



Turf.js ist eine Bibliothek für georäumliche Analysen. Sie funktioniert sowohl im Browser als auch in Node.js und umfasst über 150 Module für die Arbeit mit GeoJSON.



Hauptfunktionen:

  • Berechnung von Entfernungen (Haversine, Vincenty);
  • Suche nach Überschneidungen

Empfehlungen