첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

TestProject.zip
다운로드

▶ MainForm.cs

using System;
using System.Reflection;
using System.Windows.Forms;

using DevExpress.XtraEditors;
using DevExpress.XtraMap;

namespace TestProject
{
    /// <summary>
    /// 메인 폼
    /// </summary>
    public partial class MainForm : XtraForm
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 생성자 - MainForm()

        /// <summary>
        /// 생성자
        /// </summary>
        public MainForm()
        {
            InitializeComponent();

            #region 데카르트 맵 좌표계를 설정한다.

            CartesianMapCoordinateSystem cartesianMapCoordinateSystem = new CartesianMapCoordinateSystem();

            #endregion
            #region 맵 컨트롤을 설정한다.

            MapControl mapControl = new MapControl();

            mapControl.Parent           = this;
            mapControl.Dock             = DockStyle.Fill;
            mapControl.CoordinateSystem = cartesianMapCoordinateSystem;
            mapControl.MinZoomLevel     = 1;
            mapControl.MaxZoomLevel     = 3;
            mapControl.CenterPoint      = new CartesianPoint(-100, -50);

            #endregion
            #region 도형 파일 데이터 어댑터를 설정한다.

            Uri baseURI = new Uri(Assembly.GetEntryAssembly().Location);

            ShapefileDataAdapter shapefileDataAdapter = new ShapefileDataAdapter();

            shapefileDataAdapter.SourceCoordinateSystem = new CartesianSourceCoordinateSystem();
            shapefileDataAdapter.FileUri                = new Uri(baseURI, "DATA\\Hotel1.shp");

            #endregion
            #region 어트리뷰트 키 공급자를 설정한다.

            AttributeItemKeyProvider attributeItemKeyProvider = new AttributeItemKeyProvider();

            attributeItemKeyProvider.AttributeName = "CATEGORY";

            #endregion
            #region 키 색상 색상화기를 설정한다.

            KeyColorColorizer keyColorColorizer = new KeyColorColorizer();

            keyColorColorizer.ItemKeyProvider       = attributeItemKeyProvider;
            keyColorColorizer.PredefinedColorSchema = PredefinedColorSchema.Palette;

            keyColorColorizer.Keys.Add(new ColorizerKeyItem() { Key = 1, Name = "Restaurant"    });
            keyColorColorizer.Keys.Add(new ColorizerKeyItem() { Key = 2, Name = "Business room" });
            keyColorColorizer.Keys.Add(new ColorizerKeyItem() { Key = 3, Name = "Bathroom"      });
            keyColorColorizer.Keys.Add(new ColorizerKeyItem() { Key = 4, Name = "Living room"   });
            keyColorColorizer.Keys.Add(new ColorizerKeyItem() { Key = 5, Name = "Other"         });
            keyColorColorizer.Keys.Add(new ColorizerKeyItem() { Key = 6, Name = "Service room"  });
            keyColorColorizer.Keys.Add(new ColorizerKeyItem() { Key = 7, Name = "Pool"          });
            keyColorColorizer.Keys.Add(new ColorizerKeyItem() { Key = 8, Name = "Gym"           });

            #endregion
            #region 벡터 항목 레이어를 설정한다.

            VectorItemsLayer vectorItemsLayer = new VectorItemsLayer();

            vectorItemsLayer.Data      = shapefileDataAdapter;
            vectorItemsLayer.Colorizer = keyColorColorizer;

            mapControl.Layers.Add(vectorItemsLayer);

            #endregion
            #region 색상 리스트 레전드를 설정한다.

            ColorListLegend colorListLegend = new ColorListLegend();

            colorListLegend.Layer  = vectorItemsLayer;
            colorListLegend.Header = "Room Type";

            mapControl.Legends.Add(colorListLegend);

            #endregion
        }

        #endregion
    }
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요