JavaScript und Geolocation

Seit Firefox 3.5, Opera 10.60 bzw. Safari/Webkit 5 ist es möglich per JavaScript mit Einverständniss des Benutzers seine Position zu ermitteln. Die Position wird dann entweder über eine angeschlossene GPS-Antenne oder über die verfügbaren WLans ermittelt. Die API dafür ist sehr leicht zu benutzen.

Zunächst sollte geprüft werden ob der benutzte Browser Geolocation unterstützt. Das geht wie folgt:

if (!navigator.geolocation) {
	alert('Sorry, dein Browser unterstützt keine Geolocation-API');
}

Jetzt ist es möglich die aktuelle Position abzufragen:

navigator.geolocation.getCurrentPosition(function(position) {  
	alert('Deine aktuelle Position ist: Lat: ' + position.coords.latitude + ' Long: ' + position.coords.longitude);  
}, function(error) { alert('Fehler beim finden der Position. Fehler: ' + error.message); });

und bei jeder Änderung der Position erneut ein Event auszulösen:

var = locationHandler = navigator.geolocation.watchPosition(function(position) {  
	alert('Deine neue Position ist: Lat: ' + position.coords.latitude + ' Long: ' + position.coords.longitude); 
}, function (e) {}, {enableHighAccuracy:true, maximumAge:120 * 1000, timeout:27000});

Hierbei kann man angeben

  • enableHighAccuray: ob man auf hohe Genauigkeit setzen möchte (sofern diese vom Gerät unterstützt wird)
  • maximumAge: (in ms) wie alt die letzte Position maximal sein darf – je kleiner dieser Wert, desto öfterst wird auf dem Gerät die aktuelle Position abgefragt.
  • timeout: (in ms) wann die Positionsbestimmung abgebrochen werden soll wenn sie nicht erfolgreich ist

Wenn man die Positionsüberwachung wieder abbrechen will, hilft folgender API-Call weiter:

navigator.geolocation.clearWatch(locationHandler);

Sehr nützlich, vorallem wenn man eine Webseite für Smartphones bastelt 😉

 

Hello World in Android

Seit kurzem befasse ich mich mit der Programmierung von „Apps“ für Android-Handys. Hier möchte ich nun meine „ersten Schritte“ festhalten:

Zuerst habe ich das Android-SDK von der offiziellen Google-Seite (http://developer.android.com/sdk/index.html) runtergeladen. Dann ist noch Eclipse (http://www.eclipse.org/downloads/) und ein JavaJDK (http://www.oracle.com/technetwork/java/javase/downloads/index.html) nötig. Nachdem alles herunter geladen ist, muss erst das JavaJDK und dann das Android-SDK installiert werden. Jetzt kann Eclipse gestartet werden.

In Eclipse erstellt ihr dann unter New > Project > Android > Android Project ein neues Adroid Projekt. Beim ersten ausführen wird sich Eclipse mit einer Fehlermeldung melden, dass R.java nicht vorhanden sei. Einfach Eclipse neu starten und dies sollte behoben sein. Bei dem nächsten Start-Versuch, wird Eclipse melden, dass keine AVD (Virtuelles Android-Gerät) vorhanden ist, allerdings kann man dann direkt eins anlegen. Nun startet in der AVD stundenlang Android und dann eure Anwendung die in etwa „Hello World, Hello World“ ausgibt.

Das war’s für’s erste, weitere Informationen findet ihr natürlich auf der offiziellen Android SDK Seite, sowie weitere Code-Snippets und Startup-Codes.