Je suis à l'aide de MKMapView et ont ajouté un certain nombre d'annotations broches de la carte de 5 à 10 kilomètres de la zone. Quand je lance l'application ma carte commence zoom arrière pour montrer au monde entier, quelle est la meilleure façon de zoom de la carte, donc les broches à l'ajustement de la vue?
EDIT: Ma première pensée serait d'utiliser MKCoordinateRegionMake et calculer les coordonnées du centre, longitudeDelta et latitudeDelta de mes annotations. Je suis sûr que cela va fonctionner, mais je voulais juste vérifier que je n'étais pas manque rien d'évident.
Code ajouté, BTW: FGLocation est une classe qui est conforme à l' MKAnnotation
, locationFake est un NSMutableArray
de ces objets. Commentaires toujours les bienvenus ....
- (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;
}