Die W3C Geolocation API standardisiert den Zugriff von Webbrowsern auf Ortungssensoren in Smartphones, Tablets und PCs.

Über das globale JavaScript-Objekt navigator.geolocation können Webanwendungen Standortkoordinaten nach ausdrücklicher Freigabe durch den Nutzer abfragen. Dieser Leitfaden bietet umfassende technische Einblicke und praxisnahen Produktivcode.

💻 Live-API-Test

Geolocation-Antwort Ihres Browsers prüfen

Lösen Sie einen Aufruf von navigator.geolocation aus, um Koordinaten, Geschwindigkeit, Kurs, Höhe und Zeitstempel live einzusehen.

1. Kernarchitektur und API-Methoden

Die W3C-Spezifikation umfasst drei fundamentale Methoden:

1

navigator.geolocation.getCurrentPosition(success, error, options)

Fragt eine einmalige Momentaufnahme der aktuellen Position ab. Gibt im Erfolgsfall ein GeolocationPosition-Objekt oder bei Ablehnung einen Fehler zurück.

2

navigator.geolocation.watchPosition(success, error, options)

Registriert einen Handler, der bei jeder Positionsänderung aufgerufen wird. Liefert eine watchId für die kontinuierliche Live-Verfolgung.

3

navigator.geolocation.clearWatch(watchId)

Beendet die mit watchPosition() gestartete kontinuierliche Abfrage, schont den Akku und deaktiviert die Ortungssensoren.

2. Produktivtauglicher JavaScript-Code

Hier ist ein robustes Codebeispiel mit Timeout-Handling, Fehlerabfangung und aktivierter hoher Genauigkeit:

// Check browser support
if ('geolocation' in navigator) {
  const options = {
    enableHighAccuracy: true, // Request GPS hardware rather than IP lookup
    timeout: 10000,           // Maximum wait time of 10 seconds
    maximumAge: 0             // Do not return cached coordinates
  };

  function successCallback(position) {
    const { latitude, longitude, accuracy, altitude, heading, speed } = position.coords;
    console.log(`Latitude: ${latitude}, Longitude: ${longitude}`);
    console.log(`Accuracy radius: ${accuracy} meters`);
  }

  function errorCallback(error) {
    switch(error.code) {
      case error.PERMISSION_DENIED:
        console.error("User denied Geolocation permission.");
        break;
      case error.POSITION_UNAVAILABLE:
        console.error("Location information is unavailable (weak GPS/Wi-Fi signal).");
        break;
      case error.TIMEOUT:
        console.error("The request to get user location timed out.");
        break;
    }
  }

  navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options);
} else {
  console.warn("Geolocation API is not supported in this browser.");
}

3. Wichtige Konfigurationsoptionen: PositionOptions

EigenschaftTypStandardwertFunktion und technischer Einfluss
enableHighAccuracyBooleanfalseAktiviert bei true den internen GNSS/GPS-Chip (< 3-5 m Genauigkeit). Bei false wird stromsparende WLAN- oder Mobilfunk-Triangulation genutzt.
timeoutPositive integer (ms)InfinityMaximale Wartezeit in Millisekunden, bevor der Fehler TIMEOUT ausgelöst wird. Empfohlen: 8.000 bis 12.000 ms.
maximumAgePositive integer (ms)0Maximales Alter einer gecachten Position. 0 erzwingt eine sofortige neue Messung über Satelliten oder WLAN.

4. Sicherheitsanforderungen und Berechtigungsrichtlinien

  • Sicherer Kontext (HTTPS Pflicht): Seit Chrome 50 und iOS 10 ist die Geolocation API über unverschlüsseltes HTTP deaktiviert.
  • Nutzerinteraktion erforderlich: Das Auslösen der Anfrage per Klick ('Standort abrufen') führt zu deutlich höheren Zustimmungsraten.
  • Iframe-Berechtigung: Bei Einbettung in ein <iframe> muss das Attribut allow='geolocation' gesetzt werden.
🧭 Koordinatenumrechnung

Dezimalgrad-Werte der API umrechnen

Konvertieren Sie Dezimalausgaben bequem in Grad, Minuten, Sekunden (GMS) oder das UTM-Gittersystem.