高德地图 公交路线查询

AMap.LineSearch 公交路线服务,提供公交路线相关信息查询服务
官网解释:AMap.LineSearch 公交路线查询类,通过extensions属性控制返回信息详略。公交线路信息包括起、终点、途径站点,首、末班车时间等信息。用户可以通过自定义回调函数取回并显示查询结果。若服务请求失败,系统将返回错误信息。

若我们想单独获取某一条具体的公交路线,我们就可以通过 AMap.LineSearch 进行获取,示例如下:

var map = new AMap.Map('container', {
          resizeEnable: true,

      });


      AMap.service(["AMap.LineSearch"], function() {
            //实例化公交站点查询类
            var linesearch = new AMap.LineSearch({
                pageIndex: 1, //页码
                pageSize: 60, //单页显示结果条数
                city:'0756',    //确定搜索城市
                extensions: 'all'
            });
             linesearch.search('3', function(status, result) {
                if (status === 'complete' && result.info === 'OK') {
                    lineSearch_Callback(result);
                } else {
                    alert(result);
                }
            });
      });


       /*公交路线查询服务返回数据解析概况*/
    function lineSearch_Callback(data) {
        var lineArr = data.lineInfo;
        var lineNum = data.lineInfo.length;
        if (lineNum == 0) {
        } else {
            for (var i = 0; i < lineNum; i++) {
                var pathArr = lineArr[i].path;
                var stops = lineArr[i].via_stops;
                var startPot = stops[0].location;
                var endPot = stops[stops.length - 1].location;

                if (i == 0) drawbusLine(startPot, endPot, pathArr);
            }
        }
    }
    /*绘制路线*/
    function drawbusLine(startPot, endPot, BusArr) {
        //绘制起点,终点
        new AMap.Marker({
            map: map,
            position: [startPot.lng, startPot.lat], //基点位置
            icon: "http://webapi.amap.com/theme/v1.3/markers/n/start.png",
            zIndex: 10
        });
        new AMap.Marker({
            map: map,
            position: [endPot.lng, endPot.lat], //基点位置
            icon: "http://webapi.amap.com/theme/v1.3/markers/n/end.png",
            zIndex: 10
        });
        //绘制乘车的路线
        busPolyline = new AMap.Polyline({
            map: map,
            path: BusArr,
            strokeColor: "#09f",//线颜色
            strokeOpacity: 0.8,//线透明度
            strokeWeight: 6//线宽
        });
        map.setFitView();
    } 

效果图如下
高德地图 公交路线查询_第1张图片

这里我们需要注意路线要自己去画出来,高德地图没帮我们实现这个功能。
这里主要讲解一下如何获取站点的信息。由以上方法可知,当我们查询成功时会返回一个LineSearchResult 对象,该对象可以进一步获取LineInfo对象,通过LineInfo来获取via_stops,这时里面就有我们所要的站点信息,记住要获取via_stops对象,必须要加上extensions: ‘all’这个参数,要不然取不到值。

官方api
高德地图 公交路线查询_第2张图片

高德地图 公交路线查询_第3张图片

你可能感兴趣的:(高德地图)