Changed class Location to readonly struct

This commit is contained in:
ClemensFischer 2026-02-01 22:56:50 +01:00
parent d7d7bba5f2
commit 6566167ff0
27 changed files with 194 additions and 307 deletions

View file

@ -63,12 +63,9 @@ namespace SampleApplication
e.Pointer.Capture(map);
var location = map.ViewToLocation(point.Position);
if (location != null)
{
map.Cursor = new Cursor(StandardCursorType.Cross);
measurementLine.IsVisible = true;
measurementLine.Locations = new LocationCollection(location);
}
map.Cursor = new Cursor(StandardCursorType.Cross);
measurementLine.IsVisible = true;
measurementLine.Locations = new LocationCollection(location);
}
}
}
@ -88,23 +85,14 @@ namespace SampleApplication
{
var location = map.ViewToLocation(e.GetPosition(map));
if (location != null)
{
mouseLocation.IsVisible = true;
mouseLocation.Text = GetLatLonText(location);
mouseLocation.IsVisible = true;
mouseLocation.Text = GetLatLonText(location);
var start = measurementLine.Locations?.FirstOrDefault();
if (start != null)
{
measurementLine.Locations = LocationCollection.GeodesicLocations(start, location);
mouseLocation.Text += GetDistanceText(location.GetDistance(start));
}
}
else
if (measurementLine.Locations != null)
{
mouseLocation.IsVisible = false;
mouseLocation.Text = "";
var start = measurementLine.Locations.First();
measurementLine.Locations = LocationCollection.GeodesicLocations(start, location);
mouseLocation.Text += GetDistanceText(location.GetDistance(start));
}
}

View file

@ -59,11 +59,8 @@ namespace SampleApplication
{
var location = map.ViewToLocation(point.Position);
if (location != null)
{
measurementLine.Visibility = Visibility.Visible;
measurementLine.Locations = new LocationCollection(location);
}
measurementLine.Visibility = Visibility.Visible;
measurementLine.Locations = new LocationCollection(location);
}
else if (e.KeyModifiers.HasFlag(VirtualKeyModifiers.Control) && map.MapLayer is WmsImageLayer wmsLayer)
{
@ -87,23 +84,14 @@ namespace SampleApplication
var point = e.GetCurrentPoint(map);
var location = map.ViewToLocation(point.Position);
if (location != null)
{
mouseLocation.Visibility = Visibility.Visible;
mouseLocation.Text = GetLatLonText(location);
mouseLocation.Visibility = Visibility.Visible;
mouseLocation.Text = GetLatLonText(location);
var start = measurementLine.Locations?.FirstOrDefault();
if (start != null)
{
measurementLine.Locations = LocationCollection.GeodesicLocations(start, location);
mouseLocation.Text += GetDistanceText(location.GetDistance(start));
}
}
else
if (measurementLine.Locations != null)
{
mouseLocation.Visibility = Visibility.Collapsed;
mouseLocation.Text = "";
var start = measurementLine.Locations.First();
measurementLine.Locations = LocationCollection.GeodesicLocations(start, location);
mouseLocation.Text += GetDistanceText(location.GetDistance(start));
}
}

View file

@ -80,7 +80,7 @@ namespace SampleApplication
{
var location = map.ViewToLocation(e.GetPosition(map));
if (location != null && map.CaptureMouse())
if (map.CaptureMouse())
{
map.Cursor = Cursors.Cross;
measurementLine.Visibility = Visibility.Visible;
@ -100,23 +100,14 @@ namespace SampleApplication
{
var location = map.ViewToLocation(e.GetPosition(map));
if (location != null)
{
mouseLocation.Visibility = Visibility.Visible;
mouseLocation.Text = GetLatLonText(location);
mouseLocation.Visibility = Visibility.Visible;
mouseLocation.Text = GetLatLonText(location);
var start = measurementLine.Locations?.FirstOrDefault();
if (start != null)
{
measurementLine.Locations = LocationCollection.GeodesicLocations(start, location);
mouseLocation.Text += GetDistanceText(location.GetDistance(start));
}
}
else
if (measurementLine.Locations != null)
{
mouseLocation.Visibility = Visibility.Collapsed;
mouseLocation.Text = "";
var start = measurementLine.Locations.First();
measurementLine.Locations = LocationCollection.GeodesicLocations(start, location);
mouseLocation.Text += GetDistanceText(location.GetDistance(start));
}
}