A set of controls for WPF, Silverlight and WinRT for displaying tiled maps from different map content providers, such as OpenStreetMap.
Update 2014/11/19, Version 2.4.0
- TileImageLoader of the WinRT version now supports caching of map tiles to local image files and to a FileDb file. The cache functionality is defined by the interface IImageCache (in namespace MapControl.Caching) and
implemented by the classes ImageFileCache and FileDbCache in libraries ImageFileCache.WinRT and FileDbCache.WinRT. Local image files are written to the ApplicationData.Current.TemporaryFolder by default.
- XAML Map Control version 2.0 also supports Windows Phone 8.1. The WinRT version is now implemented as Portable Library. Current development platform is Visual Studio 2013 targeting WPF/.Net 4.5, Silverlight 5, Windows 8.1 and Windows
Phone 8.1. Visual Studio 2012 is no longer supported. The NuGet package has no .Net 4 and Silverlight 4 versions any more.
- XAML Map Control is now available on NuGet, with Package Id XAML.MapControl. The NuGet package contains the MapControl library for WPF/.Net 4.0, WPF/.Net 4.5, Silverlight 4.0, Silverlight 5.0 and Window Runtime.
- WPF Map Control has been renamed to XAML Map Control. It now supports all three XAML platforms: WPF, Silverlight and WinRT. The overall project structure hasn't changed significantly, but there are a lot more files now to implement
all the platform-specific things. Solution and project files have moved to Visual Studio 2012 and the target platforms are now .Net 4.5 and Silverlight 5 respectively.
Map providers can easily be added by specifying an URL template for their map tile bitmaps. Map overlay layers allow to draw and interact with graphical objects and pushpins on the map. The Map Control API is very similar to that of the Microsoft Bing Maps
Control for WPF, except that no API key is needed.
The project includes sample applications for WPF, Silverlight and WinRT that demonstrate the features of the Map Control.
Map Control (for WPF only) allows to use a System.Runtime.Caching.ObjectCache instance for caching map tile bitmaps. The cache may be set to an instance of System.Runtime.Caching.MemoryCache (e.g. MemoryCache.Default), but caching can also be done persistently
by some specialized ObjectCache implementation. Thus the control can be operated in environments that are temporarily offline. Map Control comes with two such implementations, which are:
- FileDbCache, an ObjectCache implementation based on EzTools FileDb, a simple, file based No-SQL database.
- ImageFileCache, an ObjectCache implementation that stores each cached map tile as a single image file, in the original file format delivered by the map provider (typically PNG or JPG). ImageFileCache does not (yet) support expiration, which means that cached
tile image files will never be automatically deleted. The cache may hence consume a considerable amount of disk space.
If you want to try the sample application with persistent caching, uncomment the appropriate TileImageLoader.Cache setting in the sample application's MainWindow.xaml.cs file. Please note that some map providers may disallow persistent caching of their