在 Amazon 位置使用路线矩阵进行路线规划 - Amazon Location Service

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

在 Amazon 位置使用路线矩阵进行路线规划

您可以使用 Amazon Location Service 为路线规划和优化软件创建输入。您可以为一组出发位置和一组目的地位置之间的路线创建路线结果,包括行驶时间和行驶距离。

例如,给定出发位置 A 和 B 以及目的地位置 X 和 Y,Amazon Location Service 将返回从 A 到 X、A 到 Y、B 到 X 以及 B 到 Y 的路线的行驶时间和行驶距离。

您可以计算具有不同交通方式、避让点和交通状况的路线。例如,您可以指定车辆是一辆长 35 英尺的卡车,计算的路线将使用这些限制来确定行驶时间和行驶距离。

返回的结果(和计算的路线)数量等于出发位置数乘以目的地位置的数量。您需要为计算的每条路线付费,而不是为每次服务请求付费,因此,包含 10 个出发地和 10 个目的地的路线矩阵将按照 100 条路线计费。

计算路线矩阵

您可以计算一组出发位置和一组目的地位置之间的路线矩阵。路线结果将包括行驶时间和行驶距离。

先决条件

使用 CalculateRouteMatrix 操作提交请求。最低请求包含以下必填字段:

  • DeparturePositions——要计算路线的起始位置集。定义为一个数组 [longitude, latitude]

  • DestinationPositions——要计算路线的终点位置集。定义为一个数组 [longitude, latitude]

注意

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

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

您可以使用 AWS CLI 或 Amazon 地点APIs。

API

以下示例是使用路径计算器资源的CalculateRouteMatrix请求 ExampleCalculator。 该请求指定计算从出发位置出发的路线矩阵 [-122.7565, 49.0021 ] 和 [-122.2014, 47.6101] 到目标位置 [-122.3394, 47.6159 ] 和 [-122.4813, 48.7511].

POST /routes/v0/calculators/ExampleCalculator/calculate/route-matrix Content-type: application/json { "DeparturePositions": [ [-122.7565,49.0021], [-122.2014,47.6101] ], "DestinationPositions": [ [-122.3394, 47.6159], [-122.4813,48.7511] ] }
AWS CLI

以下示例是使用路径计算器资源的calculate-route-matrix命令 ExampleCalculator。 该请求指定计算从出发位置出发的路线矩阵 [-122.7565, 49.0021 ] 和 [-122.2014, 47.6101] 到目标位置 [-122.3394, 47.6159 ] 和 [-122.4813, 48.7511].

aws location \ calculate-route-matrix \ --calculator-name ExampleCalculator \ --departure-positions "[[-122.7565,49.0021],[-122.2014,47.6101]]" \ --destination-positions "[[-122.3394,47.6159],[-122.4813,48.7511]]"

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

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

POST /routes/v0/calculators/ExampleCalculator/calculate/route-matrix Content-type: application/json { "DeparturePositions": [ [-122.7565,49.0021], [-122.2014,47.6101] ], "DestinationPositions": [ [-122.3394, 47.6159], [-122.4813,48.7511] ], "DistanceUnit": "Miles" }

对出发地和目的地位置的限制

计算路线矩阵时,对出发和目的地位置有限制。这些限制因 RouteCalculator 资源使用的提供程序而异。

限制 Esri Grab HERE
位置数量 多达 10 个出发位置和 10 个目的地位置。 多达 350 个出发位置和 350 个目的地位置。

多达 350 个出发位置和 350 个目的地位置。

对于较长的路线,则适用其他限制。请参阅 部分

位置之间的距离 任何一对出发和目的地位置之间的距离必须在 400 千米以内(步行路线为 40 千米)。

所有出发和目的地位置必须位于直径为 180 千米的圆圈内。

对于较长的路线,则适用其他限制。请参阅 部分

路线长度 如果路线的总行驶时间超过 400 分钟,则该路线将无法完成。

在出发点和目的地点周围的圆圈外偏离超过 10 千米的路线将不予计算。

对于较长的路线,则适用其他限制。请参阅 部分

区域 韩国不支持计算路线矩阵。 在东南亚有售。有关支持的国家/地区列表和更多信息,请参阅 覆盖的国家/地区和区域 没有其他限制。

较长的路线规划

计算路线结果矩阵对于高效的路线规划很有用,但计算可能需要一些时间。所有 Amazon Location Service 数据提供程序都对可以计算的路线数量或路线距离施加了限制。例如,HERE允许在 350 个出发和目的地位置之间创建路线,但这些位置必须位于 180 千米的圆圈内。如果您想计划更长的路线,该怎么办?

您可以使用 with HERE 作为数据提供器,为较少数量的路径计算长度不受限制RouteCalculator的路径矩阵。这不会改变您拨打的方式 CalculateRouteMatrixAPI,Amazon Location 只是在您满足要求时允许更长的路线。

计算更长路线的要求是:

  • RouteCalculator必须使用HERE数据提供器。

  • 出发位置的数量不得大于 15。

  • 要计算的路线总数不得大于 100。

  • 当路线大于 1,000 km 时,不允许进行长途路线,避免通行费的卡车路线。 这种组合的计算速度较慢,并且可能导致呼叫超时。您可以通过CalculateRoute操作单独计算这些路径。

如果您的调用不符合这些要求(例如,您在一次调用中请求计算 150 条路线),则 CalculateRouteMatrix 将恢复为仅允许使用较短的路线规则。然后,只要位置在 180 千米的圆圈内,您就可以计算路线。

计算较长的路线时,请记住以下几点:

  • 较长的路线可能需要更长的时间来计算,甚至比 Amazon 定位的最长时间还要长APIs。如果您在特定路线上频繁超时,则可以在每次调用 CalculateRouteMatrix 中尝试少量路线。

  • 如果您在 CalculateRouteMatrix 请求中添加更多目的地或出发位置,则操作可能会切换到限制性更强的模式,并且当要创建的路线较少时,可以毫无问题地计算出一条路线,则可能会出现错误。在这种情况下,请减少目的地或出发位置的数量,并发出多个请求以获得所需的全套路线计算结果。

响应示例

以下是从 Amazon 定位路径调用CalculateRouteMatrix操作时带有相应响应的示例请求API。

Example request
POST /routes/v0/calculators/ExampleCalculator/calculate/route-matrix Content-type: application/json { "DeparturePositions": [ [-122.7565,49.0021], [-122.2014,47.6101] ], "DestinationPositions": [ [-122.3394, 47.6159], [-122.4813,48.7511] ] }
Example response
{ "RouteMatrix": [ [ { "Distance": 178.764, "DurationSeconds": 7565 }, { "Distance": 39.795, "DurationSeconds": 1955 } ], [ { "Distance": 15.31, "DurationSeconds": 1217 }, { "Distance": 142.506, "DurationSeconds": 6279 } ] ], "Summary": { "DataSource": "Here", "RouteCount": 4, "ErrorCount": 0, "DistanceUnit": "Kilometers" } }