Added MapsforgeTiles projects

This commit is contained in:
ClemensFischer 2026-02-11 22:22:39 +01:00
parent db7f22d093
commit 215ea1428f
10 changed files with 358 additions and 0 deletions

View file

@ -0,0 +1,32 @@
using System.Threading.Tasks;
using TileRenderer;
#if WPF
using System.Windows.Media;
#elif UWP
using Windows.UI.Xaml.Media;
#elif WINUI
using Microsoft.UI.Xaml.Media;
#elif AVALONIA
using ImageSource = Avalonia.Media.IImage;
#endif
namespace MapControl.MapsforgeTiles
{
public partial class MapsforgeTileSource(string mapDirectory, string theme, int cacheCapacity = 200) : TileSource
{
private readonly MapsforgeTileRenderer renderer = new(mapDirectory, theme, cacheCapacity);
public static void SetDpiScale(float scale)
{
MapsforgeTileRenderer.SetDpiScale(scale);
}
public override Task<ImageSource> LoadImageAsync(int zoomLevel, int column, int row)
{
var pixels = renderer.RenderTile(zoomLevel, column, row);
ImageSource image = pixels != null ? CreateImage(pixels) : null;
return Task.FromResult(image);
}
}
}