IImageTileSource Interface
The interface that should be implemented by classes that are tile sources for the ImageTileDataProvider.
Namespace: DevExpress.XtraMap
Assembly: DevExpress.XtraMap.v24.2.dll
Declaration
Related API Members
The following members return IImageTileSource objects:
Example
This example shows how to use an ImageTileDataProvider instance to generate map tiles.
- Create an ImageTileDataProvider object and assign it to the ImageLayer.DataProvider property.
- Develop a class that inherits the
IImageTileSource
interface and represents a tile generator. This generator creates a bitmap for each tile based on its indices. - Implement the interface’s IImageTileSource.GetImage method.
- Assign an instance of the class you developed to the ImageTileDataProvider.TileSource property.
using DevExpress.XtraMap;
using System;
using System.Drawing;
using System.Windows.Forms;
namespace InMemoryTileProvider {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
ImageTileDataProvider tileDataProvider = new ImageTileDataProvider();
tileDataProvider.TileSource = new SimpleTileGenerator();
this.imageLayer1.DataProvider = tileDataProvider;
}
public class SimpleTileGenerator : IImageTileSource {
readonly Font font = new Font("Arial", 10);
Random rnd = new Random();
public bool CanDisposeSourceImage => true;
public string Name => nameof(SimpleTileGenerator);
public Image GetImage(int x, int y, int level, Size size) {
Bitmap bitmap = new Bitmap(size.Width, size.Height);
using (Graphics gr = Graphics.FromImage(bitmap)) {
gr.Clear(Color.FromArgb(128, rnd.Next(255),
rnd.Next(255), rnd.Next(255)));
gr.DrawString(string.Format("{0} {1} {2}", x, y, level),
font, Brushes.Black, new PointF(5, 5));
}
return bitmap;
}
}
}
}
See Also