为了方便用户在小程序页面中一目了然的知道自己当前位置,需要将获取到的经纬度转换成可读的位置描述。例如:烟台市开发区万科城。
位置信息 API 选型
- 高德地图接口
https://lbs.amap.com/api/webservice/guide/api/georegeo/
- 腾讯地图
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 聊聊, 查看更多联系方式