【百度地图API】制作多途经点的线路导航

先创建一张地图的容器:

		<div class="pos-a" id="allmap"
			style="width: 100%; height: 95.5%;">
		</div>

然后实例化地图:

	var map = new BMap.Map('allmap');
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
    map.enableScrollWheelZoom(true);

创建几个坐标点对象。

 	//起点
    var p1 = new BMap.Point(116.301934,39.977552);
    //途经点
    var p2 = new BMap.Point(116.319876,39.943319);//豪柏大厦
    var p3 = new BMap.Point(116.405628,39.9139721);//天安门
    var p4 = new BMap.Point(116.455646,39.937433);//体育馆
    //终点
    var p5 = new BMap.Point(116.508328,39.919141);
    
    var points = [p1,p2,p3,p4,p5];

创建百度地图驾车实例:

//创建行车路线规划实例
	 var driving = new BMap.DrivingRoute(map);  
	for(var i = 0;i<points.length;i++){
	 	if(i != points.length-1){
	 		driving.search(points[i], points[i+1]);  //绘制两个点之间的路线
	 	}
	 }

完整代码:

<script type="text/javascript">
	// 百度地图API功能
    var map = new BMap.Map('allmap');
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
    map.enableScrollWheelZoom(true);
  
    //起点
    var p1 = new BMap.Point(116.301934,39.977552);
    //途经点
    var p2 = new BMap.Point(116.319876,39.943319);//豪柏大厦
    var p3 = new BMap.Point(116.405628,39.9139721);//天安门
    var p4 = new BMap.Point(116.455646,39.937433);//体育馆
    //终点
    var p5 = new BMap.Point(116.508328,39.919141);
    
    var points = [p1,p2,p3,p4,p5];
    
    //起点
    var mp1 = points[0];
    //终点
    var mp2 = points[points.length-1];

	 map.clearOverlays();                        //清除地图上所有的覆盖物
	//创建行车路线规划实例
	 var driving = new BMap.DrivingRoute(map);  
	for(var i = 0;i<points.length;i++){
	 	if(i != points.length-1){
	 		driving.search(points[i], points[i+1]);  //绘制两个点之间的路线
	 	}
	 }
	
	//显示终点和起点的标注
	 driving.setSearchCompleteCallback(function(){
	     var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    
	     //通过驾车实例,获得一系列点的数组        
	     var polyline = new BMap.Polyline(pts);             
	     map.addOverlay(polyline);                
	     var m1 = new BMap.Marker(mp1);         //起点  
	     var m2 = new BMap.Marker(mp2);        //终点
	     map.addOverlay(m1);        
	     map.addOverlay(m2);                
	     var lab1 = new BMap.Label("起点",{position:mp1});        
	     var lab2 = new BMap.Label("终点",{position:mp2});           
	     map.addOverlay(lab1);        
	     map.addOverlay(lab2);                
	     setTimeout(function(){
	     	map.setViewport(points);          
	     	//调整到最佳视野        
	     	},1000);
	     });
	</script>

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

散装程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值