FingerEyes-Xr에서 GraphicLayer의 Row 순회 및 MBR 얻기

GraphicLayer의 구성요소들을 순회하는 방법은 for 문을 통해 쉽게 해결할 수 있습니다. 즉, 아래의 예와 같습니다.

var targetGl = map.layers("sketch_grp");

for (var id in targetRows) {
    var row = targetRows[id];

    ...
}

그래픽 레이어를 구성하는 그래픽 요소를 순회하면서 해당 그래픽 요소의 MBR을 얻어야 하는 경우가 많이 생깁니다. 위의 코드에서 row 변수의 MBR 함수를 통해 쉽게 MBR을 얻을 수 있는데, FingerEyes-Xr에서는 그래픽 요소의 정확한 MBR을 얻기 위해서 약간의 특이점이 발생합니다. 이 특이점으로 인해 혼란스러움이 있어 이 글을 통해 정리합니다. 즉, Text 형태의 그래픽 요소 등과 같은 정확한 MBR을 얻기 위해서는 CoordMapper와 그래픽 요소(SVG)를 담고 있는 DOM 컨테이너를 인자로 넣어줘야 합니다. 즉, 아래의 예제 코드와 같습니다.

var targetGl = map.layers("sketch_grp");
var cm = map.coordMapper();
var svgContainer = targetGl.container();

for (var id in targetRows) {
    var row = targetRows[id];
    var mbrTarget = row.MBR(cm, svgContainer);

    ...
}

FingerEyes-Xr의 소스코드는 GitHub에서 다운로드 받으실 수 있습니다.

답글 남기기

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