百度地图定位

先放百度地图的官方例子网址: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 })
}

猜你喜欢

转载自blog.csdn.net/Bambi12/article/details/81946866