获取路由矩阵

使用 Routes API 计算路线的距离和时长 通过调用 computeRouteMatrix 方法 (REST) 或流式传输 ComputeRouteMatrix 方法 (gRPC)。

根据给定的起点和终点列表,该方法 计算以每个起点为起点的路线的距离和时长 并在每个目的地结束

获取公交路线矩阵

您还可以计算公交的路线矩阵。对于 示例,请参阅获取公交路线矩阵

请求限制

计算路线矩阵方法会强制执行以下请求 使用地址或 placeID 的航点限制,以及元素。元素为 以路线矩阵形式显示各个出发地与目的地之间的路线,因此 元素数为起点数量乘以目的地数量。对于 例如,如果您有 10 个起点和 10 个终点,那么您将有 100 个元素:

  • 路由的元素数不得超过 625 不是 TRANSIT 路由。

  • 如果您指定 TRANSIT 路由,则元素数不得超过 100。

  • 如果您指定 TRAFFIC_AWARE_OPTIMAL,则元素数量 超过 100。如需详细了解 TRAFFIC_AWARE_OPTIMAL,请参阅 指定如何以及是否纳入流量数据

  • 如果您使用地址或地点 ID 指定出发地或目的地: 通过这种方式最多可以指定 50 个对象

响应错误

计算路线矩阵方法的一项特性是, 要么针对整个响应返回该响应,要么针对各个响应元素返回该响应。 例如,如果请求格式不正确,整个响应都会包含错误 (例如,它没有起点)。

但是,如果错误适用于 元素(例如,无法计算一条路线的 则只有受 error 会返回一个错误代码。

gRPC 流结果

ComputeRouteMatrix gRPC 方法接受出发地和目的地列表,并返回流 包含每个出发地和目的地组合的路线信息。 由于结果以信息流的形式返回,因此您不必等到 计算可能的路线组合,然后才能开始处理 结果。

流返回的元素不一定会在任何 订单。因此,每个响应元素都包含一个 origin_index 和一个 destination_index。对于请求指定的出发地和目的地: 对于给定元素,路线出发地相当于 origins[origin_index] 并且路线目的地等同于 destinations[destination_index]。 这些数组从零索引。请务必将来源和 目标列表顺序。

计算路线矩阵样本

使用 computeRouteMatrix 方法来计算路由矩阵。

HTTP 示例

以下示例展示了 computeRouteMatrix HTTP 请求。在此示例中 您:

  • 指定由两个起点和两个终点路标组成的数组。方法 计算从每个出发地到各个目的地的路线,以便响应 包含四条路线。

    在该数组中,第一个元素位于索引 0 处,第二个元素位于索引 1 处, 等等。

  • 添加响应字段掩码以指定 响应 (REST) 或 ComputeRoutesResponse (gRPC) 返回。在此示例中,请将请求配置为 originIndexdestinationIndexdurationdistanceMetersstatus、 和 condition。如需了解详情,请参阅 选择要返回的字段

curl -X POST -d '{
  "origins": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420761,
            "longitude": -122.081356
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.403184,
            "longitude": -122.097371
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    }
  ],
  "destinations": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420999,
            "longitude": -122.086894
          }
        }
      }
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.383047,
            "longitude": -122.044651
          }
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

响应包含所有源站组合的四条可能的路线 和目的地航点

使用 originIndexdestinationIndex 个响应字段。例如,在originIndex 响应对应一条根据 origins 数组。

[
    {
        "originIndex": 0,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 822,
        "duration": "160s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 2919,
        "duration": "361s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 5598,
        "duration": "402s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 0,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 7259,
        "duration": "712s",
        "condition": "ROUTE_EXISTS"
    }
]

gRPC 示例

如需查看 gRPC 请求示例,请参阅 示例 gRPC 请求。Java 该页面上的示例调用了“Compute Routes”和 计算路线矩阵。