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

更新日期: 2020-08-04 阅读次数: 3620 字数: 342 分类: 微信小程序

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

位置信息 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 聊聊, 查看更多联系方式