Ich entwickle ein einfaches POC, um die aktuelle Position anzuzeigen. Das Programm empfängt die Informationen von der geolocation.watchLocation, aber die Position wird nicht gebunden und auf dem Bildschirm angezeigt, bis ich die Schaltfläche STOP Überwachung drücke. Ist zu beachten, dass das Protokoll korrekt die KoordinatenNativeScript mit Angular2-Datenbindung arbeitet nicht mit Geolocation
zeigtJS: Start Monitoring ...
JS: Location: 49.6411839:6.0040451
JS: Stop Monitoring ...
import {Component} from "@angular/core";
import {Router} from "@angular/router";
import geolocation = require("nativescript-geolocation");
@Component({
selector: "TrackingPageSelector",
template:`
<StackLayout>
<Button [text]="watchId==0 ? 'Start Monitoring' : 'Stop Monitoring'" (tap)="buttonStartStopTap()"></Button>
<Label class="labelValue" [text]="latitude"> </Label>
<Label class="labelValue" [text]="longitude"> </Label>
</StackLayout>`
})
export class TrackingPageComponent {
latitude: number = 0;
longitude: number = 0;
watchId: number = 0;
constructor(private router: Router) {}
ngOnInit() {
if (!geolocation.isEnabled()) geolocation.enableLocationRequest();
}
public buttonStartStopTap() {
if (this.watchId != 0) {
console.log('Stop Monitoring ...');
geolocation.clearWatch(this.watchId);
this.watchId = 0;
} else {
console.log('Start Monitoring ...');
let _self = this;
this.watchId = geolocation.watchLocation(
function (loc) {
if (loc) {
_self.latitude = loc.latitude;
_self.longitude = loc.longitude;
console.log(`Location: ${_self.latitude}:${_self.longitude}`);
}
},
function(e){
this.errorMsg = e.message;
},
{desiredAccuracy: 3, updateDistance: 10, minimumUpdateTime: 1000 * 3}); // Should update every X seconds
}
}
}
Tatsächlich funktioniert die gelieferte Lösung! Ich habe den detectChanges-Vorschlag implementiert. Danke für Ihre Hilfe! –
Wenn dies Ihre Frage beantwortet, können Sie bitte die Frage als beantwortet markieren, indem Sie meine Antwort mit dem weißen Häkchen unter den Hoch-Runter-Tasten akzeptieren, um das Problem zu lösen. Vielen Dank! –