3 回答

TA貢獻1815條經(jīng)驗 獲得超13個贊
你說對了。
找到最大和最小緯度和經(jīng)度,應(yīng)用一些簡單的算法,然后使用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條經(jīng)驗 獲得超3個贊
這是我在這里為我工作的那個:
(編輯:我已經(jīng)使用@Micah的建議更新了解決方案,以將pointRect增加0.1以確保rect最終不會變得非常?。。?/p>
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];
您還可以通過將第一行替換為以下內(nèi)容來更新它以包括userLocation引腳:
MKMapPoint annotationPoint = MKMapPointForCoordinate(mapView.userLocation.coordinate);
MKMapRect zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1);

TA貢獻2037條經(jīng)驗 獲得超6個贊
蘋果為IOS 7添加了新方法,以簡化生活。
[mapView showAnnotations:yourAnnotationArray animated:YES];
您可以輕松地從存儲在地圖視圖中的數(shù)組中提?。?/p>
yourAnnotationArray = mapView.annotations;
并快速調(diào)整相機!
mapView.camera.altitude *= 1.4;
除非用戶安裝了iOS 7+或OS X 10.9+,否則此功能將無效。在此處查看自定義動畫
- 3 回答
- 0 關(guān)注
- 714 瀏覽
添加回答
舉報