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

时间:2019-05-11 06:55:59

标签: vue.js markers

我正在尝试删除位置标记表单地图。当用户在输入字段中执行按键事件时。在我的项目中,我有两个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 {
        //
      }
    }

1 个答案:

答案 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