【发布时间】:2012-08-21 19:22:30
【问题描述】:
这是我的一个小方法,它获取位置管理器的当前位置并将地图聚焦在其上方一点点,以便为我添加到地图顶部的其他一些子视图腾出空间。如果跨度的纬度/经度增量太大(大于 1.0),则每次设置区域时,跨度都会变得越来越大,直到地图一直缩小,即使没有实际接触地图。我认为这与重用地图视图的跨度有关,但我不知道到底发生了什么。
- (void)setRegion {
CLLocationCoordinate2D coord = locationManager.location.coordinate;
MKCoordinateSpan span = mapView.region.span;
coord.latitude += 0.002 * (span.latitudeDelta / 0.012523);
MKCoordinateRegion region = MKCoordinateRegionMake(coord, span);
[mapViewGlobal setRegion:region animated:animated];
}
【问题讨论】:
-
setRegion:animated:之后的结果范围可能与输入范围略有不同。这是 MKMapView 的一个已知问题。在您的情况下,跨度可能每次都会变大。 -
我知道生成的跨度并不完全相同,但在我的情况下,我将地图放大到足够远,以便您可以看到各个城市,并且在此方法的 4-5 次迭代中地图被完全放大,甚至没有触及地图本身。
-
变量“animated”从何而来?是还是不是?
标签: ios mkmapview mapkit mkcoordinateregion mkcoordinatespan