[DEVEXPRESS/WINFORM] GeoMapCoordinateSystem 클래스 : Projection 속성을 사용해 지도 투영 설정하기
DevExpress/WinForm 2020. 6. 27. 13:58728x90
반응형
728x170
▶ MainForm.cs
using System;
using System.Collections.Generic;
using System.Reflection;
using DevExpress.XtraEditors;
using DevExpress.XtraMap;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : XtraForm
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 투영 베이스 리스트
/// </summary>
private List<ProjectionBase> projectionBaseList = new List<ProjectionBase>()
{
new BraunStereographicProjection(),
new EllipticalMercatorProjection(),
new EqualAreaProjection(),
new EquidistantProjection(),
new EquirectangularProjection(),
new KavrayskiyProjection(),
new LambertCylindricalEqualAreaProjection(),
new MillerProjection(),
new SinusoidalProjection(),
new SphericalMercatorProjection()
};
/// <summary>
/// GEO 맵 좌표계
/// </summary>
private GeoMapCoordinateSystem geoMapCoordinateSystem;
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
this.geoMapCoordinateSystem = this.mapControl.CoordinateSystem as GeoMapCoordinateSystem;
Load += Form_Load;
this.projectionListBox.SelectedIndexChanged += projectionListBox_SelectedIndexChanged;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 폼 로드시 처리하기 - Form_Load(sender, e)
/// <summary>
/// 폼 로드시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void Form_Load(object sender, EventArgs e)
{
this.projectionListBox.DataSource = this.projectionBaseList;
this.projectionListBox.SetSelected(0, true);
Uri baseURI = new Uri(Assembly.GetEntryAssembly().Location);
Uri uri = new Uri(baseURI, "DATA\\Countries.shp");
this.mapControl.Layers.Add
(
new VectorItemsLayer()
{
Data = new ShapefileDataAdapter()
{
FileUri = uri
}
}
);
}
#endregion
#region 투명 리스트 박스 선택 인덱스 변경시 처리하기 - projectionListBox_SelectedIndexChanged(sender, e)
/// <summary>
/// 투명 리스트 박스 선택 인덱스 변경시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void projectionListBox_SelectedIndexChanged(object sender, EventArgs e)
{
this.geoMapCoordinateSystem.Projection = this.projectionListBox.SelectedValue as ProjectionBase;
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
댓글을 달아 주세요