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:

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 von Geolocation in einem Erfolgs-Callback zurückgegeben und enthält einen Zeitstempel plus eine Instanz des GeolocationCoordinates-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 von Geolocation 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:

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

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

html
<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.

Siehe auch