XDL Manual

XDL MilmapView È°¿ë ¼¼ ¹ø°

(piXoneer XDL Tutorial)

 

 

 

 

 

Pixoneer.NXDL.NSCENEÀÇ ´Ù¾çÇÑ scene °´Ã¼¸¦ »ý¼º/ÆíÁýÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸°í,

 NXMilmapLayerSceneEditor¿Í NXMilmapLayerSceneDisplay ·¹À̾ ÀÌ¿ëÇÏ¿©

MilmapView¿¡¼­ scene °´Ã¼¸¦ ´Ù·ç´Â ¹æ¹ýÀ» ±¸ÇöÇØ º¸µµ·Ï ÇÕ´Ï´Ù

 

2017. 01.

¼öÁ¤ 2019. 02.

 

 

¸ñÂ÷

XDL MilmapView È°¿ë ¼¼ ¹ø°... 1

1    »ç¿ëÇϱâ... 3

1.1    XDL ¿£Áø... 3

2    NXMilmapView¸¦ ÀÌ¿ëÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ ¸¸µé±â... 3

2.1    ±âº» ÇÁ·Î±×·¥ ÀÛ¼º... 3

2.2    ÇÁ·Î±×·¥ µðÀÚÀÎ... 5

2.3    ±â´É ¹× À̺¥Æ® Ãß°¡... 8

 

 

 

 

1     »ç¿ëÇϱâ

 

1.1    XDL ¿£Áø

¼³Ä¡ ÇÁ·Î±×·¥À¸·Î ¹èÆ÷µÇ´Â XDL ¿£ÁøÀº Visual Studio 2010 x86 Release ¹öÀüÀ¸·Î, Visual Studio 2010 ÀÌ»óÀÇ ¹öÀü¿¡¼­ »ç¿ë °¡´ÉÇÏ´Ù.

¾Æ·¡ÀÇ ¼³¸íÀº Visual Studio 2010À» ±âÁØÀ¸·Î ÇÏ°Ú´Ù.

2     NXMilmapView¸¦ ÀÌ¿ëÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ ¸¸µé±â

l  º» ¿¹Á¦ ÇÁ·Î±×·¥Àº Pixoneer.NXDL.NSCENEÀÇ Scene °´Ã¼ »ý¼º ¹× ÆíÁý µîÀ» ¾Ë¾Æº¸°í MilmapView¿¡¼­ÀÇ scene °´Ã¼¸¦ ´Ù·ç´Â NXMilmapLayerSceneEditor¿Í NXMilmapLayerSceneDisplay¸¦ »ìÆ캸µµ·Ï ÇÑ´Ù.

l  µÎ °³ÀÇ NXMilmapView·Î ±¸¼ºÇÏ¿© ÇϳªÀÇ View¿¡´Â NXMilmapLayerSceneEditor¸¦ Ãß°¡ÇÏ°í ³ª¸ÓÁö View¿¡´Â NXMilmapLayerSceneDisplay¸¦ Ãß°¡ÇÑ´Ù. NXMilmapLayerSceneEditor°¡ Ãß°¡µÈ MilmapView À§¿¡¼­ Scene °´Ã¼¸¦ Ãß°¡ÇÏ°í ÆíÁýÇÑ µÚ ÆÄÀÏ·Î ÀúÀåÇÏ°í À̸¦ NXMilmapLayerSceneDisplay¿¡ ·ÎµùÇÏ¿© µµ½ÃÇÏ´Â ±â´ÉÀ» ±¸ÇöÇØ º¸µµ·Ï ÇÑ´Ù.

2.1    ±âº» ÇÁ·Î±×·¥ ÀÛ¼º

2.1.1     Visual Studio 2010À» ÀÌ¿ëÇÏ¿© ¿¹Á¦ ¡°XDL_MilmapView1¡±ÀÇ ¡°Config ÆÄÀÏ ¼³Á¤Çϱ⡱¿Í ¡°±âº» ÇÁ·Î±×·¥ ÀÛ¼º¡± ¹æ¹ýÀ» Âü°í·Î ±âº» ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÑ´Ù.

ÇÁ·ÎÁ§Æ® À̸§Àº ¡°XDL_MilmapView3¡±·Î ÇÑ´Ù.

 

2.1.2     Pixoneer.NXDL.NCC¿Í Pixoneer.NXDL.NSCENEÀ» ÀÌ¿ëÇϱâ À§Çؼ­ ¡°NXDLcc.dll¡±, ¡°NXDLscene.dll¡±À» ÇÁ·ÎÁ§Æ®ÀÇ ÂüÁ¶·Î Ãß°¡ÇÑ´Ù.

 

2.1.3     Scene °´Ã¼ Ãß°¡/ÆíÁý µî scene °´Ã¼¸¦ ´Ù·ç±â À§Çؼ­ ½ÇÇàÆú´õ¿¡ CC Driver¸¦ º¹»çÇÑ´Ù.

º» ¿¹Á¦ ÇÁ·Î±×·¥Àº XScene °´Ã¼ÀÇ ÁÂÇ¥°è Á¤º¸°¡ ÀÖ´Â XSpatialReference¸¦ ÀÌ¿ëÇϱ⠶§¹®¿¡ À̸¦ À§ÇØ CCDrivers Æú´õ¸¦ ½ÇÇàÆú´õ¿¡ º¹»çÇØ ÁÖ¾î¾ß ÇÑ´Ù.

XDL ¶óÀ̺귯¸®°¡ ¼³Ä¡µÈ °æ·Î(c:\Pixoneer\XDL1.2\bin)·Î À̵¿ÇÏ¿© ¡°CCDrivers¡± Æú´õ¸¦ º¹»çÇÏ¿© º» ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ ½ÇÇà Æú´õ(.\XDL_MilmapView3\bin\Debug\)¿¡ º¹»çÇÏ¿© ³Ö´Â´Ù.

 

 

2.2    ÇÁ·Î±×·¥ µðÀÚÀÎ

 

 

 

¹øÈ£

Name

Control type

¨ç

toolStrip1

ToolStrip

¨è

splitContainter1

SplitContainer

¨é

nxMilmapView1

NXMilmapView

¨ê

nxMilmapView2

NXMilmapView

 

2.2.1     [µµ±¸ »óÀÚ]ÀÇ ¡°ToolStrip¡±¸¦ ¼±ÅÃÇÏ°í Form1¿¡ ²ø¾î´Ù°¡ ³õ´Â´Ù.

 

Form1¿¡ toolStrip1ÀÌ Ãß°¡µÈ´Ù. toolStrip1ÀÇ  ¹öÆ°À» Ŭ¸¯ÇÏ¿© ToolStripButtonÀ» Ãß°¡ÇÏ¸ç ¾ÆÀÌÄÜÀÌ Ãß°¡µÈ´Ù.

 

 

 

Ãß°¡µÈ ToolStripButtonÀ» ¼±ÅÃÇÑ ÈÄ [¼Ó¼º] â¿¡ DisplayType¸¦ ¡°Text¡±·Î ¼±ÅÃÇÏ°í, Name, Text¸¦ ¼öÁ¤ÇÑ´Ù.

 

 

º» ¿¹Á¦ ÇÁ·Î±×·¥ÀÇ ToolStrip ±¸¼ºÀº ¾Æ·¡¿Í °°´Ù.

Name

Text

±â´É ¼³¸í

pointToolStripButton

Point

Á¡ °´Ã¼ Ãß°¡

polylineToolStripButton

Polyline

Æú¸®¶óÀÎ °´Ã¼ Ãß°¡

polygonToolStripButton

Polygon

Æú¸®°ï °´Ã¼ Ãß°¡

circleToolStripButton

Circle

¿ø °´Ã¼ Ãß°¡

symbolToolStripButton

Symbol

½Éº¼ °´Ã¼ Ãß°¡

saveToFileToolStripButton

Save to File

Ãß°¡µÈ °´Ã¼¸¦ ÆÄÀÏ·Î ÀúÀå

loadFileToolStripButton

Load into MilmapView2

ÆÄÀÏÀ» ÀÐ¾î °´Ã¼¸¦ ´Ù¸¥ Milmap ºä¿¡ µµ½Ã

 

2.3    ±â´É ¹× À̺¥Æ® Ãß°¡

2.3.1     Form1ÀÇ »ý¼ºÀÚ¿¡ NXMilmapLayerSceneDisplay nxSceneLayerDisplay, NXMilmapLayerSceneEditor nxSceneLayerEditor¸¦ »ý¼ºÇÑ´Ù.

µÎ ¸â¹öº¯¼ö´Â Form1.Designer.cs¿¡ Ãß°¡Çϵµ·Ï ÇÏ°Ú´Ù. ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

// Form1.Designer.cs

¡¦

 

private Pixoneer.NXDL.NXMilmap.NXMilmapView nxMilmapView1;

private Pixoneer.NXDL.NXMilmap.NXMilmapView nxMilmapView2;

private Pixoneer.NXDL.NSCENE.NXMilmapLayerSceneEditor nxSceneLayerEditor;

private Pixoneer.NXDL.NSCENE.NXMilmapLayerSceneDisplay nxSceneLayerDisplay;

 

¡¦

 

// Form1.cs

 

using Pixoneer.NXDL;

using Pixoneer.NXDL.NXMilmap;

using Pixoneer.NXDL.NSCENE;

 

namespace XDL_PlanetView3

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

 

            nxSceneLayerDisplay = new NXMilmapLayerSceneDisplay();

            nxSceneLayerEditor = new NXMilmapLayerSceneEditor();

 

¡¦

 

2.3.2     Form1ÀÇ Load À̺¥Æ® ÇÔ¼ö¿¡¼­ nxSceneLayerDisplay¿Í nxSceneLayerEditor¸¦ nxMilmapView2¿Í nxMilmapView1¿¡ °¢°¢ Ãß°¡ÇÏ°í È­¸é Áß½ÉÀ» ¼³Á¤ÇÑ´Ù. º» ¿¹Á¦¿¡¼­´Â nxMilmapView1¿¡¼­´Â Degree Çü½ÄÀÇ grid°¡ µµ½ÃµÇµµ·Ï ¼³Á¤ÇÑ´Ù.

private void Form1_Load(object sender, EventArgs e)
{
    nxSceneLayerEditor.AttachTo(nxMilmapView1);
    nxSceneLayerDisplay.AttachTo(nxMilmapView2);

    // XMilmapConfig.xmlÀ» ÀÌ¿ëÇÏ¿© ±º»çÁöµµ¸¦ À§ÇÑ 
// NXMilmapView ¹× NXMilmapEngineÀ» ÃʱâÈ­ÇÑ´Ù.
    if (!NXMilmapView.m_MapEngine.InitFromXML("c:\\Pixoneer\\Xdl1.2\\Config\\XMilmapConfig.xml"))
    {
        return;
    }

    // ¸¶¿ì½º ÈÙÀ» ²ø°í ´ç±â´Â °ÍÀ» È®´ë/Ãà¼Ò ¿äÀÎÀ¸·Î °è»êÇÏ¿© È­¸éÀ» È®´ë/Ãà¼ÒÇÑ´Ù.
    // ÀÌ ¶§, °è»êµÈ °ø°£ ÇØ»óµµ¿Í °¡±î¿î Ãàô(scale)ÀÌ ÀÖ´Â °æ¿ì 
// ÀÚµ¿ÀûÀ¸·Î ÇØ´ç ÃàôÀ¸·Î ¹Ù²î¸é¼­ µµ½ÃµÈ´Ù.
    // ¸¶¿ì½º ÈÙÀ» ²ø°í ´ç±â´Â °ÍÀ¸·Î È­¸éÀÇ ÃàôÀ» º¯°æÇÏ·Á¸é,
// NXMilmapView.eWheelZoomAction.ByScaleIndexÀ¸·Î ¼³Á¤
    nxMilmapView1.WheelZoomAction = 
NXMilmapView.eWheelZoomAction.ByZoomFactor;
    nxMilmapView1.SetGeoToCenter(0, new XVertex2d(127.0, 36.0));

    nxMilmapView2.WheelZoomAction = 
NXMilmapView.eWheelZoomAction.ByZoomFactor;
    nxMilmapView2.SetGeoToCenter(0, new XVertex2d(127.0, 36.0));

    nxMilmapView1.ShowGrid = true;
    nxMilmapView1.GridType = NXMilmapView.eGridType.GridDegrees;
}

2.3.3     Form1ÀÇ Closed À̺¥Æ®(FormClosed) ÇÔ¼ö¸¦ »ý¼ºÇÏ¿© Milmap °ü·Ã ÇØÁ¦¿Í scene °´Ã¼ ¸Þ¸ð¸® ÇØÁö¸¦ À§ÇØ Äڵ带 Ãß°¡ÇÑ´Ù.

 

 

 

private void Form1_FormClosed(object sender, FormClosedEventArgs e)

{

    Xfn.Close();

}

 

2.3.4     Scene °´Ã¼¸¦ Ãß°¡Çϱâ À§ÇÑ ToolStripButtonÀÎ pointToolStripButton, polylineToolStripButton, polygonToolStripButton, circleToolStripButton, symbolToolStripButtonÀ» ¼±ÅÃÇÑ µÚ °¢°¢ ´õºí Ŭ¸¯ÇÏ¿© Click À̺¥Æ® ÇÔ¼ö¸¦ Ãß°¡ÇÑ´Ù.

pointToolStripButtonÀÇ °æ¿ì ¾Æ·¡ ±×¸²°ú °°ÀÌ pointToolStripButton_Click ÇÔ¼ö°¡ Ãß°¡µÈ´Ù.

 

2.3.5     Scene °´Ã¼ Ãß°¡ À̺¥Æ® ÇÔ¼ö¿¡ nxSceneLayerEditor¿¡ »õ·Î¿î scene °´Ã¼¸¦ »ý¼ºÇϵµ·Ï ¿äûÇÏ´Â Äڵ带 ±¸ÇöÇÑ´Ù.

NXMilmapLayerSceneEditorÀÇ CreateNewOBJ¸¦ ÅëÇØ ¸Å°³º¯¼ö¿¡ µû¸¥ scene °´Ã¼¸¦ »ý¼ºÇÏ¿© Ãß°¡ ¹× ÆíÁý °úÁ¤À» ÁøÇàÇÑ´Ù. CreatNewOBJ¿¡ ÀԷ°ªÀº scene °´Ã¼ÀÇ Å¬·¡½º À̸§ÀÌ´Ù. Point, polyline, polygon, circle, symbolÀÇ °´Ã¼ Ãß°¡ ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

private void pointToolStripButton_Click(object sender, EventArgs e)

{

    nxSceneLayerEditor.CreateNewOBJ("XscPoint");

}

 

private void polylineToolStripButton_Click(object sender, EventArgs e)

{

    nxSceneLayerEditor.CreateNewOBJ("XscPolyLine");

}

 

private void polygonToolStripButton_Click(object sender, EventArgs e)

{

    nxSceneLayerEditor.CreateNewOBJ("XscPolygon");

}

 

private void circleToolStripButton_Click(object sender, EventArgs e)

{

    nxSceneLayerEditor.CreateNewOBJ("XscCircle");

}

 

private void symbolToolStripButton_Click(object sender, EventArgs e)

{

    nxSceneLayerEditor.CreateNewOBJ("XscSymbol");

}

2.3.6     ¼Ö·ç¼ÇÀ» ºôµåÇÏ°í ½ÇÇàÇÑ´Ù.

ToolStrip Áß ¡°Polyline¡±À» ¼±ÅÃÇÑ ÈÄ ÇÁ·Î±×·¥ÀÇ Grid°¡ µµ½ÃµÈ MilmapView¿¡¼­ ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» Ŭ¸¯ÇÏ°í ¸¶¿ì½º¸¦ ¿òÁ÷ÀÌ¸é »ý¼ºµÈ PolylineÀ» È®ÀÎÇÒ ¼ö ÀÖÀ¸¸ç 2Á¡ ÀÌ»óÀÌ µÇ¸é ¡°No named XscPolyLine¡± À̶ó´Â À̸§°ú ÇÔ²² µµ½ÃµÇ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.

 

 

Á¤Á¡À» Ãß°¡ÇÏ´Â °ÍÀº ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» Ŭ¸¯ÇÏ¸é µÇ°í, »ý¼º ÀÛ¾÷À» Á¾·áÇÏ·Á¸é ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´õºí Ŭ¸¯ÇÏ¸é µÈ´Ù. »ý¼ºÀÛ¾÷À» Á¾·áÇÏ¸é ¾Æ·¡¿Í °°ÀÌ °´Ã¼ÀÇ Á¤Á¡ À§Ä¡ Á¶Á¤, Å©±â Á¶Á¤À» ÇÒ ¼ö ÀÖ´Â ÄÁÆ®·ÑµéÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

 

 

°¢ °´Ã¼´Â ±âº» µµ½Ã ¼Ó¼ºÁ¤º¸¸¦ ÀÌ¿ëÇÏ¿© »ý¼ºµÈ´Ù. SymbolÀÇ °æ¿ì, À»

±âº»°ªÀ¸·Î ÇÏ¿© »ý¼ºµÈ´Ù.

2.3.7     nxSceneLayerEditor¿¡ OnObjectCreated À̺¥Æ®¸¦ Ãß°¡ÇÏ¿© XDL ¿£Áø ³»ºÎ¿¡¼­ °´Ã¼ »ý¼º ¿Ï·á ½ÃÁ¡¿¡ °¢ °´Ã¼¿¡ ´ëÇÑ µµ½Ã ¼Ó¼ºÀ» º¯°æÇØ º»´Ù.

nxSceneLayerEditor »ý¼ºÀÚ ´ÙÀ½¿¡ ¾Æ·¡¿Í °°ÀÌ OnObjectCreated À̺¥Æ®¸¦ Ãß°¡ÇÑ´Ù.

namespace XDL_MilmapView3

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

 

            nxSceneLayerDisplay = new NXMilmapLayerSceneDisplay();

            nxSceneLayerEditor = new NXMilmapLayerSceneEditor();

            nxSceneLayerEditor.OnObjectCreated += new NXSCEditEvent(nxSceneLayerEditor_OnObjectCreated);

        }

¡¦

 

nxSceneLayerEditor_OnObjectCreated ÇÔ¼ö¿¡ ¾Æ·¡¿Í °°ÀÌ µµ½Ã ¼Ó¼º Äڵ带 Ãß°¡ÇÑ´Ù.

bool nxSceneLayerEditor_OnObjectCreated(XscObj pObj)

{

    if (pObj == null) return false;

 

    // Scene °´Ã¼ÀÇ Å¬·¡½º À̸§ °¡Á®¿À±â

    string typeName = pObj.GetTypeName();

    if (typeName == "XscPoint")

    {

        XscPoint objPoint = (XscPoint)pObj;

        objPoint.LineColor = Color.Yellow;

        // PointÀÇ Å©±â

        objPoint.LineWidth = 10;

        // PointTypeÀ¸·Î´Â Cross, Dot, Triangle, Rect, X°¡ ÀÖ´Ù.

        objPoint.PointType = XscPoint.ePointType.Rect;

        objPoint.Name = "Point #" + objPoint.ObjID.ToString();

    }

    else if (typeName == "XscPolyLine")

    {

        XscPolyLine objPolyLine = (XscPolyLine)pObj;

        objPolyLine.LineColor = Color.LightGreen;

        objPolyLine.LinePattern = XscLinePattern.eLinePatternType.DashDot;

        objPolyLine.LineWidth = 3;

        objPolyLine.Name = "Polyline #" + objPolyLine.ObjID.ToString();

    }

    else if (typeName == "XscPolygon")

    {

        XscPolygon objPolygon = (XscPolygon)pObj;

        objPolygon.BorderColor = Color.Blue;

        objPolygon.BorderSize = 3;

        objPolygon.LinePattern =

XscLinePattern.eLinePatternType.DashDotDot;

        objPolygon.FillColor = Color.Cyan;

        // FillPatternÀÌ Solid°¡ ¾Æ´Ñ °æ¿ì¿¡´Â ¹è°æ»öÀÌ Åõ¸íÇÏ°Ô Ã³¸®µÈ´Ù.

        objPolygon.FillPattern = XscFillPattern.eFillPatternType.Cross;

        objPolygon.Name = "Polygon #" + objPolygon.ObjID.ToString();

    }

    else if (typeName == "XscCircle")

    {

        XscCircle objCircle = (XscCircle)pObj;

        objCircle.LineColor = Color.Coral;

        objCircle.LineWidth = 2;

        objCircle.FillColor = Color.GreenYellow;

        objCircle.FillPattern = XscFillPattern.eFillPatternType.Vertical;

        objCircle.Name = "Circle #" + objCircle.ObjID.ToString();

    }

    else if (typeName == "XscSymbol")

    {

        XscSymbol objSymbol = (XscSymbol)pObj;

        // DefaultSymbolNameÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº

// Apartment, Image, Model, Public, Stadium, TextChart°¡ ÀÖ´Ù.

        // ÀÌ´Â XDL ¿£Áø ¼³Ä¡ Æú´õ Áß Resource\Scenes\Icons¿¡ ÀúÀåµÇ¾î ÀÖ´Ù.

        // »ç¿ëÀÚ Á¤ÀÇÀÇ ½Éº¼À» ·ÎµùÇÏ°íÀÚ ÇÑ´Ù¸é, DefaultSymbolName ´ë½Å

//  UserSymbolPath ¼Ó¼ºÀ¸·Î °æ·Î¸¦ ¼³Á¤ÇÑ´Ù.

        objSymbol.DefaultSymbolName = "Apartment";

        objSymbol.UpdateSymbol();

        objSymbol.Name = "Symbol #" + objSymbol.ObjID.ToString();

    }

 

    nxMilmapView1.RefreshScreen();

    return default(bool);

}

 

 

2.3.8      nxMilmapView1¿¡ »ý¼ºÇÑ scene °´Ã¼¸¦ ÆÄÀÏ·Î ÀúÀåÇϱâ À§ÇØ ToolStripÀÇ saveToFileToolStripButtonÀ» ´õºí Ŭ¸¯ÇÏ¿© À̺¥Æ®ÇÔ¼ö¸¦ Ãß°¡ÇÏ°í Äڵ带 ±¸ÇöÇÑ´Ù.

¸¶¿ì½º·Î ´õºí Ŭ¸¯ÇÏ¸é ¡°Click¡±¿¡ ´ëÇÑ À̺¥Æ® ÇÔ¼ö°¡ ÀÚµ¿ Ãß°¡µÈ´Ù.

 

 

nxSceneEditorÀÇ XScene °´Ã¼¸¦ ¾ò¾î ÆÄÀÏ·Î ÀúÀåÇÑ´Ù. XDL ¿£ÁøÀÇ Scene ÆÄÀÏÀº SMLÀ» È®ÀåÀÚ·Î ÇÏ´Â XML ÆÄÀÏÀÌ´Ù. ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

private void saveToFileToolStripButton_Click(object sender, EventArgs e)

{

    // »ý¼ºÇÑ scene °´Ã¼¸¦ °¡Áö°í ÀÖ´Â ÃÖ»óÀ§ XScene °´Ã¼¸¦ ¾ò¾î¿Â´Ù.

    XScene sceneRoot = nxSceneLayerEditor.GetScene();

    if (sceneRoot == null) return;

 

    // ÀúÀåÀ» À§ÇÑ FileDialog »ý¼º

    SaveFileDialog saveDlg = new SaveFileDialog();

    saveDlg.Filter = "XDL Scene file(*.sml)|*.sml;||";

    if (saveDlg.ShowDialog() != DialogResult.OK) return;

 

    // ÆÄÀÏ°æ·Î¿¡ XScene °´Ã¼ÀÇ µ¥ÀÌÅ͸¦ XML ÇüÅ·ΠÀúÀåÇÑ´Ù.

    // ¼¼ ¹ø° ¸Å°³º¯¼öÀÎ XSpatialReference´Â Ãâ·Â ÁÂÇ¥°è Á¤º¸¸¦ ¼³Á¤ÇÏ´Â °ÍÀ¸·Î¼­,

    // ¿©±â¿¡¼­´Â XScene °´Ã¼ÀÇ ÁÂÇ¥°è Á¤º¸·Î ÇÏ°Ú´Ù.

    if (XScene.SaveScene(sceneRoot, saveDlg.FileName, sceneRoot.SR))

    {

        MessageBox.Show("MilmapViewÀÇ scene °´Ã¼¸¦ ÆÄÀÏ·Î ÀúÀåÇÏ¿´½À´Ï´Ù.");

    }

    else

    {

        MessageBox.Show("MilmapViewÀÇ scene °´Ã¼¸¦ ÆÄÀÏ·Î ÀúÀåÇÏÁö ¸øÇß½À´Ï´Ù.");

    }

}

2.3.9     Scene ÆÄÀÏÀÎ SML ÆÄÀÏÀ» ¼±ÅÃÇÏ¿© scene °´Ã¼¸¦ »ý¼ºÇÏÁö ¾ÊÀº ´Ù¸¥ MilmapView ȯ°æ¿¡ µµ½ÃÇϵµ·Ï ÇÑ´Ù. À̸¦ À§ÇÑ loadFileToolStripButtonÀ» ´õºí Ŭ¸¯ÇÏ¿© Click À̺¥Æ®ÇÔ¼ö¸¦ Ãß°¡ÇÏ°í ÆÄÀÏÀ» ·ÎµùÇÏ´Â Äڵ带 Ãß°¡ÇÑ´Ù.

¸¶¿ì½º·Î ´õºí Ŭ¸¯ÇÏ¸é ¡°Click¡±¿¡ ´ëÇÑ À̺¥Æ® ÇÔ¼ö°¡ ÀÚµ¿ Ãß°¡µÈ´Ù.

 

 

SML ÆÄÀÏÀ» NXMilmapLayerSceneDispalyÀÇ Open ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ·ÎµùÇϸé NXMilmapLayerSceneDisplayÀÇ scene µ¥ÀÌÅÍ°¡ ÆÄÀÏÀÇ ³»¿ëÀ¸·Î °»½ÅµÈ´Ù. º» ¿¹Á¦¿¡¼­´Â NXMilmapLayerSceneDisplay º¯¼öÀÎ nxSceneLayerDisplayÀÇ Open ÇÔ¼ö¸¦ ÅëÇØ SML ÆÄÀÏÀ» ·ÎµùÇÑ ÈÄ XScene °´Ã¼¸¦ ¾ò¾î¼­ µµ½Ã ¼ø¼­¸¦ ¼³Á¤ÇÑ´Ù.

XScene¿¡ Ãß°¡µÈ scene °´Ã¼¸¦ Ãß°¡µÈ ¼ø¼­´ë·Î µµ½ÃÇÏ°íÀÚ Çϸé, XScene °´Ã¼¸¦ ¾ò¾î DisplayOrder¸¦ OrderByAddSequence·Î ¼öÁ¤ÇÑ´Ù. XSceneÀÇ DisplayOrder ±âº»°ªÀº OrderNoneÀ¸·Î, OrderNone, OrderByAddSequence, OrderByUserSequence°¡ ÀÖ´Ù.

ÄÚµå´Â ¾Æ·¡¿Í °°´Ù.

private void loadFileToolStripButton_Click(object sender, EventArgs e)

{

    // ÆÄÀÏÀ» ¼±ÅÃÇϱâ À§Çؼ­ FileDialog »ý¼º

    OpenFileDialog openDlg = new OpenFileDialog();

    openDlg.Filter = "XDL Scene file(*.sml)|*.sml;||";

    if (openDlg.ShowDialog() != DialogResult.OK) return;

 

    // NXPlanetLayerSceneDisplayÀÇ Open ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© scene °´Ã¼ ·Îµù

    if (nxSceneLayerDisplay.Open(openDlg.FileName))

    {

        XScene scene = nxSceneLayerDisplay.GetScene();

        // Scene °´Ã¼ µµ½Ã ¹æ¹ýÀ» Ãß°¡µÇ´Â ¼ø¼­´ë·Î µµ½ÃÇϵµ·Ï ¼³Á¤ÇÑ´Ù.

        // ±âº»°ªÀº XScene.eDisplayOrder.OrderNoneÀÌ´Ù.

        scene.DisplayOrder = XScene.eDisplayOrder.OrderByAddSequence;

 

        MessageBox.Show("MilmapViewÀÇ scene °´Ã¼¸¦ °»½ÅÇÏ°Ú½À´Ï´Ù");

        nxMilmapView2.RefreshScreen();

    }

    else

    {

        MessageBox.Show("scene ÆÄÀÏÀ» ·ÎµùÇÒ ¼ö ¾ø½À´Ï´Ù.");

    }

}

2.3.10   ¼Ö·ç¼ÇÀ» ºôµåÇÏ°í ½ÇÇàÇÑ´Ù.

»ùÇà ÇÁ·ÎÁ§Æ®¿Í ÇÔ²² ¹èÆ÷µÈ ÆÄÀÏÀÎ test.sml ÆÄÀÏÀ» ·ÎµùÇØ º»´Ù.