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.
- Android MapView con el menú deslizante oscurece el menú
- Android (MapView): ¿Cómo establecer el nivel de zoom de 4 millas en el mapa?
- Inhabilitar el movimiento en mapview
- MapActivity con el marco de cargador
- Android: ¿Es posible dibujar una vista en la parte superior del mapa como una superposición
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!
- Duración de un solo toque y largo toque en Android
- Establecer el nivel de zoom mínimo para MapView
- Cómo eliminar un solo marcador con Google Maps V2?
- Android Mapview no carga los azulejos en HTC Desire?
- Android Rotación de MapView
- Dibujo es constantemente llamado en mi superposición de mapa de Android
- Cómo dibujar un borde alrededor de un mapview
- Eclipse no Reconociendo cualquier importación
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'