百度地图定位
程序员文章站
2022-06-10 12:42:16
...
先放百度地图的官方例子网址:http://lbsyun.baidu.com/jsdemo.htm#a1_2
手机端,利用百度地图定位 首先必须有一个百度地图的秘钥,可以免费申请,很简单
将经纬度转换为具体地址
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=tpaTdUebZElgohrGejFDDTlQCwSPrPwa"></script>
//关于版本有很多种,我一开始是哪个版本记不清了,但是不能用,所以前前后后试了几个版本以后发现2.0可用
<div class="sign-map" id="container"></div>
$(document).ready(function(){
map = new BMap.Map("container"); // 创建Map实例
map.centerAndZoom("上海", 15); //设置上海为地图中心
weui.Loading.show();
GetMap();
})
function GetMap(){
geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function (r) { //用来获取地理位置
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
weui.Loading.hide();
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
var pt = r.point;
var ptx = Math.round(pt.lng * 1000) / 1000;
var pty = Math.round(pt.lat * 1000) / 1000;
var newpoint = new BMap.Point(ptx, pty); //和r.point是一个性质,但是r.point中的经纬度小数位太多,解析出了点问题,所以先对经纬度处理后又变回来了
gc = new BMap.Geocoder(); //这个用来解析经纬度
gc.getLocation(newpoint, function (rs) {
var addComp = rs.addressComponents;
if (addComp.street.length > 0) {
var address = addComp.city + addComp.district + addComp.street; //获取城市、区和街道
$(".sign-address").text(address);
}
});
}
else {
switch (this.getStatus()) {
case 2:
alert('位置结果未知 获取位置失败.');
break;
case 3:
alert('导航结果未知 获取位置失败.');
break;
case 4:
alert('非法** 获取位置失败.');
break;
case 5:
alert('对不起,非法请求位置 获取位置失败.');
break;
case 6:
alert('对不起,当前 没有权限 获取位置失败.');
break;
case 7:
alert('对不起,服务不可用 获取位置失败.');
break;
case 8:
alert('对不起,请求超时 获取位置失败.');
break;
}
}
}, { enableHighAccuracy: true })
}
上一篇: 形参的一种特殊写法
下一篇: 百度地图- - -定位