百度地图定位技术

百度地图定位技术

LBS(Location Based Service,基于位置的服务)的三大目标是:你在哪里;你和谁在一起;附近有什么资源。其中『你在哪里』是LBS服务的核心。

百度智能定位服务,是为了帮助广大开发者更好解决『你在哪里』这个难题而开放的服务。支持GPS、WiFi、基站融合定位,完美支持各类应用开发者对位置获取的诉求。

百度地图开放平台定位服务是广大开发者定位首选服务,每日定位请求超过300亿次,开发者市场占有率超过70%。

不小心给百度打广告了,没办法别人做的产品就是那么优秀。

1、浏览器定位经纬度,精准定位到省市街

var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function(r){
      console.log(r)
        if(this.getStatus() == BMAP_STATUS_SUCCESS){
            var mk = new BMap.Marker(r.point);
            map.addOverlay(mk);
            map.panTo(r.point);
            alert('您的经纬度:'+r.point.lng+','+r.point.lat);
          alert('您的位置:'+r.address.province+','+r.address.city
               +','+r.address.district+','+r.address.street+','+r.address.street_number);
        }
        else {
            alert('failed'+this.getStatus());
        }        
    },{enableHighAccuracy: true})
    //关于状态码
    //BMAP_STATUS_SUCCESS   检索成功。对应数值“0”。
    //BMAP_STATUS_CITY_LIST 城市列表。对应数值“1”。
    //BMAP_STATUS_UNKNOWN_LOCATION  位置结果未知。对应数值“2”。
    //BMAP_STATUS_UNKNOWN_ROUTE 导航结果未知。对应数值“3”。
    //BMAP_STATUS_INVALID_KEY   非法密钥。对应数值“4”。
    //BMAP_STATUS_INVALID_REQUEST   非法请求。对应数值“5”。
    //BMAP_STATUS_PERMISSION_DENIED 没有权限。对应数值“6”。(自 1.1 新增)
    //BMAP_STATUS_SERVICE_UNAVAILABLE   服务不可用。对应数值“7”。(自 1.1 新增)
    //BMAP_STATUS_TIMEOUT   超时。对应数值“8”。(自 1.1 新增)

这里写图片描述
2、将多个经纬度标注到地图中

var index = 0;
    var myGeo = new BMap.Geocoder();
    var mycars = ['113.307852,23.057031','113.313082,23.047674','113.328749,23.026922'];
    var adds = [];
    for (var x in mycars) {
        var mycar = mycars[x].split(",");
        adds[x] = new BMap.Point(mycar[0],mycar[1]);
    }
    /*var adds = [
        new BMap.Point(113.307852,23.057031),
        new BMap.Point(113.313082,23.047674),
        new BMap.Point(113.328749,23.026922),
        new BMap.Point(113.347571,23.988698),
        new BMap.Point(113.316163,23.997753),
        new BMap.Point(113.345867,23.998333),
        new BMap.Point(113.403472,23.999411),
        new BMap.Point(113.307901,23.05901)
    ];*/
    for(var i = 0; i<adds.length; i++){
        var marker = new BMap.Marker(adds[i]);
        map.addOverlay(marker);
        //marker.setLabel(new BMap.Label("街道",{offset:new BMap.Size(20,-10)}));
    }

这里写图片描述
3、如果你不喜欢红色,可以更换新的标注

var myIcon = new BMap.Icon("http://lbsyun.baidu.com/jsdemo/img/fox.gif", new BMap.Size(300,157));
    var mycars = ['113.307852,23.057031','113.313082,23.047674','113.328749,23.026922'];
    var adds = [];
    for (var x in mycars) {
        var mycar = mycars[x].split(",");
        adds[x] = new BMap.Point(mycar[0],mycar[1]);
    }
    for(var i = 0; i<adds.length; i++){
        var marker = new BMap.Marker(adds[i],{icon:myIcon});
        map.addOverlay(marker);
    }

这里写图片描述
4、根据地址查询出地图具体位置和街景图

function searchMap(){
        var address = $("#searchAddress").val();
        local.search(address);
    }

    function searchMap2(){
        var start = $("#startAddress").val();
        var end = $("#endAddress").val();
        map.clearOverlays(); 
        search(start,end,routePolicy[0]); 
        function search(start,end,route){ 
            transit.setPolicy(route);
            transit.search(start,end);
        }
    }

这里写图片描述

艳辉网的业务之一便是精准定位,这只是前端一小部分的定位,还有后台的web定位api。
只需一个ip,既能定位到省市街。
用法:

String ip = "223.73.53.92";

        BaiduMap map = _mapUtil.getBaiduAddress();
        if(map != null){
            //经度
            String x = map.getContent().getPoint().getX()+"";
            //纬度
            String y = map.getContent().getPoint().getY()+"";
            String province = map.getContent().getAddress_detail().getProvince();
            String city = map.getContent().getAddress_detail().getCity();
            String location = y+","+x;
            Map<String, String> map2 = _mapUtil.getLatAndLngByAddress2(location);
            String address = map2.get("address");
            System.out.println(x+","+y+","+address+","+province+","+city);
        }

除了百度定位,我们还提供淘宝、新浪、腾讯、高德、搜狐定位等。
需要源码可“艳辉网”微信公众号回复“java161”,极品源码get到家。

提示:

<script type="text/javascript">
$(function(){
    //获取城市ajax
    $.ajax({
    url: 'http://api.map.baidu.com/location/ip?ak=ia6HfFL660Bvh43exmH9LrI6',  
    type: 'POST',  
    dataType: 'jsonp',
    success:function(data) {  
        console.log(JSON.stringify(data.content.address_detail.province + "," + data.content.address_detail.city));
        $('#city').html(JSON.stringify(data.content.address_detail.province + "," + data.content.address_detail.city))
    }
    });
    //获取ip ajax
    $.ajax({
        url: 'http://freegeoip.net/json/',
        success: function(data){
           console.log(JSON.stringify(data.ip));
           $('#ip').html(JSON.stringify(data.ip))
        },
        type: 'GET',
        dataType: 'JSON'
    });
})

</script>

猜你喜欢

转载自blog.csdn.net/sinat_15153911/article/details/80722357