Die W3C Geolocation API ist ein einheitliche Browser-Schnittstelle zum Ermitteln des geographischen Standorts des zugehörigen Endgeräts.[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
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.
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 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
Der folgende Javascript-Code überprüft ob die Geolocation-API im Browser verfügbar ist und übergibt diese im Erfolgsfall an die Callback-Funktion showPosition, die die Geoposition des Gerätes dann als Alert-Meldung ausgibt. Mit einer zweiten Position showError werden die Fehler abgefangen und ausgegeben, die bei der Ermittlung der Geokoordinaten auftreten können.
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
alert('Ihr Browser unterstützt die W3C Geolocation API nicht');
}
function showPosition(position) {
alert(
'Die Geoposition dieses Geräts ist:\n'+
'Breitengrad: ' + position.coords.latitude + '° \n'+
'Längengrad: ' + position.coords.longitude + '°'
) ;
}
function showError(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
alert('Sie haben die Abfrage ihrer Geoposition verweigert.');
break;
case error.POSITION_UNAVAILABLE:
alert('Es sind keine Geopositionsdaten verfügbar.');
break;
case error.TIMEOUT:
alert('Das Timeout für die Ortsanfrage wurde überschritten');
break;
case error.UNKNOWN_ERROR:
alert('Ein unbekannter Fehler ist aufgetreten');
break;
}
}
Weblinks
Einzelnachweise
- ↑ "W3C Geolocation API Specification", Editor: Andrei Popescu from Google Inc. , 22 December 2008. Retrieved 07 July 2009
- ↑ Geolocation API - Gears API - Google Code (9 July 2009)
- ↑ Google Chrome Blog
- ↑ Huib Kleinhout: Opera 10.60 goes final. In: My Opera. Opera Software, 1. Juli 2010, abgerufen am 2. Juli 2010.
- ↑ http://www.mozilla.com/en-GB/firefox/geolocation/
- ↑ http://code.google.com/apis/gears/geolocation_network_protocol.html
- ↑ WebScanNotes.com - W3C Geolocation API, WebScanNotes.com