XAML-Map-Control/MapsforgeTiles
2026-02-15 00:09:21 +01:00
..
Avalonia Updated MapsforgeTiles projects 2026-02-15 00:09:21 +01:00
Shared Updated MapsforgeTiles projects 2026-02-15 00:09:21 +01:00
UWP Updated MapsforgeTiles projects 2026-02-15 00:09:21 +01:00
WinUI Updated MapsforgeTiles projects 2026-02-15 00:09:21 +01:00
WPF Updated MapsforgeTiles projects 2026-02-15 00:09:21 +01:00
COPYING Added readme for MapsforgeTiles 2026-02-12 21:53:40 +01:00
COPYING.LESSER Added readme for MapsforgeTiles 2026-02-12 21:53:40 +01:00
pom.xml Updated MapsforgeTiles projects 2026-02-15 00:09:21 +01:00
README.md Update README.md 2026-02-14 00:02:29 +01:00

MapsforgeTiles

Tile source libraries for loading map content from vector map files.

The MapsforgeTileSource classes in these libraries make use of a TileRenderer class in a separate platform-independent .NET class library called MapsforgeWrapper. TileRenderer uses the Mapsforge Java library, which is made accessible to .NET via IKVM, a Java Virtual Machine for .NET. Mapsforge is published under a simplified variant of the LGPL v3 license. Copies of the LGPL and GPL are included here.

Map files can be downloaded from the Mapsforge Download Server.

MapsforgeTileSource is initialized by a static Initialize method that takes the file path to either a single map file or a directory containing multiple map files, and a DPI scale factor that controls the size of the rendered map tiles.

The MapsforgeTileSource instance constructor takes a string parameter that specifies the Mapsforge theme used by its TileRenderer. See MapsforgeThemes.java for available theme names. A second, optional constructor parameter specifies the size of the TileRenderer's internal tile cache.

Code sample:

MapControl.MapsforgeTiles.MapsforgeTileSource.Initialize(".\mapfiles", 1.5f);

map.MapLayer = new MapTileLayer
{
    TileSource = new MapControl.MapsforgeTiles.MapsforgeTileSource("Default")
};

While building MapsforgeWrapper with IKVM's MavenReference succeeds, running a RenderThemeFuture always fails with a NoClassDefFoundError exception for org.xmlpull.v1.XmlPullParserFactory.

An alternative approach is to import Mapsforge classes by an IkvmReference that references a local JAR file with all required dependencies. This JAR is built from pom.xml in the project directory, by a custom PreBuild event in MapsforgeWrapper.csproj which executes the command

mvn package

So in order to build one of the MapsforgeTiles libraries, a Maven installation is required.