百度地圖 運行軌跡Demo

<!DOCTYPE html>
<html style="width: 100%; height: 100%;">
<head>
	<link rel="stylesheet" href="layui/css/layui.css">
	<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=nGySXbEo38xSOIslt3KWVIW7N9Tayipr"></script>
	<script type="text/javascript" src="http://api.map.baidu.com/library/LuShu/1.2/src/LuShu_min.js"></script>
	<script type="text/javascript" src="//api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js"></script>
	<script type="text/javascript" src="//api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js"></script>
	<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
	<script src="layui/layui.js"></script>
	<script src="js/jquery/jquery-1.11.3.min.js"></script>
	<meta charset="UTF-8">
	<title>百度地圖運行軌跡Demo</title>
<style>
	#up-map-div{
		top:20px;
		left:200px;
		background: rgba(0, 0, 0, 0) none repeat scroll !important;/* rgba(0, 0, 0, 0.2) 前三個確定顏色,最後0.2確定透明度 */
		position:absolute;
		z-index:9999;
		border:2px solid blue;
		background-color:#FFFFFF;
	}
</style>
</head>
	<body style="width: 100%; height: 100%;">
		<div class="layui-row" style="width: 100%; height: 100%;">
			<div class="layui-container" style="width: 100%; height: 100%;">  
				<div class="layui-col-md2" style="overflow-x: auto; overflow-y: auto; height: 100%; width:300px;">
				</div>
				<div class="layui-col-md10" style="width: 75%; height: 100%;">
					<div id="baiduMap" style="width: 100%; height: 100%;"></div>
					<div id="up-map-div">
						<button id="show">查看詳情</button>
						<!--<span id="show">懸浮div,讓它懸浮在地圖上面</span>-->
					</div>
				</div>
			</div>
		</div>
	</body>
<script> 
	
	
	var billData = {
			ADJUST_REASON_EXPLAIN: null,
			ADJUST_REASON_NAME: null,
			AMT_COST_SUM: 9195.74,
			CARRIER_NAME: "淮安市淮盛貨物運輸有限公司",
			DELIVER_DATE: "2019-09-05",
			FACT_NAME: "淮陰捲菸廠",
			IS_SHARE_NAME: "否",
			LATITUDE: 33.5,
			LONGITUDE: 119.06,
			ORDER_STATUS_NAME: "智能優化",
			QTY_QUANTITY_SUM: 1125,
			QTY_TRAY_SUM: 0,
			QTY_WEIGHT_SUM: 20.455,
			STOWAGE_ID: "10030799",
			TRAN_TYPE_NAME: "汽運",
	}
	
	var mapData = [
		{
			   BUSI_NAME: "蚌埠",
				BUSI_STORE_CODE: "3634",
				LATITUDE: 32.880051,
				LONGITUDE: 117.323111,
				QTY_QUANTITY_SUM: 300,
				TRAN_ORDER_NO: 1,
		},
		{
			   BUSI_NAME: "信陽",
				BUSI_STORE_CODE: "4380",
				LATITUDE: 32.16,
				LONGITUDE: 114.089,
				QTY_QUANTITY_SUM: 825,
				TRAN_ORDER_NO: 2,
		}
	]
	//$("#showContext").hide();
	map(billData,mapData);
	function map(billData,mapData){
		var point = []; //存儲商業公司圖經點
		point.push(new BMap.Point(billData.LONGITUDE, billData.LATITUDE)); //轉換座標
	    for(var item in mapData){
	    	var point1 = new BMap.Point(mapData[item].LONGITUDE, mapData[item].LATITUDE); //轉換座標
	    	point.push(point1);
	    }
		// 百度地圖API功能
		var map = new BMap.Map("baiduMap");    // 創建Map實例
	    map.centerAndZoom(point[0], 13);  //第一個參數可以是根據之前創建好的一個點爲中心,第二個參數是地圖縮放級別,最大爲19,最小爲0。
		map.enableScrollWheelZoom(true);//開啓鼠標滾輪縮放
		map.clearOverlays();   //清除地圖上所有的覆蓋物  
		var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
		map.addControl(top_left_control);   
		var top_right_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_RIGHT, type: BMAP_NAVIGATION_CONTROL_LARGE}); //右上角,完整的縮放平移
		map.addControl(top_right_navigation); 
		var options = {
				 //renderOptions:{map: map, autoViewport: true},
		         onSearchComplete: function(results){
		            if (transit.getStatus() == BMAP_STATUS_SUCCESS){
		                // 獲取第一條方案
		                var plan = results.getPlan(0);
		                // 獲取方案的駕車線路
		                var route = plan.getRoute(0);
		                // 獲取每個關鍵步驟,並輸出到頁面
		                var polylinePoints = [];
		                for(var i = 1; i <= plan.getNumRoutes(); i++){
		                    var pathArr = plan.getRoute(i - 1).getPath();
		                    polylinePoints.push(pathArr);
		                }
		                	                
		             	// 自定義的路徑   線的顏色等                                         
		                var polyline = new BMap.Polyline(plan.getRoute(0).getPath(), {
		                    strokeColor: '#DC143C',
		                    strokeWeight: '4',
		                    strokeOpacity: '.8'
		                });
	
		                map.addOverlay(polyline);
		                addMark();//增加標杆
		            }
		        }
		    };
	    var transit = new BMap.DrivingRoute(map, options);
	  /*  if(point.length>2){
	    	transit.search(point[0], point[2],{waypoints:[point[1]]});//waypoints表示途經點
	    }else{
	    	transit.search(point[0], point[1]);
	    }*/
	    for(var i=0;i<point.length-1;i++){
	    	transit.search(point[i], point[i+1]);
		}
	    
	 // 設置中心點和地圖縮放級別
		function setCenterAndZoom(result){
		    var cityName = result.name;
		    map.centerAndZoom(cityName,12);  
		}
		
	  function addMark(){
	       for(var i = 0 ; i< point.length ; i++){
	    		var marker = new BMap.Marker(point[i]); 
	    		var opts = { 
	    	      width : 100,     // 信息窗口寬度   
	    	      height: 100,     // 信息窗口高度  
	    	      title : "<h3><b>庫房位置信息</b></h3>	" }  // 信息窗口標題  
	    		
	    		map.addOverlay(marker); 
	    		if(i==0){
	    			marker.addEventListener("click", function(e){ 
		    			for(item in mapData){
	    					var info = "<b>工廠:</b>&nbsp;&nbsp;"+billData.FACT_NAME+"<br/><b>總數量(件):</b>&nbsp;"+billData.QTY_QUANTITY_SUM
	    		    		var infoWindow = new BMap.InfoWindow(info, opts);  // 創建信息窗口對象  
	    					this.openInfoWindow(infoWindow);  
		    			}
		    	    	
		    	    });
	    		}else{
	    			marker.addEventListener("click", function(e){ 
		    			for(item in mapData){
		    				if(mapData[item].LONGITUDE==e.target.point.lng 
		    						&& mapData[item].LATITUDE==e.target.point.lat){
		    					console.log(mapData[item].QTY_QUANTITY_SUM)		
		    					var info = "<b>商業公司:</b> "+mapData[item].BUSI_NAME+"<br/><b>總數量(件):</b>&nbsp"+mapData[item].QTY_QUANTITY_SUM;
		    		    		var infoWindow = new BMap.InfoWindow(info, opts);  // 創建信息窗口對象  
		    					this.openInfoWindow(infoWindow);  
		    				}
		    			}
		    	    	
		    	    });
	    		}
	    		
	    		if(i==0){
	    			var lab1 = new BMap.Label("起點",{position:point[0]}); 
	    			map.addOverlay(lab1); 
	    		}else if(i==point.length-1){
	    			var lab3 = new BMap.Label("終點",{position:point[point.length-1]});
	    			map.addOverlay(lab3);
	    		}else{
	    			var lab2 = new BMap.Label("途徑點",{position:point[i]}); 
	    			map.addOverlay(lab2);
	    		}
	    		
	    	}
	       setTimeout(function(){  
	           map.setViewport(point);          //調整到最佳視野  
	       },1000);  
	    }
	  
		$("#show").click(function(){
			var opts = {    
			    width : 250,     // 信息窗口寬度    
			    height: 100,     // 信息窗口高度    
			    title : "<h3><b>詳情</b></h3>"  // 信息窗口標題   
			} 
			var info = "<table><thead><th>編號</th><th>姓名</th><thead><tr><td>10001</td><td>張三</td></tr></table>"
			var infoWindow = new BMap.InfoWindow(info, opts);  // 創建信息窗口對象    
			map.openInfoWindow(infoWindow, map.getCenter());      // 打開信息窗口
		});
		
	}
</script>
</html>

效果圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章