3

我需要在 MKMapView 上显示非常小的区域(30x30 米)。设置适当的区域或 visibleMapRect 不起作用。MapView 显示更大的区域。

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([centerLocation coordinate], 30, 30); 
[mapView setRegion:region];

似乎有额外的小区域 MapViewregionThatFits在更新地图之前使用方法更正。

手动缩放允许显示这样的区域。

4

2 回答 2

1

MapKit 并不是真正为这种高变焦的室内用途而设计的。您可能想查看替代方案,例如已用于室内应用的开源MapBox iOS SDK 。尤其是 iOS 7 的 iBeacons 技术对于室内三角测量和比 GPS 等既不是为室内也不是高变焦使用而设计的技术也可能对您有用。

于 2013-10-28T17:55:34.607 回答
0

根据苹果文档:

设置新区域时,地图可能会调整区域参数中的值,使其精确地适合地图的可见区域。这是正常的,这样做是为了确保 region 属性中的值始终反映地图的可见部分。但是,这确实意味着如果您在调用此方法后立即获取该属性的值,则返回的值可能与您设置的值不匹配。(您可以使用 regionThatFits: 方法来确定地图实际设置的区域。)

因此,当您应用距离时,它会创建最适合您的请求的区域。它不会与您所要求的完全相同。

此外,30*30 米是非常非常高的缩放级别,可能不受支持。希望它会有所帮助。

于 2013-10-27T05:42:25.650 回答