Share via


Route - Get Route Matrix

Gebruik om een routematrix op te halen met de reistijd en afstand voor alle mogelijke paren in een lijst met oorsprongen en bestemmingen.

De Get Route Matrix API is een HTTP-aanvraag GET waarmee de reistijd en afstand worden berekend voor alle mogelijke paren in een lijst met oorsprongen en bestemmingen. In tegenstelling tot de API Routebeschrijving ophalen , die gedetailleerde route-instructies biedt, richt deze API zich op efficiƫntie door u de kosten (reistijd en afstand) te geven van routering van elke oorsprong naar elke bestemming. Zie Best practices voor Azure Maps Route-service voor meer informatie.

Voor elke opgegeven oorsprong berekent de service de kosten van routering van die oorsprong naar elke opgegeven bestemming. De reeks oorsprongen en de reeks bestemmingen kunnen worden beschouwd als de kolom- en rijkoppen van een tabel en elke cel in de tabel bevat de kosten van routering van de oorsprong naar de bestemming voor die cel. Stel dat een bezorgbedrijf 20 chauffeurs heeft en dat ze de dichtstbijzijnde chauffeur moeten vinden om de bezorging in het restaurant op te halen. Om dit gebruiksscenario op te lossen, kunnen ze Matrix Route-API aanroepen.

Voor elke route worden de reistijden en afstanden geretourneerd. U kunt de berekende kosten gebruiken om te bepalen welke gedetailleerde routes moeten worden berekend met behulp van de Route directions-API.

De maximale grootte van een matrix voor een asynchrone aanvraag is 700 en voor een synchronisatieaanvraag 100 (het aantal oorsprongen vermenigvuldigd met het aantal bestemmingen).

Aanvraag voor synchrone routematrix indienen

Als uw scenario synchrone aanvragen vereist en de maximale grootte van de matrix kleiner is dan of gelijk is aan 100, kunt u een synchrone aanvraag indienen. De maximale grootte van een matrix voor deze API is 100 (het aantal origins vermenigvuldigd met het aantal bestemmingen). Met deze beperking in het achterhoofd zijn voorbeelden van mogelijke matrixdimensies: 10x10, 6x8, 9x8 (deze hoeft niet vierkant te zijn).

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

Aanvraag voor asynchrone routematrix verzenden

De asynchrone API is geschikt voor het verwerken van grote volumes van relatief complexe routeringsaanvragen. Wanneer u een aanvraag doet met behulp van een asynchrone aanvraag, retourneert de service standaard een 202-antwoordcode samen met een omleidings-URL in het veld Locatie van de antwoordheader. Deze URL moet regelmatig worden gecontroleerd totdat de antwoordgegevens of foutinformatie beschikbaar zijn. Als waitForResults de parameter in de aanvraag is ingesteld op true, krijgt de gebruiker een 200-antwoord als de aanvraag binnen 120 seconden is voltooid.

De maximale grootte van een matrix voor deze API is 700 (het aantal oorsprongen vermenigvuldigd met het aantal bestemmingen). Met die beperking in het achterhoofd zijn voorbeelden van mogelijke matrixdimensies: 50x10, 10x10, 28x25. 10x70 (het hoeft niet vierkant te zijn).

De asynchrone antwoorden worden 14 dagen opgeslagen. De omleidings-URL retourneert een 404-antwoord als deze wordt gebruikt na de verloopperiode.

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

Hier volgt een typische reeks asynchrone bewerkingen:

  1. Client verzendt een GET-aanvraag voor routematrix naar Azure Maps

  2. De server reageert met een van de volgende opties:

    HTTP 202 Accepted : routematrixaanvraag is geaccepteerd.

    HTTP: Error er is een fout opgetreden bij het verwerken van uw Route Matrix-aanvraag. Dit kan een ongeldige 400-aanvraag of een andere foutcode zijn.

  3. Als de aanvraag voor matrixroute is geaccepteerd, bevat de locatieheader in het antwoord de URL voor het downloaden van de resultaten van de aanvraag. Deze status-URI ziet er als volgt uit:

  GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}
  1. Client verzendt een GET-aanvraag op de download-URL die is verkregen in stap 3 om de resultaten te downloaden

Synchronisatieresultaten downloaden

Wanneer u een GET-aanvraag voor routematrixsynchronisatie-API maakt, retourneert de service 200-antwoordcode voor een geslaagde aanvraag en een antwoordmatrix. De antwoordtekst bevat de gegevens en er is geen mogelijkheid om de resultaten later op te halen.

Asynchrone resultaten downloaden

Wanneer een aanvraag een 202 Accepted antwoord geeft, wordt de aanvraag verwerkt met behulp van onze asynchrone pijplijn. U krijgt een URL om de voortgang van uw asynchrone aanvraag te controleren in de locatieheader van het antwoord. Deze status-URI ziet er als volgt uit:

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

De URL die door de locatieheader wordt opgegeven, retourneert de volgende antwoorden wanneer een GET aanvraag wordt uitgegeven.

HTTP 202 Accepted : matrixaanvraag is geaccepteerd, maar wordt nog steeds verwerkt. Probeer het over een tijdje opnieuw.

HTTP 200 OK - Matrixaanvraag is verwerkt. De antwoordtekst bevat alle resultaten.

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

URI-parameters

Name In Vereist Type Description
format
path True

string

Matrix-id ontvangen nadat de aanvraag voor matrixroute is geaccepteerd.

api-version
query True

string

Versienummer van Azure Maps API.

Aanvraagkoptekst

Name Vereist Type Description
x-ms-client-id

string

Hiermee geeft u op welk account is bedoeld voor gebruik in combinatie met het Microsoft Entra ID-beveiligingsmodel. Het vertegenwoordigt een unieke id voor het Azure Maps-account en kan worden opgehaald uit de Azure Maps beheervlak Account-API. Als u Microsoft Entra ID beveiliging wilt gebruiken in Azure Maps raadpleegt u de volgende artikelen voor hulp.

Antwoorden

Name Type Description
200 OK

RouteMatrixResult

De matrixaanvraag is verwerkt. De hoofdtekst van het antwoord bevat alle resultaten.

202 Accepted

Alleen ondersteund voor asynchrone aanvragen. Aanvraag geaccepteerd: de aanvraag is geaccepteerd voor verwerking. Gebruik de URL in de Locatieheader om de resultaten opnieuw te proberen of te openen.

Headers

Location: string

Other Status Codes

ErrorResponse

Er is een onverwachte fout opgetreden.

Beveiliging

AADToken

Dit zijn de Microsoft Entra OAuth 2.0-stromen. Wanneer het is gekoppeld aan op rollen gebaseerd toegangsbeheer van Azure, kan het worden gebruikt om de toegang tot Azure Maps REST API's te beheren. Op rollen gebaseerd toegangsbeheer van Azure wordt gebruikt om toegang tot een of meer Azure Maps resourceaccount of subresources aan te wijzen. Elke gebruiker, groep of service-principal kan toegang krijgen via een ingebouwde rol of een aangepaste rol die bestaat uit een of meer machtigingen voor Azure Maps REST API's.

Voor het implementeren van scenario's raden we u aan verificatieconcepten te bekijken. Samengevat biedt deze beveiligingsdefinitie een oplossing voor het modelleren van toepassingen via objecten die toegangsbeheer kunnen hebben voor specifieke API's en bereiken.

Notities

  • Voor deze beveiligingsdefinitie is het gebruik van de x-ms-client-id header vereist om aan te geven tot welke Azure Maps resource de toepassing toegang aanvraagt. Dit kan worden verkregen via de Kaarten-beheer-API.

De Authorization URL is specifiek voor het azure-exemplaar van de openbare cloud. Onafhankelijke clouds hebben unieke autorisatie-URL's en Microsoft Entra ID configuraties. * Op rollen gebaseerd toegangsbeheer van Azure wordt geconfigureerd vanuit het Azure-beheervlak via Azure Portal, PowerShell, CLI, Azure SDK's of REST API's. * Gebruik van de Azure Maps Web SDK maakt configuratie van een toepassing mogelijk voor meerdere gebruiksvoorbeelden.

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Name Description
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

Dit is een gedeelde sleutel die wordt ingericht wanneer u een Azure Maps-account Creatie in de Azure Portal of met behulp van PowerShell, CLI, Azure SDK's of REST API.

Met deze sleutel heeft elke toepassing toegang tot alle REST API's. Met andere woorden, deze sleutel kan worden gebruikt als een hoofdsleutel in het account waarin ze zijn uitgegeven.

Voor openbaar beschikbare toepassingen wordt aanbevolen om de benadering van vertrouwelijke clienttoepassingen te gebruiken voor toegang tot Azure Maps REST API's, zodat uw sleutel veilig kan worden opgeslagen.

Type: apiKey
In: query

SAS Token

Dit is een Shared Access Signature-token dat is gemaakt op basis van de SAS-bewerking List op de Azure Maps resource via het Azure-beheervlak via Azure Portal, PowerShell, CLI, Azure SDK's of REST API's.

Met dit token is elke toepassing gemachtigd om toegang te krijgen met op rollen gebaseerd toegangsbeheer van Azure en fijnmazige controle tot de vervaldatum, frequentie en gebruiksregio(s) voor het specifieke token. Met andere woorden, het SAS-token kan worden gebruikt om toepassingen in staat te stellen toegang op een veiligere manier te beheren dan de gedeelde sleutel.

Voor openbaar beschikbaar gemaakte toepassingen wordt aanbevolen om een specifieke lijst met toegestane origins te configureren voor de resource van het kaartaccount om misbruik van rendering te beperken en het SAS-token regelmatig te vernieuwen.

Type: apiKey
In: header

Voorbeelden

Successfully retrieve the status for a route matrix request

Sample Request

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

Sample Response

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

Definities

Name Description
ErrorAdditionalInfo

Aanvullende informatie over de resourcebeheerfout.

ErrorDetail

De foutdetails.

ErrorResponse

Foutreactie

RouteLegSummary

Samenvattingsobject voor routesectie.

RouteMatrix

Matrixresultaatobject

RouteMatrixResult

Dit object wordt geretourneerd na een geslaagde routematrix-aanroep. Als er bijvoorbeeld 2 origins en 3 bestemmingen worden opgegeven, zijn er twee matrices met 3 elementen in elk. De inhoud van elk element is afhankelijk van de opties in de query.

RouteMatrixResultResponse

Antwoordobject van de huidige cel in de invoermatrix.

RouteMatrixSummary

Samenvattingsobject

ErrorAdditionalInfo

Aanvullende informatie over de resourcebeheerfout.

Name Type Description
info

object

De aanvullende informatie.

type

string

Het type aanvullende informatie.

ErrorDetail

De foutdetails.

Name Type Description
additionalInfo

ErrorAdditionalInfo[]

Aanvullende informatie over de fout.

code

string

De foutcode.

details

ErrorDetail[]

De foutdetails.

message

string

Het foutbericht.

target

string

Het foutdoel.

ErrorResponse

Foutreactie

Name Type Description
error

ErrorDetail

Het foutobject.

RouteLegSummary

Samenvattingsobject voor routesectie.

Name Type Description
arrivalTime

string

De geschatte aankomsttijd voor de route of het traject. De tijd is in UTC.

batteryConsumptionInkWh

number

Geschat elektrisch energieverbruik in kilowattuur (kWh) met behulp van het model elektrisch verbruik. Opgenomen als vehicleEngineType is ingesteld op elektrisch en constantSpeedConsumptionInkWhPerHundredkm is opgegeven. De waarde van batteryConsumptionInkWh omvat de gerecupereerde elektrische energie en kan dus negatief zijn (wat wijst op het winnen van energie). Als zowel maxChargeInkWh als currentChargeInkWh zijn opgegeven, wordt recuperatie beperkt om ervoor te zorgen dat het oplaadniveau van de batterij nooit hoger is dan maxChargeInkWh. Als maxChargeInkWh en currentChargeInkWh niet zijn opgegeven, wordt uitgegaan van onbeperkte recuperatie in de verbruiksberekening.

departureTime

string

De geschatte vertrektijd voor de route of het traject. De tijd is in UTC.

fuelConsumptionInLiters

number

Geschat brandstofverbruik in liter met behulp van het verbrandingsverbruiksmodel. Opgenomen als vehicleEngineType is ingesteld op verbranding en constantSpeedConsumptionInLitersPerHundredkm is opgegeven. De waarde is niet-negatief.

historicTrafficTravelTimeInSeconds

integer

Geschatte reistijd berekend op basis van tijdafhankelijke historische verkeersgegevens. Alleen opgenomen als computeTravelTimeFor = all wordt gebruikt in de query.

lengthInMeters

integer

Eigenschap Lengte in meters

liveTrafficIncidentsTravelTimeInSeconds

integer

Geschatte reistijd berekend op basis van realtime snelheidsgegevens. Alleen opgenomen als computeTravelTimeFor = all wordt gebruikt in de query.

noTrafficTravelTimeInSeconds

integer

Geschatte reistijd berekend alsof er geen vertragingen zijn op de route als gevolg van verkeerssituaties (bijvoorbeeld congestie). Alleen opgenomen als computeTravelTimeFor = all wordt gebruikt in de query.

trafficDelayInSeconds

integer

Geschatte vertraging in seconden veroorzaakt door de realtime incident(s) op basis van verkeersinformatie. Voor routes die zijn gepland met de vertrektijd in de toekomst, is de vertraging altijd 0. Als u extra reistijden wilt retourneren met behulp van verschillende typen verkeersinformatie, moet de parameter computeTravelTimeFor=all worden toegevoegd.

travelTimeInSeconds

integer

De eigenschap Geschatte reistijd in seconden die de vertraging als gevolg van realtimeverkeer bevat. Houd er rekening mee dat zelfs wanneer traffic=false travelTimeInSeconds nog steeds de vertraging als gevolg van verkeer bevat. Als DepartAt zich in de toekomst bevindt, wordt de reistijd berekend met behulp van tijdafhankelijke historische verkeersgegevens.

RouteMatrix

Matrixresultaatobject

Name Type Description
response

RouteMatrixResultResponse

Antwoordobject van de huidige cel in de invoermatrix.

statusCode

integer

De eigenschap StatusCode voor de huidige cel in de invoermatrix.

RouteMatrixResult

Dit object wordt geretourneerd na een geslaagde routematrix-aanroep. Als er bijvoorbeeld 2 origins en 3 bestemmingen worden opgegeven, zijn er twee matrices met 3 elementen in elk. De inhoud van elk element is afhankelijk van de opties in de query.

Name Type Description
formatVersion

string

De eigenschap Versie opmaken

matrix

RouteMatrix[]

Resultaten als een tweedimensionale matrix van routesamenvattingen.

summary

RouteMatrixSummary

Samenvattingsobject

RouteMatrixResultResponse

Antwoordobject van de huidige cel in de invoermatrix.

Name Type Description
routeSummary

RouteLegSummary

Samenvattingsobject voor routesectie.

RouteMatrixSummary

Samenvattingsobject

Name Type Description
successfulRoutes

integer

Aantal geslaagde routes in het antwoord.

totalRoutes

integer

Totaal aantal aangevraagde routes. Aantal cellen in de invoermatrix.