La mejor práctica para mostrar PDI en MapKit del iPhone?

votos
0

Suponiendo que tengo una base de datos de puntos de interés con sus respectivas coordenadas (longitud y latitud). ¿Cuál sería la forma estándar para mostrar la PDI como anotaciones en los alrededores de la ubicación actual del usuario? Elaborar:

  • Dado un nivel de zoom, yo supongo que tengo que buscar a través de la base de datos para todos los POI cuya distancia a la ubicación actual <un cierto umbral, a continuación, crear anotaciones para ellos. O ¿hay alguna manera más inteligente?
  • Si el usuario hace zoom in / out, mueve el mapa ... Todavía tendrá que volver a hacer todo de nuevo?
  • Parece que MapKit tiene un mecanismo para anotaciones cache / reutilización. ¿Debo crear una gran cantidad de ellos de inmediato y dejar MapKit decide qué mostrar cuando cambia la región visible? Creo que esto haría que la transición más suave, pero también consume más memoria. ¿Cuál es tu experiencia con esto?

Gracias.

Publicado el 11/04/2010 a las 04:07
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

En realidad, basándose en la distancia entre la ubicación actual y los puntos de interés no es el enfoque correcto: las distancias que evalúan lleva tiempo, es mejor que acababas de confiar en la región mostrada por su mapa (propiedad region) y comprobar cuáles de sus puntos de interés están contenidos en este región.

Cuando el zoom in / out, que cambia la región, lo que puede tener que volver a hacer lo mismo.

Véase mi respuesta aquí: MKMapView cargar todas las vistas de anotación a la vez (incluyendo los que están fuera de la rect actual)

Este chico está tratando de utilizar el almacenamiento en caché de las anotaciones y mi respuesta que puede ayudar en su caso.

Para comprobar si su punto de interés es la región que se muestra, he publicado una pieza de código que puede ayudar aquí: iPhone Desarrollo - es el pin de anotación en un mapa visible Región

Respondida el 11/04/2010 a las 10:24
fuente por usuario

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