在工作中,大神程序员们总是能解决不同类型的编程难题,迎接不同类型的编程挑战,虽然不是人人都有大神的技术,但看看大神们的技术经验分享,学以致用,不仅可以帮助大家进一步解编程语言的奥妙,学习到更多新的方法,没准能让你也成为处理问题的高手,变得越来越优秀,走上人生巅峰,迎娶白富美....想想还有点小激动呢!
话不多说!今天,小埃为大家整理了一篇技术经验分享——
《如何解决微信H5精确定位的问题》
“尝试方案1--html5(需要https)通常我们在通过html5页面,获取用户的定位信息时,都是通过html5提供的用户位置信息的API。在一开始的时候,并不清楚需要采用https,而且网站是http访问的。直接调用html5的位置信息的api获取到的结果,发现有很大偏差。在通过查阅一番资料,发现原来这需要采用https。
主要原因是因为用户位置信息是敏感数据,而http本身是不安全的,数据在传输过程中是没有加密的,容易被窃取。
可是,客户目前是没有https证书的,而且之后,也因为服务器环境的一些问题,客户不愿意实施https。
无耐,只能采用其他办法。
“尝试方案2--微信jssdk提供的定位(定位精度不满足)因为网页是基于微信h5的,所以决定尝试使用微信的定位功能,使用JSSDK。
但不幸的是,经过一番折腾后发现,微信jssdk返回的定位坐标,精度也是不准的。
“尝试方案3--百度定位(依然需要https才能保证精度)后来,又尝试使用百度的定位来处理,然而依然不理想,也是不准的。而且百度官方文档也有说明,需要网站是https的。直到目前为止,几乎是没有解决办法了。又没有https,又不给定位坐标,怎么办呢?
又经过了番摸索,找出了新路子。
腾讯定位--在没有https下,实践可用的方案腾讯定位主要有以下几个步骤:
使用weixin-js-sdk获取签名授权 npm install weixin-js-sdk
(签名授权在线上地址生效,不能本地测试)
获取腾讯坐标
将腾讯坐标转成百度坐标
利用上边百度定位代码,带入3转好的百度坐标,读取详细地址。
代码及相关注释:
详细地址:{{address}}
定位结果:{{position}}