查询公交路线

欧洲经济区 (EEA) 开发者

公交路线会使用相应区域内可用的公共交通选项提供导航说明。公交选项可能包括公交车、地铁和火车等。公交路线通常还包括有关如何步行前往公交站、从公交站步行离开以及在公交站之间步行的说明。由于公交路线通常需要您使用多种出行方式,因此您请求路线的方式和响应的某些部分会有所不同。

公交路线与其他路线有何不同

您可以通过将 travelMode 设置为 TRANSIT 来请求公交路线,这种路线与使用其他出行方式选项的路线不同。您无法请求所有相同的对象和选项,并且与其他路线相比,响应会返回不同的字段。

在 Routes API 中,无论采用何种出行方式,步数始终是一条导航指令。因此,每条导航指令都是一个步骤。公交路线响应与其他出行方式的路线非常相似,但有几个关键区别:

请求差异 回答差异
您无法指定中间途经点。 包含 Transit 详细信息。
无法获取环保路线 包含每种出行方式的元数据,其中包含相应出行方式的步骤摘要,采用 stepsOverview 格式(如需请求此元数据,请使用 stepsOverview 字段遮盖)。
无法指定如何以及是否包含流量数据
无法指定要避开的路线特征
只能指定 transitPreferences。如需了解详情,请参阅 TransitPreference

如需获取公交路线

  1. 设置出发地和目的地。
  2. travelMode 设置为 TRANSIT
  3. 添加适当的字段掩码,以获得所需的响应。请参阅请求所需的公交路线字段
  4. 如果需要,请设置可选参数。请参阅为中转路线设置参数

请求所需的公交路线字段

使用字段掩码请求所需的公交路线字段。下表包含一些建议的公交路线响应,以及用于请求这些响应的字段掩码。

如何请求这些信息 使用此字段掩码
所有路线详情。 *
路线段的公交详情。 legs
路线中每个路段的估计费用,以及本地化的估计费用。 travelAdvisory
时长和距离的本地化文本 localizedValues

为公交路线设置参数

以下是公共交通路线的相关参数:

为此,请执行以下操作 使用此参数 备注
选择公交模式 travelMode: "TRANSIT" 必需。了解详情
设置到达或出发时间 arrivalTime: new Date(yyyy-mm-ddThh:mm:ssZ)

departureTime: new Date(yyyy-mm-ddThh:mm:ssZ)
可选。您可以指定到达时间或出发时间。如果未指定任何时间,departureTime 默认设置为当前执行时间 (now)。您只能在以下时间窗口内设置到达时间和出发时间,并以当前执行时间 (now) 为参考:
  • now之前(含)7 天
  • now 之后最多 100 天(含 100 天)
时间以 Date 对象的形式表示。

注意:公交时刻表会经常变化,可用的公交行程可能会随时间变化,并且无法保证提前很久的预测结果始终一致。

包含备选路线 computeAlternativeRoutes: true 可选。设置为 true 可让 computeRoutes 计算最多 3 条额外的路线(如有)。 了解详情
指定公交类型的偏好设置 transitPreference: {allowedTransitModes: ["BUS", "SUBWAY", "TRAIN", "LIGHT_RAIL", "RAIL"]}

注意:如果您指定了首选出行方式,返回的路线可能仍会使用其他公交模式,甚至仅使用其他公交模式,具体取决于路线的效率以及首选出行方式的可用性。

可选。指定首选的公交出行方式。 了解详情
指定公交路线偏好设置 transitPreference: {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} 可选。指定公交路线偏好设置。了解详情

示例请求

以下示例展示了如何请求公交路线:

const request = {
  origin: 'Hunters Point San Francisco, CA 94124',
  destination: '201 Marine Dr, San Francisco, CA 94129',
  travelMode: 'TRANSIT',
  departureTime: new Date(),
  transitPreference: {
    allowedTransitModes: ['BUS', 'SUBWAY', 'TRAIN', 'LIGHT_RAIL', 'RAIL'],
    routingPreference: 'FEWER_TRANSFERS', // Alternatively, 'LESS_WALKING'.
  },
  fields: ['path', 'legs', 'travelAdvisory', 'localizedValues'],
};