Pregunta

Aquí está la situación: Estoy mostrando imágenes en el mapa mediante el uso de anotaciones personalizados. Todo funciona bien, pero me gustaría mejorarlo visualmente por cambiar el tamaño de la AnnotationView de manera que se encoge como el mapa está reducida . Quiero hacer esto porque, obviamente, más anotaciones llenan la pantalla y necesidad de ser reducido para que no se superponen entre sí demasiado y que el usuario puede ver más anotaciones. (Por supuesto, me gustaría ampliar AnnotationViews cuando el mapa se amplía de nuevo).

He conseguido mediante la eliminación de todas las anotaciones del mapa y la adición de nuevo otra vez, cada vez que se llama regionDidChangeAnimated. Sin embargo, estas imágenes se cargan a través de Internet, por lo que la descarga de las imágenes de nuevo (ya que las anotaciones se han eliminado) no parece tener sentido.

espero haber explicado bien la situación, y la esperanza de contribuir a hacerlo en el futuro.

Gracias de antemano.

P.S. Estoy desarrollando con IOS 4.0

¿Fue útil?

Solución

Desde que está utilizando IOS 4.0 se recomienda usar una clase que cumpla con el protocolo MKOverlay en lugar de MKAnnotationView. Superposiciones de zoom con el mapa y escalarán adecuadamente. Probablemente se puede utilizar 1 de superposición para manejar todas sus anotaciones. Echa un vistazo a la demostración de Apple HazardMap proporcionada en las conversaciones WWDC 2010 en http://developer.apple.com

Como alternativa, se podría usar algo como los k vecinos más cercanos algoritmo para anotaciones en grupo por relación de zoom. Sin embargo, eso puede ser un poco lento si usted tiene una gran cantidad de anotaciones. Lo probé una vez con varios miles de anotaciones y no les gustó el impacto en el rendimiento que se haya incurrido. Creo <1000 anotaciones podrían tener un rendimiento decente con este método sin embargo.

Otros consejos

Parece que ya está en el camino correcto y que el problema real es solamente la descarga de las imágenes. ¿Hay alguna razón en particular que no se puede almacenar en caché los escribiéndolos en el directorio de documentos (o el directorio de caché si queremos que se vayan manera cuando se cierra la app) cuando los reciba y se ven allí en primer lugar antes de mostrarlas?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top