自2018年10月18日起,高德开发者论坛除车机板块外,其他板块将停止发帖与维护,如您有使用问题请 提交工单 联系我们,感谢您的理解。

查看: 2689|回复: 13
打印 上一主题 下一主题

【高德地图API】从零开始学高德JS API(五)路线规划

[复制链接]
最佳答案
5 

22

主题

760

帖子

1877

积分

超级版主

Rank: 8Rank: 8

积分
1877
QQ
跳转到指定楼层
楼主
发表于 2014-8-27 11:35:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 emilyvivi5 于 2014-8-27 11:38 编辑

先来看两个问题:路线规划与导航有什么区别?步行导航与驾车导航有什么区别?
回答:
1、路线规划,指的是为用户提供3条路线推荐。【高德】在提供路线规划的时候,会提供用户自定义路线规划功能,这是别家没有做到的。导航,指的是为驾车用户提示路口信息,向左向右,进入匝道等信息。
2、我们这里说的步行导航和驾车导航,严格的说,应该是路线规划。从A地到B地,如果是驾车,路线规划会将公路路网做为搜索数据;如果是步行,过街天桥、地下通道、人行道做为搜索数据。
-------------------------------------------------------------------------------------------------------

一、路线规划——驾车
1、驾车路线规划
有三种策略,分别是最短时间、最少费用、最短路径、规避拥堵(参考了实时交通数据,这个比较NB)。
LEAST_TIME,LEAST_FEE LEAST_DISTANCEREAL_TRAFFIC

我们在这里采取驾车插件来做。代码:
  1. <div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"></font></font></div><div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"><font color="rgb(102, 102, 102)"><ul type="1" class="litype_1"><li>//驾车导航</li><li>function driving_route() {</li><li>    clearMap();</li><li>    mapObj.plugin(["AMap.Driving"] function() {</li><li>        var DrivingOption = {</li><li>            policy: AMap.DrivingPolicy.LEAST_TIME</li><li>        };</li><li>        MDrive = new AMap.Driving(DrivingOption); //构造驾车导航类</li><li>        AMap.event.addListener(MDrive "complete" driving_routeCallBack); //返回导航查询结果</li><li>        MDrive.search(start_xy end_xy); //根据起终点坐标规划驾车路线</li><li>    });</li><li>}
  2. </li></ul>
  3. [color=rgb(51, 102, 153) !important]<font style="font-size: 12px">复制代码</font></font></font></font></div>
复制代码

示意图:

2、驾车最后一公里步行
在最开始一段,和最后一段步行距离的时候,可以用虚线来表示。
代码:
  1. <div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"></font></font></div><div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"><font color="rgb(102, 102, 102)"><ul type="1" class="litype_1"><li>//起点到路线的起点 路线的终点到终点 绘制无道路部分</li><li>    var extra_path1 = new Array();</li><li>    extra_path1.push(start_xy);</li><li>    extra_path1.push(steps[0].path[0]);</li><li>    var extra_line1 = new AMap.Polyline({</li><li>        map: mapObj</li><li>        path: extra_path1</li><li>        strokeColor: "#9400D3"</li><li>        strokeOpacity: 0.7</li><li>        strokeWeight: 4</li><li>        strokeStyle: "dashed"   //虚线</li><li>        strokeDasharray: [10 5]</li><li>    });</li><li></li><li>    var extra_path2 = new Array();</li><li>    var path_xy = steps[(steps.length-1)].path;</li><li>    extra_path2.push(end_xy);</li><li>    extra_path2.push(path_xy[(path_xy.length-1)]);</li><li>    var extra_line2 = new AMap.Polyline({</li><li>        map: mapObj</li><li>        path: extra_path2</li><li>        strokeColor: "#9400D3"</li><li>        strokeOpacity: 0.7</li><li>        strokeWeight: 4</li><li>        strokeStyle: "dashed"  //虚线</li><li>        strokeDasharray: [10 5]</li><li>    });
  2. </li></ul>
  3. [color=rgb(51, 102, 153) !important]<font style="font-size: 12px">复制代码</font></font></font></font></div>
复制代码

效果图:

3、驾车导航拖拽效果
如果要可拖拽的效果,需要使用另外一个插件,AMap.DragRoute。
代码:
  1. <div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"></font></font></div><div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"><font color="rgb(102, 102, 102)"><ul type="1" class="litype_1"><li>//可拖拽的驾车导航</li><li>function driving_route_drag(){</li><li>    clearMap();</li><li>    var path = [start_xyend_xy];</li><li>    mapObj.plugin("AMap.DragRoute"function(){</li><li>        MDrive = new AMap.DragRoute(mapObj path AMap.DrivingPolicy.LEAST_FEE); //构造拖拽导航类</li><li>        MDrive.search(); //查询导航路径并开启拖拽导航</li><li>    });</li><li>}
  2. </li></ul>
  3. [color=rgb(51, 102, 153) !important]<font style="font-size: 12px">复制代码</font></font></font></font></div>
复制代码

示意图:

示例查看:http://zhaoziang.com/amap/zero_5_1.html

二、路线规划——公交
1、公交导航
公交导航不仅是路线相关的,还是根据公交车路线数据,进行查询。使用到插件AMap.LineSearch。

代码
  1. <div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"><font color="rgb(102, 102, 102)"><ul type="1" class="litype_1"><li>//公交线路查询</li><li>function lineSearch() {</li><li>    clearMap();</li><li>    //加载公交线路查询插件</li><li>    //实例化公交线路查询类,只取回一条路线</li><li>    mapObj.plugin(["AMap.LineSearch"] function() {</li><li>       var linesearch = new AMap.LineSearch({</li><li>            pageIndex:1</li><li>            city:'北京'</li><li>            pageSize:1</li><li>            extensions:'all'</li><li>        });</li><li>        //搜索“518”相关公交线路</li><li>        linesearch.search('518');</li><li>        AMap.event.addListener(linesearch "complete" lineSearch_Callback);</li><li>        AMap.event.addListener(linesearch "error" function(e){alert(e.info);  
  2. </li><li>        });</li><li>    });</li><li>}
  3. </li></ul>
  4. [color=rgb(51, 102, 153) !important]<font style="font-size: 12px">复制代码</font></font></font></font></div>
复制代码

效果图:

2、公交线路查询,如518
查询公交线路,需要注明城市。每个城市都可能有518路线,对吧。

代码:
  1. <div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"></font></font></div><div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"><font color="rgb(102, 102, 102)"><ul type="1" class="litype_1"><li>//公交线路查询</li><li>function lineSearch() {</li><li>    clearMap();</li><li>    //加载公交线路查询插件</li><li>    //实例化公交线路查询类,只取回一条路线</li><li>    mapObj.plugin(["AMap.LineSearch"] function() {</li><li>       var linesearch = new AMap.LineSearch({</li><li>            pageIndex:1</li><li>            city:'北京'</li><li>            pageSize:1</li><li>            extensions:'all'</li><li>        });</li><li>        //搜索“518”相关公交线路</li><li>        linesearch.search('518');</li><li>        AMap.event.addListener(linesearch "complete" lineSearch_Callback);</li><li>        AMap.event.addListener(linesearch "error" function(e){alert(e.info);  
  2. </li><li>        });</li><li>    });</li><li>}
  3. </li></ul>
  4. [color=rgb(51, 102, 153) !important]<font style="font-size: 12px">复制代码</font></font></font></font></div>
复制代码

示意图:

3、通过站点,查公交线路
比如,我在北京东直门,想知道东直门都有哪些公交路线。使用服务插件AMap.StationSearch。

代码:
  1. <div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"></font></font></div><div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"><font color="rgb(102, 102, 102)"><ul type="1" class="litype_1"><li>//公交站点查询</li><li>function stationSearch() {</li><li>    clearMap();</li><li>    //加载公交站点查询插件</li><li>    mapObj.plugin(["AMap.StationSearch"] function() {</li><li>        //实例化公交站点查询类</li><li>        var station = new AMap.StationSearch({</li><li>            pageIndex: 1 //页码</li><li>            pageSize: 10 //单页显示结果条数</li><li>            city:'010'    //确定搜索城市</li><li>        });</li><li>        station.search('东直门'); //查询</li><li>        AMap.event.addListener(station 'complete' stationSearch_CallBack);</li><li>        AMap.event.addListener(station 'error' function(e) {alert(e.info);});  
  2. </li><li>    });</li><li>}
  3. </li></ul>
  4. [color=rgb(51, 102, 153) !important]<font style="font-size: 12px">复制代码</font></font></font></font></div>
复制代码

示例图:

示例查看:http://zhaoziang.com/amap/zero_5_1.html

三、路线规划——步行
步行,可以过天桥啊,地下通道啊,穿过小区啊,不能走高速公路啊,等特点。

代码:
  1. <div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"></font></font></div><div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"><font color="rgb(102, 102, 102)"><ul type="1" class="litype_1"><li>//步行导航</li><li>function walking_route() {</li><li>    var MWalk;</li><li>    mapObj.plugin(["AMap.Walking"] function() {</li><li>        MWalk = new AMap.Walking(); //构造路线导航类</li><li>        AMap.event.addListener(MWalk "complete" walk_routeCallBack); //返回导航查询结果</li><li>        MWalk.search(start_xy end_xy); //根据起终点坐标规划步行路线</li><li>    });</li><li>}
  2. </li></ul>
  3. [color=rgb(51, 102, 153) !important]<font style="font-size: 12px">复制代码</font></font></font></font></div>
复制代码

效果图:

示例查看:http://zhaoziang.com/amap/zero_5_1.html

四、小结
驾车,公交,步行的区别
1、从效果图里可以看出,这三种路线规划是搜索的不同数据库。
2、他们的服务插件不一样,都是通过【高德服务插件】进行调用。比原生API接口封装得更加完善,使用起来更加简单。

五、全部源代码
  1. <div align="left"><font face="Verdana Arial Helvetica sans-serif"><font style="font-size: 13px"></font></font></div><div align="left"><font color="rgb(102, 102, 102)"><ul type="1" class="litype_1"><li><!DOCTYPE HTML></li><li><html></li><li><head></li><li><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  2. </li><li><title>地图路线规划服务</title>
  3. </li><li><link rel="stylesheet" type="text/css" href="zero.css" />
  4. </li><li><script language="javascript" src="http://webapi.amap.com/maps?v=1.2&key=caaa086bdf5666322fba3baf5a6a2c03"></script></li><li></head></li><li><body></li><li>        <div id="iCenter"></div></li><li>    <div id="iControlbox"></li><li>                <p>坐标:<span id="lnglats"> </span></p></li><li>                <ul></li><li>                        <li></li><li>                                <button>驾车路线规划</button></li><li>                                <button>可拖拽插件</button></li><li>                        </li></li><li>                        <li></li><li>                                <button>公交路线规划</button></li><li>                                <button>518路公交车</button></li><li>                                <button>东直门站点</button></li><li>                        </li></li><li>                        <li></li><li>                                <button>步行路线规划</button></li><li>                        </li></li><li>                        <li></li><li>                                <button>清空地图</button></li><li>                        </li></li><li>                </ul></li><li>        </div></li><li>        <div id="result"></div></li><li><!-- tongji begin--></li><li><script type="text/javascript"></li><li>var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");</li><li>document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3Faeff88f19045b513af7681b011cea3bd' type='text/javascript'%3E%3C/script%3E"));</li><li></script></li><li><!-- tongji end --></li><li></body></li><li><script language="javascript"></li><li>function setLi(id1id2){</li><li>        document.getElementById("box1").style.display = "none";</li><li>        document.getElementById("box2").style.display = "none";</li><li>        document.getElementById("box3").style.display = "none";</li><li>        document.getElementById(id1).style.display = "block";</li><li></li><li>        document.getElementById("iLi1").style.background = "#eee";</li><li>        document.getElementById("iLi2").style.background = "#eee";</li><li>        document.getElementById("iLi3").style.background = "#eee";</li><li>        document.getElementById(id2).style.background = "#fff";</li><li>}</li><li></li><li>var mapObj;</li><li>var route_text</li><li>var steps;</li><li>var polyline;</li><li>var MDrive;</li><li>var btContent = new Array(); //结果表格数组</li><li>var resultStr;//结果拼接string</li><li>var resLine  = ''; //结果表格对象</li><li>//初始化地图对象,加载地图</li><li>function mapInit(){</li><li>    mapObj = new AMap.Map("iCenter"{</li><li>    center:new AMap.LngLat(116.39742839.90923) //地图中心点</li><li>    level:11  //地图显示的比例尺级别</li><li>    });</li><li>        AMap.event.addListener(mapObj'click'getLnglat); //点击事件</li><li>}</li><li>//鼠标点击,获取经纬度坐标</li><li>function getLnglat(e){</li><li>        var x = e.lnglat.getLng();</li><li>        var y = e.lnglat.getLat();</li><li>        document.getElementById("lnglats").innerHTML = x + "" + y;</li><li>}</li><li>//清空地图</li><li>function clearMap(){</li><li>        mapObj.clearMap();</li><li>        document.getElementById("result").innerHTML = ' ';</li><li>}</li><li>//起、终点</li><li>var start_xy = new AMap.LngLat(116.37901839.865026);</li><li>var end_xy = new AMap.LngLat(116.321139 39.896028);</li><li>//驾车导航</li><li>function driving_route() {</li><li>        clearMap();</li><li>    mapObj.plugin(["AMap.Driving"] function() {</li><li>        var DrivingOption = {</li><li>            //驾车策略,包括 LEAST_TIME,LEAST_FEE LEAST_DISTANCEREAL_TRAFFIC</li><li>            policy: AMap.DrivingPolicy.LEAST_TIME</li><li>        };</li><li>        MDrive = new AMap.Driving(DrivingOption); //构造驾车导航类</li><li>        AMap.event.addListener(MDrive "complete" driving_routeCallBack); //返回导航查询结果</li><li>        MDrive.search(start_xy end_xy); //根据起终点坐标规划驾车路线</li><li>    });</li><li>}</li><li>//可拖拽的驾车导航</li><li>function driving_route_drag(){</li><li>        clearMap();</li><li>        var path = [start_xyend_xy];</li><li>        mapObj.plugin("AMap.DragRoute"function(){</li><li>        MDrive = new AMap.DragRoute(mapObj path AMap.DrivingPolicy.LEAST_FEE); //构造拖拽导航类</li><li>        MDrive.search(); //查询导航路径并开启拖拽导航</li><li>    });</li><li>}</li><li>//导航结果展示</li><li>function driving_routeCallBack(data) {</li><li>    var routeS = data.routes;</li><li>    if (routeS.length <= 0) {</li><li>        document.getElementById("result").innerHTML = "未查找到任何结果!<br />建议:<br />1.请确保所有字词拼写正确。<br />2.尝试不同的关键字。<br />3.尝试更宽泛的关键字。";</li><li>    }</li><li>    else{</li><li>        route_text="";</li><li>        for(var v =0; v< routeS.length;v++){</li><li>            //驾车步骤数</li><li>            steps = routeS[v].steps</li><li>            var route_count = steps.length;</li><li>            //行车距离(米)</li><li>            var distance = routeS[v].distance;</li><li>            //拼接输出html</li><li>            for(var i=0 ;i< steps.length;i++){</li><li>                route_text += "<tr><td align=\"left\" onMouseover=\"driveDrawFoldline('" + i + "')\">" + i +"." +steps<i>.instruction  + "</td></tr>";</i></li><li><i>            }</i></li><li><i>        }</i></li><li><i>        //输出行车路线指示</i></li><li><i>        route_text = "<table cellspacing=\"5px\"><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>";</i></li><li><i>        document.getElementById("result").innerHTML = route_text;</i></li><li><i>        drivingDrawLine();</i></li><li><i>    }</i></li><li><i>}</i></li><li><i>//绘制驾车导航路线</i></li><li><i>function drivingDrawLine(s) {</i></li><li><i>    //起点、终点图标</i></li><li><i>    var sicon = new AMap.Icon({</i></li><li><i>        image: "http://api.amap.com/Public/images/js/poi.png"</i></li><li><i>        size:new AMap.Size(4444)</i></li><li><i>        imageOffset: new AMap.Pixel(-334 -180)</i></li><li><i>    });</i></li><li><i>    var startmarker = new AMap.Marker({</i></li><li><i>        icon : sicon //复杂图标</i></li><li><i>        visible : true</i></li><li><i>        position : start_xy</i></li><li><i>        map:mapObj</i></li><li><i>        offset : {</i></li><li><i>            x : -16</i></li><li><i>            y : -40</i></li><li><i>        }</i></li><li><i>    });</i></li><li><i>    var eicon = new AMap.Icon({</i></li><li><i>        image: "http://api.amap.com/Public/images/js/poi.png"</i></li><li><i>        size:new AMap.Size(4444)</i></li><li><i>        imageOffset: new AMap.Pixel(-334 -134)</i></li><li><i>    });</i></li><li><i>    var endmarker = new AMap.Marker({</i></li><li><i>        icon : eicon //复杂图标</i></li><li><i>        visible : true</i></li><li><i>        position : end_xy</i></li><li><i>        map:mapObj</i></li><li><i>        offset : {</i></li><li><i>            x : -16</i></li><li><i>            y : -40</i></li><li><i>        }</i></li><li><i>    });</i></li><li><i>    //起点到路线的起点 路线的终点到终点 绘制无道路部分</i></li><li><i>    var extra_path1 = new Array();</i></li><li><i>    extra_path1.push(start_xy);</i></li><li><i>    extra_path1.push(steps[0].path[0]);</i></li><li><i>    var extra_line1 = new AMap.Polyline({</i></li><li><i>        map: mapObj</i></li><li><i>        path: extra_path1</i></li><li><i>        strokeColor: "#9400D3"</i></li><li><i>        strokeOpacity: 0.7</i></li><li><i>        strokeWeight: 4</i></li><li><i>        strokeStyle: "dashed"   //虚线</i></li><li><i>        strokeDasharray: [10 5]</i></li><li><i>    });</i></li><li></li><li><i>    var extra_path2 = new Array();</i></li><li><i>    var path_xy = steps[(steps.length-1)].path;</i></li><li><i>    extra_path2.push(end_xy);</i></li><li><i>    extra_path2.push(path_xy[(path_xy.length-1)]);</i></li><li><i>    var extra_line2 = new AMap.Polyline({</i></li><li><i>        map: mapObj</i></li><li><i>        path: extra_path2</i></li><li><i>        strokeColor: "#9400D3"</i></li><li><i>        strokeOpacity: 0.7</i></li><li><i>        strokeWeight: 4</i></li><li><i>        strokeStyle: "dashed"  //虚线</i></li><li><i>        strokeDasharray: [10 5]</i></li><li><i>    });</i></li><li></li><li><i>    var drawpath = new Array();</i></li><li><i>    for(var s=0; s<steps.length; s++){</i></li><li><i>        drawpath = steps<strike>.path;</strike></i></li><li><i><strike>        var polyline = new AMap.Polyline({</strike></i></li><li><i><strike>            map: mapObj</strike></i></li><li><i><strike>            path: drawpath</strike></i></li><li><i><strike>            strokeColor: "#9400D3"</strike></i></li><li><i><strike>            strokeOpacity: 0.7</strike></i></li><li><i><strike>            strokeWeight: 4</strike></i></li><li><i><strike>            strokeDasharray: [10 5]</strike></i></li><li><i><strike>        });</strike></i></li><li><i><strike>    }</strike></i></li><li><i><strike>    mapObj.setFitView();</strike></i></li><li><i><strike>}</strike></i></li><li><i><strike>//绘制驾车导航路段</strike></i></li><li><i><strike>function driveDrawFoldline(num){</strike></i></li><li><i><strike>    var drawpath1 = new Array();</strike></i></li><li><i><strike>    drawpath1 = steps[num].path;</strike></i></li><li><i><strike>    if(polyline != null){</strike></i></li><li><i><strike>        polyline.setMap(null);</strike></i></li><li><i><strike>    }</strike></i></li><li><i><strike>    polyline = new AMap.Polyline({</strike></i></li><li><i><strike>            map: mapObj</strike></i></li><li><i><strike>            path: drawpath1</strike></i></li><li><i><strike>            strokeColor: "#FF3030"</strike></i></li><li><i><strike>            strokeOpacity: 0.9</strike></i></li><li><i><strike>            strokeWeight: 4</strike></i></li><li><i><strike>            strokeDasharray: [10 5]</strike></i></li><li><i><strike>        });</strike></i></li><li></li><li><i><strike>    mapObj.setFitView(polyline);</strike></i></li><li><i><strike>}</strike></i></li><li><i><strike>//公交导航</strike></i></li><li><i><strike>function transfer_route() {</strike></i></li><li><i><strike>        clearMap();</strike></i></li><li><i><strike>    var trans;</strike></i></li><li><i><strike>    //加载公交换乘插件</strike></i></li><li><i><strike>    mapObj.plugin(["AMap.Transfer"] function() {</strike></i></li><li><i><strike>        transOptions = {</strike></i></li><li><i><strike>            city: '北京市'                            //公交城市</strike></i></li><li><i><strike>            policy: AMap.TransferPolicy.LEAST_TIME //乘车策略</strike></i></li><li><i><strike>        };</strike></i></li><li><i><strike>        //构造公交换乘类</strike></i></li><li><i><strike>        trans = new AMap.Transfer (transOptions);</strike></i></li><li><i><strike>        //返回导航查询结果</strike></i></li><li><i><strike>        AMap.event.addListener(trans "complete" transCallBack);</strike></i></li><li><i><strike>        //显示错误信息</strike></i></li><li><i><strike>        AMap.event.addListener(trans "error" function(e) {alert(e.info);});
  5. </strike></i></li><li><i><strike>        //根据起、终点坐标查询公交换乘路线</strike></i></li><li><i><strike>        trans.search(start_xyend_xy);</strike></i></li><li><i><strike>    });</strike></i></li><li><i><strike>}</strike></i></li><li><i><strike>function transCallBack(data) {</strike></i></li><li><i><strike>    var btCount       = data.count;</strike></i></li><li><i><strike>    var btPlans       = data.plans;</strike></i></li><li><i><strike>    var btOrigin      = data.origin;</strike></i></li><li><i><strike>    var btDestination = data.destination;</strike></i></li><li><i><strike>    var btTaxiCost    = data.taxi_cost;</strike></i></li><li><i><strike>    var startName     = "北京南站"; //可以使用地理编码解析起点和终点坐标</strike></i></li><li><i><strike>    var endName       = "北京站";</strike></i></li><li><i><strike>    var BusArr        = [];</strike></i></li><li><i><strike>    var WalkArr       = [];</strike></i></li><li><i><strike>    var onbus         = new Array();</strike></i></li><li><i><strike>    var onwalk        = new Array();</strike></i></li><li><i><strike>    //结果输出用表格展现,输出表格头</strike></i></li><li><i><strike>    var resTableHeader = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"80\" style=\" border-left:1px solid #fff; background:#e1e1e1;\"> 乘车方案</td><td width=\"80\" style=\" border-left:1px solid #fff; background:#e1e1e1;\"> 导航信息</td></tr>";</strike></i></li><li><i><strike>    btContent.push(resTableHeader);</strike></i></li><li><i><strike>    //遍历每种换乘方案</strike></i></li><li><i><strike>    for (var i = 0; i < btPlans.length; i++) {</strike></i></li><li><i><strike>        var btDistance  = btPlans<i>.distance;</i></strike></i></li><li><i><strike><i>        var btseg       = btPlans<i>.segments;</i></i></strike></i></li><li><i><strike><i><i>        var lineNameArr = new Array();</i></i></strike></i></li><li><i><strike><i><i>        var resLine     = "";</i></i></strike></i></li><li><i><strike><i><i>        var naviInfo    = '';</i></i></strike></i></li><li><i><strike><i><i>        var lineName;</i></i></strike></i></li><li><i><strike><i><i>        for(var j = 0; j < btseg.length; j++) {</i></i></strike></i></li><li><i><strike><i><i>            naviInfo += btseg[j].instruction + "<br/>";</i></i></strike></i></li><li><i><strike><i><i>            if(btseg[j].transit_mode =="WALK") {</i></i></strike></i></li><li><i><strike><i><i>                if(i===0) {</i></i></strike></i></li><li><i><strike><i><i>                    WalkArr.push(btseg[j].transit.path);</i></i></strike></i></li><li><i><strike><i><i>                }</i></i></strike></i></li><li><i><strike><i><i>            }</i></i></strike></i></li><li><i><strike><i><i>            else {</i></i></strike></i></li><li><i><strike><i><i>                lineName = btseg[j].transit.lines[0].name;</i></i></strike></i></li><li><i><strike><i><i>                lineNameArr.push(lineName);</i></i></strike></i></li><li><i><strike><i><i>                if(i===0) {</i></i></strike></i></li><li><i><strike><i><i>                    BusArr.push(btseg[j].transit.path);</i></i></strike></i></li><li><i><strike><i><i>                }</i></i></strike></i></li><li><i><strike><i><i>            }</i></i></strike></i></li><li><i><strike><i><i>        }</i></i></strike></i></li><li><i><strike><i><i>        lineName = lineNameArr.join("-->");</i></i></strike></i></li><li><i><strike><i><i>        drawBuschangeLine(btOriginbtDestinationBusArrWalkArr);</i></i></strike></i></li><li><i><strike><i><i>        //结果输出用表格展现,输出表格内容</i></i></strike></i></li><li><i><strike><i><i>        resLine = "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"</i></i></strike></i></li><li><i><strike><i><i>        + "<tr><td width=\"80\" class=\"change_blue\">"+ lineName +"</td><td width=\"80\" class=\"change_blue\" >"</i></i></strike></i></li><li><i><strike><i><i>        + Getdistance(btDistance) + "</td></tr>" + "<tr><td width=\"80\" class=\"change_blue\" ></td><td width=\"80\"><img src=\"http://webapi.amap.com/images/start.gif\" /> <b>起点</b> " + startName + "</td></tr>" + "<tr><td width=\"80\" class=\"change_blue\"></td><td width=\"80\" class=\"change_blue\">"+ naviInfo +"</td></tr>"+ "<tr><td width=\"80\" class=\"change_blue\" ></td><td width=\"80\"><img src=\"http://webapi.amap.com/images/end.gif\" /> <b>终点</b> " + endName + "</td></tr>";</i></i></strike></i></li><li><i><strike><i><i>        btContent.push(resLine);</i></i></strike></i></li><li><i><strike><i><i>     }</i></i></strike></i></li><li><i><strike><i><i>    resultStr = btContent.join("");</i></i></strike></i></li><li><i><strike><i><i>     //写到result这个div</i></i></strike></i></li><li><i><strike><i><i>    document.getElementById("result").innerHTML = resultStr;</i></i></strike></i></li><li><i><strike><i><i>    //取出需要加换乘、步行图标的位置,这里仅画出第一个换乘方案</i></i></strike></i></li><li><i><strike><i><i>    var sinseg = btPlans[0].segments;</i></i></strike></i></li><li><i><strike><i><i>    for(var a in sinseg) {</i></i></strike></i></li><li><i><strike><i><i>        if(sinseg[a].transit_mode =="WALK") {</i></i></strike></i></li><li><i><strike><i><i>            onwalk.push(sinseg[a].transit.origin);</i></i></strike></i></li><li><i><strike><i><i>        }</i></i></strike></i></li><li><i><strike><i><i>        else {</i></i></strike></i></li><li><i><strike><i><i>            onbus.push(sinseg[a].transit.on_station.location);</i></i></strike></i></li><li><i><strike><i><i>        }</i></i></strike></i></li><li><i><strike><i><i>    }</i></i></strike></i></li><li><i><strike><i><i>    addMarker(onbus);</i></i></strike></i></li><li><i><strike><i><i>    mapObj.setFitView();</i></i></strike></i></li><li><i><strike><i><i>}</i></i></strike></i></li><li><i><strike><i><i>//距离,米换算为千米</i></i></strike></i></li><li><i><strike><i><i>function Getdistance(len) {</i></i></strike></i></li><li><i><strike><i><i>    if (len <= 1000) {</i></i></strike></i></li><li><i><strike><i><i>        var s = len;</i></i></strike></i></li><li><i><strike><i><i>        return s + "米";</i></i></strike></i></li><li><i><strike><i><i>    } else {</i></i></strike></i></li><li><i><strike><i><i>        var s = Math.round(len / 1000);</i></i></strike></i></li><li><i><strike><i><i>        return "约" + s + "公里";</i></i></strike></i></li><li><i><strike><i><i>    }</i></i></strike></i></li><li><i><strike><i><i>}</i></i></strike></i></li><li><i><strike><i><i>//绘制路线,仅第一条</i></i></strike></i></li><li><i><strike><i><i>function drawBuschangeLine(startPotendPotBusArrWalkArr) {</i></i></strike></i></li><li><i><strike><i><i>    //自定义起点,终点图标</i></i></strike></i></li><li><i><strike><i><i>     var sicon = new AMap.Icon({</i></i></strike></i></li><li><i><strike><i><i>        image: "http://api.amap.com/Public/images/js/poi.png"</i></i></strike></i></li><li><i><strike><i><i>        size: new AMap.Size(4444)</i></i></strike></i></li><li><i><strike><i><i>        imageOffset: new AMap.Pixel(-334 -180)</i></i></strike></i></li><li><i><strike><i><i>    });</i></i></strike></i></li><li><i><strike><i><i>     var eicon = new AMap.Icon({</i></i></strike></i></li><li><i><strike><i><i>        image: "http://api.amap.com/Public/images/js/poi.png"</i></i></strike></i></li><li><i><strike><i><i>        size: new AMap.Size(4444)</i></i></strike></i></li><li><i><strike><i><i>        imageOffset: new AMap.Pixel(-334 -134)</i></i></strike></i></li><li><i><strike><i><i>    });</i></i></strike></i></li><li><i><strike><i><i>    //绘制起点,终点</i></i></strike></i></li><li><i><strike><i><i>    var stmarker = new AMap.Marker({</i></i></strike></i></li><li><i><strike><i><i>        map:mapObj</i></i></strike></i></li><li><i><strike><i><i>        position:new AMap.LngLat(startPot.lngstartPot.lat) //基点位置</i></i></strike></i></li><li><i><strike><i><i>        icon:sicon //复杂图标</i></i></strike></i></li><li><i><strike><i><i>        offset:{x:-16y:-34} //相对于基点的位置</i></i></strike></i></li><li><i><strike><i><i>    });</i></i></strike></i></li><li><i><strike><i><i>    var endmarker = new AMap.Marker({</i></i></strike></i></li><li><i><strike><i><i>        map:mapObj</i></i></strike></i></li><li><i><strike><i><i>        position:new AMap.LngLat(endPot.lngendPot.lat) //基点位置</i></i></strike></i></li><li><i><strike><i><i>        icon:eicon //复杂图标</i></i></strike></i></li><li><i><strike><i><i>        offset:{x:-16y:-34} //相对于基点的位置</i></i></strike></i></li><li><i><strike><i><i>    });</i></i></strike></i></li><li><i><strike><i><i>    //绘制乘车的路线</i></i></strike></i></li><li><i><strike><i><i>    for(var j in BusArr) {</i></i></strike></i></li><li><i><strike><i><i>        busPolyline = new AMap.Polyline({</i></i></strike></i></li><li><i><strike><i><i>            map:mapObj</i></i></strike></i></li><li><i><strike><i><i>            path:BusArr[j]</i></i></strike></i></li><li><i><strike><i><i>            strokeColor:"#005cb5"//线颜色</i></i></strike></i></li><li><i><strike><i><i>            strokeOpacity:0.8//线透明度</i></i></strike></i></li><li><i><strike><i><i>            strokeWeight:6//线宽</i></i></strike></i></li><li><i><strike><i><i>        });</i></i></strike></i></li><li><i><strike><i><i>    }</i></i></strike></i></li><li><i><strike><i><i>    //绘制步行的路线</i></i></strike></i></li><li><i><strike><i><i>    for (var i in WalkArr) {</i></i></strike></i></li><li><i><strike><i><i>        walkPolyline = new AMap.Polyline({</i></i></strike></i></li><li><i><strike><i><i>            map:mapObj</i></i></strike></i></li><li><i><strike><i><i>            path:WalkArr<i></i></i></i></strike></i></li><li><strike><i><i><i>            strokeColor : "#6EB034" //线颜色</i></i></i></strike></li><li><strike><i><i><i>            strokeOpacity : 0.6 //线透明度</i></i></i></strike></li><li><strike><i><i><i>            strokeWeight : 6//线宽</i></i></i></strike></li><li><strike><i><i><i>        });</i></i></i></strike></li><li><strike><i><i><i>    }</i></i></i></strike></li><li></li><li><strike><i><i><i>}</i></i></i></strike></li><li><strike><i><i><i>function addMarker(busmar) {</i></i></i></strike></li><li><strike><i><i><i>    for (var i = 0; i < busmar.length; i++) {</i></i></i></strike></li><li><strike><i><i><i>        var busmarker = new AMap.Marker({</i></i></i></strike></li><li><strike><i><i><i>            icon : new AMap.Icon({</i></i></i></strike></li><li><strike><i><i><i>                image: "http://api.amap.com/Public/images/js/busroute.png"</i></i></i></strike></li><li><strike><i><i><i>                size: new AMap.Size(20 20)</i></i></i></strike></li><li><strike><i><i><i>                imageOffset: new AMap.Pixel(-33 -3)</i></i></i></strike></li><li><strike><i><i><i>            })</i></i></i></strike></li><li><strike><i><i><i>            position : busmar<i></i></i></i></i></strike></li><li><strike><i><i><i>            offset : {</i></i></i></strike></li><li><strike><i><i><i>                x : -25</i></i></i></strike></li><li><strike><i><i><i>                y : -25</i></i></i></strike></li><li><strike><i><i><i>            }</i></i></i></strike></li><li><strike><i><i><i>            map:mapObj</i></i></i></strike></li><li><strike><i><i><i>        });</i></i></i></strike></li><li><strike><i><i><i>    }</i></i></i></strike></li><li><strike><i><i><i>}</i></i></i></strike></li><li><strike><i><i><i>//公交线路查询</i></i></i></strike></li><li><strike><i><i><i>function lineSearch() {</i></i></i></strike></li><li><strike><i><i><i>        clearMap();</i></i></i></strike></li><li><strike><i><i><i>    //加载公交线路查询插件</i></i></i></strike></li><li><strike><i><i><i>    //实例化公交线路查询类,只取回一条路线</i></i></i></strike></li><li><strike><i><i><i>    mapObj.plugin(["AMap.LineSearch"] function() {</i></i></i></strike></li><li><strike><i><i><i>       var linesearch = new AMap.LineSearch({</i></i></i></strike></li><li><strike><i><i><i>            pageIndex:1</i></i></i></strike></li><li><strike><i><i><i>            city:'北京'</i></i></i></strike></li><li><strike><i><i><i>            pageSize:1</i></i></i></strike></li><li><strike><i><i><i>            extensions:'all'</i></i></i></strike></li><li><strike><i><i><i>        });</i></i></i></strike></li><li><strike><i><i><i>        //搜索“518”相关公交线路</i></i></i></strike></li><li><strike><i><i><i>        linesearch.search('518');</i></i></i></strike></li><li><strike><i><i><i>        AMap.event.addListener(linesearch "complete" lineSearch_Callback);</i></i></i></strike></li><li><strike><i><i><i>        AMap.event.addListener(linesearch "error" function(e){alert(e.info);
  6. </i></i></i></strike></li><li><strike><i><i><i>        });</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>}</i></i></i></strike></li><li><strike><i><i><i>function lineSearch_Callback(data) {</i></i></i></strike></li><li><strike><i><i><i>    var lineArr  = data.lineInfo;</i></i></i></strike></li><li><strike><i><i><i>    var lineNum  = data.lineInfo.length;</i></i></i></strike></li><li><strike><i><i><i>    if(lineNum == 0) {</i></i></i></strike></li><li><strike><i><i><i>        resLine = data.info;</i></i></i></strike></li><li><strike><i><i><i>    }</i></i></i></strike></li><li><strike><i><i><i>    else {</i></i></i></strike></li><li><strike><i><i><i>        resLine += "<div id=\"divid" + i + "\"><table>";</i></i></i></strike></li><li><strike><i><i><i>        for(var i = 0; i < lineNum; i++) {</i></i></i></strike></li><li><strike><i><i><i>            var lineName = lineArr<i>.name;</i></i></i></i></strike></li><li><strike><i><i><i>            var lineCity = lineArr<i>.city;</i></i></i></i></strike></li><li><strike><i><i><i>            var distance = lineArr<i>.distance;</i></i></i></i></strike></li><li><strike><i><i><i>            var company  = lineArr<i>.company;</i></i></i></i></strike></li><li><strike><i><i><i>            var stime    = lineArr<i>.stime;</i></i></i></i></strike></li><li><strike><i><i><i>            var etime    = lineArr<i>.etime;</i></i></i></i></strike></li><li><strike><i><i><i>            var pathArr  = lineArr<i>.path;</i></i></i></i></strike></li><li><strike><i><i><i>            var stops    = lineArr<i>.via_stops;</i></i></i></i></strike></li><li><strike><i><i><i>            var startPot = stops[0].location;</i></i></i></strike></li><li><strike><i><i><i>            var endPot   = stops[stops.length-1].location;</i></i></i></strike></li><li><strike><i><i><i>            //结果输出用DIV展现,输出内容</i></i></i></strike></li><li><strike><i><i><i>            resLine += "<tr><td><h3><font color=\"#00a6ac\">" + lineName + "</font></h3></td></tr>";</i></i></i></strike></li><li><strike><i><i><i>            resLine += "<tr><td>首末车时间:" + stime.substring(0 2) + ":" + stime.substring(2 4) + '-' + etime.substring(0 2) + ":" + etime.substring(2 4) + ";" + "全长:" + distance + "公里;" + "所属公司:" + company+"</td></tr>";</i></i></i></strike></li><li><strike><i><i><i>           //绘制第一条路线</i></i></i></strike></li><li><strike><i><i><i>            if(i==0) drawbusLine(startPotendPotpathArr);</i></i></i></strike></li><li><strike><i><i><i>        }</i></i></i></strike></li><li><strike><i><i><i>        resLine += "</table></div>"</i></i></i></strike></li><li><strike><i><i><i>        document.getElementById('result').innerHTML = resLine;</i></i></i></strike></li><li><strike><i><i><i>    }</i></i></i></strike></li><li><strike><i><i><i>}</i></i></i></strike></li><li><strike><i><i><i>//绘制路线</i></i></i></strike></li><li><strike><i><i><i>function drawbusLine(startPotendPotBusArr) {</i></i></i></strike></li><li><strike><i><i><i>    //自定义起点,终点图标</i></i></i></strike></li><li><strike><i><i><i>     var sicon = new AMap.Icon({</i></i></i></strike></li><li><strike><i><i><i>        image: "http://api.amap.com/Public/images/js/poi.png"</i></i></i></strike></li><li><strike><i><i><i>        size: new AMap.Size(4444)</i></i></i></strike></li><li><strike><i><i><i>        imageOffset: new AMap.Pixel(-334 -180)</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>     var eicon = new AMap.Icon({</i></i></i></strike></li><li><strike><i><i><i>        image: "http://api.amap.com/Public/images/js/poi.png"</i></i></i></strike></li><li><strike><i><i><i>        size: new AMap.Size(4444)</i></i></i></strike></li><li><strike><i><i><i>        imageOffset: new AMap.Pixel(-334 -134)</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>    //绘制起点,终点</i></i></i></strike></li><li><strike><i><i><i>    var stmarker = new AMap.Marker({</i></i></i></strike></li><li><strike><i><i><i>        map:mapObj</i></i></i></strike></li><li><strike><i><i><i>        position:new AMap.LngLat(startPot.lngstartPot.lat) //基点位置</i></i></i></strike></li><li><strike><i><i><i>        icon:sicon //复杂图标</i></i></i></strike></li><li><strike><i><i><i>        offset:{x:-16y:-34} //相对于基点的位置</i></i></i></strike></li><li><strike><i><i><i>        zIndex:10</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>    var endmarker = new AMap.Marker({</i></i></i></strike></li><li><strike><i><i><i>        map:mapObj</i></i></i></strike></li><li><strike><i><i><i>        position:new AMap.LngLat(endPot.lngendPot.lat) //基点位置</i></i></i></strike></li><li><strike><i><i><i>        icon:eicon //复杂图标</i></i></i></strike></li><li><strike><i><i><i>        offset:{x:-16y:-34} //相对于基点的位置</i></i></i></strike></li><li><strike><i><i><i>        zIndex:10</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>    //绘制乘车的路线</i></i></i></strike></li><li><strike><i><i><i>        busPolyline = new AMap.Polyline({</i></i></i></strike></li><li><strike><i><i><i>                map:mapObj</i></i></i></strike></li><li><strike><i><i><i>                path:BusArr</i></i></i></strike></li><li><strike><i><i><i>                strokeColor:"#005cb5"//线颜色</i></i></i></strike></li><li><strike><i><i><i>                strokeOpacity:0.8//线透明度</i></i></i></strike></li><li><strike><i><i><i>                strokeWeight:6//线宽</i></i></i></strike></li><li><strike><i><i><i>        });</i></i></i></strike></li><li><strike><i><i><i>        mapObj.setFitView();</i></i></i></strike></li><li><strike><i><i><i>}</i></i></i></strike></li><li><strike><i><i><i>//公交站点查询</i></i></i></strike></li><li><strike><i><i><i>function stationSearch() {</i></i></i></strike></li><li><strike><i><i><i>        clearMap();</i></i></i></strike></li><li><strike><i><i><i>    //加载公交站点查询插件</i></i></i></strike></li><li><strike><i><i><i>    mapObj.plugin(["AMap.StationSearch"] function() {</i></i></i></strike></li><li><strike><i><i><i>        //实例化公交站点查询类</i></i></i></strike></li><li><strike><i><i><i>        var station = new AMap.StationSearch({</i></i></i></strike></li><li><strike><i><i><i>            pageIndex: 1 //页码</i></i></i></strike></li><li><strike><i><i><i>            pageSize: 10 //单页显示结果条数</i></i></i></strike></li><li><strike><i><i><i>            city:'010'    //确定搜索城市</i></i></i></strike></li><li><strike><i><i><i>        });</i></i></i></strike></li><li><strike><i><i><i>        station.search('东直门'); //查询</i></i></i></strike></li><li><strike><i><i><i>        AMap.event.addListener(station 'complete' stationSearch_CallBack);</i></i></i></strike></li><li><strike><i><i><i>        AMap.event.addListener(station 'error' function(e) {alert(e.info);});
  7. </i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>}</i></i></i></strike></li><li><strike><i><i><i>/*</i></i></i></strike></li><li><strike><i><i><i>*公交站点查询返回数据解析</i></i></i></strike></li><li><strike><i><i><i>*/</i></i></i></strike></li><li><strike><i><i><i>function stationSearch_CallBack(searchResult) {</i></i></i></strike></li><li><strike><i><i><i>        clearMap();</i></i></i></strike></li><li><strike><i><i><i>    var resultStr    = ""; //结果拼接String</i></i></i></strike></li><li><strike><i><i><i>    var resultString = searchResult.info;</i></i></i></strike></li><li><strike><i><i><i>    var stationArr   = searchResult.stationInfo;</i></i></i></strike></li><li><strike><i><i><i>    var searchNum    = stationArr.length;</i></i></i></strike></li><li><strike><i><i><i>    var iMarker    = searchResult.location;</i></i></i></strike></li><li></li><li><strike><i><i><i>    if(searchNum > 0) {</i></i></i></strike></li><li><strike><i><i><i>        resultStr += "<div id=\"divid" + i + "\"><table>";</i></i></i></strike></li><li><strike><i><i><i>        for(var i=0; i<searchNum; i++) {</i></i></i></strike></li><li><strike><i><i><i>            //结果输出用表格展现</i></i></i></strike></li><li><strike><i><i><i>            resultStr += "<tr><td><h3><font color=\"#00a6ac\">" + stationArr<i>.name + "</font></h3></td></tr>";</i></i></i></i></strike></li><li></li><li><strike><i><i><i>            resultStr += "<tr><td>途径该站点的公交线路:</td></tr><tr><td>";</i></i></i></strike></li><li><strike><i><i><i>            var stationBusArr = stationArr<i>.buslines;</i></i></i></i></strike></li><li><strike><i><i><i>            for(var j =0; j<stationBusArr.length; j++) {</i></i></i></strike></li><li><strike><i><i><i>                resultStr += stationBusArr[j].name + "<br/>";</i></i></i></strike></li><li><strike><i><i><i>            }</i></i></i></strike></li><li><strike><i><i><i>        }</i></i></i></strike></li><li><strike><i><i><i>        resultStr += "</td></tr></table></div>"</i></i></i></strike></li><li><strike><i><i><i>        document.getElementById("result").innerHTML = resultStr;</i></i></i></strike></li><li></li><li><strike><i><i><i>                var stmarker = new AMap.Marker({</i></i></i></strike></li><li><strike><i><i><i>                        map:mapObj</i></i></i></strike></li><li><strike><i><i><i>                        position:iMarker</i></i></i></strike></li><li><strike><i><i><i>                });</i></i></i></strike></li><li><strike><i><i><i>    }</i></i></i></strike></li><li><strike><i><i><i>    else {</i></i></i></strike></li><li><strike><i><i><i>        document.getElementById("result").innerHTML = resultString;</i></i></i></strike></li><li><strike><i><i><i>    }</i></i></i></strike></li><li><strike><i><i><i>}</i></i></i></strike></li><li><strike><i><i><i>//步行导航</i></i></i></strike></li><li><strike><i><i><i>function walking_route() {</i></i></i></strike></li><li><strike><i><i><i>    var MWalk;</i></i></i></strike></li><li><strike><i><i><i>    mapObj.plugin(["AMap.Walking"] function() {</i></i></i></strike></li><li><strike><i><i><i>        MWalk = new AMap.Walking(); //构造路线导航类</i></i></i></strike></li><li><strike><i><i><i>        AMap.event.addListener(MWalk "complete" walk_routeCallBack); //返回导航查询结果</i></i></i></strike></li><li><strike><i><i><i>        MWalk.search(start_xy end_xy); //根据起终点坐标规划步行路线</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>}</i></i></i></strike></li><li><strike><i><i><i>//导航结果展示</i></i></i></strike></li><li><strike><i><i><i>function walk_routeCallBack(data) {</i></i></i></strike></li><li><strike><i><i><i>    var routeS = data.routes;</i></i></i></strike></li><li><strike><i><i><i>        if (routeS.length <= 0) {</i></i></i></strike></li><li><strike><i><i><i>            document.getElementById("result").innerHTML = "未查找到任何结果!<br />建议:<br />1.请确保所有字词拼写正确。<br />2.尝试不同的关键字。<br />3.尝试更宽泛的关键字。";</i></i></i></strike></li><li><strike><i><i><i>        }</i></i></i></strike></li><li><strike><i><i><i>        else {</i></i></i></strike></li><li><strike><i><i><i>            route_text="";</i></i></i></strike></li><li><strike><i><i><i>            for(var v =0; v< routeS.length;v++){</i></i></i></strike></li><li><strike><i><i><i>                //步行导航路段数</i></i></i></strike></li><li><strike><i><i><i>                steps = routeS[v].steps;</i></i></i></strike></li><li><strike><i><i><i>                var route_count = steps.length;</i></i></i></strike></li><li><strike><i><i><i>                //步行距离(米)</i></i></i></strike></li><li><strike><i><i><i>                var distance = routeS[v].distance;</i></i></i></strike></li><li><strike><i><i><i>                //拼接输出html</i></i></i></strike></li><li><strike><i><i><i>                for(var i=0 ;i< steps.length;i++) {</i></i></i></strike></li><li><strike><i><i><i>                    route_text += "<tr><td align=\"left\" onMouseover=\"walkingDrawSeg('" + i + "')\">" + i +"." +steps<i>.instruction  + "</td></tr>";</i></i></i></i></strike></li><li><strike><i><i><i>                }</i></i></i></strike></li><li><strike><i><i><i>            }</i></i></i></strike></li><li><strike><i><i><i>            //输出步行路线指示</i></i></i></strike></li><li><strike><i><i><i>            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>";</i></i></i></strike></li><li><strike><i><i><i>            document.getElementById("result").innerHTML = route_text;</i></i></i></strike></li><li><strike><i><i><i>            walkingDrawLine();</i></i></i></strike></li><li><strike><i><i><i>        }</i></i></i></strike></li><li><strike><i><i><i>}</i></i></i></strike></li><li><strike><i><i><i>//绘制步行导航路线</i></i></i></strike></li><li><strike><i><i><i>function walkingDrawLine() {</i></i></i></strike></li><li><strike><i><i><i>    //起点、终点图标</i></i></i></strike></li><li><strike><i><i><i>    var sicon = new AMap.Icon({</i></i></i></strike></li><li><strike><i><i><i>        image: "http://api.amap.com/Public/images/js/poi.png"</i></i></i></strike></li><li><strike><i><i><i>        size:new AMap.Size(4444)</i></i></i></strike></li><li><strike><i><i><i>        imageOffset: new AMap.Pixel(-334 -180)</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>    var startmarker = new AMap.Marker({</i></i></i></strike></li><li><strike><i><i><i>        icon : sicon //复杂图标</i></i></i></strike></li><li><strike><i><i><i>        visible : true</i></i></i></strike></li><li><strike><i><i><i>        position : start_xy</i></i></i></strike></li><li><strike><i><i><i>        map:mapObj</i></i></i></strike></li><li><strike><i><i><i>        offset : {</i></i></i></strike></li><li><strike><i><i><i>            x : -16</i></i></i></strike></li><li><strike><i><i><i>            y : -40</i></i></i></strike></li><li><strike><i><i><i>        }</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>    var eicon = new AMap.Icon({</i></i></i></strike></li><li><strike><i><i><i>        image: "http://api.amap.com/Public/images/js/poi.png"</i></i></i></strike></li><li><strike><i><i><i>        size:new AMap.Size(4444)</i></i></i></strike></li><li><strike><i><i><i>        imageOffset: new AMap.Pixel(-334 -134)</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>    var endmarker = new AMap.Marker({</i></i></i></strike></li><li><strike><i><i><i>        icon : eicon //复杂图标</i></i></i></strike></li><li><strike><i><i><i>        visible : true</i></i></i></strike></li><li><strike><i><i><i>        position : end_xy</i></i></i></strike></li><li><strike><i><i><i>        map:mapObj</i></i></i></strike></li><li><strike><i><i><i>        offset : {</i></i></i></strike></li><li><strike><i><i><i>            x : -16</i></i></i></strike></li><li><strike><i><i><i>            y : -40</i></i></i></strike></li><li><strike><i><i><i>        }</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li><strike><i><i><i>    //起点到路线的起点 路线的终点到终点 绘制无道路部分</i></i></i></strike></li><li><strike><i><i><i>    var extra_path1 = new Array();</i></i></i></strike></li><li><strike><i><i><i>    extra_path1.push(start_xy);</i></i></i></strike></li><li><strike><i><i><i>    extra_path1.push(steps[0].path[0]);</i></i></i></strike></li><li><strike><i><i><i>    var extra_line1 = new AMap.Polyline({</i></i></i></strike></li><li><strike><i><i><i>        map: mapObj</i></i></i></strike></li><li><strike><i><i><i>        path: extra_path1</i></i></i></strike></li><li><strike><i><i><i>        strokeColor: "#9400D3"</i></i></i></strike></li><li><strike><i><i><i>        strokeOpacity: 0.7</i></i></i></strike></li><li><strike><i><i><i>        strokeWeight: 4</i></i></i></strike></li><li><strike><i><i><i>        strokeStyle: "dashed"</i></i></i></strike></li><li><strike><i><i><i>        strokeDasharray: [10 5]</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li></li><li><strike><i><i><i>    var extra_path2 = new Array();</i></i></i></strike></li><li><strike><i><i><i>    var path_xy = steps[(steps.length-1)].path;</i></i></i></strike></li><li><strike><i><i><i>    extra_path2.push(end_xy);</i></i></i></strike></li><li><strike><i><i><i>    extra_path2.push(path_xy[(path_xy.length-1)]);</i></i></i></strike></li><li><strike><i><i><i>    var extra_line2 = new AMap.Polyline({</i></i></i></strike></li><li><strike><i><i><i>        map: mapObj</i></i></i></strike></li><li><strike><i><i><i>        path: extra_path2</i></i></i></strike></li><li><strike><i><i><i>        strokeColor: "#9400D3"</i></i></i></strike></li><li><strike><i><i><i>        strokeOpacity: 0.7</i></i></i></strike></li><li><strike><i><i><i>        strokeWeight: 4</i></i></i></strike></li><li><strike><i><i><i>        strokeStyle: "dashed"</i></i></i></strike></li><li><strike><i><i><i>        strokeDasharray: [10 5]</i></i></i></strike></li><li><strike><i><i><i>    });</i></i></i></strike></li><li></li><li><strike><i><i><i>    for(var s=0; s<steps.length; s++) {</i></i></i></strike></li><li><strike><i><i><i>        var drawpath = steps<strike>.path;</strike></i></i></i></strike></li><li><strike><i><i><i><strike>        var polyline = new AMap.Polyline({</strike></i></i></i></strike></li><li><strike><i><i><i><strike>            map: mapObj</strike></i></i></i></strike></li><li><strike><i><i><i><strike>            path: drawpath</strike></i></i></i></strike></li><li><strike><i><i><i><strike>            strokeColor: "#9400D3"</strike></i></i></i></strike></li><li><strike><i><i><i><strike>            strokeOpacity: 0.7</strike></i></i></i></strike></li><li><strike><i><i><i><strike>            strokeWeight: 4</strike></i></i></i></strike></li><li><strike><i><i><i><strike>        });</strike></i></i></i></strike></li><li><strike><i><i><i><strike>    }</strike></i></i></i></strike></li><li><strike><i><i><i><strike>    mapObj.setFitView();</strike></i></i></i></strike></li><li><strike><i><i><i><strike>}</strike></i></i></i></strike></li><li><strike><i><i><i><strike></script></strike></i></i></i></strike></li><li><strike><i><i><i><strike></html></strike></i></i></i></strike></li><li><strike><i><i><i><strike>
  8. </strike></i></i></i></strike></li></ul><strike><i><i><i><strike>
  9. [color=rgb(51, 102, 153) !important]<font style="font-size: 12px">复制代码</font></strike></i></i></i></strike></font></div>
复制代码

[size=12.727272033691406px]示例查看:[size=12.727272033691406px]http://zhaoziang.com/amap/zero_5_1.html
高德地图, function, 地下通道, 人行道, 从零开始

回复

使用道具 举报

最佳答案
0 

8

主题

21

帖子

126

积分

新手上路

Rank: 1

积分
126
沙发
发表于 2014-11-8 21:07:32 | 只看该作者
假如输入地址后查询公交线路之类的,直接跳转到高德地图的查询,高德地图的搜索地址是:http://www.amap.com/#!plan!!saddr=29.471949,106.476136|0|%E6%96%B0%E5%B1%B1%E6%9D%91(%E5%9C%B0%E9%93%81%E7%AB%99)&
saddrid=BV10045797&smodxy=106.476136,29.471949&daddr=29.475656,106.482746|0|%E7%BB%88%E7%82%B9&
dirflg=r&sort=dist&tab=daddr&page=1&scity=500000&dcity=500000&_=1415448964648;我是直接在里面拼接参数,还是其他办法,另外参数是什么意思?我就看懂了几个坐标
回复 支持 反对

使用道具 举报

最佳答案
5 

22

主题

760

帖子

1877

积分

超级版主

Rank: 8Rank: 8

积分
1877
QQ
板凳
 楼主| 发表于 2014-11-10 11:24:00 | 只看该作者
Hi JS API不提供这个功能,请知晓~
回复 支持 反对

使用道具 举报

最佳答案
0 

5

主题

11

帖子

59

积分

新手上路

Rank: 1

积分
59
地板
发表于 2014-11-19 22:10:35 | 只看该作者
可不可以在路线上划箭头,标明线路方向呢?
回复 支持 反对

使用道具 举报

最佳答案
5 

22

主题

760

帖子

1877

积分

超级版主

Rank: 8Rank: 8

积分
1877
QQ
5#
 楼主| 发表于 2014-11-20 19:30:57 | 只看该作者
dasenlin85 发表于 2014-11-19 22:10
可不可以在路线上划箭头,标明线路方向呢?

已经在你的帖子上做回复啦~~~
回复 支持 反对

使用道具 举报

最佳答案
0 

1

主题

4

帖子

21

积分

新手上路

Rank: 1

积分
21
6#
发表于 2015-1-14 15:25:26 | 只看该作者
请问下,我想通过JS进行驾车路径规划,里面除了起点和终点,还包含了途经点,而且每个点我需要自定义,请问怎么做好呢?
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
7#
发表于 2015-3-16 16:23:47 | 只看该作者
请问一下,我是在底层地图上面加了一个覆盖物图层,然后怎么实现从当前我的位置画一条到我覆盖物图层的路径呢?
回复 支持 反对

使用道具 举报

最佳答案
0 

14

主题

39

帖子

172

积分

新手上路

Rank: 1

积分
172
8#
发表于 2015-6-26 11:09:48 | 只看该作者
您好,我现在用dragroute做的路劲规划,现在有一个需求是鼠标放在拖拽产生的途经点上时需要显示途经点的名字,那个插件现在的功能是鼠标放在途经点上显示:"拖拽以更改路线".我在dragroute的第四个参数里面做了设置,但是不起作用,能帮我看一下什么原因吗?
我的代码是:
var route = new AMap.DragRoute(mapObj, points, policy,{midMarkerOptions:{map:mapObj,title:'123'}});
                            route.search();   //查询导航路径并开启拖拽导航
第四个参数里面设置更改图标等属性是可以用的,但是title属性不起左右。
回复 支持 反对

使用道具 举报

最佳答案
0 

4

主题

21

帖子

72

积分

注册会员

Rank: 2

积分
72
9#
发表于 2015-7-3 09:55:34 | 只看该作者
lsgjzhuwei 发表于 2015-6-26 11:09
您好,我现在用dragroute做的路劲规划,现在有一个需求是鼠标放在拖拽产生的途经点上时需要显示途经点的名 ...

你好,关于路径拖拽效果你做了么?可以分享代码吗?谢谢!
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
10#
发表于 2015-7-20 16:37:01 | 只看该作者
AMap.Driving 是否支持 LngLat 多点 途经点?例如像 AMap.DragRoute 一样 [AMap.LngLat(129.520355,42.919783),AMap.LngLat(129.520...]

但以名称查询时好像可以...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|高德开发者论坛

Copyright ©2014 高德开发者论坛.All Rights Reserved |京ICP证070711号

意见反馈 常见问题 服务条款 联系我们
快速回复 返回顶部 返回列表