Angular 删除 Google 地图标记
Angular Remove Google map 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 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 is not a function
试试这个:改用 foreach
removeMarkers(){
this.gmarkers.foreach((marker)=>{
marker.setMap(null);
marker = null;
})
this.gmarkers = [];
}
并且在您的 addMarkersToMap()
方法中,您正在推送 marker
变量,而不是您需要将 myMarker
推送到 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
}
}
我正在尝试通过单击按钮从地图上删除所有标记;
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 is not a function
试试这个:改用 foreach
removeMarkers(){
this.gmarkers.foreach((marker)=>{
marker.setMap(null);
marker = null;
})
this.gmarkers = [];
}
并且在您的 addMarkersToMap()
方法中,您正在推送 marker
变量,而不是您需要将 myMarker
推送到 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
}
}