百度地图实现根据路线添加覆盖物

来源:互联网 发布:汤姆克鲁斯 知乎 编辑:程序博客网 时间:2024/04/28 08:57

第一步:在jsp文件的<head>标签中引入百度地图api,<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>,1.2的版本是不需要密匙,其他版本请申请密匙

第二部:设置地图铺满全屏

<style type="text/css">
            html{height:100%}  
            body{height:100%;margin:0px;padding:0px}  
            #allmap{height:100%}
 </style>

第三部:在<body>标签中添加<div>

<div id="allmap">
            
 </div>

第四部:写js代码

<script type="text/javascript">
        var map = new BMap.Map("allmap");//创建map实例
        map.centerAndZoom(new BMap.Point(116.438764,39.914714),8);//初始化map实例,默认以现有坐标为中心
        map.enableScrollWheelZoom();
        map.addControl(new BMap.NavigationControl());
        map.addControl(new BMap.ScaleControl());
        map.addControl(new BMap.OverviewMapControl());
        
        function searchMap(){
        
         
            for(var k = 1;k<=totalPage;k++){//根据内容来分布ajax请求坐标点
                $.ajax({
                    type:"POST",
                    url:"../tudaapi/ajaxToMap.form?currentPage="+k+"&authCode="+authCode+"&id="+liftId,
                    success:function(data){
                        var locationSites = data;
                        var jsonLocations = eval(locationSites);
                        var driving = new BMap.DrivingRoute(map);    //创建驾车实例
                        var points = new Array();//创建一个用来存放坐标点的数组
                        for(var i = 0;i<jsonLocations.length;i++){
                            var point = new BMap.Point(jsonLocations[i].latitude,jsonLocations[i].longitude);
                            points.push(point);
                            var marker = new BMap.Marker(point);
                            map.addOverlay(marker);
                        }
                        for(var j = 0;j<points.length-1;j++){
                            driving.search(points[j],points[j+1]);    
                        }
                        driving.setSearchCompleteCallback(function(){
                            var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    //通过驾车实例,获得一系列点的数组
                            var polyline = new BMap.Polyline(pts,{strokeColor:"blue", strokeWeight:4, strokeOpacity:0.5});     
                            map.addOverlay(polyline);
                        });
                        map.setViewport(points);          //调整到最佳视野
                    }        
                });
            }
            
        }

    </script>

0 0
原创粉丝点击