uni-app Gelocation Error: code - 18; message - not support gcj02 at template/__uniappchooselocation.nvue:292

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app Gelocation Error: code - 18; message - not support gcj02 at template/__uniappchooselocation.nvue:292

代码示例

uni.chooseLocation({
    success: function (res) {
        console.log('位置名称:' + res.name);
        console.log('详细地址:' + res.address);
        console.log('纬度:' + res.latitude);
        console.log('经度:' + res.longitude);
    }
});

错误信息

  • [JS Framework] 当前运行的基座不包含原生插件[mapSearch],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座
  • Geolocation Error: code - 18; message - not support gcj02 at template/__uniappchooselocation.nvue:292

3 回复

请问你解决了吗


遇到同样问题 兄弟你解决了没

在处理uni-app中的地理位置错误,特别是涉及坐标系转换的问题时,首先需要了解uni-app的Geolocation API及其与不同坐标系之间的兼容性。错误代码-18和消息not support gcj02表明你的应用在尝试使用GCJ-02(国测局坐标系,也称作火星坐标系)时遇到了问题。

在uni-app中,Geolocation API通常默认使用WGS-84坐标系(GPS坐标系),而如果你需要处理GCJ-02坐标系(常见于中国大陆地区的地图服务,如高德地图、腾讯地图),你可能需要手动进行坐标系转换。

以下是一个基本的示例,展示如何在uni-app中捕获地理位置信息,并使用第三方库(如coordtransform)将WGS-84坐标转换为GCJ-02坐标。注意,你需要先安装coordtransform库。

  1. 安装coordtransform库 在你的项目根目录下运行:

    npm install coordtransform
    
  2. 使用Geolocation API并转换坐标系

    // 引入coordtransform库
    const coordtransform = require('coordtransform');
    
    uni.getLocation({
      type: 'wgs84', // 获取WGS-84坐标
      success: function (res) {
        console.log('原始坐标(WGS-84):', res.latitude, res.longitude);
    
        // 转换为GCJ-02坐标
        const gcj02 = coordtransform.wgs84_to_gcj02(res.latitude, res.longitude);
        console.log('转换后的坐标(GCJ-02):', gcj02.lat, gcj02.lng);
    
        // 这里可以使用转换后的GCJ-02坐标进行后续操作,如显示地图
      },
      fail: function (err) {
        console.error('获取地理位置失败:', err);
      }
    });
    
  3. 处理nvue文件中的错误

    由于错误发生在__uniappchooselocation.nvue文件的第292行,你需要检查该行相关的代码,确保你没有在nvue环境中直接使用不支持的API或操作。nvue环境有其特定的限制和API支持,通常与webview环境中的API不完全相同。

    如果第292行是尝试直接处理地理位置或坐标系转换的代码,考虑将其移至js文件中处理,然后通过事件或props将数据传递回nvue页面。

通过上述步骤,你应该能够解决uni-app中遇到的地理位置坐标系转换问题,并避免在nvue环境中直接使用不支持的API。如果问题仍然存在,可能需要进一步检查你的代码逻辑或查阅uni-app官方文档以获取更多指导。

回到顶部