웹 기반에서 공간데이터 편집을 위한 오픈소스 솔루션 안녕하십니까, 지오서비스에 김형준이라고 합니다. 지금부터 웹 기반에서 공간 데이터 편집을 위한 오픈소스 솔루션인 핑거아이즈에 대해 소개해 드리겠습니다. 지오서비스 김 형 준 Email : hjkim@geoservice.co.kr
제가 발표할 내용에 대한 목차입니다. 먼저 핑거아이즈가 무엇이고 어떤 기술을 토대로 했으며 장점이 무엇인지 소개하겠습니다 제가 발표할 내용에 대한 목차입니다. 먼저 핑거아이즈가 무엇이고 어떤 기술을 토대로 했으며 장점이 무엇인지 소개하겠습니다. 그리고 핑거아이즈의 일반적인 기능을 먼저 설명한 후 편집 기능에 대해 자세히 설명드리도록 하겠습니다. 이어서 오픈소스로써 핑거아이즈의 라이선스에 대해 설명드리겠습니다. 그리고 핑거아이즈의 소스코드를 개발자분들이 살펴보실때 도움이 될 수 있도록 소스 코드에 대한 네임스페이스와 몇가지 클래스 다이어그램을 설명드리겠습니다. 마지막으로 향후 핑거아이즈의 발전방향에 대한 로드맵을 말씀드리겠습니다.
핑거아이즈 소개 PC Google Android Apple iOS BlackBerry Tablet OS Web based GIS Map Engine Google Android Based on Apple iOS BlackBerry Tablet OS Desktop GIS Application Web GIS Application same as Desktop Web GIS Application 먼저 핑거아이즈에 대한 소개입니다. 핑거아이즈는 웹 기반의 GIS 맵 엔진입니다. 플래시를 기반으로 개발되어졌으며, 이러한 기반을 토대로 PC, 구글의 안드로이드, 애플 iOS 기반의 아이패드, 아이폰에서 구동이 가능합니다. 국내에서는 그리 많이 사용되고 있지는 않지만 블랙베리 타블릿 OS에서도 구동이 가능합니다. 보시는 밴다이어그램은 기능 중심으로 살펴봤을때 데스크탑 GIS 어플리케이션 안에 웹 GIS 어플리케이션이 포함되고 있음을 나타냅니다. 예를 들어 공간 분석이나 공간 데이터 편집 기능은 웹 GIS 어플리케이션 보다는 주로 데스크탑 GIS 어플리케이션에서 제공됩니다. 하지만 핑거아이즈를 이용하면 웹에서도 데스크탑 GIS 어플리케이션과 동일한 기능을 제공할 수 있습니다. 끝으로 핑거아이즈는 속도가 빠르며 사용자 경험, 즉 UX를 효과적으로 제공할 수 있습니다. 핑거아이즈는 플래시를 기반으로 하고 있는 맵 엔진으로써 플래시의 비주얼 컴포넌트나 효과를 그대로 사용할 수 있습니다. Features Category Rapid UX(using Adobe Flash Power)
핑거아이즈의 일반 기능 차트 맵 (http://www.gisdeveloper.co.kr/710) 클릭을 통한 속성 확인 (http://www.gisdeveloper.co.kr/718) 밀집도(Kernel Density) (http://www.gisdeveloper.co.kr/706) 주제도 (http://www.gisdeveloper.co.kr/704) 그래픽 매쉬업 (http://www.gisdeveloper.co.kr/702) 항공영상 레이어 다음은 핑거아이즈의 GIS 맵엔진으로써 일반적인 기능입니다. 핑거아이즈의 차트맵 기능은 지도 위에 통계 데이터 등을 이용하여 차트로 표현하는 기능입니다. 그리고 공간 데이터 도형을 마우스로 클릭하여 속성을 쉽게 확인할 수 있습니다. 핑거아이즈는 그리드 형식의 데이터 처리 기능을 제공하여 그리드 분석을 웹에서 수행할 수 있습니다. 보시는 화면은 커널 덴시티 알고리즘을 이용하여 밀도 분석을 핑거아이즈에서 수행한 화면입니다. 또한 핑거아이즈는 지도와 속성 데이터를 연계하여 주제도를 표현할 수 있습니다. 그리고 다양한 그래픽 요소, 이미지, 도형, 텍스트 등을 지도 위에 매쉬업할 수 있습니다. 또한 항공영상과 수치지도를 동시에 중첩할 수 있습니다.
핑거아이즈의 편집 기능 Row-Lock Undo/Redo Commit & Backup Snapping with GeoService-Xr 다음은 핑거아이즈의 기능 중 편집 기능에 대한 내용입니다. 핑거아이즈의 편집 기능은 웹 기반에서 안정적으로 이루어집니다. 웹에서 여러명의 사용자가 동시에 데이터를 편집할때 충돌을 막기 위해 로우 단위의 락을 지원합니다. 그리고 데이터 편집 이력에 대해 Undo와 Redo를 제공합니다. 사용자가 편집한 데이터를 공간 서버에 반영시키는 Commit이 서버 측에서 수행되면 서버는 옛 데이터를 백업 테이블에 저장해 놓을 수 있어 향후 데이터 복구에 활용될 수 있습니다. 편집을 편리하고 보다 정확하게 할 수 있도록 정점과 선분에 대한 스냅핑 기능을 제공합니다. 핑거아이즈의 이러한 편집 기능은 지오서비스-엑스알이라는 공간 서버와 연계하여 이뤄집니다. 시연을 통해 편집 기능을 직접 보여드리도록 하겠는데요. 먼저 이 시연을 위한 데모 시스템은 다음 구조와 같습니다. 웹에서 핑거아이즈는 지오서비스엑스알과 함께 편집 기능을 수행하게 되며 편집 대상이 되는 공간 데이터는 PostgreSQL과 PostGIS 기반 하에 관리됩니다. 이제 시연을 시작해 핑거아이즈의 편집 기능을 설명드리도록 하겠습니다. PostgreSQL FingerEyes-Xr HTTP GeoService-Xr
핑거아이즈의 라이센스 Source Code Download http://www.geoservice.co.kr -> 자료실 핑거아이즈의 라이선스입니다. 핑거아이즈는 LGPL 라이선스를 따르는 오픈 소스입니다. 핑거아이즈의 소스 코드는 저희 지오서비스 홈페이지의 자료실을 통해 쉽게 다운로드 받으실 수 있습니다.
Namespace 다운로드 받은 핑거아이즈의 소스코드를 개발자분들이 처음 접했을때 이해하기 쉽도록 소스코드에 대한 네임스페이스를 간단히 설명드리겠습니다. 먼저 베이스 네임스페이스는 핑거아이즈에서 공통적으로 사용되는 클래스들로 구성됩니다. 그리고 컨트롤 네임스페이스는 스케일바 컨트롤이나 인덱스맵 컨트롤, 줌 컨트롤 등으로 구성됩니다. 데이터 네임스페이스는 핑거아이즈에서 사용되는 여러가지 데이터에 대한 클래스로 구성됩니다. 이벤트 네임스페이스는 핑거아이즈에서 발생하는 다양한 이벤트에 대한 클래스로 구성됩니다. 매니져 네임스페이스는 핑거아이즈의 기능 등을 분담하여 관리하는 관리 클래스로 구성됩니다. 서비스 네임스페이스는 핑거아이즈에서 제공하는 서비스 클래스로 구성됩니다. 유아이 네임스페이스는 핑거아이즈를 이용해 GIS 시스템을 개발할때 자주 만들게 되는 레이어관리창이나 레이어속성변경창에 대한 UI 클래스로 구성됩니다. 뷰 네임스페이스는 핑거아이즈의 뷰 관련 클래스들로 구성됩니다. 여기서 뷰는 MVC 패턴에서 View와 동일한 개념입니다.
핑거아이즈의 설계(Overview Class Diagram) 이제 핑거아이즈의 클래스 다이어그램에 대해 설명드리겠습니다. 먼저 핑거아이즈를 구성하는 주요 클래스만을 표시한 내용입니다. 환경설정정보를 관리하는 XrConfiguration 클래스와 레이어들을 관리하는 XrLayerManager 클래스가 있습니다. XrLayerManager 클래스는 여러 개의 IXrLayer 인테페이스 타입을 관리하며 이 IXrLayer 인터페이스가 레이어를 나타냅니다. 차트나 주제도 등의 범례를 관리하는 XrLegendManager 클래스가 있으며 편집 기능을 괸리하는 XrEditManager 클래스가 있습니다. 그리고 축척바나 줌레벨과 인덱스맵 등을 관리하는 XrViewControls 클래스가 있습니다.
핑거아이즈의 설계(Layers Class Diagram) 다음은 레이어에 대한 클래스 다이어그램입니다. 레이어는 IXrLayer 인터페이스로 대표되며 공통 기능에 대해 XrLayer가 IXrLayer를 구현하게 됩니다. 그리고 각각의 다양한 레이어들은 XrLayer를 상속받아 구현하게 됩니다. 타일맵을 제공하는 XrTileMapLayer, 도형 데이터와 속성 데이터를 제공하는 XrShapeMapLayer, 다양한 사용자 정의 그래픽 요소를 제공하는 XrMashupLayer, 차트를 제공하는 XrChartLayer, 그리드 데이터에 대한 뷰를 제공하는 XrGridMapLayer가 현재 구현되어져 있습니다. 여기에 향후 OGC에서 정의한 맵 서비스인 WMS와 WFS 그리고 WCS를 구현하는 레이어들이 추가될 예정입니다. XrShapeMapLayer와 XrMashupLayer는 IXrEditableLayer와 IXrSnapableLayer를 상속받음으로써 편집과 편집 시 스냅핑 대상이 되는 레이어로 사용될 수 있습니다. Tobe
핑거아이즈의 설계(Edit Class Diagram) 다음은 편집에 대한 클래스 다이어그램입니다. 편집 기능은 XrEditManager 클래스가 관리하게 되며 XrEditCommand라는 클래스를 통해 편집 이력을 저장하게 됩니다. 사용자가 수행하는 편집 행위들에 대해 XrEditCommand를 상속받아 클래스로 정의하게 됩니다. 이를 통해 편집에 대한 Undo와 Redo 기능을 제공합니다.
ROADMAP 2012년 2월 Ver 2 OGC 표준 지원(WMS, WFS, WCS) 2012년 7월 Ver 3 3D GIS(with GPU Power) 2012년 12월 Ver 3.5 GeoReport(Map + Report) 핑거아이즈에 대한 로드맵입니다. 현재 핑거아이즈는 1.8 버전입니다. 내년 2월에 2.0으로 버전업 되면서 OGC 표준을 지원할 예정입니다. 그리고 다시 내년 7월에 3.0으로 버전업 되면서 3D GIS 기능을 제공할 예정입니다. 핑거아이즈에서 3D GIS 기능은 최근 하드웨어 가속을 지원하는 플래시 버전 11이 릴리즈되면서 완벽한 3D GIS 기능을 제공할 수 있는 기반이 마련되었습니다. 그리고 내년 12월에는 3.5으로 버전업 되면서 GeoReport 기능을 제공할 예정입니다. GeoReport 기능은 지도와 연계된 레포트 출력 기능입니다. 현 재 Ver 1.8
Q / A
감사합니다. 지오서비스 김 형 준 Email : hjkim@geoservice.co.kr 이상으로 웹기반에서 공간데이터 편집을 위한 오픈소스 솔루션인 핑거아이즈에 대한 소개를 마치도록 하겠습니다. 감사합니다.