我有一个 MKMapItems 数组,我正在尝试找到我可以插入边界区域的坐标,这将使包含所有 MKMapItems 的地图放大最多
这些地图项目中的每一个都有坐标,因此通过一些简单的边界计算可以找到 4 个角。我正在寻找一个已经定义的函数(如果可用)。
如果还没有预定义的函数,那么任何帮助都是为给定的点集找出适当的跨度值,也将不胜感激!
提前感谢!
iOS 7 有以下方法:
- (void)showAnnotations:(NSArray *)annotations animated:(BOOL)animated
给它一系列地标,它会为你改变区域:
[self.mapView showAnnotations:placemarks animated:YES];
您可以从地图项中获取地标:
NSMutableArray *placemarks = [NSMutableArray array];
for (MKMapItem *mapItem in mapItems) {
[placemarks addObject:mapItem.placemark];
}
尝试使用以下代码:
MKMapRect zoomRect = MKMapRectNull;
for (EveryMapItem in MKMapItems)
{
MKMapPoint annotationPoint = MKMapPointForCoordinate(EveryMapItem.coordinate);
MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1);
zoomRect = MKMapRectUnion(zoomRect, pointRect);
}
[mapView setVisibleMapRect:zoomRect animated:YES];