Partager via


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 :

  1. Le client envoie une requête GET de matrice de routage à Azure Maps

  2. 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.

  3. 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}
  1. 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

RouteMatrixResult

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

ErrorResponse

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.

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
ErrorAdditionalInfo

Informations supplémentaires sur l’erreur de gestion des ressources.

ErrorDetail

Détail de l’erreur.

ErrorResponse

Réponse d’erreur

RouteLegSummary

Objet de synthèse pour la section route.

RouteMatrix

Objet de résultat de matrice

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.

RouteMatrixResultResponse

Objet réponse de la cellule active dans la matrice d’entrée.

RouteMatrixSummary

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

ErrorAdditionalInfo[]

Informations supplémentaires sur l’erreur.

code

string

Code d’erreur.

details

ErrorDetail[]

Détails de l’erreur.

message

string

Message d’erreur.

target

string

Cible d’erreur.

ErrorResponse

Réponse d’erreur

Nom Type Description
error

ErrorDetail

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

RouteMatrixResultResponse

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

RouteMatrix[]

Résultats sous la forme d’un tableau 2 dimensions de résumés d’itinéraires.

summary

RouteMatrixSummary

Objet Summary

RouteMatrixResultResponse

Objet réponse de la cellule active dans la matrice d’entrée.

Nom Type Description
routeSummary

RouteLegSummary

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.