Cordova - Geolokalizacja
Geolokalizacja służy do uzyskiwania informacji o szerokości i długości geograficznej urządzenia.
Krok 1 - Instalacja wtyczki
Możemy zainstalować tę wtyczkę, wpisując następujący kod do command prompt okno.
C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-geolocation
Krok 2 - Dodaj przyciski
W tym samouczku pokażemy, jak uzyskać aktualną pozycję i jak obserwować zmiany. Najpierw musimy utworzyć przyciski, które będą wywoływać te funkcje.
<button id = "getPosition">CURRENT POSITION</button>
<button id = "watchPosition">WATCH POSITION</button>
Krok 3 - Dodaj detektory zdarzenia
Teraz chcemy dodać detektory zdarzeń, gdy urządzenie jest gotowe. Dodamy poniższy przykład kodu doonDeviceReady funkcja w index.js.
document.getElementById("getPosition").addEventListener("click", getPosition);
document.getElementById("watchPosition").addEventListener("click", watchPosition);
Krok 3 - Utwórz funkcje
Należy utworzyć dwie funkcje dla dwóch detektorów zdarzeń. Jeden posłuży do uzyskania aktualnej pozycji, a drugi do oglądania pozycji.
function getPosition() {
var options = {
enableHighAccuracy: true,
maximumAge: 3600000
}
var watchID = navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
function onSuccess(position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};
function onError(error) {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
}
function watchPosition() {
var options = {
maximumAge: 3600000,
timeout: 3000,
enableHighAccuracy: true,
}
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
function onSuccess(position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};
function onError(error) {
alert('code: ' + error.code + '\n' +'message: ' + error.message + '\n');
}
}
W powyższym przykładzie używamy dwóch metod - getCurrentPosition i watchPosition. Obie funkcje używają trzech parametrów. Po kliknięciuCURRENT POSITION przycisk, alert pokaże wartości geolokalizacji.
Jeśli klikniemy WATCH POSITIONprzycisk, ten sam alert będzie wyzwalany co trzy sekundy. W ten sposób możemy śledzić zmiany ruchu urządzenia użytkownika.
UWAGA
Ta wtyczka korzysta z GPS. Czasami nie może zwrócić wartości na czas, a żądanie zwróci błąd przekroczenia limitu czasu. Dlatego określiliśmyenableHighAccuracy: true i maximumAge: 3600000.Oznacza to, że jeśli żądanie nie zostanie ukończone na czas, użyjemy zamiast tego ostatniej znanej wartości. W naszym przykładzie ustawiamy maximumAge na 3600000 milisekund.