微信的getLocation接口可以获取到用户的经纬度信息,但是没有办法拿到省市县街道信息,所以就需要用到高德的api接口将经纬度转换为省市县这种信息,在对接的时候,有两种方式可以对接这个接口,一个是使用高德的web服务,一个是微信小程序sdk,因为sdk会增加小程序的体积,所以我选择web服务。

申请高德KEY

在高德地图的后台,先创建一个应用,然后申请一个web服务的key:https://console.amap.com/dev/key/app

复制key到小程序

将创建的web服务的key复制到小程序中

替换下面代码的key 

        uni.getLocation({
          geocode: true, // 返回经纬度
          success: function (loction) {
            console.log("getLocation", loction);
            // 将经纬度转换为城市数据
            uni.request({
              url: 'https://restapi.amap.com/v3/geocode/regeo',
              method: 'GET',
              data: {
                key: '高德WEB服务key',
                location: loction.longitude + ',' + loction.latitude
              },
              success: (resda: any) => {
                console.log("resda", resda)
                const { province, district } = resda.data.regeocode.addressComponent
                CityName.value = province
                uni.navigateBack()
              },
              fail: (err: any) => {
                console.log("restapi err", err);
              }
            })
          }
        })

 然后发送一个请求就可以看到结果了:

更多推荐