[FingerEyes-Xr for HTML5] 여러 개의 필드 값으로 라벨 문자열 표시하기

예를 들어, 필드 이름이 fieldNm1과 fieldNm2인 2개의 필드값을 조합하여 라벨로 표시 하고자할때에 해당 레이어의 라벨의 포맷터(Formatter)에 Custom Formatter를 만들어 지정해 주면 됩니다. 아래의 코드는 수치지도 레이어에 사용자 정의 포맷터를 지정한 코드 예입니다.

var lyr = lm.layer('layerNm'); // 이름이 layerNm인 레이어에 대해서 ...
if (lyr) {
    var label = lyr.label();

    label.enable(true); //.offsetY(20);
    label.visibility().visibleByScale(true).fromScale(0).toScale(3000);

    // 사용자 정의 포맷터 클래스 정의
    CustomLabelFormatter = Xr.Class({
        name: 'CustomLabelFormatter',
        extend: Xr.label.ProgrammableLabelFormatter,
        requires: [Xr.label.ILabelFormatter],

        construct: function (/* ShapeMapLayer */ layer) {
            this.superclass(layer);
            this._fieldIndex1 = -1;
            this._fieldIndex2 = -1;
        },

        methods: {
            /* string */ value: function (/* ShapeRow */ shapeRow,
                    /* FieldSet */ fieldSet, /* AttributeRow */ attributeRow) {
                if (this._fieldIndex1 == -1) {
                    this._fieldIndex1 = fieldSet.fieldIndex('fieldNm1');
                }

                if (this._fieldIndex2 == -1) {
                    this._fieldIndex2 = fieldSet.fieldIndex('fieldNm2');
                }

                var value1 = attributeRow.valueAsString(this._fieldIndex1);
                var value2 = attributeRow.valueAsString(this._fieldIndex2);

                return value1 + '(' + value2 + 'kW)';
            }
        }
    });

    var formatter = new CustomLabelFormatter(lyr);
    label.formatter(formatter);

    var labelTheme = label.theme();
    labelTheme.symbol().strokeColor('#ffffff').strokeWidth(3).size(10)
        .fontFamily('맑은 고딕').color('#0000ff').weight('600');
}

위의 경우 fieldNm1 필드값이 ‘아궁이’이고 fieldNm2 필드값이 ‘1000’일 경우, ‘아궁이(1000kW)’의 문자열로 라벨이 표시된다.

[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에 저장하여 처리될 수 있습니다.