구현한 기능 :
지원자들이 자유롭게 적은 주소에서, 그 주소를 대표하는 위치를 특정해야 했다.
즉, 네이버 지도에 하나하나 검색해서, 제일 대표되는 주소지 하나를 선정해 그 위치를 반환한다.
(위경도로)
더보기
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
자유롭게 활용하세요.
'기술 > 프로그래밍' 카테고리의 다른 글
[영어 유튜브를 번역 후 한국어 글로 바꾸는 서비스] 0. 자료 조사 (0) | 2024.07.06 |
---|---|
네이버 플레이스 예약 정보 시스템화 : 0. 개요 (2) | 2024.01.29 |
아이폰 단축어 (Iphone Shortcut App) (0) | 2024.01.13 |
파이썬 BeautifulSoup 모듈 (0) | 2024.01.02 |
파이썬 requests 모듈 (0) | 2024.01.02 |