Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 Nutzer, seine Position an Webanwendungen weiterzugeben, falls er dies wünscht. Aus Datenschutzgründen wird der Nutzer 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 Nutzers wird den Nutzer beim ersten Anfordern um Erlaubnis bitten, Standortzugriff zu gewähren.

Hinweis: Das <geolocation>-Element bietet einen alternativen Mechanismus zum Zugreifen und Verarbeiten von Geolokalisierungsdaten, der einige der Schwächen der Geolocation API löst: Es stellt eine konsistente Benutzeroberfläche und einen intuitiveren Berechtigungsverwaltungsprozess bereit.

Konzepte und Nutzung

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

Auf die Geolocation API wird über einen Aufruf von navigator.geolocation zugegriffen; dies veranlasst den Browser des Nutzers, um Erlaubnis zu bitten, auf seine Standortdaten zuzugreifen. Wenn er zustimmt, verwendet der Browser die bestmögliche Funktionalität des Geräts, um diese Informationen zu erhalten (zum Beispiel GPS).

Der Entwickler kann nun in verschiedenen Wegen auf diese Standortinformationen zugreifen:

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

  • Ein zwingender Erfolgscallback: Wenn der Standortabruf erfolgreich ist, wird der Callback mit einem GeolocationPosition-Objekt als einzigem Parameter ausgeführt, das Zugang zu den Standortdaten bietet.
  • Ein optionaler Fehlercallback: Wenn der Standortabruf fehlschlägt, wird der Callback mit einem GeolocationPositionError-Objekt als einzigem Parameter ausgeführt, das Zugang zu Informationen darüber bietet, was schiefgelaufen ist.
  • Ein optionales Objekt, das Optionen für den Abruf 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, um die aktuelle Position des Nutzers abzurufen, Änderungen seiner Position zu beobachten und einen zuvor gesetzten Beobachter zu entfernen.

GeolocationPosition

Repräsentiert die Position eines Nutzers. Eine Instanz von GeolocationPosition wird bei einem erfolgreichen Aufruf einer der innerhalb von Geolocation enthaltenen Methoden innerhalb eines Erfolgscallbacks zurückgegeben und enthält einen Zeitstempel sowie eine Instanz eines GeolocationCoordinates-Objekts.

GeolocationCoordinates

Stellt die Koordinaten der Position eines Nutzers dar; eine Instanz von GeolocationCoordinates enthält Latitude, Longitude und andere wichtige verwandte Informationen.

GeolocationPositionError

Ein GeolocationPositionError wird bei einem fehlgeschlagenen Aufruf einer der innerhalb von Geolocation enthaltenen Methoden innerhalb eines Fehlercallback zurückgegeben und enthält einen Fehlercode und eine Nachricht.

Erweiterungen zu anderen Schnittstellen

Der Einstiegspunkt in die API. Gibt eine Instanz eines Geolocation-Objekts zurück, von dem aus alle anderen Funktionalitäten zugänglich sind.

Sicherheitsüberlegungen

Die Geolocation API ermöglicht es Nutzern, über sichere Kontexte programmgesteuert auf Standortinformationen zuzugreifen.

Der Zugriff kann zusätzlich durch die Permissions Policy-Direktive geolocation kontrolliert werden. Die standardmäßige Erlaubnisliste für geolocation ist self, was den Zugriff auf Standortinformationen nur in verschachtelten Frames mit demselben Ursprung erlaubt. Für die Nutzung durch Dritte muss ein Permissions-Policy-Response-Header gesetzt werden, um Dritten aus einem bestimmten Ursprung die Erlaubnis zu erteilen:

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

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

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

Geolokalisierungsdaten können Informationen offenbaren, die der Gerätebesitzer nicht teilen möchte. Deshalb müssen Nutzer ausdrücklich die 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 Gültigkeitsdauer einer erteilten Erlaubnis hängt vom Benutzeragenten ab und kann zeitbasiert, sitzungsbasiert oder sogar dauerhaft sein. Die Permissions API-Erlaubnis geolocation kann verwendet werden, um zu testen, ob der Zugriff zur Nutzung von Standortinformationen granted, denied oder prompt ist (erfordert die Bestätigung einer Eingabeaufforderung durch den Benutzer).

Beispiele

Siehe Verwendung der Geolocation API für Beispielcode.

Spezifikationen

Specification
Geolocation
# geolocation_interface

Browser-Kompatibilität

Verfügbarkeit

Da die positionsbestimmende Dienstleistung oft von Google bereitgestellt wird, kann die normale Geolocation API in China möglicherweise nicht verfügbar sein. Sie können lokale Drittanbieter wie Baidu, Autonavi oder Tencent nutzen. Diese Dienste verwenden die IP-Adresse des Nutzers und/oder eine lokale App, um verbesserte Standortinformationen bereitzustellen.

Siehe auch