解决在微信网页中百度地图定位不准确的问题


1、原先是通过百度地图API getCurrentPosition来获取坐标,然后再显示出来。可是定位极其不准确。后突然想进来微信网页正好有定位功能。

2、通过微信定位得出来的坐标是wgs84格式,需要转换一下才能在百度地图中显示。

3、查找资料,找到相关办法。链接

4、话不多说,上代码

     wx.getLocation({
        type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
        success: function (res) {
          var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
          var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
          var speed = res.speed; // 速度,以米/每秒计
          var accuracy = res.accuracy; // 位置精度
           let point = new BMap.Point(res.longitude, res.latitude)
              // var mk = new BMap.Marker(point);
              // map.addOverlay(mk);
              // map.panTo(point);

          const pointBak = new BMap.Point(point.lng, point.lat);

            const convertor = new BMap.Convertor();
            var lng=0;
            var lat=0;
            convertor.translate([pointBak], 1, 5, function(resPoint) {
              console.log(resPoint);
              if (resPoint && resPoint.points && resPoint.points.length > 0) {
                lng = resPoint.points[0].lng;
                lat = resPoint.points[0].lat;
              }
              const point = new BMap.Point(lng, lat);
              that.center = point;
              var mk = new BMap.Marker(point);
              map.addOverlay(mk);
              map.panTo(point);
            });

        }
      });

相关