주소 데이터를 지도에 표시하고 싶다구요! (지오코딩)

주소 데이터를 지도에 쫙 표시하는 쉬운 방법이 있습니다. 이를 위해서는 주소를 좌표로 변환해야 하는데요. 이를 전문 용어로 지오코드(Geocode) 또는 지오코딩(Geocoding)이라고 합니다.

예를 들어 다음처럼 엑셀로 정리된 주소 데이터가 있습니다.

이 데이터를 아래처럼 엑셀에서 CSV라는 파일로 변환합니다. (2024년 7월 20일을 기준으로 CSV로 변환하지 않고 엑셀 파일을 그대로 사용할 수 있어요!) CSV로 변환되면 엑셀이 설치되어 있지 않아도 텍스트 편집기에서 쉽게 보고 편집도 할 수 있어요.

이제 주소 데이터 준비는 완료! 간단하죠? 다음으로 웹브라우저에서 지오서비스웹(https://www.geoservice.co.kr)에 접속합니다.

아직 가입이 안되어 있다면 샤샤삭 가입하시면 됩니다. 그리고 로그인해서 앞서 준비한 CSV 파일을 업로드 해야 합니다. 아래처럼 3단계로 업로드할 수 있는 창을 표시할 수 있어요.

위처럼 진행하면 데이터를 업로드할 수 있는 창이 다음처럼 나타나요.

이 창에서 CSV 파일을 선택하거나 드레그앤드랍해서 업로드할 수 있어요. 위의 모습은 이미 해당 CSV 파일을 업로드하기 위해 선택한 결과구요. 이렇게 되었다면 추가 버튼을 클릭해서 업로드 합니다. 업로드가 완료되면 아카이브에 업로드한 항목이 나타나요.

이제 이 데이터를 지도에 표시하기 위해 좌표로 변환해 볼께요. 아카이브 창을 닫고 메인메뉴에서 “주소를 좌표로 변환”을 찾아 실행합니다.

그럼 지오코딩 창이 표시되는데, 여기서 아래처럼 변환할 데이터 파일을 선택합니다.

그럼, 선택된 데이터 파일의 내용이 아래처럼 지오코딩 창에 표시되요.

컬럼명(필드명)을 영문으로 해야 하는데 한글로 하면 위에서처럼 자동으로 영문으로 변경되니까 CSV 파일을 만들 때 처음부터 영문으로 지정하면 좋아요. 자! 여기서 중요해요. 주소 값을 가진 필드명을 정확히 지정해야 합니다. 위의 경우는 field2가 주소값을 가지고 있으니 아래처럼 “주소 필드”에 field2를 선택하면 되요.

주소 필드를 지정하면 지정된 필드의 데이터를 보여주고 정말 맞는지 물어보니깐, 잘보고 확인하세요. 이제 정말 모든 준비가 끝났어요! 좌표로 변환하기 위해서 아래 화면의 버튼을 클릭하면 변환이 시작되요!

변환이 완료되면 다음처럼 그 결과가 표시되요.

변환할 주소 건수가 약 25,900개 정도 되는데 소요 시간이 2분 19초 걸렸네요. 변환된 데이터를 다운로드 받기 위해서는 아카이브에 업로드해야 하니 위의 화면에서 “예” 버튼을 클릭합니다. 그러면 결과 데이터를 압축하고 다음처럼 아카이브에 업로드할 수 있는 창이 떠요.

“제목”에 원하는 내용을 입력하면 되고 “추가” 버튼을 클릭하면 아카이브에 입력된 제목으로 업로드가 되요. 여기서 다시 아카이브를 클릭해서 아카이브를 살펴보면 다음과 같아요. 보시면 업로드된 결과 파일이 보입니다.

업로드된 결과 파일은 레이어로 추가해서 바로 지도에서 살펴볼 수도 있고 파일을 다운로드 받을 수도 있어요. 아래처럼 결과 파일 항목을 클릭해서 레이어로 추가할지 다운로드 받을지 선택할 수 있어요.

다운로드 받으면 다운로드 폴더에 파일이 저장되는데, 결과 파일의 변환 좌표가 10,000개 이하일 때는 무료로 받을 수 있어요. 여기서는 다운로드 받지 않고 “레이어로 추가하기”를 선택하면 레이어 이름을 원하는 내용으로 입력하고 진행하면 다음처럼 지도에 레이어로 추가되요.

지도에 표시된 포인트를 클릭하면 위의 화면처럼 상세 정보가 팝업으로 표시되어 해당 위치에 대한 정보를 바로 확인할 수 있어요.

원한다면 지오코딩을 통해 생성된 결과를 편집할 수 있습니다. 그에 대한 내용은 아래를 참고하시기 바래요.

정밀한 지오코딩 만들기 (편집 기능 활용)

eslint error : ‘…’ is missing in props validation

아래의 컴포넌트는 다음과 같은 lint 에러가 표시된다. 가볍게 무시해도 되는데 이 에러를 표시하지 않도록 해보자.

export default function Experience({ loaded }) {  
  ...
}

이런 해당 에러는 컴포넌트의 props에 대한 유효성 체크를 위한 사항을 지정하라는 의미이다. 여기서는 loaded인데, 이 load의 타입을 지정하기 위해 다음처럼 코드를 추가로 입력한다.

Experience.propTypes   = {
  loaded: PropTypes.bool
}

추가적으로 loaded가 필수 속성일 경우 다음처럼 지정하면 됩니다.

Experience.propTypes   = {
  loaded: PropTypes.bool.isRequired
}

엑스알 지오코더 (XrGeocoder) v4.5 임대 라이선스 및 사용 설명

이 프로그램은 지오코딩과 리버스 지오코딩 기능을 제공합니다. 지오코딩은 주소를 좌표로 변환하고 반대로 리버스 지오코딩은 좌표를 주소로 변환합니다. 아래의 링크를 클릭해 내려 받아 설치하시면 됩니다.

기간 라이선스를 구매해야 사용할 수 있는 프로그램으로 사용 기간에는 변환 건수에 제한 없이 사용할 수 있습니다. 행정처리 상 여러번의 인터넷 결제가 어려운 관공서 및 회사에 추천 드립니다. 각 라이선스 기간에 대한 비용은 다음과 같습니다. 라이선스 신청은 프로그램을 실행하여 간단히 하실 수 있으며, 신청하시면 담당자가 확인 후 전화로 진행을 도와 드립니다.

라이선스 기간 허용 PC (동일 IP 대) 비용 (VAT 포함)
1개월 최대 1대 2,200,000원
6개월 최대 2대 4,400,000원
12개월 최대 3대 7,700,000원

만약 라이선스 없이 이용하고자 할 경우 별도의 설치 없이 이용할 수 있는 웹 기반의 지오서비스웹을 사용하시기 바랍니다. 이 프로그램과 지오서비스웹의 지오코딩은 동일한 엔진을 사용하여 같은 성능과 정확도를 제공합니다. (단, 인터넷 환경 및 동시 사용자가 많을 경우 속도가 느려질 수 있으며 1 건당 평균 0.01초 소요)

사용 설명

주소를 좌표로 변환하기

변환할 주소는 아래의 그림처럼 엑셀 또는 메모장을 통해 CSV 포맷으로 저장하여 사용할 수 있습니다. CSV는 각 데이터를 컴마(,)로 구분하는 데이터 형식이며 첫줄은 반드시 영문의 필드명으로 구성되어야 합니다.

이 입력 데이터를 GeoCoder-Xr 프로그램에서 “입력파일” 버튼을 통해 읽은 후 주소 필드를 지정하고 결과 포맷으로 저장할 SHP 파일을 지정하면 아래의 화면처럼 구성됩니다.

이제 좌표로 변환하기 위한 시작 버튼을 누르면 좌표로 변환됩니다. 성공적으로 변환되면 아래의 화면처럼 변환된 지점이 지도에 표시됩니다.

좌표를 주소로 변환하기

반대로, 좌표를 주소로 변환할 수 있으며 아래 화면과 같은 CSV 데이터를 사용합니다.

위의 CSV 데이터를 입력 파일로 지정한 화면은 다음과 같습니다.

지원되는 좌표계(EPSG)

주소를 좌표로 변환할 때 적용되는 좌표계는 EPSG 방식으로 지정할 수 있으며 현재 지원되는 EPSG는 다음과 같습니다.

  • EPSG:4326 – WGS84 타원체의 경위도 좌표계
  • EPSG:3857 – Google, VWorld의 좌표계
  • EPSG:5174 – 경도 10.405초 보정된 Bessel 타원체의 TM 중부원점
  • EPSG:5179 – GRS80 타원체의 UTM-K 좌표계