웹·모바일 앱에서 버스, 지하철, 기차 등 대중교통 수단을 이용한 경로 안내를 제공하려면 travelMode: "TRANSIT"
을 사용해야 합니다. 일반 드라이브나 도보 경로와는 요청·응답 방식이 조금 다르므로, 이 가이드에서 단계별 방법과 주의사항을 살펴보겠습니다.
1. 대중교통 경로 vs 다른 경로 차이
구분 | 기타 이동수단 | 대중교통 이동수단 |
---|---|---|
중간 웨이포인트 지원 | 가능 | 불가능 |
교통 회피 옵션 (톨·고속도로·페리) |
지원 | 미지원 |
트래픽 반영 | 지원 | 미지원 |
routingPreference | TRAFFIC_AWARE 등 다양하게 지정 가능 |
TransitPreferences만 지정 가능 |
응답 필드 | steps, polyline 등 | transitDetails, stepsOverview 등 대중교통 메타데이터 포함 |
2. 요청 전제 조건
travelMode
를 반드시"TRANSIT"
으로 설정- 중간 웨이포인트(
intermediateWaypoints
) 지정 불가 - 트래픽, 톨회피 등
routeModifiers
옵션 미지원 routingPreference
에는transitPreferences
만 지정 가능 (예:LESS_WALKING
,FEWER_TRANSFERS
)
3. 대중교통 경로 요청 단계
- 출발지(origin)와 도착지(destination) 설정
travelMode: "TRANSIT"
지정- 필드 마스크(
X-Goog-FieldMask
)로 필요한 응답 필드 지정 - 선택: 대중교통 선호도 설정 (
transitPreferences
)
4. 추천 응답 필드 요청
요청 정보 | 필드 마스크 예시 |
---|---|
모든 대중교통 세부정보 | routes.legs.steps.transitDetails |
걸음 요약 | routes.legs.stepsOverview |
각 단계 시작/종료 위치 | routes.legs.steps.startLocation, routes.legs.steps.endLocation |
요금 정보 | routes.travelAdvisory.transitFare |
5. curl 요청 예시
curl -X POST 'https://routes.googleapis.com/directions/v2:computeRoutes' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.legs.steps.transitDetails,routes.travelAdvisory.transitFare' \
--data-raw '{
"origin": {
"location": { "latLng": { "latitude": 37.5665, "longitude": 126.9780 } }
},
"destination": {
"location": { "latLng": { "latitude": 37.5512, "longitude": 126.9882 } }
},
"travelMode": "TRANSIT",
"transitPreferences": {
"allowedTravelModes": ["BUS","SUBWAY"],
"routingPreference": "LESS_WALKING"
}
}'
6. 응답 예시
{
"routes": [
{
"legs": [
{
"steps": [
{
"travelMode": "WALK",
"distanceMeters": 200,
"duration": "180s",
"polyline": { "encodedPolyline": "abcd…" }
},
{
"travelMode": "TRANSIT",
"distanceMeters": 5000,
"duration": "1200s",
"transitDetails": {
"line": {
"vehicle": { "type": "SUBWAY" },
"shortName": "2호선"
},
"departureStop": { "name": "시청역" },
"arrivalStop": { "name": "을지로입구역" }
},
"polyline": { "encodedPolyline": "wxyz…" }
},
{
"travelMode": "WALK",
"distanceMeters": 300,
"duration": "240s",
"polyline": { "encodedPolyline": "mnop…" }
}
]
}
],
"travelAdvisory": {
"transitFare": { "currency": "KRW", "value": 1350 }
}
}
]
}
7. 주의사항 및 팁
- 대중교통 경로는 중간 웨이포인트를 지원하지 않으므로, 여러 정거장을 경유하려면 개별 요청을 연속으로 호출하세요.
transitPreferences.allowedTravelModes
로 원하는 대중교통 유형만 필터링할 수 있습니다.- 요금 정보(
transitFare
)는 API가 해당 정보를 제공할 수 있는 경우에만 반환됩니다.
Google 지도 Routes API의 대중교통 경로 기능을 활용하면, 복잡한 환승 정보와 도보 구간을 포함한 상세 내비게이션을 제공할 수 있습니다.
'개발 > 구글지도' 카테고리의 다른 글
구글 지도 API로 실시간 경로 계산하기: Compute Routes (1) | 2025.06.05 |
---|---|
구글 지도 Routes API 중간 경유지 설정: Intermediate Waypoints (0) | 2025.06.04 |
구글 지도 Routes API로 짧은 거리 경로 계산하기: Shorter Distance Routes (0) | 2025.06.02 |
구글 지도 Routes API 대체 경로 요청하기: Alternative Routes (0) | 2025.06.01 |
구글 지도 Routes API 친환경 경로(Eco Routes) 사용 방법 (0) | 2025.05.31 |