uni-app map组件使用百度传入gcj02显示有偏差,传入bd09才正常显示
uni-app map组件使用百度传入gcj02显示有偏差,传入bd09才正常显示
| 项目 | 内容 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win11专业版 24H2 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.87 |
| 手机系统 | 全部 |
| 手机厂商 | 华为 |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
测试过的手机:
Android 16 iOS 16
示例代码:
<map style="width: 100%;" :style="{height: ($u.sys().windowHeight - $u.sys().statusBarHeight - 124) + 'px' }"
longitude="bdLong" :latitude="bdLat" :markers="markers">
</map>
更多关于uni-app map组件使用百度传入gcj02显示有偏差,传入bd09才正常显示的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app map组件使用百度传入gcj02显示有偏差,传入bd09才正常显示的实战教程也可以访问 https://www.itying.com/category-93-b0.html
需补充hbuilderx版本信息及详细的报错信息。 该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
【官方评审结论】
反馈完整性评估
BUG 描述:仅一句话重复“map组件使用百度传入gcj02显示有偏差,传入bd09才正常”,缺少关键信息——
– 具体偏差方向和距离(例如向东偏移约 200 m)
– 是否仅在 App 端出现,还是所有端都有
– manifest 中是否已切换为百度地图(app-vue 默认是高德,需手动切换)
代码示例:只贴了 <map> 标签,未给出 manifest.json 的地图配置、SDK key 配置、定位方式(uni.getLocation 的 type 值)
复现步骤:仅一句话,没有给出数据来源(是否通过 getLocation 获取坐标、坐标原始值、转换方式)
版本信息:HBuilderX 4.87 为当前正式版,无需升级,但需确认 manifest 中是否已勾选百度地图模块并填写正确的百度 AppKey
→ 结论:信息不完整,需补充坐标来源、manifest 配置、偏差截图或数值,否则无法定位。
是否为真 BUG 根据 文档 说明:
App-vue 页面默认使用高德地图,若需使用百度地图,必须在 manifest → App模块配置 → 地图里勾选“百度地图”并填写百度 AppKey;否则仍调用高德 SDK,而高德 SDK 的底图是 GCJ-02,百度底图是 BD-09,直接混用坐标系必然出现偏移。
若已正确切换为百度地图,uni-app 会自动把传入的 GCJ-02 坐标转成 BD-09 再渲染,理论上不会出现“必须手动传 BD-09 才准”的情况。
→ 目前倾向于是“配置/用法”问题而非框架 BUG,需用户补充配置截图与坐标来源后再做最终判断。
建议下一步 请补充以下信息:
manifest.json 中 “App模块配置 → 地图” 截图,确认已勾选“百度地图”并填写正确的 AppKey;
获取坐标的完整代码(uni.getLocation 或第三方定位 SDK),以及返回的原始经纬度;
用同一坐标在“高德地图”与“百度地图”分别打开的实际截图,标注偏差距离;
若已自行做过坐标转换,请给出转换代码。
收到补充后,我们将再次评审并给出最终结论。

