在网页和小程序开发工作中,获取访客位置的需求非常常见。除了地图上位置信息的表达,很多时候还需要输出用户当前所在位置的自然语言描述。此时,可以通过百度地图浏览器定位API和逆地理编码API结合,实现这一需求,精确描述出页面访问者当前所在的位置。本文将具体实现进行说明。
开始之前
在开始进行开发工作之前,需要先后进行注册百度账号、申请成为百度开发者、获取服务秘钥的操作,在此不过多赘述。相关的操作可以查看基于Web的百度地图二次开发入门实践一文中的说明。
为了达到获取用户所在位置描述信息的需求,需要分为两步走。首先需要利用百度地图浏览器定位API获取用户所在位置的经纬度描述,然后利用获取的经纬度信息请求百度地图逆地理编码API,获取用户所在的位置描述。
获取用户所在位置的经纬度信息
为了更加精确的获取用户所在位置的经纬度,采用精度较高的浏览器定位方法。首先,在页面的head标签中,对百度地图的JS API进行引入。
<head>
<script type="text/javascript" src="//api.map.baidu.com/api?v=3.0&ak=你的AK"></script>
</head>
进而,在body标签内的适当位置编写代码调用浏览器定位API,代码如下:
<script>
var lng; //经度
var lat; //纬度
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
lng = r.point.lng;
lat = r.point.lat;
}
else {
alert('failed'+this.