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:
Geolocation.getCurrentPosition(): Ruft den aktuellen Standort des Geräts ab.Geolocation.watchPosition(): Registriert eine Handler-Funktion, die bei jeder Änderung der Geräteposition automatisch aufgerufen wird und den aktualisierten Standort zurückgibt.
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 vonGeolocationan den Erfolgs-Callback übergeben. Sie enthält einen Zeitstempel und eine Instanz des ObjektsGeolocationCoordinates. 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
GeolocationPositionErrorwird bei einem fehlgeschlagenen Aufruf einer Methode vonGeolocationan 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
Geolocationzurü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:
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:
<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
<geolocation>-Element- Verwendung der Geolocation API
- Wer hat meine Geolocation verschoben? (Hacks-Blog)