기술/프로그래밍

네이버 주소 검색 - 위경도 변환 파이썬 자동화 (네이버 지도 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

 

 

 

자유롭게 활용하세요.