Seperti yang dijelaskan secara singkat dalam Ringkasan Pengoptimalan Rute, permintaan dasar terdiri dari Model, Pengiriman, dan Kendaraan sebagai entitas yang diperlukan:
- Model mencakup setelan dan batasan untuk seluruh permintaan,
termasuk
ShipmentsdanVehicles. - Pengiriman mewakili tugas atau pengiriman sebenarnya yang mencakup pengambilan dan
pengiriman
VisitRequest. Pengiriman memiliki setelan dan batasan lokal. - Kendaraan mewakili kendaraan, pengemudi, atau personel. Kendaraan juga memiliki setelan dan batasan lokal.
Properti setiap entitas menjelaskan bagian dari masalah pengoptimalan pada tingkat perincian tertentu. Batasan di seluruh model diterapkan ke semua pengiriman dan kendaraan, sementara batasan dan properti yang ditentukan pada pengiriman atau kendaraan 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).
Properti OptimizeToursRequest
Beberapa properti yang umum digunakan dari pesan OptimizeToursRequest tingkat teratas
(REST, gRPC) mencakup:
searchModemenunjukkan apakah akan menampilkan solusi pertama yang memenuhi batasan yang ditentukan atau menemukan solusi terbaik dalam batas waktu yang ditetapkan.considerRoadTrafficmenentukan apakah traffic live digunakan atau tidak untuk perutean dan estimasi waktu tiba.populateTransitionPolylinesmenentukan apakah polyline rute dan token rute ditampilkan dalam respons atau tidak.
Properti model
Beberapa properti pesan ShipmentModel yang umum digunakan (REST,
gRPC) meliputi:
globalStartTimemenunjukkan waktu mulai paling awal rute di semua kendaraan dan pengiriman. Tidak ada kendaraan yang dapat memulai transisi dan pengiriman pertamanya sebelum waktu ini.globalEndTimemenunjukkan waktu berakhir 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) mencakup:
pickups[]dandeliveries[]menunjukkan tempat pengiriman dapat diambil atau diantar. Propertipickups[]dandeliveries[]menggunakan pesanVisitRequest(REST, gRPC).loadDemandsmewakili muatan yang diperlukan agar kendaraan dapat menyelesaikan pengiriman. Propertiload_limits(REST, gRPC) yang sesuai dengan kendaraan menunjukkan jumlah beban yang dapat ditampung kendaraan dalam satu waktu. Baca selengkapnya tentang beban di Permintaan dan Batas Beban.penalty_costmewakili biaya yang dikeluarkan jika pengiriman dilewati. Baca selengkapnya tentang biaya di Parameter Model Biaya.
Properti kendaraan
Beberapa properti pesan Vehicle yang umum digunakan (REST, gRPC) mencakup:
startLocationmenunjukkan tempat kendaraan harus memulai rutenya. Properti ini bersifat opsional. Jika tidak ditentukan, rute kendaraan dimulai di lokasi pengiriman pertama yang ditetapkan.endLocationmenunjukkan tempat kendaraan harus mengakhiri rutenya. Properti ini bersifat opsional. Jika tidak ditentukan, rute kendaraan akan berakhir di lokasi pengiriman terakhir yang 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.loadLimitsmewakili 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:
{
"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 sama-sama menggunakan pesan permintaan seperti contoh di atas, tetapi dengan cara yang berbeda. Sebelum membuat permintaan Pengoptimalan Rute, penting untuk memahami perbedaan antara kedua metode tersebut:
Membandingkan OptimizeTours dan BatchOptimizeTours