Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se explica cómo migrar Bing Maps Calculate a Route API a Route Directions API de Azure Maps. Route Directions de Azure Maps es una API que devuelve la ruta ideal entre un origen y un destino para automóviles (conducción), camiones comerciales y rutas a pie. La ruta tiene en cuenta factores como el tráfico actual y las velocidades típicas de la carretera en el día solicitado de la semana y la hora del día.
Prerrequisitos
- Una cuenta de Azure
- Una cuenta de Azure Maps
- Una clave de suscripción u otra forma de Autenticación con Azure Maps
Diferencias destacadas
- Bing Maps Calculate a Route API admite una solicitud GET. Route Directions API de Azure Maps admite una solicitud POST.
- Bing Maps Calculate a Route API admite formato de respuesta XML y JSON. Route Directions API de Azure Maps admite el formato GeoJSON .
- Bing Maps Calculate a Route API requiere que los puntos de referencia y viaWaypoints estén en formato de latitud y longitud, mientras que Azure Maps requiere que estén en formato de longitud y latitud, tal como se define en el formato GeoJSON.
- La API Calculate a Route de Mapas de Bing admite puntos de referencia y viaWaypoints como puntos, puntos de referencia o direcciones. Route Directions API de Azure Maps solo admite puntos. Para convertir un punto de referencia o una dirección a un punto, puede usar la API Get Geocoding de Azure Maps.
- Bing Maps Calculate a Route API admite el enrutamiento de tránsito. La API de Indicaciones de Ruta de Azure Maps no funciona.
- A diferencia de Bing Maps for Enterprise, Azure Maps es un servicio global que admite la especificación de un ámbito geográfico, lo que permite límites de residencia de datos a las áreas geográficas (geo) europeas (UE) o Estados Unidos (EE. UU.). Todas las solicitudes (incluidos los datos de entrada) se procesan exclusivamente en el área geográfica especificada. Para obtener más información, consulte ámbito geográfico.
Seguridad y autenticación
Mapas de Bing para la empresa solo admite la autenticación de clave de API. Azure Maps admite varias formas de autenticar llamadas API, como una clave de suscripción, Microsoft Entra ID y token de firma de acceso compartido (SAS). Para más información sobre la seguridad y la autenticación en Azure Maps, consulte Autenticación con Azure Maps y la sección Seguridad de la documentación de Route Directions de Azure Maps.
Parámetros de solicitud
En la tabla siguiente se enumeran los parámetros de solicitud de Bing Maps Calculate a Route y el equivalente de Azure Maps:
Parámetro de solicitud de Bing Maps | Alias del parámetro de solicitud de Bing Maps | Parámetro de solicitud de Azure Maps | Obligatorio en Azure Maps | Tipo de datos de Azure Maps | Descripción |
---|---|---|---|---|---|
evitar | evitar | Falso | cuerda | Estos son los avoid equivalentes de la API Calculate a Route de Bing Maps en la API Route Directions de Azure Maps, donde se admiten: peajes: autopistas de peaje ferry: ferries borderCrossings: borderCrossings minimizeDrivingSideTurn: no compatible minimizeAgainstDrivingSideTurn: no compatible minimizeUTurn: no es compatible minimizeTolls: no es compatible autopistas: limitedAccessHighways minimizarAutopistas: no está soportado |
|
dateTime | Despegue | departAt | Falso | cuerda | Route Directions API de Azure Maps también admite el parámetro arriveAt que se usa para especificar la fecha y hora deseadas de llegada. No se puede usar con departAt. |
distanceBeforeFirstTurn | dbft | No está soportado | No compatible | No compatible | |
distanceUnit | Du | No es necesario | No es necesario | No es necesario | En Route Directions API de Azure Maps, la unidad de distancia es metros. |
encabezado | disco duro | encabezado | Falso | entero | |
itineraryGroups | Ig | No está soportado | No compatible | ||
maxSolutions | maxSolns | maxRouteCount | Falso | Entero | |
optimizar | optmz | optimizeRoute | Falso | Cadena | Estos son los equivalentes entre la API de cálculo de rutas de Bing Maps y la API de optimización de rutas de Azure Maps: tiempo: el más rápido sin tráfico timeWithTraffic: fastestWithTraffic Route Directions API de Azure Maps también admite la optimización de rutas por distancia para devolver la ruta más corta especificando el valor de entrada "optimizeRoute". |
optimizar puntos de ruta | optWp | optimizeWaypointOrder | Falso | booleano | |
routeAttributes | Ra | routeOutputOptions | Falso | cuerda | Estos son los routeOutputOptions equivalentes de la API Calculate a Route de Bing Maps en la API Route Directions de Azure Maps: routePath: routePath regionAdvisorSummary: regionClientSummary Route Directions API de Azure Maps admite más valores, como itinerario y routeSummary. Consulte RouteOutputOption para obtener más información. |
routePathOutput | Rpo | routeOutputOptions | Falso | cuerda | Route Directions API de Azure Maps admite la devolución de las coordenadas de la geometría del trayecto de la ruta pasando routeOutputOptions=routePath en la solicitud. |
timeType | Tt | No está soportado | No compatible | No compatible | Route Directions API de Azure Maps no admite el enrutamiento de tránsito. |
Tolerancias | Tl | No está soportado | No compatible | No compatible | |
modo de viaje | modo de viaje | Falso | Cadena | Estos son los travelMode equivalentes de la API Calculate a Route de Mapas de Bing en la API Route Directions de Azure Maps: Conducción: conducción Caminar: caminar Tránsito: no compatible Azure Maps admite el "camión" de travelMode adicional para el cálculo de ruta de camiones. |
|
viaWaypoint.n | vwp.n | Características InputWaypointFeaturesItem[] |
Verdadero | Punto GeoJSON | waypoint y viaWaypoint se especifican como características, que es un parámetro obligatorio. Sin embargo, solo waypoint es un pointType obligatorio y la solicitud se puede realizar sin viaWaypoint. En Bing Maps Calculate a Route API, viaWaypoint puede ser un punto, un punto de referencia o una dirección, mientras que, en Route Directions API de Azure Maps, debe ser un punto. Para convertir un punto de referencia o una dirección a un punto, puede usar la API Get Geocoding de Azure Maps. La API de Bing Maps para calcular rutas de camiones requiere que los viaWaypoints estén en formato de latitud/longitud, mientras que Azure Maps requiere que estén en formato de longitud/latitud, tal como se define en el formato GeoJSON. |
waypoint.n | wp.n | características InputWaypointFeaturesItem[] | Verdadero | Punto GeoJSON | En Bing Maps Calculate a Route API, waypoint puede ser un punto, un punto de referencia o una dirección, mientras que, en Route Directions API de Azure Maps, debe ser un punto. Para convertir un punto de referencia o una dirección a un punto, puede usar la API Get Geocoding de Azure Maps. Bing Maps Calculate a Route API requiere que los puntos de acceso estén en formato de latitud y longitud, mientras que Azure Maps requiere que estén en formato de longitud y latitud, tal como se define en el formato GeoJSON. |
Para más información sobre los parámetros de solicitud de Route Directions API de Azure Maps, consulte Parámetros de URI.
Solicitudes de ejemplo
Bing Maps Calcular una ruta solicitud de API:
http://dev.virtualearth.net/REST/V1/Routes/driving?wp.0=47.610173,-122.204171&wp.1=47.612440,-122.204171key={Your-Bing-Maps-Key}
Solicitud POST de la API de Indicaciones de Ruta de Azure Maps:
https://atlas.microsoft.com/route/directions?api-version=2025-01-01&subscription-key={Your-Azure-Maps-Subscription-key}
Incluido en el cuerpo de la solicitud:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"coordinates": [
-122.204171,
47.610173
],
"type": "Point"
},
"properties": {
"pointIndex": 0,
"pointType": "waypoint"
}
},
{
"type": "Feature",
"geometry": {
"coordinates": [
-122.204171,
47.612440
],
"type": "Point"
},
"properties": {
"pointIndex": 1,
"pointType": "Waypoint"
}
}
]
}
Campos de respuesta
En la tabla siguiente se enumeran los campos que pueden aparecer en la respuesta HTTP al ejecutar bing Maps Calculate a Route request (Calcular una solicitud de ruta ) y el equivalente de Azure Maps:
Campo de Bing Maps | Campo de Azure Maps | Descripción |
---|---|---|
actualStart | Objeto de característica puntual | El objeto de característica de punto con type="waypoint" y inputIndex = 0 define la ubicación inicial enrutable. |
actualEnd | Objeto de característica puntual | El objeto de característica de punto con type="waypoint" y inputIndex = last define la ubicación final enrutable. |
alternateVias | rutas alternativas | Bing Maps alternateVias identifica las rutas independientes. En Azure Maps, las rutas alternativas se devuelven como una nueva colección de características en alternativeRoutes. |
compassDegrees | compassDegrees | |
compassDirection | compassDirection | |
descripción | No compatible | |
Detalles | Propiedades | Las propiedades del objeto de característica contienen la información de la maniobra. |
distanceUnit | No aplicable | Route Directions API de Azure Maps devuelve la distancia en metros. |
durationUnit | No aplicable | Route Directions API de Azure Maps devuelve la duración en segundos. |
endPathIndices | gama | Azure Maps devuelve el índice inicial y final cubierto por una parte específica de una ruta como un intervalo. |
endWaypoint | No compatible | En la respuesta de la API de Indicaciones de Rutas de Azure Maps, el waypoint final se puede derivar de type="waypoint" y de inputIndex = último índice. |
formattedText | formattedText | |
Consejos | No compatible | |
hintType | No compatible | |
tipoDeIcono | No compatible | Bing Maps Calculate Route API especifica el tipo de icono para representar el modo de desplazamiento en las aplicaciones de usuario. Por ejemplo, si una ruta de conducción tiene una ruta de ferry parcial, el icono podría usarse para identificar visualmente los diferentes modos de viaje en una ruta. Calculate Route API de Azure Maps no admite iconType, pero el modo de desplazamiento se puede derivar de la propiedad travelMode en la respuesta. |
instrucción | Instrucción | |
isRealTimeTransit | No compatible | |
isVia | viaWaypoint | En la respuesta de la API Route Directions de Azure Maps, via waypoint se devuelve como "type": "ViaWaypoint" |
códigos de ubicación | No compatible | |
identificadorDeUbicación | No compatible | |
punto de maniobra | punto de maniobra | En Azure Maps, usa type=maneuverPoint para objetos de punto donde se requiere realizar una maniobra. En la API Calculate a Route de Mapas de Bing, maneuverPoint está en formato latitud/longitud, mientras que en Azure Maps está en formato de longitud/latitud, tal como se define en el formato GeoJSON. |
tipoDeManiobra | tipoDeManiobra | |
modo | No compatible | |
Nombres | Nombres | |
realTimeTransitDelay | No compatible | |
roadType | roadType | |
routePathIndex | routePathPoint | |
routeSubLegs | subLegs | |
sideOfStreet | sideOfStreet | |
startPathIndices | gama | Azure Maps devuelve el índice inicial y final cubierto por una parte específica de una ruta como un intervalo. |
startWaypoint | No compatible | En la respuesta de la API de Indicaciones de Ruta de Azure Maps, el startWaypoint se puede derivar de type="waypoint" e inputIndex = primer índice. |
towardsRoadName | towardsRoadName | |
trafficCongestion | trafficCongestion | |
trafficDataUsed | trafficDataUsed | |
distancia de viaje | distanciaEnMetros | |
duraciónDelViaje | duraciónEnSegundos | |
travelDurationTraffic | durationTrafficInSeconds | |
modo de viaje | modo de viaje |
Para más información sobre los campos de respuesta de Route Directions API de Azure Maps, consulte Definiciones.
Ejemplos de respuesta
En el ejemplo JSON siguiente se muestra lo que se devuelve en el cuerpo de la respuesta HTTP al ejecutar la solicitud Calcular una ruta de Mapas de Bing:
{
"authenticationResultCode": "ValidCredentials",
"brandLogoUri": "https://dev.virtualearth.net/Branding/logo_powered_by.png",
"copyright": "Copyright © 2024 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.",
"resourceSets": [
{
"estimatedTotal": 1,
"resources": [
{
"__type": "Route:http://schemas.microsoft.com/search/local/ws/rest/v1",
"bbox": [
47.610173,
-122.204193,
47.611674,
-122.203012
],
"id": "v70,h570425388,i0,a0,cen-US,dAAAAAAAAAAA1,y0,s1,m1,o1,t4,wfPMbJhrOR0Cq8j0jEY1ewA2~AF2UnBAtW6QAAADgAQAAAAAA0~MTAybmQgQXZlIE5F0~~~~~~~~v12,wkWEVb2TOR0Cq8j0jEY1ewA2~AF2UnBAdU6QAAADgAQAAgD8A0~MTAzcmQgQXZlIE5F0~~~~~~~~v12,k1,pZ3NpLXBvaQ2-VHJ1ZQ2,pWC1GRC1GTElHSFQ1-Z3NpLXBvaQ2,p-,p-,p-",
"distanceUnit": "Kilometer",
"durationUnit": "Second",
"routeLegs": [
{
"actualEnd": {
"type": "Point",
"coordinates": [
47.611674,
-122.203084
]
},
"actualStart": {
"type": "Point",
"coordinates": [
47.610173,
-122.20414
]
},
"alternateVias": [],
"description": "102nd Ave NE, NE 1st St",
"endTime": "/Date(1713305954789-0700)/",
"itineraryItems": [
{
"compassDirection": "north",
"details": [
{
"compassDegrees": 356,
"endPathIndices": [
1
],
"maneuverType": "DepartStart",
"mode": "Driving",
"names": [
"102nd Ave NE"
],
"roadType": "Street",
"startPathIndices": [
0
]
}
],
"exit": "",
"iconType": "Auto",
"instruction": {
"formattedText": null,
"maneuverType": "DepartStart",
"text": "Head north on 102nd Ave NE toward NE 1st Pl"
},
"isRealTimeTransit": false,
"maneuverPoint": {
"type": "Point",
"coordinates": [
47.610173,
-122.20414
]
},
"realTimeTransitDelay": 0,
"sideOfStreet": "Unknown",
"tollZone": "",
"towardsRoadName": "NE 1st Pl",
"transitTerminus": "",
"travelDistance": 0.114,
"travelDuration": 36,
"travelMode": "Driving"
},
{
"compassDirection": "east",
"details": [
{
"compassDegrees": 89,
"endPathIndices": [
4
],
"maneuverType": "TurnRight",
"mode": "Driving",
"names": [
"NE 1st St"
],
"roadType": "Street",
"startPathIndices": [
1
]
}
],
"exit": "",
"iconType": "Auto",
"instruction": {
"formattedText": null,
"maneuverType": "TurnRight",
"text": "Turn right onto NE 1st St"
},
"isRealTimeTransit": false,
"maneuverPoint": {
"type": "Point",
"coordinates": [
47.611206,
-122.204193
]
},
"realTimeTransitDelay": 0,
"sideOfStreet": "Unknown",
"tollZone": "",
"transitTerminus": "",
"travelDistance": 0.106,
"travelDuration": 22,
"travelMode": "Driving"
},
{
"compassDirection": "northwest",
"details": [
{
"compassDegrees": 302,
"endPathIndices": [
5
],
"maneuverType": "TurnLeft",
"mode": "Driving",
"names": [
"103rd Ave NE"
],
"roadType": "Street",
"startPathIndices": [
4
]
}
],
"exit": "",
"iconType": "Auto",
"instruction": {
"formattedText": null,
"maneuverType": "TurnLeft",
"text": "Turn left onto 103rd Ave NE"
},
"isRealTimeTransit": false,
"maneuverPoint": {
"type": "Point",
"coordinates": [
47.611629,
-122.203012
]
},
"realTimeTransitDelay": 0,
"sideOfStreet": "Unknown",
"tollZone": "",
"transitTerminus": "",
"travelDistance": 0.007,
"travelDuration": 21,
"travelMode": "Driving"
},
{
"compassDirection": "northwest",
"details": [
{
"compassDegrees": 302,
"endPathIndices": [
5
],
"maneuverType": "ArriveFinish",
"mode": "Driving",
"names": [
"103rd Ave NE"
],
"roadType": "Street",
"startPathIndices": [
5
]
}
],
"exit": "",
"hints": [
{
"hintType": "PreviousIntersection",
"text": "The last intersection before your destination is NE 2nd St"
}
],
"iconType": "Auto",
"instruction": {
"formattedText": null,
"maneuverType": "ArriveFinish",
"text": "Arrive at 103rd Ave NE"
},
"isRealTimeTransit": false,
"maneuverPoint": {
"type": "Point",
"coordinates": [
47.611674,
-122.203084
]
},
"realTimeTransitDelay": 0,
"sideOfStreet": "Unknown",
"tollZone": "",
"transitTerminus": "",
"travelDistance": 0,
"travelDuration": 0,
"travelMode": "Driving"
}
],
"routeRegion": "WWMX",
"routeSubLegs": [
{
"endWaypoint": {
"type": "Point",
"coordinates": [
47.611674,
-122.203084
],
"description": "103rd Ave NE",
"isVia": false,
"locationIdentifier": "0|93|148|156|16|29|83|164|0|0|0|224|1|0|0|128|63|0|47.611674,-122.203084",
"routePathIndex": 5
},
"startWaypoint": {
"type": "Point",
"coordinates": [
47.610173,
-122.20414
],
"description": "102nd Ave NE",
"isVia": false,
"locationIdentifier": "0|93|148|156|16|45|91|164|0|0|0|224|1|0|0|0|0|0|47.610173,-122.20414",
"routePathIndex": 0
},
"travelDistance": 0.227,
"travelDuration": 80
}
],
"startTime": "/Date(1713305874789-0700)/",
"travelDistance": 0.227,
"travelDuration": 80,
"travelMode": "Driving"
}
],
"trafficCongestion": "None",
"trafficDataUsed": "None",
"travelDistance": 0.227,
"travelDuration": 80,
"travelDurationTraffic": 71,
"travelMode": "Driving"
}
]
}
],
"statusCode": 200,
"statusDescription": "OK",
"traceId": "47969a89fd7bc08f1a922bf92f4a7541|MWH0032B15|0.0.0.0|MWH0031C9B, Leg0-MWH0031C8C"
}
En el ejemplo JSON siguiente se muestra lo que se devuelve en el cuerpo de la respuesta HTTP al ejecutar la solicitud de Get Map Tile de Azure Maps:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.20414,
47.610173
]
},
"properties": {
"durationInSeconds": 36,
"distanceInMeters": 114.00,
"exitIdentifier": "",
"signs": [],
"instruction": {
"formattedText": "<Action>Head</Action> <CmpsDir>north</CmpsDir> on <RoadName>102nd Ave NE</RoadName> toward <Toward>NE 1st Pl</Toward>",
"maneuverType": "DepartStart",
"text": "Head north on 102nd Ave NE toward NE 1st Pl"
},
"towardsRoadName": "NE 1st Pl",
"routePathPoint": {
"legIndex": 0,
"pointIndex": 0
},
"compassDirection": "north",
"travelMode": "driving",
"steps": [
{
"maneuverType": "DepartStart",
"routePathRange": {
"legIndex": 0,
"range": [
0,
1
]
},
"names": [
"102nd Ave NE"
],
"compassDegrees": 356.00,
"roadType": "Street"
}
],
"type": "ManeuverPoint"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.204193,
47.611206
]
},
"properties": {
"durationInSeconds": 22,
"distanceInMeters": 106.00,
"exitIdentifier": "",
"signs": [],
"instruction": {
"formattedText": "<Action>Turn</Action> <TurnDir>right</TurnDir> onto <RoadName>NE 1st St</RoadName>",
"maneuverType": "TurnRight",
"text": "Turn right onto NE 1st St"
},
"routePathPoint": {
"legIndex": 0,
"pointIndex": 1
},
"compassDirection": "east",
"travelMode": "driving",
"steps": [
{
"maneuverType": "TurnRight",
"routePathRange": {
"legIndex": 0,
"range": [
1,
4
]
},
"names": [
"NE 1st St"
],
"compassDegrees": 89.00,
"roadType": "Street"
}
],
"type": "ManeuverPoint"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.203012,
47.611629
]
},
"properties": {
"durationInSeconds": 21,
"distanceInMeters": 7.00,
"exitIdentifier": "",
"signs": [],
"instruction": {
"formattedText": "<Action>Turn</Action> <TurnDir>left</TurnDir> onto <RoadName>103rd Ave NE</RoadName>",
"maneuverType": "TurnLeft",
"text": "Turn left onto 103rd Ave NE"
},
"routePathPoint": {
"legIndex": 0,
"pointIndex": 4
},
"compassDirection": "northwest",
"travelMode": "driving",
"steps": [
{
"maneuverType": "TurnLeft",
"routePathRange": {
"legIndex": 0,
"range": [
4,
5
]
},
"names": [
"103rd Ave NE"
],
"compassDegrees": 302.00,
"roadType": "Street"
}
],
"type": "ManeuverPoint"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.203084,
47.611674
]
},
"properties": {
"durationInSeconds": 0,
"distanceInMeters": 0.00,
"exitIdentifier": "",
"signs": [],
"instruction": {
"formattedText": "<Action>Arrive</Action> at <WaypointName>103rd Ave NE</WaypointName>",
"maneuverType": "ArriveFinish",
"text": "Arrive at 103rd Ave NE"
},
"routePathPoint": {
"legIndex": 0,
"pointIndex": 5
},
"compassDirection": "northwest",
"travelMode": "driving",
"steps": [
{
"maneuverType": "ArriveFinish",
"routePathRange": {
"legIndex": 0,
"range": [
5,
5
]
},
"names": [
"103rd Ave NE"
],
"compassDegrees": 302.00,
"roadType": "Street"
}
],
"type": "ManeuverPoint"
}
},
{
"type": "Feature",
"geometry": {
"type": "MultiLineString",
"coordinates": []
},
"properties": {
"resourceId": "v70,h570425388,i0,a0,cen-US,dAAAAAAAAAAA1,y0,s1,m1,o1,t0,wfPMbJhrOR0Cq8j0jEY1ewA2~~~~~~~~~~v12,wkWEVb2TOR0Cq8j0jEY1ewA2~~~~~~~~~~v12,k1,qatt:1",
"trafficCongestion": "Mild",
"trafficDataUsed": "None",
"distanceInMeters": 227.00,
"durationInSeconds": 80,
"departureTime": "2024-04-16T22:22:27+00:00",
"arrivalTime": "2024-04-16T22:23:47+00:00",
"type": "RoutePath",
"legs": []
}
}
]
}
Uso de transacciones
Al igual que Bing Maps Calculate Route API, Route Direction API de Azure Maps registra una transacción facturable por solicitud de API. Para más información sobre las transacciones de Azure Maps, vea Descripción de las transacciones de Azure Maps.
Información adicional
- Post Directions Batch: use para enviar un lote de consultas a Route Directions API en una única solicitud sincrónica.
Apoyo