주소로 위경도 읽어오기 (지오코딩, geocoading)

우리가 데이터를 받을 때 위경도가 딸려오지 않는 경우가 많이 있습니다. 주소 만이라도 온전히 확보된 것이라도 감사해야 할 경우 인데요. 이 주소 목록만을 가지고 위경도를 가져오는 지오코딩 방법을 공유하겠습니다.

지오코딩에는 많은 방법이 알려져 있습니다만 여기에서는 제가 가장 가벼운 마음으로 즐겨쓰는 구글 AWESOME TABLE를 이용해보겠습니다. 일반 지메일 기능이나 구글 지스윗(업무용 지메일) 의 드라이브 기능으로 있는 스프레드시트의 애드온 기능입니다.

주소 데이터의 확보

먼저 드라이브로 이동하여 새 문서-구글 시트 – 빈시트만들기를 선택하여 문서를 하나 만듭니다.

헤더명은 “주소”로 하겠습니다. 주소가 아닌 다른 칼럼 이름도 관계 없습니다. 칼럼에는 변환할 주소를 준비해줍니다. 필요하면 구글링등을 통해 “주소록” 검색하시면 전국 유치원 주소록이라던가 쓸만한 주소록을 구할 수 있습니다.

변환할 주소정보가 따로 준비되어 있지 않고 샘플로도 충분하신 분은 아래 링크에 들어가셔서 파일-사본만들기를 눌러 사본을 준비하시기 바랍니다. 문서가 카피되어 본인 소유 의 문서로 생성됩니다.

https://docs.google.com/spreadsheets/d/14XKOoJexKJd2sTi42QMA2PjELOtOpXSHil08YkV4i4w/edit#gid=0

이 데이터는 제가 아는 어떤 조직의 주소록인데 동호수를 전부 삭제한 것입니다. 주소를 살펴보면서 새삼스럽게 느낀 것은 공동주택이 압도적으로 많다는 점입니다. 거의 대부분의주소가 아파트 아니면 빌라네요. 개인 주택으로 보이는 주소는 한손으로 꼽을 정도입니다.

구글 스프레드시트와 AWESOME TABLE

이제 데이터가 준비되었으니 사용할 연장을 확인해야 하겠습니다. 위 메뉴에서 부가기능을 눌러보세요. AWESOME TABLE이 보이면 넘어가시고, 안보이면 설치되어 있지 않다는 이야기이니 [부가기능 설치하기]만 보이면 그것을 눌러줍니다.

GEOCODE BY AWESOME TABLE 이미지 검색결과

AWESOME TABLE로 검색을 해보면 아래와 같은 목록이 보이는데 첫 앱을 선택해줍니다.

[설치]를 눌러서 구글 시트에서 사용할 수 있도록 설치합니다. 앱에 기능이 추가되는 것이니 별도의 설치 동작 등은 없고 권한 확인 및 인증 등을 확인하게 됩니다.

이제 [부가기능]으로 가서 [Geocode by Awesome Table]-[Start Geocoading]을 선택합니다. 아마 그 아래의 [Geocode on form submit]는 구글 폼 등을 통해서 자료를 자동수집할 경우 자동으로 데이터가 들어올 때 마다 주소를 위경도로 변환해주는 기능인 듯 합니다. 이 기능에 대해서는 별도 포스팅해보겠습니다.

주소의 변환 (Geo Coading)

[Start Geocoading]을 누르게 되면 아래와 같이 우측창이 나타나게 됩니다. 시트명은 그대로 사용하시면 되고, Address column을 지정해주면 됩니다. “주소” 혹은 다른 칼럼 명을 지정하면 됩니다. 그리고는 [Geocode!]를 눌러주면 됩니다.

Langitude, Longitude 칼럼이 자동으로 생기고 자동으로 주소 변환을 해줍니다. 50개 변환하는데 1분도 채 안걸린 듯 합니다. 저는 개인적으로는 자료가 많은 경우 몇천개씩 잘라서 별도의 시트에 붙여서 동시에 변환한 경우도 있습니다. 이렇게도 잘 동작됩니다.

오류의 보정

이 기능이 예전에는 오류율이 많았었는데 최근에는 편안하게 다른 분들에게 추천드릴 정도로 오류율이 상당히 개선되었습니다. 어찌되었건 오류가 나는 경우가 없지는 않은데요. 주소변환 오류가 발생한 경우 다시 한번 주소를 확인한 다음 구글맵으로 갑니다. http://map.google.com

google map 이미지 검색결과

검색창에 주소를 붙여넣기하고 검색을 눌러주면 위치가 나타나게 됩니다. 이 때 주소창을 보시면 @다음에 숫자가 이어진 부분이 있는데 이것이 바로 위경도 입니다. 맨 앞이 위도, 슬래시 다음이 경도, 그 다음이 zoom level (확대 수준) 입니다. z17이면 17단계까지 확대한 상태라는 겁니다.

하나 하나 이 숫자를 복제하는 것도 방법이지만 이 숫자를 더블클릭하시면 위경도와17z 까지 전부 선택됩니다. 이것을 복사합니다.

이것을 구글시트 해당 주소줄 맨 오른쪽에 붙여줍니다. 이와 같은 동작을 다른 오류난 주소들에도 반복해줍니다. 주소의 수동 검색이 끝났으며 이제 이것을 위경도 칼럼에 넣어주어야 하는데 먼저 쉼표로 이어진 텍스트를 각각 분리해야 합니다.

구글시트에는 [데이터]-[텍스트를 열로변환] 기능이 있습니다. 먼저 칼럼을 선택하고 이 기능을 실행하면 아래 그림과 같이 위도, 경도, z level 세 칼럼으로 나눠줍니다. 이렇게 나눠진 앞의 두 칼럼을 복사해서 왼쪽의 위경도 창에 붙여넣으면 됩니다.

이렇게 변환된 주소들은 맵에도 바로 표시할 수 있습니다. [Open map]을 선택하면 아래와 같은 지도가 나옵니다.

마무리

저는 태블로에서 변환된 위경도 주소를 활용할 계획이므로 이쯤에서 마무리하겠습니다. 참고로 이 기능은 일일 사용제한량이 있어서 수만~수십만개의 데이터를 변환하는데는 적절하지 않아보입니다. 대량 주소 변환에 대해서는 좋은 프로그램들이 좀 있다는데요 다음 기회에 추가 포스팅을 할 기회가 있을 듯 합니다.

 1,727 total views,  3 views today