[GIS] FingerEyes-Xr for HTML5 ㅡ VWorld 연동, Identify, GraphicLayer

1. TMS 배경지도 연동

HTML5 기반의 FingerEyes-Xr는 TMS 스펙을 지원하고 있습니다. 구글맵, 네이버맵, 다음맵 그리고 VWorld는 TMS 형식으로 배경지도를 제공하고 있는데요. 이러한 배경지도를 핑거아이즈에서 쉽게 활용할 수 있습니다. 아래의 동영상은 VWorld 배경지도에 대한 활용예 입니다.

사용자 삽입 이미지

2. Feature 선택 및 속성 확인

다음은 수치지도 레이어에 대한 마우스 선택 및 속성 확인에 대한 동영상입니다. FingerEyes-Xr은 벡터 데이터에 대한 빠른 처리가 가능한데요. 이러한 빠른 처리가 가능한 이유는.. 서버에서 서비스 되는 벡터 데이터의 포맷을 좌표값 포맷으로 받아 클라이언트에서 처리하도록 한다는 점입니다. 물론 이는 선택 사항이고 OGC 표준인 WMS와 WFS 형태의 서비스 활용도 가능합니다.

사용자 삽입 이미지

3. 그래픽 레이어 편집(매쉬업)

FingerEyes-Xr은 그래픽 레이어를 지원함으로써 사용자가 가지고 있는 위치 데이터를 배경지도 위에 매쉬업할 수 있는 기능을 제공합니다. 자바스크립트 코드를 통해 매쉬업을 할 수 있고 마우스를 통한 편집을 통해 매쉬업할 도형을 작성할 수 있는데요. 아래의 동영상은 마우스를 통한 매쉬업 도형을 생성하고 편집하는 예입니다.

사용자 삽입 이미지

FingerEyes-Xr은 GPL 라이선스 기반의 오픈소스(OpenSource)입니다. 아래의 GitHub 링크를 통해 다운로드 받을 수 있습니다.

사용자 삽입 이미지

Korea(한국) SHP File

한국에 대한 shp 파일입니다. 인덱스(Index)맵 용도로 필요해 얻은 자료입니다. 형상은 아래와 같습니다

사용자 삽입 이미지

참고로 인덱스맵 표시 용이므로 형상이 매우 단순화 되었습니다.

웹에서 마우스 휠(Wheel) 이벤트

마우스 이벤트 중 마우스 휠 이벤트는 아직까지도 각각의 웹 브라우저에서 다른 형태로 제공되고 있습니다. 아래는 HTML Element에 대한 휠 이벤트를 할당하는 코드입니다.

// for IE, Chrome, Opera
this._div.addEventListener('mousewheel', this._mouseWheel);

// for FireFox
this._div.addEventListener('DOMMouseScroll', this._mouseWheel, false);

IE와 크롬, 오페라에서는 mousewheel이라는 이벤트 이름으로 제공하고 파이어폭스에서는 DOMMouseScroll이라는 이벤트 이름으로 제공됩니다. 이 휠 이벤트를 처리하는 함수의 예(위의 예제의 경우 this._mouseWheel 함수)는 다음과 같습니다.

_mouseWheel: function(e) {
    var delta = 0;

    /* For IE */
    if (!e) e = window.event;
            
    if (e.wheelDelta) delta = e.wheelDelta / 120; /* IE/Chrome/Opera */
    else if (e.detail) delta = -e.detail/3; /* Mozilla case */

    e.preventDefault();
}

휠 이벤트에서 휠에 대한 정도를 얻는 속성도 다릅니다. 파이어폭스에서는 detail이고 그 외에서는 wheelDelta입니다.