Eseguire la migrazione dell'API Calculate a Truck Route di Bing Maps
Questo articolo illustra come eseguire la migrazione dell'API Calculate a Truck Route di Bing Maps all'API Route Directions di Mappe di Azure. L'API indicazioni stradali di Mappe di Azure restituisce il percorso ideale tra un'origine e una destinazione per automobili (guida), camion commerciali e percorsi a piedi, considerando le leggi locali, le dimensioni dei veicoli, il tipo di carico, la velocità massima, le altezze di ponti e gallerie per calcolare i percorsi specifici del camion ed evitare manovre complesse e strade difficili. Per ottenere il percorso dei camion nell'API Indicazioni stradali di Mappe di Azure, specificare camion nel parametro di input travelMode
nella richiesta.
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
- Bing Maps Calculate a Truck Route è un'API autonoma dedicata ala definizione di percorsi per i camion. L'API Route Directions di Mappe di Azure offre supporto per la definizione di percorsi per i camion quando
travelMode=truck
viene specificato nella richiesta. - L'API Bing Maps Calculate a Truck Route supporta le richieste GET o POST. L'API Route Directions di Mappe di Azure supporta solo richieste POST.
- L'API Calculate a Truck Route di Bing Maps supporta i formati di risposta XML e JSON. L'API Route Directions di Mappe di Azure supporta il formato di risposta GeoJSON.
- L'API Bing Maps Calculate a Truck Route supporta un massimo di 25 punti di tragitto o viaWaypoint per ogni richiesta. L'API Route Directions di Mappe di Azure supporta fino a 150 punti di tragitto per richiesta, ma non supporta viaWaypoints.
- 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 Truck 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 | False | string | Di seguito sono riportati gli elementi da evitare con gli equivalenti dall'API di Bing Maps all'API Route Directions di Mappe di Azure, dove supportati: - tolls: tollRoads - ferry: ferries - borderCrossings: borderCrossings - highways: limitedAccessHighways - minimizeDrivingSideTurn: Not supported - minimizeAgainstDrivingSideTurn: Not supported - minimizeUTurn: Not supported - minimizeTolls: Not supported - minimizeHighways: Not supported |
|
borderRestriction | Non supportate | Non supportate | Non supportate | Nell'API Route Directions di Mappe di Azure è possibile usare avoid=borderCrossings per limitare l'attraversamento di confini nazionali, ma non è supportata la specifica di un elenco di aree per la limitazione dell'attraversamento dei confini. | |
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 può essere usato con departAt . |
dimensionUnit | dims | Non supportate | Non supportate | Non supportate | Nell'API Route Directions di Mappe di Azure l'unità per le dimensioni di altezza, larghezza e lunghezza del camion è il metro. |
distanceUnit | du | Non supportate | Non supportate | Non supportate | Nell'API Route Directions di Mappe di Azure l'unità di distanza sono i metri. |
distanceBeforeFirstTurn | dbft | Non supportate | Non supportate | Non supportate | |
heading | hd | heading | Falso | integer | |
optimize | optmz | optimizeRoute | Falso | string | Di seguito sono riportati gli equivalenti optimizeRoute dell'API Calculate a Truck 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 dall'API di Bing Maps all'API Route Directions di Mappe di Azure:- routePath: routePath - regionTravelSummary: regionTravelSummary L'API Route Directions di Mappe di Azure supporta valori extra come itinerary e routeSummary . Per altre informazioni, vedere RouteOutputOption. |
tolerances | tl | Non supportate | Non supportate | Non supportate | |
viawaypoint.n | vwp.n | Non supportate | Non supportate | Non supportate | |
vehicleHeight | height | height | Falso | number | |
vehicleWidth | width | width | Falso | number | |
vehicleLength | vl | length | Falso | number | |
vehicleWeight | peso | peso | Falso | integer | |
vehicleAxles | axles | Non supportate | Non supportate | Non supportate | L'API Route Directions di Mappe di Azure supporta restrizioni di peso per asse che possono essere specificate usando il parametro axleWeight . |
vehicleTrailers | vt | Non supportate | Non supportate | Non supportate | La lunghezza del rimorchio può essere aggiunta alla lunghezza del veicolo da considerare per le restrizioni. |
vehicleSemi | semi | Non supportate | Non supportate | Non supportate | I semicarri rientrano in genere nella categoria veicoli commerciali. L'API Route Directions di Mappe di Azure supporta la proprietà isVehicleCommercial che può essere usata per i semicarri. |
vehicleMaxGradient | vmg | Non supportate | Non supportate | Non supportate | |
vehicleMinTurnRadius | vmtr | Non supportate | Non supportate | Non supportate | |
vehicleHazardousMaterials | vhm | loadType | Falso | string | Per informazioni sulle classi 1-9 e la classificazione generica dei tipi di carico pericolosi in Bing Maps, fare riferimento a Tipi di carico nell'API Route Directions di Mappe di Azure per le classi di materiali pericolosi corrispondenti e la classificazione generica dei tipi di carico con materiale pericoloso nell'API Bing Maps Calculate a Truck Route. |
vehicleHazardousPermits | Vhp | Non supportate | Non supportate | Non supportate | |
waypoint.n | wp.n | features InputWaypointFeaturesItem[] | Vero | GeoJSON Point | |
weightUnit | wu | Non supportate | Non supportate | Non supportate | Nell'API Route Directions di Mappe di Azure l'unità di peso sono i chilogrammi (kg). |
Per altre informazioni sui parametri di richiesta dell'API Route Directions di Mappe di Azure, vedere Parametri URI.
Esempi di richiesta
Richiesta POST API Bing Maps Calculate a Truck Route:
https://dev.virtualearth.net/REST/v1/Routes/Truck?key={Your-Bing-Maps-Key}
Elementi inclusi nel corpo della richiesta:
{
"waypoints": [{
"latitude": 47.610133,
"longitude": -122.201478
},{
"latitude": 47.610096,
"longitude": -122.192463
}],
"vehicleSpec": {
"vehicleHazardousMaterials": "Flammable"
}
}
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.201478, 47.610133
],
"type": "Point"
},
"properties": {
"pointIndex": "0",
"pointType": "waypoint"
}
},
{
"type": "Feature",
"geometry": {
"coordinates": [
-122.192463, 47.610096
],
"type": "Point"
},
"properties": {
"pointIndex": "1",
"pointType": "waypoint"
}
}
],
"RouteOutputOptions": [
"itinerary"
],
"travelMode": "truck",
"vehicleSpec": {
"loadType": [
"USHazmatClass3",
"USHazmatClass4"
]
}
}
Campi di risposta
La tabella seguente elenca i campi che possono essere visualizzati nella risposta HTTP durante l'esecuzione della richiesta Calculate a Truck Route di Bing Maps e l'equivalente di Mappe di Azure:
Campo Bing Maps | Campo Mappe di Azure | Descrizione |
---|---|---|
actualEnd | Oggetto feature point | L'oggetto feature point con type=”waypoint” e inputIndex = last definisce la posizione finale instradabile. |
actualStart | Oggetto feature point | L'oggetto feature point con type=”waypoint” e inputIndex = 0 definisce la posizione iniziale instradabile. |
alternateVias | alternativeRoutes | alternateVias di Bing Maps identifica i percorsi separati. Nell'API Route Directions di Mappe di Azure i percorsi alternativi vengono restituiti come nuova raccolta di funzionalità in alternativeRoutes . |
compassDegrees | Non supportate | |
compassDirection | Non supportate | |
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 come impostazione predefinita. |
durationUnit | Non applicabile | L'API Route Directions di Mappe di Azure restituisce la durata in secondi. |
endPathIndices | range | L'API Route Directions di 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 | |
instruction | instruction | |
isRealTimeTransit | Non supportate | |
isVia | Non supportate | L'API Route Directions di Mappe di Azure non supporta viaWaypoint per i percorsi dei camion. |
locationCodes | Non supportate | |
locationIdentifier | Non supportate | |
maneuverPoint | maneuverPoint | In Mappe di Azure _type=maneuverPoin_t è per gli oggetti punto in cui è necessaria una manovra. |
maneuverType | maneuverType | |
mode | Non supportate | |
nomi | nomi | |
realTimeTransitDelay | Non supportate | |
roadType | Non supportate | |
routePathIndex | routePathPoint | |
routeSubLegs | subLegs | |
sideOfStreet | sideOfStreet | |
startPathIndices | range | L'API Route Directions di 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 | Non supportate | |
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 Truck 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.610017,
-122.201495,
47.610133,
-122.192518
],
"distanceUnit": "Mile",
"durationUnit": "Second",
"routeLegs": [
{
"actualEnd": {
"type": "Point",
"coordinates": [
47.610052,
-122.192518
]
},
"actualStart": {
"type": "Point",
"coordinates": [
47.610109,
-122.201495
]
},
"alternateVias": [],
"description": "Main St",
"itineraryItems": [
{
"compassDirection": "east",
"details": [
{
"compassDegrees": 91,
"endPathIndices": [
1
],
"locationCodes": [
"114+10725"
],
"maneuverType": "DepartStart",
"mode": "Driving",
"names": [
"Main St"
],
"roadType": "Arterial",
"startPathIndices": [
0
]
}
],
"iconType": "Auto",
"instruction": {
"formattedText": "<Action>Head</Action> <CmpsDir>east</CmpsDir> on <RoadName>Main St</RoadName> toward <Toward>105th Ave NE</Toward>",
"maneuverType": "DepartStart",
"text": "Head east on Main St toward 105th Ave NE"
},
"isRealTimeTransit": false,
"maneuverPoint": {
"type": "Point",
"coordinates": [
47.610109,
-122.201495
]
},
"realTimeTransitDelay": 0,
"sideOfStreet": "Unknown",
"towardsRoadName": "105th Ave NE",
"travelDistance": 0.418804,
"travelDuration": 68,
"travelMode": "Driving"
},
{
"compassDirection": "east",
"details": [
{
"compassDegrees": 90,
"endPathIndices": [
1
],
"locationCodes": [
"114+10725"
],
"maneuverType": "ArriveFinish",
"mode": "Driving",
"names": [
"Main St"
],
"roadType": "Arterial",
"startPathIndices": [
1
]
}
],
"hints": [
{
"hintType": "PreviousIntersection",
"text": "The last intersection before your destination is 110th Pl SE"
}
],
"iconType": "Auto",
"instruction": {
"formattedText": "<Action>Arrive</Action> at <WaypointName>Stop: Y, X = 47.610096, -122.192463</WaypointName>",
"maneuverType": "ArriveFinish",
"text": "Arrive at Stop: Y, X = 47.610096, -122.192463"
},
"isRealTimeTransit": false,
"maneuverPoint": {
"type": "Point",
"coordinates": [
47.610052,
-122.192518
]
},
"realTimeTransitDelay": 0,
"sideOfStreet": "Unknown",
"travelDistance": 0,
"travelDuration": 0,
"travelMode": "Driving"
}
],
"routeSubLegs": [
{
"endWaypoint": {
"type": "Point",
"coordinates": [
47.610052,
-122.192518
],
"description": "Stop: Y, X = 47.610096, -122.192463",
"isVia": false,
"locationIdentifier": "",
"routePathIndex": 1
},
"startWaypoint": {
"type": "Point",
"coordinates": [
47.610109,
-122.201495
],
"description": "Stop: Y, X = 47.610133, -122.201478",
"isVia": false,
"locationIdentifier": "",
"routePathIndex": 0
},
"travelDistance": 0.418805,
"travelDuration": 68
}
],
"travelDistance": 0.418805,
"travelDuration": 68,
"travelMode": "Truck"
}
],
"trafficCongestion": "Medium",
"trafficDataUsed": "None",
"travelDistance": 0.418805,
"travelDuration": 68,
"travelDurationTraffic": 93,
"travelMode": "Truck"
}
]
}
],
"statusCode": 200,
"statusDescription": "OK",
"traceId": "bb78d3da62a71f62683cea8e6653806f|MWH0032BED|0.0.0.0|MWH0031C93,Leg0-MWH0031C91"
}
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.2015,
47.61013
]
},
"properties": {
"durationInSeconds": 0,
"distanceInMeters": 3.00,
"routePathPoint": {
"legIndex": 0,
"pointIndex": 0
},
"travelMode": "truck",
"instruction": {
"formattedText": "Leave from <street>Bellevue Way SE</street>",
"maneuverType": "DepartStart",
"text": "Leave from Bellevue Way SE"
},
"towardsRoadName": "Bellevue Way SE",
"steps": [
{
"maneuverType": "DepartStart",
"routePathRange": {
"legIndex": 0,
"range": [
0,
1
]
},
"names": [
"Bellevue Way SE"
]
}
],
"type": "ManeuverPoint"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.2015,
47.61011
]
},
"properties": {
"durationInSeconds": 111,
"distanceInMeters": 724.00,
"routePathPoint": {
"legIndex": 0,
"pointIndex": 1
},
"travelMode": "other",
"instruction": {
"formattedText": "Turn left onto <street>Main St</street>",
"maneuverType": "TurnLeft",
"text": "Turn left onto Main St"
},
"towardsRoadName": "Main St",
"steps": [
{
"maneuverType": "TurnLeft",
"routePathRange": {
"legIndex": 0,
"range": [
1,
32
]
},
"names": [
"Main St"
]
}
],
"type": "ManeuverPoint"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.19195,
47.61005
]
},
"properties": {
"durationInSeconds": 14,
"distanceInMeters": 7.00,
"routePathPoint": {
"legIndex": 0,
"pointIndex": 32
},
"travelMode": "truck",
"instruction": {
"formattedText": "Turn left",
"maneuverType": "TurnLeft",
"text": "Turn left"
},
"steps": [
{
"maneuverType": "TurnLeft",
"routePathRange": {
"legIndex": 0,
"range": [
32,
33
]
}
}
],
"type": "ManeuverPoint"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-122.19195,
47.61011
]
},
"properties": {
"durationInSeconds": 0,
"distanceInMeters": 0.00,
"routePathPoint": {
"legIndex": 0,
"pointIndex": 33
},
"travelMode": "truck",
"instruction": {
"formattedText": "You have arrived. Your destination is on the left",
"maneuverType": "ArriveFinish",
"text": "You have arrived. Your destination is on the left"
},
"sideOfStreet": "Left",
"steps": [
{
"maneuverType": "ArriveFinish",
"routePathRange": {
"legIndex": 0,
"range": [
33,
33
]
}
}
],
"type": "ManeuverPoint"
}
},
{
"type": "Feature",
"geometry": {
"type": "MultiLineString",
"coordinates": []
},
"properties": {
"resourceId": "/ZlIBcVsx0+/BcpEi208gQ==",
"trafficDataUsed": "FlowAndClosure",
"distanceInMeters": 734.00,
"durationInSeconds": 100,
"departureTime": "2024-04-08T20:20:25+00:00",
"arrivalTime": "2024-04-08T20:22:30+00:00",
"type": "RoutePath",
"legs": []
}
}
]
}
Utilizzo delle transazioni
L'API Bing Maps Calculate a Truck Route registra tre transazioni fatturabili per ogni richiesta API. 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