diff --git a/MapControl/Shared/BoundingBox.cs b/MapControl/Shared/BoundingBox.cs index 80252737..ef9a2890 100644 --- a/MapControl/Shared/BoundingBox.cs +++ b/MapControl/Shared/BoundingBox.cs @@ -58,9 +58,9 @@ namespace MapControl public virtual double Height => North - South; public virtual Location Center => - double.IsNaN(South) || double.IsNaN(North) || double.IsNaN(West) || double.IsNaN(East) - ? null - : new Location((South + North) / 2d, (West + East) / 2d); + HasValidBounds ? new Location((South + North) / 2d, (West + East) / 2d) : null; + + public virtual bool HasValidBounds => South < North && West < East; public static BoundingBox Parse(string boundingBox) { diff --git a/MapControl/Shared/CenteredBoundingBox.cs b/MapControl/Shared/CenteredBoundingBox.cs index fee06d30..416b2d06 100644 --- a/MapControl/Shared/CenteredBoundingBox.cs +++ b/MapControl/Shared/CenteredBoundingBox.cs @@ -19,6 +19,7 @@ namespace MapControl height = Math.Max(h, 0d); } + public override bool HasValidBounds => false; public override Location Center => center; public override double Width => width; public override double Height => height; diff --git a/MapControl/Shared/MapProjection.cs b/MapControl/Shared/MapProjection.cs index 160ba111..41014c28 100644 --- a/MapControl/Shared/MapProjection.cs +++ b/MapControl/Shared/MapProjection.cs @@ -74,8 +74,7 @@ namespace MapControl { MapRect mapRect = null; - if (!double.IsNaN(boundingBox.South) && !double.IsNaN(boundingBox.West) && - !double.IsNaN(boundingBox.North) && !double.IsNaN(boundingBox.East)) + if (boundingBox.HasValidBounds) { var p1 = LocationToMap(new Location(boundingBox.South, boundingBox.West)); var p2 = LocationToMap(new Location(boundingBox.North, boundingBox.East)); @@ -87,6 +86,8 @@ namespace MapControl } else if (boundingBox.Center != null) { + // boundingBox is a CenteredBoundingBox + // var center = LocationToMap(boundingBox.Center); if (center.HasValue)