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ÀÌ Ãß°¡µÇ¾úÀ½À» È®ÀÎÇÑ´Ù.
3.1.7 NXMilmapÄÁÆ®·ÑÀ» Ȱ¿ëÇϱâ À§ÇØ MainWindow.xaml â¿¡¼ namespace¸¦ ´ÙÀ½°ú °°ÀÌ Ãß°¡ÇÑ´Ù.
3.2 ÇÁ·Î±×·¥ µðÀÚÀÎ
3.2.1 MainWindow.xaml â¿¡¼ ±âº»À¸·Î »ý¼ºµÈ Grid ·¹À̾ƿô¿¡ Grid.ColumnDefinitionÀ» ÀÌ¿ëÇÏ¿© ¼¼ °³ÀÇ ColumnÀ» »ý¼ºÇÑ´Ù. ù ¹øÂ° Column¿¡´Â À§ÀÇ Ç¥¸¦ ÀÌ¿ëÇÏ¿© µðÀÚÀÎÇÑ´Ù. µÎ ¹øÂ° ColumnÀº GridSpiltterÀ» ¹èÄ¡ÇÏ°í ¼¼ ¹øÂ° ColumnÀº NXMilmapView ÄÁÆ®·ÑÀ» ¹èÄ¡ÇÑ´Ù.¸ÕÀú Grid¸¦ ¼¼ °³ÀÇ ColumnÀ¸·Î ³ª´«´Ù. ±× ´ÙÀ½À¸·Î ù ¹øÂ° Column¿¡ À§ÀÇ Ç¥¸¦ Âü°íÇÏ¿© µµ±¸»óÀÚ¸¦ ÀÌ¿ëÇÏ¿© ÄÁÆ®·ÑÀ» ¹èÄ¡ÇÑ´Ù. ÀÚ¼¼ÇÑ ÄÚµå´Â »ùÇÃÄڵ带 Âü°íÇÑ´Ù.
3.2.2 µÎ ¹øÂ° Column¿¡ µµ±¸»óÀÚ¿¡¼ GridSplitterÀ» ²ø¾î´Ù ¹èÄ¡ÇÏ¿© Á¿츦 ±¸ºÐÇÑ´Ù. ¾Æ·¡¿Í °°Àº XAML Äڵ尡 »ý¼ºµÊÀ» ¾Ë ¼ö ÀÖ´Ù..3.2.3 Grid ·¹À̾ƿô ³»ºÎ¿¡¼ ¼¼ ¹øÂ° Cell¿¡ Grid¸¦ ¹èÄ¡ÇÏ°í µµ±¸»óÀÚ¿¡¼ WindowFormHost ÄÁÆ®·ÑÀ» ²ø¾î´Ù ¹èÄ¡ÇÑ´Ù. ÀÌ ÄÁÆ®·ÑÀº Window forms¸¦ Hosting ÇØÁÖ´Â °³Ã¼À̸ç Window Forms ControlÀ» »ç¿ëÇÒ ¶§ ÀÌ¿ëµÈ´Ù. (WindowFormIntegration¿Í System.Window.Forms À» ¾î¼Àºí¸®¿¡ ´ëÇÑ ÂüÁ¶ Ãß°¡¸¦ ÇÑ´Ù.)3.2.4 ¾Õ¼ Ãß°¡ÇÑ namespace nxMilmap¸¦ ÀÌ¿ëÇÏ¿© NXMilmapViewÄÁÆ®·ÑÀ» ºÒ·¯¿Â´Ù. ÀÌ NXMilmapViewÀÇ À̸§Àº nxMilmapView1À¸·Î ÇÑ´Ù.NXMilmapView´Â Equal-arc ÁÂÇ¥ ½Ã½ºÅÛ¿¡¼ CADRG(Compressed ARC digitized Raster Grshpics), CIB(Controlled Image Base)¿Í °°Àº ±º Áö¿ª Áöµµ µ¥ÀÌÅ͸¦ Á¤ÀÇÇϴ Ŭ·¡½º¿Í Á¦¾îÇÔ¼ö¸¦ Æ÷ÇÔÇÑ´Ù.
¸ðµç ´Ü°è°¡ ³¡³ª¸é ´ÙÀ½°ú °°Àº µðÀÚÀÎÀ» ¾òÀ» ¼ö ÀÖ´Ù.
3.3 ±â´É ¹× À̺¥Æ® Ãß°¡3.3.1
Window¸¦ ¼±ÅÃÇϰí [¼Ó¼º] â - [À̺¥Æ®
|