mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2025-12-06 07:12:04 +01:00
Check format in MBTileSource
This commit is contained in:
parent
8c4952f83b
commit
f2204fa6c0
|
|
@ -39,7 +39,7 @@ namespace MapControl.MBTiles
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// May be overridden to create a derived MBTileSource that handles other tile formats than png and jpg, e.g. pbf.
|
||||
/// May be overridden to create a derived MBTileSource that handles other tile formats than png and jpg.
|
||||
/// </summary>
|
||||
protected virtual MBTileSource CreateTileSource(MBTileData tileData)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
// Licensed under the Microsoft Public License (Ms-PL)
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Threading.Tasks;
|
||||
#if WINUI
|
||||
using Microsoft.UI.Xaml.Media;
|
||||
|
|
@ -20,17 +21,27 @@ namespace MapControl.MBTiles
|
|||
|
||||
public MBTileSource(MBTileData tiledata)
|
||||
{
|
||||
TileData = tiledata;
|
||||
var format = tiledata.Metadata["format"];
|
||||
|
||||
if (format == "png" || format == "jpg")
|
||||
{
|
||||
TileData = tiledata;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.WriteLine($"MBTileSource: unsupported format '{format}'");
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Dispose(true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
if (disposing && TileData != null)
|
||||
{
|
||||
TileData.Dispose();
|
||||
}
|
||||
|
|
@ -38,9 +49,19 @@ namespace MapControl.MBTiles
|
|||
|
||||
public override async Task<ImageSource> LoadImageAsync(int x, int y, int zoomLevel)
|
||||
{
|
||||
var buffer = await TileData.ReadImageBufferAsync(x, y, zoomLevel);
|
||||
ImageSource image = null;
|
||||
|
||||
return buffer != null ? await ImageLoader.LoadImageAsync(buffer) : null;
|
||||
if (TileData != null)
|
||||
{
|
||||
var buffer = await TileData.ReadImageBufferAsync(x, y, zoomLevel);
|
||||
|
||||
if (buffer != null)
|
||||
{
|
||||
image = await ImageLoader.LoadImageAsync(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
return image;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue