Mit der Geolocation-Klasse können Events registriert werden, welche die geographische Position des Gerätes mit einen Timestamp bekommen.
Anleitung:
Erstellen des Geolocation objektes. Dieses muss sich an unsere Webseite anhängen, um Events abhören zu können:
// Wir befinden uns gerade im Konstruktor einer View final Geolocation geolocation = new Geolocation(this);
Danach können wir unsere Listener registrieren:
// Gibt die Latitude und Longitude in der Konsole aus geolocation.addPositionListener(position -> { final Coordinates coordinates = position.getCoords(); System.out.println(String.format("Coordinates: lat=%f, long=%f", coordinates.getLatitude(), coordinates.getLongitude())); }); // Gebe die Fehlermeldung aus, falls etwas nicht funktioniert geolocation.addPositionErrorConsumer(error -> { System.err.println(error.getMessage()); });
Wenn die Position nur einmalig ausgegeben werden soll, kann getCurrentPosition(PositionOptions) aufgerufen werden:
geolocation.getCurrentPosition(PositionOptions.Default());
Um das Abhören der Position zu starten, kann watchPosition(PositionOptions) aufgerufen werden:
geolocation.watchPosition(PositionOptions.Default());
Hinweis:
Latitude, Longitude und Accuracy werden immer gesetzt.
Altitude, Altitude, Accuracy, Heading und Speed müssen vom Browser nicht gesetzt werden, diese Werte können also auch null enthalten!