Project Description
A set of controls for WPF, Silverlight and WinRT for displaying tiled maps from different map content providers, such as OpenStreetMap.

Update 2014/07/09 - TileImageLoader of the WinRT version now supports caching of map tiles to local image files. The cache functionality is defined by the interface IObjectCache and implemented by the class ImageFileCache, both contained in MapControl.WinRT. Local image files are written to ApplicationData.Current.TemporaryFolder by default.

Update 2014/07/01 - 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.

Update 2012/11/27 - 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.

Update 2012/11/22 - 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 and also a minimalistic sample application for Microsoft Surface 2, aka PixelSense.

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, set the TileCache application setting (in the WpfApplication project) to either "FileDbCache" or "ImageFileCache". Please note however that some map providers may disallow persistent caching of their map data.

Last edited Jul 9 at 7:41 PM by ClemensF, version 28