Mobile Endgeräte werden immer wichtiger bei der Konzeption von Internetseiten und -anwendungen. Ebenso die damit einhergehende Möglichkeit die Geräte über GPS oder über das GSM Netz zu orten um ortbasierte Dienste anbieten zu können.
Dabei muss jedoch nicht in jedem Fall eine App auf dem Handy installiert werden, die auf den eingebauten GPS Sensor zugreift, für viele Geräte genügt schon die Java Script Library Geo Location Java Script in Verbindung mit Google Gears. Dies lässt eine Ortung über moderne Browser von normalen Computern zu, aber auch auf mobilen Endgeräten.
Ich habe für die Nutzung von geoJS ein Beispiel implementiert, das den Längen- und Breitengrad ausliest und ausgibt. Die Genauigkeit ist dabei auf zwei Kommastellen begrenzt. Ich habe während der Umsetzung bemerkt, dass die Genauigkeit bei mobilen Endgeräten (Testgerät war ein Blackberry Bold 9000) erst nach etwa drei Durchläufen besser wird, weil zu Beginn der Sensor (GPS) teilweise nicht bereit ist. Deshalb werden im Beispiel fünf aufeinanderfolgende Abfragen durchgeführt.
Um geoJS nutzen zu können, muss vorerst die Gears Library und das geoJS initialisiert werden.
<script src="http://code.google.com/apis/gears/gears_init.js" type="text/javascript" charset="utf-8"></script> <script src="lib/geo.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
Mit geo_position_js.init() kann die Verfügbarkeit der Unterstützung von geoJS geprüft werden. Mit der Funktion geo_position_js.getCurrentPosition() kann dann die Position abgerufen werden. Callback-Funktionen für den erfolgreichen und fehlerhaften Abruf können definiert werden. Weiterhin können viele andere Parameter für die Bestimmung der Koordinaten gesetzt werden. Diese Parameter orientieren sich an den Vorgaben des W3C.
<script type="text/javascript">
<!--
$(document).ready(function(){
var num = 0;
if(geo_position_js.init()){
$("#response").html("getting the data...");
updateLoop();
}
else{
alert("Functionality not available");
}
function updateLoop(){
num++;
geo_position_js.getCurrentPosition(success_callback,error_callback,{enableHighAccuracy:true, maximumAge:0, responseTime:20});
if(num<5){
setTimeout(updateLoop, 2500);
}
};
function success_callback(p){
$("#response").html('lat='+p.coords.latitude.toFixed(2)+';lon='+p.coords.longitude.toFixed(2));
$("#updateElement").append('lat='+p.coords.latitude.toFixed(2)+';lon='+p.coords.longitude.toFixed(2)+"<br />");
}
function error_callback(p){
$("#response").html('error='+p.code);
$("#updateElement").append('error='+p.code+'/message='+p.message);
}
});
-->
</script>
Offiziell werden durch das Java Script folgende Plattformen unterstützt: iOS, Android, Blackberry OS, Browsers with Google Gears support (Android, Windows Mobile), Nokia Web Run-Time (Nokia N97,…), webOS Application Platform (Palm Pre), Torch Mobile Iris Browser, Mozilla Geode. Negativ ist, dass in fast allen Smartphones muss das Geo Location Java Script explizit in den Browsereinstellungen erlaubt werden. Desweiteren lässt die maximale Genauigkeit von zwei Stellen nach dem Komma eine maximale Ortung auf eine Gegend im Umkreis von etwa 500m zu.
Verwandte Themen:



