Peu de fond. J'ai une configuration de navigation car lorsque vous cliquez sur un élément de navigation, cela crée markers
sur la carte. Si vous cliquez sur un autre élément de navigation, il supprime le précédent markers
et en configure de nouveaux.
Eh bien maintenant, je travaille avec polylines
et j'essaie de créer le même concept ici avec le polylines
, mais j'ai des difficultés. Voici ce que j'ai:
// Global variable for array of lines
var points= [];
Configurer mes points.
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);
Configurer mes polylignes.
var polyline = new google.maps.Polyline({
path:points,
strokeColor:"#FF0000",
strokeOpacity:1.0,
strokeWeight:2
});
Initialisez la carte avec des lignes.
polyline.setMap(map);
Tout fonctionne bien. Les lignes sont créées et apparaissent entre mes marqueurs. Permet maintenant de les supprimer (ou pas ...)
function removeLines() {
if (points) {
points.length = 0;
}
points = [];
}
removeLines () est appelée au début de la fonction pour les effacer, puis de nouvelles sont configurées. Cela efface en effet mes points dans le tableau de points, mais sur la carte elle-même, le polylines
apparaît toujours et ne disparaît pas comme mes marqueurs.
Ce qui donne?!
Vous devez faire polyline.setMap(null)
, qui supprimera la ligne de la carte. Documentation .
la polyligne n'est qu'un tableau d'objets LatLng, et non des polylignes individuelles. Je pense que vous avez probablement besoin d'un tableau séparé pour les polylignes, que vous pouvez ensuite boucler pour les supprimer toutes. Créez une ligne de tableau global.
var line = [];
polyline = new google.maps.Polyline({
path: points,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
line.Push(polyline);
Vous placez maintenant tous les objets de polyligne dans une ligne de tableau. Vous pouvez le rendre invisible ou le supprimer de la carte en le bouclant comme ceci:
for (i=0; i<line.length; i++)
{
line[i].setMap(null); //or line[i].setVisible(false);
}