Domanda

Piccolo sfondo. Ho una configurazione di navigazione per quando fai clic su una determinata voce di navigazione, crea markers sulla mappa. Se si fa clic su una voce di navigazione diversa, rimuove il precedente markers e imposta nuovi.

Beh ora sto lavorando con polylines e sto cercando di creare lo stesso concetto qui con il polylines, ma sto avendo un momento difficile. Ecco cosa ho:

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

Imposta i miei punti.

    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);
.

Impostare le mie polilinee.

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

Inizializza la mappa con le linee.

    polyline.setMap(map);
.

Tutto funziona bene. Le linee sono create e presentate tra i miei marcatori. Ora rimuovi loro (o no ...)

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

Rimoveline () viene chiamato all'inizio della funzione per cancellarli, allora nuovi sono configurati. Questo ha effettivamente chiari i miei punti nella matrice di punti, tuttavia sulla mappa stessa, il polylines si presenta ancora e non scompare come i miei marcatori fanno.

Cosa dà ?!

È stato utile?

Soluzione

You have to do polyline.setMap(null), that will remove the line from the map. Documentation.

Altri suggerimenti

polyline is just an array of LatLng objects, not individual Polylines. I think you probably need a separate array for the polylines, which you can then loop over to remove them all. Create a global array line.

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

Now you are pushing all the polyline objects into an array line. You can make it invisible or remove it from the map by looping it like this:

for (i=0; i<line.length; i++) 
{                           
  line[i].setMap(null); //or line[i].setVisible(false);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top