我正在尝试删除位置标记表单地图。当用户在输入字段中执行按键事件时。在我的项目中,我有两个gmap-autocomplete组件,这两个对象都在map.creat上创建了不同的标记。所以当我使用setMap(null)时,它会删除所有的maps标记。我需要在一会儿。请帮忙谢谢!!
refreshMapEndSource(event) {
if (document.getElementById('txtDestination').value != '') {
let endOrigin = document.getElementById('txtDestination').value
if (this.markRemEnd != null) {
if (endOrigin != this.markRemEnd.fplace) {
console.log('NOt Equal')
console.log(this.$google.marker[i].fplace)
this.$google.marker[0].setMap(null)
}
}
} else {
//
}
}
答案 0 :(得分:0)
我不确定您要做什么,但我想您想删除从A或B组件创建的标记。
要在创建标记时执行此操作,必须将其保留在某个数组中,我们将其称为let markers = []
let marker = new google.maps.Marker({
position: location,
map: map
})
markers.push({
type: 'A' // or 'B',
marker
})
:
markers.forEach(marker => {
if (marker.type === 'A') marker.marker.setMap(null)
})
markers = this.markers.filter(marker => marker.type !== 'A')
然后,无论何时要从A删除标记:
markers.push({
name: 'abc',
marker
})
markers.forEach(marker => {
if (marker.name === 'abc') marker.marker.setMap(null)
})
好吧,如果我的猜测是错误的,并且您真的想删除特定的标记,那么您必须知道要删除哪个标记。
sp_helptext