mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2026-01-03 07:10:13 +01:00
MapOverlayMenuItem InsertOrder
This commit is contained in:
parent
2cb6049f72
commit
24a5ba565f
|
|
@ -33,7 +33,7 @@ namespace MapControl.UiTools
|
|||
|
||||
protected override bool GetIsChecked(MapBase map)
|
||||
{
|
||||
return map.Children.Contains(MapLayer);
|
||||
return MapLayer != null && map.Children.Contains(MapLayer);
|
||||
}
|
||||
|
||||
public override async Task Execute(MapBase map)
|
||||
|
|
@ -52,6 +52,8 @@ namespace MapControl.UiTools
|
|||
|
||||
public class MapOverlayMenuItem : MapLayerMenuItem
|
||||
{
|
||||
public int InsertOrder { get; set; }
|
||||
|
||||
public override async Task Execute(MapBase map)
|
||||
{
|
||||
if (MapLayer == null)
|
||||
|
|
@ -67,24 +69,17 @@ namespace MapControl.UiTools
|
|||
}
|
||||
else
|
||||
{
|
||||
var index = 1;
|
||||
|
||||
foreach (var mapLayer in ParentMenuItems
|
||||
var insertIndex = ParentMenuItems
|
||||
.OfType<MapOverlayMenuItem>()
|
||||
.Select(item => item.MapLayer)
|
||||
.Where(mapLayer => mapLayer != null))
|
||||
{
|
||||
if (mapLayer == MapLayer)
|
||||
{
|
||||
map.Children.Insert(index, mapLayer);
|
||||
break;
|
||||
}
|
||||
.Where(item => item.InsertOrder <= InsertOrder && item.GetIsChecked(map))
|
||||
.Count();
|
||||
|
||||
if (map.Children.Contains(mapLayer))
|
||||
{
|
||||
index++;
|
||||
}
|
||||
if (map.MapLayer != null)
|
||||
{
|
||||
insertIndex++;
|
||||
}
|
||||
|
||||
map.Children.Insert(insertIndex, MapLayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -187,16 +187,16 @@
|
|||
map:MapPanel.BoundingBox="53.54031,8.08594,53.74871,8.43750"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem x:Name="sampleOverlayMenuItem" Text="Mount Etna KML"/>
|
||||
<tools:MapOverlayMenuItem Text="Seamarks">
|
||||
<tools:MapOverlayMenuItem Text="Seamarks" InsertOrder="1">
|
||||
<map:MapTileLayer
|
||||
TileSource="http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png"
|
||||
SourceName="Seamarks"
|
||||
MinZoomLevel="9" MaxZoomLevel="18"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem Text="Graticule">
|
||||
<tools:MapOverlayMenuItem Text="Graticule" InsertOrder="2">
|
||||
<map:MapGraticule Opacity="0.7" StrokeThickness="0.3"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem Text="Scale">
|
||||
<tools:MapOverlayMenuItem Text="Scale" InsertOrder="2">
|
||||
<map:MapScale HorizontalAlignment="Center" VerticalAlignment="Bottom"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
</tools:MenuButton>
|
||||
|
|
|
|||
|
|
@ -234,16 +234,16 @@
|
|||
map:MapPanel.BoundingBox="53.54031,8.08594,53.74871,8.43750"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem x:Name="sampleOverlayMenuItem" Text="Mount Etna KML"/>
|
||||
<tools:MapOverlayMenuItem Text="Seamarks">
|
||||
<tools:MapOverlayMenuItem Text="Seamarks" InsertOrder="1">
|
||||
<map:MapTileLayer
|
||||
TileSource="http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png"
|
||||
SourceName="Seamarks"
|
||||
MinZoomLevel="9" MaxZoomLevel="18"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem Text="Graticule">
|
||||
<tools:MapOverlayMenuItem Text="Graticule" InsertOrder="2">
|
||||
<map:MapGraticule Opacity="0.7"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem Text="Scale">
|
||||
<tools:MapOverlayMenuItem Text="Scale" InsertOrder="2">
|
||||
<map:MapScale HorizontalAlignment="Center" VerticalAlignment="Bottom"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
</tools:MenuButton>
|
||||
|
|
|
|||
|
|
@ -260,16 +260,16 @@
|
|||
map:MapPanel.BoundingBox="53.54031,8.08594,53.74871,8.43750"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem x:Name="sampleOverlayMenuItem" Text="Mount Etna KML"/>
|
||||
<tools:MapOverlayMenuItem Text="Seamarks">
|
||||
<tools:MapOverlayMenuItem Text="Seamarks" InsertOrder="1">
|
||||
<map:MapTileLayer
|
||||
TileSource="http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png"
|
||||
SourceName="Seamarks"
|
||||
MinZoomLevel="9" MaxZoomLevel="18"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem Text="Graticule">
|
||||
<tools:MapOverlayMenuItem Text="Graticule" InsertOrder="2">
|
||||
<map:MapGraticule Opacity="0.7"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem Text="Scale">
|
||||
<tools:MapOverlayMenuItem Text="Scale" InsertOrder="2">
|
||||
<map:MapScale HorizontalAlignment="Center" VerticalAlignment="Bottom"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
</tools:MenuButton>
|
||||
|
|
|
|||
|
|
@ -239,16 +239,16 @@
|
|||
map:MapPanel.BoundingBox="53.54031,8.08594,53.74871,8.43750"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem x:Name="sampleOverlayMenuItem" Text="Mount Etna KML"/>
|
||||
<tools:MapOverlayMenuItem Text="Seamarks">
|
||||
<tools:MapOverlayMenuItem Text="Seamarks" InsertOrder="1">
|
||||
<map:MapTileLayer
|
||||
TileSource="http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png"
|
||||
SourceName="Seamarks"
|
||||
MinZoomLevel="9" MaxZoomLevel="18"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem Text="Graticule">
|
||||
<tools:MapOverlayMenuItem Text="Graticule" InsertOrder="2">
|
||||
<map:MapGraticule Opacity="0.7"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
<tools:MapOverlayMenuItem Text="Scale">
|
||||
<tools:MapOverlayMenuItem Text="Scale" InsertOrder="2">
|
||||
<map:MapScale HorizontalAlignment="Center" VerticalAlignment="Bottom"/>
|
||||
</tools:MapOverlayMenuItem>
|
||||
</tools:MenuButton>
|
||||
|
|
|
|||
Loading…
Reference in a new issue