zoukankan      html  css  js  c++  java
  • 微信小程序getLocation定位偏差问题

    2021年5月11日13:23:17

    首先是坐标系的问题

    WGS84 :地理坐标系统,Google Earth和中国外的Google Map使用,另外,目前基本上所有定位空间位置的设备都使用这种坐标系统,例如手机的GPS系统。
    GCJ-02:投影坐标系统,也就是我们平常所说的火星坐标系,Google Map中国、高德和腾讯地图使用,这个是中国自己在WGS84基础上加密而成,目的显而易见。
    BD09:投影坐标系统,百度地图使用,在GCJ-02基础上二次加密而成。

    国内各地图API坐标系统比较

    API坐标系
    百度地图API 百度坐标
    腾讯搜搜地图API 火星坐标
    搜狐搜狗地图API 搜狗坐标
    阿里云地图API 火星坐标
    图吧MapBar地图API 图吧坐标
    高德MapABC地图API 火星坐标
    灵图51ditu地图API 火星坐标


     
     
     
     
     
     
     
     
     
     
     
     
    当然你可以用过坐标转换来提高精度,但是
    https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html
     

    wx.getLocation返回的精度只有五位数,相比其他地图API返回8-10位或者更多,即使转换也不是一个好办法

    后台使用的是腾讯地图定位的gps,小程序默认返回的是wgs84,经过转换依然偏差还是很大,解决精度的办法就是

    wx.getLocation({
     type: 'gcj02',
     success (res) {
       const latitude = res.latitude
       const longitude = res.longitude
       const speed = res.speed
       const accuracy = res.accuracy
     }
    })
    

     即使开启高精度 isHighAccuracy: true 依然没什么屁用

    gcj02的坐标就是腾讯本身使用的坐标体系,所以在微信接口内部转换的精度损失会很小,经过测试,基本定位精度会显示在0.01KM,基本不影响用户使用
     
    参考
    链接:https://www.jianshu.com/p/c39a2c72dc65

     
     
    QQ群 247823727 博客文件如果不能下载请进群下载
    如果公司项目有技术瓶颈问题,如有需要,请联系我,提供技术服务 QQ: 903464207
  • 相关阅读:
    sqlplus edit 方式设置成vi
    oracle minus union intersect
    子查询中可以包含order by 子句--(在from里面)
    Linux 7 Ansible 初学 一个简单的 playbook 学习 yum 模块
    Linux 7 Ansible 初学 配置被控制机器的 YUM 源
    Linux 7 安装 Ansible 并作基本的配置
    Linux 7 安装开发工具包 Development Tools
    Linux 7.0 安装 mariadb 数据库及初始化,创建数据库,创建用户
    Linux bash初学 if语句
    Linux bash初学 case语句
  • 原文地址:https://www.cnblogs.com/zx-admin/p/14754894.html
Copyright © 2011-2022 走看看