References
-
지리데이터를 분석하다 보면 웹기반 지도서비스가 필요할 때가 있습니다.
-
API를 사용해서 notebook 상에서 띄워볼 수도 있지만 전체 기능이 필요하기도 합니다.
-
이럴 때는 웹브라우저를 켜고 구글 지도나 네이버 지도를 들어가 검색을 합니다.
- 주소를 알면 간단하겠지만 위경도 좌표밖에 모른다면 많이 성가십니다.
- 이 과정을 자동화 해보겠습니다.
1. 지도 URL 만들기
1.1. Google Map
- 구글 지도의 URL은
https://google.co.kr/maps/@{위도},{경도},{배율}z형식입니다. - 아래와 같이 간단한 함수를 만들어 위도, 경도, 배율을 URL로 바꿀 수 있습니다.
1 | def create_google_map(lat: float, lon: float, mag: int): |
1.2. 네이버 지도
-
네이버 지도의 URL은
http://map.naver.com/v5/search?c={x좌표},{y좌표},{배율},0,0,0,dh형식입니다.- 네이버 지도는 위도와 경도 대신 환산된 x, y 좌표를 받습니다.
- 네이버 지도 v5 기준으로
EPSG:3857좌표계를 사용하므로 환산 과정이 필요합니다.
-
pyproj의Proj로 기준 좌표계를 설정하고transform으로 변환을 수행합니다.
1 | from pyproj import Proj, transform |
- URL 마지막에
0,0,0,이라는 숫자가 있는데 각 자리의 의미는 다음과 같습니다. - 첫번째와 두번째 숫자는 의미가 없고, 세번째 숫자가 지도 타입을 결정합니다.
0: 일반 지도
1: 위성 지도
2: 위성지도 + 건물명, 도로명, 번지
3: 지형지도 + 건물명, 도로명, 번지
2. Pandas Dataframe에 적용하기
pandas.DataFrame이나geopandas.geoDataFrame에.apply()를 적용해서 구글 지도와 네이버 지도의 URL을 담을 수 있습니다.
1 | df['googlemap'] = df.apply(lambda x: create_google_map(x['lat'], x['lon']), axis=1) |