W3C Geolocation API

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

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 (mittels Geotargeting), WLAN und die Bluetooth-MAC-Adresse, RFID, WLAN-Verbindungsinformationen, oder die IDs von GPS und GSM/CDMA2000-Mobiltelefonen. Der Standort wird mit einer Genauigkeit übermittelt, die von der am besten verfügbaren Quelle von Ortsinformationen abhängt.

Verteilung in Web-Browsern[Bearbeiten]

Webseiten können die Geolocation API auf zwei Arten verwenden: Direkt, sofern der Webbrowser dies unterstützt (dies ist bei den aktuellen Versionen von Firefox, Chrome, Opera, Safari und Internet Explorer der Fall); 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 Version 5.0,[3] iPhone und Android (firmware 2.0 +) und in Opera 10.6.[4]

Google Gears bietet Geolocation-Unterstützung für Internet Explorer ab Version 7.0 (als Gears-Plugin) oder ab Version 9.0 (nativ) 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[Bearbeiten]

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

Wie funktioniert Geolocation?[Bearbeiten]

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 WLANs 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[Bearbeiten]

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[Bearbeiten]

  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. Google Chrome Blog
  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

Weblinks[Bearbeiten]