Professional
주소를 입력 받아 지도에 마커로 보여주기
듬쑥영이
2024. 9. 2. 21:46
API 를 사용하는 방법에 대해서 어느정도 이제 알것 같다.
1. 네이버 API 등록 완료 했고.
2. 다이나믹 웹을 사용하기 위해서는 웹주소를 등록해야 한다.
아래는 chatgpt 내용
네이버 지도를 사용하여 엑셀에 있는 주소를 마커로 표시하려면 다음과 같은 절차를 따르면 됩니다. 여기서는 Python과 네이버 지도 API를 활용하는 방법을 설명하겠습니다.
1. 필요한 라이브러리 설치
우선 Python에서 엑셀 파일을 읽고, 네이버 지도 API를 활용하기 위해 필요한 라이브러리를 설치해야 합니다.
bash
코드 복사
pip install pandas openpyxl folium
2. 네이버 지도 API 키 발급
네이버 클라우드 플랫폼에서 네이버 지도 API 키를 발급받습니다.
지도 API를 사용하기 위해서는 Client ID와 Client Secret이 필요합니다.
3. 엑셀 파일 준비
엑셀 파일에는 주소가 포함된 열이 있어야 합니다. 예를 들어, 엑셀 파일에 "주소"라는 열이 있다고 가정합니다.
4. 파이썬 스크립트 작성
파이썬에서 엑셀을 읽고, 주소를 지오코딩한 후 지도에 마커를 표시하는 과정을 다음과 같이 구현할 수 있습니다.
import pandas as pd import folium import requests # 네이버 지도 API 정보 client_id = 'YOUR_CLIENT_ID' client_secret = 'YOUR_CLIENT_SECRET' # 엑셀 파일 읽기 df = pd.read_excel('addresses.xlsx') # 지도 생성 (기본 위치를 설정, 예: 서울 중심부) map = folium.Map(location=[37.5665, 126.9780], zoom_start=11) # 주소를 위도와 경도로 변환 후 지도에 마커 추가 for address in df['주소']: url = f"https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode?query={address}" headers = { "X-NCP-APIGW-API-KEY-ID": client_id, "X-NCP-APIGW-API-KEY": client_secret, } response = requests.get(url, headers=headers) data = response.json() if data['addresses']: lat = float(data['addresses'][0]['y']) lon = float(data['addresses'][0]['x']) folium.Marker([lat, lon], popup=address).add_to(map) else: print(f"Geocoding failed for address: {address}") # 지도를 HTML 파일로 저장 map.save("map.html") |
5. 스크립트 실행
위 스크립트를 실행하면 엑셀 파일에 있는 주소가 마커로 표시된 지도를 map.html 파일로 생성할 수 있습니다.
6. 결과 확인
생성된 map.html 파일을 열면, 네이버 지도가 표시되고 엑셀에 입력한 주소들이 마커로 표시된 것을 확인할 수 있습니다.
주의사항
- 네이버 지도 API의 사용량에는 제한이 있으므로, 대량의 주소를 처리할 경우 추가 요금이 발생할 수 있습니다.
- 주소가 정확하지 않으면 지오코딩이 실패할 수 있으며, 이 경우 위에서 Geocoding failed 메시지가 출력됩니다. 이 경우에는 주소를 수정하거나 구체화해야 합니다.