W3C Geolocation API

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. August 2010 um 00:44 Uhr durch TobbiM (Diskussion | Beiträge) (en->de). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Die W3C Geolocation API ist ein Versuch des W3C, eine einheitliche Schnittstelle für das Ermitteln von geographischen Ortsinformationen für ein klientseitiges Gerät zu schaffen[1]. Es definiert eine Reihe von Objekten, die mit dem ECMAScript-Standard übereinstimmen, die, sobald sie ausgeführt werden, der Zielanwendung die geographische Lage des Gerätes durch die Abfrage von Servern mit Ortsinformationen mitteilen. Die häufigsten Quellen mit Ortsinformationen sind IP-Adresse, W-LAN und die Bluetooth MAC-Adresse, RFID, WLAN-Verbindungsinformationen, oder die IDs von GPS und GSM/CDMA-Mobiltelefonen. Der Standort wird mit einer Genauigkeit übermittelt, die von der am besten verfügbaren Quelle von Ortsinformationen abhängt.

Verteilung in Web-Browsern

Webseiten können die Geolocation API auf zwei Arten verwenden: Direkt, sofern der Webbrowser dies unterstützt (dies ist der Fall mit Mozilla Firefox 3.5 und der aktuellen Version von Google Chrome); oder mit Google Gears[2]. Im letzteren Fall muss auf dem Ziel-Browser das Google Gears-Plugin installiert sein und die Internetseite muss Google Gears mit dem folgenden HTML-Code laden:

<script type="text/javascript" src="gears_init.js"></script>

Die Geolocation-API ist am besten geeignet für Web-Applikationen für mobile Geräte, beispielsweise PDAs und Smartphones. Allerdings ist die Unterstützung unter solchen Plattformen noch nicht weit verbreitet, da die Anzahl von verschiedenen Geräten und mobilen Browsern hoch ist (und diesen normalerweise eine Plugin-Architektur fehlt). Auf Desktop-Computern funktioniert die W3C Geolocation API in Firefox seit version 3.5 und in Google Chrome seit der letzten stabilen Version[3], iPhone and Android (firmware 2.0 +) and in Opera 10.6.[4]

Google Gears bietet Geolocation-Unterstützung für Internet Explorer ab Version 7.0 (als Gears-Plugin) und Google Chrome (worin Gears nativ unterstützt wird). Darüber hinaus wird Geolocation auf mobilen Geräten durch ein Plugin für den mobilen Browser Android (Vorversion 2.0) und Opera Mobile für Windows Mobile unterstützt.

Grundlegende Nutzung

Die wichtigsten Objekte, die im Code deklariert werden müssen, ist die Geolocation-API, in der die Haupt-Methoden für das Empfangen und Einpflegen der Position implementiert sind, die für das Anzeigen der Geräte-Position verwendet werden.

Wie funktioniert Geolocation

Obwohl die Implementation nicht genauer beschrieben ist, baut die W3C Geolocation-API auf bereits existierenden Technologien auf und wurde stark von der Geolocation API von Google Gears beeinflusst. Tatsächlich verwendet die Implementation der Geolokation von Firefox[5] Googles Netzwerkpositionsanbieter[6].

Google Gears Geolocation funktioniert, indem eine Reihe von Parametern, die einen Hinweis auf die aktuelle Ortsposition geben könnten, zu einem Network Location Provider Server (etwa: Netzwerkortsanbieter-Server) gesendet werden, welcher standardmäßig der von Google bereitgestellte ist. (code.l.google.com)[7]. Einige dieser Parameter sind eine Liste von Handy-Funktürmen und deren Signalstärke, sowie eine Liste der ermittelten WLAN-Netzwerke und deren Signalstärke. Diese Parameter werden in eine JSON-Nachricht eingebettet und an den Network Location Provider Server per HTTP POST-Methode verschickt. Basierend auf diesen Parametern kann der Network Location Provider Ihre Position erschließen.

Beispiel

Einfacher Javascript-Code der überprüft, ob die Geolocation-API im Browser verfügbar ist oder ob Google Gears verwendet werden muss, um das Geolocation-Objekt zu erstellen, und der dann die aktuelle Position des Gerätes anzeigt.

var gl = null;

function displayPosition(position) {
  p = document.getElementById("p");
  p.innerHTML = "<table border='1'><tr><th>Timestamp</th><td>"+ position.timestamp +
  "<tr><th>Latitude (WGS84)</th><td>" + position.coords.latitude + " deg</td></tr>" +
  "<tr><th>Longitude (WGS84)</th><td>" + position.coords.longitude + " deg</td></tr></table>";
}

function displayError(positionError) {
  alert("error")
}

try {
  if(typeof(navigator.geolocation) == 'undefined'){
    gl = google.gears.factory.create('beta.geolocation');
  } else {
    gl = navigator.geolocation;
  }
}catch(e){}

if (gl) {
  gl.getCurrentPosition(displayPosition, displayError);
} else {  
  alert("I'm sorry, but geolocation services are not supported by your browser.");  
}

Firefox und Google Gears haben einige Demonstrationen der Geolocation API:

Screenshots der Firefox Geolocation-Demo können unter WebScanNotes.com gefunden werden.

Quellen

  1. "W3C Geolocation API Specification", Editor: Andrei Popescu from Google Inc. , 22 December 2008. Retrieved 07 July 2009
  2. Geolocation API - Gears API - Google Code (9 July 2009)
  3. [1]
  4. Huib Kleinhout: Opera 10.60 goes final. In: My Opera. Opera Software, 1. Juli 2010, abgerufen am 2. Juli 2010.
  5. http://www.mozilla.com/en-GB/firefox/geolocation/
  6. http://code.google.com/apis/gears/geolocation_network_protocol.html
  7. WebScanNotes.com - W3C Geolocation API, WebScanNotes.com