XDL Manual

XDL MapView È°¿ë ¿©¼¸¹ø°

(piXoneer XDL Tutorial)

 

 

 

 

 

 

NXMapView¸¦ È°¿ëÇÏ¿© ¿µ»óÀ» ±â¹ÝÀ¸·Î ÇÏ¿©

º¤ÅÍ °´Ã¼¸¦ »ý¼ºÇÏ´Â ±â´ÉÀ» ±¸ÇöÇÕ´Ï´Ù.

 

 

2017. 01.

¼öÁ¤ 2019. 02.

 

 

¸ñÂ÷

XDL MapView È°¿ë ´Ù¼¸¹ø°... 1

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

1.1    NXMapView¸¦ ÀÌ¿ëÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ ¸¸µé±â... 1

1.2    Driverº¹»çÇϱâ... 1

1.3    ConfigÆÄÀÏ ¼³Á¤Çϱâ... 1

1.4    ¸Þ´º¿¡ ¹è°æ¸Ê Show/Hide±â´É ³Ö±â... 1

 

 

 

 

1     »ç¿ëÇϱâ

º» Æ©Å͸®¾óÀ» °øºÎÇϱâ Àü¿¡ ¸ÕÀú ¡°XDL MapView È°¿ë ´Ù¼¸¹ø°¡±¸¦ ¸ÕÀú ¼±ÇàÇϽñ⠹ٶø´Ï´Ù.

 

1.1    ¸Þ´º¿¡ Open/Save ±â´É ³Ö±â

1.1.1     µðÀÚÀÎâ¿¡¼­ ToolbarÀÇ [File]-[Open XvcVector]¿Í [File]-[Save XvcVector]¸¦ ÀÔ·ÂÇÑ´Ù. ¶ÇÇÑ [Save XvcVector]¸Þ´º ÇϺο¡ [Pixoneer XVML]°ú [External Vector Format]±â´ÉÀ» Ãß°¡ÇÑ´Ù.

 

 

1.2    ¸Þ´º¿¡ º¤ÅÍ ±â´É ³Ö±â

1.2.1     »óÀ§ ¸Þ´º·Î Vector¸¦ ÀÔ·ÂÇÏ°í ´ÙÀ½°ú °°ÀÌ ¸Þ´º¸¦ ±¸¼ºÇÑ´Ù.

 

 

1.3    ÂüÁ¶ dll Ãß°¡Çϱâ

1.3.1     [ÂüÁ¶Ãß°¡] ±â´ÉÀ» ÅëÇØ ¡°C:\Pixoneer\XDL1.2\bin¡±À¸·Î Æú´õ¸¦ À̵¿ÇÏ¿© NXDLvc.dll¸¦ ¼±ÅÃÇÏ¿© Ãß°¡ÇÑ´Ù.

 

 

1.4    ÄÚµå Ãß°¡Çϱâ

1.4.1     »ý¼ºµÈ º¤Å͸¦ ÀúÀåÇÏ°í ´Ù½Ã ¿­±â À§ÇÑ XVectorIO°´Ã¼¸¦ »ý¼ºÇÑ´Ù.

namespace XDL_MapView1
{
public partial class Form1 : Form
{
public XRasterIO m_RasterIO;        //¿µ»óÀÇ ÀÔÃâ·ÂÀ» ´ã´çÇÒ °´Ã¼ ¼±¾ð
public XVectorIO m_VectorIO;	  //º¤ÅÍ °´Ã¼ÀÇ ÀÔÃâ·ÂÀ» ´ã´çÇÒ °´Ã¼ ¼±¾ð

public Form1()
{

 

1.4.2     ¼±¾ðºÎ¿¡ º¤ÅÍ °´Ã¼¸¦ Çڵ鸵Çϱâ À§ÇØ ¡°using Pixoneer.NXDL.NVC;¡±À» Ãß°¡ÇÏ°í »ý¼ºÀÚ¿¡ XMapLayerVectorEditor°´Ã¼¿¡ ÆíÁýÀÌ °¡´ÉÇϵµ·Ï Editable¼Ó¼ºÀ» trueÇ÷¡±×·Î ¼³Á¤ÇÏ°í, m_VectorIO°´Ã¼¸¦ »ý¼º ¹× ÃʱâÈ­ ½ÃŲ´Ù.

using Pixoneer.NXDL;        // ±âº» ÇÔ¼ö °ü·Ã ±â´É
using Pixoneer.NXDL.NCC;    // ÁÂÇ¥ ½Ã½ºÅÛ °ü·Ã ±â´É
using Pixoneer.NXDL.NIO;    // ÆÄÀÏ ÀÔÃâ·Â °ü·Ã ±â´É
using Pixoneer.NXDL.NRS;    // Remote Sensing °ü·Ã ±â´É
using Pixoneer.NXDL.NGR;    // Graphic°ü·Ã ±â´É
using Pixoneer.NXDL.NVC;    // Vector °´Ã¼¿Í °ü·ÃµÈ ±â´É
using Pixoneer.NXDL.NXMap;  // MapView °ü·Ã ±â´É


public Form1()
{
    InitializeComponent();

    String StrError;
    m_RasterIO = new XRasterIO();   // °´Ã¼ »ý¼º
    if (m_RasterIO.Initialize(out StrError) == false)   // ¿µ»ó ÀÔÃâ·Â °´Ã¼ ÃʱâÈ­
    {
        MessageBox.Show(StrError);
    }

    nxMapLayerComposites1.LayerVisible = true;

    if (!nxMapView1.SetBackgroundMap("C:\\Pixoneer\\XDL1.2\\Config\\XMapBase.xml"))
    {
        MessageBox.Show("¹è°æ¸ÊÀÌ ¼³Á¤µÇÁö ¾Ê¾Ò½À´Ï´Ù.");
    }

    // º¤ÅÍ °´Ã¼¸¦ »ý¼ºÇÏ°í ÆíÁýÇϱâ À§ÇØ 
    nxMapLayerVectorEditor1.Editable = true;

    // º¤Å͸¦ ÀúÀåÇϱâ À§ÇØ º¤ÅÍ IO°´Ã¼¸¦ »ý¼º
    m_VectorIO = new XVectorIO();
    if (m_VectorIO.Initialize(out StrError) == false)
        MessageBox.Show(StrError);
}

1.4.3     [Vector]Åø¹Ù ÇϺο¡ Point, Line, Ellipse, Rectangle, PolyLine, Polygon, Text, TextBoxÀÇ ¸Þ´º¸¦ ´õºíŬ¸¯ÇÏ°í ÀÚµ¿ ÇÔ¼ö¸¦ »ý¼ºÇÏ¿© ´ÙÀ½°ú °°ÀÌ Äڵ带 »ý¼ºÇÑ´Ù.

private void pointToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.Point, null);
}

private void lineToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.Line, null);
}

private void ellipseToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.Ellipse, null);
}

private void rectangleToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.Rectangle, null);
}

private void polyLineToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.Polyline, null);
}

private void polygonToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.Polygon, null);
}

private void textToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.Text, null);
}

private void textBoxToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.Textbox, null);
}

 

1.4.4     ÃøÁ¤µµ±¸¸¦ À§ÇØ MeasurePoint, MeasureDistance, MeasureArea, MeasureAngle Åø¹Ù¸¦ ´õºí Ŭ¸¯ÇÏ¿© ÀÚµ¿ Äڵ带 »ý¼ºÇÏ°í ´ÙÀ½°ú °°ÀÌ Äڵ带 »ðÀÔÇÑ´Ù.

private void measurePointToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.MeasurePoint, null);
}

private void measureDistanceToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.MeasureDist, null);
}

private void measureAreaToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.MeasureArea, null);
}

private void measureAngleToolStripMenuItem_Click(object sender, EventArgs e)
{
    nxMapLayerVectorEditor1.CreateNewOBJ(Pixoneer.NXDL.NVC.eXvcObjType.MeasureAngle, null);
}

 

1.4.5     ƯÁ¤ °´Ã¼¸¦ ¸¶¿ì½º·Î ¼±ÅÃÇÑ´Ù. [Vector]-[Property]¹öÆ°À» ´õºí Ŭ¸¯ÇÏ¿© Äڵ带 »ý¼ºÇÑ´Ù.

private void propertyToolStripMenuItem_Click(object sender, EventArgs e)
{
    XvcObj Obj = nxMapLayerVectorEditor1.GetSelectedObj();
    if (Obj == null) return;

    ChangeProperty(Obj);
}



public void ChangeProperty(XvcObj Obj)
{
    // ¼±ÅÃµÈ °´Ã¼°¡ nullÀÎ °æ¿ì´Â ½ÇÇàÇÏÁö ¾Ê´Â´Ù.
    if (Obj == null) {   return;  }

    eXvcObjType type = Obj.Type;

    // Property âÀ» »ý¼ºÇÏ°í ±âÁ¸ ObjectÀÇ ¼Ó¼º°ªÀ» Propertyâ¿¡ ¼³Á¤ÇÑ´Ù. 
    PropertyXvcObj propertyDlg  = new PropertyXvcObj();
    propertyDlg.m_strObjType    = type.ToString();
    propertyDlg.m_nID           = Obj.ID;
    propertyDlg.m_strName       = Obj.Name;
    propertyDlg.m_crBack        = Obj.ColorBack;
    propertyDlg.m_crFore        = Obj.ColorFore;
    propertyDlg.m_crLine        = Obj.ColorLine;
    propertyDlg.m_dblThick      = Obj.GetThick();
    propertyDlg.m_StyleFill     = Obj.StyleFill;
    propertyDlg.m_StyleLine     = Obj.StyleLine;
    propertyDlg.m_crText        = Obj.ColorText;


    // Object Type¿¡ µû¶ó ¼Ó¼º°ªÀ» Propertyâ¿¡ ¼³Á¤ÇÑ´Ù.
    if (type == eXvcObjType.Text)
    {
        propertyDlg.m_dblFontSize   = ((XvcText)Obj).FontSize;
        propertyDlg.m_strFontName   = ((XvcText)Obj).FontName;
        propertyDlg.m_bBold         = ((XvcText)Obj).Bold;
        propertyDlg.m_bUnderline    = ((XvcText)Obj).Underline;
        propertyDlg.m_bItalic       = ((XvcText)Obj).Italic;
        propertyDlg.m_bStrikeOut    = ((XvcText)Obj).StrikeOut;
    }
    else if (type == eXvcObjType.Line)
    {
        propertyDlg.m_LineStartShape = ((XvcLine)Obj).StartShapeType;
        propertyDlg.m_LineEndShape = ((XvcLine)Obj).EndShapeType;
    }


    // Object Type¿¡ µû¶ó ¼Ó¼º°ªÀ» Propertyâ¿¡ ¼³Á¤ÇÑ´Ù.
    if (propertyDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        Obj.ID = propertyDlg.m_nID;
        Obj.Name = propertyDlg.m_strName;
        Obj.ColorBack = propertyDlg.m_crBack;
        Obj.ColorFore = propertyDlg.m_crFore;
        Obj.ColorLine = propertyDlg.m_crLine;
        Obj.SetThick(propertyDlg.m_dblThick);
        Obj.StyleFill = propertyDlg.m_StyleFill;
        Obj.StyleLine = propertyDlg.m_StyleLine;
        Obj.ColorText = propertyDlg.m_crText;

        // Object°¡ ÅؽºÆ®Àΰæ¿ì Text°´Ã¼¿¡ Propertyâ¿¡¼­ Á¤ÀÇÇÑ °ªÀ» ¼³Á¤ÇÑ´Ù.
        if (type == eXvcObjType.Text)
        {
            XvcText text = (XvcText)Obj;
            text.FontSize = propertyDlg.m_dblFontSize;
            text.FontName = propertyDlg.m_strFontName;
            text.Bold = propertyDlg.m_bBold;
            text.Underline = propertyDlg.m_bUnderline;
            text.Italic = propertyDlg.m_bItalic;
            text.StrikeOut = propertyDlg.m_bStrikeOut;
        }
        // Object°¡ LineÀΰæ¿ì Line°´Ã¼¿¡ Propertyâ¿¡¼­ Á¤ÀÇÇÑ °ªÀ» ¼³Á¤ÇÑ´Ù.
        else if (type == eXvcObjType.Line)
        {
            ((XvcLine)Obj).StartShapeType = propertyDlg.m_LineStartShape;
            ((XvcLine)Obj).EndShapeType = propertyDlg.m_LineEndShape;
        }

        this.nxMapView1.RefreshScreen();
    }
}

 

1.4.6     [F5]Å°¸¦ ´­·¯ ÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù. [Vector]-[Line], [Polygon]µîÀ» ´©¸¥ ÈÄ µµ½ÃÈ­¸é»ó¿¡ ¸¶¿ì½º¸¦ Ŭ¸¯ ¹× µå·¡±ëÇÏ¿© °´Ã¼¸¦ »ý¼ºÇÑ´Ù.

 

1.4.7     ÇÁ·Î±×·¥À» Á¾·áÇÑ´Ù.

 

1.4.8     FormView¸¦ »ý¼ºÇÏ¿© PropertyâÀ» µðÀÚÀÎÇÑ´Ù. Property â¿¡ ´ëÇÑ ÄÚµå´Â »ý·«ÇÑ´Ù. »ùÇÃÄڵ带 ´Ù¿î·Îµå ÈÄ ÂüÁ¶ÇÑ´Ù.

 

1.4.9     [F5]Å°¸¦ ´­·¯ ÇÁ·Î±×·¥À» ½ÇÇà½ÃŲ´Ù. Åø¹ÙÀÇ [Vector]-[Line]¸¦ ´­·¯ ¶óÀÎÀ» Çϳª ±×¸°´Ù.

 

1.4.10  ƯÁ¤ °´Ã¼¸¦ ¸¶¿ì½º·Î ¼±ÅÃÇÑ´Ù. [Vector]-[Property]¹öÆ°À» ´©¸¥´Ù.

 

 

1.4.11  ¼Ó¼º°ªÀ» º¯°æ ÈÄ OK¸¦ Ŭ¸¯ÇÑ´Ù.