Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 구현
- 너비우선탐색
- GroupBy
- cosine
- 그리디
- TF-IDF
- 백준
- 공공데이터
- 유클리드
- 누적합
- 분할정복
- 우선순위큐
- 깊이우선탐색
- 코사인유사도
- NLP
- 건축물대장정보
- 재귀
- 비트마스킹
- dp
- xmltodict
- 그래프탐색
- 전처리
- geopy
- pandas
- Geocoding
- 지진대피소
- 그래프이론
- 유사도
- 자연어처리
- 수학
Archives
- Today
- Total
정리용
[geocoding] 네이버 API를 이용한 주소 위경도로 변환 본문
0.
인증키의 발급과 openAPI 사용의 번거러움이 있으나
파이썬 라이브러리인 Geopy 보다 훨씬 정확한 위치를 구분이 가능하다.
geopy 는 번지 수준의 변환을 보여주나
NAVER API는 건축물 수준의 보다 세밀한 좌표로 변환이 가능하다
1. 인증키 발급
(1) 먼저 네이버 클라우드 콘ㄷ솔에 접속하여 로그인을 한다
https://console.ncloud.com/dashboard
(2) Products & Servies 페이지에 있는 AI / NAVER API 을 클릭한다

(3) Application 이름을 임의로 작성하고 gecoding을 체크한다.
좌표를 도로명으로 역변환해주는 reverse gecoding 도 함깨 체크하는 것을 추천
앞서 설명했듯 이 두개는 무료의 범위가 상당히 넓다.

(3) 발급 완료
인증 정보 박스를 클릭하여 client ID 와 client Secret 를 확인한다.

2. 코드
주석(#) 마다 blank 의 구분
# API 함수 정의
import urllib.request
def search_map(search_text):
client_id = id #클라이언트 ID값
client_secret = secret #클라이언트 Secret값
encText = urllib.parse.quote(search_text)
request = urllib.request.Request(url)
request.add_header('X-NCP-APIGW-API-KEY-ID', client_id)
request.add_header('X-NCP-APIGW-API-KEY', client_secret)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
return response_body.decode('utf-8')
else:
print("Error Code:" + rescode)
# csv 불러오기
import pandas as pd
df = pd.read_csv('/content/drive/MyDrive/csv/건축물대장정보.csv')
# 결측치 제거
df.dropna(subset=['newPlatPlc'], inplace=True)
df.shape
# 주소 컬럼을 리스트로 변환
lst = df['newPlatPlc'].tolist()
lst
# 반복문으로 좌표 list 생성
x_lst = []
y_lst = []
for i in range (len(lst)):
user = search_map(lst[i])
user=json.loads(user)
try :
x_lst.append(user['addresses'][0]['x'])
y_lst.append(user['addresses'][0]['y'])
except : # 주소 오류로 변환이 불가능한 경우
x_lst.append('0')
y_lst.append('0')
print(i ,'/' , len(lst))
# 생성한 list를 dataframe 컬럼으로 추가
df['x'] = x_lst
df['y'] = y_lst
#

이후 to_csv 를 이용해 csv로 저장
'프로젝트' 카테고리의 다른 글
| dd (0) | 2022.02.22 |
|---|---|
| [geocoding] 파이썬 geopy를 이용한 주소 위경도로 변환 (0) | 2022.02.11 |
| [openAPI] 공공데이터 - 건축물대장정보 (xmltodict) (0) | 2022.02.10 |
| [geocoding] 구글드라이브를 이용한 주소 위경도로 변환 (0) | 2021.12.14 |
Comments