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