Die W3C Geolocation API ist ein einheitliche Browser-Schnittstelle zum Ermitteln des geographischen Standorts des zugehörigen Endgeräts.[1] Dei API definiert eine Reihe von ECMAScript-Objecten über die sich einmalig oder dauerhaft Informatinen über die Position des Geräts auslesen lassen. Die Ermittlung der Geoposition selbst wird dabei vom Breder bzw. Betriebssystem auf dem jeweiligen Endgerät durchgeführt und ist nicht Teil der API. Die Quellen der Ortsinformationen sind dabei die IP-Adresse (mittels Geotargeting), das WLAN (mittels WLAN-Kartographie), die Funkzelleninformation des Mobilfunknetztes (GSM/CDMA2000) oder das GPS-Satelliten-Systems. Da diese Quellen extreme Unterschiede in ihrer Genauigkeit aufweisen (von wenigen Metern bis hin zu etlichen Kilometern) gibt die API neben den jeweils genausten aktuelle verfügbaren Positionsdaten auch einen Wert für deren Genauigkeit zurück.
Browsernunterstützung
Während Geolocation API heute praktisch von allen aktuellen Versionen der verbreiteteren Mobil- und Desktop-Browser unterstützt wird[2], war diese Technologie bei ihrer Einführung häufig nur über das mittlerweile eingestellte Browser-Plugin Google Gears verfügbar.
Verwendung
Die Ermittlung der Positionsdaten erfolgt asyncron. Die Daten sind also nicht in Echtzeit verfügbar, sondern werden von der API an eine Callback-Funktion zurückgegeben, sobald sie ermittelt wurden. Aus Sicherheits- und Datenschutzgründen muss dabei die Abfragen der Positionsdaten zumeist auch noch vom Nutzer der Website bestätigt werden.
Der folgende Javascript-Code überprüft ob die Geolocation-API im Browser verfügbar ist und übergibt diese im Erfolgsfall an die 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
- ↑ Can I use Geolocation? CanIUse.com, abgerufen am 7. Juni 2014 (Datenbank zur Browserunterstützung verschiedener Webtechnologien).