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

23 回复

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参数

回复 y***@youjiuzs.com: 是从更新日志发现的吗?

回复 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不能要。试试呢

请问下使用东大的PDA设备能获取吗,我尝试过,没有任何的反应 uni.getLocation({ type: “wgs84”, //默认为 wgs84,gcj02 返回 gps 坐标 测试PDA都不可使用 altitude: true, // accuracy: “best”, // 精度值为20m success: function(res) {console.log(“定位获取结果:”, res);}, complete: function(cret) {console.log(“请求完成:”, cret);}, fail(err) {console.log(“上传坐标请求接口异常–”, err)}, }); 手机型号:小米、华为都能获取到坐标 21:40:42.871 定位获取结果:, [Object] {“type”:“wgs84”,“altitude”:0,“latitude”:31.258365,“longitude”:121.394779,“speed”:0,“accuracy”: 40,“errMsg”: “getLocation:ok”} 21:40:42.876 请求完成:, [Object] {“type”:“wgs84”,“altitude”:0,“latitude”:31.258365,“longitude”:121.394779,“speed”:0,“accuracy”: 40,“errMsg”: “getLocation:ok”}

哥,解决了吗,我也是这个问题

回复 w***@outlook.com: 没有,不知道有什么办法能解决这个问题

根据你提供的信息,getLocation:fail not support GCJ02 错误通常是因为在 Android 系统上,部分设备或系统版本不支持返回 GCJ-02 坐标系导致的。这是一个已知的平台兼容性问题。

主要原因:

  1. Android 系统原生的定位服务默认返回 WGS-84 坐标系。当你在 uni-app 中指定 type: 'gcj02' 时,框架需要将坐标进行转换。
  2. 部分 Android 设备或系统版本(尤其是较新的版本,如你使用的 Android 12)的底层定位服务可能不支持这种坐标系转换,或者相关系统接口发生了变化,导致转换失败,从而抛出此错误。

直接解决方案:uni.getLocationtype 参数修改为 'wgs84'。这是最通用、兼容性最好的坐标系,所有 Android 设备都支持。

uni.getLocation({
  type: 'wgs84', // 将 'gcj02' 改为 'wgs84'
  success: (res) => {
    // 成功回调
    console.log(res.longitude, res.latitude);
  },
  fail: (err) => {
    // 失败回调
    console.error(err);
  }
});
回到顶部