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 buscar los puntos centrales cuando se desplaza el mapa en Google Maps v2 en android?
  • onTouchEvent nunca llamado MapActivity
  • Cómo mover iconos en un MapView de Android
  • Una clave de Google Maps para todos los desarrolladores?
  • Actualización de la ubicación de Android después de cada 5min Si el vehículo no se mueve
  • ¿Cómo mostrar un mapa en una mapactividad de Android?
  • Android mapview con fragmentos no se puede agregar dos veces?
  • Android MapView - botones de zoom personalizados
  • Android MapView con el menú deslizante oscurece el menú
  • ¿Cómo añadir un lugar erróneo en mapview?
  • Android - IllegalStateException: mapa tiene tamaño cero
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.