在给定MKMapItems的情况下查找可能的最小边界区域

时间:2014-03-31 10:00:07

标签: ios maps mkmapview mkmapitem

我有一个MKMapItems数组,我正在尝试找到我可以插入到边界区域的坐标,该边界区域将生成包含所有MKMapItems的放大最多的地图

这些地图项中的每一个都有坐标,因此可以通过一些简单的边界计算找到4个角。我正在寻找一个已经定义过的功能。

如果还没有预定义的功能,那么任何帮助都可以确定一组给定点的适当跨度值也会受到赞赏!

提前致谢!

2 个答案:

答案 0 :(得分:3)

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];
}

答案 1 :(得分:1)

尝试使用以下代码:

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];