m***@163.com
m***@163.com
  • 发布:2024-09-09 23:13
  • 更新:2025-04-07 16:24
  • 阅读:526

uni.getLocation,配置了高德地图,能返回定位信息,但是没有省市区数据

分类:uni-app
// 获取经纬度 省市区 详细地址  
                uni.getLocation({  
                    type: 'gcj02',   
                    geocode: true,   
                    success: function(res) {  
                        console.log('定位信息:'+JSON.stringify(res));  
                    }  
                });  

结果:
定位信息:{"type":"gcj02","altitude":0,"latitude":22.77997076667967,"longitude":113.88851889306451,"speed":0,"accuracy":30,"address":{"country":"","province":"","city":"","district":"","street":"","streetNum":"","poiName":"","cityCode":""},"errMsg":"getLocation:ok"}

省市区数据都是空的,这是为啥???

2024-09-09 23:13 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

是App端吗?只有app端会返回
或者直接使用 高德地图的 逆地理编码api来获取省市区数据
文档地址:https://lbs.amap.com/api/webservice/guide/api/georegeo#t5

吃俺老孙一棒

吃俺老孙一棒 - 狼行千里吃肉,狗行千里吃屎

只有app端才会进行逆编码返回地址信息,app端云打包需要申请地图key并配置在manifest定位里才能正常返回

  • 2***@qq.com

    这个是配置了的,主要是有时候返回的是空的,现在已经靠原生功能弥补。提出的问题还是存在

    2025-04-07 16:26

c***@163.com

c***@163.com

解决了吗 兄弟 同样问题 目前hbuilderx基座是4.29 以前还可以现在返回空

2***@qq.com

2***@qq.com

我也是这个问题

2***@qq.com

2***@qq.com

我配置了权限和高德key了,但是调试到手机基座的时候可以正常获取,但是打包成app就不行了

  • 1***@qq.com

    解决了吗 我是手机基座也拿不到

    2025-03-05 09:44

2***@qq.com

2***@qq.com

目前问题回复,已经靠原生解决。
代码如下

uni.getLocation({  
      type: "gcj02", //返回高德坐标系 经纬度  
      provider: "amap", //指名使用高德sdk  
      isHighAccuracy: true, //是否高精度  
      accuracy: true, //小程序是否高精度  
      geocode: true, //逆地理解析 返回中文详细地址  
      success: function (res) {  
        // 创建地图坐标对象  
        var point = new plus.maps.Point(res.longitude, res.latitude);  
        //静态方法,反向地理编码 (有时候返回的中文详细地址为空,这个做意外处理)  
        plus.maps.Map.reverseGeocode(  
          point,  
          {},  
          (event) => {  
            var address = event.address; // 转换后的地理位置  
            res.address.plusAddress = address;  
            that.send({  
              id: msg.id,  
              data: res,  
            });  
          },  
          function (e) {  
            console.log("失败回调", e);  
          }  
        );  
      },  
      fail: function (err) {  
        that.send({  
          err: "获取定位信息出错了",  
          ...err,  
        });  
      },  
    });

踩坑提示
1.使用高德sdk在苹果手机上调用gcj02坐标时获取时间异常长
解决办法使用wgs84 然后根据需要决定是否转坐标
2.配置SDK时需要高德平台包名和app包名一致(含大小写)

要回复问题请先登录注册