기술/프로그래밍
네이버 주소 검색 - 위경도 변환 파이썬 자동화 (네이버 지도 API)
파크텐
2024. 1. 5. 15:48
구현한 기능 :
지원자들이 자유롭게 적은 주소에서, 그 주소를 대표하는 위치를 특정해야 했다.
즉, 네이버 지도에 하나하나 검색해서, 제일 대표되는 주소지 하나를 선정해 그 위치를 반환한다.
(위경도로)
더보기
input.txt (입력예시)
서울시 종로구 삼청동
서울시 성동구 사근동
서울시 광진구 구의동
서울시 동대문구
서울시 동대문구 전농동
서울시 동작구 신대방동
서울시 중랑구 상봉동
import requests
def get_coordinates(address, client_id, client_secret):
url = "https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode"
headers = {
"X-NCP-APIGW-API-KEY-ID": client_id,
"X-NCP-APIGW-API-KEY": client_secret
}
params = {"query": address}
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
data = response.json()
if data['addresses']:
latitude = float(data['addresses'][0]['y'])
longitude = float(data['addresses'][0]['x'])
return f"{latitude:.2f},{longitude:.2f}"
else:
return "0.00,0.00"
else:
print(f"오류 발생 - 상태 코드: {response.status_code}, 응답: {response.text}")
return "0.00,0.00"
def process_addresses(input_file, output_file, client_id, client_secret):
with open(input_file, 'r', encoding='utf-8') as file:
addresses = file.readlines()
with open(output_file, 'w', encoding='utf-8') as file:
for address in addresses:
address = address.strip()
if address:
coordinates = get_coordinates(address, client_id, client_secret)
file.write(f"{address}: {coordinates}\n")
# 사용 예시
client_id = "당신의ID"
client_secret = "당신의secret"
process_addresses('input.txt', 'output.txt', client_id, client_secret)
더보기
output.txt (입력예시)
서울시 종로구 삼청동: 37.59,126.98
서울시 성동구 사근동: 37.56,127.05
서울시 광진구 구의동: 37.54,127.09
서울시 동대문구: 37.57,127.04
서울시 동대문구 전농동: 37.58,127.05
서울시 동작구 신대방동: 37.49,126.91
서울시 중랑구 상봉동: 37.60,127.09
* api 발행 관련
설명하기 귀찮으나, 어렵지 않습니다. - geocoding api를 받으세요
https://console.ncloud.com/naver-service/application
자유롭게 활용하세요.