천상낙원

GML을 이용한 지도 서비스

DoItMyself
2006년 5월부터 7월까지 약 3개월간 현재 제가 속해있는 연구실에서 GML Veiwer를 제작하였습니다. GML Veiwer를 만들면서 새로운 분야에 대해서 공부하고 배울 수 있는 기회가 되었네요. 후기랄까? 만들면서 느꼈던 내용을 기록하고자 합니다.
----------------------------------------------------------------------------------

먼저 GML에 대해서 알아보겠습니다. Generalized Markup Language이 아니라, Geographic Markup Language입니다. 한글로는 지리 생성 언어(地理生成言語)라고 하면 되구요. 네이버 사전에서는 GML을 다음과 같이 정의하고 있네요.
지리 정보의 상호 운용성 제고를 위해 OGC(Open GIS 컨소시엄)가 개발한 XML 기반의 지리 정보 인코딩 언어. OGC는 세계 수많은 회사, 정부 기관, 대학 등 지리 정보 산업체들이 주축이 된 민간 GIS 표준 기관으로, 1988년부터 GML을 개발하기 시작했다.
XML(eXtensible Markup Language)은 W3 Consortium에서 웹 기반의 구조화된 문서를 기술하기 위해 표준화한 것으로, 확장성과 유연성이 매우 뛰어나다는 특징을 가지고 있습니다. OGC에서는 XML의 확장성과 유연성이라는 특징을 가지고 여러 가지 장점을 GIS 분야에 도입하고자 합니다. 그 산물이 GML인거죠. 1999년 12월에 GML 버전 1.0을 제시하였고, 현재는 .버전까지 공개된 상태입니다.

쉽게 말해서 GML은 그냥 지도를 표현하기위한 표준 언어라고 보면 될꺼 같습니다.

그렇다면 GML Viewer의 목적은 무엇일까요? 네, 간단히 말해서 지도를 보여주기 위해서입니다.

GML을 이용해서 지도 서비스를 함으로서 여러가지 이득이 생기게됩니다. 기존의 GIS시스템을 보면 비트맵 형식의 그림파일로 보여주고 있는데 많은 양의 지도를 모두 그림 파일로 가지고 있어야 한다는 말이 되겠죠. 이로 인해, 많은 용량의 저장공간이 필요함은 물론이고 지도를 수정/추가하기 어려울뿐아니라, 제작시간또한 오래 걸리겠죠.

과거에는 각각의 GIS엔진에 따라서 다른 형태의 지리 데이터를 구축하고 활용했습니다. 때문에 구축 시간이나 비용이 엄척났었죠. 따라서 몇몇의 일부 사용자들만이 GIS를 사용할 수 있었습니다. 하지만 현재에는 인터넷, 네비게이션 등 주위 일상에서의 요구가 급속히 증가하고 있습니다. 지리 데이터를 표준안으로 채택된 GML을 이용함으로서 구축 시간과 비용을 상당부분 줄일 수 있다는 장점을 가지게 됩니다.

이제 그럼 저희가 만들어본 GML뷰어의 개략적인 구조에 대해서 살펴보도록 하겠습니다.

저희 GML뷰어는 Client - Server 구조를 이루고 있습니다. 지도 데이터를 보관하고 있는 서버와 서버에서 데이터를 받아서 화면에 보여주는 클라이언트로 나누어져있습니다.

먼저 서버는 GML 문서를 파싱하여 GigaBase라는 데이터베이스 라이브러리를 이용하여 데이터를 저장/ 관리하고 있습니다. 또한 기가베이스에 지원해주는 라이브러리(SubSQL, 소켓이용)를 이용하여 클라이언트와 통신합니다.

클라이언트에서는 SubSQL과 대응되는 CLI를 이용해서 서버로부터 지도 데이터를 받아옵니다. 그리고 받은 데이터를 이용해서 화면에 보여주는 일을 합니다.

혹시라도 관련하여 궁금한 내용이 있으시거나, 저희에게 조언을 해주실 분들 계시면.. 덧글 남겨주시면 감사하겠습니다.

'DoItMyself' 카테고리의 다른 글

영상처리를 이용한 악보 인식  (6) 2007.02.12
모의 수강신청  (0) 2006.02.14
배차 관리 시스템 (Marshalling of Cars)  (0) 2006.01.23