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 dijalankan 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
, yaitu pengambilan atau pengantaran untuk Shipment
.
Tujuannya adalah memberikan penetapan ShipmentRoute
ke Vehicle
yang meminimalkan total biaya dengan biaya memiliki banyak komponen yang ditentukan dalam 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, yang diakhiri dengan ' |
model |
Model pengiriman yang harus dipecahkan. |
solvingMode |
Secara default, mode penyelesaian 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 dibangun. Setiap pengiriman yang tidak dilakukan pada suatu rute secara implisit dilewati dalam solusi pertama, tetapi pengiriman tersebut dapat dilakukan dalam solusi berturut-turut. Solusi 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 |
Batasi algoritma pengoptimalan untuk menemukan solusi akhir yang serupa dengan solusi sebelumnya. Misalnya, opsi ini dapat digunakan untuk membekukan bagian rute yang telah selesai atau yang akan diselesaikan tetapi tidak boleh dimodifikasi. Jika solusi yang dimasukkan tidak memungkinkan, error validasi belum tentu ditampilkan dan error yang menunjukkan ketidaklayakan dapat ditampilkan. |
refreshDetailsRoutes[] |
Jika tidak kosong, rute yang diberikan akan diperbarui, tanpa mengubah urutan kunjungan atau waktu perjalanan yang mendasarinya: hanya detail lain yang akan diperbarui. Ini tidak menyelesaikan model. Mulai 2020/11, konfigurasi ini hanya mengisi polyline rute yang tidak kosong dan mengharuskan Kolom Kolom ini tidak boleh digunakan bersama dengan
|
interpretInjectedSolutionsUsingLabels |
Jika benar:
Penafsiran ini berlaku untuk kolom Jika benar, label dalam kategori berikut harus muncul paling banyak sekali di kategorinya:
Jika Menghapus kunjungan rute atau seluruh rute dari solusi yang diinjeksikan dapat memengaruhi batasan tersirat, yang dapat menyebabkan perubahan solusi, kesalahan validasi, atau ketidaklayakan. CATATAN: Pemanggil harus memastikan bahwa setiap |
considerRoadTraffic |
Pertimbangkan estimasi traffic dalam menghitung kolom |
populatePolylines |
Jika benar, polyline akan diisi dalam |
populateTransitionPolylines |
Jika true (benar), polyline akan diisi dalam respons |
allowLargeDeadlineDespiteInterruptionRisk |
Jika disetel, permintaan dapat memiliki batas waktu (lihat https://grpc.io/blog/deadlines) hingga 60 menit. Jika tidak, batas waktu maksimumnya hanya 30 menit. Perhatikan bahwa permintaan berdurasi panjang memiliki risiko gangguan yang jauh lebih besar (tetapi masih kecil). |
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 dalam |
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 pemecahanMode=VALIDATE_ONLY: lihat kolom |
Isi respons
Jika berhasil, isi respons memuat instance OptimizeToursResponse
.
Cakupan otorisasi
Memerlukan cakupan OAuth berikut:
https://www.googleapis.com/auth/cloud-platform