[GIS] FingerEyes, SQL Query API 사용 예

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을 가져오는 서비스 등도 클라이언트 맵 엔진 단에서 제공하고 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다