MKMapView et setRegion: animation: non mise à jour des visuels de carte

voix
4

Salutations! Je tente d'utiliser MKMapView sans exemples de code d' Apple, mais il y a quelques autres là - bas de faire varier la clarté. (Je sais, « Lisez le manuel amical. » Je l' ai fait , mais ce n'est pas 100% clair, donc s'il vous plaît garder avec moi sur celui - ci.)

Voici la situation. J'ai un MKMapView objet, dans lequel j'ai ajouté un ensemble d'une dizaine de MKPinAnnotation objets. Jusqu'ici tout va bien. Tout est ventilés entre / publié sanely et il ne semble pas y avoir de plaintes des instruments.

Lors de l' affichage initial, configurer un MKCoordinateRegion objet avec le point central de notre premier emplacement de la broche, et une portée (arbitraire) de 0,2 x 0,2. Je puis appeler:

[mapView setRegion:region animated:YES];
[mapView regionThatFits:region];

Hou la la! Cela a bien fonctionné.

Pendant ce temps ... J'ai aussi un contrôle segmenté pour permettre le mouvement à chaque emplacement de la broche. Alors que je tape dans la liste, la carte anime à chaque nouvel emplacement de la broche avec une nouvelle paire d'appels à setRegion: animé: et regionThatFits: ... ou tout au moins qui est l'idée.

Alors que la carte ne « Voyage » vers le nouvel emplacement de la broche, la carte elle - même ne met pas à jour en dessous. Au lieu de cela, je vois mon épingle sur un fond blanc-carte grise / ... jusqu'à ce que je pousse du coude la carte dans toutes les directions, mais légèrement. Ensuite , la carte montre à travers! (Si je ne passer à une courte distance de l'emplacement précédent de la broche, je vois habituellement quelle partie de la carte était déjà chargé.)

Je pense que je fais quelque chose de stupide, mais je ne l' ai pas été en mesure de comprendre ce qui, au moins pas des MapKit docs. Peut-être que je utilise les appels faux? (Eh bien, je dois mettre la région au moins une fois, oui mouvement qui ne semble pas là pour aider si?). Je l' ai aussi essayé d' utiliser setCenterCoordinate: animation: - même problème.

Je suppose rien à ce stade (sans jeu de mots). Juste essayer de trouver mon chemin.

Clues Accueil / apprécié!

MISE À JOUR: Appel setRegion: animé: et regionThatFits: la première fois, suivi par setCenterCoordinate: animation: en parcourant la liste, n'a pas d' effet. Fait intéressant cependant: si je change animé de NO dans les deux cas, les mises à jour de carte !!! Seulement quand il est réglé sur OUI. (Wha arrive ?! est animé: cassé qui ne peut pas être ... ???)

Créé 08/07/2009 à 01:14
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
6

Il se trouve que la mise à jour de la carte ne fonctionne pas lorsque vous utilisez le simulateur. Lorsque je tente setCenterCoordinate: animation: sur l'appareil, je fais obtenir la mise à jour de la carte ci - dessous.

Bottom line: je faire confiance au simulateur pour correspondre au dispositif en termes de comportement de mise à jour de la carte. Hélas, je me suis trompé! Leçon apprise. « Ne laissez pas cela vous arrive. » :)

Créé 28/07/2009 à 13:14
source utilisateur

voix
2

Vous devez appeler l' setRegion:animated:appel dans le contexte du thread principal. Il suffit de faire quelque chose comme:

....
[self performSelectorOnMainThread:@selector(updateMyMap) withObject:nil waitUntilDone:NO];

}

-(void) updateMyMap {
    [myMap setRegion:myRegion animated:YES];    
}

et il devrait fonctionner dans tous les cas (animées ou non), avec la carte mise à jour au-dessous.

Créé 27/07/2009 à 13:11
source utilisateur

voix
0

Bien que ce soit un vieux sujet que je pensais que je sonne avec mon expérience. Il semble que l'animation de carte échoue uniquement sur les périphériques exécutant iOS 3.1.x et le simulateur en cours d'exécution 3.1.x. Mon dev iPod touch avec 3.1.3 ne parvient pas à zoomer si l'animation est activée.

Créé 07/10/2010 à 15:40
source utilisateur

voix
0

Hum étrange. Les mises à jour de carte sur mon Mac, même dans le simulateur. Peut-être un réglage du réseau (proxy ou autre) qui empêcherait le widget carte pour télécharger les tuiles sur le simulateur?

Créé 31/07/2009 à 09:17
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more