Condividi tramite


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

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