我需要在MKMapView上显示非常小的区域(30x30米)。设置适当的区域或visibleMapRect不起作用。 MapView显示了更大的区域。
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([centerLocation coordinate], 30, 30);
[mapView setRegion:region];
似乎在更新地图之前,MapView使用regionThatFits
方法修正了超小区域。
手动缩放允许显示此类区域。
答案 0 :(得分:1)
MapKit并非真正适用于如此高变焦的室内用途。您可能希望查看已用于室内应用的替代方案,例如开源MapBox iOS SDK。特别是iOS 7的iBeacons技术对于室内三角测量和比GPS更高的精度可能是有用的,GPS既不是用于室内也不是高变焦使用。
答案 1 :(得分:0)
根据Apple文档:
设置新区域时,地图可能会调整区域中的值 参数,以便它精确地适合地图的可见区域。这个 是正常的,并确保region属性中的值 始终反映地图的可见部分。但是,它确实意味着 如果你在调用之后立即获得该属性的值 方法,返回的值可能与您设置的值不匹配。 (您可以 使用regionThatFits:方法确定将要的区域 实际上是由地图设定的。)
因此,当您应用距离时,它会创建最适合您请求的区域。它与您要求的内容不完全相同。
此外,30 * 30米的缩放级别非常高,可能不受支持。希望它会有所帮助。