微信小程序获取经纬度对应的地理位置名称

文章目录

    为了方便用户在小程序页面中一目了然的知道自己当前位置,需要将获取到的经纬度转换成可读的位置描述。例如:烟台市开发区万科城。

    位置信息 API 选型

    1. 高德地图接口

    https://lbs.amap.com/api/webservice/guide/api/georegeo/

    1. 腾讯地图

    https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview

    API 接口调用配额

    • 腾讯地图个人版每天1万次;企业版未知
    • 高德地图企业版 300 万次/天

    高德地图 API 示例

    wx.getLocation({
      type: 'gcj02',
      success: res => {
        this.setData({
          lat: res.latitude.toString(),
          lng: res.longitude.toString(),
        })
      },
      complete: () => {
        // 位置对应的名称
        wx.request({
          url: `https://restapi.amap.com/v3/geocode/regeo`,
          method: 'GET',
          data: {
            key: "你申请的高德地图 WEB API key",
            location: this.data.lng + "," + this.data.lat,
            extensions: "all",  // 返回基本地址信息、附近 POI 内容、道路信息以及道路交叉口信息
          },
          header: {
            'content-type': 'application/json'
          },
          success: res => {
            this.setData({
              address: res.data.regeocode.pois[0].name
            })
          }
        })
      }
    });
    

    本地调试注意事项

    在微信小程序开发工具上,获取的经纬度是不精确的,这会导致得到的位置名称也不准。

    最好在真机上看效果。

    高德地图接口的贴心之处

    通过设置 POI 列表,可以选择返回哪些类型的地址位置信息。

    例如,想返回附近的银行、加油站、公司、工厂等。这样就有了更大的想象空间。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式