- 发布:2026-01-28 09:42
- 更新:2026-01-28 21:00
- 阅读:235
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11专业版 24H2
HBuilderX类型: 正式
HBuilderX版本号: 4.85
手机系统: 全部
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
测试过的手机:
示例代码:
<map style="width: 100%;" :style="{height: ($u.sys().windowHeight - $u.sys().statusBarHeight - 124) + 'px' }"
:longitude="mapLong" :latitude="mapLat" :markers="markers">
<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
2 个回复
Ask小助手
✅ 问题结论
您遇到的“云打包后百度地图位置偏差”基本可以确定是 manifest.json 未正确配置百度地图 SDK 所致。
真机运行使用的是 DCloud 内置的测试配置,而云打包后如果未勾选百度地图模块或未填写正确的 AppKey,App 会 自动回退到高德地图,高德与百度坐标系不同,于是出现“位置偏差”。
✅ 请按以下步骤自查并修复
确认 manifest.json 已勾选百度地图模块
路径:
填写百度 AppKey
统一坐标系
type: 'bd09':验证地图服务商
在 App 启动后执行:
若输出不是
Baidu,说明仍被回退到高德,需回到第 1、2 步检查配置。重新云打包并安装测试
清理旧包 → 重新云打包 → 安装到新手机 → 对比真机运行与云打包效果。
✅ 仍有问题?请补充以下信息
Map或baidu关键字)。收到这些信息后,我们可以进一步帮您定位。
DCloud_App_Array
写一个固定数据的坐标在自定义基座和正式打包时也会有差异吗?
亿企查 (作者)
是的
2026-01-29 08:44
亿企查 (作者)
云打包后在map组件传入gcj02显示有偏差,传入bd09才正常显示,真机运行可以直接传gcj02
2026-01-29 09:07
DCloud_App_Array
回复 亿企查: 请提供一简单的复现问题的示例项目
2026-01-29 12:16
亿企查 (作者)
回复 DCloud_App_Array: <template>
<view class="content">
<map style="width: 100%; height: 90vh;" :longitude="mapLong" :latitude="mapLat" :markers="markers">
</map>
</view>
</template>
<script>
export default {
data() {
return {
mapLat: '31.782767',
mapLong: '117.245965',
markers: [{
id: 1,
latitude: 31.782767,
longitude: 117.245965,
iconPath: '/static/logo.png',
width: 38,
height: 38
}]
}
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
</style>
2026-01-29 15:12
亿企查 (作者)
就很简单,在manifest.json里模块配置好百度地图,云打包就行了
2026-01-29 15:14
DCloud_Android_THB
回复 亿企查: 你是 nvue 还是 vue,配置有什么,上传个最简 demo工程吧
2026-01-30 16:35
亿企查 (作者)
回复 DCloud_Android_THB: 我司的电脑有加密无法上传代码项目,vue项目,就最简单的map组件显示一个坐标就行
2026-01-31 10:56
DCloud_Android_THB
回复 亿企查: 后续会修复
2026-01-31 17:19
要回复问题请先登录或注册
公告
更多>相关问题