Signatur
Beschreibung
Die Eigenschaft longitude eines GeolocationCoordinates-Objekts gibt die geographische Länge (Longitude) der aktuellen Position als number in Dezimalgrad zurück. Positive Werte liegen östlich des Nullmeridians von Greenwich, negative Werte westlich davon. Der Wertebereich reicht von -180 bis 180.
Man erhält das Objekt nicht direkt, sondern über die Eigenschaft coords einer GeolocationPosition, die an den Erfolgs-Callback von navigator.geolocation.getCurrentPosition() oder watchPosition() übergeben wird. Zusammen mit latitude ergibt sich daraus die Position, etwa für Karten, Entfernungsberechnungen oder standortbasierte Suchen.
Wie genau der Wert ist, hängt von der Ortungsquelle ab (GPS, WLAN, Mobilfunk, IP). Den geschätzten Fehlerradius in Metern liefert GeolocationCoordinates.accuracy. Werte mit vielen Nachkommastellen bedeuten also nicht automatisch eine hohe Genauigkeit.
Rückgabewert
-180 bis 180. Östlich von Greenwich positiv, westlich negativ.Beispiele
Aktuelle Länge und Breite auslesen
if ('geolocation' in navigator) {
navigator.geolocation.getCurrentPosition(
({ coords }) => {
const { latitude, longitude, accuracy } = coords;
console.log(`Breite: ${latitude.toFixed(5)}, Länge: ${longitude.toFixed(5)} (±${Math.round(accuracy)} m)`);
},
(err) => console.error(`Fehler ${err.code}: ${err.message}`),
{ enableHighAccuracy: true, timeout: 10000 }
);
}
Promise-Wrapper mit async/await und Link zu einer Karte
const getPosition = (options = {}) =>
new Promise((resolve, reject) =>
navigator.geolocation.getCurrentPosition(resolve, reject, options)
);
const showOnMap = async () => {
try {
const { coords } = await getPosition({ timeout: 8000 });
const url = `https://www.openstreetmap.org/?mlat=${coords.latitude}&mlon=${coords.longitude}#map=16/${coords.latitude}/${coords.longitude}`;
console.log(url);
} catch (err) {
console.warn('Standort nicht verfügbar:', err.message);
}
};
showOnMap();
Entfernung zu einem Ziel per Haversine-Formel
const toRad = (deg) => (deg * Math.PI) / 180;
const distanceKm = (lat1, lon1, lat2, lon2) => {
const R = 6371; // Erdradius in km
const dLat = toRad(lat2 - lat1);
const dLon = toRad(lon2 - lon1);
const a = Math.sin(dLat / 2) ** 2 +
Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) * Math.sin(dLon / 2) ** 2;
return 2 * R * Math.asin(Math.sqrt(a));
};
// Ziel: Kölner Dom
const target = { lat: 50.94128, lon: 6.95828 };
const watchId = navigator.geolocation.watchPosition(({ coords }) => {
const d = distanceKm(coords.latitude, coords.longitude, target.lat, target.lon);
console.log(`Noch ${d.toFixed(1)} km bis zum Ziel`);
if (d < 0.1) navigator.geolocation.clearWatch(watchId);
});
// Wichtig · Fallstricke
- Reihenfolge verwechseln: Viele Formate (GeoJSON, Mapbox, Leaflet-intern teils) erwarten
[longitude, latitude], andere (LeafletL.latLng, Google Maps)[latitude, longitude]. Vertauschte Werte sind ein sehr häufiger Fehler. - Schreibgeschützt: Wer
coords.longitudezuweist, erreicht nichts (im Strict Mode gibt es einenTypeError). Für eigene Werte kopiert man sie in ein eigenes Objekt, z. B. mitcoords.toJSON()(neuere Browser) oder per Destrukturierung. - Secure Context & Berechtigung: Die Geolocation-API funktioniert nur über HTTPS (oder
localhost) und erst, wenn die Nutzerin oder der Nutzer zustimmt. Wird abgelehnt, bekommt der Fehler-CallbackPERMISSION_DENIED(Code 1). In iframes ist zusätzlich die Permissions Policygeolocationnötig. - Genauigkeit: Der Wert kann je nach Quelle mehrere Kilometer danebenliegen. Prüfe deshalb immer
accuracy. Mehr als 5–6 Nachkommastellen haben praktisch keine Bedeutung (6 Stellen ≈ 0,1 m). - Datenschutz: Standortdaten sind personenbezogene Daten (DSGVO). Frage nur nach, wenn es nötig ist, und speichere die Werte sparsam, gegebenenfalls gerundet.
- Kompatibilität: Wird von allen modernen Browsern unterstützt. Ältere Browser nannten das Interface
Coordinates, die Eigenschaft ist aber dieselbe.