Bagikan melalui


Memigrasikan Bing Maps Menghitung API Rute Truk

Artikel ini menjelaskan cara memigrasikan Bing Maps Menghitung API Rute Truk ke API Petunjuk Arah Rute Azure Maps . AZURE Maps Route Directions API mengembalikan rute ideal antara asal dan tujuan untuk mobil (mengemudi), truk komersial, dan rute berjalan, sambil mempertimbangkan hukum lokal, dimensi kendaraan, jenis kargo, kecepatan maks, jembatan, dan ketinggian terowongan untuk menghitung rute khusus truk dan menghindari manuver yang kompleks dan jalan yang sulit. Untuk mendapatkan perutean truk di Azure Maps Route Directions API, tentukan truk untuk parameter input di dalam permintaan.

Prasyarat

Perbedaan penting

  • Bing Maps Menghitung Rute Truk adalah API mandiri yang didedikasikan untuk perutean truk. Azure Maps Route Directions API menyediakan dukungan perutean truk saat travelMode=truck ditentukan dalam permintaan.
  • Bing Maps Calculate a Truck Route API mendukung permintaan GET atau POST. AZURE Maps Route Directions API mendukung permintaan POST.
  • Bing Maps Calculate a Truck Route API mendukung format respons XML dan JSON. AZURE Maps Route Directions API mendukung format respons GeoJSON.
  • Bing Maps Calculate a Truck Route API mendukung hingga 25 titik arah atau viaWaypoints per permintaan. AZURE Maps Route Directions API mendukung hingga 150 titik arah per permintaan, tetapi tidak mendukung viaWaypoints.
  • Tidak seperti Bing Maps for Enterprise, Azure Maps adalah layanan global yang mendukung penentuan cakupan geografis, memungkinkan batas residensi data ke area geografis (geos) Eropa (UE) atau Amerika Serikat (AS). Semua permintaan (termasuk data input) diproses secara eksklusif di area geografis yang ditentukan. Untuk informasi selengkapnya, lihat cakupan geografis.

Keamanan dan autentikasi

Bing Maps for Enterprise hanya mendukung autentikasi kunci API. Azure Maps mendukung beberapa cara untuk mengautentikasi panggilan API Anda, seperti kunci langganan, ID Microsoft Entra, dan Token Tanda Tangan Akses Bersama (SAS). Untuk informasi selengkapnya tentang keamanan dan autentikasi di Azure Maps, Lihat Autentikasi dengan Azure Maps dan bagian Keamanan di dokumentasi Azure Maps Route Directions.

Parameter permintaan tersebut

Tabel berikut mencantumkan parameter permintaan Bing Maps Calculate a Truck Route dan yang setara pada Azure Maps.

Parameter permintaan Bing Maps Parameter alias permintaan untuk Bing Maps Parameter permintaan Azure Maps Diperlukan di Azure Maps Jenis data Azure Maps Deskripsi
menghindari menghindari Palsu tali Berikut adalah beberapa fungsi Bing Maps yang setara dengan Azure Maps Route Directions API untuk menghindari, jika tersedia:

- tol: jalan tol
- feri: feri
- borderCrossings: perlintasan perbatasan
- jalan raya: jalan tol terbatas
- minimizeDrivingSideTurn: Tidak didukung
- minimizeAgainstDrivingSideTurn: Tidak didukung
- minimizeUTurn: Tidak didukung
- minimizeTolls: Tidak didukung
- minimizeHighways: Tidak didukung
pembatasan perbatasan Tidak didukung Tidak didukung Tidak didukung Di AZURE Maps Route Directions API, avoid=borderCrossings dapat digunakan untuk membatasi rute dari melintasi batas negara namun menentukan daftar wilayah untuk pembatasan batas tidak didukung. 
tanggalWaktu Dt WaktuBerangkat Tidak benar benang AZURE Maps Route Directions API juga mendukung arriveAt parameter yang digunakan untuk menentukan tanggal dan waktu kedatangan yang diinginkan. Ini tidak dapat digunakan dengan departAt
dimensionUnit Meredup Tidak didukung Tidak didukung Tidak didukung Di AZURE Maps Route Directions API, unit untuk dimensi tinggi, lebar, dan panjang truk adalah meter. 
satuan jarak Du Tidak didukung Tidak didukung Tidak didukung Di AZURE Maps Route Directions API, unit jarak adalah meter.  
jarakSebelumBelokanPertama dbft Tidak didukung Tidak didukung Tidak didukung
judul HD judul Tidak benar bilangan bulat
mengoptimalkan optmz mengoptimalkanRute Tidak benar benang Berikut adalah API Bing Maps untuk Menghitung Rute Truk yang setara dengan API Petunjuk Arah Rute di Azure Maps optimizeRoute:

- waktu: tercepatTanpaLaluLintas
- timeWithTraffic: tercepatDenganLaluLintas

AZURE Maps Route Directions API juga mendukung pengoptimalan rute berdasarkan jarak untuk mengembalikan rute terpendek dengan menentukan terpendek sebagai optimizeRoute nilai input. 
optimizeWaypoints optWp mengoptimalkan Urutan Titik Jalan Tidak benar Boolean
routeAttributes Ra routeOutputOptions Tidak benar benang Berikut adalah padanan API Route Directions dari Bing Maps ke Azure Maps routeOutputOptions:

- routePath: routePath
- regionTravelSummary: ringkasan perjalanan wilayah

Azure Maps Route Directions API mendukung nilai tambahan seperti itinerary dan routeSummary. Untuk informasi selengkapnya, lihat RouteOutputOption
Batas toleransi Tl Tidak didukung Tidak didukung Tidak didukung
viawaypoint.n vwp.n Tidak didukung Tidak didukung Tidak didukung
tinggi kendaraan Tinggi Tinggi Tidak benar nomor/angka
lebarKendaraan lebar lebar Tidak benar nomor/angka
panjangKendaraan Vl panjangnya Tidak benar nomor/angka
beratKendaraan berat berat Tidak benar bilangan bulat
poros kendaraan Poros Tidak didukung Tidak didukung Tidak didukung AZURE Maps Route Directions API mendukung pembatasan berat per sumbu yang dapat ditentukan menggunakan parameter axleWeight
trailer kendaraan Vt Tidak didukung Tidak didukung Tidak didukung Panjang trailer dapat ditambahkan ke panjang kendaraan yang akan dipertimbangkan untuk pembatasan. 
kendaraanSemi Semi Tidak didukung Tidak didukung Tidak didukung Semi-truk umumnya termasuk dalam kategori kendaraan komersial. AZURE Maps Route Directions API mendukung isVehicleCommercial properti yang dapat digunakan untuk Semi-truk. 
vehicleMaxGradient vmg Tidak didukung Tidak didukung Tidak didukung
radius putar minimum kendaraan vmtr Tidak didukung Tidak didukung Tidak didukung
kendaraanBahanBerbahaya vhm jenis beban Tidak benar benang Lihat API Petunjuk Arah Rute Azure Maps untuk kelas Hazmat AS 1-9 yang berkorespondensi, dan klasifikasi umum jenis kargo sebagai bahan berbahaya di API untuk Menghitung Rute Truk Bing Maps. 
izinKendaraanBerbahaya Vhp Tidak didukung Tidak didukung Tidak didukung
waypoint.n wp.n fitur InputWaypointFeaturesItem[] Benar GeoJSON Titik
satuanBerat Wu Tidak didukung Tidak didukung Tidak didukung Di AZURE Maps Route Directions API, unit berat adalah kilogram (kg).

Untuk informasi selengkapnya tentang parameter permintaan API Petunjuk Arah Rute Azure Maps, lihat Parameter URI.

Permintaan contoh

Bing Maps Menghitung permintaan POST API Rute Truk :

https://dev.virtualearth.net/REST/v1/Routes/Truck?key={Your-Bing-Maps-Key}

Disertakan dalam isi permintaan:

{
    "waypoints": [{ 
        "latitude": 47.610133,
        "longitude": -122.201478
    },{ 
        "latitude": 47.610096,
        "longitude": -122.192463
    }],
    "vehicleSpec": {
        "vehicleHazardousMaterials": "Flammable"
    }
}

Permintaan AZURE Maps Route Directions API POST:

https://atlas.microsoft.com/route/directions?api-version=2025-01-01&subscription-key={Your-Azure-Maps-Subscription-key} 

Disertakan dalam isi permintaan:

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

Bidang respons

Tabel berikut ini mencantumkan bidang yang bisa muncul dalam respons HTTP saat menjalankan permintaan Bing Maps Calculate a Truck Route dan setara Azure Maps:

Bidang Bing Maps Bidang Azure Maps Deskripsi
akhirSebenarnya Objek fitur titik Objek fitur titik dengan type="waypoint" dan inputIndex = terakhir menentukan lokasi akhir yang dapat dirutekan.
actualStart Objek fitur titik Objek fitur titik dengan type="waypoint" dan inputIndex = 0 menentukan lokasi mulai yang dapat dirutekan. 
alternateVias rute alternatif Bing Maps alternateVias mengidentifikasi rute terpisah. Di AZURE Maps Route Directions API, rute alternatif dikembalikan sebagai koleksi fitur baru di bawah alternativeRoutes
compassDegrees Tidak didukung
arah kompas Tidak didukung
deskripsi Tidak didukung
Rincian Properti Properti objek fitur berisi informasi manuver. 
satuan jarak Tidak berlaku AZURE Maps Route Directions API mengembalikan jarak dalam meter secara default. 
unit durasi Tidak berlaku Azure Maps Route Directions API mengembalikan durasi dalam detik. 
IndeksAkhirLintasan lingkup Azure Maps Route Directions API mengembalikan indeks awal dan akhir yang dicakup oleh bagian tertentu dari rute sebagai rentang. 
titik akhir Tidak didukung Dalam respons AZURE Maps Route Directions API, titik arah akhir dapat berasal dari type="waypoint" dan inputIndex = indeks terakhir
teks terformat teks terformat
Petunjuk Tidak didukung
jenisPetunjuk Tidak didukung
tipeIkon Tidak didukung
ajaran ajaran
isRealTimeTransit Tidak didukung
isVia Tidak didukung AZURE Maps Route Directions API tidak mendukung viaWaypoint untuk rute truk. 
kodeLokasi Tidak didukung
pengidentifikasiLokasi Tidak didukung
manuverPoint manuverPoint Di Azure Maps, _type=maneuverPoin_t adalah untuk objek titik di mana manuver diperlukan. 
maneuverType maneuverType
modus Tidak didukung
Nama-nama Nama-nama
Penundaan Transit Waktu Nyata Tidak didukung
jenisJalan Tidak didukung
IndeksJalurRute routePathPoint
routeSubLegs subLeg
sideOfStreet sideOfStreet
startPathIndices lingkup Azure Maps Route Directions API mengembalikan indeks awal dan akhir yang dicakup oleh bagian tertentu dari rute sebagai rentang.  
Titik Mulai Tidak didukung Dalam respons AZURE Maps Route Directions API, titik arah mulai dapat berasal dari type="waypoint" dan inputIndex = indeks pertama
menujuNamaJalan menujuNamaJalan
kemacetan lalu lintas Tidak didukung
dataLaluLintasDigunakan dataLaluLintasDigunakan
jarak perjalanan jarakDalamMeter
durasiPerjalanan durasiDalamDetik
DurasiPerjalananLaluLintas durasiLaluLintasDalamDetik
mode perjalanan mode perjalanan

Untuk informasi selengkapnya tentang bidang respons AZURE Maps Route Directions API, lihat Definisi.

Contoh respons

Sampel JSON berikut menunjukkan apa yang dikembalikan dalam isi respons HTTP saat menjalankan permintaan Bing Maps Calculate a Truck Route :

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

Sampel JSON berikut menunjukkan hasil yang dikembalikan dalam badan respons HTTP ketika melakukan permintaan Get Map Tile Azure Maps.

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

Penggunaan transaksi

API Rute Truk Bing Maps mencatat tiga transaksi yang dapat ditagih untuk setiap permintaan API. AZURE Maps Route Directions API mencatat satu transaksi yang dapat ditagih per permintaan API. Untuk informasi selengkapnya tentang transaksi Azure Maps, lihat Memahami Transaksi Azure Maps.

Informasi tambahan

  • Post Directions Batch: Gunakan untuk mengirim batch kueri ke ROUTE Directions API dalam satu permintaan sinkron.

Dukungan