当一组行程满足以下条件时,系统会提供“车厢内换乘”功能(也称为“车厢内换乘”):
- 行程是连续的。
- 同一车辆执行这两次行程。
- 这些行程使用公交 Feed 的
trips.txt
文件中的相同block_id
值进行预配。
前提条件
若要让 Google 地图识别出行程之间可以进行车站转乘,必须满足以下前提条件:
- 这些行程必须在
trips.txt
中使用相同的block_id
值。这表示这两次行程使用了同一辆车。 - 行程必须在同一天运行,如果行程跨越午夜,则必须在连续的两天运行。
- 行程必须是连续的,且不得重叠。
- 到达行程的最后一站和出发行程的第一站必须相同(推荐)或相距不远。
使用 block_id
启用分块传输
您可以在不同路线上的连续行程之间进行区块转接,也可以在同一路线(如果路线是环线)上的连续行程之间进行区块转接。使用 block_id
字段指定哪些行程属于一个分块,以及哪些位置可以使用座位内换乘。
示例 1:禁止预约行程的转乘
在此示例中,请考虑每个文件中的以下值:
trips.txt
route_id |
trip_id |
block_id |
---|---|---|
RouteA |
RouteATrip1 |
Block1 |
RouteB |
RouteBTrip1 |
Block1 |
stop_times.txt
trip_id |
arrival_time |
departure_time |
stop_id |
stop_sequence |
---|---|---|---|---|
RouteATrip1 |
12:00:00 |
12:01:00 |
A |
1 |
RouteATrip1 |
12:05:00 |
12:06:00 |
B |
2 |
RouteATrip1 |
12:15:00 |
C |
3 |
|
RouteBTrip1 |
12:18:00 |
C |
1 |
|
RouteBTrip1 |
12:22:00 |
12:23:00 |
D |
2 |
RouteBTrip1 |
12:30:00 |
E |
3 |
在此示例中:
- 如果用户搜索从经停点 A 到经停点 E 的路线,系统会指示其于 12:00 在经停点 A 上车,并在车辆在
RouteATrip1
结束后到达经停点 C 时继续乘车。这是因为路线 B 使用了相同的车辆服务RouteBTrip1
。 RouteATrip1
上的乘客如果想继续前往RouteBTrip1
上的某个经停点,可以留在车上完成此换乘。- 乘坐这些相同路线上其他车辆的其他行程的乘客无法使用此选项,因为他们每次行程都使用不同的车辆。
示例 2:针对具有确切时间的基于频率的出行禁止转接
除了前提条件部分中列出的要求外,仅支持满足以下条件之一的基于频率的车程使用分块传输:
- 如果行程是环形行程,则其起点和终点必须相同。
- 在
frequencies.txt
中,exact_times
字段的值必须为1
。
以下示例介绍了如何为第二个条件设置值:
trips.txt
route_id |
trip_id |
block_id |
---|---|---|
route1 |
route1_trip1 |
block_2 |
route2 |
route2_trip1 |
block_2 |
stop_times.txt
trip_id |
arrival_time |
departure_time |
stop_id |
stop_sequence |
---|---|---|---|---|
route1_trip1 |
08:00:00 |
08:04:00 |
stop1 |
1 |
route1_trip1 |
08:10:00 |
08:14:00 |
stop2 |
2 |
route1_trip1 |
08:20:00 |
stop3 |
3 |
|
route2_trip1 |
08:24:00 |
stop3 |
1 |
|
route2_trip1 |
08:30:00 |
08:34:00 |
stop4 |
2 |
route2_trip1 |
08:40:00 |
08:44:00 |
stop5 |
3 |
frequencies.txt
trip_id |
start_time |
end_time |
headway_secs |
exact_times |
---|---|---|---|---|
route1_trip1 |
08:00:00 |
08:20:00 |
600 |
1 |
route2_trip1 |
08:24:00 |
08:44:00 |
600 |
1 |
在此示例中:
- 搜索
stop1
到stop5
路线的用户会被定向到route1
年 8 月 1 日 8:00 在stop1
上车。然后,当车辆在route1_trip1
结束后到达stop3
时,用户会留在车上。这是因为同一车辆为route2
提供route2_trip1
服务。 route1_trip1
上的乘客如果想继续前往route2_trip1
上的某个经停点,可以留在车上完成此换乘。- 乘坐这些相同路线上其他车辆的其他行程的乘客无法使用此选项,因为他们每次行程都使用不同的车辆。
- 以
route1_trip1
为例。headway_secs
的值为start_time
和end_time
之间的间隔的一半。在本例中,这意味着有两次行程。如需详细了解headway_secs
的用法,请参阅 gtfs.org 上的 GTFS 时间表参考文档。
在循环行中阻止传输
在环形线路中,行程的第一个经停点和最后一个经停点相同,并且具有相同的 stop_id
。无论是基于时间表的车次还是基于频率的车次,都需要此字段。
前提是,连续环形行程具有相同的 block_id
,并且启用了车厢内或座位内换乘,这样一来,第一趟行程的乘客便可以在车辆继续下一圈行程时留在车上。
GTFS Feed 中的有效块
如需进行区块传输,您必须在 Feed 中正确定义一个或多个区块。如需通过验证,属于同一分块的行程不得重叠,并且必须具有相同的 route_type
(地铁、铁路、公交车等)。行程可以属于同一时间段,即使它们在不同的日期。如果在静态 Feed 中定义了任何分块,它们会显示在验证报告的概览标签页中。