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
}
}