您好,我是离子技术的学习者,目前在我的应用程序中,我正在尝试使用以下代码获取用户位置,但无法正常工作,我是指 lat 和 longs 即将到来但是当用户将一个位置移动到另一个位置时,位置纬度非常缓慢,并且渴望更改,是否有更好的解决方案来获取用户当前位置,有人可以帮助我
this.geolocation.getCurrentPosition().then((resp) => {
}).catch((error) => {
console.log('Error getting location', error);
});
let watch = this.geolocation.watchPosition();
watch.subscribe((data) => {
this.data = data;
console.log("----->Watch latitude" + data.coords.latitude);
console.log("-----> Watch logitude" + data.coords.longitude)
console.log("-----> Watch accuracy" + data.coords.accuracy)
});
答案 0 :(得分:0)
您可以通过启用enableHighAccuracy选项来提高准确性:
this.geolocation.getCurrentPosition({ enableHighAccuracy: true })
或
this.geolocation.watchPosition({ enableHighAccuracy : true, timeout: 10000 })
您还可以传递参数以增加呼叫的频率,例如超时,这在自述文件中进行了说明:
“ enableHighAccuracy:提供一个提示,表明应用程序需要可能的最佳结果。默认情况下,设备会尝试使用基于网络的方法来检索位置。将此属性设置为true会告诉框架使用更准确的方法,例如卫星定位。(布尔)
timeout:允许从调用传递到navigator.geolocation.getCurrentPosition或geolocation.watchPosition的最大时间长度(毫秒),直到执行相应的geolocationSuccess回调为止。如果在这段时间内未调用geolocationSuccess回调,则会将geolocationError回调传递给PositionError.TIMEOUT错误代码。 (请注意,当与geolocation.watchPosition结合使用时,geolocationError回调可以在每个超时毫秒的时间间隔内调用!)(数字)
maximumAge:接受一个年龄不大于指定时间(以毫秒为单位)的缓存位置。 (数字)”