Seperti yang dijelaskan secara singkat di Ringkasan Pengoptimalan Rute, permintaan dasar terdiri dari Model, Pengiriman, dan Kendaraan sebagai entitas yang diperlukan:
- Model merekam setelan dan batasan untuk seluruh permintaan,
termasuk
Shipments
danVehicles
. - Pengiriman mewakili tugas atau pengiriman sebenarnya yang mencakup
VisitRequest
pengambilan dan pengiriman. Pengiriman memiliki setelan dan batasan lokal. - Kendaraan mewakili kendaraan, pengemudi, atau personel. Kendaraan juga memiliki setelan dan batasan lokal.
Setiap properti entitas menjelaskan bagian dari masalah pengoptimalan pada tingkat perincian tertentu. Batasan seluruh model diterapkan ke semua pengiriman dan kendaraan, sedangkan batasan dan properti yang ditentukan pada pengiriman atau kendaraan berlaku khusus untuk satu pengiriman atau kendaraan.
Untuk dokumentasi lengkap tentang setiap jenis pesan, lihat dokumentasi referensi untuk pesan ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC), dan Vehicle
(REST, gRPC).
OptimizeToursRequest
properti
Beberapa properti yang umum digunakan dari pesan OptimizeToursRequest
tingkat atas
(REST, gRPC) mencakup hal berikut:
searchMode
menunjukkan apakah akan menampilkan solusi pertama yang memenuhi batasan yang ditentukan atau menemukan solusi terbaik dalam batas waktu yang ditetapkan.considerRoadTraffic
menentukan apakah traffic live digunakan atau tidak untuk perutean dan estimasi ETA.populateTransitionPolylines
menentukan apakah akan menampilkan rute polyline dan token rute dalam respons.
Properti model
Beberapa properti pesan ShipmentModel
yang umum digunakan (REST, gRPC) mencakup:
globalStartTime
menunjukkan waktu mulai rute paling awal di semua kendaraan dan pengiriman. Tidak ada kendaraan yang dapat memulai transisi dan pengiriman pertamanya sebelum waktu ini.globalEndTime
menunjukkan waktu akhir terbaru rute di semua kendaraan dan pengiriman. Semua pengiriman dan transisi yang ditetapkan harus selesai sebelum waktu ini.
Properti pengiriman
Beberapa properti pesan Shipment
yang umum digunakan (REST, gRPC)
meliputi:
pickups[]
dandeliveries[]
mewakili tempat pengiriman dapat diambil atau diturunkan. Propertipickups[]
dandeliveries[]
menggunakan pesanVisitRequest
(REST, gRPC).loadDemands
mewakili beban yang diperlukan kendaraan untuk menyelesaikan pengiriman. Propertiload_limits
(REST, gRPC) yang sesuai untuk kendaraan menunjukkan jumlah beban yang dapat ditampung kendaraan dalam satu waktu. Baca selengkapnya tentang beban di Permintaan dan Batas Beban.penalty_cost
mewakili biaya yang dikeluarkan jika pengiriman dilewati. Baca lebih lanjut tentang biaya di Parameter Model Biaya.
Properti kendaraan
Beberapa properti pesan Vehicle
yang umum digunakan (REST, gRPC)
mencakup:
startLocation
menunjukkan tempat kendaraan harus memulai rutenya. Properti ini bersifat opsional. Jika tidak ditentukan, rute kendaraan akan dimulai di lokasi pengiriman pertama yang ditetapkan.endLocation
menunjukkan tempat kendaraan harus mengakhiri rutenya. Properti ini bersifat opsional. Jika tidak ditentukan, rute kendaraan akan berakhir di lokasi pengiriman yang terakhir ditetapkan.startTimeWindows[]
menunjukkan kapan kendaraan dapat memulai rutenya. Properti ini bersifat opsional.endTimeWindows[]
menunjukkan kapan kendaraan dapat memulai dan mengakhiri rutenya. Kedua properti bersifat opsional.loadLimits
menunjukkan kapasitas kendaraan yang tersedia untuk memenuhi permintaan muatan pengiriman. Baca selengkapnya tentang permintaan dan batas beban di Permintaan dan Batas Beban.
Contoh permintaan lengkap dalam format JSON terlihat seperti ini:
{
"model": {
"shipments": [
{
"pickups": [
{
"arrivalLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
}
}
],
"deliveries": [
{
"arrivalLocation": {
"latitude": 37.79581,
"longitude": -122.4218856
}
}
]
}
],
"vehicles": [
{
"startLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"endLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"costPerKilometer": 1.0
}
],
"globalStartTime": "2024-02-13T00:00:00.000Z",
"globalEndTime": "2024-02-14T06:00:00.000Z"
}
}
OptimizeTours
dan BatchOptimizeTours
menggunakan pesan permintaan seperti
contoh di atas, tetapi dengan cara yang berbeda. Sebelum membuat permintaan Pengoptimalan Rute, penting untuk memahami perbedaan antara kedua metode ini: