Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 删除谷歌地图标记_Angular_Typescript_Ionic Framework_Google Maps Markers - Fatal编程技术网

Angular 删除谷歌地图标记

Angular 删除谷歌地图标记,angular,typescript,ionic-framework,google-maps-markers,Angular,Typescript,Ionic Framework,Google Maps Markers,我试图在点击按钮时从地图上删除所有标记 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 g

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

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 = [];
}
我得到一个错误:

此.gmarkers[i].setMap不是函数

试试这个:改用foreach

在addMarkersToMap方法中,您正在推送marker变量,相反,您需要在gmarkers中推送myMarker


谢谢你的快速回答,我尝试过这种方法,但还是有同样的错误。我是否需要发布其余的代码,也许有某种代码会导致问题?在addMarkersToMap方法中,您正在推送marker变量,而我猜您需要在gmarkers中推送myMarker。似乎我在用错误的方法查看以查找错误。。谢谢你的时间,现在它工作得很好!代码似乎不是角度/类型脚本。为什么标题上写的是棱角?
removeMarkers(){
    this.gmarkers.foreach((marker)=>{
        marker.setMap(null);
        marker = null;
    })
   this.gmarkers = [];
}
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
   }
}