AMap.Transfer 公交换乘服务,提供起、终点公交路线规划服务,整合步行方式
一般我们打开高德地图的时候,会选择性的输入起始位置和终点位置,然后以符合自己最佳线路来选择搭做那些公交,如公交车,或地铁。
高德地图为我们提供了一个强有力的交通换乘工具:AMap.Transfer ,我们先通过一个小例子来查看他的实现方法吧。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<style type="text/css">
body,html{
height: 100%;
margin: 0px;
}
#container,#result1{
height: 50%;
}
</style>
<title>快速入门</title>
</head>
<body>
<div id="container" tabindex="0"></div>
<div id="result1" tabindex="0"></div>
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=你的key"></script>
<script type="text/javascript">
var map = new AMap.Map('container',{
resizeEnable: true,
zoom: 10,
center: [116.39,39.9]
});
AMap.service('AMap.Transfer',function(){//回调函数
var trans;
transOptions = {
map: map,
panel: "result1",
city: '北京市', //公交城市
policy: AMap.TransferPolicy.LEAST_TIME //乘车策略
};
//构造公交换乘类
trans = new AMap.Transfer(transOptions);
//根据起、终点坐标查询公交换乘路线
//trans.search([116.379028, 39.865042], [116.427281, 39.903719]);
trans.search([{keyword:'北京市地震局(公交站)'},{keyword:'望京西园4区'}], function(status, result){
console.log(result);
})
})
</script>
</body>
</html>
上面有几个点需要讲解
一:我们要调用transfer这个工具类
AMap.service('AMap.Transfer',function(){
})
二:实例化trasfer
trans = new AMap.Transfer(transOptions);
如果我们需要相应的在地图上和面板上显示相应的换乘信息我们需要传入
map: map,
panel: "result1"
三、高德为我们提供了两种查询路线的方法
通过经纬度来查询:
trans.search([116.379028, 39.865042], [116.427281, 39.903719]);
通过poi来查询:
trans.search([{keyword:'北京市地震局(公交站)'},{keyword:'望京西园4区'}], function(status, result){
console.log(result);
})
示例效果图
我们再由官方的api文档来简单的了解一下
我们重点来看三个对象就行了
基本类下包含了我们要设置的参数:这里面要注意的是如果是夸城市公交换乘,需要在option中设置cityd这个参数
TransferPolicy对象为我们换乘提供了几种可选方案,简单概括最是多快好省,公交或地铁
Segment这个对象比较重要:因为我们的换乘信息基本上都放在这个对象里面,给个示例图讲解什么是换乘信息:
有了Segment,我们可以就可以提取路径站的信息了
transit_mode:此段为什么类型,在transitDetail对象可查的
首要讲解的是path:为途径的坐标集合,一般没有用,在高德中只是用来做连线操作
lines:站点名称
大概信息文档已经写得足够的详细了,不再多做解释,更多内容可以参考文档