Flex 기반의 GIS 엔진인 핑거아이즈는 데이터베이스 테이블의 데이터를 쉽게 쿼리할 수 있는 매우 손쉬운 API를 내장하고 있습니다. XrQueryTableService라는 클래스로 이름에서도 알 수 있듯이 테이블에 대해 쿼리를 날려주는 서비스를 제공하는 녀석입니다. SQL 구문 중 SELECT 구문을 통해 쉽게 데이터를 질의할 수 있습니다. 아래는 이 클래스를 사용하는 한가지 예입니다.
var svc:XrQueryTableService = new XrQueryTableService( "127.0.0.1:8080", "postgis", searchQueryRequestComplete, searchQueryRequestError ); var select:String = "SELECT * FROM yp_admindistrict_main"; svc.run({sql:select});
DBMS는 127.0.0.1:8080 주소에 존재하는 서버에 있습니다. 그리고 DBMS는 postgis이구요. arcsde나 jdbc로도 지정이 가능합니다. 쿼리가 성공했을 시 searchQueryRequestComplete라는 함수가 콜백되고 실패했을 시에는 searchQueryRequestError라는 함수가 콜백됩니다. 실제 SQL문의 지정은 XrQueryTableService의 run 매서드를 통해 실어 보낼 수 있습니다.
쿼리시 성공했을 때와 실패했을 때의 콜백 함수의 예는 다음과 같습니다.
private function searchQueryRequestComplete(result:String):void { ta.text = result; } private function searchQueryRequestError():void { ta.text = "err!"; }
위에서 ta는 Flex의 TextArea 컴포넌트입니다. 버튼을 클릭했을 시 위의 코드들을 통해 쿼리를 날리고 결과를 받아 화면에 표시하는 화면은 아래와 같습니다.
보시는 것처럼 TextArea에 쿼리 결과가 XML 형태로 넘어 오는 것을 알 수 있습니다. 핑거아이즈는 개발자가 쉽게 DBMS에 접근하여 개발할 수 있도록 XrQueryTableService라는 클래스를 제공합니다. 이 외에도 ID를 통해 공간 도형의 MBR을 가져오는 서비스 등도 클라이언트 맵 엔진 단에서 제공하고 있습니다.