在微信小程序里自动获得当前手机所在的经纬度并转换成地址

效果:我在手机上打开微信小程序,自动显示出我当前所在的地理位置:

webp

具体步骤:

1. 使用微信jssdk提供的getLocation API拿到经纬度;

2. 调用高德地图的api使用经纬度去换取地址的文字描述。

webp


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 {// get location error, plz input addressalert("无法获取地址信息,请稍后再试");
}
});
}
});

ReservationService.getGeocode的实现:

getGeocode(location) {

const key = '此处填入您高德地图app的key';

return  axios.post('https://restapi.amap.com/v3/geocode/regeo?key='  + key + location);

}

看下面一个使用高德地图API将经纬度转换成文字描述的地址的例子,使用postman发送请求:

webp

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","name": "景山","id": "110101"},
{"location": "116.4118112683418,39.91461494422115","name": "王府井","id": "110101"}
],"building": {"name": "天安门","type": "风景名胜;风景名胜相关;旅游景点"},"neighborhood": {"name": [],"type": []
},"citycode": "010"},"formatted_address": "北京市东城区东华门街道天安门"},"info": "OK","infocode": "10000"}

webp

webp

webp

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24475491/viewspace-2217004/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24475491/viewspace-2217004/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值