- getLocation经常返回上次附近的位置信息
在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[代码] [代码] [代码][代码] })[代码] [代码] [代码][代码]}[代码] [代码]})[代码]
2018-09-05 - 关于小程序获取定位改为直接调用GPS硬件以获得更加精确地址的建议
通过小程序定位获得当前位置的功能需求很多人会用到,未来应用的场景肯定也是越来越多,但是小程序获取定位getLocation()有个比较顽固、随机出现但常见的问题,就是定位不准确/不及时的问题,相信我不是第一个遇到的,也不会是最后一个,而且这个问题时不时出现、影响体验。 例如扫码签到同时上送地址的应用场景,我明明已经到B地点了,但是上送的地址却还是原来的A地点(很多人说可能是误差,其实不是,我们遇到太多次了,特别是上下班这种短时间内区域跨度比较大的情况下经常出现),猜测可能是定位被微信缓存了没有真正通过GPS硬件获得实时地址的缘故? 因为遇到的比较多了,我们使用iphone8(普遍性)做过多次试验均出现此问题: ①我在B地点扫码签到发现上送地点是A; ②打开百度/高德地图检查定位是不是不准,点击“定位/重新定位”使得地址正确的在B或B附近; ③重新扫码签到,发现上送的地点还是A; 证明:getLocation()获得的地址被缓存了/没有通过GPS硬件获得实时地址 关键问题是A和B地点的误差范围比较大,大到超出5km的情况都出现过(已经在围栏误差范围外了),地球/火星坐标系等等参数已经试过无数次了在生产复杂环境下还是没有得到解决。 希望官方对获取定位的API能有优化,建议小程序获取定位改为直接调用GPS硬件以获得更加精确地址。 如果使用方法不对也请指正,谢谢。
2018-10-10