Route - Get Route Matrix
Gebruik om een routematrix op te halen met de reistijd en de afstand voor alle mogelijke paren in een lijst met oorsprongen en bestemmingen.
De Get Route Matrix
API is een HTTP-aanvraag GET
die de reistijd en de afstand berekent 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 De Route-service van Azure Maps voor meer informatie.
Voor elke opgegeven oorsprong berekent de service de kosten van routering van die oorsprong naar elke opgegeven bestemming. De set oorsprongen en de set 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 voedselbezorgingsbedrijf 20 chauffeurs heeft en dat ze de dichtstbijzijnde chauffeur moeten vinden om de bezorging van het restaurant op te halen. Om deze use-case op te lossen, kunnen ze matrixroute-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 oorsprongen vermenigvuldigd met het aantal bestemmingen). Met die beperking in het achterhoofd zijn voorbeelden van mogelijke matrixdimensies: 10x10, 6x8, 9x8 (dit hoeft niet vierkant te zijn).
GET https://atlas.microsoft.com/route/matrix/sync/json?api-version=1.0&subscription-key={subscription-key}
Asynchrone routematrixaanvraag indienen
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:
Client verzendt een Get-aanvraag voor routematrix naar Azure Maps
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.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}
- 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 in Azure Maps wilt gebruiken, raadpleegt u de volgende artikelen voor hulp. |
Antwoorden
Name | Type | Description |
---|---|---|
200 OK |
De matrixaanvraag is verwerkt. De antwoordtekst 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 het opnieuw te proberen of de resultaten te openen. Kopteksten Location: string |
|
Other Status Codes |
Er is een onverwachte fout opgetreden. |
Beveiliging
AADToken
Dit zijn de Microsoft Entra OAuth 2.0-stromen . Wanneer het wordt 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-resourceaccounts 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.
Als u scenario's wilt implementeren, raden we u aan om 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 moet de
x-ms-client-id
header worden gebruikt om aan te geven tot welke Azure Maps-resource de toepassing toegang aanvraagt. Dit kan worden verkregen via de Beheer-API van Maps.
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 use cases.
- Zie Overzicht van Microsoft Identity Platform voor meer informatie over Microsoft Identity Platform.
Type:
oauth2
Stroom:
implicit
Autorisatie-URL:
https://login.microsoftonline.com/common/oauth2/authorize
Bereiken
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 maakt in 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 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 over het verloop, de snelheid en de 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 oorsprongen te configureren op de resource Van het account toewijzen om misbruik van het genereren te beperken en het SAS-token regelmatig te vernieuwen.
Type:
apiKey
In:
header
Voorbeelden
Successfully retrieve the status for a route matrix request
Voorbeeldaanvraag
GET https://atlas.microsoft.com/route/matrix/11111111-2222-3333-4444-555555555555?api-version=1.0
Voorbeeldrespons
{
"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 |
---|---|
Error |
Aanvullende informatie over de resourcebeheerfout. |
Error |
De foutdetails. |
Error |
Foutreactie |
Route |
Samenvattingsobject voor routesectie. |
Route |
Matrixresultaatobject |
Route |
Dit object wordt geretourneerd na een geslaagde Route Matrix-aanroep. Als er bijvoorbeeld 2 oorsprongen en 3 bestemmingen worden opgegeven, zijn er 2 matrices met 3 elementen in elk. De inhoud van elk element is afhankelijk van de opties in de query. |
Route |
Antwoordobject van de huidige cel in de invoermatrix. |
Route |
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 |
De fout aanvullende informatie. |
|
code |
string |
De foutcode. |
details |
De foutdetails. |
|
message |
string |
Het foutbericht. |
target |
string |
Het foutdoel. |
ErrorResponse
Foutreactie
Name | Type | Description |
---|---|---|
error |
Het foutobject. |
RouteLegSummary
Samenvattingsobject voor routesectie.
Name | Type | Description |
---|---|---|
arrivalTime |
string |
De geschatte aankomsttijd voor de route of het traject. Tijd is in UTC. |
batteryConsumptionInkWh |
number |
Geschat elektrisch energieverbruik in kilowattuur (kWh) met behulp van het electric consumption model. Opgenomen als vehicleEngineType is ingesteld op elektrisch en constantSpeedConsumptionInkWhPerHundredkm is opgegeven. De waarde van batteryConsumptionInkWh omvat de gerecupereerde elektrische energie en kan daarom negatief zijn (wat op het winnen van energie duidt). Als zowel maxChargeInkWh als currentChargeInkWh zijn opgegeven, wordt de recuperatie beperkt om ervoor te zorgen dat het oplaadniveau van de accu nooit hoger is dan maxChargeInkWh. Als maxChargeInkWh en currentChargeInkWh niet zijn opgegeven, wordt in de verbruiksberekening uitgegaan van een ongeconstrainde recuperatie. |
departureTime |
string |
De geschatte vertrektijd voor de route of het traject. 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 |
Lengte in meters eigenschap |
liveTrafficIncidentsTravelTimeInSeconds |
integer |
Geschatte reistijd berekend met behulp 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 verkeersomstandigheden (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 met de vertraging als gevolg van realtime verkeer. Houd er rekening mee dat zelfs wanneer traffic=false travelTimeInSeconds nog steeds de vertraging als gevolg van verkeer bevat. Als DepartAt in de toekomst ligt, wordt de reistijd berekend op basis van tijdafhankelijke historische verkeersgegevens. |
RouteMatrix
Matrixresultaatobject
Name | Type | Description |
---|---|---|
response |
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 Route Matrix-aanroep. Als er bijvoorbeeld 2 oorsprongen en 3 bestemmingen worden opgegeven, zijn er 2 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 |
Resultaten als een tweedimensionale matrix van routesamenvattingen. |
|
summary |
Samenvattingsobject |
RouteMatrixResultResponse
Antwoordobject van de huidige cel in de invoermatrix.
Name | Type | Description |
---|---|---|
routeSummary |
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. |