Ios mapRectThatFits:它做什么?

Ios mapRectThatFits:它做什么?,ios,mkmapview,mapkit,Ios,Mkmapview,Mapkit,我一点也不明白这是怎么回事。下面是一行简单的代码: MKMapRect zoomRectNorm = [mapView mapRectThatFits:zoomRect]; // BREAKPOINT HERE 现在让我们看看调试器 打印zoomRect: (lldb) p zoomRect (MKMapRect) $1 = { (MKMapPoint) origin = { (double) x = 4.2997e+07 (double) y = 9.36865e+07

我一点也不明白这是怎么回事。下面是一行简单的代码:

MKMapRect zoomRectNorm = [mapView mapRectThatFits:zoomRect];
// BREAKPOINT HERE
现在让我们看看调试器

打印zoomRect:

(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,但没有保持宽度、高度或原点

根据文件,它应返回:

仍位于贴图同一点中心的贴图矩形 但其宽度和高度已调整以适应地图视图的 框架


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

适配的MapRect将缩小,直到达到可以包含您的区域的缩放级别,这样瓷砖将以其本机分辨率显示。

它将返回您在mapview上使用
setVisibleMapRect
时将获得的map rect。中心应该是相同的。起源可能不会。你必须考虑原点和中心的区别才能理解原因。需要了解的另一件事是,尽管您要求设置特定的map rect,但mapview始终会设置其自己的最佳想法。它认为最好的方法是在不放大或缩小的情况下显示瓷砖。

原点呢?为什么它会改变这种情况?你的区域在哪里?它会离日期线太近(mkmapview无法穿过)以至于中心在向后缩放时被推到一边吗