본문 바로가기

R-시각화

여행 맛집 구글 지도 시각화

예전에 제주도 여행 지도 구현을 학습하다 한글 엔코딩 문제로 미완성인 상태로 넘어간 적이 있다. 이번 조윤선 장관 맛집 지도가 화제가 되면서 예전에 못다한 코드를 완성해 보고자 한다. 


우선 제주도 음식점 맛집 List를 txt화일로 생성한다. 이 때 유의점은 저장시 한글이므로 반드시 엔코딩을 UTF-8로해야 한다.


제주 국제공항

제주 돔베돈

제주 공룡랜드

제주 협재해수욕장

제주 한림공원

제주 유리의성

제주 오설록티뮤지엄

제주 테디베어뮤지엄

제주 오성식당

제주 중문관광단지

제주 서귀포KAL호텔

제주 주상절리

제주 성산일출봉

제주 우도

제주 러브랜드

제주 잠수함

제주 용두암

제주 섭지코지

제주 산방산

제주 신비의도로

제주 외돌개

제주 에코랜드


찾고자 하는 지명이 맞는지 최종 확인하기 위해서는 google.co.kr/maps에서 검색 후 지명 표시에서 오른쪽 클릭하여 이곳이 궁금한가요?(What's hear?)를 확인하면 지명의 위도와 경도를 확인 할 수 있다. 

google map에서 인식가능한 형태(이름, 위도:경도 정보 필요)로 만들기 위해 아래와 같이 실행한다. 


place<-readLines("제주여행코스utf8.txt",encoding="UTF-8")

lonlat<- geocode(place) #경도 위도 저장

place <- gsub("제주 ","",place)  #제주 삭제

df_lst <- cbind(place,lonlat) # 여행지이름 경도 위도의 데이터프레임


latlon <- paste(df_lst$lat,":",df_lst$lon) #위도 경도로 재배치

latlon <- gsub(" ","",latlon) #빈칸 삭제

placelst <- cbind(df_lst, latlon)


이렇게 하면 결과 placelst의 결과는 다음과 같아 진다. 


           place      lon      lat                 latlon

1  <U+FEFF>국제공항 126.4914 33.51041 33.5104135:126.4913534

2            돔베돈 126.5267 33.51554 33.5155418:126.5266871

3          공룡랜드 126.4328 33.44248 33.4424844:126.4327541

4      협재해수욕장 126.2397 33.39413  33.3941325:126.239728

5          한림공원 126.2393 33.38952  33.389522:126.2392559

6          유리의성 126.2737 33.31461  33.3146079:126.273664

7    오설록티뮤지엄 126.2894 33.30589    33.305894:126.28942

8    테디베어뮤지엄 126.4122 33.25035 33.2503549:126.4121722

9          오성식당 126.4146 33.25546  33.255457:126.4145759

10     중문관광단지 126.4124 33.24865 33.2486522:126.4124374

11    서귀포KAL호텔 126.5192 33.25469 33.2546926:126.5192172

12         주상절리 126.4251 33.23775 33.2377549:126.4250671

13       성산일출봉 126.9425 33.45806     33.458056:126.9425

14             우도 126.9540 33.50430  33.5042977:126.954048

15         러브랜드 126.4900 33.45164       33.451638:126.49

16           잠수함 126.9322 33.47227   33.472273:126.932162

17           용두암 126.5119 33.51615 33.5161459:126.5118814

18         섭지코지 126.9293 33.42354 33.4235416:126.9293266

19           산방산 126.3134 33.24107 33.2410682:126.3134467

20       신비의도로 126.4878 33.45116 33.4511631:126.4878066

21           외돌개 126.5446 33.23907   33.239072:126.544592

22         에코랜드 126.6670 33.45652 33.4565209:126.6670479


상기 식에서 place열과 latlon열을 이용해 최종적으로 gvisMap 함수를 이용해 아래와 같이 지도에 표시하게 된다. 





Script 화일: 

jeju_geocode.R