XAML-Map-Control/MapsforgeTiles/Shared/MapsforgeTileSource.cs

35 lines
1 KiB
C#
Raw Normal View History

2026-02-17 17:45:31 +01:00
using Microsoft.Extensions.Logging;
using System.Collections.Generic;
using System.IO;
2026-02-12 18:57:19 +01:00
namespace MapControl.MapsforgeTiles
{
2026-02-17 17:45:31 +01:00
public partial class MapsforgeTileSource(string theme, int cacheCapacity = 200, float textScale = 1f) : TileSource
2026-02-12 18:57:19 +01:00
{
2026-02-17 17:45:31 +01:00
private static ILogger Logger => field ??= ImageLoader.LoggerFactory?.CreateLogger<MapsforgeTileSource>();
2026-02-19 17:20:09 +01:00
private readonly TileRenderer tileRenderer = new(theme, cacheCapacity, textScale);
2026-02-12 18:57:19 +01:00
public static void Initialize(string mapFilePath, float dpiScale)
{
2026-02-17 17:45:31 +01:00
List<string> mapFiles;
if (mapFilePath.EndsWith(".map"))
{
mapFiles = [mapFilePath];
}
else
{
mapFiles = [.. Directory.EnumerateFiles(mapFilePath, "*.map")];
}
foreach (var mapFile in mapFiles)
{
Logger?.LogInformation("Loading {mapFile}", mapFile);
}
TileRenderer.Initialize(mapFiles, dpiScale);
2026-02-12 18:57:19 +01:00
}
}
}