Pobieranie macierzy tras

Używaj interfejsu Routes API do obliczania odległości i czasu trwania trasy wielu miejsc wylotu i przylotu, wywołując funkcję Metoda computeRouteMatrix (REST) lub strumieniowania ComputeRouteMatrix (gRPC).

Biorąc pod uwagę listę miejsc wylotu i miejsc docelowych, metoda oblicza odległość i czas trwania trasy, zaczynając od każdego punktu początkowego i kończąc na każdym z miejsc docelowych.

Uzyskiwanie macierzy tras transportu publicznego

Możesz też wyznaczyć macierz tras dla transportu publicznego. Dla Przykład: Wybór trasy dojazdu transportem publicznym.

Limity żądań

Metody macierzy tras Compute wymuszają to żądanie i określ ograniczenia dla punktów pośrednich korzystających z adresu lub identyfikatora miejsca, jak również dla elementów. Elementy są tras między miejscem wylotu a celem podróży w macierzy tras, więc liczba elementów to liczba punktów początkowych razy liczba miejsc docelowych. Dla: Jeśli na przykład masz 10 punktów początkowych i 10 miejsc docelowych, otrzymasz 100 elementów:

  • Liczba elementów nie może przekraczać 625 w przypadku tras. które nie są trasami: TRANSIT.

  • Jeśli określisz trasę TRANSIT, liczba elementów nie może przekroczyć 100.

  • Jeśli określisz TRAFFIC_AWARE_OPTIMAL, liczba elementów nie będzie mogła zostać niż 100. Więcej informacji o TRAFFIC_AWARE_OPTIMAL: Określ, jak i czy chcesz uwzględniać dane o ruchu.

  • Jeśli określisz miejsca wylotu lub miejsca docelowe za pomocą adresu lub identyfikatora miejsca, określisz w ten sposób do 50.

Błędy odpowiedzi

Jedną z funkcji metod macierzy tras Compute jest to, że błędy mogą dla całej odpowiedzi lub poszczególnych elementów odpowiedzi. Jeśli na przykład żądanie ma nieprawidłowy format, cała odpowiedź zawiera błąd (na przykład nie ma początków).

Jeśli jednak błąd dotyczy podzbioru elementów w odpowiedzi (na przykład nie można obliczyć trasy dla jednego kombinacji miejsca wylotu i miejsca docelowego), to jedynie elementy, na które wpływa reguła zwraca kod błędu.

Wyniki strumienia gRPC

ComputeRouteMatrix Metoda gRPC pobiera listę źródeł i miejsc docelowych oraz zwraca strumień zawierające informacje o trasach dla wszystkich połączeń miejsca wylotu i celu podróży. Wyniki są zwracane jako strumień, więc nie musisz czekać, aż wszystkie możliwe kombinacje tras są obliczane przed rozpoczęciem przetwarzania wyników.

Nie ma gwarancji, że elementy zwrócone przez strumień zostaną zwrócone w żadnym zamówienie. Dlatego każdy element odpowiedzi zawiera atrybuty origin_index oraz destination_index W przypadku miejsc wylotu i przylotu określonych w żądaniu początek trasy jest odpowiednikiem wartości origins[origin_index] dla danego elementu a cel podróży jest odpowiednikiem destinations[destination_index]. Tablice te mają indeks zerowy. Ważne jest, aby zachowywać punkt początkowy i kolejność list miejsc docelowych.

Przykłady obliczania macierzy tras

użycie funkcji computeRouteMatrix, w żądaniu HTTP do obliczenia macierzy tras.

Przykład HTTP

Poniżej znajduje się przykład żądania HTTP computeRouteMatrix. W tym przykładzie Ty:

  • Określ tablicę z dwoma punktami początkowymi i dwoma docelowymi punktami pośrednimi. Metoda oblicza trasę z każdego punktu początkowego do każdego miejsca docelowego, aby odpowiedź zawiera 4 trasy.

    w tablicy pierwszy element ma indeks 0, drugi to indeks 1, i tak dalej.

  • Dołącz maskę pola odpowiedzi, aby określić, które pola wartości odpowiedź (REST) lub ComputeRoutesResponse (gRPC). W tym przykładzie skonfigurujemy żądanie do zwrócenia originIndex, destinationIndex, duration, distanceMeters, status i condition na każdej trasie. Więcej informacji: Wybierz pola, które chcesz zwrócić.

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'

Odpowiedź zawiera 4 możliwe trasy połączenia wszystkich źródeł oraz punkty pośrednie na trasie.

Zidentyfikuj w odpowiedzi każdą trasę, korzystając z parametrów originIndex i Pola odpowiedzi: destinationIndex. Na przykład originIndex o 1 w parametrze odpowiada trasie obliczonej z punktu pośredniego w indeksie 1 origins w żądaniu.

[
    {
        "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"
    }
]

Przykłady gRPC

Przykłady żądań gRPC znajdziesz w Przykładowe żądanie gRPC Jawa przykład na tej stronie wywołuje zarówno trasy Compute, macierz tras Compute.