公交搜索参数设置

此示例讲述如何设置搜索参数。搜索从西单到搜狐网络大厦,的乘车路线。并显示在地图上。

请求参数说明

下面是请求对象的所有属性。更改这些属性值,进行相关检索。

属性类型说明
map Map 进行搜索的地图实例
renderer BusRenderer 结果渲染对象。如果设置此参数,将在线路查询结果之后。将结果渲染到结果区。
avoid Number 0为默认值,不避开。1为避开地铁。可选
destination String | Point | LatLng 必选。查询的目的地。建议使用精确坐标查询。
origin String | Point | LatLng 必选。查询的起始点。建议使用精确坐标查询。
tactic Number 可选。8:时间排序(按时间从少到多排序),默认。 2:按换乘次数由少到多 (按换乘次数从少到多排序)4:按步行距离排序(按步行距离从少到多排序)
maxResultCount Number 默认为10条。返回换乘方案条数上限。 可选
maxDist Number 最大的步行距离。可选

关键代码

var bRender=new sogou.maps.BusRenderer();
var request={			//这个对象是搜索的关键。在此处设置公交检索参数。
 'map':map,        //Map
 'avoid':1,			//避开地铁
 'destination':'搜狐网络大厦',//new Point(12949535.945308747,4836604.4296875),   //目标位置。可将此项指定为要进行地址解析的字符串或 LatLng或者为搜狗地图坐标。必填。
 'origin':'西单',        //原点的位置。可将此项指定为要进行地址解析的字符串或 LatLng或者为搜狗地图坐标。必填。
 'maxDist':1000//最大的步行距离
}
var bus=new sogou.maps.Bus();
bus.route(request);
bus.setRenderer(bRender);
			

代码解析

首先要先初始化一个公交实例,设置请求参数。调用route方法。

var bus=new sogou.maps.Bus();
var request={
 'map':map,        //Map
 'avoid':1,			//避开地铁
 'destination':'搜狐网络大厦',//new Point(12949535.945308747,4836604.4296875),   //目标位置。可将此项指定为要进行地址解析的字符串或 LatLng或者为搜狗地图坐标。必填。
 'origin':'西单',        //原点的位置。可将此项指定为要进行地址解析的字符串或 LatLng或者为搜狗地图坐标。必填。
 'maxDist':1000//最大的步行距离
}
bus.route(request);
			

接下来将查询结果显示到地图上,需要先初始化搜索渲染类。再调用公交的setRenderer方法,进行结果渲染。

			var bRender=new sogou.maps.BusRenderer();
			bus.setRenderer(bRender);
			

完整代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>指定起终点公交搜索</title>
<style type="text/css">
#map{position:absolute;width:600px; height:600px;}
</style>
<script type="text/javascript" src="http://api.go2map.com/maps/js/api_v2.5.1.js"></script>
</head>

<body>
    <div id="map" ></div>
</body>
<script>
var myLatLng = new sogou.maps.Point(12957062,4827187);
var myOptions = {
  zoom: 10,
  center: myLatLng
};
var map = new sogou.maps.Map(document.getElementById("map"), myOptions);

var bRender=new sogou.maps.BusRenderer();
var request={
 'map':map,        //Map
 'avoid':1,			//避开地铁
 'destination':'搜狐网络大厦',//new Point(12949535.945308747,4836604.4296875),   //目标位置。可将此项指定为要进行地址解析的字符串或 LatLng或者为搜狗地图坐标。必填。
 'origin':'西单',        //原点的位置。可将此项指定为要进行地址解析的字符串或 LatLng或者为搜狗地图坐标。必填。
 'maxDist':1000//最大的步行距离
}
var bus=new sogou.maps.Bus();
bus.route(request);
bus.setRenderer(bRender);
</script>
</html>
			

运行代码