Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 Google Distance Matrix API 활용하기: 두 장소 간 거리와 소요 시간 계산 방법

대부분의 사람들은 출발지와 목적지 사이의 거리를 확인하고 이동 시간을 파악할 때 구글 지도(Google Maps)를 이용합니다. 개발자와 애호가들을 위해 구글은 두 장소 간의 거리와 소요 시간을 계산할 수 있는 Google Distance Matrix API를 제공합니다.

이 API를 사용하려면 먼저 Google Maps API 키가 필요합니다. 아래 링크에서 무료로 발급받을 수 있습니다.

https://developers.google.com/maps/documentation/distance-matrix/get-api-key

필요한 라이브러리

Python에서는 다양한 라이브러리를 사용해 이 기능을 구현할 수 있습니다.

  • Pandas
  • googlemaps
  • Requests
  • Json

이 글에서는 가장 기본적인 requestsjson 라이브러리를 사용합니다. Pandas를 활용하면 여러 출발지와 목적지를 한 번에 처리하고 결과를 CSV 파일로 저장하는 것도 가능합니다.

구현 코드

아래는 Distance Matrix API를 호출하여 두 도시 간 거리와 소요 시간을 조회하는 예제 코드입니다.

# 필요한 라이브러리 임포트
import requests
import json

# 출발지와 목적지 도시 입력 받기
originPoint = input("출발 도시를 입력하세요: ")
destinationPoint = input("도착 도시를 입력하세요: ")

# Google Maps API 키를 변수에 저장
apiKey = 'YOUR_API_KEY'

# Google Maps API URL을 변수에 저장
url = 'https://maps.googleapis.com/maps/api/distancematrix/json?'

# requests 모듈의 get 메서드를 호출하고 응답 객체를 저장
r = requests.get(url + 'origins=' + originPoint + '&destinations=' + destinationPoint + '&key=' + apiKey)

# 응답 객체에서 JSON 형식의 결과 추출
res = r.json()

# 결과 출력
print(res)

실행 결과

델리(Delhi)에서 카르나타카(Karnataka)까지의 거리를 조회한 예시입니다.

출발 도시를 입력하세요: Delhi
도착 도시를 입력하세요: Karnataka
{'destination_addresses': ['Karnataka, India'],
 'origin_addresses': ['Delhi, India'],
 'rows': [{'elements': [{'distance': {'text': '1,942 km', 'value': 1941907},
   'duration': {'text': '1 day 9 hours', 'value': 120420},
   'status': 'OK'}]}],
 'status': 'OK'}

결과 해석

응답 데이터에서 distance 항목은 총 이동 거리(1,942km)를, duration 항목은 예상 소요 시간(1일 9시간)을 나타냅니다. value 필드에는 미터(m)와 초(s) 단위의 수치가 포함되어 있어 프로그램에서 수치 연산에 바로 활용할 수 있습니다. 또한 status가 'OK'이면 요청이 정상적으로 처리된 것을 의미합니다.