用weixin获取地理位置接口返回的经伟度在百度地图使用误差太多,何解?

发布于 2022-09-01 17:38:00 字数 926 浏览 38 评论 0

要在公众号里面做一个活动,需要获取用户的位置,我是用JS SDK来获取的用户的经伟度,然后用百度地图输出详细地址,结果相差两条街,但是直接使用微信内置地图查看位置的时候,定位蛮准备的呢,为什么呢,如果用微信内置地图查看位置,要怎么把地址输出来呢。

wx.ready(function () {
    wx.getLocation({
      type: 'gcj02', //wgs84 或 gcj02
      success: function (res) {
        var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
        var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
        var MJKD_LATLNG = latitude + ',' + longitude;
        var url = 'http://api.map.baidu.com/geocoder/v2/?ak=ak&callback=renderReverse&location=' + MJKD_LATLNG + '&output=json&pois=1';
        $.get(url, function(data) {
          if(data.status === 0) {
            alert(data.result.formatted_address + '=>' + data.result.sematic_description);
          }
        }, 'jsonp');
      },
      fail: function(res) {
        alert('获取位置失败');
      }
    });
  });

不知道大家可否有什么好的方式获取比较确认的经伟度呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

泛泛之交 2022-09-08 17:38:00

gps获取到的坐标需要抓换。百度地图提供的有:
服务API 用来转换GPS设备获取的坐标、google地图坐标、soso地图坐标、amap地图坐标、mapbar地图坐标)转换成百度地图中使用的坐标,并可将转化后的坐标在百度地图JavaScript API、车联网API、静态图API、web服务API等产品中使用。注意Android SDK、iOS SDK、定位SDK和导航SDK坐标转换服务需单独申请

面如桃花 2022-09-08 17:38:00

腾讯用的是GCJ02坐标系,百度是改装之后的百度系,你可以转换成百度标准的经纬度在使用,

高德地图与腾讯地图使用的是同一坐标体系,因此你用腾讯或者高德的API是一样的.

小草泠泠 2022-09-08 17:38:00

地图呈现 和 坐标获取使用同一个类库包,规避这类问题;
数量少的就手动调整偏移量吧

新人笑 2022-09-08 17:38:00

是坐标系的问题吗?百度地图支持一些百度自己的坐标系,会把gps地址给偏移,比如bd0911,试试指定坐标为gps类型

苦妄 2022-09-08 17:38:00

为什么不试试腾讯地图

遥远的绿洲 2022-09-08 17:38:00

每个地图都有自己的一套坐标算法,你能看到的坐标不是标准的gps点,都有自己的偏移量的,所以你只能用一套地图的工具,这样才能保证地图点显示准确

吹梦到西洲 2022-09-08 17:38:00

感谢各位的回答,问题解决啦,用weixin拿到经伟度后,再用百度提供的座标转换,转后再给百度在图api,能准备定位到街道信息咯,

忆离笙 2022-09-08 17:38:00

这个是后端转换还是前端做?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文