2010-08-10 21 views
2

J'ai travaillé avec l'affichage de la carte et suis tombé sur ces variables: span.longitudeDelta et span.latitudeDelta ... Elles semblent affecter la quantité de zoom de l'écran (peut-être en réglant le x de la fenêtre/y?) Quelqu'un peut-il me dire ce que font ces valeurs et comment elles se rapportent aux écrans largeur/hauteur en degrés de latitude/longitude?Objective C voir la question

Nous vous remercions de votre temps. Edit: Je me pose cette question parce que j'essaie de comprendre quels sont les degrés de lat et de long de mon écran .... Exemple: si je suis zoomé, le côté très gauche de mon écran pourrait être 34.533 et le côté droit pourrait être 39.324.

Répondre

1

Vous avez la bonne idée. Ces valeurs représentent la largeur et la hauteur de la vue cartographique en degrés, centrées sur le point central de la carte.

map.region est une MKCoordinateRegion que vous pouvez lire ou définir. MKCoordinateRegion est une structure avec deux champs: centre et span. map.region.center est une structure CLLocation2D (qui a deux champs, latitude et longitude) et map.region.span est une structure MKCoordinateSpan avec les champs que vous avez mentionnés.

Si vous souhaitez définir une carte pour afficher une zone donnée, créer un MKCoordinateRegion, définissez les propriétés, assurez-vous que la région correspond à la taille de votre carte avec:

MKCoordinateRegion scaledRegion = [map regionThatFits:region]; 
[map setRegion:scaledRegion animated:NO]; 

Le le bord gauche de votre écran est (approximativement, puisque les lignes de longitude ne sont pas parallèles):

float leftEdgeLongitude = map.region.center.longitude - (map.region.span.longitudeDelta/2); 
+0

Merci pour la très bonne réponse. –