Dibujo multicolor de PolyLines en Maps V2

Estoy dibujando un color plano PolyLine en mi mapa de la siguiente manera, y funciona muy bien:

PolylineOptions polyLine = new PolylineOptions(); polyLine.width(5); polyLine.color(Color.RED); polyLine.geodesic(true); for (int i = 0; i < speed.length; i++) { polyLine.add(new LatLng(lat, lng)); } map.addPolyline(polyLine); 

Ahora me gustaría dibujar una polilínea con diferentes colores entre diferentes puntos, dependiendo de la velocidad entre esos dos puntos.

No parece ser una manera fácil de hacerlo.

Me refiero a esta pregunta: dibujar polilíneas con diferentes colores en los mapas v2 , y puedo agregar múltiples PolylineOptions una tras otra, pero no creo que sea un enfoque eficiente, dado que tengo más de 2000 puntos en un simple datos Establecer para dibujar.

¿Hay una mejor práctica?

La implementación ideal sería cómo Nike + app traza líneas en los mapas:

Nike + Captura de pantalla de Google Play

Agradecería mucho cualquier ayuda.

¡Gracias por adelantado!

Sólo encuentro una forma de hacerlo con OptionsLines, de hecho, dos OptionsLines. Utilizo esta función con un archivo gpx, por eso hay personalmente objeto TRKPT.

  int size = listPoints.size(); PolylineOptions optline = new PolylineOptions(); PolylineOptions optline2 = new PolylineOptions(); optline.geodesic(true); optline.width(10); optline2.geodesic(true); optline2.width(10); for (int i = 0; i < size - 1; i++) { TRKPT pointD = listPoints.get(i); TRKPT pointA = listPoints.get(i + 1); int green = (int) ((float) 255 - (float) (i / (float) size) * (float) 255); int red = (int) ((float) 0 + (float) (i / (float) size) * (float) 255); optline.add(new LatLng(pointD.getLat(), pointD.getLon()), new LatLng(pointA.getLat(), pointA.getLon())); optline2.add(new LatLng(pointD.getLat(), pointD.getLon()), new LatLng(pointA.getLat(), pointA.getLon())); if(i%2 == 0){ optline.color(Color.rgb(red, green, 0)); mMap.addPolyline(optline); optline = new PolylineOptions(); optline.geodesic(true); optline.width(10); } else{ optline2.color(Color.rgb(red, green, 0)); mMap.addPolyline(optline2); optline2 = new PolylineOptions(); optline2.geodesic(true); optline2.width(10); } } 

Ahora usted tiene una línea hermosa con gradiente de verde a rojo.

Puede renderizar cualquier cosa que desee a un Bitmap y utilizar GroundOverlay o TileOverlay con él.

  • ¿Cómo dibujar texto con un borde en un MapView en Android?
  • Marcador de mapa de Android en Longpress se representa debajo de la zona que es realmente LongPressed (en API 15)
  • Android: automáticamente elige debug / release Maps clave api?
  • Edición de Android Dibujo de rutas largas en MapView mediante análisis XML
  • Mostrar una simple etiqueta de texto / burbuja de descrption cuando el usuario hace tapping en un objeto OverlayItem en MapView
  • El alias Keytool no existe
  • Marcadores de mapa de escala por Zoom, Android
  • ¿Dónde puedo obtener el gráfico de flecha "android" predeterminado para MapView?
  • Cambiar controles de zoom en un MapView
  • Android: no se pudo encontrar información sobre el proveedor de com.google.settings en el ejemplo de MapView
  • Restauración del estado de MapView en rotación y en la parte posterior
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.