GeoImage and DependencyPropertyHelper implementation

This commit is contained in:
ClemensFischer 2024-09-13 22:21:38 +02:00
parent 0344db4b9b
commit 1b0e73dc35
12 changed files with 190 additions and 154 deletions

View file

@ -8,20 +8,29 @@ using Windows.Graphics.Imaging;
using Windows.Storage;
#if UWP
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
#else
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Imaging;
#endif
namespace MapControl
{
public partial class GeoImage
public static partial class GeoImage
{
private Point BitmapSize => new Point(bitmapSource.PixelWidth, bitmapSource.PixelHeight);
private ImageBrush ImageBrush => new ImageBrush { ImageSource = bitmapSource };
private async Task LoadGeoTiffAsync(string sourcePath)
private partial class GeoBitmap
{
public Point BitmapSize => new Point(BitmapSource.PixelWidth, BitmapSource.PixelHeight);
public ImageBrush ImageBrush => new ImageBrush { ImageSource = BitmapSource };
}
private static async Task<GeoBitmap> LoadGeoTiffAsync(string sourcePath)
{
BitmapSource bitmapSource;
Matrix transformMatrix;
MapProjection mapProjection = null;
var file = await StorageFile.GetFileFromPathAsync(FilePath.GetFullPath(sourcePath));
using (var stream = await file.OpenReadAsync())
@ -68,9 +77,11 @@ namespace MapControl
if (metadata.TryGetValue(geoKeyDirectoryQuery, out BitmapTypedValue geoKeyDirValue) &&
geoKeyDirValue.Value is short[] geoKeyDirectory)
{
SetProjection(geoKeyDirectory);
mapProjection = GetProjection(geoKeyDirectory);
}
}
return new GeoBitmap(bitmapSource, transformMatrix, mapProjection);
}
}
}