uni-app ios端百度地图显示位置有偏差
uni-app ios端百度地图显示位置有偏差
操作步骤:
- android和ios查看同一项目坐标
预期结果:
- android和ios查看同一项目坐标地图显示位置一致
实际结果:
- android和ios查看同一项目坐标地图显示不一致
bug描述:
- ios端百度地图显示位置有偏差,具体如下:
- 后台坐标拾取(定位)使用的百度地图api进行地图坐标拾取,app端也是配置的百度地图sdk,在android端显示正常和pc端显示基本为同一位置。但是ios端显示就有差异。
- app上线几年了,之前一直没反馈,现在更新了很多个版本,客户突然反馈的问题,也不知道是hbuilderx 打包的原因还是5+sdk的原因,所以这里选的是其它下面的5+sdk。dcloud工作人员看到后帮帮忙,比较急
更多关于uni-app ios端百度地图显示位置有偏差的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app ios端百度地图显示位置有偏差的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的坐标系差异问题。在iOS和Android平台上,百度地图SDK使用的坐标系可能不同:
- iOS系统默认使用WGS84坐标系(GPS原始坐标系)
- 百度地图在中国大陆使用的是BD09坐标系
- Android系统可能已经做了自动转换
解决方案:
需要在iOS端对坐标进行转换处理。可以使用百度地图提供的坐标转换方法:
// 引入百度地图坐标转换工具
var BMap = require('@/common/bmap-wx.min.js');
// 将WGS84坐标转换为百度坐标
function convertCoordinate(lng, lat) {
// 使用百度地图的坐标转换接口
// 具体实现参考百度地图官方文档
}
或者在uni-app中使用plus.maps进行坐标转换:
// 使用5+ API进行坐标转换
plus.maps.coordConvert({
coord: {lng: longitude, lat: latitude},
type: 'wgs84tobd09'
}, function(result) {
// 使用转换后的坐标
});