8
votes

Expérience avec la rotation MkmapView

J'ai une MKMapView que je envisage de faire tourner afin d'afficher plus facilement une série d'annotations à mes utilisateurs.

Dès maintenant, je prévois simplement tourner toute la vue avec une cgaffinetransform, mais je voulais savoir si quelqu'un avait une expérience avec la rotation MKMapView.

  • Y a-t-il des pièges ou des "gotchas" que vous avez rencontrés lors de l'ajout de la rotation?
  • Y a-t-il un moyen plus facile de faire pivoter un MAPView?
  • Si j'ai une superposition, le convertoordinate: TopointTtoView: méthode fonctionne toujours de la même manière? Je supposerais que je devrais appliquer la même transformer à ma superposition pour les points à aligner, mais peut-être que la méthode est plus intelligente que celle-là.

    S'il y a quelque chose que vous pensez aiderais à aimer tout cela.


    Edit: Après beaucoup d'expérimentation, je crois que j'utiliserai des cartes statiques que je peux faire pivoter et surpasser moi-même, je serais toujours intéressé par des informations sur la rotation MkmapView.


0 commentaires

4 Réponses :


1
votes

J'ai commencé à travailler avec MkmapView Rotations et j'ai constaté que:

  • Lorsque vous appliquez une cgaffinetransform sur la carte de la carte, la méthode ConvertCoordinate: TopointTtoView: fonctionne de la même manière.
  • Annotations Tournez avec la vue, y compris le texte d'annotation.
  • la région qui s'adapte toujours à une région à l'écran, elle ne convient pas à la vue Carte (j'ai fait une vue de carte plus grande que sa vue parent afin qu'elle puisse tourner sans montrer la vue derrière).

0 commentaires

8
votes

Je prévois également d'utiliser MKMapView rotatif dans mon application. Pour afficher les annotations non désignées, j'utilise le code suivant:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
    ...
    annotationView.transform = GAffineTransformInvert(mapView.transform);
    ...
}


1 commentaires

Merci pour les informations, je suppose que la transformation d'annotationview n'affecte-t-elle que la rotation? Cette position est une fonction d'une autre transformée?



5
votes

C'est un nouvel échantillon de MKMAPView Rotation avec cclééromètre iPhone . J'espère que ça va aider.


0 commentaires

6
votes

Désolé de faire revivre un sujet fini, mais une autre "gotcha": si vous avez la vue de carte suffisamment grande pour faire pivoter de manière à ce qu'il couvre toujours l'écran entier, vous finirez de recadrer le logo "Google" de le bas à gauche. Ceci est explicitement contraire à la licence sous laquelle vous utilisez MapKit et que vous pouvez avoir des motifs d'un rejet de l'application. En pratique, l'ajout d'une version statique du logo Google en tant que UIImageView sur le haut semble être considérée comme acceptable par toutes les parties.


1 commentaires

Bon point. Vous pouvez réellement récupérer le logo "Google" à partir de MKMAPView. MkmapView dispose de 2 sous-visions, l'une est un UIImageView qui contient le logo. J'ai créé mon propre UIImageView et définit sa propriété image à la même chose que celle du MKMAPView et cela fonctionne. Le logo Google apparaît intégré.