getLocation经常返回上次附近的位置信息
发布于 6 年前 作者 qiangtang 6960 次浏览 来自 问答

在A点,通过wx.getLocation获取位置后,移动到另外一个位置B,再次wx.getLocation(),获取到的位置是A附近的位置,用wx.openLocation()打开地图,过一会儿(有时几秒、有时几十秒)后,又直接移到正确位置上去了;相应的getLocatoin的数据也成正确的了

整体感觉:位置移动后,getLocation返回的数据不对,要等一会儿,或者用openLocation打开一次地图再等一会儿,再次调用才返回正确的数据

备注:

(1)A点和B点相差3公里以上,开车移动,出现此问题的概率比较大,自己测试了5次,有3次不对,客户反馈错误率90%

(2)如果有几十米或一二百米误差,都能接受,现在误差是几公里

(3)静止不动,getLocation可以返回正常的数据,误差几十米到一二百米不等,可以接受

(4)测试手机:小米5s、iPhone7Plus

问下,wx.getLocation(),如何__能保证__每次获取的都是当前位置的信息?而且是第一次调用时

有小误差可以接受

wx.getLocation({
 
    type: 'gcj02',
 
    success: function (res) {
 
        var latitude = res.latitude
 
        var longitude = res.longitude
 
        wx.openLocation({
 
            latitude: latitude,
 
            longitude: longitude,
 
            scale: 28
 
        })
 
    }
 
})
6 回复

兄弟你的问题解决了吗?怎么解决的啊

同样的问题。

我个人猜测的原因是:每次wx.getLocation都是先读取缓存的上次位置信息,返回结果,然后再按照某种机制后台获取当前的位置信息,更新缓存。

反正我没搞懂其中的真正的机制,所以一般会在app.js,无用地调用一次wx.getLocation,返回结果不做任何处理,目前看来好象有点用处。

多次调用之间的时间间隔有多少?

回到顶部