[GIS] 개발중인 맵 엔진으로 표현한 통계 지도

간단하게 서울시 행정구역도와 가상의 데이터를 이용해서 구성해본 통계 지도입니다. 먼저 첫번째와 두번째는 남자, 여자, 노인이라는 항목에 대한 인구수를 가상의 데이터로 하여 Bar Chart 형식으로 표현한 내용이며 두번째는 동일한 주제로 하여 Pie Chart 형태로 표현한 화면입니다.

사용자 삽입 이미지
사용자 삽입 이미지
그리고 아래, 세번째는 실제 아파트의 밀집 정도를 색상 밀도도로 표현한 것입니다. 그리고 네번째는 표현한 밀집도를 등가선을 추출해 표현한 것입니다. 밀도도와 등가선을 추출하는 기능은 개발중인 맵 엔진에 Plug-In 할 수 있는 별도의 확장 기능 개념으로 개발하였습니다.

사용자 삽입 이미지
사용자 삽입 이미지
아래는 좀더 좁은 간격으로 등가선을 딴 결과 화면입니다.

사용자 삽입 이미지
이외에도 개발중인 맵 엔진를 이용하여 지도 위에 다양한 형태의 통계치를 표현할 수 있습니다.

[GIS] 개발중인 맵 엔진을 이용해 만든 지도

이번에 개발중인 맵 엔진이 적용된 프로젝트에 사용될 지도 모양입니다. 개발자가 아닌 디자이너 분이 지도 색상과 도형 심벌 및 레이어 구성을 했습니다. XGE 지도 엔진으로 만든 XGEyes라는 툴을 이용해 작업을 했고, 모두 개발중인 맵 엔진이 실시간으로 만들어낸 지도 이미지입니다. 한번 살펴보시길 바랍니다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

[GIS] DBF 필드값 최적화시켜 용량 대폭 줄여주는 툴, OptimizeDBF

간혹, 사실은 거의 대부분.. 가지고 있는 Shape 파일의 속성 정보인 DBF 파일이 내용에 비해 그 용량이 매우 크게 느껴질때가 있습니다. 하나의 예로 아래는 제가 가지고 있는 62MB 크기의 DBF 파일의 덤프 내용입니다. 가장 윗부분에 필드 이름이 정의되어져 있고, 그 아래로 쭈욱~ 값들이 기록되어져 있는데.. 실제 내용보다는 빈문자열이 훨씬 많습니다. 이렇게 된 이유는, 특히 문자열 필드의 경우 길이를 기본적으로 255자로 정의하고 DBF를 생성했기 때문입니다.

사용자 삽입 이미지
아래는 이런 불성실한 ^^; DBF 파일의 용량을 줄여주는 툴입니다. 필드값을 저장할 수 있는 필드의 최대 길이를 자동으로 계산해 줌으로써 사용자가 따로 계산할 필요가 없습니다. 또한 저장할 필드를 따로 선택해 저장시킬 수 있습니다.

사용자 삽입 이미지
위의 툴을 이용해 생성된 DBF 파일의 덤프 내용은 아래와 같습니다. 용량이 62MB에서 3.45MB로 꽤나 많이 줄었습니다.

사용자 삽입 이미지
이 툴을 만들게 된 목적은 개발중인 맵 엔진(XGE)에 데이터를 제공하는 웹방식의 데이터서버가 관리하고 있는 속성 데이터를 최적화시킬 목적으로 만들게 되었습니다. XGE 지도 엔진을 만들기 위한 Core 라이브러리를 이용해 제작했습니다.

[GIS] DXF를 ESRI Shape로 변환해주는 툴, DXF to SHP

DXF를 ESRI의 SHP 파일로 변환해주는 툴입니다. 수치지도 DXF 파일과 내보낼 레이어를 선택하고, 변환될 Shape의 종류를 선택해주면 Shape 파일로 생성해 주는 간단한 툴입니다. 개발중인 맵 엔진에 DXF 수치지도를 표시하는 기능에 대비해, 회사에서 DXF를 Shape 파일로 변환해야할 일이 생겨서 겸사 겸사 만들어 보았습니다. Shape의 속성은 Layer 명 하나만 만들어 집니다.

사용자 삽입 이미지
사용하기 전에 알면 좋은 점이.. DXF 수치지도를 Point나 Polyline, Polygon으로 내보기기 할때 DXF에서 이용할 Enitity입니다.

  • Point : CAD의 INSERT 엔티티를 사용
  • Polyline : CAD의 POLYLINE 엔티티를 사용
  • Polygon : CAD의 POLYLINE 엔티티를 사용하며, 폐합된 엔티티만을 Polygon으로 내보냄(만약 Force Close-Polygon을 체크하면 강제로 폐합시키고 모든 엔티티를 내보냄)

아래는 화면은 이 툴을 이용해 실제 수치지도를 등고선 레이어 7XXX 대를 폴리라인으로 내보내기 해서 ArcMap으로 살펴본 화면입니다.

사용자 삽입 이미지
이 툴은 XGE 지도 엔진을 이용하지 않고, XGE 지도 엔진을 구현하기 위한 Core 라이브러리를 이용해 개발하였습니다. C++로 개발된지라 .NET 2.0 역시 필요치 않습니다.