当一组行程满足以下条件时,系统会提供“车厢内换乘”功能(也称为“车厢内换乘”):
- 行程是连续的。
- 同一车辆执行这两次行程。
- 这些行程使用公交 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 中定义了任何分块,它们会显示在验证报告的概览标签页中。