mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2026-01-02 23:00:01 +01:00
46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
// XAML Map Control - https://github.com/ClemensFischer/XAML-Map-Control
|
|
// © 2019 Clemens Fischer
|
|
// Licensed under the Microsoft Public License (Ms-PL)
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using System.Xml;
|
|
using Windows.Storage;
|
|
|
|
namespace MapControl.Images
|
|
{
|
|
public partial class GroundOverlayPanel
|
|
{
|
|
public GroundOverlayPanel()
|
|
{
|
|
UseLayoutRounding = false;
|
|
}
|
|
|
|
private static async Task<IEnumerable<ImageOverlay>> ReadGroundOverlaysFromFileAsync(string docFile)
|
|
{
|
|
docFile = Path.GetFullPath(docFile);
|
|
|
|
var file = await StorageFile.GetFileFromPathAsync(docFile);
|
|
var kmlDocument = new XmlDocument();
|
|
|
|
using (var stream = await file.OpenReadAsync())
|
|
{
|
|
kmlDocument.Load(stream.AsStreamForRead());
|
|
}
|
|
|
|
var imageOverlays = await Task.Run(() => ReadGroundOverlays(kmlDocument).ToList());
|
|
var docUri = new Uri(docFile);
|
|
|
|
foreach (var imageOverlay in imageOverlays)
|
|
{
|
|
imageOverlay.ImageSource = await ImageLoader.LoadImageAsync(new Uri(docUri, imageOverlay.ImagePath));
|
|
}
|
|
|
|
return imageOverlays;
|
|
}
|
|
}
|
|
}
|