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