Signatur
Beschreibung
Die Eigenschaft latitude eines GeolocationCoordinates-Objekts gibt die geographische Breite der vom Gerät ermittelten Position in Dezimalgrad an (Bezugssystem WGS 84). Der Wert liegt zwischen -90 (Südpol) und 90 (Nordpol). Positive Werte stehen für die Nordhalbkugel, negative für die Südhalbkugel.
Du erhältst das Objekt nicht direkt, sondern über die Eigenschaft coords eines GeolocationPosition-Objekts. Dieses wird an den Erfolgs-Callback von navigator.geolocation.getCurrentPosition() oder navigator.geolocation.watchPosition() übergeben.
Zusammen mit longitude bildet latitude die Grundlage für Kartenanzeigen, Entfernungsberechnungen, standortbezogene Suchen oder Geofencing. Wie genau der Wert ist, verrät dir accuracy (Radius in Metern). Je nach Quelle (GPS, WLAN, IP-Adresse) kann die Genauigkeit zwischen wenigen Metern und mehreren Kilometern schwanken.
Rückgabewert
-90 bis 90: die geographische Breite in Dezimalgrad. Der Wert ist schreibgeschützt.Beispiele
Aktuelle Breite einmalig abfragen
if ('geolocation' in navigator) {
navigator.geolocation.getCurrentPosition(
(position) => {
const { latitude, longitude, accuracy } = position.coords;
console.log(`Breite: ${latitude.toFixed(5)}°`);
console.log(`Länge: ${longitude.toFixed(5)}°`);
console.log(`Genauigkeit: ±${Math.round(accuracy)} m`);
},
(error) => console.error(`Fehler ${error.code}: ${error.message}`),
{ enableHighAccuracy: true, timeout: 10000, maximumAge: 0 }
);
} else {
console.warn('Geolocation wird nicht unterstützt.');
}
Promise-Wrapper mit async/await und Hemisphären-Ausgabe
const getPosition = (options = {}) =>
new Promise((resolve, reject) =>
navigator.geolocation.getCurrentPosition(resolve, reject, options)
);
const formatLatitude = (lat) =>
`${Math.abs(lat).toFixed(4)}° ${lat >= 0 ? 'N' : 'S'}`;
const showLocation = async () => {
try {
const { coords } = await getPosition({ timeout: 8000 });
console.log(formatLatitude(coords.latitude));
} catch (err) {
console.error('Standort nicht verfügbar:', err.message);
}
};
showLocation();
Entfernung zu einem Ziel mit der 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));
};
const ziel = { lat: 48.13743, lon: 11.57549 }; // München
const watchId = navigator.geolocation.watchPosition(({ coords }) => {
const km = distanceKm(coords.latitude, coords.longitude, ziel.lat, ziel.lon);
console.log(`Noch ${km.toFixed(1)} km bis München`);
if (km < 1) navigator.geolocation.clearWatch(watchId);
});
// Wichtig · Fallstricke
- Sicherer Kontext: Die Geolocation-API funktioniert nur über HTTPS (oder
localhost). Auf unsicheren Seiten wird der Fehler-Callback aufgerufen bzw. die API fehlt ganz. - Berechtigung: Der Browser fragt den Nutzer um Erlaubnis. Lehnt er ab, erhältst du einen
GeolocationPositionErrormitcode === 1(PERMISSION_DENIED). In iframes muss die Permissions-Policygeolocationerlaubt sein. - Genauigkeit: Werte mit vielen Nachkommastellen täuschen oft Präzision nur vor. Werte immer zusammen mit
accuracyaus. Fünf Nachkommastellen entsprechen ungefähr 1 m. - Reihenfolge: Viele Formate (z. B. GeoJSON) erwarten
[longitude, latitude], Karten-Bibliotheken wie Leaflet dagegen[lat, lng]. Das ist eine häufige Fehlerquelle. - Datenschutz: Standortdaten sind personenbezogene Daten (DSGVO). Übertrage oder speichere sie nur mit Einwilligung und runde sie, wenn keine hohe Präzision nötig ist.
- Die Eigenschaft ist schreibgeschützt. Eine Zuweisung wird ignoriert bzw. wirft im Strict Mode einen
TypeError.