uni-app 【报Bug】uni.startLocationUpdate+uni.onLocationChange 百度地图sdk获取不到gcj02坐标

uni-app 【报Bug】uni.startLocationUpdate+uni.onLocationChange 百度地图sdk获取不到gcj02坐标

开发环境 版本号 项目创建方式
PC Windows 10 CLI
手机 Android
手机版本号 Android 10
手机厂商 华为
手机机型 mate30
页面类型 vue
vue版本 vue3
打包方式 离线
CLI版本号 3.0.0-3081220230817001

示例代码:

uni.startLocationUpdate({
type: 'gcj02',
needFullAccuracy: true,
success: (res) => {
uni.onLocationChange((item)=>{
console.log(item)
})
},
fail: ({ errCode, errMsg }) => {
// 数据埋点
that.bdMapError({
errCode,
errMsg,
})
},
})

操作步骤:

uni.startLocationUpdate({
type: 'gcj02',
needFullAccuracy: true,
success: (res) => {
uni.onLocationChange((item)=>{
console.log(item)
})
},
fail: ({ errCode, errMsg }) => {
// 数据埋点
that.bdMapError({
errCode,
errMsg,
})
},
})

预期结果:

预期 希望能够正常返回

实际结果:

实际 有问题 不能正常返回,只能返回wgt84

bug描述:

使用uni.startLocationUpdate +uni.onLocationChange获取不到gcj02坐标,已配置百度地图和定位key值

离线打包用的是3.8.12进行打包的,报错{“errMsg”:“onLocationChange:fail not support gcj02”}

目前将基座及打包配置更新到4.15 还是继续报错


更多关于uni-app 【报Bug】uni.startLocationUpdate+uni.onLocationChange 百度地图sdk获取不到gcj02坐标的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

标准基座是否能成功?

更多关于uni-app 【报Bug】uni.startLocationUpdate+uni.onLocationChange 百度地图sdk获取不到gcj02坐标的实战教程也可以访问 https://www.itying.com/category-93-b0.html


你好,昨天更新了下离线打包的基座,可以成功了,之前版本的基座有问题

回复 pure111: 好的

这个问题的核心在于百度地图SDK对GCJ02坐标系的支持问题。根据报错信息分析:

  1. 错误信息显示"onLocationChange:fail not support gcj02",说明百度地图SDK在当前配置下不支持返回GCJ02坐标格式。

  2. 解决方案建议:

  • 检查manifest.json中是否已正确配置百度地图的appkey
  • 确认使用的是最新版百度地图SDK(建议3.7.0+)
  • 如果必须使用GCJ02坐标,可考虑将获取的WGS84坐标通过第三方库转换
  1. 临时解决方案:
// 先获取WGS84坐标,再转换为GCJ02
uni.startLocationUpdate({
  type: 'wgs84',
  success: () => {
    uni.onLocationChange((res) => {
      // 使用coordtransform等库进行坐标转换
      console.log(transformWGS84ToGCJ02(res.latitude, res.longitude))
    })
  }
})
回到顶部