diff --git a/MapControl/Avalonia/MapGraticule.Avalonia.cs b/MapControl/Avalonia/MapGraticule.Avalonia.cs
index 5d05aaf7..aa07cef0 100644
--- a/MapControl/Avalonia/MapGraticule.Avalonia.cs
+++ b/MapControl/Avalonia/MapGraticule.Avalonia.cs
@@ -83,9 +83,11 @@ namespace MapControl
var y1 = -StrokeThickness / 2d - latText.Height;
var y2 = StrokeThickness / 2d;
- using var pushState = drawingContext.PushTransform(
- Matrix.CreateRotation(Matrix.ToRadians(label.Rotation)) *
- Matrix.CreateTranslation(label.X, label.Y));
+ var transform = new Matrix(1d, 0d, 0d, 1d, 0d, 0d);
+ transform.Rotate(label.Rotation);
+ transform.Translate(label.X, label.Y);
+
+ using var pushState = drawingContext.PushTransform(transform);
drawingContext.DrawText(latText, new Point(x, y1));
drawingContext.DrawText(lonText, new Point(x, y2));
diff --git a/MapControl/Shared/MapBase.cs b/MapControl/Shared/MapBase.cs
index c7766b8d..0a66bac2 100644
--- a/MapControl/Shared/MapBase.cs
+++ b/MapControl/Shared/MapBase.cs
@@ -238,32 +238,12 @@ namespace MapControl
return MapProjection.MapToLocation(ViewTransform.ViewToMapMatrix.Transform(point));
}
- ///
- /// Gets a Rect in projected map coordinates that covers a rectangle in view coordinates.
- ///
- public Rect ViewRectToMap(double x, double y, double width, double height)
- {
- var viewToMap = ViewTransform.ViewToMapMatrix;
-
- var p1 = viewToMap.Transform(new Point(x, y));
- var p2 = viewToMap.Transform(new Point(x, y + height));
- var p3 = viewToMap.Transform(new Point(x + width, y));
- var p4 = viewToMap.Transform(new Point(x + width, y + height));
-
- var x1 = Math.Min(p1.X, Math.Min(p2.X, Math.Min(p3.X, p4.X)));
- var y1 = Math.Min(p1.Y, Math.Min(p2.Y, Math.Min(p3.Y, p4.Y)));
- var x2 = Math.Max(p1.X, Math.Max(p2.X, Math.Max(p3.X, p4.X)));
- var y2 = Math.Max(p1.Y, Math.Max(p2.Y, Math.Max(p3.Y, p4.Y)));
-
- return new Rect(x1, y1, x2 - x1, y2 - y1);
- }
-
///
/// Gets a BoundingBox in geographic coordinates that covers a rectangle in view coordinates.
///
- public BoundingBox ViewRectToBoundingBox(double x, double y, double width, double height)
+ public BoundingBox ViewToBoundingBox(Rect rect)
{
- return MapProjection.MapToBoundingBox(ViewRectToMap(x, y, width, height));
+ return MapProjection.MapToBoundingBox(ViewTransform.ViewToMapMatrix.TransformBounds(rect));
}
///
diff --git a/MapControl/Shared/MapGraticule.cs b/MapControl/Shared/MapGraticule.cs
index 458c5407..4e72a4a6 100644
--- a/MapControl/Shared/MapGraticule.cs
+++ b/MapControl/Shared/MapGraticule.cs
@@ -171,7 +171,7 @@ namespace MapControl
private void DrawCylindricalGraticule(PathFigureCollection figures, List