첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ IImageTileSource 인터페이스 : 실행시 이미지 타일 생성하기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip



CustomTileGenerator.cs

 

 

using System;

using System.Drawing;

 

using DevExpress.XtraMap;

 

namespace TestProject

{

    /// <summary>

    /// 커스텀 타일 생성기

    /// </summary>

    public class CustomTileGenerator : IImageTileSource

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Field

        ////////////////////////////////////////////////////////////////////////////////////////// Private

 

        #region Field

 

        /// <summary>

        /// 폰트

        /// </summary>

        private readonly Font font = new Font("Arial", 10);

 

        /// <summary>

        /// 난수기

        /// </summary>

        private Random random = new Random();

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////////////////////////// Property

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region 소스 이미지 리소스 해제 가능 여부 - CanDisposeSourceImage

 

        /// <summary>

        /// 소스 이미지 리소스 해제 가능 여부

        /// </summary>

        public bool CanDisposeSourceImage

        {

            get

            {

                return true;

            }

        }

 

        #endregion

        #region 명칭 - Name

 

        /// <summary>

        /// 명칭

        /// </summary>

        public string Name

        {

            get

            {

                return nameof(CustomTileGenerator);

            }

        }

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region 이미지 구하기 - GetImage(x, y, level, size)

 

        /// <summary>

        /// 이미지 구하기

        /// </summary>

        /// <param name="x">X 좌표</param>

        /// <param name="y">Y 좌표</param>

        /// <param name="level">레벨</param>

        /// <param name="size">크기</param>

        /// <returns>이미지</returns>

        public Image GetImage(int x, int y, int level, Size size)

        {

            Bitmap bitmap = new Bitmap(size.Width, size.Height);

 

            using(Graphics graphics = Graphics.FromImage(bitmap))

            {

                graphics.Clear(Color.FromArgb(128, random.Next(255), random.Next(255), random.Next(255)));

 

                graphics.DrawString

                (

                    string.Format("X : {0}, Y : {1}, Level : {2}", x, y, level),

                    font,

                    Brushes.Black,

                    new PointF(5, 5)

                );

            }

 

            return bitmap;

        }

 

        #endregion

    }

}

 

 

MainForm.cs

 

 

using System;

 

using DevExpress.XtraEditors;

using DevExpress.XtraMap;

 

namespace TestProject

{

    /// <summary>

    /// 메인 폼

    /// </summary>

    public partial class MainForm : XtraForm

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region 생성자 - MainForm()

 

        /// <summary>

        /// 생성자

        /// </summary>

        public MainForm()

        {

            InitializeComponent();

 

            Load += Form_Load;

        }

 

        #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)

        {

            ImageTileDataProvider imageTileDataProvider = new ImageTileDataProvider();

 

            imageTileDataProvider.TileSource = new CustomTileGenerator();

 

            this.imageLayer.DataProvider = imageTileDataProvider;

        }

 

        #endregion

    }

}

 

------------------------------------------------------------------------------------------------------------------------

'DevExpress > WinForm' 카테고리의 다른 글

[DEVEXPRESS/WINFORM] BingElevationDataProvider 클래스 : 빙 고도(Bing Elevation) 서비스를 사용해 높이 구하기  (0) 2020.06.19
[DEVEXPRESS/WINFORM] BingRouteDataProvider 클래스 : 빙 경로(Bing Route) 서비스를 사용해 경로 계산하기  (0) 2020.06.18
[DEVEXPRESS/WINFORM] BingGeocodeDataProvider 클래스 : 빙 지오코드(Bing Geocode) 서비스를 사용해 위도/경도에 대한 정보 구하기  (0) 2020.06.17
[DEVEXPRESS/WINFORM] BingSearchDataProvider 클래스 : 빙 검색(Bing Search) 서비스를 사용해 위치 정보 구하기  (0) 2020.06.17
[DEVEXPRESS/WINFORM] BingSearchDataProvider 클래스 : 빙 검색(Bing Search) 서비스 사용하기  (0) 2020.06.17
[DEVEXPRESS/WINFORM] IImageTileSource 인터페이스 : 실행시 이미지 타일 생성하기  (0) 2020.06.17
[DEVEXPRESS/WINFORM] CartesianSourceCoordinateSystem 클래스 : CoordinateConverter 속성을 사용해 좌표 변환기(Coordinate Converter) 수동으로 설정하기  (0) 2020.06.17
[DEVEXPRESS/WINFORM] ShapefileDataAdapter 클래스 : SourceCoordinateSystem 속성을 사용해 직교 데이터(Cartesian Data) 제공하기  (0) 2020.06.17
[DEVEXPRESS/WINFORM] PieChartDataAdapter 클래스 : 지리 지도에 분석 데이터 추가하기  (0) 2020.06.16
[DEVEXPRESS/WINFORM] ShapefileDataAdapter 클래스 : 벡터 데카르트(Vector Cartesian) 맵 생성하기  (0) 2020.06.15
[DEVEXPRESS/WINFORM] BingMapDataProvider 클래스 : 이미지 공급자 연결하기  (0) 2020.06.15
Posted by 사용자 icodebroker

댓글을 달아 주세요