2017-06-25 23:05:48 +02:00
|
|
|
# XAML Map Control
|
|
|
|
|
|
2021-07-07 16:13:37 +02:00
|
|
|
A set of controls for WPF, UWP and WinUI for rendering digital maps from different providers and various types of map overlays.
|
2017-04-01 19:04:31 +02:00
|
|
|
|
2021-02-05 21:58:49 +01:00
|
|
|
Map providers can easily be added by specifying a template string for their map tile URLs.
|
2017-06-25 23:05:48 +02:00
|
|
|
Map overlay layers allow to draw and interact with graphical objects and pushpins on the map.
|
2021-02-05 21:58:49 +01:00
|
|
|
The Map Control API is similar to the Microsoft Bing Maps Control for WPF, except that no API key is required.
|
2017-04-01 19:04:31 +02:00
|
|
|
|
2017-08-04 23:06:14 +02:00
|
|
|
The project includes sample applications for both platforms, which demonstrate the features of XAML Map Control.
|
2017-04-01 19:04:31 +02:00
|
|
|
|
2017-08-04 23:06:14 +02:00
|
|
|
Map Control supports multiple map projections. However, the MapTileLayer class only works with WebMercatorProjection.
|
2021-02-05 21:58:49 +01:00
|
|
|
For other projections, an appropriate WmtsTileLayer or WmsImageLayer could be used.
|
2017-06-25 23:05:48 +02:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
Main classes are
|
|
|
|
|
|
2020-03-20 18:58:58 +01:00
|
|
|
- **MapBase**: The core map control. Provides properties like Center, ZoomLevel and Heading,
|
|
|
|
|
which define the currently displayed map viewport.
|
2017-06-25 23:05:48 +02:00
|
|
|
|
|
|
|
|
- **Map**: MapBase with basic mouse and touch input handling for zoom, pan, and rotation.
|
|
|
|
|
|
|
|
|
|
- **MapTileLayer**: Provides tiled map content (e.g. from OpenStreetMap) by means of a **TileSource**.
|
|
|
|
|
|
2020-04-25 15:31:26 +02:00
|
|
|
- **MapImageLayer**, **WmsImageLayer**: Provides single image map content, e.g. from a Web Map Service (WMS).
|
2020-03-20 18:58:58 +01:00
|
|
|
|
|
|
|
|
- **WmtsTileLayer**: Provides tiled map content from a Web Map Tile Service (WMTS).
|
2017-06-25 23:05:48 +02:00
|
|
|
|
|
|
|
|
- **MapItemsControl**: Displays a collection of **MapItem** objects (with a geographic **Location**).
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2024-02-03 21:48:41 +01:00
|
|
|
The library allows to use an implementation of Microsoft.Extensions.Caching.Distributed.IDistributedCache for caching map tile bitmaps.
|
2024-02-03 21:46:17 +01:00
|
|
|
|
2019-07-23 18:34:53 +02:00
|
|
|
Map Control comes with three such implementations:
|
2024-02-03 21:48:41 +01:00
|
|
|
* ImageFileCache, an implementation that stores each cached map tile as a single image file,
|
2017-08-04 23:29:05 +02:00
|
|
|
in the original file format delivered by the map provider (typically PNG or JPG). ImageFileCache is part of
|
2024-02-03 21:46:17 +01:00
|
|
|
the MapControl library.
|
2024-02-03 21:48:41 +01:00
|
|
|
* FileDbCache, an implementation based on [EzTools FileDb](https://github.com/eztools-software/FileDb),
|
|
|
|
|
a simple, file based No-SQL database, in a separate library FileDbCache.
|
|
|
|
|
* SQLiteCache, an implementation based on [System.Data.SQLite](https://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki),
|
|
|
|
|
in a separate library SQLiteCache.
|
2017-06-25 23:05:48 +02:00
|
|
|
|
|
|
|
|
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 not allow
|
|
|
|
|
persistent caching of their map data.
|
|
|
|
|
|
2017-08-04 23:29:05 +02:00
|
|
|
---
|
|
|
|
|
|
2017-08-06 12:58:23 +02:00
|
|
|
XAML Map Control is available on NuGet, with Package Id [XAML.MapControl](https://www.nuget.org/packages/XAML.MapControl/).
|
2017-04-01 19:04:31 +02:00
|
|
|
|
2017-06-25 23:05:48 +02:00
|
|
|
---
|
2017-04-01 19:04:31 +02:00
|
|
|
|
2017-06-25 23:05:48 +02:00
|
|
|
The project is not open for contributions. Pull requests will not be accepted.
|