wx.getLocation 不能获取最新位置
发布于 5 年前 作者 xiuyingdong 4796 次浏览 来自 问答

代码片断很简单:

    wx.getLocation({

      type: ‘gcj02’,

      success(location) {

        console.log(location)

      }

    })

我摸过出来的规律是:

  • 之前在位置 1,定位准确。

  • 退出小程序。

  • 移至位置 2,打开小程序,通过 wx.getLocation 得到的还是位置 1;多次调用,结果一样。

- 调用 wx.chooseLocation(),地图上的定位点会从位置 1 移至位置 2

- 再次打开小程序,通过 wx.getLocation 得到的就是位置 2 了


我的感觉是,需要在调用 wx.getLocation 时出现了定位图标,但并没有得到正确的位置、还是使用上次的位置。如果在微信中通过在聊天中「发送位置」来更新位置信息,就能得到正确的了。


遇到这个问题,真的是一点办法没有,还请官方内部确认下。目前,可能只能考虑通过百度等第三方来获取实时位置了。

2 回复

后台进去,是有更新位置的

怎么说呢,感觉是有一定概率;或者说,感觉位置缓存更新是有一定机制的。这也使得,这个问题不是必现的;但一旦出现就很难受。

比如,我很久没更新位置,获取位置就需要较长时间。获取后立即再次获取,就只需要很短时间。这说明第 2 次是从缓存内获得的,或者至少是考虑了缓存信息。

我比较怀疑是这个缓存机制有问题。

回到顶部