【问题标题】:Google Maps/Remove markers in backbone.js view谷歌地图/删除backbone.js视图中的标记
【发布时间】:2014-03-01 01:18:58
【问题描述】:

我是JS和backbone.js的新用户。

我有一个主干应用程序正在向 Google Maps api 发出请求,并根据应用程序中的搜索成功删除了 pin。

现在,我想在搜索新标记时从地图中删除旧标记。

这是我的 addMarker 函数:

function addmarker(model) {
  var self = this,
    marker;

  _geocode.call(this, model.get('address'))
    .done(function(location) {
      marker = new google.maps.Marker({ 
        map: self.map,
        position: location
      });

  _infowindow.call(self, marker, model);
    })
    .fail(function() {
      console.log("This address cannot be retrieved from the server");
    });

};

我想删除此函数调用开头的旧标记。我尝试将标记存储在一个数组中,并根据 API 文档使用 clearMarkers 函数对每个元素调用 setMap(null) 函数。

https://developers.google.com/maps/documentation/javascript/examples/marker-remove

这不起作用。

在这种情况下删除标记的最有效方法是什么?

如果您对我的其余代码有任何疑问,请告诉我。

【问题讨论】:

    标签: javascript google-maps backbone.js google-maps-api-3 google-maps-markers


    【解决方案1】:

    您需要创建一个全局标记数组并将每个标记推送到它。例如:

    var markers = [];
    

    然后在addMarker()函数中:

    markers.push(marker); // where marker is your google.Maps.Marker();
    

    所以如果你想删除所有标记:

    for (var i=0; i<markers.length; i++) {
    
        markers[i].setMap(null);
    }
    

    将其包装在一个函数中和/或首先在您的 addMarker() 函数中调用它。

    【讨论】:

      猜你喜欢
      • 2012-10-17
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 2017-02-10
      • 2014-05-01
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多