Ionic - Cordova Geolocation
Dieses Plugin wird zum Hinzufügen eines Geolocation-Plugins zur Ionic-App verwendet.
Geolocation verwenden
Es gibt eine einfache Möglichkeit, das Geolocation-Plugin zu verwenden. Wir müssen dieses Plugin über das Eingabeaufforderungsfenster installieren.
C:\Users\Username\Desktop\MyApp>cordova plugin add cordova-plugin-geolocation
Der folgende Controller-Code verwendet zwei Methoden. Der erste ist dergetCurrentPositionMethode und es zeigt uns den aktuellen Breiten- und Längengrad des Geräts des Benutzers. Der zweite ist derwatchCurrentPosition Methode, die die aktuelle Position des Geräts zurückgibt, wenn die Position geändert wird.
Controller-Code
.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();
})
Vielleicht haben Sie auch das bemerkt posOptions und watchOptionsObjekte. Wir benutzentimeout um die maximale Zeitdauer einzustellen, die in Millisekunden vergehen darf und enableHighAccuracyist auf false gesetzt. Es kann auf eingestellt werdentrueum die bestmöglichen Ergebnisse zu erzielen, aber manchmal kann es zu Fehlern kommen. Da ist auch einmaximumAgeOption, mit der angezeigt werden kann, wie eine alte Position akzeptiert wird. Es werden Millisekunden verwendet, genau wie bei der Timeout-Option.
Wenn wir unsere App starten und die Konsole öffnen, werden die Breiten- und Längengrade des Geräts protokolliert. Wenn unsere Position geändert wird, wird dielat und long Werte ändern sich.