亿企查
亿企查
  • 发布:2026-01-28 09:42
  • 更新:2026-01-28 21:00
  • 阅读:30

【报Bug】map组件使用百度地图云打包自定义基座运行位置显示偏差

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11专业版 24H2

HBuilderX类型: 正式

HBuilderX版本号: 4.85

手机系统: 全部

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

OnePlus Ace2 android16 ios iphoneX ios16

示例代码:
<map style="width: 100%;" :style="{height: ($u.sys().windowHeight - $u.sys().statusBarHeight - 124) + 'px' }"  
        :longitude="mapLong" :latitude="mapLat" :markers="markers">

操作步骤:

真机运行和云打包

预期结果:

位置显示一致

实际结果:

位置显示偏差

bug描述:

map组件使用百度地图显示坐标位置
在云打包生成的自定义基座中真机运行时显示有偏差,传入时为bd09坐标系,显示时为gcj02坐标系;
正式云打包后可正常显示

一开始我的问题是真机运行和打包出来的显示位置不一致,我们后端给的坐标系为gcj02坐标系,但是APP使用的是百度地图,在真机此时正常,打包出来不正常,排查后发现未转换坐标系,转换后发现真机运行的不正常显示了,为此我做了证书指纹比对,两边的证书指纹及其他证书一模一样,排除配置问题,那么只能是官方的真机运行机制有问题了,使用的是百度地图实际map组件在解析地址是用的是gcj02

2026-01-28 09:42 负责人:DCloud_App_Array 分享
已邀请:
Ask小助手

Ask小助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

✅ 问题结论

您遇到的“云打包后百度地图位置偏差”基本可以确定是 manifest.json 未正确配置百度地图 SDK 所致。
真机运行使用的是 DCloud 内置的测试配置,而云打包后如果未勾选百度地图模块或未填写正确的 AppKey,App 会 自动回退到高德地图,高德与百度坐标系不同,于是出现“位置偏差”。


✅ 请按以下步骤自查并修复

  1. 确认 manifest.json 已勾选百度地图模块
    路径:

    manifest.json → App模块配置 → 地图 → 勾选“百度地图”  
  2. 填写百度 AppKey

    • 登录 百度地图开放平台 创建 Android / iOS 应用,获取 AppKey。
    • 在 manifest.json → SDK 配置 → 百度地图 → 填入对应 AppKey。
    • 包名、签名 SHA1、BundleID 必须与百度后台完全一致,否则 SDK 初始化会失败。
  3. 统一坐标系

    • 获取定位时指定 type: 'bd09'
      uni.getLocation({  
      type: 'bd09',  
      success(res) {  
       this.mapLat  = res.latitude;  
       this.mapLong = res.longitude;  
      }  
      });  
    • 如果已有 gcj02 坐标,可使用官方提供的 坐标转换工具 转成 bd09。
  4. 验证地图服务商
    在 App 启动后执行:

    console.log('当前地图类型:', plus.maps.Map.getMapType());  

    若输出不是 Baidu,说明仍被回退到高德,需回到第 1、2 步检查配置。

  5. 重新云打包并安装测试
    清理旧包 → 重新云打包 → 安装到新手机 → 对比真机运行与云打包效果。


✅ 仍有问题?请补充以下信息

  • manifest.json 截图(含百度地图模块 & AppKey 部分,可打码关键信息)。
  • 真机运行 vs 云打包的对比截图(同一地点的地图中心点 & marker 位置)。
  • 控制台日志(过滤 Mapbaidu 关键字)。

收到这些信息后,我们可以进一步帮您定位。

内容为 AI 生成,仅供参考
DCloud_App_Array

DCloud_App_Array

写一个固定数据的坐标在自定义基座和正式打包时也会有差异吗?

要回复问题请先登录注册