公交路线会使用相应区域内可用的公共交通选项提供导航说明。公交选项可能包括公交车、地铁和火车等。公交路线通常还包括有关如何步行前往公交站、从公交站步行离开以及在公交站之间步行的说明。由于公交路线通常需要您使用多种出行方式,因此您请求路线的方式和响应的某些部分会有所不同。
公交路线与其他路线有何不同
您可以通过将 travelMode 设置为 TRANSIT 来请求公交路线,这种路线与使用其他出行方式选项的路线不同。您无法请求所有相同的对象和选项,并且与其他路线相比,响应会返回不同的字段。
在 Routes API 中,无论采用何种出行方式,步数始终是一条导航指令。因此,每条导航指令都是一个步骤。公交路线响应与其他出行方式的路线非常相似,但有几个关键区别:
| 请求差异 | 回答差异 |
|---|---|
| 您无法指定中间途经点。 | 包含 Transit 详细信息。 |
| 无法获取环保路线 | 包含每种出行方式的元数据,其中包含相应出行方式的步骤摘要,采用 stepsOverview 格式(如需请求此元数据,请使用 stepsOverview 字段遮盖)。 |
| 无法指定如何以及是否包含流量数据 | |
| 无法指定要避开的路线特征 | |
只能指定 transitPreferences。如需了解详情,请参阅 TransitPreference。 |
如需获取公交路线
- 设置出发地和目的地。
- 将
travelMode设置为TRANSIT。 - 添加适当的字段掩码,以获得所需的响应。请参阅请求所需的公交路线字段。
- 如果需要,请设置可选参数。请参阅为中转路线设置参数
请求所需的公交路线字段
使用字段掩码请求所需的公交路线字段。下表包含一些建议的公交路线响应,以及用于请求这些响应的字段掩码。
| 如何请求这些信息 | 使用此字段掩码 |
|---|---|
| 所有路线详情。 | * |
| 路线段的公交详情。 | legs |
| 路线中每个路段的估计费用,以及本地化的估计费用。 | travelAdvisory |
| 时长和距离的本地化文本 | localizedValues |
为公交路线设置参数
以下是公共交通路线的相关参数:
| 为此,请执行以下操作 | 使用此参数 | 备注 |
|---|---|---|
| 选择公交模式 | travelMode: "TRANSIT" |
必需。了解详情。 |
| 设置到达或出发时间 | arrivalTime: new Date(yyyy-mm-ddThh:mm:ssZ)
或 departureTime: new Date(yyyy-mm-ddThh:mm:ssZ) |
可选。您可以指定到达时间或出发时间。如果未指定任何时间,departureTime 默认设置为当前执行时间 (now)。您只能在以下时间窗口内设置到达时间和出发时间,并以当前执行时间 (now) 为参考:
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'], };