XAML-Map-Control/MBTiles/Shared/MBTileSource.cs

47 lines
1.1 KiB
C#
Raw Normal View History

// XAML Map Control - https://github.com/ClemensFischer/XAML-Map-Control
2021-01-13 21:19:27 +01:00
// © 2021 Clemens Fischer
// Licensed under the Microsoft Public License (Ms-PL)
using System;
using System.Threading.Tasks;
2021-10-17 12:46:05 +02:00
#if WINUI
using Microsoft.UI.Xaml.Media;
#elif WINDOWS_UWP
using Windows.UI.Xaml.Media;
#else
using System.Windows.Media;
#endif
namespace MapControl.MBTiles
{
2019-11-17 00:10:08 +01:00
public class MBTileSource : TileSource, IDisposable
{
public MBTileData TileData { get; }
2019-11-14 23:21:08 +01:00
public MBTileSource(MBTileData tiledata)
{
TileData = tiledata;
}
public void Dispose()
{
2019-11-17 00:10:08 +01:00
Dispose(true);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
TileData.Dispose();
}
}
public override async Task<ImageSource> LoadImageAsync(int x, int y, int zoomLevel)
{
var buffer = await TileData.ReadImageBufferAsync(x, y, zoomLevel);
return buffer != null ? await ImageLoader.LoadImageAsync(buffer) : null;
}
}
}