php 高德API 导航

<!DOCTYPE HTML>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>步行路径规划</title> 
	<style type="text/css"><!-- 样式可以自己调试-->
		body{
			margin:10%;
			height:70%;
			width:50%;
			left:15%;
			position:absolute;
		}
		#mapContainer{
			position: absolute;
			top:0;
			left:0;
			right:0;
			bottom:0;
		}
		
		#tip{
			min-height:47px;
			max-width:230px;
			background-color:#fff;
			padding-left:10px;
			padding-right:10px;
			position:absolute;
			bottom:10px;
			font-size:12px;
			right:10px;
			border-radius:3px;
			border:1px solid #ccc;
		}
		#tip input[type="button"]{
			margin-top:10px;
			background-color: #0D9BF2;
			height:5%;
			text-align:center;
			line-height:25px;
			color:#fff;
			font-size:14px;
			border-radius:3px;
			outline: none;
			border:0;
			cursor:pointer;
		}
	</style>
	
</head>
<body>		
	<div id="mapContainer" ></div>
    <div id="tip"> 
		<input type="button" value="步行导航查询" οnclick="walking_route()"/>
		<div id="result"> </div>
	</div>
	
	<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=(你在高德上申请的KEY)"></script>
	<script type="text/javascript">		
		var route_text, steps;
		var polyline;
		//基本地图加载
		var map = new AMap.Map("mapContainer", {
			resizeEnable: true,
	    	view: new AMap.View2D({
	        center:new AMap.LngLat(114.363555,30.51773),//地图中心点(华中师范大学博雅广场)
	        zoom:15 //地图显示的缩放级别
	        })
	    });
<span style="white-space:pre">		</span>//加载地图工具条插件
<span style="white-space:pre">		</span>map.plugin(["AMap.ToolBar"],function(){<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>toolBar = new AMap.ToolBar();
<span style="white-space:pre">		</span>map.addControl(toolBar);<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>});
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>//加载比例尺插件
<span style="white-space:pre">		</span>map.plugin(["AMap.Scale"], function(){<span style="white-space:pre">		</span>
<span style="white-space:pre">			</span>scale = new AMap.Scale();
<span style="white-space:pre">			</span>map.addControl(scale);
<span style="white-space:pre">		</span>});

		//起、终点
		var start_xy = new AMap.LngLat(114.363561,30.518664);//九号教学楼
		var end_xy = new AMap.LngLat(114.364699,30.512648);//研究生院 
		//步行导航
		function walking_route() {
			var MWalk;
		    AMap.service(["AMap.Walking"], function() {        
		        MWalk = new AMap.Walking(); //构造路线导航类 
		        //根据起终点坐标规划步行路线
		        MWalk.search(start_xy, end_xy, function(status, result){
		        	if(status === 'complete'){
		        		walk_routeCallBack(result);
		        	}
		        }); 
		    });
		}
		//导航结果展示
		function walk_routeCallBack(data) {
			var routeS = data.routes;
				if (routeS.length <= 0) {
					document.getElementById("result").innerHTML = "未查找到任何结果!<br />建议:<br />1.请确保所有字词拼写正确。<br />2.尝试不同的关键字。<br />3.尝试更宽泛的关键字。";
				} 
				else { 
					route_text="";
				 	for(var v =0; v< routeS.length;v++){
				 		//步行导航路段数
						steps = routeS[v].steps;
						var route_count = steps.length;
						//步行距离(米)
						var distance = routeS[v].distance;
						//拼接输出html
						for(var i=0 ;i< steps.length;i++) {
							route_text += "<tr><td align=\"left\" onMouseover=\"walkingDrawSeg('" + i + "')\">" + i +"." +steps[i].instruction  + "</td></tr>";
						}
					}
					//输出步行路线指示
					route_text = "<table cellspacing=\"5 px\" ><tr><td style=\"background:#e1e1e1;\">路线</td></tr><tr><td><img src=\"http://code.mapabc.com/images/start.gif\" />  九号教学楼</td></tr>" + route_text + "<tr><td><img src=\"http://code.mapabc.com/images/end.gif\" />  研究生院</td></tr></table>";
					document.getElementById("result").innerHTML = route_text;
					walkingDrawLine();
				}
			}
		//绘制步行导航路线
		function walkingDrawLine() {
		    //起点、终点图标
			var sicon = new AMap.Icon({
				image: "http://api.amap.com/Public/images/js/poi.png",
				size:new AMap.Size(44,44),
				imageOffset: new AMap.Pixel(-334, -180)
			});
			var startmarker = new AMap.Marker({
				icon : sicon, //复杂图标
				visible : true, 
				position : start_xy,
				map:map,
				offset : {
					x : -16,
					y : -40
				}
			});
			var eicon = new AMap.Icon({
				image: "http://api.amap.com/Public/images/js/poi.png",
				size:new AMap.Size(44,44),
				imageOffset: new AMap.Pixel(-334, -134)
			});
			var endmarker = new AMap.Marker({
				icon : eicon, //复杂图标
				visible : true, 
				position : end_xy,
				map:map,
				offset : {
					x : -16,
					y : -40
				}
			}); 
			//起点到路线的起点 路线的终点到终点 绘制无道路部分
			var extra_path1 = new Array();
			extra_path1.push(start_xy);
			extra_path1.push(steps[0].path[0]);
			var extra_line1 = new AMap.Polyline({
				map: map,
				path: extra_path1,
				strokeColor: "#9400D3",
				strokeOpacity: 0.7,
				strokeWeight: 4,
				strokeStyle: "dashed",
				strokeDasharray: [10, 5]
			});
		
			var extra_path2 = new Array();
			var path_xy = steps[(steps.length-1)].path;
			extra_path2.push(end_xy);
			extra_path2.push(path_xy[(path_xy.length-1)]);
			var extra_line2 = new AMap.Polyline({
				map: map,
				path: extra_path2,
				strokeColor: "#9400D3",
				strokeOpacity: 0.7,
				strokeWeight: 4,
				strokeStyle: "dashed",
				strokeDasharray: [10, 5]
			});
		
			var drawpath = new Array(); 
			for(var s=0; s<steps.length; s++) {
				var plength = steps[s].path.length;
				for (var p=0; p<plength; p++) {
					drawpath.push(steps[s].path[p]);
				}
			}
			var polyline = new AMap.Polyline({
				map: map,
				path: drawpath,
				strokeColor: "#9400D3",
				strokeOpacity: 0.7,
				strokeWeight: 4,
				strokeDasharray: [10, 5]
			});
			map.setFitView();
		}	
		//绘制步行导航路段
		function walkingDrawSeg(num) {
			var drawpath1 = new Array();
			drawpath1 = steps[num].path;
			if(polyline != null) {
				polyline.setMap(null);
			}
			polyline = new AMap.Polyline({
					map: map,
					path: drawpath1,
					strokeColor: "#FF3030",
					strokeOpacity: 0.9,
					strokeWeight: 4,
					strokeDasharray: [10, 5]
				});
		
			map.setFitView(polyline);
		}
	</script> 
</body>  
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值