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:

  • 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?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.