1 사용 하기
1.1
XDL 엔진
설치 프로그램으로 배포되는 XDL 엔진은
Visual Studio 2010 x86 Release 버전으로, Visual Studio
2010 이상의 버전에서 사용 가능하다.
아래의 설명은 Visual Studio 2015을 기준으로 하겠다.
1.2
NXMapView사용을 위한 개발 환경 설정
1.2.1
Visual Studio 2015을 실행한다.
1.2.2
메뉴 [파일]-[새로 만들기]-[프로젝트]를 선택한다.

1.2.3
[새 프로젝트] 대화상자에서 왼쪽의 템플릿
창에서 “Visual C#”을 선택하고, 대화상자 중간의
목록에서 “WPF 응용 프로그램”을 선택한다.
사용자가 원하는 경로를 선택한 다음 프로젝트 이름을 “XDL_MapView1”
으로 입력하고 [새 프로젝트] 대화상자의
“확인” 버튼을 클릭한다. 이 문서에서는 대화상자 오른쪽 아래에 있는 “솔루션용 디렉터리 만들기”는 선택하지 않겠다. “확인” 버튼을 누르면 프로젝트가 기본적으로 생성되고 화면에 Window을
디자인할 수 있는 화면이 뜬다. 만약 아래와 같은 Window 창이
생성되지 않으면, [솔루션 탐색기] 창에서 MainWindow.xaml”를 마우스 더블클릭을 하여 창을 연다.

1.2.4
솔루션 탐색기의 프로젝트 하부의 [참조]의
오른쪽 마우스 클릭을 통해 [참조추가]를 선택한다.

1.2.5
[찾아보기]탭으로 이동한 후 “C:\Pixoneer\XDL1.2\bin\”경로로 이동한다. Ctrl키를
누른 채 연속으로 “NXDL.dll”, “NXDLcc.dll”, “NXDLgr.dll”, “NXDLio.dll”, “NXDLrs.dll”, “NXMap.dll”을 선택한 후 “확인”버튼을
선택한다.

1.2.6
솔루션 탐색기의 프로젝트 하부의 [참조]항에 NXDL, NXDLcc, NXDLgr, NXDLio, NXDLrs, NXMap이 추가되었음을 확인한다.

1.2.7
MapView 를 활용하기 위해 MainWindow.xaml
창에서 namespace를 다음과 같이 추가한다.

1.3
메뉴 생성하기
1.3.1
MainWindow.xaml창에서 기본으로 생성된 Grid
레이아웃에 Grid.RowDefinition을 이용하여 두 개의 Row을 생성한다.

1.3.2
도구상자에서 Menu 컨트롤을 끌어다가 첫 번째
Cell에 배치하고 오른쪽 버튼을 클릭하여 MenuItem 항목을 추가한다. [속성]창에서 Header에
“_File”을 입력하여 메뉴를 생성한다.

위의 그림과 같이 도구 상자에서 Menu 컨트롤을 Window창에 배치한다.

Menu가 Window에 배치된 것을 확인하고 Menu를 오른쪽 버튼을 눌러
MenuItem을 추가한다.

상단 메뉴에서 [보기] –[속성 창]을 눌러 “속성 창”으로
이동한 다음 Header에 “_File”을 입력한다.
아래와 같은 메뉴가 생성됐음을
확인한다.

다음으로 [File]을
오른쪽 버튼을 클릭하고 MenuItem을 추가한다. [File] 하부에 MenuItem이 생성된 것을 확인할 수 있다. 생성된MenuItem의 [속성]창에 Header을 “_Open”으로 입력하고 이름은 “openFileMenuItem”으로 정의한다. 다음과 같은 Window창이 생성된다.


XAML 코드는
아래와 같이 생성됨을 알 수 있다.

1.4
NXMapView컨트롤 추가하기
1.4.1
두 번째 Cell에 Grid를 배치한다. WindowsFormsHost 컨트롤을 도구상자로부터 끌어서
생성하거나 XAML 창에 입력하여 생성한다. 이는 Window forms를 Hosting 해주는 개체이며 Window Forms Control을 사용할 때 이용된다. (WindowFormIntegration와
System.Window.Forms을 어셈블리에 대한 참조 추가를 한다.)

빨간색 원을 클릭한 상태로
WindowFormsHost창의 크기를 변화시켜 두 번째 Row
Grid창에 맞게 조정한다. 다음과 같은 Window
창을 얻을 수 있다.

1.4.2
앞서 추가한 namespace인 nxMap를
이용하여 NXMapView컨트롤을 불러온다. 이 NXMapView의 이름(Name)은 nxMapView1으로 한다.
NXMapView는 다양한
NXMapLayerXXXXX들을 담을수 있는 컨테이너이다. 즉, NXMapView는 다양한 계층의 레이어로 구성하여 영상도시에 대한 다양한 기능을 구현이 가능하다.

1.4.3
다음으로 NXMapView컨트롤 위에 NXMapLayerComposite
컨트롤을 입력한다. 이 NXMapLayerComposite의
이름(Name)은 nxMapLayerComposites1이라고
한다.
NXMapLayerComposites은 영상의 밴드들을 합성시켜서 화면에 도시하는 기능을
수행하는 컨트롤이다.

1.4.4
[F5]키보드를 눌러 실행해 본다. 다음과
같이 검정색 화면이 나온다.

1.5
NXMapView이미지 파일 도시하기
1.5.1
[Open]의 MenuItem의 속성에서
Click 이벤트 칸을 더블 클릭하여 Click에 대한
자동함수를 생성한다.

1.5.2
MainWindow.xaml.cs에서 사용할 네임스페이스를 추가한다.

1.5.3
Window를 선택하고 [속성] 창 - [이벤트 ] 메뉴를 선택한 뒤 “Closed” 이벤트를 더블 클릭한다.
아래와 같이 NXMapView관련 기능해제를 위해서 코드를 추가한다.

1.5.4
영상 입출력을 담당할 XRasterIO객체를 선언하고 Window생성자에서 객체를 생성하고 초기화를 수행한다.

1.5.5
함수 안에 파일을 열어 도시할 코드를 입력한다.

1.5.6
[F5]를 눌러 프로그램을 실행한다.

1.5.7
[File]-[Open]을 눌러 영상을 선택한다. 홈페이지에서
샘플영상을 다운 받는다. 다운로드 받은 “etm.xdm”을
선택한다.

1.5.8
[File]-[Open]을 눌러 영상을 선택한다. 다운로드
받은 “dem.xdm”을 선택한다.

|