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无法穿过)以至于中心在向后缩放时被推到一边吗