[GIS] FingerEyes-Xr for Flex의 편집 기능을 위한 API 설명

FingerEyes-Xr for Flex에서 DBMS에 저장되어 있는 공간 데이터를 마우스를 이용해 사용자가 편집하는 기능을 구현하기 위한 API를 설명하는 문서입니다. DBMS에 저장되어 있는 공간 데이터의 정점을 편집할 수 있도록, 기존 정점을 이동하거나 삭제하고 새로운 정점을 추가하는 기능과 새로운 공간 도형을 생성하고 기존 도형을 삭제하는 기능을 구현하는 튜토리얼 형태의 문서입니다. 또한 편집 이력에 대한 Undo와 Redo에 대한 기능도 설명합니다.

사용자 삽입 이미지

위의 그림은 편집 기능에 대한 API 설명 문서 내용 전반에서 언급하고 있는 예제 화면입니다. 편집 기능에 대한 API 문서는 아래 URL을 통해 다운로드 받을 수 있습니다.

FingerEyes-Xr for Flex에서 편집이 가능한 공간 데이터는 Oracle, MSSQL Server, PostgreSQL와 같은 DBMS에 저장하여 처리될 수 있습니다.

[GIS] FingerEyes-Xr for Flex, ShapeMapLayer의 filterFunction 기능

수치지도 데이터를 처리하는 레이어인 XrShapeMapLayer는 filterFunction이라는 콜백함수 기능을 제공합니다. 이 기능은 공간 서버로부터 공간 데이터를 가져오고 화면에 표시하기 전에 가져온 공간 데이터에 대한 선처리(Preprocessing)을 수행하는 용도로 사용됩니다. 아래의 코드는 XrShapeMapLayer에 filterFunction 콜백함수를 지정하는 코드입니다.

var layer:XrShapeMapLayer = null;
layer = map.layers.getLayer("LAYER_NAME") as XrShapeMapLayer;
layer.filterFunction = filterFunction;

여기서 filterFunction은 다음과 같은 인자를 갖습니다. FingerEyes-Xr 버전 2.2를 기준으로 다릅니다.

ㅡ FingerEyes-Xr version 2.2 이상

// FingerEyes-Xr version 2.2 이상
private function filterFunction(fid:uint, 
    shpLyr:XrShapeMapLayer, index:uint, cntRows:uint):void
{
    // ...
}

ㅡ FingerEyes-Xr version 2.2 미만

// FingerEyes-Xr version 2.2 미만
private function filterFunction(fid:uint, 
    shpSet:XrShapeSet, attSet:XrAttributeSet):void
{
    // ...
}

이 기능은 다양한 용도로 사용될 수 있습니다. 예를 들자면 어떤 기준에 부합되지 않으면 공간 데이터를 화면에 그리기 전에 공간 데이터를 제거함으로써 화면에 표시하지 않는 경우입니다.

ㅡ FingerEyes-Xr version 2.2 이상

// FingerEyes-Xr version 2.2 이상
private function filterFunction(fid:uint, 
    shpLyr:XrShapeMapLayer, index:uint, cntRows:uint):void 
{
    var shpSet = shpLyr.shapeSet;
    var attSet = shpLyr.attributeSet;
    var attr:XrAttribute = attSet.rows[fid];
    var bBeDelete:Boolean = true;
    var from:int, to:int, value:int;

    value = attr.getValueAsInt(13);    
    from = this.nsDeathFrom.value;
    to = this.nsDeathTo.value;

    if(value >= from && value <= to) bBeDelete = false;

    f(bBeDelete) {
        shpSet.removeRow(fid);
        attSet.removeRow(fid);
    }
}

ㅡ FingerEyes-Xr version 2.2 미만

// FingerEyes-Xr version 2.2 미만
private function filterFunction(fid:uint, 
    shpSet:XrShapeSet, attSet:XrAttributeSet):void
{
    var attr:XrAttribute = attSet.rows[fid];
    var bBeDelete:Boolean = true;
    var from:int, to:int, value:int;

    value = attr.getValueAsInt(13);    
    from = this.nsDeathFrom.value;
    to = this.nsDeathTo.value;

    if(value >= from && value <= to) bBeDelete = false;

    f(bBeDelete) {
        shpSet.removeRow(fid);
        attSet.removeRow(fid);
    }
}

위의 코드는 공간 데이터에 대한 13번째 속성값이 정해진 범위값에 들어가지 않을 경우 그리기 전에 제거함으로써 화면에 표시하지 않도록 하는 코드예입니다.

[GIS] FingerEyes-Xr for HTML5 ㅡ 공간분석 기능

1. 밀도도 분석

핑거아이즈(FingerEye-Xr)에서 제공하는 레이어 중에서 그리드 레이어를 이용한 기능으로써, 공간상에 분포하고 있는 데이터에 대해서 어느 지점에 가장 많이 밀집되어져 있는지를 매우 직관적으로 파악할 수 있는 밀도도 분석에 대한 소개입니다. FingerEyes-Xr에서 실행할 수 있는 밀도도 분석을 통해 웹 환경에서 높은 품질의 분석 결과를 사용자에게 제공할 수 있습니다.

2. 지형 분석

다양한 공간분석 기능 중 핑거아이즈에서 실행할 수 있는 지형분석에 대한 2가지를 소개합니다. 소개하고 있는 지형분석은 단면도 분석과 평균경사도 분석입니다. 웹 GIS 엔진인 핑거아이즈를 이용하여 빠르고 정확한 지형 분석을 매우 효과적으로 실행할 수 있습니다.

FingerEyes-Xr은 GPL 라이선스로써 오픈소스(OpenSource)입니다. 아래의 GitHub 링크를 통해 어느 누구라도 다운로드 받아 분석하고 사용할 수 있습니다.