All docs
V21.2
21.2 (EAP/Beta)
21.1
20.2
20.1
19.2
19.1
The page you are viewing does not exist in version 19.1. This link will take you to the root page.
18.2
The page you are viewing does not exist in version 18.2. This link will take you to the root page.
18.1
The page you are viewing does not exist in version 18.1. This link will take you to the root page.
17.2
The page you are viewing does not exist in version 17.2. This link will take you to the root page.
You are viewing help content for pre-release software. This document and the features it describes are subject to change. Switch to the current version.

ImageTileSource Class

The class that should be implemented by classes that are tile sources for the ImageTileDataProvider.

Namespace: DevExpress.Xpf.Map

Assembly: DevExpress.Xpf.Map.v21.2.dll

Declaration

public abstract class ImageTileSource :
    MapDependencyObject,
    IImageTileSource,
    ITileItemSourceProvider

The following members accept/return ImageTileSource objects:

Example

This example shows how to use an ImageTileDataProvider instance to generate map tiles.

View Example: https://github.com/DevExpress-Examples/dxmap-how-to-use-in-memory-image-tile-provider

Markup

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:DXMapInMemoryTileProvider"
        xmlns:dxm="http://schemas.devexpress.com/winfx/2008/xaml/map" 
        x:Class="DXMapInMemoryTileProvider.MainWindow"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <dxm:MapControl>
            <dxm:ImageLayer x:Name="imageLayer"/>
        </dxm:MapControl>
    </Grid>
</Window>

Code-Behind

using DevExpress.Xpf.Map;
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace DXMapInMemoryTileProvider {
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window {
        public MainWindow() {
            InitializeComponent();
            ImageTileDataProvider tileDataProvider = new ImageTileDataProvider();
            tileDataProvider.TileSource = new SimpleTileGenerator();
            this.imageLayer.DataProvider = tileDataProvider;
        }
    }
    public class SimpleTileGenerator : ImageTileSource {
        Random rnd = new Random();
        public override string Name => nameof(SimpleTileGenerator);
        public override ImageSource GetImageSource(long x, long y, int level, Size size) {
            DrawingVisual drawingVisual = new DrawingVisual();
            using (DrawingContext drawingContext = drawingVisual.RenderOpen()) {
                FormattedText text = new FormattedText($"{x}:{y}:{level}", new CultureInfo("en-us"),
                                     FlowDirection.LeftToRight, new Typeface("Arial"), 14, Brushes.Black);
                drawingContext.DrawRectangle(new SolidColorBrush(Color.FromArgb(128, (byte)rnd.Next(255),
                                                                        (byte)rnd.Next(255), (byte)rnd.Next(255))), null, 
                                                                        new Rect(new Point(), size));
                drawingContext.DrawText(text, new Point(5, 5));
                drawingContext.Close();
            }
            RenderTargetBitmap bmp = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96, 96, PixelFormats.Pbgra32);
            bmp.Render(drawingVisual);
            return bmp;
        }
        protected override MapDependencyObject CreateObject() {
            return new SimpleTileGenerator();
        }
    }
}
See Also