Bus/transfer

跳转到: 导航, 搜索

目录

bus/transfer

根据起始ID或坐标等进行搜索,返回公交换乘路线信息

URL

http://api.t.sina.com.cn/location/bus/transfer.(json%7Cxml)

支持格式

XML/JSON

HTTP请求方式

GET

是否需要登录

true

请求数限制

true

请求参数

参数 必选 类型及范围 说明
source true string 申请应用时分配的AppKey,调用接口时候代表应用的唯一身份
注意:以下两个参数至少选填一个
begin_id false string 起点的id(会覆盖begin_coordinate)
begin_coordinate false string 起点的坐标(逗号分隔,若有id以id为准)
注意:以下两个参数至少选填一个
end_id false string 终点的id(会覆盖end_coordinate)
end_coordinate false string 终点的坐标(逗号分隔,若有id以id为准)
注意:以下参数选填
type false int 查询类型(0:最快捷,1:最经济,2:最少换乘,3:最少步行,4:最舒适)


返回结果

XML示例

 <?xml version="1.0" encoding="UTF-8" ?> 
<geoResult>
  <status>1</status> 
  <count>10</count> 
  <type>0</type> 
  <city>0010</city> 
  <begin_id>P010A00CHR9</begin_id> 
  <end_id>P010A00CWWJ</end_id> 
  <end_coordinate>116.2739,39.99957</end_coordinate> 
  <start_coordinate>116.22074,39.90652</start_coordinate> 
  <extension_info>0</extension_info> 
  <transfers>
   <transfer>
    <result_id>1</result_id> 
    <distance>18534米</distance> 
    <expense>0</expense> 
    <before_len>160米</before_len> 
    <last_len>820</last_len> 
    <nav_count>2</nav_count> 
    <drive_coordinates>116.21946,39.90754;116.21489,39.90751;...</drive_coordinates>
    <lines>
     <line>
      <seg_id>1</seg_id> 
      <name>598路(西道口--八大处)</name> 
      <distance>4470米</distance> 
      <last_len>160米</last_len> 
      <stop_num>7</stop_num> 
      <stations>
       <station>
        <name>京原东</name> 
        <longitude>116.21946</longitude> 
        <latitude>116.21946</latitude> 
        <district /> 
        <station_info /> 
        <telephone /> 
        <address /> 
       </station>
       ...
      </stations>
     </line>
     ...
    </lines>
   </transfer>
   ...
  </transfers>
</geoResult>

JSON示例

{
"status":1,
"count":"10",
"type":0,
"city":"0010",
"begin_id":"P010A00CHR9",
"end_id":"P010A00CWWJ",
"end_coordinate":"116.2739,39.99957",
"start_coordinate":"116.22074,39.90652",
"extension_info":"0",
"transfers":
 [
  {
   "result_id":"1",
   "distance":"18534\u7c73",
   "expense":"0",
   "before_len":"160米", 
   "last_len":"820" ,
   "nav_count":"2" ,
   "drive_coordinates":"116.21946,39.90754;116.21489,39.90751;...",
   "lines":
   [
     {
      "seg_id":"1",
      "name":"598\u8def(\u897f\u9053\u53e3--\u516b\u5927\u5904)",
      "distance":"4470\u7c73",
      "last_len":"160\u7c73",
      "stop_num":"7",
      "stations":
      [
        {
         "name":"\u4eac\u539f\u4e1c",
         "longitude":116.21946,
         "latitude":116.21946,
         "district":"",
         "station_info":"",
         "telephone":"",
         "address":""
        },
        ...
      ]
     },
     ...
    ]
   },
   ...
 ]
}  

字段说明

status:标识结果,1表示查询正常;
count:结果条数
type:查询类型(0:最快捷,1:最经济,2:最少换乘,3:最少步行,4:最舒适)
city:城市代码
begin_id:起点id
end_id:终点id
end_coordinate:终点坐标
start_coordinate:起点坐标
extension_info:当前返回状态补充信息
transfers:换乘方案列表
result_id:结果类型(1为有结果,0为无结果)
nav_count:导航段数
distance:总距离
before_len:之前需步行的距离
last_len:最后还需步行的距离
expense:花费(未使用)
drive_coordinates:路线的坐标串
station_info:上下车站的信息串
lines:本方案中的导航段
seg_id:导航段在本方案中的id
name:导航段名称
distance:本导航段距离
last_len:本导航段结束后需要步行的距离
stop_num:本导航段共有几站
stations:本段从上车站到下车站的所有站点
name:站名
longitude:站点经度
latitude:站点纬度
district:区
station_info:站点详情
telephone:电话
address:地址

其它

PHP示例

需要开启PHP的cURL扩展

<?php
//改为你的微博账号,用户名和密码之间用:隔开
$userPwd = 'user@sina.com:pwd';
//改为你微博应用的appkey
$appkey = '0123456789';

$url = "http://api.t.sina.com.cn/location/bus/transfer.xml?begin_id=P010A00CHR9&end_id=P010A00CWWJ&source=$appkey";

$rst = curlSample($url,$userPwd);

echo $rst;

function curlSample($url,$userPwd,$postFields = '',$header = ''){
	$ch = curl_init() or die (curl_error()) ;
	curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
	curl_setopt($ch,CURLOPT_TIMEOUT,30);
	if(!empty($userPwd)){
		curl_setopt($ch,CURLOPT_USERPWD,$userPwd);
	}
	if(!empty($postFields)){
		curl_setopt($ch,CURLOPT_POST,true);
		curl_setopt($ch,CURLOPT_POSTFIELDS,$postFields);
	}
	if(!empty($header)){
		curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
	}
	$result = curl_exec($ch) or die (curl_error($ch));
	curl_close($ch);
	return $result;
}
?>