Buat Pesan Permintaan

Seperti yang dijelaskan secara singkat dalam 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 dan Vehicles.
  • Pengiriman mewakili tugas atau pengiriman sebenarnya yang mencakup VisitRequest pengambilan dan pengantaran. Pengiriman memiliki setelan dan batasan lokal.
  • Kendaraan mewakili kendaraan, pengemudi, atau personel. Kendaraan juga memiliki setelan dan batasan lokal.

Setiap properti entity menjelaskan bagian dari masalah pengoptimalan pada tingkat perincian tertentu. Batasan seluruh model diterapkan untuk semua pengiriman dan kendaraan, sedangkan batasan dan properti yang ditentukan pada pengiriman atau kendaraan bersifat spesifik 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).

OptimzeToursRequest properti

Beberapa properti yang umum digunakan untuk pesan OptimizeToursRequest level teratas (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 live digunakan untuk pemilihan rute dan perkiraan PWT.
  • populateTransitionPolylines menentukan apakah polyline rute ditampilkan dalam respons atau tidak.

Properti model

Beberapa properti yang umum digunakan untuk pesan ShipmentModel (REST, gRPC) meliputi:

  • globalStartTime merepresentasikan waktu mulai rute paling awal di semua kendaraan dan pengiriman. Tidak ada kendaraan yang dapat memulai transisi dan pengiriman pertamanya sebelum waktu tersebut.
  • globalEndTime merepresentasikan waktu berakhir rute terbaru untuk semua kendaraan dan pengiriman. Semua pengiriman dan transisi yang ditetapkan harus sudah selesai sebelum waktu tersebut.

Properti pengiriman

Beberapa properti yang umum digunakan untuk pesan Shipment (REST, gRPC) mencakup:

  • pickups[] dan deliveries[] menunjukkan tempat pengiriman dapat diambil atau diserahkan. Properti pickups[] dan deliveries[] menggunakan pesan VisitRequest (REST, gRPC).
  • loadDemands mewakili beban yang diperlukan oleh kendaraan untuk menyelesaikan pengiriman. Properti load_limits (REST, gRPC) yang sesuai untuk kendaraan menunjukkan berapa banyak beban yang dapat ditampung kendaraan pada satu waktu. Baca selengkapnya tentang pemuatan di Beban Permintaan dan Batas.
  • penalty_cost menunjukkan biaya yang timbul jika pengiriman dilewati. Baca lebih lanjut tentang biaya di Parameter Model Biaya.

Properti kendaraan

Beberapa properti yang umum digunakan untuk pesan Vehicle (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 beban pengiriman. Baca selengkapnya tentang batas dan permintaan pemuatan 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 tersebut:

Membandingkan OptimizeTours dan BatchOptimizeTours