Fixed MapImageLayer boundingBox

This commit is contained in:
ClemensF 2017-11-02 19:05:46 +01:00
parent 156ebfe177
commit 1861e9ca5d
2 changed files with 28 additions and 30 deletions

View file

@ -223,9 +223,11 @@ namespace MapControl
{
updateInProgress = true;
UpdateBoundingBox();
ImageSource imageSource = null;
if (UpdateBoundingBox())
if (boundingBox != null)
{
try
{
@ -243,7 +245,7 @@ namespace MapControl
}
}
private bool UpdateBoundingBox()
private void UpdateBoundingBox()
{
var width = ParentMap.RenderSize.Width * RelativeImageSize;
var height = ParentMap.RenderSize.Height * RelativeImageSize;
@ -253,39 +255,35 @@ namespace MapControl
boundingBox = ParentMap.MapProjection.ViewportRectToBoundingBox(rect);
if (boundingBox == null || !boundingBox.HasValidBounds)
if (boundingBox != null && boundingBox.HasValidBounds)
{
return false;
}
if (!double.IsNaN(MinLatitude) && boundingBox.South < MinLatitude)
{
boundingBox.South = MinLatitude;
}
if (!double.IsNaN(MinLatitude) && boundingBox.South < MinLatitude)
{
boundingBox.South = MinLatitude;
}
if (!double.IsNaN(MinLongitude) && boundingBox.West < MinLongitude)
{
boundingBox.West = MinLongitude;
}
if (!double.IsNaN(MinLongitude) && boundingBox.West < MinLongitude)
{
boundingBox.West = MinLongitude;
}
if (!double.IsNaN(MaxLatitude) && boundingBox.North > MaxLatitude)
{
boundingBox.North = MaxLatitude;
}
if (!double.IsNaN(MaxLatitude) && boundingBox.North > MaxLatitude)
{
boundingBox.North = MaxLatitude;
}
if (!double.IsNaN(MaxLongitude) && boundingBox.East > MaxLongitude)
{
boundingBox.East = MaxLongitude;
}
if (!double.IsNaN(MaxLongitude) && boundingBox.East > MaxLongitude)
{
boundingBox.East = MaxLongitude;
if (!double.IsNaN(MaxBoundingBoxWidth) && boundingBox.Width > MaxBoundingBoxWidth)
{
var d = (boundingBox.Width - MaxBoundingBoxWidth) / 2d;
boundingBox.West += d;
boundingBox.East -= d;
}
}
if (!double.IsNaN(MaxBoundingBoxWidth) && boundingBox.Width > MaxBoundingBoxWidth)
{
var d = (boundingBox.Width - MaxBoundingBoxWidth) / 2d;
boundingBox.West += d;
boundingBox.East -= d;
}
return true;
}
private void AdjustBoundingBox(double longitudeOffset)

View file

@ -163,7 +163,7 @@ namespace MapControl
/// </summary>
public virtual string WmsQueryParameters(BoundingBox boundingBox, string version = "1.3.0")
{
if (string.IsNullOrEmpty(CrsId))
if (string.IsNullOrEmpty(CrsId) || !boundingBox.HasValidBounds)
{
return null;
}