경유지 최적화는 기본 경로 기능으로
ComputeRoutes
여행자의 경로에서 중간 경유지의 순서를
가능한 한 가장 효율적인 경로를 이동하도록 합니다. ComputeRoutes
경유지 최적화 구현은 다음 이동 수단을 지원합니다.
- 운전
- 전동 오토바이
- 자전거
- 산책
경유지 최적화를 사용해야 하는 이유
목적지로 가는 길에 여러 경유지를 통해 사용자를 안내하는 앱을 빌드할 때 여행자가 목적지의 경유지를 통과하는 것이 중요합니다. 최적의 순서입니다. 이렇게 하면 여행자가 출발지의 모든 경유지에 도착하고 가장 짧은 시간 동안요.
작동 방식
기본적으로 ComputeRoutes
는 경유지를 통과하는 경로를 순서대로 계산합니다.
원래 제공된 날짜로 계산됩니다 ComputeRoutes
를 통해 최적화할 수 있습니다.
중간 경유지를 보다 효율적인 순서로 재배열하여 경로를 더 효율적으로 할 수 있습니다.
요청 본문의 optimizeWaypointOrder
필드를 true
로 전송합니다.
참고: 경유지 최적화 계산은 주로 이동 시간을 기준으로 하지만, 이 기능은 거리와 같은 다른 요소도 고려합니다. 지정할 수 있습니다.
재정렬된 경유지 가져오기
경유지가 재정렬된 경로를 가져오려면 부울 필드를 설정하세요.
요청 본문에서 optimizeWaypointOrder
를 true
로 설정합니다.
ComputeRoutes
입니다. optimizedIntermediateWaypointIndex
필드도 포함합니다.
필드 마스크에 포함되어야 합니다. 응답 본문에는
optimizedIntermediateWaypointIndex
필드
참고: optimizedIntermediateWaypointIndex
필드는 0부터 시작하는 값을 반환합니다.
값으로 사용됩니다.
요청 예시
다음 요청 예시는 스탠퍼드 근처 경로를 제공합니다. 대학 캠퍼스 경로 경유지는 합니다. 요청에는 출발지와 목적지가 한 개씩 포함되어 있으며 경유지.
POST /v1alpha:computeRoutes
Host: routespreferred.googleapis.com
Content-Type: application/json
X-Server-Timeout: 10
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
{
"origin":{
"location":{
"latLng":{
"latitude": 37.418956,
"longitude": -122.160815
}
}
},
"intermediates": [
{
"location":{
"latLng":{
"latitude": 37.4176423,
"longitude":-122.1102246
}
}
},
{
"location":{
"latLng":{
"latitude": 37.407689,
"longitude": -122.1360597
}
}
}
],
"destination":{
"location":{
"latLng":{
"latitude": 37.4032137,
"longitude": -122.0349119
}
}
},
"travelMode": "DRIVE",
"optimizeWaypointOrder": true,
"routingPreference": "TRAFFIC_AWARE"}
응답 예
순서가 변경된 중간 경유지 색인은
다음 경로 객체의 경로 객체 내 optimizedIntermediateWaypointIndex
필드
응답 본문입니다. 인코딩된
다중선
는
Directions API 및
ComputeRoutes:
routes {
distance_meters: 17647
duration {
seconds: 1866
}
polyline {
encoded_polyline: "wkkcFvorhVU{@Ec@C}CG}@Mm@[}@i@y@[[g@_@Tk@BSjCgGfF|D\\Pv@Lj@@XaCTeC\\aCTs@`ByD`@k@h@e@x@Yh@GtADhBF|@G`AWpAs@lAsAdA{A`BmDr@cBmUqQoS}OyGmFiBsAgEwD}CaCU_@Og@@e@Hy@nGkO~@sBr@cBlDqIlByEp@}AjIfGnBbBHLLd@^p@~ErDfNrKrA~@DIhEeBTQ~AqDlE{KjBgE|FnEh@aAi@`A}FoE~AmD`A}BcAm@mHwFwD}CkLwIsDqCgF_EG[GKnCsDrA_BrC_CnCoBpEkD`EyClCsBcBeBIAkGkH]k@eJmKQKsAuA_@g@wCoDGQmEmFmIqROKaDuHvBkBxAgANCRH^f@v@dBHDD?`AUiBqEhBpEaATMCQYm@wAY]SIOByAfAwBjB_ByDaAwBiCeIA[c@aBqEuNOm@IQbA{c@p@aZFmCTuBLg@Tc@BUAKxOeV~Vy_@nBoDv@_BvAcDzA_EdG{RdC{HtIsY|B{Hx@mDbAuFdBsMbKsv@TaBf@}AdF{Sn@_DJq@Lo@aE`@]GUQmAmAQk@@g@RK`Ce@d@UDEPc@f@cCrAyGJs@X{AbIem@bA{JD_AIaAMg@o@{A_Ad@y@NaCLCsCK_FGI"
}
optimizedIntermediateWaypointIndex: 1
optimizedIntermediateWaypointIndex: 0
}
이 예에서 경유지를 최적화하면 경유지가 원래대로 있습니다.
권장사항
최적화된 경유지가 포함된 요청은 단순 라우팅보다 처리 시간이 더 오래 걸립니다.
합니다. 따라서 메서드 호출의 제한 시간을 더 높게 설정하는 것이 좋습니다.
X-Server-Timeout
요청 헤더의 값을 최소 10개의
초입니다. 시간 초과 오류가 계속 발생하는 경우 1초를 더 추가할 수 있습니다.
그런 다음 다시 시도하세요.
사용 제약사항
경유지 최적화를 사용하려면 다음과 같은 사용 제한과 조건:
중간 경유지에 대한 사용 제한 을 지정할 수 있습니다. 경로:
- 위도 및 경도 좌표만 사용하여 최대 98개의 경유지를 설정할 수 있습니다.
- 장소 ID를 사용하여 경유지를 지정하는 경우 최대 25개의 경유지.
모든 경유지는 경유지 유형이어야 합니다. 경유지 없음 via 유형일 수 있습니다.
필드에
routes.optimizedIntermediateWaypointIndex
을(를) 추가해야 합니다. 마스크.요청에 25개 이상의 중간 경유지가 있는 경우 다음 조건을 준수해야 합니다.
모든 경유지 사이의 누적 직선 거리는 1,000km 미만으로 갈 수 있었습니다. 이 거리는 출발지와 목적지를 모두 포함합니다. 있습니다.
이동수단은 DRIVE여야 합니다.