角删除谷歌地图标记

问题描述 投票:0回答:1

我试图从地图上点击按钮删除所有标记;

gmarkers = []; //define empty array for all markers

添加标记,显示图:

addMarkersToMap(markers) { 
    for(let marker of markers) {
    var  position = new google.maps.LatLng(marker.latitude,   marker.longitude);
    var myMarker = new google.maps.Marker({
       position: position,
       title: marker.name
     });
     myMarker(this.map);
     this.gmarkers.push(marker); //push all markers to gmarkers array
   }
}

删除标记:

removeMarkers(){
  if (this.gmarkers) {
      for (let i in this.gmarkers) {
        this.gmarkers[i].setMap(null);
      }

      this.gmarkers = [];
   }
}

另外这种方法尝试删除:

removeMarkers(){
    for(var i=0; i<this.gmarkers.length; i++){
      this.gmarkers[i].setMap(null);
    }
   this.gmarkers = [];
}

我得到的错误:

this.gmarkers [I] .setMap不是一个函数

angular typescript ionic-framework google-maps-markers
1个回答
1
投票

试试这个:使用foreach代替

removeMarkers(){
    this.gmarkers.foreach((marker)=>{
        marker.setMap(null);
        marker = null;
    })
   this.gmarkers = [];
}

而在你addMarkersToMap()方法,你推marker变量,而不是你需要推动myMarkergmarkers我猜。

addMarkersToMap(markers) { 
    for(let marker of markers) {
    var  position = new google.maps.LatLng(marker.latitude,   marker.longitude);
    var myMarker = new google.maps.Marker({
       position: position,
       title: marker.name
     });
     myMarker(this.map);
     //replace marker with myMarker
     this.gmarkers.push(myMarker); //push all markers to gmarkers array
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.