由经纬度通过接口获取到省市区

export const getAddress = function (wx) {
  return new Promise((resolve, reject) => {
    let _this = this
    wx.getSetting({
      success: (res) => {
        let authSetting = res.authSetting
        if (authSetting['scope.userLocation']) {
          // 已授权
          console.log("已授权")
          getLocation2(true)
        } else {
          // 未授权
          console.log("未授权")
          getLocation2(false)
        }
      }
    })

    function getLocation2 (userLocation) {
      let _this = this;
      wx.getLocation({
        type: 'wgs84',
        success(res) {
          getWechatLocationInfo(res.latitude, res.longitude);
        },
        fail() {
          console.log("获取定位失败")
          if (!userLocation) {
            wx.showModal({
              title: '警告',
              content: '您未授权地理位置信息,将无法正常使用小程序,请打开允许授权',
              success(res) {
                if (res.confirm) {
                  _this.openSetting()
                }
              }
            })
          } else {
            wx.showModal({
              title: '警告',
              showCancel: false,
              content: '获取位置信息失败,请打开手机的定位功能!',
              success() {}
            });
          }
        }
      });
    }

    function getWechatLocationInfo(latitude, longitude) {
      let query = {
        latitude: latitude,
        longitude: longitude
      };
      wx.request({
        url: `WechatLocationInfo`,  // 后台接口
        method: 'get',
        data: query,
        success: function (res) {
          let data = {
            ...res.data.data,
            address: `${res.data.data.province} ${res.data.data.city} ${res.data.data.district} ${res.data.data.street}`
          }
          resolve(data)
        },
        fail: function (err) {
          reject(err)
        }
      })
    }
  })
}

 

posted @ 2022-11-16 11:15  Panax  阅读(315)  评论(0编辑  收藏  举报