web移动端定位使用总结

    技术2022-07-17  73

    前段时间再做微信公众号H5开发时,遇到需要使用定位功能,并且项目场景中要求非常高 1.能够实时更新用户位置到地图上 2.精度要求非常高 3.即使信号很弱的时候!!! 说实话,真的是困扰了非常长的一段时间。这期间使用了各个定位方式,都不太尽如人意。但是最后终于好歹还是比较好的解决了。下面总结下这中间使用的坑~~

    微信js-sdk定位 因为开发的微信网页,所以第一时间当然用的是微信自带的定位sdk,各种授权,签名以后,能定位了,正常(网络良好)环境下,没有太大问题。但是接下来就很恐怖了,我们的产品经理到地下停车场去测试!!然后发现地图上的定位点最远的时候会被打在当前位置以外2KM的地方。。然后宣告此方案无效(小朋友,你是否有很多问号???)

    高德定位 那就试试高德定位吧,因为本人接触高德地图相关API是最多的,而且项目中地图本身也就是使用的高德sdk,所以几下就换过去了。然后去测试,高德倒是不会出现定位到几公里以外的地方。但是问题就在于产品经理用的是好几年前的手机了(安卓6.0系统),他的手机在使用地图定位的时候,会出现幅度不定的范围内摆动的情况。 即:我站在这里没动,定位点总是飘来飘去的?这可不行。 :api返回给我的点位就是这样的哇。。(小问号,你是否有很多朋友???)

    百度地图 就没想过试百度的,哈哈哈。一个是百度的坐标系不一样,第二个也是它文档真的有点一言难尽~~

    H5 GPS定位 同时上面两种方式都是透过调用接口的形式获取定位,如果信号弱的话(地下室你还定啥位啊??),那获取到的位置就会偏移挺大的。 然后就使用H5原生的navigator定位,这个就不需要信号了,只要用户打开了GPS定位就行。然后发现正常情况下效果和高德的位置不相上下,所以感觉高德也是直接使用的H5 GPS定位的吧?

    然后我就佛了~~~~甚至什么呢,在地下停车场时,微信本身的地图、高德地图网页版,也都是一样的效果啊。但是,但是,但是就是要我解决啊??啊??啊?? 怎么解决嘛,微信、高德都没解决,要我怎么搞?就因为这个真的跟产品超了不知道多少。。。

    最后的最后吧,还是发现了一个能符合的api。qq.map ?嗯?我都奇怪了,腾讯qq用的定位和微信的居然还不是一个东西吗?反正试试嘛,试了以后发现,确实真的准了,精准度相当高。 研究了一下,其实他也是拿的GPS坐标,但是又到自己的服务端去进行了纠偏,具体的处理我们自然是看不到了,但是他处理后的坐标点确实就非常精准了,至少能达到我们项目的需求了。 文档地址传送门 而且还提供了watch直接监听位置变化,还省去了我定时获取位置。说实话,也就这个项目要求这么高,才让我知道了这几个定位的优劣势。 口水有点多,如果这篇经验之谈有帮助到你的话,点个赞再走呗。或者留言来一起讨论讨论

    Processed: 0.023, SQL: 10