수령 및 배송 위치에서 유턴하지 않음

기본적으로 차량은 어느 방향에서든지 수령 또는 배송 위치에 도착한 후 어느 방향으로든지 떠날 수 있습니다. 경우에 따라 차량이 방문 위치에서 유턴해야 하는데 차량 크기, 위치의 교통 표지판 또는 일반적인 교통 상황으로 인해 유턴이 어렵거나 불가능할 수 있습니다.

차량이 특정 수령 또는 배송 위치의 도착과 출발 간에 방향을 변경하지 못하도록 하려면 이 위치에 avoid_u_turns를 true로 설정하면 됩니다. 이 설정을 사용하면 차량이 동일한 방향으로 위치에 도착하고 떠나므로 유턴을 피할 수 있습니다. 양방향 도로의 경우 솔버는 두 방향을 모두 고려하고 경로 최적화의 일부로 하나를 선택합니다.

side_of_road를 true로 설정하여 차량이 경유지에 가장 가까운 도로변에서 도착하고 출발하는 경로를 가져올 수도 있습니다. 이 경우 차량도 도착과 출발 간에 방향을 변경하지 않습니다. side_of_roadavoid_u_turns를 모두 true로 설정하여 동일한 결과를 얻을 수도 있습니다. 자세한 내용은 다른 기능과의 상호작용을 참고하세요.

실제로는 avoid_u_turns는 도로를 건너는 것이 안전한 경우에만 사용해야 합니다. 교차가 권장되지 않거나 불가능한 경우 side_of_road를 사용합니다.

예: avoid_u_turnsOptimizeTours 요청

OptimizeTours 요청은 REST 또는 gRPC를 사용하여 할 수 있습니다.

요청하기 전에 다음 매개변수를 환경에 적합한 값으로 바꿉니다.

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

    다음 명령어는 Route Optimization API에 OptimizeTours 요청을 전송하고 응답을 동기식으로 수신합니다.

    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
                },
                "avoidUTurns": true
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                },
                "avoidUTurns": true
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
            "costPerKilometer": 1.0
          }
        ],
      }
    }
    EOM

요청이 완료되면 응답 메시지가 전송됩니다.

다른 기능과의 상호작용

  • avoid_u_turnsside_of_road = true와 함께 사용할 수 있습니다. 이 경우 U턴은 피되지만 솔버는 side_of_road = true만 설정하는 것과 마찬가지로 차량이 도로의 중간 지점과 같은 쪽에 있는 경로를 선택합니다.
  • 특정 방문 요청의 avoid_u_turns = true가 true인 경우 해당 응답의 ShipmentRoute.Visitinjected_solution_location_token 필드가 설정됩니다. 값의 정확한 의미는 구현 세부정보이지만 솔버가 선택한 도로 측면에 관한 정보를 인코딩합니다.
  • 입력 요청의 일부로 ShipmentRoute.Visit를 사용하는 경우 해당 ShipmentRoute.Visitavoid_u_turns = trueVisitRequest에 해당하는 경우 ShipmentRoute.Visit에는 이전에 솔버에서 반환한 injected_solution_location_token가 포함되어야 합니다.

제한사항

U턴 회피는 최선의 방식으로 실행됩니다. 경우에 따라 경로에 유턴이 포함될 수 있습니다.

  • avoid_u_turnsside_of_road를 지원하는 이동 수단에서만 작동합니다. 특히 WALKING 이동 모드에서는 지원되지 않습니다.
  • 도착과 출발이 동일하지 않은 수령 및 배송에는 avoid_u_turns를 사용할 수 없습니다.
  • 도로가 막다른 곳에 있으면 유턴을 해야 도로를 빠져나갈 수 있습니다.
  • 이 기능의 목적은 승차 및 배송 위치에서 유턴을 피하는 것입니다. 경유지 간에 U턴을 피하지 않습니다.
  • 다른 도로로 이어지는 매우 급한 회전은 유턴으로 간주되지 않으며 일반적으로 피하지 않습니다.

이 기능은 개발 중이며 추가 제한사항이 있습니다. 기능이 발전함에 따라 제한이 해제될 것으로 예상됩니다.