Tujuan

Tujuan adalah parameter yang telah menentukan target pengoptimalan umum, seperti jarak atau durasi perjalanan terpendek, pengiriman tepat waktu, penyeimbangan beban antar-pengemudi. Tujuannya adalah untuk mempermudah developer menggunakan Route Optimization API sebelum mempelajari kecanggihan dan penyesuaian penuh parameter biaya.

Jika ditetapkan, ShipmentModel.objectives akan menggantikan model biaya sepenuhnya, sehingga tidak kompatibel dengan biaya yang sudah ada. Setiap Objective dipetakan ke sejumlah biaya yang telah ditentukan sebelumnya untuk kendaraan, pengiriman, atau atribut transisi.

Saat menentukan mode penyelesaian TRANSFORM_AND_RETURN_REQUEST, permintaan tidak diselesaikan, hanya divalidasi dan diisi dengan biaya yang sesuai dengan tujuan yang diberikan. Permintaan yang diubah ditampilkan sebagai OptimizeToursResponse.processed_request. Semua mode penyelesaian lainnya akan menampilkan permintaan yang telah diselesaikan.

Mode penyelesaian TRANSFORM_AND_RETURN_REQUEST hanya valid untuk permintaan OptimizeTours dan tidak tersedia untuk permintaan Route Optimization API lainnya.

Contoh: Membuat permintaan ShipmentModel.objectives

Sebelum membuat permintaan, selesaikan langkah-langkah berikut:

  • Pastikan Anda telah mengonfigurasi Kredensial Default Aplikasi seperti yang dijelaskan dalam Menggunakan OAuth.
  • Tetapkan PROJECT_NUMBER_OR_ID ke nomor atau ID project Cloud Anda.

    Perintah berikut mengirimkan OptimizeToursRequest ke Route Optimization API yang menampilkan OptimizeToursResponse.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ],
      }
    }
    EOM

Contoh: Membuat permintaan TRANSFORM_AND_RETURN_REQUEST

Sebelum membuat permintaan, selesaikan langkah-langkah berikut:

  • Pastikan Anda telah mengonfigurasi Kredensial Default Aplikasi seperti yang dijelaskan dalam Menggunakan OAuth.
  • Tetapkan PROJECT_NUMBER_OR_ID ke nomor atau ID project Cloud Anda.

    Perintah berikut mengirimkan OptimizeToursRequest ke Route Optimization API yang menampilkan OptimizeToursResponse dengan setelan kolom ProcessedRequest.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ]
      },
      "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
    }
    EOM
    Perintah sebelumnya akan menghasilkan respons yang mirip dengan berikut ini.
    {
      "processedRequest": {
        "model": {
          "shipments": [
            {
              "pickups": [
                {
                  "arrivalLocation": {
                    "latitude": 37.425062610009959,
                    "longitude": -122.09535511930135
                  }
                }
              ],
              "deliveries": [
                {
                  "arrivalLocation": {
                    "latitude": 37.424215032060211,
                    "longitude": -122.09526063135228
                  }
                }
              ]
            }
          ],
          "vehicles": [
            {
              "travelMode": "DRIVING",
              "costPerHour": 30,
              "costPerTraveledHour": 330,
              "costPerKilometer": 0.2
            }
          ],
          "objectives": [
            {
              "type": "MIN_TRAVEL_TIME"
            }
          ]
        },
        "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
      }
    }