다크 모드
다중 출발지 길찾기
한 개 이상의 출발지에서 하나의 목적지까지의 경로 정보를 제공합니다. 출발지는 최대 100개까지 설정할 수 있습니다.
DANGER
Request
요청 호출 방식과 각 요청 헤더에 포함될 내용을 안내합니다. 요청이 실패할 경우 문제 해결하기에서 에러에 대한 상세 내용을 확인하세요.
호출 방식
| Method | URL |
|---|---|
POST | https://apis-navi.kakaomobility.com/affiliate/walking/v1/origins/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/walking/v1/origins/directions" \
-H "accept: application/json" \
-H "service: test" \
-H "Content-Type: application/json" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \ // 카카오디벨로퍼스에서 발급 받은 API 키 값
-d '{
"origins": [
{
"x": 127.10909763718492,
"y": 37.39589794700353
},
{
"x": 127.11374021945907,
"y": 37.39583371633596
}
],
"destination": {
"x": 127.11022639567598,
"y": 37.39404121844038
}
}'요청에 대한 파라미터는 다음과 같습니다.
| Name | Type | Description | Required |
|---|---|---|---|
origins | Object[] | 출발지. 최대 100개까지 허용 | 필수 |
x | Double | X 좌표(경도) | 필수 |
y | Double | Y 좌표(위도) | 필수 |
destination | Object | 목적지 | 필수 |
x | Double | X 좌표(경도) | 필수 |
y | Double | Y 좌표(위도) | 필수 |
radius | Integer | 출발지와 목적지 간의 길찾기 반경(미터) (기본값: 2000, 최대: 12000) 값을 입력하지 않거나 0 또는 음수 값을 입력할 경우 기본값으로 설정되며, 최댓값을 초과하는 값을 입력할 경우 최댓값 12000으로 고정됨. | 선택 |
priority | String | 경로 탐색 우선순위 옵션 다음 중 하나: DISTANCE: 최단 경로MAIN_STREET: 큰길 우선(기본값: DISTANCE) | 선택 |
summary | Boolean | 요약 정보만 제공 여부true: 요약 정보 제공false: 요약 정보 미제공(기본값: false) | 선택 |
default_speed | float | 도착 예상 시간(ETA) 측정 시 사용할 속도 설정 기본값: 0 (이 경우 4 km/h로 설정되고 0 이외의 숫자를 입력하면 해당 속도로 예상 시간이 측정됨.) 최솟값: 0, 최댓값 제한 없음. | 선택 |
Response
응답 성공 시 요청에 대한 성공 여부를 HTTP 상태 코드로, 요청 본문은 JSON 포맷으로 전달합니다.
응답 코드 예제
bash
{
"trans_id": "0197c3474db77b64a9e7fcc290216f7f",
"routes": [
{
"result_code": 0,
"result_message": "길찾기 성공",
"summary": {
"distance": 342,
"duration": 345
},
"sections": [
{
"distance": 342,
"duration": 345,
"roads": [
{
"distance": 33,
"duration": 30,
"vertexes": [
127.10908451095504,
37.39606876648597,
127.10935554290191,
37.39607080825963,
127.10943512691682,
37.396026353876806
]
},
{
"distance": 15,
"duration": 14,
"vertexes": [
127.10943512691682,
37.396026353876806,
127.10945931192892,
37.39589137462884
]
},
{
"distance": 87,
"duration": 78,
"vertexes": [
127.10945931192892,
37.39589137462884,
127.10946858608143,
37.395107508322575
]
},
{
"distance": 24,
"duration": 22,
"vertexes": [
127.10946858608143,
37.395107508322575,
127.10947114440512,
37.394891269322756
]
},
{
"distance": 25,
"duration": 23,
"vertexes": [
127.10947114440512,
37.394891269322756,
127.10945122372073,
37.394665850259905
]
},
{
"distance": 3,
"duration": 3,
"vertexes": [
127.10945122372073,
37.394665850259905,
127.10945154351381,
37.39463882038346
]
},
{
"distance": 13,
"duration": 12,
"vertexes": [
127.10945154351381,
37.39463882038346,
127.10945292927894,
37.39452169091744
]
},
{
"distance": 18,
"duration": 16,
"vertexes": [
127.10945292927894,
37.39452169091744,
127.10945474142122,
37.39436852161211
]
},
{
"distance": 19,
"duration": 17,
"vertexes": [
127.10945474142122,
37.39436852161211,
127.10944547402292,
37.39419724733547
]
},
{
"distance": 32,
"duration": 29,
"vertexes": [
127.10944547402292,
37.39419724733547,
127.10944888509147,
37.393908928624334
]
},
{
"distance": 39,
"duration": 70,
"vertexes": [
127.10944888509147,
37.393908928624334,
127.10988929942614,
37.393912244671725
]
},
{
"distance": 10,
"duration": 9,
"vertexes": [
127.10988929942614,
37.393912244671725,
127.10988961905323,
37.39388521478862,
127.10993532242595,
37.39384050499694
]
},
{
"distance": 24,
"duration": 22,
"vertexes": [
127.10993532242595,
37.39384050499694,
127.11020645291707,
37.39383353475566
]
}
]
}
]
},
{
"result_code": 0,
"result_message": "길찾기 성공",
"summary": {
"distance": 532,
"duration": 514
},
"sections": [
{
"distance": 532,
"duration": 514,
"roads": [
{
"distance": 17,
"duration": 15,
"vertexes": [
127.1135020927358,
37.39593076365041,
127.11350018260829,
37.39609294304976
]
},
{
"distance": 26,
"duration": 23,
"vertexes": [
127.11350018260829,
37.39609294304976,
127.11325184245167,
37.39608207018842,
127.11321817572055,
37.396063796185196
]
},
{
"distance": 71,
"duration": 64,
"vertexes": [
127.11321817572055,
37.396063796185196,
127.11319569585727,
37.396054616833055,
127.1131893921421,
37.39563106373057,
127.11314528195813,
37.395540625281825,
127.11314644970408,
37.39544151564964
]
},
{
"distance": 50,
"duration": 45,
"vertexes": [
127.11314644970408,
37.39544151564964,
127.11314942212249,
37.3951892365782,
127.11318574226435,
37.39498226141683
]
},
{
"distance": 39,
"duration": 70,
"vertexes": [
127.11318574226435,
37.39498226141683,
127.11274521507063,
37.39498796753231
]
},
{
"distance": 8,
"duration": 7,
"vertexes": [
127.11274521507063,
37.39498796753231,
127.1127348780773,
37.394906793099075
]
},
{
"distance": 35,
"duration": 32,
"vertexes": [
127.1127348780773,
37.394906793099075,
127.11233952266006,
37.39491283664379
]
},
{
"distance": 61,
"duration": 55,
"vertexes": [
127.11233952266006,
37.39491283664379,
127.11202332333251,
37.3949104625554,
127.11184572106103,
37.39464781658411
]
},
{
"distance": 43,
"duration": 39,
"vertexes": [
127.11184572106103,
37.39464781658411,
127.11136002465726,
37.39465317827262
]
},
{
"distance": 6,
"duration": 5,
"vertexes": [
127.11136002465726,
37.39465317827262,
127.11136055650292,
37.39460812845504
]
},
{
"distance": 52,
"duration": 47,
"vertexes": [
127.11136055650292,
37.39460812845504,
127.11137312569663,
37.394500093757166,
127.11123984651228,
37.394309866061356,
127.11123025590503,
37.39416562176231
]
},
{
"distance": 32,
"duration": 29,
"vertexes": [
127.11123025590503,
37.39416562176231,
127.11124495280912,
37.39387738778665
]
},
{
"distance": 22,
"duration": 20,
"vertexes": [
127.11124495280912,
37.39387738778665,
127.11098522129426,
37.393875435346345
]
},
{
"distance": 70,
"duration": 63,
"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] ) | 필수 |