Partager via


Route - Post Snap To Roads

L’API Snap to Roads accepte les données de point GPS, représentées sous forme de coordonnées de longitude et de latitude, et génère des points qui s’alignent sur les routes existantes sur une carte. Ce processus, appelé « alignement sur les routes », produit une série d’objets qui tracent un chemin en suivant étroitement le réseau routier. Les données obtenues incluent les noms de routes et leurs limites de vitesse respectives, pertinentes pour les segments parcourus.

De plus, l’API Snap to Roads offre une fonctionnalité d’interpolation, qui affine les points GPS pour créer un itinéraire plus lisse qui respecte la géométrie de la route. Cette fonctionnalité est particulièrement bénéfique pour le suivi des ressources et l’amélioration de la visualisation des données dans les applications de mappage.

Important

Les points GPS doivent se trouver à moins de 6 kilomètres les uns des autres.

Pour plus d’informations sur la disponibilité du routage dans les pays/régions, consultez couverture du routage Azure Maps.

POST https://atlas.microsoft.com/route/snapToRoads?api-version=2025-01-01

Paramètres URI

Nom Dans Obligatoire Type Description
api-version
query True

string

Numéro de version de l’API Azure Maps.

En-tête de la demande

Media Types: "application/geo+json"

Nom Obligatoire Type Description
x-ms-client-id

string

Indique le compte destiné à être utilisé avec le modèle de sécurité Microsoft Entra ID. Cet ID unique pour le compte Azure Maps peut être obtenu à partir de l’API de compte du plan de gestion Azure Maps. Pour plus d’informations sur l’utilisation de la sécurité Microsoft Entra ID dans Azure Maps, consultez Gérer l’authentification dans Azure Maps.

Accept-Language

string

Langue dans laquelle les résultats de routage doivent être retournés.

Pour plus d’informations, consultez prise en charge de la localisation dans Azure Maps.

Corps de la demande

Media Types: "application/geo+json"

Nom Obligatoire Type Description
features True

InputSnapToRoadsFeaturesItem[]

Ensemble de points à aligner sur le réseau routier. Vous pouvez avoir un minimum de 2 points et un maximum de 5000 points et les deux points consécutifs doivent être à moins de 6 kilomètres l’un de l’autre et une distance totale sur la route allant jusqu’à 100 kilomètres. Reportez-vous à la RFC 7946 pour plus de détails sur le format GeoJSON.

Note: l’API ne retourne pas d’objet point dans la réponse du point GPS qui ne peut pas être aligné sur un réseau routier.

type True

FeatureTypeEnum

Spécifie le type GeoJSON. Le seul type d’objet pris en charge est FeatureCollection. Pour plus d’informations, consultez la RFC 7946.

includeSpeedLimit

boolean

Spécifie s’il faut inclure des informations de limite de vitesse pour les points alignés dans la réponse. L’unité est en kilomètres par heure.

interpolate

boolean

Spécifie s’il faut retourner des points supplémentaires entre les points alignés pour terminer le chemin d’itinéraire complet qui suit en douceur la géométrie routière.

Les points interpolés auront isInterpolate:true dans la réponse qui peut être utilisée pour identifier les points alignés à partir de points interpolés.

travelMode

SnapToRoadsTravelModeEnum

Spécifie le profil de routage pour l’alignement des points. S’il n’est pas spécifié, le mode par défaut est « conduite », ce qui optimise les points alignés pour les itinéraires de conduite.

Réponses

Nom Type Description
200 OK

SnapToRoadsResponse

OK

Media Types: "application/geo+json", "application/json"

Other Status Codes

MapsErrorResponse

Une erreur inattendue s’est produite.

Media Types: "application/geo+json", "application/json"

En-têtes

x-ms-error-code: string

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.

Note

  • 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 lors de la création d’une ressource Azure Maps via le plan de gestion Azure via le portail Azure, PowerShell, CLI, kits SDK Azure ou API REST.

Avec cette clé, toute application est autorisée à accéder à toutes les API REST. En d’autres termes, ces clés peuvent être traitées comme des clés principales pour le compte pour lequel elles sont émises.

Pour les applications exposées publiquement, nous vous recommandons d’utiliser l’accès serveur à serveur des API REST Azure Maps où cette clé peut être stockée en toute sécurité.

Type: apiKey
Dans: header

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 snap to roads points with additional parameters in the body

Exemple de requête

POST https://atlas.microsoft.com/route/snapToRoads?api-version=2025-01-01

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "coordinates": [
          -122.336729,
          47.590868
        ],
        "type": "Point"
      },
      "properties": {}
    },
    {
      "type": "Feature",
      "geometry": {
        "coordinates": [
          -122.336042,
          47.601604
        ],
        "type": "Point"
      },
      "properties": {}
    }
  ],
  "includeSpeedLimit": true,
  "travelMode": "driving"
}

Exemple de réponse

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "coordinates": [
          -122.336769,
          47.590885
        ],
        "type": "Point"
      },
      "properties": {
        "inputIndex": 0,
        "isInterpolated": false,
        "name": "State Rte-99 N",
        "speedLimitInKilometersPerHour": 80
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "coordinates": [
          -122.336008,
          47.601609
        ],
        "type": "Point"
      },
      "properties": {
        "inputIndex": 1,
        "isInterpolated": false,
        "name": "State Rte-99 N",
        "speedLimitInKilometersPerHour": 80
      }
    }
  ]
}

Définitions

Nom Description
FeaturesItemTypeEnum

Spécifie le type GeoJSON. Le seul type d’objet pris en charge est Feature. Pour plus d’informations, consultez la RFC 7946.

FeatureTypeEnum

Spécifie le type GeoJSON. Le seul type d’objet pris en charge est FeatureCollection. Pour plus d’informations, consultez la RFC 7946.

GeoJsonPoint

Type de géométrie GeoJSON Point valide. Pour plus d’informations, reportez-vous à RFC 7946.

InputSnapToRoadsFeaturesItem

Spécifie le composant logiciel enfichable d’entrée aux points de routes. GeoJSON objet de fonctionnalité et des propriétés supplémentaires. Reportez-vous à la RFC 7946 pour plus de détails.

MapsErrorDetail

Détail de l’erreur.

MapsErrorResponse

Réponse d’erreur courante pour les API Azure Maps pour retourner les détails d’erreur pour les opérations ayant échoué.

MapsInnerError

Objet contenant des informations plus spécifiques que l’objet actuel sur l’erreur.

PointGeometry

Point d’origine passé en tant qu’objet Geometry GeoJSON valide, à partir duquel le polygone de plage doit être calculé. Pour plus d’informations, reportez-vous à RFC 7946.

Note: l’API aligne le point d’origine demandé sur le réseau routier le plus proche et l’utilise pour le calcul de plage. Elle est retournée en tant que point de center dans la réponse.

SnapToRoadFeaturesItem

Objet de fonctionnalité GeoJSON qui contient l’objet Geometry et les propriétés supplémentaires de l’itinéraire.

SnapToRoadsFeatureProperties

Accrochage aux propriétés Routes.

SnapToRoadsRequest

Cet objet est le corps de la requête.

SnapToRoadsResponse

Cet objet est retourné à partir d’un appel réussi.

SnapToRoadsTravelModeEnum

Spécifie le profil de routage pour l’alignement des points. S’il n’est pas spécifié, le mode par défaut est « conduite », ce qui optimise les points alignés pour les itinéraires de conduite.

FeaturesItemTypeEnum

Spécifie le type GeoJSON. Le seul type d’objet pris en charge est Feature. Pour plus d’informations, consultez la RFC 7946.

Valeur Description
Feature

Spécifie le type d’objet Feature GeoJSON.

FeatureTypeEnum

Spécifie le type GeoJSON. Le seul type d’objet pris en charge est FeatureCollection. Pour plus d’informations, consultez la RFC 7946.

Valeur Description
FeatureCollection

Spécifie le type d’objet GeoJSONFeatureCollection.

GeoJsonPoint

Type de géométrie GeoJSON Point valide. Pour plus d’informations, reportez-vous à RFC 7946.

Nom Type Description
coordinates

number[] (double)

Un Position est un tableau de nombres avec deux éléments ou plus. Les deux premiers éléments sont longitude et latitude, précisément dans cet ordre. altitude/élévation est un troisième élément facultatif. Pour plus d’informations, reportez-vous à RFC 7946.

type string:

Point

Spécifie le type GeoJSON. Doit être l’un des neuf types d’objets GeoJSON valides : Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature et FeatureCollection.

InputSnapToRoadsFeaturesItem

Spécifie le composant logiciel enfichable d’entrée aux points de routes. GeoJSON objet de fonctionnalité et des propriétés supplémentaires. Reportez-vous à la RFC 7946 pour plus de détails.

Nom Type Description
geometry GeoJsonPoint:

PointGeometry

Type de géométrie GeoJSON Point valide. Pour plus d’informations, reportez-vous à RFC 7946.

properties

object

L’objet de propriétés est requis dans un GeoJSON valide, mais il peut être vide, car les métadonnées ne sont pas utilisées pour l’alignement sur la route.

type

FeaturesItemTypeEnum

Spécifie le type GeoJSON. Le seul type d’objet pris en charge est Feature. Pour plus d’informations, consultez la RFC 7946.

MapsErrorDetail

Détail de l’erreur.

Nom Type Description
code

string

Un ensemble de codes d’erreur définis par le serveur.

details

MapsErrorDetail[]

Tableau de détails sur des erreurs spécifiques qui ont conduit à cette erreur signalée.

innererror

MapsInnerError

Objet contenant des informations plus spécifiques que l’objet actuel sur l’erreur.

message

string

Représentation lisible par l’homme de l’erreur.

target

string

Cible de l’erreur.

MapsErrorResponse

Réponse d’erreur courante pour les API Azure Maps pour retourner les détails d’erreur pour les opérations ayant échoué.

Nom Type Description
error

MapsErrorDetail

Détail de l’erreur.

MapsInnerError

Objet contenant des informations plus spécifiques que l’objet actuel sur l’erreur.

Nom Type Description
code

string

Code d’erreur.

innererror

MapsInnerError

Objet contenant des informations plus spécifiques que l’objet actuel sur l’erreur.

PointGeometry

Point d’origine passé en tant qu’objet Geometry GeoJSON valide, à partir duquel le polygone de plage doit être calculé. Pour plus d’informations, reportez-vous à RFC 7946.

Note: l’API aligne le point d’origine demandé sur le réseau routier le plus proche et l’utilise pour le calcul de plage. Elle est retournée en tant que point de center dans la réponse.

Nom Type Description
coordinates

number[] (double)

Un Position est un tableau de nombres avec deux éléments ou plus. Les deux premiers éléments sont longitude et latitude, précisément dans cet ordre. altitude/élévation est un troisième élément facultatif. Pour plus d’informations, reportez-vous à RFC 7946.

type string:

Point

Spécifie le type de géométrie de l’objet geometry GeoJSON. Pour plus d’informations, consultez la RFC 7946.

SnapToRoadFeaturesItem

Objet de fonctionnalité GeoJSON qui contient l’objet Geometry et les propriétés supplémentaires de l’itinéraire.

Nom Type Description
bbox

number[] (double)

Une zone rectangulaire sur la terre définie comme un objet de cadre englobant. Les côtés des rectangles sont définis par les valeurs de latitude et de longitude. Pour plus d’informations, consultez RFC 7946, section 5.

Exemple : « bbox » : [-10.0, -10.0, 10.0, 10.0]

geometry GeoJsonPoint:

PointGeometry

Type de géométrie GeoJSON Point valide. Pour plus d’informations, reportez-vous à RFC 7946.

properties

SnapToRoadsFeatureProperties

Accrochage aux propriétés Routes.

type

FeaturesItemTypeEnum

Spécifie le type GeoJSON. Le seul type d’objet pris en charge est Feature. Pour plus d’informations, consultez la RFC 7946.

SnapToRoadsFeatureProperties

Accrochage aux propriétés Routes.

Nom Type Description
inputIndex

integer (int64)

Identifiez l’index correspondant dans la liste d’origine des points pour chaque point aligné. Seuls les points alignés retournent des index et peuvent être utilisés pour les distinguer des points interpolés.

isInterpolated

boolean

Identifiez s’il s’agit du point interpolé.

name

string

Nom de la route où le point est aligné.

speedLimitInKilometersPerHour

number (double)

Limite de vitesse en kilomètres par heure.

SnapToRoadsRequest

Cet objet est le corps de la requête.

Nom Type Valeur par défaut Description
features

InputSnapToRoadsFeaturesItem[]

Ensemble de points à aligner sur le réseau routier. Vous pouvez avoir un minimum de 2 points et un maximum de 5000 points et les deux points consécutifs doivent être à moins de 6 kilomètres l’un de l’autre et une distance totale sur la route allant jusqu’à 100 kilomètres. Reportez-vous à la RFC 7946 pour plus de détails sur le format GeoJSON.

Note: l’API ne retourne pas d’objet point dans la réponse du point GPS qui ne peut pas être aligné sur un réseau routier.

includeSpeedLimit

boolean

False

Spécifie s’il faut inclure des informations de limite de vitesse pour les points alignés dans la réponse. L’unité est en kilomètres par heure.

interpolate

boolean

False

Spécifie s’il faut retourner des points supplémentaires entre les points alignés pour terminer le chemin d’itinéraire complet qui suit en douceur la géométrie routière.

Les points interpolés auront isInterpolate:true dans la réponse qui peut être utilisée pour identifier les points alignés à partir de points interpolés.

travelMode

SnapToRoadsTravelModeEnum

driving

Spécifie le profil de routage pour l’alignement des points. S’il n’est pas spécifié, le mode par défaut est « conduite », ce qui optimise les points alignés pour les itinéraires de conduite.

type

FeatureTypeEnum

Spécifie le type GeoJSON. Le seul type d’objet pris en charge est FeatureCollection. Pour plus d’informations, consultez la RFC 7946.

SnapToRoadsResponse

Cet objet est retourné à partir d’un appel réussi.

Nom Type Description
features

SnapToRoadFeaturesItem[]

GeoJSON objet de fonctionnalité qui contient un objet Geometry et des propriétés supplémentaires. Pour plus d’informations, reportez-vous à RFC 7946, section 3.2.

type

FeatureTypeEnum

Spécifie le type GeoJSON. Le seul type d’objet pris en charge est FeatureCollection. Pour plus d’informations, consultez la RFC 7946.

SnapToRoadsTravelModeEnum

Spécifie le profil de routage pour l’alignement des points. S’il n’est pas spécifié, le mode par défaut est « conduite », ce qui optimise les points alignés pour les itinéraires de conduite.

Valeur Description
driving

Les points sont alignés sur la route adaptée aux voitures.

truck

Les aiguillages sont accrochés à la route adaptée aux camions.