Google Maps Polyline - How do I remove it?

前端 未结 5 922
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-17 17:34

So I checked previous questions regarding this, which all relate to V2, which is of no help.

So, I create two markers, save them in an array as markers[\"to\"] and m

相关标签:
5条回答
  • 2021-01-17 18:02
    
    function traffic(map){
     // polyline
     this.path=null;
     this.map = google.maps.Map(ele, opt);
    }
    traffic.prototype._draw = function()
    {
        //create new polyline
        var path = new google.maps.Polyline({
            path: this.get('latlngArr'),
            strokeColor: "#FF0000",
            strokeOpacity: 1.0,
            strokeWeight: 2
        });
        //delete old
        var prepath = this.path;
        if(prepath){
            prepath.setMap(null);
        }
        //new polyline
        path.setMap(this.map);
    
        this.path = path;
    }
    
    0 讨论(0)
  • 2021-01-17 18:09

    Assuming that "mypolyline" is your Polyline object, you can also try:

    mypolyline.setPath([]);
    

    This way, you are taking out the coordinates from the Polyline, which in effect will remove it from the map.

    0 讨论(0)
  • 2021-01-17 18:10

    set strokeWeight: 0 then polyline will hide

    0 讨论(0)
  • 2021-01-17 18:15

    flightPath 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 = [];
     flightPath = new google.maps.Polyline({
            path: flightPlanCoordinates,
            strokeColor: "#FF0000",
            strokeOpacity: 1.0,
            strokeWeight: 2
        });
     line.push(flightPath);
    

    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);
    }
    
    0 讨论(0)
  • 2021-01-17 18:19

    I don't see var before flightPath = new..., so I presume flightPath is a global variable.

    function route(){
       //flightPath.setMap(null); Doesnt't work!?
       for(var key in markers) {
           flightPlanCoordinates.push(markers[key].position);
       }
       if(flightPath) {//If flightPath is already defined (already a polyline)
           flightPath.setPath(flightPlanCoordinates);
       } else {
           flightPath = new google.maps.Polyline({
               path: flightPlanCoordinates,
               strokeColor: "#FF0000",
               strokeOpacity: 1.0,
               strokeWeight: 2
          });
          flightPath.setMap(map);//It's not necessary to setMap every time
       }
    
    }
    
    0 讨论(0)
提交回复
热议问题