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 Benutzern, ihre Position an Webanwendungen weiterzugeben, wenn sie dies wünschen. Aus Datenschutzgründen wird der Benutzer um Erlaubnis gebeten, 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 den Benutzer beim ersten Anfordern um Erlaubnis zur Standortfreigabe bitten.
Konzepte und Nutzung
Häufig werden Sie die Standortinformationen eines Benutzers abrufen wollen, um beispielsweise deren Standort auf einer Karte darzustellen oder personalisierte Informationen basierend auf deren Standort anzuzeigen.
Auf die Geolocation API wird über einen Aufruf von navigator.geolocation
zugegriffen; dies führt dazu, dass der Browser des Benutzers um Erlaubnis zur Standortdatenfreigabe bittet. Wenn er zustimmt, verwendet der Browser die bestmögliche Funktionalität auf dem Gerät, um diese Informationen abzurufen (beispielsweise GPS).
Der Entwickler kann auf diese Standortinformationen auf verschiedene Weise zugreifen:
Geolocation.getCurrentPosition()
: Ruft die aktuelle Position des Geräts ab.Geolocation.watchPosition()
: Registriert eine Handler-Funktion, die automatisch bei jeder Änderung der Geräteposition aufgerufen wird und die aktualisierte Position zurückgibt.
In beiden Fällen nimmt der Methodenaufruf bis zu drei Argumente entgegen:
- Ein obligatorischer Erfolgs-Callback: Wenn das Abrufen der Position erfolgreich ist, wird der Callback mit einem
GeolocationPosition
-Objekt als einzigem Parameter ausgeführt, das den Zugriff auf die Standortdaten ermöglicht. - Ein optionaler Fehler-Callback: Wenn das Abrufen der Position fehlschlägt, 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 zum Abrufen der Positionsdaten bereitstellt.
Für weitere Informationen zur Nutzung von Geolocation lesen Sie Using the Geolocation API.
Schnittstellen
Geolocation
-
Die Hauptklasse dieser API — enthält Methoden zum Abrufen der aktuellen Benutzerposition, zum Überwachen von Positionsänderungen und zum Löschen einer zuvor festgelegten Überwachung.
GeolocationPosition
-
Repräsentiert die Position eines Benutzers. Eine Instanz von
GeolocationPosition
wird bei einem erfolgreichen Aufruf einer der Methoden innerhalb vonGeolocation
in einem Erfolgs-Callback zurückgegeben und enthält einen Zeitstempel plus eine Instanz desGeolocationCoordinates
-Objekts. GeolocationCoordinates
-
Repräsentiert die Koordinaten der Benutzerposition; eine Instanz von
GeolocationCoordinates
enthält Breiten- und Längengrade sowie andere wichtige zugehörige Informationen. GeolocationPositionError
-
Ein
GeolocationPositionError
wird bei einem erfolglosen Aufruf einer der Methoden innerhalb vonGeolocation
in 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 des
Geolocation
-Objekts zurück, von der aus alle anderen Funktionalitäten abgerufen werden können.
Sicherheitserwägungen
Die Geolocation API ermöglicht es Benutzern, in sicheren Kontexten programmgesteuert auf Standortinformationen zuzugreifen.
Der Zugriff kann weiter durch die Richtlinie Permissions Policy gesteuert werden geolocation
.
Die Standardgenehmigungsliste für geolocation
ist self
, was den Zugriff auf Standortinformationen nur in gleichen Ursprungs-verschachtelten Frames ermöglicht.
Drittanbieter-Nutzung wird ermöglicht, indem ein Permissions-Policy
-Antwortheader gesetzt wird, um einer bestimmten Drittpartei-Origin die Erlaubnis zu erteilen:
Permissions-Policy: geolocation=(self b.example.com)
Das allow="geolocation"
Attribut muss dann zum iframe-Element mit Quellen von dieser Origin hinzugefügt werden:
<iframe src="https://b.example.com" allow="geolocation"/></iframe>
Geolocation-Daten können Informationen offenlegen, die der Geräteinhaber nicht teilen möchte.
Deshalb müssen Benutzer ausdrücklich über eine Eingabeaufforderung die Genehmigung erteilen, wenn entweder Geolocation.getCurrentPosition()
oder Geolocation.watchPosition()
aufgerufen wird (es sei denn, der Berechtigungsstatus ist bereits granted
oder denied
).
Die Lebensdauer einer gewährten Berechtigung hängt vom Benutzeragenten ab und kann zeitbasiert, sitzungsbasiert oder sogar dauerhaft sein.
Die geolocation
Berechtigung der Permissions API kann verwendet werden, um zu testen, ob der Zugriff auf Standortinformationen granted
, denied
oder prompt
(erfordert Benutzeranerkennung einer Eingabeaufforderung) ist.
Beispiele
Siehe Using the Geolocation API für Beispielcode.
Spezifikationen
Specification |
---|
Geolocation # geolocation_interface |
Browser-Kompatibilität
BCD tables only load in the browser
Verfügbarkeit
Da Wi-Fi-basierte Standortbestimmung oft von Google bereitgestellt wird, kann die Vanilla-Geolocation-API in China möglicherweise nicht verfügbar sein. Sie können lokale Drittanbieter wie Baidu, Autonavi oder Tencent verwenden. Diese Dienste verwenden die IP-Adresse des Benutzers und/oder eine lokale App, um eine verbesserte Positionierung bereitzustellen.