uni-app getLocation报错not support GCJ02
uni-app getLocation报错not support GCJ02
| 类别 | 信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC操作系统 | Windows |
| PC版本号 | 19043.928 |
| 开发工具 | HBuilderX |
| 工具版本 | 3.3.2 |
| 手机系统 | Android |
| 手机版本 | Android 12 |
| 手机厂商 | 小米 |
| 手机型号 | 红米k30pro |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
操作步骤:
- 1
预期结果:
- 定位不报错
实际结果:
- 定位报错
bug描述:
uni.getLocation({
type: 'gcj02',
success: (res) => {}
}
返回
{
"errMsg": "getLocation:fail not support GCJ02",
"errCode": 18,
"code": 18
}
相关链接:
更多关于uni-app getLocation报错not support GCJ02的实战教程也可以访问 https://www.itying.com/category-93-b0.html
HBuilderX正式版是好的; 我真是怕了。。。我一直没有动过的代码突然报错了
更多关于uni-app getLocation报错not support GCJ02的实战教程也可以访问 https://www.itying.com/category-93-b0.html
不设置坐标系,使用默认的会报错么
现在没有报错了,代码没有改过;莫名奇妙的。。。
该问题打包机已修复。可以打自定义基座测试相关功能
还是报同样的错啊 3.6.4正式版,之前可以获取,什么都没动现在就报错。
3.98依然报这种错误。
HBuilderX 3.3.3 已修复,另外 3.3.2 也无需更新,重新打包自定义基座即可。
alpha还没更新
回复 包拯: 另外 3.3.2 也无需更新,重新打包自定义基座即可。
我今天更新了HBilder X,然后获取位置方法特别慢,然后我部分nvue页面样式也出现了问题,搞得我调了一上午。。
后来发现什么了?
回复 DCloud_UNI_GSQ: 修改获取位置的type参数
回复 DCloud_UNI_GSQ: 是我自己这改改那改改,发现的
为什么设定gcj02获取不到经纬度呢???
84的就能获取到
模拟器定位开着呢,sdk也配置了,hbuilder版本是最新的3.6.5.20221121
我也遇到了,请问解决了吗
遇到相同问题,请问解决了嘛?
回复 1***@qq.com: 在社区里面找到了,当类型是gcj02时,altitude和ishighAccuracy两个属性必须写一个,而且geocode不能要
回复 6***@qq.com: 在社区里面找到了,当类型是gcj02时,altitude和ishighAccuracy两个属性必须写一个,而且geocode不能要。试试呢
哥,解决了吗,我也是这个问题
回复 w***@outlook.com: 没有,不知道有什么办法能解决这个问题
根据你提供的信息,getLocation:fail not support GCJ02 错误通常是因为在 Android 系统上,部分设备或系统版本不支持返回 GCJ-02 坐标系导致的。这是一个已知的平台兼容性问题。
主要原因:
- Android 系统原生的定位服务默认返回 WGS-84 坐标系。当你在 uni-app 中指定
type: 'gcj02'时,框架需要将坐标进行转换。 - 部分 Android 设备或系统版本(尤其是较新的版本,如你使用的 Android 12)的底层定位服务可能不支持这种坐标系转换,或者相关系统接口发生了变化,导致转换失败,从而抛出此错误。
直接解决方案:
将 uni.getLocation 的 type 参数修改为 'wgs84'。这是最通用、兼容性最好的坐标系,所有 Android 设备都支持。
uni.getLocation({
type: 'wgs84', // 将 'gcj02' 改为 'wgs84'
success: (res) => {
// 成功回调
console.log(res.longitude, res.latitude);
},
fail: (err) => {
// 失败回调
console.error(err);
}
});


