微信的getLocation接口可以获取到用户的经纬度信息,但是没有办法拿到省市县街道信息,所以就需要用到高德的api接口将经纬度转换为省市县这种信息,在对接的时候,有两种方式可以对接这个接口,一个是使用高德的web服务,一个是微信小程序sdk,因为sdk会增加小程序的体积,所以我选择web服务。
申请高德KEY
在高德地图的后台,先创建一个应用,然后申请一个web服务的key:https://console.amap.com/dev/key/app
复制key到小程序
将创建的web服务的key复制到小程序中
替换下面代码的key
uni.getLocation({
geocode: true, // 返回经纬度
success: function (loction) {
console.log("getLocation", loction);
// 将经纬度转换为城市数据
uni.request({
url: 'https://restapi.amap.com/v3/geocode/regeo',
method: 'GET',
data: {
key: '高德WEB服务key',
location: loction.longitude + ',' + loction.latitude
},
success: (resda: any) => {
console.log("resda", resda)
const { province, district } = resda.data.regeocode.addressComponent
CityName.value = province
uni.navigateBack()
},
fail: (err: any) => {
console.log("restapi err", err);
}
})
}
})
然后发送一个请求就可以看到结果了: