| 
   
 
 WPF - XDL Tutorial (piXoneer XDL Tutorial) 
 
 
 
 
 
 NXMilmapView¸¦ ÀÌ¿ëÇÏ¿© ±º Áöµµ µµ½Ã ¿£ÁøÀÇ ±â´É »ç¿ë¹ýÀ» ÀÍÈ÷°í °£´ÜÇÑ µµ½Ã±â´ÉÀ» Ãß°¡Çغ¸µµ·Ï ÇÕ´Ï´Ù. 
 
 2019. 04. 
  | 
 
  1 »ç¿ëÇϱâ
 1.1 XDL ¿£Áø¼³Ä¡ ÇÁ·Î±×·¥À¸·Î ¹èÆ÷µÇ´Â XDL ¿£ÁøÀº Visual Studio 2010 x86 Release ¹öÀüÀ¸·Î, Visual Studio 2010 ÀÌ»óÀÇ ¹öÀü¿¡¼ »ç¿ë°¡´ÉÇÏ´Ù. ¾Æ·¡ÀÇ ¼³¸íÀº Visual Studio 2015À» ±âÁØÀ¸·Î ÇϰڴÙ. 1.2 µ¥ÀÌÅÍCADRG µ¥ÀÌÅÍ´Â º¸¾È ¹× ¿ë·® ¹®Á¦·Î ÀÎÇØ ¿¹Á¦¿Í ÇÔ²² ¹èÆ÷°¡ ºÒ°¡´ÉÇÏ´Ù. ÀÌ¿¡ Milmap°ú °ü·ÃÇÑ ¿¹Á¦ÀÇ ¼³¸íÀº ¿£Áø°ú °°ÀÌ ¹èÆ÷µÈ World.pbi¸¦ Áß½ÉÀ¸·Î Çϰí, Ãß°¡ÀûÀÎ ¼³¸íÀÌ ÇÊ¿äÇÑ °æ¿ì µ¡ºÙÀÌ´Â °ÍÀ¸·Î ÇϰڴÙ. 
 2 Config ÆÄÀÏ ¼³Á¤Çϱâ2.1 Config ÆÄÀÏ ¼³Á¤Çϱâ2.1.1 À©µµ¿ì Ž»ö±â¸¦ ½ÇÇàÇÏ¿© ¡°c:\Pixoneer\Xdl1.2\Config\XMilmapConfig.xml¡± ÆÄÀÏÀ» ¸Þ¸ðÀåÀ¸·Î ¿¬´Ù.2.1.2 <XMilmap> - <Scales> ÅÂ±× Áß <Scale Type=¡±PBI¡±>ÀÇ <DataSource> °æ·Î¸¦ ¼öÁ¤ÇÑ´Ù.¿¹¸¦ µé¾î, XDL 1.2¸¦ ¼³Ä¡ÇÑ Æú´õ°¡ ¡°C:\Pixoneer\XDL1.2¡±¶ó¸é <DataSource>ÀÇ °ªÀ» ¡°c:\Pixoneer\Xdl1.2\Map\World.pbi¡±·Î ¼öÁ¤ÇÑ´Ù. 
 
 2.1.3 <Scales> ÅÂ±× Áß <Scale Type=¡±PBP¡±>ÀÇ <DataSource> °æ·Î¸¦ ¼öÁ¤ÇÑ´Ù.¿¹¸¦ µé¾î, XDL 1.2¸¦ ¼³Ä¡ÇÑ Æú´õ°¡ ¡°C:\Pixoneer\XDL1.2¡±¶ó¸é °¢°¢ÀÇ °æ·Î´Â ¡°c:\Pixoneer\Xdl1.2\Resource\PBP\korea.pbp¡±, ¡°c:\Pixoneer\Xdl1.2\Resource\PBP\metropolis.pbp¡±, ¡°c:\Pixoneer\Xdl1.2\Resource\PBP\city.pbp¡±°¡ µÈ´Ù. 
 
 
 CADRG µ¥ÀÌÅͰ¡ ÀÖ´Â °æ¿ì XDL config¸¦ ÆíÁý ¶Ç´Â XDL Config ÆÄÀÏÀ» Á» ´õ ÀÚ¼¼È÷ ¾Ë°íÀÚ ÇÑ´Ù¸é, ¢ßÇȼҴϾî(http://www.pixoneer.co.kr)ÀÇ XDL ´Ù¿î·Îµå ÆäÀÌÁö¿¡¼ ¡°XDL 1.2 ȯ°æ¼³Á¤ Åø¡±À» ´Ù¿î·Îµå ¹Þ¾Æ ¼³Ä¡ÇÑ µÚ ÅøÀÇ ¸Å´º¾óÀ» Âü°íÇϱ⠹ٶõ´Ù. 
 3 NXMILMAPVIEW¸¦ ÀÌ¿ëÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ ¸¸µé±âl º» ¿¹Á¦ ÇÁ·Î±×·¥Àº NXMilmapViewÀÇ ±âº» »ç¿ë¹ýÀ» ÀÍÈ÷°í °£´ÜÇÑ µµ½Ã±â´ÉÀ» Ãß°¡ÇØ º¸µµ·Ï ÇÑ´Ù. 3.1 ±âº» ÇÁ·Î±×·¥ ÀÛ¼º3.1.1 Visual Studio 2015À» ½ÇÇàÇÑ´Ù.3.1.2 ¸Þ´º [ÆÄÀÏ]-[»õ·Î ¸¸µé±â]-[ÇÁ·ÎÁ§Æ®]¸¦ ¼±ÅÃÇÑ´Ù.
 
 
 3.1.3 [»õ ÇÁ·ÎÁ§Æ®] ´ëÈ»óÀÚ¿¡¼ ¿ÞÂÊÀÇ ÅÛÇø´ â¿¡¼ ¡°Visual C#¡±À» ¼±ÅÃÇϰí, ´ëÈ»óÀÚ Áß°£ÀÇ ¸ñ·Ï¿¡¼ ¡°WPF ÀÀ¿ë ÇÁ·Î±×·¥¡±À» ¼±ÅÃÇÑ´Ù.»ç¿ëÀÚ°¡ ¿øÇÏ´Â °æ·Î¸¦ ¼±ÅÃÇÑ ´ÙÀ½ ÇÁ·ÎÁ§Æ® À̸§À» ¡°XDL_MilmapView1¡± À¸·Î ÀÔ·ÂÇϰí [»õ ÇÁ·ÎÁ§Æ®] ´ëÈ»óÀÚÀÇ ¡°È®ÀΡ± ¹öưÀ» Ŭ¸¯ÇÑ´Ù. ÀÌ ¹®¼¿¡¼´Â ´ëÈ»óÀÚ ¿À¸¥ÂÊ ¾Æ·¡¿¡ ÀÖ´Â ¡°¼Ö·ç¼Ç¿ë µð·ºÅ͸® ¸¸µé±â¡±´Â ¼±ÅÃÇÏÁö ¾Ê°Ú´Ù. ¡°È®ÀΡ± ¹öưÀ» ´©¸£¸é ÇÁ·ÎÁ§Æ®°¡ ±âº»ÀûÀ¸·Î »ý¼ºµÇ°í, ȸ鿡 WindowÀ» µðÀÚÀÎÇÒ ¼ö Àִ ȸéÀÌ ¶á´Ù. ¸¸¾à ¾Æ·¡¿Í °°Àº Window âÀÌ »ý¼ºµÇÁö ¾ÊÀ¸¸é, [¼Ö·ç¼Ç Ž»ö±â] â¿¡¼ MainWindow.xaml¡±¸¦ ¸¶¿ì½º ´õºíŬ¸¯À» ÇÏ¿© âÀ» ¿¬´Ù. 
 
 
 3.1.4 ¼Ö·ç¼Ç Ž»ö±âÀÇ ÇÁ·ÎÁ§Æ® ÇϺÎÀÇ [ÂüÁ¶]ÀÇ ¿À¸¥ÂÊ ¸¶¿ì½º Ŭ¸¯À» ÅëÇØ [ÂüÁ¶Ãß°¡]¸¦ ¼±ÅÃÇÑ´Ù.
 [ 
 3.1.5 [ã¾Æº¸±â]ÅÇÀ¸·Î À̵¿ÇÑ ÈÄ ¡°C:\Pixoneer\XDL1.2\bin\¡±°æ·Î·Î À̵¿ÇÑ´Ù. Ctrl۸¦ ´©¸¥ ä ¿¬¼ÓÀ¸·Î ¡°NXDL.dll¡±, ¡°NXDLgr.dll¡±, ¡°NXMilmap.dll¡±À» ¼±ÅÃÇÑ ÈÄ ¡°È®ÀΡ±¹öưÀ» ¼±ÅÃÇÑ´Ù3.1.6 ¼Ö·ç¼Ç Ž»ö±âÀÇ ÇÁ·ÎÁ§Æ® ÇϺÎÀÇ [ÂüÁ¶]Ç׿¡ NXDL, NXDLgr, NXMilmapÀÌ Ãß°¡µÇ¾úÀ½À» È®ÀÎÇÑ´Ù. | 
 
| 
     Number  | 
    
     Name  | 
    
     Control type  | 
    
     Content  | 
    
     Items  | 
   
| 
     (1)  | 
    
     checkBoxInverseMouseButton  | 
    
     CheckBox  | 
    
     InverseMouseButton  | 
    
     
  | 
   
| 
     (2)  | 
    
     checkBoxInverseMouseWheel  | 
    
     CheckBox  | 
    
     InverseMouseWheel  | 
    
     
  | 
   
| 
     (3)  | 
    
     checkBoxScale  | 
    
     CheckBox  | 
    
     Scale  | 
    
     
  | 
   
| 
     (4)  | 
    
     comboBoxScale  | 
    
     ComboBox  | 
    
     
  | 
    
     
  | 
   
| 
     (5)  | 
    
     textBoxCenterLon  | 
    
     TextBox  | 
    
     
  | 
    
     
  | 
   
| 
     (6)  | 
    
     textBoxCenterLat  | 
    
     TextBox  | 
    
     
  | 
    
     
  | 
   
| 
     (7)  | 
    
     buttonCenterMove  | 
    
     Button  | 
    
     À̵¿  | 
    
     
  | 
   
| 
     (8)  | 
    
     comboBoxGrid  | 
    
     ComboBox  | 
    
     
  | 
    
     None Degrees GARS  | 
   
| 
     (9)  | 
    
     radioButtonRotateNone  | 
    
     RadioButton  | 
    
     None  | 
    
     
  | 
   
| 
     (10)  | 
    
     radioButtonRotateMouse  | 
    
     RadioButton  | 
    
     Mouse »ç¿ë  | 
    
     
  | 
   
| 
     (11)  | 
    
     radioButtonRotateUserInput  | 
    
     RadioButton  | 
    
     »ç¿ëÀÚ ÀÔ·Â  | 
    
     
  | 
   
| 
     (12)  | 
    
     textBoxRotateUserInput  | 
    
     TextBox  | 
    
     
  | 
    
     
  | 
   
| 
     (13)  | 
    
     radioButtonZoomViewCenter  | 
    
     RadioButton  | 
    
     ȸé Áß½É È®´ë/Ãà¼Ò  | 
    
     
  | 
   
| 
     (14)  | 
    
     radioButtonZoomMousePosition  | 
    
     RadioButton  | 
    
     ¸¶¿ì½º À§Ä¡ Áß½É È®´ë/Ãà¼Ò  | 
    
     
  | 
   
| 
     (15)  | 
    
     checkBoxShowPBP  | 
    
     CheckBox  | 
    
     Show PBP  | 
    
     
  | 
   
| 
     (16)  | 
    
     checkBoxCross  | 
    
     CheckBox  | 
    
     Show Cross  | 
    
     
  | 
   
| 
     (17)  | 
    
     nxMilmapView1  | 
    
     NXMilmapView  | 
    
     
  | 
    
     
  | 
   
| 
     (18)  | 
    
     GridSplitter1  | 
    
     GridSplitter  | 
    
     
  | 
    
     
  | 
   
¸ÕÀú Grid¸¦ ¼¼ °³ÀÇ ColumnÀ¸·Î ³ª´«´Ù. ±× ´ÙÀ½À¸·Î ù ¹øÂ° Column¿¡ À§ÀÇ Ç¥¸¦ Âü°íÇÏ¿© µµ±¸»óÀÚ¸¦ ÀÌ¿ëÇÏ¿© ÄÁÆ®·ÑÀ» ¹èÄ¡ÇÑ´Ù. ÀÚ¼¼ÇÑ ÄÚµå´Â »ùÇÃÄڵ带 Âü°íÇÑ´Ù.


NXMilmapView´Â Equal-arc ÁÂÇ¥ ½Ã½ºÅÛ¿¡¼ CADRG(Compressed ARC digitized Raster Grshpics), CIB(Controlled Image Base)¿Í °°Àº ±º Áö¿ª Áöµµ µ¥ÀÌÅ͸¦ Á¤ÀÇÇϴ Ŭ·¡½º¿Í Á¦¾îÇÔ¼ö¸¦ Æ÷ÇÔÇÑ´Ù.

¸ðµç ´Ü°è°¡ ³¡³ª¸é ´ÙÀ½°ú °°Àº µðÀÚÀÎÀ» ¾òÀ» ¼ö ÀÖ´Ù.


¡°Loaded¡± À̺¥Æ®¸¦ ´õºí Ŭ¸¯Çϸé, ¡°Window_Loaded¡± ÇÔ¼ö°¡ ÀÚµ¿ÀûÀ¸·Î Ãß°¡µÇ°í ¾Æ·¡¿Í °°ÀÌ Ãß°¡ÀûÀÎ ±â´ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖµµ·Ï MainWindow.xaml.csÀÇ ÄÚµå·Î À̵¿ÇÏ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

Window_Loaded ÇÔ¼ö¿Í ÇÔ²² ¾Æ·¡¿Í °°ÀÌ Äڵ带 Ãß°¡ÇÑ´Ù.

¾Æ·¡¿Í °°ÀÌ NXMilmapView°ü·Ã ±â´É ÇØÁ¦¸¦ À§Çؼ Äڵ带 Ãß°¡ÇÑ´Ù.

ÄÁÆ®·Ñ¿¡¼ ¸¶¿ì½º·Î ´õºí Ŭ¸¯ÇÏ¸é ´ëÇ¥ÀûÀÎ À̺¥Æ®¿¡ ´ëÇØ ÀÚµ¿ÀûÀ¸·Î ÇÔ¼ö°¡ Ãß°¡µÈ´Ù.
¾Æ·¡¿Í °°Àº Äڵ带 Ãß°¡ÇÑ´Ù.

(3) ÄÁÆ®·ÑÀÎ checkBoxScaleÀ» ¼±ÅÃÇϰí (4) ÄÁÆ®·ÑÀÎ comboBoxScaleÀ» º¯°æÇÏ¿© ¼±ÅÃµÈ ÃàôÀ¸·Î ȸéÀ» µµ½ÃÇϰí, (5)~(6)ÀÇ TextBox ÄÁÆ®·Ñ¿¡ À§°æµµ¸¦ ÀÔ·ÂÇÑ µÚ (7) ÄÁÆ®·ÑÀÎ buttonCenterMove¸¦ Ŭ¸¯Çϸé ÇØ´ç À§Ä¡·Î ȸéÀÇ Áß½ÉÀ» À̵¿ÇÏ·Á ÇÑ´Ù. ÀÌ ¶§, ÀÔ·Â À§Ä¡¿¡ ÇØ´ç ÃàôÀÌ ÀÖ´Â °æ¿ì¿¡¸¸ À̵¿ °¡´ÉÇÏ´Ù. ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

(8) ÄÁÆ®·ÑÀÎ comboBoxGrid¸¦ ÀÌ¿ëÇÏ¿© GridÀÇ µµ½Ã ¿©ºÎ ¼³Á¤ ¹× Á¾·ù¸¦ ¼³Á¤Çϰí, (9)~(12) ÄÁÆ®·ÑÀ» ÀÌ¿ëÇÏ¿© ȸé ȸÀüÀ» ¼³Á¤ÇÑ´Ù. (13)~(14) ÄÁÆ®·ÑÀ» ÅëÇØ ȸé È®´ë/Ãà¼Ò ¹æ¹ýÀ» Á¶Á¤ÇÑ´Ù. (15) ÄÁÆ®·ÑÀ» üũÇÏ¿© ȸ鿡 Áö¸íµµ½Ã¸¦ Çϰí, (16) ÄÁÆ®·ÑÀ» ¼±ÅÃÇÏ¿© È¸é ½ÊÀÚ Ç¥½Ã¸¦ ÇÑ´Ù. ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

