计算路线 - Amazon Location Service

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

计算路线

您可以使用 Amazon Location Service 计算起点和目的地之间的路线,沿途最多有 23 个航点,适用于不同的交通方式、避险情况和交通状况。

注意

您必须先创建路线计算器资源,然后为向 Amazon Location 发出的请求设置身份验证。有关更多信息,请参阅先决条件

开始计算路线

使用CalculateRoute操作提交一个简单的请求。一个简单的请求包含以下必填字段:

  • DeparturePosition— 计算路径的起始位置。定义为 [longitude, latitude]

  • DestinationPosition— 计算路径的终点位置。定义为[longitude, latitude]

注意

如果您指定的出发或目的地位置不在道路上,Amazon Location 会将该位置移至最近的道路

您可以选择在请求中指定路点出发时间和出行模式

您可以使用AWS CLI或亚马逊位置 API。

API

以下示例是使用路由计算器资源的CalculateRoute请求ExampleCalculator该请求指定计算从出发地点 [-122.7565,49.0021] 到目的地位置 [-122. 3394,4 7.6159] 的路线。

POST /routes/v0/calculators/ExampleCalculator/calculate/route Content-type: application/json { "DeparturePosition": [-122.7565,49.0021], "DestinationPosition": [-122.3394, 47.6159] }
AWS CLI

以下示例是使用路由计算器资源的calculate-route命令ExampleCalculator该请求指定计算从出发地点 [-122.7565,49.0021] 到目的地位置 [-122. 3394,4 7.6159] 的路线。

aws location \ calculate-route \ --calculator-name ExampleCalculator \ --departure-position -122.7565 49.0021 \ --destination-position -122.3394 47.6159

默认情况下,响应以千米为Distance单位返回。您可以使用以下可选参数将计量单位更改为英里:

  • DistanceUnit— 指定用于距离结果的单位制。

POST /routes/v0/calculators/ExampleCalculator/calculate/route Content-type: application/json { "DeparturePosition": [-122.7565,49.0021], "DestinationPosition": [-122.3394, 47.6159], "DistanceUnit": "Miles" }

设置航点

计算路线时,您可以使用航点位置在出发位置和目的地位置之间指定最多 23 个中间中途停留点。

  • WaypointPositions— 指定中间位置的有序列表,要包括在出发位置和目的地位置之间的路线上。

    注意

    如果您指定的航点位置不在道路上,Amazon Location 会将该位置移至最近的道路。

以下CalculateRoute请求计算了一条包含 2 个航点的路线:

  • 出发位置为 [-122.7565,49.0021],目标位置为 [-122.3394,47.6159]。

  • 对于请求参数WaypointPositions

    • 位置上的第一个停靠点是 [-122.1884,48.0936]。

    • 位置上的第二个停靠点是 [-122.3493,47.6205]。

  • 要包括这两个航点之间的支线串几何形状,请将以下可选参数设置为 true:

    • IncludeLegGeometry— 包括响应中一对位置之间每条路径的几何形状。

POST /routes/v0/calculators/ExampleCalculator/calculate/route Content-type: application/json { "DeparturePosition": [-122.7565,49.0021], "DestinationPosition": [-122.3394, 47.6159], "WaypointPositions":[ [-122.1884,48.0936], [-122.3493,47.6205] ], "IncludeLegGeometry": true }

响应示例

以下是在IncludeLegGeometry设置为 true 的情况下从 Amazon Location Routes API 调用CalculateRoute操作时具有相应响应的示例请求,其中包括响应中一对位置之间每条路径的线串几何形状。

Example request
POST /routes/v0/calculators/ExampleCalculator/calculate/route Content-type: application/json { "DeparturePosition": [-122.7565,49.0021], "DestinationPosition": [-122.3394, 47.6159], "IncludeLegGeometry": true }
Example response
{ "Legs": [ { "Distance": 178.5, "DurationSeconds": 6480, "EndPosition": [-122.3394,47.6159], "Geometry": { "LineString": [ [-122.7565,49.0021], [-122.3394,47.6159] ] }, "StartPosition": [-122.7565,49.0021], "Steps": [ { "Distance": 178.5, "DurationSeconds": 6480, "EndPosition": [-122.3394,47.6159], "GeometryOffset": 0, "StartPosition": [-122.7565,49.0021] } ] } ], "Summary": { "DataSource": "Esri", "Distance": 178.5, "DistanceUnit": "Kilometers", "DurationSeconds": 6480, "RouteBBox": [ -122.7565,49.0021, -122.3394,47.6159 ] } }