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
标准基座是否能成功?
更多关于uni-app 【报Bug】uni.startLocationUpdate+uni.onLocationChange 百度地图sdk获取不到gcj02坐标的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好,昨天更新了下离线打包的基座,可以成功了,之前版本的基座有问题
回复 pure111: 好的
这个问题的核心在于百度地图SDK对GCJ02坐标系的支持问题。根据报错信息分析:
-
错误信息显示"onLocationChange:fail not support gcj02",说明百度地图SDK在当前配置下不支持返回GCJ02坐标格式。
-
解决方案建议:
- 检查manifest.json中是否已正确配置百度地图的appkey
- 确认使用的是最新版百度地图SDK(建议3.7.0+)
- 如果必须使用GCJ02坐标,可考虑将获取的WGS84坐标通过第三方库转换
- 临时解决方案:
// 先获取WGS84坐标,再转换为GCJ02
uni.startLocationUpdate({
type: 'wgs84',
success: () => {
uni.onLocationChange((res) => {
// 使用coordtransform等库进行坐标转换
console.log(transformWGS84ToGCJ02(res.latitude, res.longitude))
})
}
})