구글 지도 Routes API 위치 지정: 다양한 방식으로 경로 시작·종료 지점 설정하기

Google 지도 Routes API를 사용해 내비게이션 기능을 구현할 때, 가장 먼저 처리해야 할 과제는 ‘어디서부터 어디까지 이동할 것인가’를 정확히 API에 알려주는 일입니다. 이때 지원되는 위치 지정 방식을 잘 이해하면, 주소가 없는 지역이나 복잡한 지명에서도 안정적으로 경로를 계산할 수 있습니다. 이 글에서는 Specify Locations 문서를 바탕으로, Routes API에서 사용할 수 있는 네 가지 위치 지정 방법과 설정 예시를 단계별로 살펴보겠습니다.

 

1. 위치 지정의 개요

  • Waypoint 객체를 통해 출발지(origin), 도착지(destination), 그리고 필요에 따라 중간 경유지(intermediateWaypoints)를 정의합니다.
  • Waypoint 내의 location 필드에 위치 정보를 넣으면, API가 해당 지점을 기준으로 경로를 계산합니다.

2. 지원되는 위치 지정 방식

방식 설명
Place ID Google Places에 등록된 고유 식별자. 주소 변경에도 안정적이며 권장 방식입니다.
위도·경도 좌표 실수형 숫자로 지정. 즉시 사용할 수 있어 주소 미지원 지역에서도 활용 가능.
주소 문자열 "서울특별시 강남구 테헤란로 123" 같은 텍스트. 간단하지만 오타나 비표준 표기에서 오류 가능성이 있습니다.
Plus Code 전 세계 어디서나 사용할 수 있는 좌표 기반 인코딩 주소. 주소가 없는 오지에서도 유용합니다.

3. JSON 요청 예시 (REST)

3-1. Place ID 사용 예

{
  "origin": {
    "location": { "placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4" }
  },
  "destination": {
    "location": { "placeId": "ChIJLfySpTOuEmsRsc_JfJtljdc" }
  },
  "travelMode": "DRIVE"
}

3-2. 위도·경도 좌표 사용 예

{
  "origin": {
    "location": {
      "latLng": { "latitude": 37.5665, "longitude": 126.9780 }
    }
  },
  "destination": {
    "location": {
      "latLng": { "latitude": 37.5512, "longitude": 126.9882 }
    }
  },
  "travelMode": "DRIVE"
}

3-3. 주소 문자열 사용 예

{
  "origin": {
    "location": { "address": "서울특별시 중구 세종대로 110" }
  },
  "destination": {
    "location": { "address": "서울특별시 용산구 이태원로 247" }
  },
  "travelMode": "DRIVE"
}

3-4. Plus Code 사용 예

{
  "origin": {
    "location": { "address": "849VCWC8+R9" }
  },
  "destination": {
    "location": { "address": "CRHJ+C3 Stanford, CA 94305, USA" }
  },
  "travelMode": "DRIVE"
}

4. 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.distanceMeters,routes.duration' \
  --data-raw '{
    "origin": {
      "location": { "placeId": "ChIJN1t_tDeuEmsRUsoyG83frY4" }
    },
    "destination": {
      "location": { "address": "서울특별시 용산구 이태원로 247" }
    },
    "travelMode": "DRIVE"
  }'

5. 주의사항 및 팁

  • Place ID 우선 사용: 지명 변경에도 안정적이며, 주소 문자열 오류 위험을 줄여줍니다.
  • 주소 문자열 신중 사용: 비표준 표기나 축약어로 인한 오차 가능성이 있어, 가능하면 구체적 주소를 사용하세요.
  • Plus Code 활용: 오지·개발도상국 등 주소 체계가 미비한 지역에서 특히 유용합니다.
  • 여러 Waypoint: intermediateWaypoints 배열에 위와 같은 방식으로 복수의 Waypoint 객체를 추가해 중간 경유지를 설정할 수 있습니다.

Routes API에서 지원하는 네 가지 위치 지정 방식을 적절히 활용하면, 전 세계 어디서든 정확한 경로 계산이 가능합니다.

Place ID와 Plus Code 조합을 활용하면, 안정성과 범용성을 모두 확보할 수 있습니다.