All docs
V19.2
20.1 (EAP/Beta)
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.

ImageTileDataProvider Class

Provides the map with image tiles.

Namespace: DevExpress.Xpf.Map

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

Declaration

public class ImageTileDataProvider :
    MapTileDataProviderBase
Public Class ImageTileDataProvider
    Inherits MapTileDataProviderBase

Remarks

This provider allows you to load image tiles created at runtime from almost any source.

To use the Image Tile Data Provider, assign a ImageTileDataProvider object to the ImageLayer.DataProvider property.

Specify the TileSource property to configure the provider's image tile source.

Examples

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

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();
        }
    }
}

Inheritance

Object
DispatcherObject
DependencyObject
Freezable
MapDependencyObject
MapImageDataProviderBase
DevExpress.Xpf.Map.MapTileDataProviderBase
ImageTileDataProvider
See Also