Mengirim OptimizeToursRequest
yang berisi ShipmentModel
dan menampilkan OptimizeToursResponse
yang berisi ShipmentRoute
, yang merupakan kumpulan rute yang akan dilakukan dengan kendaraan yang meminimalkan biaya keseluruhan.
Model ShipmentModel
sebagian besar terdiri dari Shipment
yang perlu dilakukan dan Vehicle
yang dapat digunakan untuk memindahkan Shipment
. ShipmentRoute
menetapkan Shipment
ke Vehicle
. Lebih khusus lagi, mereka menetapkan serangkaian Visit
untuk setiap kendaraan, dengan Visit
sesuai dengan VisitRequest
, yang merupakan layanan pengambilan atau pengiriman untuk Shipment
.
Tujuannya adalah untuk memberikan penetapan ShipmentRoute
ke Vehicle
yang meminimalkan total biaya ketika biaya memiliki banyak komponen yang ditentukan di ShipmentModel
.
Permintaan HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeTours
URL menggunakan sintaksis gRPC Transcoding.
Parameter jalur
Parameter | |
---|---|
parent |
Wajib. Targetkan project atau lokasi untuk melakukan panggilan. Format: * Jika tidak ada lokasi yang ditentukan, wilayah akan dipilih secara otomatis. |
Isi permintaan
Isi permintaan memuat data dengan struktur berikut:
Representasi JSON |
---|
{ "timeout": string, "model": { object ( |
Kolom | |
---|---|
timeout |
Jika waktu tunggu ini disetel, server akan menampilkan respons sebelum periode waktu tunggu berlalu atau batas waktu server untuk permintaan sinkron tercapai, mana saja yang lebih cepat. Untuk permintaan asinkron, server akan membuat solusi (jika memungkinkan) sebelum waktu tunggu berlalu. Durasi dalam detik dengan maksimal sembilan digit pecahan, diakhiri dengan ' |
model |
Model pengiriman yang harus diselesaikan. |
solvingMode |
Secara default, mode penyelesaiannya adalah |
searchMode |
Mode penelusuran yang digunakan untuk menyelesaikan permintaan. |
injectedFirstSolutionRoutes[] |
Memandu algoritma pengoptimalan dalam menemukan solusi pertama yang mirip dengan solusi sebelumnya. Model dibatasi saat solusi pertama dibuat. Setiap pengiriman yang tidak dilakukan di suatu rute secara implisit dilewati pada solusi pertama, tetapi pengiriman tersebut dapat dilakukan secara berturut-turut. Solusi ini harus memenuhi beberapa asumsi validitas dasar:
Jika solusi yang dimasukkan tidak memungkinkan, error validasi belum tentu ditampilkan dan error yang menunjukkan ketidaklayakan dapat ditampilkan. |
injectedSolutionConstraint |
Membatasi algoritma pengoptimalan untuk menemukan solusi akhir yang mirip dengan solusi sebelumnya. Misalnya, perintah ini dapat digunakan untuk membekukan bagian rute yang telah selesai atau yang harus diselesaikan tetapi tidak boleh diubah. Jika solusi yang dimasukkan tidak memungkinkan, error validasi belum tentu ditampilkan dan error yang menunjukkan ketidaklayakan dapat ditampilkan. |
refreshDetailsRoutes[] |
Jika tidak kosong, rute yang ditentukan akan diperbarui, tanpa mengubah urutan kunjungan atau waktu perjalanan yang mendasarinya: hanya detail lain yang akan diperbarui. Ini tidak menyelesaikan model. Mulai 2020/11, kode ini hanya mengisi polyline rute yang tidak kosong dan mengharuskan Kolom Kolom ini tidak boleh digunakan bersama dengan
|
interpretInjectedSolutionsUsingLabels |
Jika true (benar):
Penafsiran ini berlaku untuk kolom Jika benar, label dalam kategori berikut harus muncul paling banyak sekali dalam kategorinya:
Jika Menghapus kunjungan rute atau seluruh rute dari solusi yang dimasukkan dapat berpengaruh pada batasan tersirat, yang dapat menyebabkan perubahan pada solusi, error validasi, atau ketidaklayakan. CATATAN: Pemanggil harus memastikan bahwa setiap |
considerRoadTraffic |
Pertimbangkan estimasi lalu lintas saat menghitung kolom |
populatePolylines |
Jika true (benar), polyline akan diisi dalam |
populateTransitionPolylines |
Jika true (benar), polyline akan diisi dalam |
allowLargeDeadlineDespiteInterruptionRisk |
Jika kebijakan ini disetel, permintaan dapat memiliki batas waktu (lihat https://grpc.io/blog/deadlines) hingga 60 menit. Jika tidak, batas waktu maksimum hanya 30 menit. Perlu diketahui bahwa permintaan yang telah berlangsung lama memiliki risiko gangguan yang lebih besar (tetapi masih kecil) secara signifikan. |
useGeodesicDistances |
Jika benar, jarak perjalanan akan dihitung menggunakan jarak geodesi, bukan jarak Google Maps, dan waktu perjalanan akan dihitung menggunakan jarak geodesi dengan kecepatan yang ditentukan oleh |
label |
Label yang dapat digunakan untuk mengidentifikasi permintaan ini, dilaporkan kembali di |
geodesicMetersPerSecond |
Jika |
maxValidationErrors |
Memotong jumlah error validasi yang ditampilkan. Error ini biasanya dilampirkan ke payload error INVALID_ARGUMENT sebagai detail error BadRequest (https://cloud.google.com/apis/design/errors#error_details), kecuali jika solvingMode=VALIDATE_ONLY: lihat kolom |
Isi respons
Jika berhasil, isi respons akan berisi instance OptimizeToursResponse
.
Cakupan otorisasi
Memerlukan cakupan OAuth berikut ini:
https://www.googleapis.com/auth/cloud-platform