Eseguire la migrazione dell'API Calculate a Route di Bing Maps
Questo articolo illustra come eseguire la migrazione dell'API Calculate a Route di Bing Maps all'API Route Directions di Mappe di Azure. Route Directions di Mappe di Azure è un'API che restituisce l'itinerario ideale tra un'origine e una destinazione per automobili (guida), camion commerciali e percorsi a piedi. Il percorso considera fattori quali il traffico corrente e le velocità tipiche della strada nel giorno richiesto della settimana e dell'ora del giorno.
Prerequisiti
- Un account Azure
- Un account Mappe di Azure
- Una chiave di sottoscrizione o un altro tipo di autenticazione con Mappe di Azure
Differenze rilevanti
- L'API Calculate a Route di Bing Maps supporta una richiesta GET. L'API Route Directions di Mappe di Azure supporta solo una richiesta POST.
- L'API Calculate a Route di Bing Maps supporta il formato di risposta XML e JSON. L'API Route Directions di Mappe di Azure supporta il formato GeoJSON.
- L'API Calculate a Route di Bing Maps richiede che i punti di percorso e viaWaypoint siano in formato latitudine/longitudine, mentre Mappe di Azure richiede che siano in formato longitudine/latitudine, come definito nel formato GeoJSON.
- L'API Calculate a Route di Bing Maps punti di percorso e viaWaypoint come punti, punti di riferimento o indirizzi. L'API Route Directions di Mappe di Azure supporta solo i punti. Per convertire un punto di riferimento o un indirizzo in un punto, è possibile usare l'API Get Geocoding di Mappe di Azure.
- L'API Calculate a Route di Bing Maps supporta il routing di transito. L'API Route Directions di Mappe di Azure no.
- A differenza di Bing Maps for Enterprise, Mappe di Azure è un servizio globale che supporta la specifica di un ambito geografico, il che consente di limitare la residenza dei dati alle aree geografiche di Europa (UE) o Stati Uniti (US). Tutte le richieste (inclusi i dati di input) vengono elaborate esclusivamente nell'area geografica specificata. Per altre informazioni, vedere Ambito geografico.
Sicurezza e autenticazione
Bing Maps for Enterprise supporta solo l'autenticazione con chiave API. Mappe di Azure supporta diversi modi per autenticare le chiamate API, ad esempio una chiave di sottoscrizione, Microsoft Entra ID e il token di firma di accesso condiviso (SAS). Per altre informazioni sulla sicurezza e l'autenticazione in Mappe di Azure, vedere Autenticazione con Mappe di Azure e la sezione Sicurezza nella documentazione di Route Directions di Mappe di Azure.
Parametri della richiesta
Nella tabella seguente sono elencati i parametri di richiesta di Calculate a Route di Bing Maps e l'equivalente di Mappe di Azure:
Parametro di richiesta di Bing Mappe | Alias del parametro di richiesta di Bing Mappe | Mappe di Azure parametro di richiesta | Obbligatorio in Mappe di Azure | Mappe di Azure tipo di dati | Descrizione |
---|---|---|---|---|---|
avoid | avoid | Falso | string | Di seguito sono riportati gli equivalenti dall'API Calculate a Route di Bing Maps all'API Route Directions di Mappe di Azure, dove supportati: tolls: tollRoads ferry: ferries borderCrossings: borderCrossings minimizeDrivingSideTurn: non supportato minimizeAgainstDrivingSideTurn: non supportato minimizeUTurn: non supportato minimizeTolls: non supportato highways: limitedAccessHighways minimizeHighways: non supportato |
|
dateTime | dt | departAt | Falso | string | L'API Route Directions di Mappe di Azure supporta anche il parametro arriveAt usato per specificare la data e l'ora di arrivo desiderate. Non è possibile usarla con departAt. |
distanceBeforeFirstTurn | dbft | Non supportato | Non supportate | Non supportate | |
distanceUnit | du | Facoltativo | Facoltativo | Facoltativo | Nell'API Route Directions di Mappe di Azure l'unità di distanza sono i metri. |
heading | hd | heading | Falso | integer | |
itineraryGroups | ig | Non supportato | Non supportate | ||
maxSolutions | maxSolns | maxRouteCount | Falso | Integer | |
optimize | optmz | optimizeRoute | Falso | string | Di seguito sono riportati gli equivalenti optimizeRoute dell'API Calculate a Route di Bing Maps nell'API Route Directions di Mappe di Azure: time: fastestWithoutTraffic timeWithTraffic: fastestWithTraffic L'API Route Directions di Mappe di Azure supporta anche l'ottimizzazione delle route per distanza per restituire la route più breve specificando il valore di input "optimizeRoute" come il più breve. |
optimizeWaypoints | optWp | optimizeWaypointOrder | Falso | boolean | |
routeAttributes | ra | routeOutputOptions | Falso | string | Di seguito sono riportati gli equivalenti routeOutputOptions dell'API Calculate a Route di Bing Maps nell'API Route Directions di Mappe di Azure: routePath: routePath regionTravelSummary: regionTravelSummary L'API Route Directions di Mappe di Azure supporta più valori, ad esempio itinerary e routeSummary. Per informazioni dettagliate, vedere RouteOutputOption. |
routePathOutput | rpo | routeOutputOptions | Falso | string | L'API Route Directions di Mappe di Azure supporta la restituzione delle coordinate per la geometria del percorso stradale passando routeOutputOptions=routePath nella richiesta. |
timeType | tt | Non supportato | Non supportate | Non supportate | L'API Route Directions di Mappe di Azure non supporta il routing di transito. |
tolleranze | tl | Non supportato | Non supportate | Non supportate | |
travelMode | travelMode | Falso | string | Di seguito sono riportati gli equivalenti travelMode dell'API Calculate a Route di Bing Maps nell'API Route Directions di Mappe di Azure: Driving: driving Walking: walking Transito: non supportato Mappe di Azure supporta un valore "truck" travelMode aggiuntivo per i percorsi dei camion. |
|
viaWaypoint.n | vwp.n | modelli di ARM InputWaypointFeaturesItem[] |
True | Punto GeoJSON | waypoint e viaWaypoint vengono specificati come funzionalità, ovvero un parametro obbligatorio. Tuttavia, solo il punto di percorso è un pointType obbligatorio e la richiesta può essere effettuata senza viaWaypoint. Nell'API Calculate a Route di Bing Maps, un viaWaypoint può essere un punto, un punto di riferimento o un indirizzo, mentre, nell'API Route Directions di Mappe di Azure deve essere un punto. Per convertire un punto di riferimento o un indirizzo in un punto, è possibile usare l'API Get Geocoding di Mappe di Azure. L'API Calculate a Truck Route di Bing Maps richiede che i viaWaypoint siano in formato latitudine/longitudine, mentre Mappe di Azure richiede che siano in formato longitudine/latitudine, come definito nel formato GeoJSON. |
waypoint.n | wp.n | features InputWaypointFeaturesItem[] | True | Punto GeoJSON | Nell'API Calculate a Route di Bing Maps, un punto di percorso può essere un punto, un punto di riferimento o un indirizzo, mentre, nell'API Route Directions di Mappe di Azure deve essere un punto. Per convertire un punto di riferimento o un indirizzo in un punto, è possibile usare l'API Get Geocoding di Mappe di Azure. L'API Calculate a Route di Bing Maps richiede che i punti di percorso siano in formato latitudine/longitudine, mentre Mappe di Azure richiede che siano in formato longitudine/latitudine, come definito nel formato GeoJSON. |
Per altre informazioni sui parametri di richiesta dell'API Route Directions di Mappe di Azure, vedere Parametri URI.
Esempi di richiesta
Richiesta API Calculate a Route di Bing Maps:
http://dev.virtualearth.net/REST/V1/Routes/driving?wp.0=47.610173,-122.204171&wp.1=47.612440,-122.204171key={Your-Bing-Maps-Key}
Richiesta POST API Route Directions di Mappe di Azure:
https://atlas.microsoft.com/route/directions?api-version=2023-10-01-preview&subscription-key={Your-Azure-Maps-Subscription-key}
Elementi inclusi nel corpo della richiesta:
{
"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"
}
}
]
}
Campi di risposta
La tabella seguente elenca i campi che possono essere visualizzati nella risposta HTTP durante l'esecuzione della richiesta Calculate a Route di Bing Maps e l'equivalente di Mappe di Azure:
Campo Bing Maps | Campo Mappe di Azure | Descrizione |
---|---|---|
actualStart | Oggetto feature point | L'oggetto feature point con type=”waypoint” e inputIndex = 0 definisce la posizione iniziale instradabile. |
actualEnd | Oggetto feature point | L'oggetto feature point con type=”waypoint” e inputIndex = last definisce la posizione finale instradabile. |
alternateVias | alternativeRoutes | alternateVias di Bing Maps identifica i percorsi separati. In Mappe di Azure i percorsi alternativi vengono restituiti come nuova raccolta di funzionalità in alternativeRoutes. |
compassDegrees | compassDegrees | |
compassDirection | compassDirection | |
description | Non supportate | |
dettagli | properties | Le proprietà dell'oggetto funzionalità contengono le informazioni della manovra. |
distanceUnit | Non applicabile | L'API Route Directions di Mappe di Azure restituisce la distanza in metri. |
durationUnit | Non applicabile | L'API Route Directions di Mappe di Azure restituisce la durata in secondi. |
endPathIndices | range | Mappe di Azure restituisce l'indice iniziale e finale coperto da una parte specifica di un itinerario come intervallo. |
endWaypoint | Non supportate | Nella risposta dell'API Route Directions di Mappe di Azure endWaypoint può essere derivato da type=”waypoint” e inputIndex = last index |
formattedText | formattedText | |
hint | Non supportate | |
hintType | Non supportate | |
iconType | Non supportate | L'API Calcolate a Route di Bing Maps specifica il tipo di icona per rappresentare la modalità di viaggio nelle applicazioni utente. Ad esempio, se un itinerario di guida ha una parte in traghetto, l'icona può essere usata per identificare visivamente le diverse modalità di viaggio in un itinerario. L'API Calculate Route di Mappe di Azure non supporta iconType, ma la modalità di viaggio può essere derivata dalla proprietà travelMode nella risposta. |
instruction | Instruction | |
isRealTimeTransit | Non supportate | |
isVia | viaWaypoint | Nella risposta dell'API Route Directions di Mappe di Azure, il waypoint viene restituito come "type": "ViaWaypoint" |
locationCodes | Non supportate | |
locationIdentifier | Non supportate | |
maneuverPoint | maneuverPoint | In Mappe di Azure digitare =maneuverPoint per gli oggetti punto in cui è necessaria una manovra. Nell'API Calculate a Route di Bing Maps maneuverPoint è in formato latitudine/longitudine, mentre in Mappe di Azure è in formato longitudine/latitudine, come definito nel formato GeoJSON. |
maneuverType | maneuverType | |
mode | Non supportate | |
nomi | nomi | |
realTimeTransitDelay | Non supportate | |
roadType | roadType | |
routePathIndex | routePathPoint | |
routeSubLegs | subLegs | |
sideOfStreet | sideOfStreet | |
startPathIndices | range | Mappe di Azure restituisce l'indice iniziale e finale coperto da una parte specifica di un itinerario come intervallo. |
startWaypoint | Non supportate | Nella risposta dell'API Route Directions di Mappe di Azure startWaypoint può essere derivato da type=”waypoint” e inputIndex = first index |
towardsRoadName | towardsRoadName | |
trafficCongestion | trafficCongestion | |
trafficDataUsed | trafficDataUsed | |
travelDistance | distanceInMeters | |
travelDuration | durationInSeconds | |
travelDurationTraffic | durationTrafficInSeconds | |
travelMode | travelMode |
Per altre informazioni sui campi di risposta dell'API Route Directions di Mappe di Azure, vedere Definizioni.
Esempi di risposta
L'esempio JSON seguente mostra cosa viene restituito nel corpo della risposta HTTP durante l'esecuzione di una richiesta Calculate a Route di Bing Maps:
{
"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"
}
L'esempio JSON seguente mostra cosa viene restituito nel corpo della risposta HTTP durante l'esecuzione di una richiesta Get Map Tile di Mappe di Azure:
{
"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": []
}
}
]
}
Utilizzo delle transazioni
Analogamente all'API Calculate Route di Bing Maps, l'API Route Directions di Mappe di Azure registra una transazione fatturabile per ogni richiesta API. Per altre informazioni sulle transazioni di Mappe di Azure, vedere Informazioni sulle transazioni di Mappe di Azure.
Informazioni aggiuntive
- Post Directions Batch: usare per inviare un batch di query all'API Route Directions in una singola richiesta sincrona.
Supporto tecnico