private Rectangle2D GetFullViewBounds()
{
if (double.IsNaN(this.mapResolution))
{
return Rectangle2D.Empty;
}
Point2D point = ScreenToMap(new Point(0.0, 0.0));
Point2D point2 = ScreenToMap(new Point(0.0, currentSize.Height));
Point2D point3 = ScreenToMap(new Point(currentSize.Width, currentSize.Height));
Point2D point4 = ScreenToMap(new Point(currentSize.Width, 0.0));
if (Point2D.IsNullOrEmpty(point) || Point2D.IsNullOrEmpty(point2) || Point2D.IsNullOrEmpty(point3) || Point2D.IsNullOrEmpty(point4))
{
return Rectangle2D.Empty;
}
//TODO:直接union点
Rectangle2D pointBounds = new Rectangle2D(point, point);
Rectangle2D point2Bounds = new Rectangle2D(point2, point2);
Rectangle2D point3Bounds = new Rectangle2D(point3, point3);
Rectangle2D point4Bounds = new Rectangle2D(point4, point4);
Rectangle2D bounds = pointBounds;
bounds = bounds.Union(point2Bounds);
bounds = bounds.Union(point3Bounds);
bounds = bounds.Union(point4Bounds);
return bounds;
}