Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Geolocation API

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

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 Benutzern, Webanwendungen ihren Standort mitzuteilen, wenn sie dies möchten. Aus Datenschutzgründen werden Benutzer um Erlaubnis gebeten, bevor Standortinformationen übermittelt werden.

WebExtensions, die das Geolocation-Objekt verwenden möchten, müssen ihrem Manifest die Berechtigung "geolocation" hinzufügen. Das Betriebssystem fragt Benutzer beim ersten Zugriff auf den Standort nach ihrer Zustimmung.

Hinweis: Das <geolocation>-Element bietet eine alternative Möglichkeit, auf Standortdaten zuzugreifen und sie zu verarbeiten. Es behebt einige Schwächen der Geolocation API: Es bietet eine einheitliche Benutzeroberfläche und eine intuitivere Verwaltung von Berechtigungen.

Konzepte und Verwendung

In Webanwendungen werden Standortinformationen häufig benötigt, beispielsweise um den Standort eines Benutzers auf einer Karte darzustellen oder standortbezogene Informationen anzuzeigen.

Der Zugriff auf die Geolocation API erfolgt über navigator.geolocation. Daraufhin bittet der Browser den Benutzer um die Erlaubnis, auf seine Standortdaten zuzugreifen. Stimmt er zu, nutzt der Browser die beste verfügbare Funktion des Geräts, um diese Informationen zu ermitteln, beispielsweise GPS.

Entwickler können auf diese Standortinformationen auf zwei Arten zugreifen:

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

  • Einen erforderlichen Erfolgs-Callback: Wenn der Standort erfolgreich ermittelt wurde, wird der Callback mit einem GeolocationPosition-Objekt als einzigem Parameter ausgeführt. Dieses ermöglicht den Zugriff auf die Standortdaten.
  • Einen optionalen Fehler-Callback: Wenn die Standortermittlung fehlschlägt, wird der Callback mit einem GeolocationPositionError-Objekt als einzigem Parameter ausgeführt. Dieses enthält Informationen über den Fehler.
  • Ein optionales Objekt mit Optionen für die Ermittlung der Positionsdaten.

Weitere Informationen zur Verwendung der Geolocation API finden Sie unter Verwendung der Geolocation API.

Schnittstellen

Geolocation

Die Hauptklasse dieser API. Sie enthält Methoden zum Abrufen des aktuellen Standorts eines Benutzers, zum Überwachen von Standortänderungen und zum Beenden einer zuvor eingerichteten Überwachung.

GeolocationPosition

Repräsentiert die Position eines Benutzers. Eine GeolocationPosition-Instanz wird bei einem erfolgreichen Aufruf einer Methode von Geolocation an den Erfolgs-Callback übergeben. Sie enthält einen Zeitstempel und eine Instanz des Objekts GeolocationCoordinates.

GeolocationCoordinates

Repräsentiert die Koordinaten der Position eines Benutzers. Eine GeolocationCoordinates-Instanz enthält den Breiten- und Längengrad sowie weitere wichtige zugehörige Informationen.

GeolocationPositionError

Ein GeolocationPositionError wird bei einem fehlgeschlagenen Aufruf einer Methode von Geolocation an den Fehler-Callback übergeben. Er enthält einen Fehlercode und eine Fehlermeldung.

Erweiterungen anderer Schnittstellen

Der Einstiegspunkt in die API. Gibt eine Instanz des Objekts Geolocation zurück, über die alle weiteren Funktionen zugänglich sind.

Sicherheitsaspekte

Die Geolocation API ermöglicht den programmgesteuerten Zugriff auf Standortinformationen in sicheren Kontexten.

Der Zugriff kann zusätzlich durch die Permissions Policy-Direktive geolocation gesteuert werden. Die standardmäßige Zulassungsliste für geolocation ist self. Damit ist der Zugriff auf Standortinformationen nur in verschachtelten Frames derselben Origin erlaubt. Die Nutzung durch Drittanbieter wird ermöglicht, indem ein Permissions-Policy-Antwortheader gesetzt wird, der einer bestimmten Drittanbieter-Origin die Berechtigung erteilt:

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

Anschließend muss dem iframe-Element, dessen Quelle von dieser Origin stammt, das Attribut allow="geolocation" hinzugefügt werden:

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

Standortdaten können Informationen offenlegen, die der Eigentümer des Geräts nicht teilen möchte. Daher müssen Benutzer ausdrücklich über eine Abfrage zustimmen, wenn Geolocation.getCurrentPosition() oder Geolocation.watchPosition() aufgerufen wird – es sei denn, der Berechtigungsstatus ist bereits granted oder denied. Wie lange eine erteilte Berechtigung gültig bleibt, hängt vom User Agent ab. Sie kann zeitlich begrenzt, auf eine Sitzung beschränkt oder sogar dauerhaft sein. Mit der geolocation-Berechtigung der Permissions API lässt sich prüfen, ob der Zugriff auf Standortinformationen granted, denied oder prompt ist (prompt erfordert die Bestätigung einer Abfrage durch den Benutzer).

Beispiele

Beispielcode finden Sie unter Verwendung der Geolocation API.

Spezifikationen

Spezifikation
Geolocation
# geolocation_interface

Browser-Kompatibilität

Verfügbarkeit

Da die WLAN-basierte Standortbestimmung häufig von Google bereitgestellt wird, ist die reguläre Geolocation API in China möglicherweise nicht verfügbar. Sie können lokale Drittanbieter wie Baidu, Autonavi oder Tencent verwenden. Diese Dienste nutzen die IP-Adresse des Benutzers und/oder eine lokale App, um eine genauere Standortbestimmung zu ermöglichen.

Siehe auch