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.
- Animación suave de una ruta de cámara en una vista de mapa
- Java.util.ConcurrentModificationException en MapView
- Android Mapview no carga los azulejos en HTC Desire?
- Cómo configurar el control de zoom con setBuiltInZoomControls (true)?
- Ocultar ventana de información de marcadores en android google maps API v2
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:
Agradecería mucho cualquier ayuda.
¡Gracias por adelantado!
- Cómo posicionar los controles de zoom de MapView a una ubicación diferente en la pantalla?
- Poner GIF animado en superposición sobre MapView
- Cómo dibujar polilla discontinua con android google map sdk v2?
- Android: ¿Es posible dibujar una vista en la parte superior del mapa como una superposición
- Lista de clics dentro de OverlayItem (MapView para Android)
- ¿Cómo dibujar texto con un borde en un MapView en Android?
- ¿Dónde puedo obtener el gráfico de flecha "android" predeterminado para MapView?
- MapFragment en ScrollView
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.
- Diferencia entre System.exit () y killProcess ()
- Android Studio build.gradle – No se puede resolver el símbolo 'android'