如何在用户开始在文本框中重新键入另一个地名时删除特定标记形式 google 地图

How to remove particular marker form google map when user start retype another place name in textbox

我正在尝试从地图中删除地点标记。当用户在输入 field.in 中执行按键事件时,我的项目有两个 gmap 自动完成组件,当我使用 setMap(null) 时,两个 gmap 自动完成组件都会在 map.so 上创建不同的标记,然后它会删除所有标记形式 map.i 需要删除一个time.Please 帮助谢谢。!

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

我不确定你想做什么,但我猜你想删除从 A 或 B 组件创建的标记。

要在创建标记时执行此操作,您必须将其保存在某个数组中,我们将其称为 markers:

let markers = []

let marker = new google.maps.Marker({
  position: location,
  map: map
})

markers.push({
  type: 'A' // or 'B',
  marker
})

然后每当你想从 A 中删除标记时:

markers.forEach(marker => {
  if (marker.type === 'A') marker.marker.setMap(null)
})

markers = this.markers.filter(marker => marker.type !== 'A')

好吧,如果我的猜测是错误的,而你真的想删除非常相似的特定标记,你必须知道你删除了哪个标记。

markers.push({
  name: 'abc',
  marker
})

markers.forEach(marker => {
  if (marker.name === 'abc') marker.marker.setMap(null)
})