使用 Amazon Location 计算路线 - Amazon Location Service

使用 Amazon Location 计算路线

您可以使用 Amazon Location Service 计算出发地和目的地之间的路线,沿途最多有 23 个路径点,以适应不同的交通方式、避让和交通状况。

注意

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

开始计算路线

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

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

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

注意

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

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

您可以使用 AWS CLI 或 Amazon Location API。

API

以下示例是使用路线计算器资源 ExampleCalculatorCalculateRoute 请求。该请求指定计算从出发位置 [-122.7565, 49.0021] 到目的地位置 [-122.3394, 47.6159] 的路线。

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

以下示例是使用路线计算器资源 ExampleCalculatorcalculate-route 命令。该请求指定计算从出发位置 [-122.7565, 49.0021] 到目的地位置 [-122.3394, 47.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 }

响应示例

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

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 ] } }