

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 计算路线
<a name="calculate-routes"></a>

Routes API 计算两个或多个地点之间的路线，无论是否有避让措施，适用于不同的出行模式，例如汽车、卡车、踏板车、行人、公交和多式联运。使用此 API，您可以自定义路由选项并请求获取其他与路线相关的信息以满足特定需求。此 API 支持逐向导航，并通过应用一些参数（例如避开收费公路、高速公路或渡轮）自定义路线计算。此 API 还会返回限速和通行费信息。

有关更多信息，请参阅[CalculateRoutes](https://docs.aws.amazon.com/location/latest/APIReference/API_CalculateRoutes.html)《*亚马逊定位服务 API 参考*》。

有关此 API 的请求、响应、cURL 和 CLI 命令示例，请参阅[如何使用计算路线](https://docs.aws.amazon.com/location/latest/developerguide/calculate-routes-how-to.html)。

![Amazon Location Service 路线概述。](https://docs.aws.amazon.com/zh_cn/location/latest/developerguide/images/routesV2/P2P-Turn-by-turn-navigation.gif)


## 使用案例
<a name="use-cases"></a>
+ **在路线图上显示地理细节：**利用高级绘制功能呈现包含丰富地理信息（包括地标、地形和城市基础设施）的详细路线。用户可以查看从起点到目的地的清晰路线，从而增强决策能力。该功能可以支持导航、规划和各种物流场景，并显示汽车、卡车、踏板车、行人、公交和多式联运等出行模式的路线。通过添加避让或通行费计算等元素进行路线自定义。
+ **显示逐向导航：**在 Web 和移动设备上提供无缝导航支持。用户可以获取逐向指引，确保高效出行。这两个平台均可利用导航指令（包括限速）为个人或商务旅行提供路线。
+ **计算沿线的通行费：**将通行费计算纳入路线规划，为包括收费公路、桥梁或隧道在内的路线提供准确的定价估算。预先显示通行费，以帮助司机和规划者做出具有成本效益的决策，并在必要时避免缴纳通行费。
+ **确保遵守限速：**整合限速数据，以帮助司机保持在法定限速范围内，从而降低罚款风险，并促进更安全、更省油的驾驶行为。实时监控速度合规性也有利于物流和车队管理。
+ **协助制定货运和车辆调度解决方案：**通过将路线、导航和跟踪功能集成到物流门户网站中，简化货运和车辆调度操作。有效规划多处送货的路线，实时跟踪货物运输情况，并通过优化路线来控制燃料成本。
+ **规划公共交通行程：**使用公共汽车、地铁、火车和单轨列车等公共交通工具计算路线。公交路线包括往返停靠点的步行路线、出发和到达时间以及公交线路信息。
+ **将交通类型与多式联运路线相结合：**计算在一次旅程中结合多种交通类型的路线，包括公交、行人、租车、出租车和车辆路段。多式联运路线可实现端到端的行程规划，反映人们在城市环境中的实际出行方式。

## 了解请求
<a name="understanding-request"></a>

**注意**  
 对于`ap-southeast-1`和中的客户`ap-southeast-5`，支持的请求和响应字段可能有所不同。有关详细信息，请参阅 [CalculateRoutes API 参考](https://docs.aws.amazon.com/location/latest/APIReference/API_CalculateRoutes.html)。

该请求需要 `Origin` 和 `Destination` 参数，而可选参数（如 `Allow`、`Avoid` 和 `Traffic`）可自定义路线以满足特定的需求和约束条件。

**Origin**  
以经度和纬度表示的路线起点位置。

**目标位置**  
路线的终点位置。

**Waypoints**  
起点与终点位置之间的路线沿途要包含的中间位置。

**OptimizeRoutingFor**  
路线的优化标准，例如最快或最短。

**LegGeometryFormat**  
为每个路线航段返回的几何体的格式。

**Avoid**  
计算路线时要避开的特征，如果找不到替代路线，则忽略这些特征。

**Traffic**  
Traffic-related 影响路径计算的选项。

**Tolls**  
Toll-related 影响路线计算和通行费用的选项。

**LegAdditionalFeatures**  
可在行程每个航段的响应中启用的特征。

**SpanAdditionalFeatures**  
可在行程每个航段的响应中启用的跨度特征。

**TravelMode**  
指定传输模式。支持的值包括`Car``Truck`、`Scooter`、`Pedestrian`、`Transit`、和`Intermodal`。

**TravelModeOptions**  
特定于出行模式的选项。包括`Transit`（例如 allowed/excluded 模式、最大换乘次数和行人选项）和`Intermodal`（例如交通、租车、出租车、车辆和行人选项）的选项。

## 了解响应
<a name="understanding-response"></a>

该响应提供路线详细信息，例如行程航段、有关路线计算的通知，以及包括距离和持续时间在内的摘要信息。

**Routes**  
包含航段和相关属性的路线数组。

**Notices**  
有关该路线的警告或信息性消息。

**LegGeometryFormat**  
指定该路线几何体的格式。

### 航段详细信息
<a name="leg-details"></a>

根据交通方式，每段旅程的类型可以是渡轮、行人、车辆、公交、租赁或出租车。每个航段都包含与交通模式无关的属性，具体属性如下：

**FerryLegDetails**  
Ferry-specific 腿的属性。

**VehicleLegDetails**  
Vehicle-specific 腿的属性。

**PedestrianLegDetails**  
Pedestrian-specific 腿的属性。

**TransitLegDetails**  
Transit-specific 路段的属性，包括公交线路信息、停靠点和时刻表。

**RentalLegDetails**  
Rental-specific 腿部的属性，例如共享汽车的详细信息。

**TaxiLegDetails**  
Taxi-specific 腿的属性。

### Steps
<a name="steps"></a>

行程的每个航段都分为几个步骤，这些步骤描述了路线各部分对应的操作。步骤可以是 “默认”（适用于基本应用程序） TurnByTurn，也可以是适合逐向导航。每个步骤都包含与步长类型无关的属性，例如持续时间和距离，以及其他特定属性 ExitStepDetails，例如仅适用于退出步骤。

**BeforeTravelSteps**  
行程开始前要执行的步骤。

**TravelSteps**  
行程途中要执行的步骤。

**AfterTravelSteps**  
行程完成后要执行的步骤。

### 跨度
<a name="spans"></a>

行程的每个航段可分成多个跨度。跨度是指航段的一部分，其值与请求的 `SpanAdditionalFeatures` 集合的值相同。跨度按道路属性划分，例如 `SpeedLimit`、道路名称或区域。返回的跨度可用于呈现道路属性和与通行相关的信息。