mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2026-04-05 14:37:01 +00:00
Location now immutable
This commit is contained in:
parent
52d990a89c
commit
dc9932a0cf
5 changed files with 18 additions and 32 deletions
|
|
@ -10,7 +10,9 @@ namespace MapControl
|
|||
/// <summary>
|
||||
/// A geographic location with latitude and longitude values in degrees.
|
||||
/// </summary>
|
||||
#if !UWP
|
||||
#if WINUI || UWP
|
||||
[Windows.Foundation.Metadata.CreateFromString(MethodName = "MapControl.Location.Parse")]
|
||||
#else
|
||||
[System.ComponentModel.TypeConverter(typeof(LocationConverter))]
|
||||
#endif
|
||||
public class Location : IEquatable<Location>
|
||||
|
|
@ -21,19 +23,12 @@ namespace MapControl
|
|||
|
||||
public Location(double latitude, double longitude)
|
||||
{
|
||||
Latitude = latitude;
|
||||
Latitude = Math.Min(Math.Max(latitude, -90d), 90d);
|
||||
Longitude = longitude;
|
||||
}
|
||||
|
||||
private double latitude;
|
||||
|
||||
public double Latitude
|
||||
{
|
||||
get => latitude;
|
||||
set => latitude = Math.Min(Math.Max(value, -90d), 90d);
|
||||
}
|
||||
|
||||
public double Longitude { get; set; }
|
||||
public double Latitude { get; }
|
||||
public double Longitude { get; }
|
||||
|
||||
public bool Equals(Location location)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -774,14 +774,17 @@ namespace MapControl
|
|||
|
||||
if (center != null)
|
||||
{
|
||||
center.Longitude = Location.NormalizeLongitude(center.Longitude);
|
||||
var centerLatitude = center.Latitude;
|
||||
var centerLongitude = Location.NormalizeLongitude(center.Longitude);
|
||||
|
||||
if (center.Latitude < -maxLatitude || center.Latitude > maxLatitude)
|
||||
if (centerLatitude < -maxLatitude || centerLatitude > maxLatitude)
|
||||
{
|
||||
center.Latitude = Math.Min(Math.Max(center.Latitude, -maxLatitude), maxLatitude);
|
||||
centerLatitude = Math.Min(Math.Max(centerLatitude, -maxLatitude), maxLatitude);
|
||||
resetTransformCenter = true;
|
||||
}
|
||||
|
||||
center = new Location(centerLatitude, centerLongitude);
|
||||
|
||||
SetValueInternal(CenterProperty, center);
|
||||
|
||||
if (centerAnimation == null)
|
||||
|
|
|
|||
|
|
@ -232,8 +232,8 @@ namespace MapControl
|
|||
|
||||
if (location != null)
|
||||
{
|
||||
location.Longitude = parentMap.ConstrainedLongitude(location.Longitude);
|
||||
var pos = parentMap.LocationToView(location);
|
||||
var pos = parentMap.LocationToView(
|
||||
new Location(location.Latitude, parentMap.ConstrainedLongitude(location.Longitude)));
|
||||
|
||||
if (pos.HasValue)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue