기본적으로 차량은 어느 방향에서든지 수령 또는 배송 위치에 도착한 후 어느 방향으로든지 떠날 수 있습니다. 경우에 따라 차량이 방문 위치에서 유턴해야 하는데 차량 크기, 위치의 교통 표지판 또는 일반적인 교통 상황으로 인해 유턴이 어렵거나 불가능할 수 있습니다.
차량이 특정 수령 또는 배송 위치의 도착과 출발 간에 방향을 변경하지 못하도록 하려면 이 위치에 avoid_u_turns
를 true로 설정하면 됩니다. 이 설정을 사용하면 차량이 동일한 방향으로 위치에 도착하고 떠나므로 유턴을 피할 수 있습니다. 양방향 도로의 경우 솔버는 두 방향을 모두 고려하고 경로 최적화의 일부로 하나를 선택합니다.
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를 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_turns
는side_of_road = true
와 함께 사용할 수 있습니다. 이 경우 U턴은 피되지만 솔버는side_of_road = true
만 설정하는 것과 마찬가지로 차량이 도로의 중간 지점과 같은 쪽에 있는 경로를 선택합니다.- 특정 방문 요청의
avoid_u_turns = true
가 true인 경우 해당 응답의ShipmentRoute.Visit
에injected_solution_location_token
필드가 설정됩니다. 값의 정확한 의미는 구현 세부정보이지만 솔버가 선택한 도로 측면에 관한 정보를 인코딩합니다. - 입력 요청의 일부로
ShipmentRoute.Visit
를 사용하는 경우 해당ShipmentRoute.Visit
가avoid_u_turns = true
인VisitRequest
에 해당하는 경우ShipmentRoute.Visit
에는 이전에 솔버에서 반환한injected_solution_location_token
가 포함되어야 합니다.
제한사항
U턴 회피는 최선의 방식으로 실행됩니다. 경우에 따라 경로에 유턴이 포함될 수 있습니다.
avoid_u_turns
는side_of_road
를 지원하는 이동 수단에서만 작동합니다. 특히WALKING
이동 모드에서는 지원되지 않습니다.- 도착과 출발이 동일하지 않은 수령 및 배송에는
avoid_u_turns
를 사용할 수 없습니다. - 도로가 막다른 곳에 있으면 유턴을 해야 도로를 빠져나갈 수 있습니다.
- 이 기능의 목적은 승차 및 배송 위치에서 유턴을 피하는 것입니다. 경유지 간에 U턴을 피하지 않습니다.
- 다른 도로로 이어지는 매우 급한 회전은 유턴으로 간주되지 않으며 일반적으로 피하지 않습니다.
이 기능은 개발 중이며 추가 제한사항이 있습니다. 기능이 발전함에 따라 제한이 해제될 것으로 예상됩니다.
avoid_u_turns
는interpret_injected_solutions_using_labels
와 함께 사용할 수 없습니다.