Zum Inhalt springen

W3C Geolocation API

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 7. Juni 2014 um 20:19 Uhr durch Martin Kraft (Diskussion | Beiträge) (Verteilung in Web-Browsern: Kürzung und aktuellerer Stand). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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.

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.

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[3] Googles Netzwerkpositionsanbieter.[4]

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).[5] 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;
    }
}

Einzelnachweise

  1. "W3C Geolocation API Specification", Editor: Andrei Popescu from Google Inc. , 22 December 2008. Retrieved 07 July 2009
  2. Can I use Geolocation? CanIUse.com, abgerufen am 7. Juni 2014 (Datenbank zur Browserunterstützung verschiedener Webtechnologien).
  3. http://www.mozilla.com/en-GB/firefox/geolocation/
  4. http://code.google.com/apis/gears/geolocation_network_protocol.html
  5. WebScanNotes.com - W3C Geolocation API, WebScanNotes.com