亿企查
亿企查
  • 发布:2026-01-28 15:22
  • 更新:2026-01-28 15:23
  • 阅读:88

【报Bug】map组件使用百度传入gcj02显示有偏差,传入bd09才正常显示

分类:uni-app

产品分类: 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>

操作步骤:

map组件使用百度传入gcj02显示有偏差,传入bd09才正常显示

预期结果:

传入gcj02显示正常

实际结果:

传入bd09才正常显示

bug描述:

map组件使用百度传入传入gcj02显示有偏差,传入bd09才正常显示

2026-01-28 15:22 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

需补充hbuilderx版本信息及详细的报错信息。
该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

【官方评审结论】

  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 配置、偏差截图或数值,否则无法定位。
  2. 是否为真 BUG
    根据 文档 说明:

    • App-vue 页面默认使用高德地图,若需使用百度地图,必须在 manifest → App模块配置 → 地图里勾选“百度地图”并填写百度 AppKey;否则仍调用高德 SDK,而高德 SDK 的底图是 GCJ-02,百度底图是 BD-09,直接混用坐标系必然出现偏移。
    • 若已正确切换为百度地图,uni-app 会自动把传入的 GCJ-02 坐标转成 BD-09 再渲染,理论上不会出现“必须手动传 BD-09 才准”的情况。
      → 目前倾向于是“配置/用法”问题而非框架 BUG,需用户补充配置截图与坐标来源后再做最终判断。
  3. 建议下一步
    请补充以下信息:

  4. manifest.json 中 “App模块配置 → 地图” 截图,确认已勾选“百度地图”并填写正确的 AppKey;

  5. 获取坐标的完整代码(uni.getLocation 或第三方定位 SDK),以及返回的原始经纬度;

  6. 用同一坐标在“高德地图”与“百度地图”分别打开的实际截图,标注偏差距离;

  7. 若已自行做过坐标转换,请给出转换代码。

收到补充后,我们将再次评审并给出最终结论。

内容为 AI 生成,仅供参考

要回复问题请先登录注册