27.102014

HTML5 Geolocation API

Die Geolocation API ist ein sehr cooles Mittel um den aktuellen Standort des Users zu bestimmen. Im Optimalfall sogar auf einem Meter genau. Wie das funktioniert und was für Einschränkungen es es gibt erfahrt ihr hier.

Was ist die Geolocation API?

Die Geolocation API ist Teil der HTML5 Javascript Schnittstellen des Browser und gehört zu den offiziellen W3C-Spezifikationen. Daher ist der aktuelle Browser-Support schon beachtlich gut. Mithilfe der API lässt sich die Latitude und Longitude des Standorts auslesen.

Um den Standort zu ermitteln steht dem Browser folgende Möglichkeiten:

  • Benutzerdefinierter Standort
  • IP-Adresse
  • WLAN-Netzwerke
  • Funk-Netzwerke (Handynetz)
  • GPS Sender

Welche der Möglichkeiten benutzt werden hängt ganz davon ab, welche überhaupt verfügbar sind. Zudem benutzt der Browser möglichst immer die Art um den Standort genau zu definieren. Zum Beispiel kann das ein GPS Sender besser als Mithilfe der IP-Adresse.

Wie wird die Geolocation API verwendet?

Damit wir die Koordinaten auslesen können brauchen wir nur ein kleines Javascript.

function showPosition(position) {
  console.log('Latitude: ' + position.coords.latitude);
  console.log('Longitude: ' + position.coords.longitude);
}
if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(showPosition);
}

Und schon können wir die Koordinaten in unserer Konsole begutachten.

Welche Einschränkungen gibt es?

Damit nicht jede x beliebige Webseite deinen Standort auslesen kann (was Datenschutztechnisch höhst gefährlich wäre) musst du der Verwendung der Geolocation API explizit zustimmen.

Einsatzfelder

Ein einfaches aber denkbares Beispiel wäre die Geolocation API mit Google Maps zu verknüpfen. Hier ein Link mit meinen Koordinaten mit Google Maps.

Es wäre aber alles möglich. Da gibt es keine Grenzen!

Browser Support

  • Google Chrome
  • Mozilla Firefox 3.5+
  • Opera 10.6+
  • Safari
  • Internet Explorer 9

Geräte Support

  • Android (seit Version 2.0)
  • iOS (seit OS 3.0)
  • Windows Phone 7
  • Blackberry OS 6
  • Opera Mobile 10.1+