From d23db23fbcbcd18f244d26dfdf60485daa6d3dfc Mon Sep 17 00:00:00 2001 From: ClemensFischer Date: Wed, 17 Sep 2025 10:04:34 +0200 Subject: [PATCH] Update MapLayerMenuItem.cs --- MapUiTools/Shared/MapLayerMenuItem.cs | 30 ++++++++++++++++++++------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/MapUiTools/Shared/MapLayerMenuItem.cs b/MapUiTools/Shared/MapLayerMenuItem.cs index 37adf7c5..7efd9541 100644 --- a/MapUiTools/Shared/MapLayerMenuItem.cs +++ b/MapUiTools/Shared/MapLayerMenuItem.cs @@ -38,10 +38,7 @@ namespace MapControl.UiTools public override async Task Execute(MapBase map) { - if (MapLayer == null) - { - MapLayer = await MapLayerFactory?.Invoke(); - } + MapLayer ??= await MapLayerFactory?.Invoke(); if (MapLayer != null) { @@ -52,14 +49,31 @@ namespace MapControl.UiTools public class MapOverlayMenuItem : MapLayerMenuItem { + private string sourcePath; + + public string SourcePath + { + get => sourcePath; + set + { + sourcePath = value; + + if (sourcePath.EndsWith(".kmz") || sourcePath.EndsWith(".kml")) + { + MapLayerFactory = async () => await GroundOverlay.CreateAsync(sourcePath); + } + else + { + MapLayerFactory = async () => await GeoImage.CreateAsync(sourcePath); + } + } + } + public int InsertOrder { get; set; } public override async Task Execute(MapBase map) { - if (MapLayer == null) - { - MapLayer = await MapLayerFactory?.Invoke(); - } + MapLayer ??= await MapLayerFactory?.Invoke(); if (MapLayer != null) {