当一组行程满足以下条件时,可以使用区块转移(也称为座位内转移):
- 这些行程是连续的。
- 同一辆车执行两次行程。
- 行程在公交 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 的停靠站 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
08: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 中定义了任何块,则它们会显示在概览标签页的验证报告中。