公交线路换乘代码PHP,微信开发之公交换乘功能代码详解

1)API申请

2)API调用

3)[b]效果展示[/b]

4)精准查询

--------------------------------------------------------------------------

1)API申请

爱帮提供查询接口API,需要申请Key www.aibang.com

查询数量有限制,2013-12-4 最多 1000次/每天 10次/分钟

返回json数据

提供数据说明

提供demo文件

2)API调用

调用API取得数据后,按自己的格式输出即可/*

aibang's api return josn data

d_eng (sh109419@163.com)

2013-12-4

*/

define("APP_KEY", "xx00ac396d6d75e8681fc8380060c5b2");

include_once "ABClient.php";

//header("Content-Type:text/html; charset=utf-8");

function bustransfer($city,$start,$end) {

$client = new ABClient(APP_KEY);

list($code, $arr) = $client->getBusTransfer($city, array("start_addr" =>$start, "end_addr"=>$end));

if ($code<>200){

return false;

}

$ret ="";

$buses = $arr[buses][bus];

// show the top 3 records

$ret = $start ."-->".$end."\n";

$count = 1;

foreach ($buses as $bus) {

if ($count > 3) break;

$segments =$bus[segments][segment];

$ret .= "\n";

// get line name and remove remark

$linename = "";

foreach($segments as $segment) {

if (!empty($linename)) $linename .= '--' ;

$linename .= shortlinename($segment[line_name]);

}

$ret .= $linename . "\n" ;

$total = sprintf("%d分钟 %d米 步行%d米",$bus[time],$bus[dist],$bus[foot_dist]);

$ret .= $total . "\n" ;

// detail

$from = sprintf("从 %s ",$start);

$ret .= $from;

foreach($segments as $segment) {

if ($segment[foot_dist] > 0) {

$segfoot = sprintf("步行%d米 到达 %s",$segment[foot_dist],$segment[start_stat]);

$ret .= $segfoot . "\n" ;

}

$stats = substr_count($segment[stats],';');

$line = sprintf("乘坐 %s(%d站) 到达 %s",shortlinename($segment[line_name]),$stats,$segment[end_stat]);

$ret .= $line . "\n" ;

}

if ($bus[last_foot_dist] > 0) {

$lastfoot = sprintf("步行%d米 到达 %s",$bus[last_foot_dist],$end);

$ret .= $lastfoot;

}

}

return $ret;

}

function shortlinename($linename){

return substr($linename,0,strpos($linename,'('));

}

$a=bustransfer("南昌","老福山","青山路口");

var_dump($a);

3)效果展示

23bb79d10e859f6cca2814ec4f40955e.png

4)精准查询

公交查询中,要求输入的是公交/地铁的站名

如果不知道准确的站名,往往得不到结果,

在网页上,系统可以通过提示选择准确的公交站点来完成,

7f7c35e4762a57c78b89ff99c6e66846.png

但,微信上这么做就不方便了

改进方案如下:

爱帮有个公交站点查询API

通过这个API找到用户输入信息附近的站点并取出第一个作为公交换乘的站点

这样,公交换乘查找成功的机率就增加了。

【相关推荐】

城市公交查询系统(毕业设计) 本系统采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及和数据库的联系,定义各模块的内部结构,通过对模块的设计和模块之间关系的系统来实现整个系统的功能 前台主要有3个模块,线路查询、站点查询公交换乘模块和后台管理模块 功能名称:线路查询 功能概述:可以获得要查询公交所通过的各个站点。 功能名称:站点查询 功能概述:通过输入的指定站点查询经过该站点的公交功能名称:公交换乘查询 功能概述:分为公交直达、公交一次换乘,主要体现那些不可直达需要转车的路线的所有换法。(如果用户输入的起始点和终点,有一条及一条以上的公交线可以直达的,则为公交直达;如果输入的起始点和终点,没有一条公交线可以直接到的,系统将会给出一次换乘的方案,则为公交一次换乘) 功能名称:后台管理 功能概述:用于管理员登陆,添加、修改、删除公交线路,修改信息资料、安全密码,回复留言板等功能。 本系统提供了的车次查询功能、路线查询功能。乘客可以方便的进行查询,以防乘错车次。当然有些功能的智能化不是很强,系统有待进一步来完善。 毕业论文文件夹下为《开题报告》、《毕业论文》及《英文翻译》等相关文档 DB_51aspx下为Sql数据库,附加后修改App_Code/DB.cs中的配置文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值