Ionico - Geolocalizzazione di Cordova
Questo plugin viene utilizzato per aggiungere un plugin di geolocalizzazione all'app Ionic.
Utilizzo della geolocalizzazione
C'è un modo semplice per utilizzare il plug-in di geolocalizzazione. Dobbiamo installare questo plugin dalla finestra del prompt dei comandi.
C:\Users\Username\Desktop\MyApp>cordova plugin add cordova-plugin-geolocation
Il codice del controller seguente utilizza due metodi. Il primo è il filegetCurrentPositionmetodo e ci mostrerà la latitudine e la longitudine correnti del dispositivo dell'utente. Il secondo è il filewatchCurrentPosition metodo che restituirà la posizione corrente del dispositivo quando la posizione viene modificata.
Codice controller
.controller('MyCtrl', function($scope, $cordovaGeolocation) {
var posOptions = {timeout: 10000, enableHighAccuracy: false};
$cordovaGeolocation
.getCurrentPosition(posOptions)
.then(function (position) {
var lat = position.coords.latitude
var long = position.coords.longitude
console.log(lat + ' ' + long)
}, function(err) {
console.log(err)
});
var watchOptions = {timeout : 3000, enableHighAccuracy: false};
var watch = $cordovaGeolocation.watchPosition(watchOptions);
watch.then(
null,
function(err) {
console.log(err)
},
function(position) {
var lat = position.coords.latitude
var long = position.coords.longitude
console.log(lat + '' + long)
}
);
watch.clearWatch();
})
Potresti aver notato anche il file posOptions e watchOptionsoggetti. Stiamo usandotimeout per regolare la durata massima consentita in millisecondi e enableHighAccuracyè impostato su false. Può essere impostato sutrueper ottenere i migliori risultati possibili, ma a volte può portare ad alcuni errori. C'è anche unmaximumAgeopzione che può essere utilizzata per mostrare come viene accettata una vecchia posizione. Utilizza i millisecondi, lo stesso dell'opzione timeout.
Quando avviamo la nostra app e apriamo la console, registrerà la latitudine e la longitudine del dispositivo. Quando la nostra posizione viene modificata, illat e long i valori cambieranno.