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 Juli 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, seine Position an Webanwendungen zu übermitteln, wenn er dies wünscht. Aus Datenschutzgründen wird der Benutzer um Erlaubnis gebeten, Standortinformationen zu melden.
WebExtensions, die das Geolocation-Objekt nutzen möchten, müssen die Berechtigung "geolocation" zu ihrem Manifest hinzufügen. Das Betriebssystem des Benutzers wird den Benutzer beim ersten Anfordern um Erlaubnis zur Nutzung des Standorts bitten.
Hinweis:
Das <geolocation>-Element bietet einen alternativen Mechanismus zum Zugriff auf und zur Verarbeitung von Geodaten, der einige der Einschränkungen der Geolocation-API löst: Es bietet eine konsistente Benutzeroberfläche und einen intuitiveren Berechtigungsverwaltungsprozess.
Konzepte und Nutzung
Oftmals wollen Sie die Standortinformationen eines Benutzers in Ihrer Webanwendung abrufen, beispielsweise um dessen Position auf einer Karte darzustellen oder personalisierte Informationen anzeigen zu können, die für dessen Standort relevant sind.
Auf die Geolocation API wird durch einen Aufruf von navigator.geolocation zugegriffen; dies veranlasst den Browser des Benutzers, um Erlaubnis zur Verwendung seiner Standortdaten zu bitten. Wenn er zustimmt, wird der Browser die beste verfügbare Funktionalität des Geräts nutzen, um diese Informationen abzurufen (zum Beispiel GPS).
Der Entwickler kann nun auf diese Standortinformationen auf unterschiedliche Weise zugreifen:
Geolocation.getCurrentPosition(): Ruft die aktuelle Position des Geräts ab.Geolocation.watchPosition(): Registriert eine Handler-Funktion, die automatisch jedes Mal aufgerufen wird, wenn sich die Position des Geräts ändert und gibt die aktualisierte Position zurück.
In beiden Fällen nimmt der Methodenaufruf bis zu drei Argumente an:
- Ein obligatorischer Erfolgs-Callback: Wenn das Abrufen der Standortdaten erfolgreich ist, wird der Callback mit einem
GeolocationPosition-Objekt als einzigem Parameter ausgeführt, welches Zugriff auf die Standortdaten bietet. - Ein optionaler Fehler-Callback: Wenn das Abrufen der Standortdaten erfolglos ist, wird der Callback mit einem
GeolocationPositionError-Objekt als einzigem Parameter ausgeführt, welches Informationen darüber bereitstellt, was schief gelaufen ist. - Ein optionales Objekt, welches Optionen für das Abrufen der Positionsdaten bietet.
Für weitere Informationen zur Nutzung der 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 Löschen eines zuvor gesetzten Watches.
GeolocationPosition-
Repräsentiert die Position eines Benutzers. Eine Instanz von
GeolocationPositionwird bei einem erfolgreichen Aufruf einer der Methoden innerhalb vonGeolocationin einem Erfolgs-Callback zurückgegeben und enthält einen Zeitstempel sowie eine Instanz einesGeolocationCoordinates-Objekts. GeolocationCoordinates-
Repräsentiert die Koordinaten der Position eines Benutzers; eine Instanz von
GeolocationCoordinatesenthält Breiten- und Längengrad sowie weitere wichtige Informationen. GeolocationPositionError-
Ein
GeolocationPositionErrorwird bei einem erfolglosen Aufruf einer der Methoden innerhalb vonGeolocationin einem Fehler-Callback zurückgegeben und enthält einen Fehlercode und eine Fehlermeldung.
Erweiterungen zu anderen Schnittstellen
-
Der Einstiegspunkt in die API. Gibt eine Instanz eines
Geolocation-Objekts zurück, von dem aus alle weiteren Funktionen zugänglich sind.
Sicherheitsüberlegungen
Die Geolocation API ermöglicht es Benutzern, programmgesteuert Standortinformationen in sicheren Kontexten abzurufen.
Der Zugriff kann durch die Permissions Policy-Richtlinie geolocation weiter kontrolliert werden.
Die Standard-Erlaubnisliste für geolocation ist self, was den Zugriff auf Standortinformationen nur in Same-Origin-verschachtelten Frames erlaubt.
Drittparteinutzung wird aktiviert, indem ein Permissions-Policy-Antwortheader gesetzt wird, um die Erlaubnis für einen bestimmten Drittanbieter-Origin zu erteilen:
Permissions-Policy: geolocation=(self b.example.com)
Das Attribut allow="geolocation" muss dann dem iframe-Element hinzugefügt werden, das Quellen von diesem Origin enthält:
<iframe src="https://b.example.com" allow="geolocation"></iframe>
Geolokationsdaten können Informationen offenbaren, die der Gerätebesitzer nicht teilen möchte.
Daher müssen Benutzer explizit die Erlaubnis über ein Prompt erteilen, wenn entweder Geolocation.getCurrentPosition() oder Geolocation.watchPosition() aufgerufen wird (es sei denn, der Berechtigungsstatus ist bereits gewährt oder verweigert).
Die Laufzeit einer gewährten Erlaubnis hängt vom User Agent ab und kann zeitbasiert, sitzungsbasiert oder sogar dauerhaft sein.
Die Permissions API geolocation-Berechtigung kann verwendet werden, um zu testen, ob der Zugriff auf Standortinformationen gewährt, verweigert oder auffordern ist (erfordert Benutzerbestätigung eines Prompts).
Beispiele
Sehen Sie sich Verwendung der Geolocation API für Beispielcode an.
Spezifikationen
| Specification |
|---|
| Geolocation> # geolocation_interface> |
Browser-Kompatibilität
Verfügbarkeit
Da die positionsbasierte Standortbestimmung oft von Google bereitgestellt wird, ist die Standard-Geolocation-API in China möglicherweise nicht verfügbar. Sie können lokale Drittanbieter wie Baidu, Autonavi oder Tencent nutzen. Diese Dienste verwenden die IP-Adresse des Benutzers und/oder eine lokale App, um eine verbesserte Positionsbestimmung zu bieten.
Siehe auch
<geolocation>-Element- Verwendung der Geolocation API
- Who moved my geolocation? (Hacks-Blog)