목표

목표는 가장 짧은 이동 거리 또는 시간, 정시 배송, 운전자 간 부하 균형 조정과 같은 일반적인 최적화 타겟을 미리 정의하는 파라미터입니다. 비용 매개변수의 정교함과 전체 맞춤설정을 학습하기 전에 개발자가 경로 최적화 API에 더 쉽게 온보딩할 수 있도록 설계되었습니다. 다양한 목표를 완전히 맞춤설정하는 방법은 'cost model '을 참고하세요.

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

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

TRANSFORM_AND_RETURN_REQUEST 해결 모드는 OptimizeTours 요청에만 유효하며 다른 경로 최적화 API 요청에는 사용할 수 없습니다.

예: ShipmentModel.objectives 요청하기

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

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

    다음 명령어는 OptimizeToursRequest를 Route Optimization API로 전송하며, 이 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를 클라우드 프로젝트 번호 또는 ID로 설정합니다.

    다음 명령어는 Route Optimization API에 OptimizeToursRequest를 전송하며, 이 API는 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"
      }
    }