小程序开发踩坑

272 阅读1分钟
  1. API getLocation 只能得到lat、lng等信息,并没有address信息,需要借助第三方sdk的帮助实现地址信息的获取。

此处使用uni-app开发,wx也是一样的

uni.authorize({
  scope: 'scope.userLocation',
  success: () => {
    uni.getLocation({
      type: 'wgs84',
      geocode: true,
      success: (res) => {
        const {
          latitude = '', longitude = ''
        } = res || {};
        // console.log(latitude, longitude)

		// 在微信公众平台页面【小程序】【开发设置】【request合法域名】添加 https://apis.map.qq.com
        // 腾讯位置服务【申请key】【勾选webserviceAPI】https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview
        const getAddressUrl = "https://apis.map.qq.com/ws/geocoder/v1/?location=" + latitude + "," +
          longitude + "&key=[key]";

        uni.request({
          url: getAddressUrl,
          success: (result) => {
            const {
              data: {
                result: {
                  address_component: {
                    city
                  } = {}
                } = {}
              } = {}
            } = result;
            console.log('current city:', city);
            this.city = city; // 当前城市名
          }
        })
      }
    });
  }
})