取得路徑矩陣

使用 Routes API 計算路線的距離和所需時間 方法是呼叫 computeRouteMatrix 方法 (REST) 或串流 ComputeRouteMatrix 方法 (gRPC)。

如果指定起點與目的地清單,此方法就會 計算從每個起點出發的路線距離和所需時間 並在各目的地結束

取得大眾運輸路線矩陣

您也可以計算大眾運輸上的路徑矩陣。對於 範例:請參閱取得大眾運輸路線矩陣

要求限制

Compute Route Matrix 方法會強制執行下列要求 對路線控點 (使用 address 或 placeID) 以及 元素的限制。元素是 路線矩陣中每個起點和目的地之間的路徑,所以 元素的起點是目的地數量的「時間」。適用對象 假設您有 10 個起點和 10 個目的地,那麼有 100 個元素:

  • 路徑的元素數量不得超過 625 個 且非 TRANSIT 路徑。

  • 如果指定 TRANSIT 路徑,元素數量不得超過 100。

  • 如果指定 TRAFFIC_AWARE_OPTIMAL,元素的數量就不能重複 超過 100 個如要進一步瞭解 TRAFFIC_AWARE_OPTIMAL,請參閱 指定如何納入流量資料以及是否要納入流量資料

  • 如果您使用地址或地點 ID 指定出發地或目的地, 您最多可指定 50 個

回應錯誤

Compute Route Matrix 方法的其中一項功能是 會傳回整個回應的值,或針對個別回應元素傳回。 舉例來說,如果要求的格式錯誤,整個回應會包含錯誤 (例如沒有來源)。

不過,如果錯誤適用於部分資源 回應中的 元素 (例如,系統無法計算 只有起點和目的地的組合),則只有受到 傳回錯誤代碼。

gRPC 串流結果

ComputeRouteMatrix gRPC 方法會採用來源和目的地清單,並傳回串流 包含每個起點與目的地組合的路線資訊。 由於結果會以串流形式傳回,因此您不必等待所有結果 才能著手處理 也就是預測結果

串流傳回的元素不保證會在任何 順序。因此,每個回應元素都含有 origin_indexdestination_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 Compute Route Matrix。