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.
- Android Map Rendimiento pobre debido a muchas superposiciones?
- Extraño problema de rendimiento con Galaxy Tab
- Dibujo (filtrado) 100k + puntos a MapView en Android
- Causa de la recursividad de los recorridos de travesía, tiempos de conmutación del buffer de egl largo
- ¿por qué mi aplicación Android es tan lenta?
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?
- ¿Por qué android: singleLine = "true" hace el desplazamiento ListView muy laggy?
- Cómo medir FPS en Android durante el desarrollo de aplicaciones
- Coracteres corrompidos o desaparecidos después de ejecutar Proguard
- ¿Cómo puedo dividir mi archivo en bloques de datos y trasfer los bloques de mi aplicación android?
- Api de rendimiento de Android nivel 11 y superior
- Mejorar el rendimiento de webView (debe tener el mismo rendimiento que el navegador web nativo)
- ¿Cómo almacenar en caché y almacenar objetos y establecer una política de expiración en android?
- ¿Por qué son las anotaciones bajo Android un problema de rendimiento (lento)?
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.
- Anular el registro del cliente android desde el servidor de empuje unificado aerogear
- Código de estado BluetoothGatt de Android 128 Conexión BLE