Android google maps v2 problemas de rendimiento
Estoy luchando con un problema y trató de resolverlo por semanas, pero sin una solución que satisface mis necesidades. Mi problema es que tengo que añadir marcadores múltiples (> = 6000) a mi mapa y después de todas las ideas / sugerencias e investigación todavía estoy con problemas de rendimiento, porque la adición de un marcador en el mapa está en el hilo principal, incluso cuando el Marcador que se construye en un hilo de fondo.
Supuestos y progreso:
- Android Google Maps no se muestra en firmado apk V2
- Cierre de una actividad de otra clase
- GoogleMap moveCamera o animateCamera según LatLngBounds no es exacta
- Centrar un marcador de mapa en Android
- Android- mapa de Google v2 dibujar círculo
- He leído ya: Demasiados marcadores
- Estoy usando la agrupación
- I'am sólo añadir marcadores de la región visible para limitar la cantidad de marcadores y suprimir la carga innecesaria
- Ya he intentado utilizar Handlers y ahora estoy utilizando Asynctask porque me doy cuenta de que son un poco más rápido (o es sólo placebo)
- En el momento i'am añadir marcadores en el onProgressUpdate (uno por uno), pero he intentado allready para enviar una lista y añadir los marcadores en el OnPostExecute (resultado), pero el rendimiento es peor.
Mi código:
private class MarkerTask extends AsyncTask<Positions, MarkerOptions, Void> { Projection projection; @Override protected void onPreExecute() { super.onPreExecute(); projection = mMap.getProjection(); } @Override protected Void doInBackground(Positions... params) { List<Vessel> positionsList = new ArrayList<Vessel>(params[0].getList()); LatLngBounds bounds = projection.getVisibleRegion().latLngBounds; for (int i = 0; i < positionsList.size(); i++) { if (bounds.contains(locationLatLng) && interval.contains(DateTimeUtc)) { MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(locationLatLng); markerOptions.title(name); markerOptions.rotation(getHeading()); markerOptions.snippet(id); markerOptions.anchor(Constants.MARKER_ANCHOR_CENTER, Constants.MARKER_ANCHOR_CENTER); publishProgress(markerOptions); positionsList.remove(i); if (isCancelled()) break; } } return null; } @Override protected void onProgressUpdate(MarkerOptions... values) { mMap.addMarker(values[0]); mMap.setOnMarkerClickListener(onMarkerClick()); }
¿Alguna sugerencia de cómo mejorar el rendimiento?
- Google Maps API V2 - siempre obtiene error de autenticación
- Técnica para ejecutar varias MapActivities en el mismo proceso
- Google Maps Android Clustering OnCameraChangeListener () despreciado
- Límites de uso de la API de zona horaria de Google
- Hacer TileOverlays transparente
- ¿Cómo obtener detalles del hospital con la especialización usando google map para android?
- Metadatos de error de Google Play Services v13 en AndroidManifest
- TileProvider método getTile - necesita traducir xyy a lat / long
- Glide no animar ImageView cargado desde la caché
- Cruce de pasos: Utilice SharedXWalkView si desea admitir el modo compartido