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, seine Position an Webanwendungen zu übermitteln, sofern er dies wünscht. 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 beim ersten Zugriff um Erlaubnis bitten, Standortinformationen zu verwenden.

Konzepte und Verwendung

In Ihrer Webanwendung möchten Sie häufig die Standortinformationen eines Benutzers abrufen, zum Beispiel um seine Position auf einer Karte anzuzeigen oder personalisierte Informationen anzuzeigen, die für seinen Standort relevant sind.

Auf die Geolocation-API wird über einen Aufruf von navigator.geolocation zugegriffen; dies führt dazu, dass der Browser des Benutzers um Erlaubnis bittet, auf die Standortdaten zuzugreifen. Wenn der Benutzer zustimmt, verwendet der Browser die am besten verfügbare Funktionalität auf dem Gerät, um auf diese Informationen zuzugreifen (zum Beispiel GPS).

Der Entwickler kann nun auf diese Standortinformationen auf verschiedene Weisen zugreifen:

In beiden Fällen nimmt der Methodenaufruf bis zu drei Argumente entgegen:

  • Ein obligatorischer Erfolgs-Callback: Wenn die Standortabfrage erfolgreich ist, wird der Callback mit einem GeolocationPosition-Objekt als einzigem Parameter ausgeführt, das Zugriff auf die Standortdaten bietet.
  • Ein optionaler Fehler-Callback: Wenn die Standortabfrage 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 für die Abfrage der Positionsdaten bietet.

Für weitere Informationen über die Nutzung der Geolocation lesen Sie Verwendung der Geolocation-API.

Schnittstellen

Geolocation

Die Hauptklasse dieser API — enthält Methoden, um die aktuelle Position des Benutzers abzurufen, Änderungen seiner Position zu überwachen und eine zuvor gesetzte Überwachung zu löschen.

GeolocationPosition

Repräsentiert die Position eines Benutzers. Eine Instanz von GeolocationPosition wird bei einem erfolgreichen Aufruf einer der innerhalb von Geolocation enthaltenen Methoden in einem Erfolgs-Callback zurückgegeben und enthält einen Zeitstempel plus ein Instanzobjekt von GeolocationCoordinates.

GeolocationCoordinates

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

GeolocationPositionError

Ein GeolocationPositionError wird bei einem fehlgeschlagenen Aufruf einer der innerhalb von Geolocation enthaltenen Methoden in einem Fehler-Callback zurückgegeben und enthält einen Fehlercode und eine Fehlermeldung.

Erweiterungen zu anderen Schnittstellen

Der Einstiegspunkt in die API. Gibt ein Instanzobjekt von Geolocation zurück, von dem aus auf alle anderen Funktionen zugegriffen werden kann.

Sicherheitsüberlegungen

Die Geolocation-API ermöglicht Benutzern den programmatischen Zugriff auf Standortinformationen in sicheren Kontexten.

Der Zugriff kann zusätzlich durch die Direktive Permissions Policy gesteuert werden geolocation. Die Standard-Zugriffsliste für geolocation ist self, was den Zugriff auf Standortinformationen in gleichseitig angegebenen verschachtelten Frames ermöglicht. Die Verwendung durch Dritte wird ermöglicht, indem ein Permissions-Policy-Response-Header gesetzt wird, um einer bestimmten Drittpartei-Quelle die Erlaubnis zu erteilen:

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

Das Attribut allow="geolocation" muss dann dem iframe-Element hinzugefügt werden, das Quellen von dieser Quelle enthält:

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

Geodaten können Informationen offenlegen, die der Gerätebesitzer nicht teilen möchte. Daher müssen Benutzer explizit die Erlaubnis über eine Eingabeaufforderung erteilen, wenn entweder Geolocation.getCurrentPosition() oder Geolocation.watchPosition() aufgerufen wird (es sei denn, der Berechtigungsstatus lautet bereits granted oder denied). Die Dauer einer erteilten 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 zur Nutzung von Standortinformationen granted, denied oder prompt ist (benötigt die Bestätigung eines Benutzers).

Beispiele

Siehe Verwendung der Geolocation-API für Beispielcode.

Spezifikationen

Specification
Geolocation
# geolocation_interface

Browser-Kompatibilität

Verfügbarkeit

Da Wi-Fi-basierte Ortungen oft von Google bereitgestellt werden, 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 Benutzers und/oder eine lokale App, um eine verbesserte Positionierung bereitzustellen.

Siehe auch