Tôi đang sử dụng MKMapView và đã thêm một số chân chú thích vào bản đồ khoảng 5-10 km. Khi tôi chạy ứng dụng, bản đồ của tôi bắt đầu thu nhỏ để hiển thị toàn thế giới, cách tốt nhất để thu phóng bản đồ để các chân phù hợp với chế độ xem là gì?
EDIT: Suy nghĩ ban đầu của tôi sẽ là sử dụng MKCoordinateRegionMake và tính toán trung tâm tọa độ, longitudeDelta và latitudeDelta từ các chú thích của tôi. Tôi khá chắc chắn rằng điều này sẽ hoạt động, nhưng tôi chỉ muốn kiểm tra xem tôi không thiếu thứ gì rõ ràng.
Mã được thêm vào, BTW: FGLocation là một lớp phù hợp với MKAnnotation
, locationFake là một NSMutableArray
trong những đối tượng này. Bình luận luôn được chào đón ....
- (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;
}