块传输示例

当一组行程满足以下条件时,系统会提供“车厢内换乘”功能(也称为“车厢内换乘”):

  1. 行程是连续的。
  2. 同一车辆执行这两次行程。
  3. 这些行程使用公交 Feed 的 trips.txt 文件中的相同 block_id 值进行预配。

前提条件

若要让 Google 地图识别出行程之间可以进行车站转乘,必须满足以下前提条件:

  1. 这些行程必须在 trips.txt 中使用相同的 block_id 值。这表示这两次行程使用了同一辆车。
  2. 行程必须在同一天运行,如果行程跨越午夜,则必须在连续的两天运行。
  3. 行程必须是连续的,且不得重叠。
  4. 到达行程的最后一站和出发行程的第一站必须相同(推荐)或相距不远。

使用 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

在此示例中:

  • 搜索 stop1stop5 路线的用户会被定向到 route1 年 8 月 1 日 8:00 在 stop1 上车。然后,当车辆在 route1_trip1 结束后到达 stop3 时,用户会留在车上。这是因为同一车辆为 route2 提供 route2_trip1 服务。
  • route1_trip1 上的乘客如果想继续前往 route2_trip1 上的某个经停点,可以留在车上完成此换乘。
  • 乘坐这些相同路线上其他车辆的其他行程的乘客无法使用此选项,因为他们每次行程都使用不同的车辆。
  • route1_trip1 为例。headway_secs 的值为 start_timeend_time 之间的间隔的一半。在本例中,这意味着有两次行程。如需详细了解 headway_secs 的用法,请参阅 gtfs.org 上的 GTFS 时间表参考文档

在循环行中阻止传输

在环形线路中,行程的第一个经停点和最后一个经停点相同,并且具有相同的 stop_id。无论是基于时间表的车次还是基于频率的车次,都需要此字段。

前提是,连续环形行程具有相同的 block_id,并且启用了车厢内或座位内换乘,这样一来,第一趟行程的乘客便可以在车辆继续下一圈行程时留在车上。

GTFS Feed 中的有效块

如需进行区块传输,您必须在 Feed 中正确定义一个或多个区块。如需通过验证,属于同一分块的行程不得重叠,并且必须具有相同的 route_type(地铁、铁路、公交车等)。行程可以属于同一时间段,即使它们在不同的日期。如果在静态 Feed 中定义了任何分块,它们会显示在验证报告的概览标签页中。