我目前面临一个不太好的问题。我已经创建了一个问题,但没有回应。我需要更改每个位置以更新摄像机中心位置。但这不会发生。刷新不是随着时间的推移而定义的。这对我的需求来说非常罕见。 Android和iOS是一样的。每分钟或类似的事情都会调用日志。
我也尝试了ngZone
之外的控制台日志,但它是一样的。
这就是我的配置代码:
let config = {
desiredAccuracy: 0,
stationaryRadius: 1,
distanceFilter: 0,
debug: true,
interval: 2000,
pauseLocationUpdates: false,
activityType: "AutomotiveNavigation"
};
this.backgroundGeolocation.configure(config).subscribe((location) => {
// Run update inside of Angular's zone
this.zone.run(() => {
if(this.map) {
this.map.getMyLocation().then( (userLocation: MyLocation) => {
console.log("INSIDE ZONE Google Maps Location \n LAT: " + userLocation.latLng.lat + "\nLNG: " + userLocation.latLng.lng);
this.userLocation = userLocation.latLng;
this.speed = userLocation.speed;
this.bearing = userLocation.bearing;
this.altitude = location.altitude;
this.cameraFollow();
this.notify(this.nearestReports[0]);
}).catch( error => {
alert("Background - NO GPS FOUND: " + error);
});
}
});
});
// Turn ON the background-geolocation system.
this.backgroundGeolocation.start();
答案 0 :(得分:0)
考虑使用另一个名为Geolocation
的Ionic Native插件。
在那里有一个非常方便的watchPosition()
功能,看起来就像你在寻找什么。这是一个例子:
let options = {
enableHighAccuracy: true,
timeout: Infinity, // don't return response until new ping is available from OS, to save battery
maximumAge: 0
};
const subscription = this.geolocation.watchPosition(options)
.filter((p) => p.coords !== undefined) //Filter Out Errors
.subscribe(position => {
console.log(position.coords.longitude + ' ' + position.coords.latitude);
});
不要忘记在不需要时停止订阅以节省电池费用:
subscription.unsubscribe();