name icon google custom google-maps google-maps-api-3 google-maps-markers polyline

google-maps - icon - label anchor google maps



Google Maps API v3 eliminar todas las polilĂ­neas (2)

Poco fondo Tengo una configuración de navegación para cuando haces clic en un determinado elemento de navegación, crea markers en el mapa. Si hace clic en un elemento de navegación diferente, elimina los markers anteriores y configura otros nuevos.

Bueno, ahora estoy trabajando con polylines y tratando de crear el mismo concepto aquí con las polylines , sin embargo, estoy pasando por un momento difícil. Esto es lo que tengo:

// Global variable for array of lines var points= [];

Configurar mis puntos.

line1 = new google.maps.LatLng(line1Start, line1Finish); line2 = new google.maps.LatLng(line2Start, line2Finish); line3 = new google.maps.LatLng(line3Start,line3Finish); points.push(line1, line2, line3);

Configurar mis polilíneas.

var polyline = new google.maps.Polyline({ path:points, strokeColor:"#FF0000", strokeOpacity:1.0, strokeWeight:2 });

Inicializa el mapa con líneas.

polyline.setMap(map);

Todo funciona bien. Las líneas se crean y se muestran entre mis marcadores. Ahora vamos a eliminarlos (o no ...)

function removeLines() { if (points) { points.length = 0; } points = []; }

Se está llamando a removeLines () al principio de la función para borrarlos, luego se configuran otros nuevos. De hecho, esto aclara mis puntos en la matriz de puntos, sin embargo, en el propio mapa, las polylines siguen apareciendo y no desaparecen como lo hacen mis marcadores.

¡¿Lo que da?!


La polilínea es solo una matriz de objetos LatLng, no polilíneas individuales. Creo que probablemente necesite una matriz separada para las polilíneas, que luego puede recorrer para eliminarlas todas. Crear una línea de matriz global.

var line = []; polyline = new google.maps.Polyline({ path: points, strokeColor: "#FF0000", strokeOpacity: 1.0, strokeWeight: 2 }); line.push(polyline);

Ahora estás empujando todos los objetos de polilínea en una línea de matriz. Puedes hacerlo invisible o eliminarlo del mapa haciendo un bucle así:

for (i=0; i<line.length; i++) { line[i].setMap(null); //or line[i].setVisible(false); }


Tienes que hacer polyline.setMap(null) , que eliminará la línea del mapa. Documentation