Google Maps v2 Projection.toScreenLocation (…) muy lento

He actualizado Google Maps v1 a v2 en mi aplicación de Android.

Y v2 era agradable y así sucesivamente, pero un método parece ser la cosa más lenta en mi vida.

Projection proj = map.getProjection(); Point point = proj.toScreenLocation(example.m_geopoint); 

ToScreenLocation (…) es tan lento que la aplicación reduce la velocidad a slowmotion inutilizable. El método actualizado quizás 100 veces por fotograma, pero que funciona muy bien en Google Maps v1.

Y cuando compruebo en Android Console veo esto:

 10-06 13:53:04.460: D/dalvikvm(4889): GC_EXPLICIT freed 251K, 14% free 14622K/16839K, paused 3ms+5ms 10-06 13:53:05.859: D/dalvikvm(4889): GC_EXPLICIT freed 252K, 14% free 14622K/16839K, paused 2ms+5ms 10-06 13:53:07.222: D/dalvikvm(4889): GC_EXPLICIT freed 251K, 14% free 14622K/16839K, paused 3ms+6ms ... 

Este mensaje sale todo el tiempo mientras se llama al método.

Y la diferencia entre v2 y v1 es la siguiente:

 pointOut = proj.toScreenLocation(geopointIn); // v2 projection.toPixels(geopointIn, pointOut); // v1 

Y la v1 parece ser una solución más optimizada. ¿Hay alguna forma de hacerlo más rápido? ¿Es un error de rendimiento?

Esta respuesta viene probablemente demasiado tarde, pero si alguien se tropieza con los mismos problemas, como yo, una solución podría ser preprocesar una imagen en un servidor propio con Graphics2D de Java (que funciona casi igual que dibujar en el lienzo) y Descargarlo en la aplicación. Tienes que convertir los puntos geográficos en coordenadas cartesianas. Dentro de la aplicación, sólo tiene que posicionar la imagen como GroundOverlay con LatLngBounds: https://developers.google.com/maps/documentation/android/groundoverlay#use_latlngbounds_to_position_an_image

Y agréguelo al mapa … https://developers.google.com/maps/documentation/android/groundoverlay#change_an_overlay

Para mí, este enfoque funciona bastante rápido. Al menos tan rápido como el enfoque de Google Maps V1.

  • Problema de rendimiento de PublisherAdView loadAd en Android
  • Determinación y prevención del retardo de programación de Android
  • Reduzca el tamaño de la aplicación de Android
  • Boot complete broadcast procesado en serie en KITKAT 4.4.2 <ACTION_BOOT_COMPLETED> <ActivityManagerService.java>
  • Android app lento tiempo inicial de inicio
  • ¿Cómo puede el código nativo de Android dirigirse a múltiples tipos de procesadores?
  • Android Studio generado APK se bloquea al ejecutar la aplicación en el mismo teléfono funciona bien. ¿Qué está mal?
  • Desplazamiento rápido personalizado pulgar
  • ¿Por qué mi aplicación comienza increíblemente lento (10s +) en la primera ejecución, mostrando sólo pantalla blanca en Android 5.0?
  • FindViewById varias veces VS variable global
  • Manejo de mapas de bits grandes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.