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:
Geolocation.getCurrentPosition()
: Ruft den aktuellen Standort des Geräts ab.Geolocation.watchPosition()
: Registriert eine Handlerfunktion, die automatisch jedes Mal aufgerufen wird, wenn sich die Position des Geräts ändert, und gibt den aktualisierten Standort zurück.
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 inGeolocation
enthaltenen Methoden innerhalb eines Erfolgscallbacks zurückgegeben und enthält einen Zeitstempel sowie eine Instanz des ObjektsGeolocationCoordinates
. 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 inGeolocation
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:
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:
<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.