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, seinen Standort den Webanwendungen bereitzustellen, falls er dies wünscht. Aus Datenschutzgründen wird der Benutzer um Erlaubnis gebeten, Standortinformationen zu melden.

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 Mal, wenn der Zugriff angefordert wird, auffordern, den Zugriff auf den Standort zu erlauben.

Konzepte und Verwendung

In Ihrer Web-App möchten Sie häufig die Standortinformationen eines Benutzers abrufen, um beispielsweise ihren Standort auf einer Karte anzuzeigen oder personalisierte Informationen bereitzustellen, die für ihren Standort relevant sind.

Die Geolocation API wird durch einen Aufruf von navigator.geolocation aufgerufen; dies veranlasst den Browser des Benutzers, ihn um Erlaubnis zu bitten, auf seine Standortdaten zuzugreifen. Wenn sie zustimmen, verwendet der Browser die bestmögliche Funktionalität auf dem Gerät, um auf diese Informationen zuzugreifen (zum Beispiel GPS).

Der Entwickler kann jetzt auf diese Standortinformationen in verschiedener Weise zugreifen:

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 den Zugriff auf die Standortdaten ermöglicht.
  • 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 bereitstellt, was schiefgelaufen ist.
  • Ein optionales Objekt, das Optionen für das Abrufen der Positionsdaten bereitstellt.

Für weitere Informationen zur Nutzung der Geolocation lesen Sie Using the Geolocation API.

Schnittstellen

Geolocation

Die Hauptklasse dieser API — enthält Methoden zum Abrufen der aktuellen Position des Benutzers, zum Überwachen von Positionsänderungen und zum Löschen eines zuvor gesetzten Watches.

GeolocationPosition

Repräsentiert die Position eines Benutzers. Eine GeolocationPosition-Instanz wird durch einen erfolgreichen Aufruf einer der in Geolocation enthaltenen Methoden in einem Erfolgscallback zurückgegeben und enthält einen Zeitstempel sowie eine GeolocationCoordinates-Objektinstanz.

GeolocationCoordinates

Repräsentiert die Koordinaten der Position eines Benutzers; eine GeolocationCoordinates-Instanz enthält Längengrad, Breitengrad und andere wichtige zugehörige Informationen.

GeolocationPositionError

Ein GeolocationPositionError wird durch einen erfolglosen Aufruf einer der in Geolocation enthaltenen Methoden in einem Fehlercallback zurückgegeben und enthält einen Fehlercode und eine Fehlermeldung.

Erweiterungen für andere Schnittstellen

Der Einstiegspunkt in die API. Gibt eine Geolocation-Objektinstanz zurück, über die auf alle anderen Funktionen zugegriffen werden kann.

Sicherheitsaspekte

Die Geolocation API erlaubt es Benutzern, auf sichere Weise programmatisch auf Standortinformationen in sicheren Kontexten zuzugreifen.

Der Zugriff kann zusätzlich durch die Permissions Policy-Direktive geolocation gesteuert werden. Die Standardzugriffsliste für geolocation ist self, was den Zugriff auf Standortinformationen nur in gleichartigen eingebetteten Frames erlaubt. Die Nutzung durch Dritte wird ermöglicht, indem ein Permissions-Policy-Antwortheader gesetzt wird, um einer bestimmten Drittanbieter-Herkunft die Berechtigung zu erteilen:

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

Das allow="geolocation"-Attribut muss dann dem iframe-Element mit Quellen von dieser Herkunft hinzugefügt werden:

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

Geolokalisierungsdaten können Informationen offenbaren, die der Gerätebesitzer nicht teilen möchte. Daher müssen Benutzer eine ausdrückliche Genehmigung ü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. Die Permissions API geolocation-Berechtigung kann verwendet werden, um zu testen, ob der Zugriff auf die Nutzung von Standortinformationen granted, denied oder prompt (erfordert die Bestätigung einer Eingabeaufforderung durch den Benutzer) ist.

Beispiele

Siehe Using the Geolocation API für Beispielcode.

Spezifikationen

Specification
Geolocation
# geolocation_interface

Browser-Kompatibilität

Verfügbarkeit

Da Wi-Fi-basierte Ortungsdienste oft von Google bereitgestellt werden, kann die Standard-Geolocation-API in China nicht verfügbar sein. 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 bereitzustellen.

Siehe auch