uni-app ios端百度地图显示位置有偏差

uni-app ios端百度地图显示位置有偏差

操作步骤:

  • android和ios查看同一项目坐标

预期结果:

  • android和ios查看同一项目坐标地图显示位置一致

实际结果:

  • android和ios查看同一项目坐标地图显示不一致

bug描述:

  • ios端百度地图显示位置有偏差,具体如下:
    1. 后台坐标拾取(定位)使用的百度地图api进行地图坐标拾取,app端也是配置的百度地图sdk,在android端显示正常和pc端显示基本为同一位置。但是ios端显示就有差异。
    2. 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使用的坐标系可能不同:

  1. iOS系统默认使用WGS84坐标系(GPS原始坐标系)
  2. 百度地图在中国大陆使用的是BD09坐标系
  3. 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) {
    // 使用转换后的坐标
});
回到顶部