[DEVEXPRESS/WINFORM] KeyColorColorizer 클래스 : 키 색상 색상화기를 사용해 맵 항목 색상 표시하기
DevExpress/WinForm 2020. 6. 26. 21:02728x90
반응형
728x170
▶ 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
반응형
그리드형(광고전용)
댓글을 달아 주세요