Geolocation API

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die Geolocation API ermöglicht es dem Benutzer, Webanwendungen ihren Standort bereitzustellen, falls er dies wünscht. Aus Datenschutzgründen wird der Benutzer um Erlaubnis gebeten, um Standortinformationen zu übermitteln.

WebExtensions, die das Geolocation-Objekt verwenden möchten, müssen die Berechtigung "geolocation" zu ihrem Manifest hinzufügen. Das Betriebssystem des Benutzers wird diesen auffordern, den Zugriff auf den Standort das erste Mal zuzulassen, wenn dieser angefordert wird.

Konzepte und Nutzung

In Ihrer Webanwendung möchten Sie oft die Standortinformationen eines Benutzers abrufen, beispielsweise um deren Standort auf einer Karte darzustellen oder personalisierte Informationen anzuzeigen, die für deren Standort relevant sind.

Auf die Geolocation API wird durch einen Aufruf von navigator.geolocation zugegriffen; dies veranlasst den Browser des Benutzers, um Erlaubnis zu bitten, auf deren Standortdaten zuzugreifen. Wenn sie zustimmen, wird der Browser die beste verfügbare Funktionalität auf dem Gerät nutzen, um auf diese Informationen zuzugreifen (zum Beispiel GPS).

Der Entwickler kann nun auf diese Standortinformationen auf verschiedene Weisen zugreifen:

In beiden Fällen nimmt der Methodenaufruf bis zu drei Argumente entgegen:

  • Ein obligatorischer Erfolgscallback: Wenn das Abrufen des Standorts erfolgreich ist, wird der Callback mit einem GeolocationPosition-Objekt als einzigem Parameter ausgeführt, das Zugriff auf die Standortdaten bietet.
  • Ein optionaler Fehlercallback: Wenn das Abrufen des Standorts nicht erfolgreich ist, wird der Callback mit einem GeolocationPositionError-Objekt als einzigem Parameter ausgeführt, das Informationen darüber bietet, was schiefgelaufen ist.
  • Ein optionales Objekt, das Optionen für das Abrufen der Positionsdaten bereitstellt.

Für weitere Informationen zur Nutzung von Geolocation lesen Sie Verwendung der Geolocation-API.

Schnittstellen

Geolocation

Die Hauptklasse dieser API — enthält Methoden zum Abrufen der aktuellen Position des Benutzers, Überwachen von Positionsänderungen und Aufheben einer zuvor festgelegten Überwachung.

GeolocationPosition

Repräsentiert die Position eines Benutzers. Eine GeolocationPosition-Instanz wird durch einen erfolgreichen Aufruf einer der in Geolocation enthaltenen Methoden innerhalb eines Erfolgscallbacks zurückgegeben und enthält einen Zeitstempel sowie eine Instanz des Objekts GeolocationCoordinates.

GeolocationCoordinates

Repräsentiert die Koordinaten der Position eines Benutzers; eine GeolocationCoordinates-Instanz enthält Breitengrad, Längengrad und andere wichtige relevante Informationen.

GeolocationPositionError

Ein GeolocationPositionError wird durch einen erfolglosen Aufruf einer der in Geolocation enthaltenen Methoden innerhalb eines Fehlercallbacks zurückgegeben und enthält einen Fehlercode und eine Nachricht.

Erweiterungen zu anderen Schnittstellen

Der Einstiegspunkt in die API. Gibt eine Instanz des Objekts Geolocation zurück, von der aus auf alle anderen Funktionen zugegriffen werden kann.

Sicherheitsüberlegungen

Die Geolocation-API ermöglicht es Benutzern, standortbezogene Informationen programmatisch in sicheren Kontexten zuzugreifen.

Der Zugriff kann weiter durch die Permissions Policy-Direktive geolocation kontrolliert werden. Die Standard-Zulassungsliste für geolocation ist self, was den Zugang zu Standortinformationen nur in gleich-originären verschachtelten Frames erlaubt. Die Nutzung durch Dritte ist möglich, indem ein Permissions-Policy-Antwortheader gesetzt wird, um eine Berechtigung für eine bestimmte externe Herkunft zu gewähren:

http
Permissions-Policy: geolocation=(self b.example.com)

Das allow="geolocation"-Attribut muss dann dem iframe-Element hinzugefügt werden, das Quellen von dieser Herkunft enthält:

html
<iframe src="https://b.example.com" allow="geolocation"></iframe>

Standortdaten können Informationen offenbaren, die der Gerätebesitzer nicht teilen möchte. Daher müssen Benutzer eine ausdrückliche Erlaubnis über eine Eingabeaufforderung erteilen, wenn entweder Geolocation.getCurrentPosition() oder Geolocation.watchPosition() aufgerufen wird (es sei denn, der Berechtigungsstatus ist bereits granted oder denied). Die Lebensdauer einer erteilten Berechtigung hängt vom Benutzeragenten ab und kann zeitbasiert, sitzungsbasiert oder sogar dauerhaft sein. Mit der Permissions API kann die geolocation Berechtigung verwendet werden, um zu testen, ob der Zugriff auf Positionsinformationen granted, denied oder prompt (erfordert die Bestätigung durch den Benutzer einer Eingabeaufforderung) ist.

Beispiele

Siehe Verwendung der Geolocation-API für Beispielcode.

Spezifikationen

Specification
Geolocation
# geolocation_interface

Browser-Kompatibilität

Verfügbarkeit

Da die WLAN-basierte Standortbestimmung oft von Google bereitgestellt wird, ist die normale Geolocation-API möglicherweise in China nicht verfügbar. Sie können lokale Drittanbieter wie Baidu, Autonavi oder Tencent verwenden. Diese Dienste nutzen die IP-Adresse des Nutzers und/oder eine lokale App, um erweiterte Positionsbestimmungen bereitzustellen.

Siehe auch