Route - Get Route Matrix
Permet d’obtenir une matrice d’itinéraire montrant le temps de trajet et la distance pour toutes les paires possibles dans une liste d’origines et de destinations.
L’API Get Route Matrix
est une requête HTTP GET
qui calcule le temps de déplacement et la distance pour toutes les paires possibles dans une liste d’origines et de destinations. Contrairement aux Get Route Directions API, qui fournissent des instructions détaillées sur l’itinéraire, cette API se concentre sur l’efficacité en vous donnant le coût (temps de trajet et distance) du routage de chaque origine à chaque destination. Pour plus d’informations, consultez Meilleures pratiques pour le service Route Azure Maps.
Pour chaque origine donnée, le service calcule le coût du routage de cette origine vers chaque destination donnée. L’ensemble d’origines et l’ensemble de destinations peuvent être considérés comme les en-têtes de colonne et de ligne d’une table et chaque cellule du tableau contient les coûts de routage de l’origine vers la destination de cette cellule. Par exemple, supposons qu’une entreprise de livraison alimentaire a 20 chauffeurs et qu’elle doit trouver le chauffeur le plus proche pour récupérer la livraison du restaurant. Pour résoudre ce cas d’usage, ils peuvent appeler l’API Matrix Route.
Pour chaque itinéraire, les temps de trajet et les distances sont retournés. Vous pouvez utiliser les coûts calculés pour déterminer les itinéraires détaillés à calculer à l’aide de l’API Route Directions.
La taille maximale d’une matrice pour la requête asynchrone est 700 et pour la demande de synchronisation, elle est 100 (le nombre d’origines multiplié par le nombre de destinations).
Envoyer une demande de matrice de routage synchrone
Si votre scénario nécessite des requêtes synchrones et que la taille maximale de la matrice est inférieure ou égale à 100, vous souhaiterez peut-être effectuer une requête synchrone. La taille maximale d’une matrice pour cette API est 100 (le nombre d’origines multiplié par le nombre de destinations). Avec cette contrainte à l’esprit, les exemples de dimensions de matrice possibles sont : 10x10, 6x8, 9x8 (il n’est pas nécessaire d’être carré).
GET https://atlas.microsoft.com/route/matrix/sync/json?api-version=1.0&subscription-key={subscription-key}
Envoyer une demande de matrice de routage asynchrone
L’API asynchrone convient au traitement de gros volumes de demandes de routage relativement complexes. Lorsque vous effectuez une requête à l’aide d’une requête asynchrone, par défaut, le service retourne un code de réponse 202 le long d’une URL de redirection dans le champ Emplacement de l’en-tête de réponse. Cette URL doit être vérifiée régulièrement jusqu’à ce que les données de réponse ou les informations d’erreur soient disponibles. Si waitForResults
paramètre dans la requête a la valeur true, l’utilisateur obtient une réponse 200 si la requête est terminée sous 120 secondes.
La taille maximale d’une matrice pour cette API est 700 (le nombre d’origines multiplié par le nombre de destinations). Avec cette contrainte à l’esprit, des exemples de dimensions de matrice possibles sont : 50x10, 10x10, 28x25. 10x70 (il n’a pas besoin d’être carré).
Les réponses asynchrones sont stockées pendant 24 heures. L’URL de redirection retourne une réponse 404 si elle est utilisée après la période d’expiration.
GET https://atlas.microsoft.com/route/matrix/json?api-version=1.0&subscription-key={subscription-key}
Voici une séquence classique d’opérations asynchrones :
Le client envoie une requête GET de matrice de routage à Azure Maps
Le serveur répond avec l’une des options suivantes :
HTTP
202 Accepted
: la demande de matrice de routage a été acceptée.HTTP
Error
: une erreur s’est produite lors du traitement de votre demande de matrice de routage. Il peut s’agir d’une demande incorrecte 400 ou d’un autre code d’état d’erreur.Si la demande Matrix Route a été acceptée avec succès, l’en-tête Location dans la réponse contient l’URL pour télécharger les résultats de la demande. Cet URI d’état se présente comme suit :
GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}
- Le client émet une requête GET sur l’URL de téléchargement obtenue à l’étape 3 pour télécharger les résultats
Télécharger les résultats de synchronisation
Lorsque vous effectuez une requête GET pour l’API Route Matrix Sync, le service retourne le code de réponse 200 pour une requête réussie et un tableau de réponses. Le corps de la réponse contiendra les données et il n’y aura aucune possibilité de récupérer les résultats ultérieurement.
Télécharger les résultats asynchrones
Lorsqu’une demande émet une réponse 202 Accepted
, la demande est traitée à l’aide de notre pipeline asynchrone. Vous recevrez une URL pour vérifier la progression de votre demande asynchrone dans l’en-tête d’emplacement de la réponse. Cet URI d’état se présente comme suit :
GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}
L’URL fournie par l’en-tête d’emplacement retourne les réponses suivantes lorsqu’une demande de GET
est émise.
HTTP
202 Accepted
: la demande de matrice a été acceptée, mais elle est toujours traitée. Réessayez dans un certain temps.
HTTP
200 OK
- Requête de matrice traitée avec succès. Le corps de la réponse contient tous les résultats.
GET https://atlas.microsoft.com/route/matrix/{format}?api-version=1.0
Paramètres URI
Nom | Dans | Obligatoire | Type | Description |
---|---|---|---|---|
format
|
path | True |
string |
ID de matrice reçu après l’acceptation de la demande de route de matrice. |
api-version
|
query | True |
string |
Numéro de version de l’API Azure Maps. |
En-tête de la demande
Nom | Obligatoire | Type | Description |
---|---|---|---|
x-ms-client-id |
string |
Spécifie le compte destiné à l’utilisation conjointement avec le modèle de sécurité Microsoft Entra ID. Il représente un ID unique pour le compte Azure Maps et peut être récupéré à partir de l’API compte de plan de gestion Azure Maps. Pour utiliser la sécurité microsoft Entra ID dans Azure Maps, consultez les articles suivants pour obtenir des conseils. |
Réponses
Nom | Type | Description |
---|---|---|
200 OK |
Requête de matrice traitée avec succès. Le corps de la réponse contient tous les résultats. |
|
202 Accepted |
Prise en charge uniquement pour la requête asynchrone. Demande acceptée : la demande a été acceptée pour traitement. Utilisez l’URL dans l’en-tête d’emplacement pour réessayer ou accéder aux résultats. En-têtes Location: string |
|
Other Status Codes |
Une erreur inattendue s’est produite. |
Sécurité
AADToken
Il s’agit des flux Microsoft Entra OAuth 2.0. Lorsqu’il est associé à 'accès en fonction du rôle Azure contrôle, il peut être utilisé pour contrôler l’accès aux API REST Azure Maps. Les contrôles d’accès en fonction du rôle Azure sont utilisés pour désigner l’accès à un ou plusieurs comptes de ressources Azure Maps ou sous-ressources. Tout utilisateur, groupe ou principal de service peut avoir accès via un rôle intégré ou un rôle personnalisé composé d’une ou plusieurs autorisations pour les API REST Azure Maps.
Pour implémenter des scénarios, nous vous recommandons d’afficher concepts d’authentification. En résumé, cette définition de sécurité fournit une solution pour la modélisation des applications via des objets capables de contrôler l’accès sur des API et des étendues spécifiques.
Notes
- Cette définition de sécurité nécessite l’utilisation de l’en-tête
x-ms-client-id
pour indiquer la ressource Azure Maps à laquelle l’application demande l’accès. Cela peut être acquis à partir de l’API de gestion Maps.
La Authorization URL
est spécifique à l’instance de cloud public Azure. Les clouds souverains ont des URL d’autorisation uniques et des configurations d’ID Microsoft Entra.
* Le contrôle d’accès en fonction du rôle Azure est configuré à partir de l'plan de gestion Azure via le portail Azure, PowerShell, l’interface CLI, les SDK Azure ou les API REST.
* L’utilisation du kit de développement logiciel (SDK) web Azure Maps permet la configuration basée sur la configuration d’une application pour plusieurs cas d’usage.
- Pour plus d’informations sur la plateforme d’identités Microsoft, consultez vue d’ensemble de la plateforme d’identités Microsoft.
Type:
oauth2
Flux:
implicit
URL d’autorisation:
https://login.microsoftonline.com/common/oauth2/authorize
Étendues
Nom | Description |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
Il s’agit d’une clé partagée provisionnée lorsque vous créer un compte Azure Maps dans le portail Azure ou à l’aide de PowerShell, CLI, sdk Azure ou API REST.
Avec cette clé, toute application peut accéder à toutes les API REST. En d’autres termes, cette clé peut être utilisée comme clé principale dans le compte dans lequel elles sont émises.
Pour les applications exposées publiquement, nous vous recommandons d’utiliser les applications clientes confidentielles approche permettant d’accéder aux API REST Azure Maps afin que votre clé puisse être stockée en toute sécurité.
Type:
apiKey
Dans:
query
SAS Token
Il s’agit d’un jeton de signature d’accès partagé créé à partir de l’opération List SAS sur la ressource Azure Maps via le plan de gestion Azure via le portail Azure, PowerShell, CLI, azure SDK ou LES API REST.
Avec ce jeton, toute application est autorisée à accéder avec des contrôles d’accès en fonction du rôle Azure et un contrôle précis à l’expiration, au taux et aux régions d’utilisation pour le jeton particulier. En d’autres termes, le jeton SAP peut être utilisé pour permettre aux applications de contrôler l’accès de manière plus sécurisée que la clé partagée.
Pour les applications exposées publiquement, nous vous recommandons de configurer une liste spécifique d’origines autorisées sur la ressource de compte mapper pour limiter l’abus de rendu et renouveler régulièrement le jeton SAP.
Type:
apiKey
Dans:
header
Exemples
Successfully retrieve the status for a route matrix request
Exemple de requête
GET https://atlas.microsoft.com/route/matrix/11111111-2222-3333-4444-555555555555?api-version=1.0
Exemple de réponse
{
"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
}
}
Définitions
Nom | Description |
---|---|
Error |
Informations supplémentaires sur l’erreur de gestion des ressources. |
Error |
Détail de l’erreur. |
Error |
Réponse d’erreur |
Route |
Objet de synthèse pour la section route. |
Route |
Objet de résultat de matrice |
Route |
Cet objet est retourné à partir d’un appel de matrice de routage réussi. Par exemple, si 2 origines et 3 destinations sont fournies, il y a 2 tableaux avec 3 éléments dans chacun d’eux. Le contenu de chaque élément dépend des options fournies dans la requête. |
Route |
Objet réponse de la cellule active dans la matrice d’entrée. |
Route |
Objet Summary |
ErrorAdditionalInfo
Informations supplémentaires sur l’erreur de gestion des ressources.
Nom | Type | Description |
---|---|---|
info |
object |
Informations supplémentaires. |
type |
string |
Type d’informations supplémentaire. |
ErrorDetail
Détail de l’erreur.
Nom | Type | Description |
---|---|---|
additionalInfo |
Informations supplémentaires sur l’erreur. |
|
code |
string |
Code d’erreur. |
details |
Détails de l’erreur. |
|
message |
string |
Message d’erreur. |
target |
string |
Cible d’erreur. |
ErrorResponse
Réponse d’erreur
Nom | Type | Description |
---|---|---|
error |
Objet d’erreur. |
RouteLegSummary
Objet de synthèse pour la section route.
Nom | Type | Description |
---|---|---|
arrivalTime |
string |
Heure d’arrivée estimée pour l’itinéraire ou la jambe. L’heure est au format UTC. |
batteryConsumptionInkWh |
number |
Consommation d’énergie électrique estimée en kWh (kWh) à l’aide du modèle de consommation électrique. Inclus si vehicleEngineType est défini sur électrique et constantSpeedConsumptionInkWhPerHundredkm est spécifié. La valeur de batteryConsumptionInkWh inclut l’énergie électrique récupérée et peut donc être négative (ce qui indique l’acquisition d’énergie). Si maxChargeInkWh et currentChargeInkWh sont spécifiés, la récupération est limitée pour s’assurer que le niveau de charge de la batterie ne dépasse jamais maxChargeInkWh. Si ni maxChargeInkWh ni currentChargeInkWh ne sont spécifiés, la récupération non contrainte est supposée dans le calcul de la consommation. |
departureTime |
string |
Heure de départ estimée pour l’itinéraire ou la jambe. L’heure est au format UTC. |
fuelConsumptionInLiters |
number |
Consommation estimée de carburant en litres à l’aide du modèle de consommation de combustion. Inclus si vehicleEngineType est défini sur combustion et constantSpeedConsumptionInLitersPerHundredkm est spécifié. La valeur est non négative. |
historicTrafficTravelTimeInSeconds |
integer |
Durée de déplacement estimée calculée à l’aide de données de trafic historique dépendantes du temps. Inclus uniquement si computeHotelTimeFor = tout est utilisé dans la requête. |
lengthInMeters |
integer |
Length In Meters, propriété |
liveTrafficIncidentsTravelTimeInSeconds |
integer |
Temps de voyage estimé calculé à l’aide de données de vitesse en temps réel. Inclus uniquement si computeHotelTimeFor = tout est utilisé dans la requête. |
noTrafficTravelTimeInSeconds |
integer |
Estimation du temps de trajet calculé comme s’il n’y a pas de retards sur l’itinéraire en raison de conditions de circulation (par exemple, congestion). Inclus uniquement si computeHotelTimeFor = tout est utilisé dans la requête. |
trafficDelayInSeconds |
integer |
Délai estimé en secondes provoqué par les incidents en temps réel en fonction des informations de trafic. Pour les itinéraires prévus avec l’heure de départ à l’avenir, les retards sont toujours 0. Pour retourner des temps de voyage supplémentaires à l’aide de différents types d’informations de trafic, le paramètre computeTravelTimeFor=all doit être ajouté. |
travelTimeInSeconds |
integer |
Durée de voyage estimée en secondes qui inclut le délai en raison du trafic en temps réel. Notez que même lorsque traffic=false travelTimeInSeconds inclut toujours le délai en raison du trafic. Si DepartAt est à l’avenir, le temps de trajet est calculé à l’aide de données de trafic historique dépendantes du temps. |
RouteMatrix
Objet de résultat de matrice
Nom | Type | Description |
---|---|---|
response |
Objet réponse de la cellule active dans la matrice d’entrée. |
|
statusCode |
integer |
Propriété StatusCode pour la cellule active dans la matrice d’entrée. |
RouteMatrixResult
Cet objet est retourné à partir d’un appel de matrice de routage réussi. Par exemple, si 2 origines et 3 destinations sont fournies, il y a 2 tableaux avec 3 éléments dans chacun d’eux. Le contenu de chaque élément dépend des options fournies dans la requête.
Nom | Type | Description |
---|---|---|
formatVersion |
string |
Format Version, propriété |
matrix |
Résultats sous la forme d’un tableau 2 dimensions de résumés d’itinéraires. |
|
summary |
Objet Summary |
RouteMatrixResultResponse
Objet réponse de la cellule active dans la matrice d’entrée.
Nom | Type | Description |
---|---|---|
routeSummary |
Objet de synthèse pour la section route. |
RouteMatrixSummary
Objet Summary
Nom | Type | Description |
---|---|---|
successfulRoutes |
integer |
Nombre d’itinéraires réussis dans la réponse. |
totalRoutes |
integer |
Nombre total d’itinéraires demandés. Nombre de cellules dans la matrice d’entrée. |