mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2026-04-07 07:25:21 +00:00
Added MapsforgeTiles projects
This commit is contained in:
parent
db7f22d093
commit
215ea1428f
10 changed files with 358 additions and 0 deletions
32
MapsforgeTiles/Shared/MapsforgeTileSource.cs
Normal file
32
MapsforgeTiles/Shared/MapsforgeTileSource.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue