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

1 回复

更多关于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),以及返回的原始经纬度;

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

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

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

回到顶部