2010-04-28 6 views
1

Je suis nouveau sur le MKMapView (iPhone). Je veux ajouter plusieurs annotations à la carte de Copenhague (Danemark). J'ai les valeurs de latitude et de longitude des différents endroits de la ville. Mais je ne sais pas comment obtenir la longitudeDelta et la latitudeDelta de ces emplacements. J'utilise l'API Google Map pour calculer les valeurs de latitude et de longitude (par service Web) de chaque emplacement dans la carte de la ville. Je besoin d'aide sur la façon de calculer les valeurs de deltaquelle est la différence entre la latitude, la longitude et leurs valeurs delat

Merci

Répondre

1

Je ne suis pas certain de votre question dans quel but vous cherchez à calculer deltas lat et à long terme, mais la seule référence que je l'ai vu int il est MKMapView dans la spécification du MKCoordinateSpan pour établir le niveau de zoom du MapView à afficher.

J'ai trouvé ce code sur le Net quelque part qui prendra un MapView avec des annotations ajoutées à la couche d'annotation, et calculera et définira la région à afficher pour rendre toutes les annotations visibles dans MapView. Cela aidera peut-être

CLLocationCoordinate2D topLeftCoord; 
topLeftCoord.latitude = -90; 
topLeftCoord.longitude = 180; 

CLLocationCoordinate2D bottomRightCoord; 
bottomRightCoord.latitude = 90; 
bottomRightCoord.longitude = -180; 

for(MKAnnotation* annotation in self.mapView.annotations) 
{ 
    topLeftCoord.longitude = fmin(topLeftCoord.longitude, annotation.coordinate.longitude); 
    topLeftCoord.latitude = fmax(topLeftCoord.latitude, annotation.coordinate.latitude); 

    bottomRightCoord.longitude = fmax(bottomRightCoord.longitude, annotation.coordinate.longitude); 
    bottomRightCoord.latitude = fmin(bottomRightCoord.latitude, annotation.coordinate.latitude); 
} 

MKCoordinateRegion region; 
region.center.latitude = topLeftCoord.latitude - (topLeftCoord.latitude - bottomRightCoord.latitude) * 0.5; 
region.center.longitude = topLeftCoord.longitude + (bottomRightCoord.longitude - topLeftCoord.longitude) * 0.5; 
region.span.latitudeDelta = fabs(topLeftCoord.latitude - bottomRightCoord.latitude) * 1.8; // Add a little extra space on the sides 
region.span.longitudeDelta = fabs(bottomRightCoord.longitude - topLeftCoord.longitude) * 1.8; // Add a little extra space on the sides 

region = [self.mapView regionThatFits:region]; 
[self.mapView setRegion:region animated:NO]; 
Questions connexes