다크 모드
다중 경유지 길찾기
하나의 출발지에서 여러 개의 경유지를 지나 하나의 목적지까지의 경로 정보를 제공합니다. 경유지는 최대 100개까지 추가할 수 있습니다.
DANGER
Request
요청 호출 방식과 각 요청 헤더에 포함될 내용을 안내합니다. 요청이 실패할 경우 문제 해결하기에서 에러에 대한 상세 내용을 확인하세요.
호출 방식
| Method | URL |
|---|---|
POST | https://apis-navi.kakaomobility.com/affiliate/bicycle/v1/waypoints/directions |
요청 헤더(Header)
| Parameter | Description |
|---|---|
| Authorization | KakaoAK ${REST_API_KEY} {REST_API_KEY}: 카카오디벨로퍼스에서 발급 받은 REST API 키 |
| service | 서비스를 구분하는 임의의 문자열 |
| Content-Type | application/json |
요청 코드 예제
bash
curl -v -X POST "https://apis-navi.kakaomobility.com/affiliate/bicycle/v1/waypoints/directions" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "service: test" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \ // 카카오디벨로퍼스에서 발급 받은 API 키 값
-d '{
"origin": {
"x": 127.10909763718492,
"y": 37.39589794700353
},
"waypoints": [
{
"x": 127.10995909939992,
"y": 37.3956341116223
},
{
"x": 127.10989784118405,
"y": 37.395083994105576
}
],
"destination": {
"x": 127.11022639567598,
"y": 37.39404121844038
}
}'요청에 대한 파라미터는 다음과 같습니다.
| Name | Type | Description | Required |
|---|---|---|---|
origin | Object | 출발지 | 필수 |
x | Double | X 좌표(경도) | 필수 |
y | Double | Y 좌표(위도) | 필수 |
destination | Object[] | 목적지 | 필수 |
x | Double | X 좌표(경도) | 필수 |
y | Double | Y 좌표(위도) | 필수 |
waypoints | Object[] | 경유지, 최대 100개까지 허용 | 선택 |
x | Double | X 좌표(경도) | 필수 |
y | Double | Y 좌표(위도) | 필수 |
priority | String | 경로 탐색 우선순위 옵션 다음 중 하나: DISTANCE: 최단 경로MAIN_STREET: 큰길 우선BIKE_ROAD: 자전거 전용 도로 우선(기본값: DISTANCE) | 선택 |
summary | Boolean | 요약 정보만 제공 여부true: 요약 정보 제공false: 요약 정보 미제공(기본값: false) | 선택 |
default_speed | float | 도착 예상 시간(ETA) 측정 시 사용할 속도 설정 기본값: 0 (이 경우 15 km/h로 설정되고 0 이외의 숫자를 입력하면 해당 속도로 예상 시간이 측정됨.) 최솟값: 0, 최댓값 제한 없음. | 선택 |
Response
응답 성공 시 요청에 대한 성공 여부를 HTTP 상태 코드로, 요청 본문은 JSON 포맷으로 전달합니다.
응답 코드 예제
bash
{
"trans_id": "0197c35c0aa875fea2f6997ff5bf9917",
"routes": [
{
"result_code": 0,
"result_message": "길찾기 성공",
"summary": {
"distance": 581,
"duration": 161
},
"sections": [
{
"distance": 126,
"duration": 41,
"roads": [
{
"distance": 33,
"duration": 8,
"vertexes": [
127.10908451095504,
37.39606876648597,
127.10935554290191,
37.39607080825963,
127.10943512691682,
37.396026353876806
]
},
{
"distance": 44,
"duration": 21,
"vertexes": [
127.10943512691682,
37.396026353876806,
127.10993180551668,
37.39604811509296
]
},
{
"distance": 49,
"duration": 12,
"vertexes": [
127.10993180551668,
37.39604811509296,
127.10986468685842,
37.39599354529187,
127.10986905550754,
37.39562413701159
]
}
]
},
{
"distance": 61,
"duration": 15,
"roads": [
{
"distance": 61,
"duration": 15,
"vertexes": [
127.10986905550754,
37.39562413701159,
127.10988684790803,
37.39507461453519
]
}
]
},
{
"distance": 394,
"duration": 105,
"roads": [
{
"distance": 36,
"duration": 9,
"vertexes": [
127.10988684790803,
37.39507461453519,
127.10989057703102,
37.39475926595345
]
},
{
"distance": 93,
"duration": 22,
"vertexes": [
127.10989057703102,
37.39475926595345,
127.10988929942614,
37.393912244671725
]
},
{
"distance": 10,
"duration": 2,
"vertexes": [
127.10988929942614,
37.393912244671725,
127.10988961905323,
37.39388521478862,
127.10993532242595,
37.39384050499694
]
},
{
"distance": 21,
"duration": 10,
"vertexes": [
127.10993532242595,
37.39384050499694,
127.10992626704797,
37.39365121080641
]
},
{
"distance": 116,
"duration": 28,
"vertexes": [
127.10992626704797,
37.39365121080641,
127.11124771867432,
37.39364312870764
]
},
{
"distance": 26,
"duration": 12,
"vertexes": [
127.11124771867432,
37.39364312870764,
127.11124495280912,
37.39387738778665
]
},
{
"distance": 22,
"duration": 5,
"vertexes": [
127.11124495280912,
37.39387738778665,
127.11098522129426,
37.393875435346345
]
},
{
"distance": 70,
"duration": 17,
"vertexes": [
127.11098522129426,
37.393875435346345,
127.11057868506042,
37.39387237820778,
127.11045489156606,
37.3938354039534,
127.11020645291707,
37.39383353475566
]
}
]
}
]
}
]
}요청 응답에 대한 객체 정보는 다음과 같습니다.
| Name | Type | Description | Required |
|---|---|---|---|
trans_id | String | 경로 요청 ID | 필수 |
routes | Object[] | 경로 정보 | 필수 |
result_code | Int | 경로 탐색 결과 코드 | 필수 |
result_message | String | 경로 탐색 결과 메시지 | 필수 |
summary | Object | 경로 요약 정보 | 선택 |
distance | Int | 전체 검색 결과 거리(미터) | 필수 |
duration | Int | 목적지까지 소요 시간(초) | 필수 |
sections | Object[] | 구간별 경로 정보로 summary가 false로 설정된 경우에 정보가 제공됨.경유지가 존재할 경우 {경유지 수 + 1} 만큼의 섹션(경로 구간) 생성 (예: 경유지 수가 2개인 경우 총 3개의 섹션 정보가 생성, section1: 출발지 → 경유지 1 section2: 경유지 1 → 경유지 2 section3: 경유지 2 → 목적지) | 선택 |
distance | Int | 섹션 거리(미터) | 필수 |
duration | Int | 전체 검색 결과 이동 시간(초) | 필수 |
roads | Object[] | 도로 정보 | 필수 |
distance | Int | 도로 길이(미터) | 필수 |
duration | Int | 예상 이동 시간(초) 현재 예상 이동 시간 및 실제 이동 시간은 동일한 값으로 설정 | 필수 |
vertexes | Double[] | X, Y 좌표로 구성된 1차원 배열 (예: [127.10966790676201, 37.394469584427156, 127.10967141980313, 37.39512739646385] ) | 필수 |