3 回答
TA贡献1815条经验 获得超13个赞
你说对了。
找到最大和最小纬度和经度,应用一些简单的算法,然后使用MKCoordinateRegionMake。
对于iOS 7及更高版本,请使用showAnnotations:animated:,来自MKMapView.h:
// Position the map such that the provided array of annotations are all visible to the fullest extent possible.
- (void)showAnnotations:(NSArray *)annotations animated:(BOOL)animated NS_AVAILABLE(10_9, 7_0);
TA贡献1841条经验 获得超3个赞
这是我在这里为我工作的那个:
(编辑:我已经使用@Micah的建议更新了解决方案,以将pointRect增加0.1以确保rect最终不会变得非常小!)
MKMapRect zoomRect = MKMapRectNull;
for (id <MKAnnotation> annotation in mapView.annotations)
{
MKMapPoint annotationPoint = MKMapPointForCoordinate(annotation.coordinate);
MKMapRect pointRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1);
zoomRect = MKMapRectUnion(zoomRect, pointRect);
}
[mapView setVisibleMapRect:zoomRect animated:YES];
您还可以通过将第一行替换为以下内容来更新它以包括userLocation引脚:
MKMapPoint annotationPoint = MKMapPointForCoordinate(mapView.userLocation.coordinate);
MKMapRect zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1);
TA贡献2037条经验 获得超6个赞
苹果为IOS 7添加了新方法,以简化生活。
[mapView showAnnotations:yourAnnotationArray animated:YES];
您可以轻松地从存储在地图视图中的数组中提取:
yourAnnotationArray = mapView.annotations;
并快速调整相机!
mapView.camera.altitude *= 1.4;
除非用户安装了iOS 7+或OS X 10.9+,否则此功能将无效。在此处查看自定义动画
- 3 回答
- 0 关注
- 672 浏览
添加回答
举报