顺晟科技
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。
16
2021-06
16
2021-06
16
2021-06
16
2021-06
16
2021-06
16
2021-06