0

我一点也不了解 mapRectThatFits。这是一个简单的代码行:

MKMapRect zoomRectNorm = [mapView mapRectThatFits:zoomRect];
// BREAKPOINT HERE

现在让我们看看调试器。

打印缩放矩形:

(lldb) p zoomRect
(MKMapRect) $1 = {
  (MKMapPoint) origin = {
    (double) x = 4.2997e+07
    (double) y = 9.36865e+07
  }
  (MKMapSize) size = {
    (double) width = 26493.1
    (double) height = 148685
  }
}

打印 zoomRectNorm:

(lldb) p zoomRectNorm
(MKMapRect) $2 = {
  (MKMapPoint) origin = {
    (double) x = 4.29283e+07
    (double) y = 9.36379e+07
  }
  (MKMapSize) size = {
    (double) width = 163840
    (double) height = 245760
  }
}

所以它把纵横比调整为 2:3 但它没有保持宽度、高度或原点!?

根据文档,它应该返回:

仍以地图同一点为中心的地图矩形,但其宽度和高度已调整为适合地图视图的框架。

这是怎么回事?我希望它保持原点(如文档中所述)和至少一个宽度/高度?

4

2 回答 2

0

适合的 MapRect 将缩小,直到达到可以包含您的区域的缩放级别,这样图块就会以其原始分辨率显示。

于 2012-08-10T16:37:09.653 回答
0

如果您在地图视图上使用,它会返回您将获得的地图矩形setVisibleMapRect。中心应该是一样的。原产地可能不会。您必须考虑原点和中心之间的区别才能理解原因。要了解的另一件事是,尽管您要求设置特定的地图矩形,但地图视图将始终设置自己的最佳想法。它的最佳理念是允许它在不放大或缩小的情况下显示图块。

于 2012-08-11T10:52:34.853 回答