기본적으로 차량은 어느 방향에서든 픽업 또는 배송 위치에 도착할 수 있으며 어느 방향으로든 떠날 수 있습니다. 이로 인해 차량이 방문 위치에서 유턴해야 하는 경우가 있는데, 차량 크기나 위치의 교통 표지판, 일반적인 교통 상황으로 인해 유턴이 어렵거나 불가능할 수 있습니다.
특정 픽업 또는 배송 위치의 도착과 출발 사이에 차량이 방향을 바꾸지 않도록 하려면 이 위치에 대해 avoid_u_turns
을 true로 설정하면 됩니다. 이 설정에서는 차량이 동일한 방향으로 위치에 도착하고 떠나므로 U턴을 피할 수 있습니다. 양방향 도로에서 솔버는 양방향을 모두 고려하고 경로 최적화의 일부로 한 방향을 선택합니다.
side_of_road
를 true로 설정하여 차량이 경유지와 가장 가까운 도로변에 도착하고 출발하는 경로를 가져올 수도 있습니다. 이 경우 차량은 도착과 출발 사이의 방향도 변경하지 않습니다. side_of_road
와 avoid_u_turns
를 모두 true로 설정하여 동일한 결과를 얻을 수 있습니다. 자세한 내용은 다른 기능과의 상호작용을 참고하세요.
실제로 avoid_u_turns
는 웨이포인트로 이동하기 위해 도로를 건너도 안전한 경우에 사용해야 합니다. 횡단이 권장되지 않거나 불가능한 경우 side_of_road
를 사용합니다.
예: avoid_u_turns
으로 OptimizeTours
요청하기
OptimizeTours
요청은 REST 또는 gRPC를 사용하여 할 수 있습니다.
요청하기 전에 다음 매개변수를 환경에 적합한 값으로 바꿉니다.
- OAuth 사용에 설명된 대로 애플리케이션 기본 사용자 인증 정보가 구성되어 있는지 확인합니다.
PROJECT_NUMBER_OR_ID를 클라우드 프로젝트 번호 또는 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_turns
는side_of_road = true
와 함께 사용할 수 있습니다. 이 경우 유턴은 피하지만 솔버는 차량이 경유지와 동일한 도로 측면에 있는 경로를 선택합니다. 이는side_of_road = true
만 설정하는 것과 유사합니다.- 특정 방문 요청에 대해
avoid_u_turns = true
인 경우 해당 응답의ShipmentRoute.Visit
에injected_solution_location_token
필드가 설정됩니다. 값의 정확한 의미는 구현 세부정보이지만 솔버가 선택한 도로 측면에 관한 정보를 인코딩합니다. - 입력 요청의 일부로
ShipmentRoute.Visit
를 사용하는 경우 해당ShipmentRoute.Visit
가avoid_u_turns = true
가 있는VisitRequest
에 해당하는 경우ShipmentRoute.Visit
에는 이전에 솔버에서 반환된injected_solution_location_token
가 포함되어야 합니다.
제한사항
U턴 회피는 최선의 방식으로 실행됩니다. 특정 상황에서는 경로에 U턴이 포함될 수 있습니다.
avoid_u_turns
는side_of_road
를 지원하는 이동 수단에서만 작동합니다. 특히WALKING
이동 모드에서는 지원되지 않습니다.avoid_u_turns
은 도착과 출발이 동일하지 않은 픽업 및 배송에 사용할 수 없습니다.- 픽업 또는 배송이 막다른 길에 있는 경우 길을 벗어나려면 유턴해야 합니다.
- 이 기능의 목표는 픽업 및 배송 위치에서 U턴을 방지하는 것입니다. 경유지 간 유턴은 피하지 않습니다.
- 다른 도로로 급격하게 방향을 바꾸는 것은 유턴으로 간주되지 않으며 일반적으로 피하지 않습니다.
이 기능이 개발되는 동안에는 추가 제한사항이 있습니다. 이 기능이 발전함에 따라 이러한 제한이 해제될 것으로 예상됩니다.
avoid_u_turns
은interpret_injected_solutions_using_labels
과 함께 사용할 수 없습니다.