

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

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

路线 API 计算两个或更多位置之间的路线（无论是否有避让情况），适用于不同的出行模式，例如汽车、卡车、踏板车和行人。使用此 API，您可以自定义路由选项并请求获取其他与路线相关的信息以满足特定需求。此 API 支持 turn-by-turn导航，并通过应用避开收费公路、高速公路或渡轮等参数来自定义路线计算。此 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 路线概述。\]](http://docs.aws.amazon.com/zh_cn/location/latest/developerguide/images/routesV2/P2P-Turn-by-turn-navigation.gif)


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

## 了解请求
<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**  
影响路线计算的与交通相关的选项。

**Tolls**  
与通行费相关的选项，影响路线计算和通行费。

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

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

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

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

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

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

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

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

行程每个航段的类型可以是渡轮、行人或车辆，具体取决于交通模式。每个航段都包含与交通模式无关的属性，具体属性如下：

**FerryLegDetails**  
该航段的渡轮特定属性。

**VehicleLegDetails**  
该航段的车辆特定属性。

**PedestrianLegDetails**  
该航段的行人特定属性。

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

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

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

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

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

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

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