목표

목표는 최단 이동 거리 또는 시간, 정시 배송, 운전자 간의 부하 균형 조정과 같은 일반적인 최적화 타겟을 사전 정의하는 매개변수입니다. 이는 개발자가 비용 매개변수의 정교화 및 전체 맞춤설정을 학습하기 전에 Route Optimization API를 더 쉽게 온보딩할 수 있도록 하기 위한 것입니다.

설정하면 ShipmentModel.objectives가 비용 모델을 완전히 덮어쓰므로 기존 비용과 호환되지 않습니다. 각 Objective는 차량, 배송 또는 전환 속성에 대해 사전 정의된 여러 비용에 매핑됩니다.

TRANSFORM_AND_RETURN_REQUEST 해결 모드를 지정하면 요청이 해결되지 않고 지정된 목표에 해당하는 비용으로만 검증되고 채워집니다. 수정된 요청은 OptimizeToursResponse.processed_request로 반환됩니다. 다른 모든 해결 모드는 해결된 요청을 반환합니다.

TRANSFORM_AND_RETURN_REQUEST 솔루션 모드는 OptimizeTours 요청에만 유효하며 다른 Route Optimization API 요청에는 사용할 수 없습니다.

예: ShipmentModel.objectives 요청

요청하기 전에 다음 단계를 완료하세요.

  • OAuth 사용에 설명된 대로 애플리케이션 기본 사용자 인증 정보가 구성되어 있는지 확인합니다.
  • PROJECT_NUMBER_OR_ID를 Cloud 프로젝트 번호 또는 ID로 설정합니다.

    다음 명령어는 OptimizeToursRequest를 Route Optimization API로 전송하여 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

예: TRANSFORM_AND_RETURN_REQUEST 요청

요청하기 전에 다음 단계를 완료하세요.

  • OAuth 사용에 설명된 대로 애플리케이션 기본 사용자 인증 정보가 구성되어 있는지 확인합니다.
  • PROJECT_NUMBER_OR_ID를 Cloud 프로젝트 번호 또는 ID로 설정합니다.

    다음 명령어는 Route Optimization API에 OptimizeToursRequest를 전송하여 ProcessedRequest 필드가 설정된 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"
          }
        ]
      },
      "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
    }
    EOM
    이전 명령어는 다음과 유사한 응답을 생성합니다.
    {
      "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"
      }
    }