2009-10-05 26 views
8

Tengo un MKMapView que estoy considerando girar para mostrar más convenientemente una serie de anotaciones a mis usuarios.Experiencia con MKMapView Rotación

A partir de ahora estoy pensando en una simple rotación de toda la vista con un CGAffineTransform, pero quería saber si alguien tenía alguna experiencia con la rotación MKMapView.

  • ¿Hay alguna trampa o "trampa" que haya encontrado al agregar la rotación?
  • ¿Hay alguna manera más fácil de rotar una vista de mapa?
  • Si tengo una superposición, ¿el método convertCoordinate: toPointToView: funciona de la misma manera? Asumiría que tendría que aplicar la misma transformación a mi superposición para alinear los puntos, pero tal vez el método sea más inteligente que eso.

Si hay algo que piensas que podría ayudar, me encantaría escucharlo todo.


Editar: Después de mucha experimentación creo que voy a utilizar mapas estáticos que pueda girar y superponer a mí mismo, sin embargo, todavía estaría interesado en cualquier información sobre la rotación MKMapView.

Respuesta

1

empecé a trabajar con rotaciones MKMapView y han encontrado que:

  • Al aplicar un CGAffineTransform para ver el mapa del método convertCoordinate: toPointToView: funciona de la misma.
  • Las anotaciones giran con la vista, incluido el texto de la anotación.
  • La región que se ajusta parece ajustarse a una región en la pantalla, no se ajusta a la vista de mapa (hice que mi vista de mapa fuera más grande que su vista principal para que pudiera girar sin mostrar la vista atrás).
8

también voy a utilizar girada MKMapView en mi solicitud. Para mostrar las anotaciones sin girar, uso el siguiente código:

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

Parece que me funciona.

+0

Gracias por la información, supongo que la transformación anotaciónView solo afecta a la rotación? Esa posición es una función de alguna otra transformación? – jessecurry

6

Perdón por revivir un tema terminado, pero uno más 'gotcha': si el tamaño de la vista del mapa es lo suficientemente grande como para rotar, de modo que siempre cubra toda la pantalla, terminará recortando el logo 'Google' desde la parte inferior izquierda. Esto es explícitamente contrario a la licencia bajo la cual usa MapKit y puede ser motivo de rechazo de la aplicación. En la práctica, agregar todas las partes una versión estática del logotipo de Google como un UIImageView en la parte superior parece ser aceptable.

+1

Buen punto. En realidad, puede recuperar el logotipo "Google" de MKMapView. MKMapView tiene 2 subvistas, una es una UIImageView que contiene el logotipo. Creé mi propio UIImageView y establecí su propiedad de imagen al igual que la de MKMapView y funciona. El logo de Google aparece sin rotar. – Fraggle