效果:我在手机上打开微信小程序,自动显示出我当前所在的地理位置:
具体步骤:
1. 使用微信jssdk提供的getLocation API拿到经纬度;
2. 调用高德地图的api使用经纬度去换取地址的文字描述。
wx.ready(() => {
wx.getLocation({
type: "gcj02",success: function(res) {
var location =
"&location=" + res.longitude + "," + res.latitude;
ReservationService.getGeocode(location).then(response => {
if (
response.data.status === "1" &&
response.data.info === "OK"
) {
self.country =
response.data.regeocode.addressComponent.country;
self.city = response.data.regeocode.addressComponent.city;
var express =
"/" +
self.country +
"|" +
response.data.regeocode.addressComponent.province +
"|" +
self.city +
"|" +
response.data.regeocode.addressComponent.district +
"|" +
response.data.regeocode.addressComponent.township +
"/g";
self.address = response.data.regeocode.formatted_address.replace(
eval(express),""
);
} else {
alert("无法获取地址信息,请稍后再试");
}
});
}
});
ReservationService.getGeocode的实现:
getGeocode(location) {
const key = '此处填入您高德地图app的key';
return axios.post('https://restapi.amap.com/v3/g...' + key + location);
}
看下面一个使用高德地图API将经纬度转换成文字描述的地址的例子,使用postman发送请求:
API响应:
{
"status": "1","regeocode": {
"addressComponent": {
"city": [],"province": "北京市","adcode": "110101","district": "东城区","towncode": "110101001000","streetNumber": {
"number": "44号","location": "116.39795,39.9097239","direction": "东北","distance": "117.874","street": "广场东侧路"
},"country": "中国","township": "东华门街道","businessAreas": [
{
"location": "116.3998109423077,39.90717459615385","name": "天安门","id": "110101"
},{
"location": "116.39981058278138,39.92383706953642",68);">"景山",68);">"116.4118112683418,39.91461494422115",68);">"王府井",68);">"110101"
}
],"building": {
"name": "type": "风景名胜;风景名胜相关;旅游景点"
},"neighborhood": {
"name": [],"type": []
},"citycode": "010"
},"formatted_address": "北京市东城区东华门街道天安门"
},"info": "OK","infocode": "10000"
}
要获取更多Jerry的原创文章,请关注公众号"汪子熙" (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|