欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

百度地图定位

程序员文章站 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 })
}