MKMapView를 사용하고 있으며 5-10km 면적에 대한 주석 핀을 맵에 추가했습니다. 응용 프로그램을 실행하면 전 세계를 표시하기 위해지도가 축소되기 시작합니다. 핀이보기에 맞도록지도를 확대 / 축소하는 가장 좋은 방법은 무엇입니까?
편집 : 내 초기 생각은 MKCoordinateRegionMake를 사용하고 내 주석에서 좌표 중심, 경도 델타 및 위도 델타를 계산하는 것입니다. 나는 이것이 효과가있을 것이라고 확신하지만, 나는 명백한 것이 누락되지 않았는지 확인하고 싶었다.
코드 추가, BTW : FGLocation은을 준수하는 클래스 MKAnnotation
이며 locationFake는 NSMutableArray
이러한 객체 중 하나입니다. 의견은 언제나 환영합니다 ....
- (MKCoordinateRegion)regionFromLocations {
CLLocationCoordinate2D upper = [[locationFake objectAtIndex:0] coordinate];
CLLocationCoordinate2D lower = [[locationFake objectAtIndex:0] coordinate];
// FIND LIMITS
for(FGLocation *eachLocation in locationFake) {
if([eachLocation coordinate].latitude > upper.latitude) upper.latitude = [eachLocation coordinate].latitude;
if([eachLocation coordinate].latitude < lower.latitude) lower.latitude = [eachLocation coordinate].latitude;
if([eachLocation coordinate].longitude > upper.longitude) upper.longitude = [eachLocation coordinate].longitude;
if([eachLocation coordinate].longitude < lower.longitude) lower.longitude = [eachLocation coordinate].longitude;
}
// FIND REGION
MKCoordinateSpan locationSpan;
locationSpan.latitudeDelta = upper.latitude - lower.latitude;
locationSpan.longitudeDelta = upper.longitude - lower.longitude;
CLLocationCoordinate2D locationCenter;
locationCenter.latitude = (upper.latitude + lower.latitude) / 2;
locationCenter.longitude = (upper.longitude + lower.longitude) / 2;
MKCoordinateRegion region = MKCoordinateRegionMake(locationCenter, locationSpan);
return region;
}