- 发布:2026-07-11 20:52
- 更新:2026-07-11 20:53
- 阅读:39
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 11
HBuilderX类型: 正式
HBuilderX版本号: 5.15
手机系统: 全部
手机厂商: 华为
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
示例代码:
无
无
操作步骤:
无
无
预期结果:
要是能紧急改回5.07版本以前那种就最好
要是能紧急改回5.07版本以前那种就最好
实际结果:
见BUG 描述
见BUG 描述
bug描述:
是vue2页面的<map>组件调用了百度地图;这个页面还用到了subnvue子窗口
HBuilderX 5.07及之前,云端打包,百度坐标系的点在百度地图上绘制,iOS端出现整体偏移,通过js把点位转成高德坐标系后正常;安卓端不做处理,点位显示正常。(安卓端打自定义调试基座,也出现整体偏移)
上述现象持续了很多年,起码是22年4月~26年6月
HBuilderX 更新到5.14、5.15版本云端打包,发现安卓端出现一样的整体偏移;利用和iOS一样的点位转换方法后才显示正常。初步确定是安卓端的百度地图点位描绘的坐标系发生了变化。
===
相关问题:
https://ask.dcloud.net.cn/question/215717
https://ask.dcloud.net.cn/question/219104
1 个回复
Ask小助手 - Ask社区AI助手
感谢您的反馈。针对您提交的 Bug,官方评审意见如下:
1. Bug 反馈内容完整性分析
manifest.json中百度地图 SDK 配置信息以及具体的点位转换 JS 代码片段。<map>组件配置,需要您补充一个最小化可运行的示例代码。2. Bug 是否成立分析
根据知识库信息,您的反馈反映的是一个长期存在的坐标系处理机制问题,而非单纯的版本回归 Bug。
在 uni-app 中,
<map>组件默认使用的是国测局 GCJ02 坐标系。当在 App 端配置使用百度地图时,由于百度地图使用的是自有的 BD09 坐标系,如果传入的点位坐标未进行转换,就会出现偏移。根据社区历史反馈 【报Bug】uniapp map地图安卓和ios 坐标点偏差,在 HBuilderX 5.07 及之前的版本中,虽然配置了百度地图 SDK,但 iOS 端运行时
<map>组件的坐标系仍然是 GCJ02,而安卓端的百度地图坐标系是 BD09。这就导致了相同的经纬度在两端展示位置不一样。您在反馈中提到的“HBuilderX 5.07及之前...安卓端不做处理,点位显示正常”以及“通过js把点位转成高德坐标系后正常”,正是因为安卓端百度地图实际使用的是 BD09 坐标系,而您的数据源可能本身就是 BD09 或经过了相应处理。在 HBuilderX 更新到 5.14、5.15 版本后,安卓端百度地图点位描绘的坐标系处理可能发生了变化,更趋向于统一或调整了底层 SDK 的坐标系对接逻辑,导致原本不需要转换的安卓端也需要进行坐标转换才能正常显示。
建议方案:
由于这是由于不同地图服务商坐标系差异导致的,建议您在开发中统一进行坐标系处理。您可以参考以下方案:
<map>组件前,确保所有坐标都转换为 GCJ02 坐标系。如果您的数据源是 BD09,需要将其转换为 GCJ02。plus.maps.Map.convertCoordinates进行转换:在 App 端,您可以使用 plus.maps 提供的坐标转换方法将第三方坐标系坐标转换成当前地图的坐标系坐标。具体可参考 plus.maps.Map.convertCoordinates 文档。<map>组件默认坐标系一致,可以避免 BD09 与 GCJ02 之间的转换问题。为了进一步确认 5.14/5.15 版本中安卓端百度地图坐标系的具体变化,建议您补充完整的代码示例和复现步骤,以便官方进行更精确的排查。
要回复问题请先登录或注册
公告
更多>相关问题