18910140161

微信小程序腾讯地图显示偏差问题解决

顺晟科技

2021-06-16 10:50:24

259

背景

使用小程序中的地图组件,可以调用腾讯地图的API,在地图界面上标记一些固定点。点的经纬度是通过安卓上的百度地图API获取的,所以直接设置这个位置点信息会有偏差,而且偏差还是比较大的

小程序设置位置点

关于如何在地图组件上设置位置点的详细信息,请查看腾讯官方文档

先看地图组件:

map id='map '经度='113.324520 '纬度='23.099994 '比例尺='14 '控件=' { { controls } } ' bind control tap=' control tap '标记=' { { markers } } ' bindmarkertap=' marker tap '折线=' { {折线} } ' bind regionchange=' regionchange ' show-location style=' width 3360 ;' height: 300px'/map

标记是要在地图界面中设置的点的数组,数组中的元素是一个对象。

markers: [{

icon path : '/resources/others . png ',

id: 0,

纬度: 23.099994,

经度: 113.324520,

宽度:50,

高度: 50

},

icon path : '/resources/others . png ',

id: 0,

纬度: 23.094994,

经度: 113.424520,

宽度:50,

高度: 50

}],

如果这里的经纬度直接定位其他地图上的点,对于相同的点位置,小程序中会有偏差;

原因

Wgs84是小程序中默认的定位方式,而百度地图使用的是BD09和gcj02。所以这里会有偏差。

解决办法

使用离线js库gcoord将位置信息转换一次;

首先下载这个js库,放在某个目录下。我在这里接受治疗

在所需界面中导入

从导入gcoord./././utils/gcoord.js '

调用转换函数

var result=gcoord.transform(

[resArr[i]。JD,resArr[i]。WD],//经纬度坐标

Gcoord。BD09,//当前坐标系(百度)

格奥尔德。gcj 02);

小程序里改成gcj02,全国调查数据,所以改成gcj02。

我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航