当MKMAPVIEW范围发生变化时会触发什么事件

时间:2011-06-21 13:38:43

标签: xcode mkmapview coordinates

当MKMAPVIEW更改范围(放大或缩小,平移)时会触发什么事件?

我需要获取用于显示地图的坐标。

1 个答案:

答案 0 :(得分:6)

您应该采用MKMapViewDelegate协议并实施mapView:regionDidChangeAnimated:方法,该方法将在区域更改时调用。但是,由于在滚动时会多次调用它,因此在实现该方法之前应该考虑到这一点。

获取地图的左上角坐标

CLLocationCoordinate2D topLeftCoordinate = [self.mapView convertPoint:CGPointMake(0,0)
                                                 toCoordinateFromView:self.mapView];

既然您已经了解该地区,

MKCoordinateRegion region = self.mapView.region;
MKCoordinateSpan span = region.span;
CLLocationCoordinate2D center = region.center;

CLLocationCoordinate2D topLeftCoordinate = CLLocationCoordinate2DMake(center.latitude - span.latitudeDelta / 2, center.longitude - span.longitudeDelta / 2);
/* Similarly, get the others  */