0
我有MKMapItems的数组,我想找到我可以插入坐标进入边界地区,这将使最放大地图包含所有MKMapItems找到最小的可能边界区域给予MKMapItems
每这些地图项目的坐标是这样的,一些简单的边界计算可以找到四个角落。我正在寻找一个已经定义的功能,如果它可用的话。
如果还没有预定义的函数,那么任何帮助都可以计算出给定的一组点的适当的跨度值,同样也将被赞赏!
在此先感谢!
我有MKMapItems的数组,我想找到我可以插入坐标进入边界地区,这将使最放大地图包含所有MKMapItems找到最小的可能边界区域给予MKMapItems
每这些地图项目的坐标是这样的,一些简单的边界计算可以找到四个角落。我正在寻找一个已经定义的功能,如果它可用的话。
如果还没有预定义的函数,那么任何帮助都可以计算出给定的一组点的适当的跨度值,同样也将被赞赏!
在此先感谢!
的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];
由于MKMapItem本身并未实现MKAnnotation协议,因此需要将'mapItem.placemark'添加到'placemarks'数组,因为showAnnotations:需要一组实现MKAnnotation的对象。 – Anna
@安娜啊,你说得对。我已经意识到,然后忘了在代码中正确地做到这一点。 –