Udostępnij za pośrednictwem


Route - Get Route Matrix

Użyj polecenia , aby uzyskać macierz tras pokazującą czas podróży i odległość dla wszystkich możliwych par na liście źródeł i miejsc docelowych.

Interfejs API Get Route Matrix to żądanie GET HTTP, które oblicza czas podróży i odległość dla wszystkich możliwych par na liście źródeł i miejsc docelowych. W przeciwieństwie do interfejsu API Get Route Directions, który udostępnia szczegółowe instrukcje dotyczące trasy, ten interfejs API koncentruje się na wydajności, zapewniając koszt (czas podróży i odległość) routingu z każdego punktu początkowego do każdego miejsca docelowego. Aby uzyskać więcej informacji, zobacz Best practices for Azure Maps Route Service.

Dla każdego danego źródła usługa oblicza koszt routingu z tego źródła do każdego miejsca docelowego. Zestaw źródeł i zestaw miejsc docelowych można traktować jako nagłówki kolumn i wierszy tabeli, a każda komórka w tabeli zawiera koszty routingu z punktu początkowego do miejsca docelowego dla tej komórki. Załóżmy na przykład, że firma dostarczająca żywność ma 20 kierowców i musi znaleźć najbliższego kierowcę, aby odebrać dostawę z restauracji. Aby rozwiązać ten przypadek użycia, mogą wywołać interfejs API trasy macierzy.

Dla każdej trasy zwracane są czasy podróży i odległości. Za pomocą obliczonych kosztów można określić, które szczegółowe trasy mają być obliczane przy użyciu interfejsu API Route Directions.

Maksymalny rozmiar macierzy dla żądania asynchronicznego to 700, a żądanie synchronizacji to 100 (liczba źródeł pomnożonych przez liczbę miejsc docelowych).

Przesyłanie synchronicznego żądania macierzy tras

Jeśli scenariusz wymaga żądań synchronicznych, a maksymalny rozmiar macierzy jest mniejszy lub równy 100, możesz utworzyć żądanie synchroniczne. Maksymalny rozmiar macierzy dla tego interfejsu API to 100 (liczba źródeł pomnożona przez liczbę miejsc docelowych). Mając na uwadze to ograniczenie, przykłady możliwych wymiarów macierzy to: 10x10, 6x8, 9x8 (nie musi być kwadratowy).

GET https://atlas.microsoft.com/route/matrix/sync/json?api-version=1.0&subscription-key={subscription-key}

Prześlij żądanie asynchronicznej macierzy tras

Interfejs API asynchroniczny jest odpowiedni do przetwarzania dużych ilości stosunkowo złożonych żądań routingu. Gdy wysyłasz żądanie przy użyciu żądania asynchronicznego, domyślnie usługa zwraca kod odpowiedzi 202 wraz z adresem URL przekierowania w polu Lokalizacja nagłówka odpowiedzi. Ten adres URL powinien być okresowo sprawdzany do momentu udostępnienia danych odpowiedzi lub informacji o błędzie. Jeśli parametr waitForResults w żądaniu ma wartość true, użytkownik otrzyma odpowiedź 200, jeśli żądanie zostanie zakończone poniżej 120 sekund.

Maksymalny rozmiar macierzy dla tego interfejsu API to 700 (liczba źródeł pomnożona przez liczbę miejsc docelowych). Mając to na uwadze, przykłady możliwych wymiarów macierzy to: 50x10, 10x10, 28x25. 10x70 (nie musi być kwadratowy).

Odpowiedzi asynchroniczne są przechowywane przez 24 godzin. Adres URL przekierowania zwraca odpowiedź 404, jeśli jest używana po upływie okresu wygaśnięcia.

GET https://atlas.microsoft.com/route/matrix/json?api-version=1.0&subscription-key={subscription-key}

Oto typowa sekwencja operacji asynchronicznych:

  1. Klient wysyła żądanie GET macierzy tras do usługi Azure Maps

  2. Serwer odpowie jednym z następujących elementów:

    202 Accepted HTTP — żądanie macierzy tras zostało zaakceptowane.

    Error HTTP — wystąpił błąd podczas przetwarzania żądania macierzy tras. Może to być 400 Nieprawidłowe żądanie lub inny kod stanu błędu.

  3. Jeśli żądanie trasy macierzy zostało zaakceptowane pomyślnie, nagłówek Location w odpowiedzi zawiera adres URL umożliwiający pobranie wyników żądania. Ten identyfikator URI stanu wygląda następująco:

  GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}
  1. Klient wystawia żądanie GET w adresie URL pobierania uzyskanym w kroku 3, aby pobrać wyniki

Pobieranie wyników synchronizacji

Po wysłaniu żądania GET dla interfejsu API synchronizacji macierzy tras usługa zwraca kod odpowiedzi 200 dla pomyślnego żądania i tablicy odpowiedzi. Treść odpowiedzi będzie zawierać dane i nie będzie można pobrać wyników później.

Pobieranie wyników asynchronicznych

Gdy żądanie wysyła 202 Accepted odpowiedzi, żądanie jest przetwarzane przy użyciu naszego potoku asynchronicznego. Otrzymasz adres URL, aby sprawdzić postęp żądania asynchronicznego w nagłówku lokalizacji odpowiedzi. Ten identyfikator URI stanu wygląda następująco:

  GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}

Adres URL podany przez nagłówek lokalizacji zwróci następujące odpowiedzi po wysłaniu żądania GET.

202 Accepted HTTP — żądanie macierzy zostało zaakceptowane, ale nadal jest przetwarzane. Spróbuj ponownie za jakiś czas.

200 OK HTTP — pomyślnie przetworzone żądanie macierzy. Treść odpowiedzi zawiera wszystkie wyniki.

GET https://atlas.microsoft.com/route/matrix/{format}?api-version=1.0

Parametry identyfikatora URI

Nazwa W Wymagane Typ Opis
format
path True

string

Identyfikator macierzy otrzymany po pomyślnym zaakceptowaniu żądania trasy macierzy.

api-version
query True

string

Numer wersji interfejsu API usługi Azure Maps.

Nagłówek żądania

Nazwa Wymagane Typ Opis
x-ms-client-id

string

Określa, które konto jest przeznaczone do użycia w połączeniu z modelem zabezpieczeń Microsoft Entra ID. Reprezentuje unikatowy identyfikator konta usługi Azure Maps i można go pobrać z interfejsu API konta płaszczyzny zarządzania usługi Azure Maps. Aby użyć zabezpieczeń identyfikatora Entra firmy Microsoft w usłudze Azure Maps, zobacz następujące artykuły , aby uzyskać wskazówki.

Odpowiedzi

Nazwa Typ Opis
200 OK

RouteMatrixResult

Pomyślnie przetworzone żądanie macierzy. Treść odpowiedzi zawiera wszystkie wyniki.

202 Accepted

Obsługiwane tylko w przypadku żądania asynchronicznego. Zaakceptowane żądanie: żądanie zostało zaakceptowane do przetworzenia. Użyj adresu URL w nagłówku lokalizacji, aby ponowić próbę lub uzyskać dostęp do wyników.

Nagłówki

Location: string

Other Status Codes

ErrorResponse

Wystąpił nieoczekiwany błąd.

Zabezpieczenia

AADToken

Są to przepływy Microsoft Entra OAuth 2.0. Po połączeniu z dostępem opartym na rolach platformy Azure kontroli może służyć do kontrolowania dostępu do interfejsów API REST usługi Azure Maps. Mechanizmy kontroli dostępu opartej na rolach platformy Azure służą do wyznaczania dostępu do co najmniej jednego konta zasobu usługi Azure Maps lub zasobów podrzędnych. Każdy użytkownik, grupa lub jednostka usługi mogą mieć dostęp za pośrednictwem wbudowanej roli lub roli niestandardowej składającej się z co najmniej jednego uprawnienia do interfejsów API REST usługi Azure Maps.

Aby zaimplementować scenariusze, zalecamy wyświetlenie koncepcji uwierzytelniania . Podsumowując, ta definicja zabezpieczeń zawiera rozwiązanie do modelowania aplikacji za pośrednictwem obiektów, które mogą kontrolować dostęp do określonych interfejsów API i zakresów.

Notatki

  • Ta definicja zabezpieczeń wymaga użycia nagłówka x-ms-client-id w celu wskazania, do którego zasobu usługi Azure Maps aplikacja żąda dostępu. Można to uzyskać za pomocą interfejsu API zarządzania usługami Maps.

Authorization URL jest specyficzna dla wystąpienia chmury publicznej platformy Azure. Suwerenne chmury mają unikatowe adresy URL autoryzacji i konfiguracje identyfikatorów Entra firmy Microsoft. * Kontrola dostępu oparta na rolach platformy Azure jest konfigurowana na podstawie płaszczyzny zarządzania platformy Azure za pośrednictwem witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia, zestawów AZURE SDK lub interfejsów API REST. * Użycie zestawu Web SDK usługi Azure Maps umożliwia konfigurację opartą na konfiguracji aplikacji w wielu przypadkach użycia.

Typ: oauth2
Flow: implicit
Adres URL autoryzacji: https://login.microsoftonline.com/common/oauth2/authorize

Zakresy

Nazwa Opis
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

Jest to klucz wspólny aprowizowany podczas tworzenie konta usługi Azure Maps w witrynie Azure Portal lub przy użyciu programu PowerShell, interfejsu wiersza polecenia, zestawów SDK platformy Azure lub interfejsu API REST.

Za pomocą tego klucza każda aplikacja może uzyskiwać dostęp do całego interfejsu API REST. Innymi słowy, ten klucz może służyć jako klucz główny na koncie, w którym są wystawiane.

W przypadku publicznie uwidocznionych aplikacji zalecamy użycie poufnych aplikacji klienckich podejście do uzyskiwania dostępu do interfejsów API REST usługi Azure Maps, aby klucz mógł być bezpiecznie przechowywany.

Typ: apiKey
W: query

SAS Token

Jest to token sygnatury dostępu współdzielonego tworzony na podstawie operacji List SAS na zasobie usługi Azure Maps za pośrednictwem płaszczyzny zarządzania platformy Azure za pośrednictwem witryny Azure Portal, programu PowerShell, interfejsu wiersza polecenia, zestawów AZURE SDK lub interfejsów API REST.

Dzięki temu tokenowi każda aplikacja jest autoryzowana do uzyskiwania dostępu za pomocą kontroli dostępu opartej na rolach platformy Azure i szczegółowej kontroli wygaśnięcia, szybkości i regionów użycia dla określonego tokenu. Innymi słowy, token SAS może służyć do umożliwienia aplikacjom kontrolowania dostępu w sposób bardziej zabezpieczony niż klucz wspólny.

W przypadku publicznie uwidocznionych aplikacji zalecamy skonfigurowanie określonej listy dozwolonych źródeł w zasobie Mapowanie konta w celu ograniczenia nadużyć renderowania i regularnego odnawiania tokenu SAS.

Typ: apiKey
W: header

Przykłady

Successfully retrieve the status for a route matrix request

Przykładowe żądanie

GET https://atlas.microsoft.com/route/matrix/11111111-2222-3333-4444-555555555555?api-version=1.0

Przykładowa odpowiedź

{
  "formatVersion": "0.0.1",
  "matrix": [
    [
      {
        "statusCode": 200,
        "response": {
          "routeSummary": {
            "lengthInMeters": 495,
            "travelTimeInSeconds": 134,
            "trafficDelayInSeconds": 0,
            "departureTime": "2018-07-27T22:55:29+00:00",
            "arrivalTime": "2018-07-27T22:57:43+00:00"
          }
        }
      },
      {
        "statusCode": 200,
        "response": {
          "routeSummary": {
            "lengthInMeters": 647651,
            "travelTimeInSeconds": 26835,
            "trafficDelayInSeconds": 489,
            "departureTime": "2018-07-27T22:55:29+00:00",
            "arrivalTime": "2018-07-28T06:22:44+00:00"
          }
        }
      }
    ],
    [
      {
        "statusCode": 200,
        "response": {
          "routeSummary": {
            "lengthInMeters": 338,
            "travelTimeInSeconds": 104,
            "trafficDelayInSeconds": 0,
            "departureTime": "2018-07-27T22:55:29+00:00",
            "arrivalTime": "2018-07-27T22:57:13+00:00"
          }
        }
      },
      {
        "statusCode": 200,
        "response": {
          "routeSummary": {
            "lengthInMeters": 647494,
            "travelTimeInSeconds": 26763,
            "trafficDelayInSeconds": 469,
            "departureTime": "2018-07-27T22:55:29+00:00",
            "arrivalTime": "2018-07-28T06:21:32+00:00"
          }
        }
      }
    ]
  ],
  "summary": {
    "successfulRoutes": 4,
    "totalRoutes": 4
  }
}

Definicje

Nazwa Opis
ErrorAdditionalInfo

Dodatkowe informacje o błędzie zarządzania zasobami.

ErrorDetail

Szczegóły błędu.

ErrorResponse

Odpowiedź na błąd

RouteLegSummary

Obiekt podsumowania sekcji trasy.

RouteMatrix

Obiekt wynikowy macierzy

RouteMatrixResult

Ten obiekt jest zwracany z pomyślnego wywołania macierzy tras. Na przykład jeśli podano 2 źródła i 3 miejsca docelowe, w każdej z nich będzie 2 tablice z 3 elementami. Zawartość każdego elementu zależy od opcji podanych w zapytaniu.

RouteMatrixResultResponse

Obiekt odpowiedzi bieżącej komórki w macierzy wejściowej.

RouteMatrixSummary

Obiekt podsumowania

ErrorAdditionalInfo

Dodatkowe informacje o błędzie zarządzania zasobami.

Nazwa Typ Opis
info

object

Dodatkowe informacje.

type

string

Dodatkowy typ informacji.

ErrorDetail

Szczegóły błędu.

Nazwa Typ Opis
additionalInfo

ErrorAdditionalInfo[]

Dodatkowe informacje o błędzie.

code

string

Kod błędu.

details

ErrorDetail[]

Szczegóły błędu.

message

string

Komunikat o błędzie.

target

string

Element docelowy błędu.

ErrorResponse

Odpowiedź na błąd

Nazwa Typ Opis
error

ErrorDetail

Obiekt błędu.

RouteLegSummary

Obiekt podsumowania sekcji trasy.

Nazwa Typ Opis
arrivalTime

string

Szacowany czas przybycia trasy lub nogi. Czas jest w formacie UTC.

batteryConsumptionInkWh

number

Szacowane zużycie energii elektrycznej w kilowatach (kWh) przy użyciu modelu zużycia energii elektrycznej. Uwzględnione, jeśli parametr vehicleEngineType ma ustawioną wartość elektryczną i stałąSpeedConsumptionInkWhPerHundredkm jest określona. Wartość bateriiConsumptionInkWh obejmuje odzyskaną energię elektryczną i dlatego może być ujemna (co wskazuje na uzyskanie energii). Jeśli określono zarówno wartość maxChargeInkWh, jak i currentChargeInkWh, reuperacja zostanie ograniczona w celu zapewnienia, że poziom naładowania baterii nigdy nie przekracza maksymalnej wartości MaxChargeInkWh. Jeśli nie określono parametru maxChargeInkWh ani currentChargeInkWh, w obliczeniu zużycia przyjmuje się, że nieskrępowana reuperacja jest przyjmowana.

departureTime

string

Szacowany czas odlotu trasy lub nogi. Czas jest w formacie UTC.

fuelConsumptionInLiters

number

Szacowane zużycie paliwa w litrach przy użyciu modelu zużycia spalania. Uwzględnione, jeśli parametr vehicleEngineType ma ustawioną wartość spalania i określono stałąSpeedConsumptionInLitersPerHundredkm. Wartość będzie nieujemna.

historicTrafficTravelTimeInSeconds

integer

Szacowany czas podróży obliczany przy użyciu danych historycznych zależnych od czasu. Uwzględniane tylko wtedy, gdy parametr computeTravelTimeFor = wszystkie jest używany w zapytaniu.

lengthInMeters

integer

Długość w metrach, właściwość

liveTrafficIncidentsTravelTimeInSeconds

integer

Szacowany czas podróży obliczany przy użyciu danych prędkości w czasie rzeczywistym. Uwzględniane tylko wtedy, gdy parametr computeTravelTimeFor = wszystkie jest używany w zapytaniu.

noTrafficTravelTimeInSeconds

integer

Szacowany czas podróży obliczony tak, jakby nie było opóźnień w trasie ze względu na warunki ruchu (np. przeciążenie). Uwzględniane tylko wtedy, gdy parametr computeTravelTimeFor = wszystkie jest używany w zapytaniu.

trafficDelayInSeconds

integer

Szacowane opóźnienie w sekundach spowodowane zdarzeniami w czasie rzeczywistym zgodnie z informacjami o ruchu. W przypadku tras planowanych z czasem odlotu w przyszłości opóźnienia są zawsze 0. Aby zwrócić dodatkowe czasy podróży przy użyciu różnych typów informacji o ruchu, parametr computeTravelTimeFor=wszystkie należy dodać.

travelTimeInSeconds

integer

Szacowany czas podróży w sekundach, który obejmuje opóźnienie spowodowane ruchem w czasie rzeczywistym. Należy pamiętać, że nawet gdy traffic=false travelTimeInSeconds nadal zawiera opóźnienie spowodowane ruchem. Jeśli funkcja DepartAt jest w przyszłości, czas podróży jest obliczany przy użyciu danych historycznych zależnych od czasu.

RouteMatrix

Obiekt wynikowy macierzy

Nazwa Typ Opis
response

RouteMatrixResultResponse

Obiekt odpowiedzi bieżącej komórki w macierzy wejściowej.

statusCode

integer

Właściwość StatusCode dla bieżącej komórki w macierzy wejściowej.

RouteMatrixResult

Ten obiekt jest zwracany z pomyślnego wywołania macierzy tras. Na przykład jeśli podano 2 źródła i 3 miejsca docelowe, w każdej z nich będzie 2 tablice z 3 elementami. Zawartość każdego elementu zależy od opcji podanych w zapytaniu.

Nazwa Typ Opis
formatVersion

string

Formatowanie właściwości Version

matrix

RouteMatrix[]

Wyniki jako 2-wymiarowa tablica podsumowań tras.

summary

RouteMatrixSummary

Obiekt podsumowania

RouteMatrixResultResponse

Obiekt odpowiedzi bieżącej komórki w macierzy wejściowej.

Nazwa Typ Opis
routeSummary

RouteLegSummary

Obiekt podsumowania sekcji trasy.

RouteMatrixSummary

Obiekt podsumowania

Nazwa Typ Opis
successfulRoutes

integer

Liczba pomyślnych tras w odpowiedzi.

totalRoutes

integer

Łączna liczba żądanych tras. Liczba komórek w macierzy wejściowej.