Saltar al contenido

Cómo dibujar polilínea interactiva en ruta google maps v2 android

Nuestros mejores investigadores agotaron sus reservas de café, por su búsqueda noche y día por la respuesta, hasta que Alana encontró la solución en Bitbucket y en este momento la comparte con nosotros.

Solución:

En lugar de crear demasiados cortos PolylineSolo crea uno como aquí:

PolylineOptions options = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true);
for (int z = 0; z < list.size(); z++) 
    LatLng point = list.get(z);
    options.add(point);

line = myMap.addPolyline(options);

Tampoco estoy seguro de que debas usar geodesic cuando sus puntos están tan cerca uno del otro.

He creado un par de tutoriales de mapas que cubrirán lo que necesita

La animación del mapa describe cómo crear polilíneas basadas en un conjunto de LatLngs. Uso de las API de Google en su mapa: Indicaciones y lugares describe cómo utilizar la API de indicaciones y animar un marcador a lo largo de la ruta.

Eche un vistazo a estos 2 tutoriales y al proyecto Github que contiene la aplicación de muestra.

Contiene algunos consejos para que su código sea más limpio y eficiente:

  • Uso de la biblioteca HTTP de Google para un acceso a la API más eficiente y un manejo sencillo de JSON.
  • Uso de la biblioteca google-map-utils para funciones relacionadas con mapas (como decodificar las polilíneas)
  • Marcadores animados

Puede usar este método para dibujar polilíneas en googleMap

// Draw polyline on map
public void drawPolyLineOnMap(List list) 
    PolylineOptions polyOptions = new PolylineOptions();
    polyOptions.color(Color.RED);
    polyOptions.width(5);
    polyOptions.addAll(list);

    googleMap.clear();
    googleMap.addPolyline(polyOptions);

    LatLngBounds.Builder builder = new LatLngBounds.Builder();
    for (LatLng latLng : list) 
        builder.include(latLng);
    

    final LatLngBounds bounds = builder.build();

    //BOUND_PADDING is an int to specify padding of bound.. try 100.
    CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, BOUND_PADDING);
    googleMap.animateCamera(cu);

Debe agregar esta línea en su gradle en caso de que no lo haya hecho.

compile 'com.google.android.gms:play-services-maps:8.4.0'

Aquí puedes ver las reseñas y valoraciones de los usuarios

Si crees que te ha resultado provechoso nuestro artículo, sería de mucha ayuda si lo compartes con más desarrolladores de esta forma nos ayudas a difundir este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *