Compartir a través de


Route - Post Snap To Roads

Snap to Roads API acepta datos de punto GPS, representados como coordenadas de longitud y latitud, y genera puntos que se alinean con las carreteras existentes en un mapa. Este proceso, conocido como "acoplamiento a carreteras", genera una serie de objetos que trazan un trazado siguiendo estrechamente la red de carreteras. Los datos resultantes incluyen nombres de carretera y sus respectivos límites de velocidad, pertinentes para los segmentos recorridos.

Además, snap to roads API ofrece una característica de interpolación, que refina los puntos GPS para crear una ruta más suave que se adhiere a la geometría de la carretera. Esta funcionalidad es especialmente beneficiosa para el seguimiento de recursos y mejorar la visualización de datos en las aplicaciones de asignación.

Important

Los puntos GPS deben estar a menos de 6 kilómetros entre sí.

Para obtener información sobre la disponibilidad de enrutamiento en países o regiones, consulte cobertura de enrutamiento de Azure Maps.

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

Parámetros de identificador URI

Nombre En Requerido Tipo Description
api-version
query True

string

Número de versión de la API de Azure Maps.

Encabezado de la solicitud

Media Types: "application/geo+json"

Nombre Requerido Tipo Description
x-ms-client-id

string

Indica la cuenta destinada a su uso con el modelo de seguridad de identificador de Microsoft Entra. Este identificador único para la cuenta de Azure Maps se puede obtener de la API de cuenta del plano de administración de Azure Maps. Para obtener más información sobre el uso de la seguridad de ID de Microsoft Entra en Azure Maps, consulte Administración de la autenticación en Azure Maps.

Accept-Language

string

Idioma en el que se deben devolver los resultados de enrutamiento.

Para más información, consulte compatibilidad con la localización de en Azure Maps.

Cuerpo de la solicitud

Media Types: "application/geo+json"

Nombre Requerido Tipo Description
features True

InputSnapToRoadsFeaturesItem[]

Un conjunto de puntos que se ajustarán a la red de carreteras. Puede tener un mínimo de 2 puntos y un máximo de 5000 puntos y los dos puntos consecutivos deben estar dentro de los 6 kilómetros entre sí y una distancia total por carretera de hasta 100 kilómetros. Consulte RFC 7946 para obtener detalles sobre el formato GeoJSON.

Note: la API no devolverá un objeto de punto en la respuesta del punto GPS que no se puede ajustar a una red de carreteras.

type True

FeatureTypeEnum

Especifica el tipo de GeoJSON. El único tipo de objeto admitido es FeatureCollection. Para obtener más información, consulte RFC 7946.

includeSpeedLimit

boolean

Especifica si se debe incluir información de límite de velocidad para los puntos acoplados en la respuesta. La unidad está en kilómetros por hora.

interpolate

boolean

Especifica si se devuelven puntos adicionales entre los puntos acoplados para completar la ruta completa que sigue suavemente la geometría de la carretera.

Los puntos interpolados tendrán isInterpolate:true en la respuesta que se puede usar para identificar los puntos acoplados de los puntos interpolados.

travelMode

SnapToRoadsTravelModeEnum

Especifica el perfil de enrutamiento para ajustar los puntos. Si no se especifica, el modo predeterminado es "conducción", que optimiza los puntos acoplados para las rutas de conducción.

Respuestas

Nombre Tipo Description
200 OK

SnapToRoadsResponse

OK

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

Other Status Codes

MapsErrorResponse

Se ha producido un error inesperado.

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

Encabezados

x-ms-error-code: string

Seguridad

AADToken

Estos son los flujos de Microsoft Entra OAuth 2.0. Cuando se empareja con acceso basado en rol de Azure control, se puede usar para controlar el acceso a las API REST de Azure Maps. Los controles de acceso basados en roles de Azure se usan para designar el acceso a una o varias cuentas de recursos o subrecursos de Azure Maps. Se puede conceder acceso a cualquier usuario, grupo o entidad de servicio a través de un rol integrado o de un rol personalizado compuesto por uno o varios permisos para las API REST de Azure Maps.

Para implementar escenarios, se recomienda ver los conceptos de autenticación. En resumen, esta definición de seguridad proporciona una solución para modelar aplicaciones a través de objetos capaces de controlar el acceso en determinadas API y ámbitos.

Note

  • Esta definición de seguridad requiere el uso del encabezado para indicar a qué recurso de x-ms-client-id Azure Maps solicita acceso la aplicación. Esto se puede adquirir desde la API de administración de Maps.
  • El Authorization URL es específico de la instancia de nube pública de Azure. Las nubes soberanas tienen direcciones URL de autorización únicas y configuraciones de id. de Microsoft Entra.
  • El control de acceso basado en rol de Azure se configura desde el plano de administración de Azure a través de Azure Portal, PowerShell, la CLI, los SDK de Azure o las API REST.
  • El uso de SDK web de Azure Maps permite la configuración basada en la configuración de una aplicación para varios casos de uso.
  • Para obtener más información sobre la plataforma de identidad de Microsoft, consulte introducción a la plataforma de identidad de Microsoft.

Tipo: oauth2
Flujo: implicit
Dirección URL de autorización: https://login.microsoftonline.com/common/oauth2/authorize

Ámbitos

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

subscription-key

Se trata de una clave compartida que se aprovisiona al crear una recurso de Azure Maps a través del plano de administración de Azure a través de Azure Portal, PowerShell, CLI, SDK de Azure o API REST.

Con esta clave, cualquier aplicación está autorizada para acceder a todas las API REST. En otras palabras, estos se pueden tratar actualmente como claves maestras para la cuenta para la que se emiten.

Para las aplicaciones expuestas públicamente, nuestra recomendación es usar el acceso de servidor a servidor de las API REST de Azure Maps donde esta clave se puede almacenar de forma segura.

Tipo: apiKey
En: header

SAS Token

Se crea un token de firma de acceso compartido a partir de la operación List SAS en el recurso de Azure Maps a través del plano de administración de Azure a través de Azure Portal, PowerShell, CLI, SDK de Azure o API REST.

Con este token, cualquier aplicación tiene autorización para acceder a los controles de acceso basados en rol de Azure y el control específico a la expiración, la tasa y las regiones de uso para el token determinado. Es decir, el token de SAS se puede usar para permitir que las aplicaciones controle el acceso de forma más segura que la clave compartida.

En el caso de las aplicaciones expuestas públicamente, nuestra recomendación es configurar una lista específica de orígenes permitidos en el recurso de cuenta de mapa de limitar el abuso de representación y renovar periódicamente el token de SAS.

Tipo: apiKey
En: header

Ejemplos

Successfully retrieve snap to roads points with additional parameters in the body

Solicitud de ejemplo

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

Respuesta de muestra

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

Definiciones

Nombre Description
FeaturesItemTypeEnum

Especifica el tipo de GeoJSON. El único tipo de objeto admitido es Feature. Para obtener más información, consulte RFC 7946.

FeatureTypeEnum

Especifica el tipo de GeoJSON. El único tipo de objeto admitido es FeatureCollection. Para obtener más información, consulte RFC 7946.

GeoJsonPoint

Un tipo de geometría GeoJSON Point válido. Consulte RFC 7946 para obtener más información.

InputSnapToRoadsFeaturesItem

Especifica el ajuste de entrada a los puntos de carretera. GeoJSON objeto de característica y propiedades adicionales. Consulte RFC 7946 para obtener más detalles.

MapsErrorDetail

Detalle del error.

MapsErrorResponse

Respuesta de error común para las API de Azure Maps para devolver los detalles de error de las operaciones con errores.

MapsInnerError

Objeto que contiene información más específica que el objeto actual sobre el error.

PointGeometry

El punto de origen pasado como un objeto Geometry válido GeoJSON, desde el que se debe calcular el polígono de intervalo. Consulte RFC 7946 para obtener más información.

Note: la API ajustará el punto de origen solicitado a la red de carreteras más cercana y la usará para el cálculo del intervalo. Se devolverá como punto de center en la respuesta.

SnapToRoadFeaturesItem

Objeto de característica GeoJSON que contiene el objeto Geometry y propiedades adicionales de la ruta.

SnapToRoadsFeatureProperties

Ajustar a las propiedades De carreteras.

SnapToRoadsRequest

Este objeto es el cuerpo de la solicitud.

SnapToRoadsResponse

Este objeto se devuelve de una llamada correcta.

SnapToRoadsTravelModeEnum

Especifica el perfil de enrutamiento para ajustar los puntos. Si no se especifica, el modo predeterminado es "conducción", que optimiza los puntos acoplados para las rutas de conducción.

FeaturesItemTypeEnum

Especifica el tipo de GeoJSON. El único tipo de objeto admitido es Feature. Para obtener más información, consulte RFC 7946.

Valor Description
Feature

Especifica el tipo de objeto feature de GeoJSON.

FeatureTypeEnum

Especifica el tipo de GeoJSON. El único tipo de objeto admitido es FeatureCollection. Para obtener más información, consulte RFC 7946.

Valor Description
FeatureCollection

Especifica el tipo de objeto GeoJSONFeatureCollection.

GeoJsonPoint

Un tipo de geometría GeoJSON Point válido. Consulte RFC 7946 para obtener más información.

Nombre Tipo Description
coordinates

number[] (double)

Un Position es una matriz de números con dos o más elementos. Los dos primeros elementos son longitud y latitud, precisamente en ese orden. altitud/elevación es un tercer elemento opcional. Consulte RFC 7946 para obtener más información.

type string:

Point

Especifica el tipo de GeoJSON. Debe ser uno de los nueve tipos de objeto GeoJSON válidos: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection, Feature y FeatureCollection.

InputSnapToRoadsFeaturesItem

Especifica el ajuste de entrada a los puntos de carretera. GeoJSON objeto de característica y propiedades adicionales. Consulte RFC 7946 para obtener más detalles.

Nombre Tipo Description
geometry GeoJsonPoint:

PointGeometry

Un tipo de geometría GeoJSON Point válido. Consulte RFC 7946 para obtener más información.

properties

object

El objeto properties es necesario en un GeoJSON válido, pero puede estar vacío, ya que los metadatos no se usan para ajustar a carretera.

type

FeaturesItemTypeEnum

Especifica el tipo de GeoJSON. El único tipo de objeto admitido es Feature. Para obtener más información, consulte RFC 7946.

MapsErrorDetail

Detalle del error.

Nombre Tipo Description
code

string

Uno de un conjunto definido por el servidor de códigos de error.

details

MapsErrorDetail[]

Matriz de detalles sobre errores específicos que llevaron a este error notificado.

innererror

MapsInnerError

Objeto que contiene información más específica que el objeto actual sobre el error.

message

string

Representación legible del error.

target

string

Destino del error.

MapsErrorResponse

Respuesta de error común para las API de Azure Maps para devolver los detalles de error de las operaciones con errores.

Nombre Tipo Description
error

MapsErrorDetail

Detalle del error.

MapsInnerError

Objeto que contiene información más específica que el objeto actual sobre el error.

Nombre Tipo Description
code

string

Código de error.

innererror

MapsInnerError

Objeto que contiene información más específica que el objeto actual sobre el error.

PointGeometry

El punto de origen pasado como un objeto Geometry válido GeoJSON, desde el que se debe calcular el polígono de intervalo. Consulte RFC 7946 para obtener más información.

Note: la API ajustará el punto de origen solicitado a la red de carreteras más cercana y la usará para el cálculo del intervalo. Se devolverá como punto de center en la respuesta.

Nombre Tipo Description
coordinates

number[] (double)

Un Position es una matriz de números con dos o más elementos. Los dos primeros elementos son longitud y latitud, precisamente en ese orden. altitud/elevación es un tercer elemento opcional. Consulte RFC 7946 para obtener más información.

type string:

Point

Especifica el tipo de geometría del objeto geometry GeoJSON. Para obtener más información, consulte RFC 7946.

SnapToRoadFeaturesItem

Objeto de característica GeoJSON que contiene el objeto Geometry y propiedades adicionales de la ruta.

Nombre Tipo Description
bbox

number[] (double)

Un área rectangular en la tierra definida como un objeto de rectángulo delimitador. Los lados de los rectángulos se definen mediante valores de latitud y longitud. Para obtener más información, vea RFC 7946, Sección 5.

Ejemplo: "bbox": [-10.0, -10.0, 10.0, 10.0]

geometry GeoJsonPoint:

PointGeometry

Un tipo de geometría GeoJSON Point válido. Consulte RFC 7946 para obtener más información.

properties

SnapToRoadsFeatureProperties

Ajustar a las propiedades De carreteras.

type

FeaturesItemTypeEnum

Especifica el tipo de GeoJSON. El único tipo de objeto admitido es Feature. Para obtener más información, consulte RFC 7946.

SnapToRoadsFeatureProperties

Ajustar a las propiedades De carreteras.

Nombre Tipo Description
inputIndex

integer (int64)

Identifique el índice correspondiente en la lista original de puntos para cada punto acoplado. Solo los puntos acoplados devolverán índices y se pueden usar para distinguirlos de los puntos interpolados.

isInterpolated

boolean

Identifique si se trata del punto interpolado.

name

string

Nombre de la carretera a la que se ajusta el punto.

speedLimitInKilometersPerHour

number (double)

Límite de velocidad en kilómetros por hora.

SnapToRoadsRequest

Este objeto es el cuerpo de la solicitud.

Nombre Tipo Valor predeterminado Description
features

InputSnapToRoadsFeaturesItem[]

Un conjunto de puntos que se ajustarán a la red de carreteras. Puede tener un mínimo de 2 puntos y un máximo de 5000 puntos y los dos puntos consecutivos deben estar dentro de los 6 kilómetros entre sí y una distancia total por carretera de hasta 100 kilómetros. Consulte RFC 7946 para obtener detalles sobre el formato GeoJSON.

Note: la API no devolverá un objeto de punto en la respuesta del punto GPS que no se puede ajustar a una red de carreteras.

includeSpeedLimit

boolean

False

Especifica si se debe incluir información de límite de velocidad para los puntos acoplados en la respuesta. La unidad está en kilómetros por hora.

interpolate

boolean

False

Especifica si se devuelven puntos adicionales entre los puntos acoplados para completar la ruta completa que sigue suavemente la geometría de la carretera.

Los puntos interpolados tendrán isInterpolate:true en la respuesta que se puede usar para identificar los puntos acoplados de los puntos interpolados.

travelMode

SnapToRoadsTravelModeEnum

driving

Especifica el perfil de enrutamiento para ajustar los puntos. Si no se especifica, el modo predeterminado es "conducción", que optimiza los puntos acoplados para las rutas de conducción.

type

FeatureTypeEnum

Especifica el tipo de GeoJSON. El único tipo de objeto admitido es FeatureCollection. Para obtener más información, consulte RFC 7946.

SnapToRoadsResponse

Este objeto se devuelve de una llamada correcta.

Nombre Tipo Description
features

SnapToRoadFeaturesItem[]

GeoJSON objeto de característica que contiene el objeto Geometry y propiedades adicionales. Consulte RFC 7946, sección 3.2 para obtener más información.

type

FeatureTypeEnum

Especifica el tipo de GeoJSON. El único tipo de objeto admitido es FeatureCollection. Para obtener más información, consulte RFC 7946.

SnapToRoadsTravelModeEnum

Especifica el perfil de enrutamiento para ajustar los puntos. Si no se especifica, el modo predeterminado es "conducción", que optimiza los puntos acoplados para las rutas de conducción.

Valor Description
driving

Los puntos se acoplan a la carretera adecuada para los coches.

truck

Los puntos se ajustan a la carretera adecuada para camiones.