지리정보시스템(GIS)를 활용한 통계지도

지리정보시스템(GIS)의 중요한 기능 중 하나는 데이터에 대한 효과적인 시각화입니다. 그 중 위치에 기반하여 통계 데이터를 주제도와 그래프의 형태로 시각화 할 수 있습니다. 이러한 통계지도 작성을 위해 통계 데이터로써 아래와 같이 엑셀 등과 같은 프로그램에서 저장된 파일 사용합니다.

위의 데이터를 보면 행정구역의 이름에 대한 다양한 통계값들이 나열되어 있어 있는 형태입니다. 이를 컴마(,)로 값을 분리한 형식인 CSV로 저장합니다. 이처럼 위와 같은 CSV 형식의 데이터 파일의 남자와 여자에 대한 인구수를 합해 주제도로 표현한 통계지도는 다음과 같습니다.

또한 아래는 동일한 데이터 파일에 대해서 여자와 남자의 인구수를 축으로 하여 파이차트로 표현한 통계지도입니다.

위의 통계지도는 넥스젠(NexGen)이라는 GIS 솔루션을 통해 작성된 것인데요. 넥스젠에서 통계지도 기능에 대한 활용 동영상은 아래 글을 참고하시기 바랍니다.

넥스젠(NexGen)의 통계지도 기능

웹 GIS 솔루션, NexGen 소개

웹 GIS 솔루션, NexGen은 GS인증 1등급 제품인 GIS 미들웨어 서버 GeoService-Xr과 오픈소스로 GitHub에 공개된 웹 클라이언트 엔진 FingerEyes-Xr로 개발되었습니다.

NexGen은 GIS 솔루션으로써 갖춰야할 기본적인 기능을 기반으로 사용자가 원한는 공간 데이터를 추가하여, 이 데이터와 관련된 기능을 커스마이징을 통해 추가할 수 있는 솔루션입니다. NexGen은 다음과 같은 기능으로 구성되어져 있습니다.

위의 기능은 NexGen에서 기본적으로 제공되는 기능으로써, 범용적으로 활용할 수 있는 새로운 기능을 연구하여 지속적으로 추가되고 있습니다. 넥스젠(NexGen)은 긍정적인 평가를 받는 최신 기술을 활용하고 사용자의 니즈를 기반으로 지속적으로 발전하는 것을 목표로 하기 때문입니다.

위의 다이어그램 중 스타 쿼리 기능은 하나의 매우 심플한 UI를 통해 위치와 관련된 모든 것들을 검색할 수 있는 기능으로 아래의 글을 통해 좀더 자세히 살펴보실 수 있습니다.

넥스젠(NexGen)의 스타쿼리(* Query) 기능

또한 공간 데이터 편집은 웹 환경에서 공간 데이터와 속성 데이터를 사용자가 바로 편집할 수 있으며, 편집 이력에 대한 Undo/Redo 기능과 스냅핑을 편집을 위한 편의 기능으로써 제공하는데, 아래의 글을 통해 좀더 자세히 살펴볼 수 있습니다.

넥스젠(NexGen)의 공간 데이터 편집 기능

그리고 3차원 지형 가시화는 2차원 형태의 지도를 사용하다가 원하는 지역을 3차원으로 가시화하여 살펴볼 수 있는 기능으로, 아래의 글을 통해 좀더 자세한 내용을 살펴보실 수 있습니다.

NexGen에서 지형에 대한 3차원 시각화 기능

또한 맵 커뮤니케이터 기능은 NexGen을 통해 지도 기반으로 사용자 간의 의사소통이 가능하고 상호간의 업무 공유가 가능한 기능입니다. 이와 관련된 자세한 내용은 다음 글을 통해 설펴보실 수 있습니다.

맵을 이용한 정보 공유, 맵 커뮤니케이터 기능 소개

이 외에 이 글에서 언급하지 못한 다른 기능들은 이 사이트의 검색을 통해 내용을 파악하실 수 있습니다.

GeoService-Xr의 특장점, “Geocoding 기능”

GIS 시스템은 Location, 즉 위치를 기반으로 운영되는 시스템입니다. 위치를 나타내는 가장 중요하고, 가장 많이 활용되는 것은 무엇일까요? 좌표일까요? 아닙니다. 바로 주소입니다. 이미 컴퓨터, GPS가 발명되기 전부터, 그리고 좌표라는 개념이 존재하기 이전부터 주소는 사용되어 왔습니다.

즉, 사용자는 주소를 통해 자신이 원하는 위치를 빠르게 찾고, 그 위치를 중심으로 GIS의 여러가지 기능을 실행해 사용자가 원하는 원하는 결과를 얻습니다. 이처럼 주소는 사용자에게 있어 위치에 대한 매우 중요한 지표가 되어 줍니다.

그런데 주소는 자주 변경됩니다. 새로운 건물이나 택지가 생기고 사라지거나 신도시의 출현과 기존 행정구역들이 통폐합 등의 상황에서 말입니다. 또한 우리나라는 도로명주소와 지번 주소가 혼재되어 있습니다. 그리고 주소는 제법 긴 글자들로 구성되는데 이 긴 글자를 입력할 때 사용자마다 다르게 입력하는 경우가 많습니다.

예를 들어 저희 회사의 주소인 “서울특별시 성동구 아차산로7나길 18″의 경우 서울특별시 대신 그냥 서울시라고 하여 “서울시 성동구 아차산로7나길 18″라고 하기도 하고 성동구는 서울시에만 있으므로 서울시조차 생략하여 “성동구 아차산로7나길 18″라고 하거나 아차산로7나길은 성동구라는 곳에만 있으므로 성동구도 생략해 “아차산로7나길 18″이라고 입력합니다. 이러한 변칙으로 인해 GIS 시스템에 주소와 관련된 기능을 매우 융통성 있게 담아내 활용하기가 어려운 것이 사실입니다.

주소는 최신 데이터로 자주 업데이트하는 것이 좋습니다. 주소 DB는 SHP 파일 형태인데, 이 SHP 파일이 있다고 해서 주소를 좌표로, 또 좌표를 주소로 변경하는 지오코딩이나 리버스 지오코딩 기능을 바로 사용할 수 있는 것은 아닙니다. 이 기능을 주소 DB를 기반으로 직접 개발을 하거나 서비스 형태로 제공되는 OpenAPI를 Key를 발급받아 사용해야 합니다. OpenAPI 형태로 제공하는 서비스는 구글, 네이버, 카카오, VWorld 등이 있습니다. 모두 그 기능이 뛰어납니다. 그런데 문제는 이들 모두가 사용건수 제약이 있습니다. 대부분 하루에 최대 OO건만 사용할 수 있습니다. 또한 인터넷 환경이 아니면 용할 수 없습니다. 결국 Key 발급이라는 번거로운 작업과 하루당 사용할 수 있는 최대 건수 제한을 고민할 필요없이, 인터넷이 되지 않는 환경에서도 사용할 수 있는 주소와 좌표간의 변환 서비스를 위해서는 Geocoding 서비스를 직접 개발해야 합니다. 그런데, 이 Geocoing 서비스를 개발하는 것이 그렇게 간단한 것은 아닙니다. 전국 범위의 주소 데이터는 도로명주소의 경우 천만건이 넘고 지번주소의 경우에는 이보다 훨씬 더 많습니다. 즉, 이 둘을 합하면 수천만 건입니다. 또한 도로명주소와 지번주소 간의 상호 변환 기능이 필요하기도 합니다. 그리고 생략된 주소 문자열에 대해서도 좌표를 획득할 수 있어야 함과 동시에 생략된 주소에 대한 완전한 주소 문자열로 얻을 수 있어야 합니다.

이러한 지오코딩 서비스는 GIS 개발을 전문으로 하는 몇몇 회사에서 하나의 독립적인 솔루션으로 판매하고 있습니다. 반면 GeoService-Xr의 경우에는 하나의 솔루션이 아닌 하나의 기능으로 제공합니다. 전국의 도로명주소와 지번주소를 대상으로, 주소와 좌표간의 상호변환과 지번주소와 도로명주소간의 상호변환이 가능합니다. 또한 생략된 주소에 대한 좌표 및 해당하는 완전한 주소 문자열을 획득할 수 있습니다. 주소 DB에 대한 최신성 유지는 고객이 원하는 기간에 정확이 맞출 수 있습니다.

아래는 GeoService-Xr의 지오코딩 기능을 활용하여 개발된 넥스젠의 스타쿼리 기능에 대한 소개입니다.

넥스젠(NexGen)의 스타쿼리(* Query) 기능

항상 최신 주소와 위치를 원하는 사용자라면 한달에 한번 주소 DB를 업데이트하고, 최신 주소는 아니더래도 정기적으로 업데이트하고자 하는 고객분들에게는 3개월 또는 4개월에 한번씩 업데이트가 가능합니다. 또한 자체적인 주소 DB와 지오코딩 서비스를 고객의 서버에 설치한 것이므로 사용 건수나 인터넷이 되어야만 한다 등의 제약은 전혀 없습니다. 이러한 편리함과 유연함은 GeoService-Xr의 지오코딩 기능을 통해 쉽게 활용하실 수 있습니다.

GeoService-Xr은 공간 데이터를 서비스하고 여러가지 위치 데이터 기반의 기능을 기본으로 제공합니다. 지오코딩 역시 위치 기반의 기능이므로 하나의 기능으로써 제공하고 있는 것입니다. GIS 시스템의 구축을 위해 공간서버를 도입하면서 별도의 지오코딩 솔루션을 도입은 GeoService-Xr에서는 불필요합니다. Geocoding 기능은 GeoService-Xr에서는 하나의 기본 기능입니다.

넥스젠(NexGen)의 위치기반 컨텍스트 메뉴

넥스젠(NexGen)은 지도(위치)와 연관되는 기능을 사용자 사고(Thinking)의 흐름(문맥, 컨텍스트, Context)이 끊기지 않고 사용할 수 있도록 컨텍스트(Context) 메뉴를 제공합니다.

넥스젠에서 제공하는 위치기반 컨텍스트 메뉴의 기본 구성 항목은 선택한 위치를 중심으로 지도의 확대 및 축소, 선택한 지점의 북마크 지정, 선택한 위치의 인근 주소 확인, 선택한 위치의 좌표 취득, 선택한 위치의 표고 취득, 선택한 지적필지의 평균경사도 취득, 최단경로에 대한 출발점과 도착점을 선택한 지점을 바로 지정하는 기능입니다.

지도 상에 기능을 선택하고자 하는 지점 위에 마우스 커서를 놓고 오른쪽 버튼하면 다음과 같은 메뉴가 표시됩니다.

물론 이 기본 기능에 사용자에게 특화된 메뉴를 추가할 수 있습니다. 넥스젠에서 제공하는 기본적인 컨텍스트 메뉴를 실제 활용하는 동영상은 아래와 같습니다.

넥스젠은 순수한 웹 기술만으로 개발된 웹 지리정보시스템(GIS)입니다. IE, 크롬, 사파리, Firefox 모두를 지원합니다.

넥스젠(NexGen)의 공간 데이터 편집 기능

NexGen은 서비스 되는 모든 수치지도 레이어를 편집할 수 있는 범용 기능을 제공합니다. 또한 서비스 되는 모든 수치지도는 NexGen에서 바로 SHP 파일로 다운로드 받을 수 있습니다. 또한 편집에 대한 편의 기능으로 편집 이력의 Undo/Redo와 정점 및 선분에 대한 스냅핑 기능을 제공합니다. 아래는 메인 편집 UI입니다.

보시는 것처럼 편집 대상이 되는 레이어를 선택할 수 있고, 편집하고자 하는 도형을 선택하여 편집하거나 신규 도형을 추가할 수 있으며, 기존의 도형을 삭제할 수 있는 버튼과 함께 Undo/Redo 기능 등이 보입니다.

편집 대상이 되는 도형을 선택하거나 새롭게 생성하면 해당 도형에 대한 속성을 편집할 수 있는 창이 아래처럼 표시됩니다. 모든 수치지도 레이에 대한 범용 편집 기능이므로 필드명과 필드값으로 표시됩니다.

위의 UI를 통해 도형 편집 뿐만 아니라 연관된 속성 데이터도 편집할 수 있습니다. 이러한 편집 기능은 범용적인 목적으로 사용되는 편집으로, 특정 목적을 가지는 수치지도에 대한 편집에 대해 다양한 제약조건(코드값 입력 등)은 별도의 커스터마이징으로 추가가 가능합니다.

편집에 대한 편의 기능으로써 정점과 선분에 대한 스냅핑 기능을 제공하는데요. 아래의 직관적인 UI를 통해 원하는 레이어에 대해서 정점과 선분을 개별적으로 선택해 스냅핑을 적용할 수 있습니다.

아래는 이러한 편집 기능에 대한 소개 동영상입니다. 건물, 도로, 지적도, POI에 대한 편집을 NexGen의 수치지도 범용 편집기능을 통해 편집하는 내용을 담고 있습니다.