问题描述:
进入腾讯地图插件的查看线路的页面,起点的startName="我的位置",定位返回的坐标是默认的wgs84,而marker的位置是gcj02坐标,导致定位偏差
2.测试过程:
2.1 复现问题:startName="我的位置",效果如下:插件获取的位置和marker偏离
2.2 使用wx.getLocation,type设置为gcj02,得到具体的latitude、longitude
wx.getLocation({
type: 'gcj02',
success: function(res) {
console.log(res)
},
})
2.3使用2.2的结果,初始化如下:
let routeInfo = {
startLat: 22.573563, //起点纬度 选填
startLng: 114.12721, //起点经度 选填
startName: "正确填写起点经纬度", // 起点名称 选填
endLat: 22.568203484, // 终点纬度必传
endLng: 114.140581747, //终点经度 必传
endName: "喜荟城", //终点名称 必传
mode: "car" //算路方式 选填
}
这个时候,腾讯地图插件不会自动获取当前的定位位置,而是使用2.2的结果去定位,得到的效果如下:
插件获取的位置和marker重合,准确了。
结论:插件提供的如下规则,存在问题。当符合如下条件时,并没有使用gcj02坐标,而是用了默认的wgs84坐标,导致偏差很大。如果直接使用【腾讯地图+】这个小程序是不存在这个问题的,所以请插件提供方确认如下是否存在此问题。谢谢!
起点:不填写或startName=“我的位置”或startName=“当前位置”或startName=“currentLocation”则插件会获取当前的定位位置作为起点位置发起算路
这样对吗
我也碰到了,可以肯定是个Bug。
因为这个插件当前位置也不能刷新,我通过先获取当前位置,然后传地址坐标并把开始地址名称设为“我的当前位置”算是临时"解决"了这个问题。
腾讯的人也不给个响应,这个插件功能较弱,bug也不修,似乎不打算维护了?
恩,我也是这么做的。不理,只能自己处理。不过还是希望有更好的功能提供,比如导航功能,而不只是提供路线。