【问题标题】:GoogleMaps API: How to remove multiple markers? [duplicate]Google Maps API:如何删除多个标记? [复制]
【发布时间】:2017-03-25 03:23:36
【问题描述】:

我有一个在谷歌地图中固定标记的功能。看起来是这样的:

// Look to draw marker in various coordinates. Pseudo code...
for(var i = 1; i <= noOfCoordinates; i++){

   var lat = latitude[i];
   var long = longitude[i];

   drawMarker(lat, long);

};

var drawMarker = function(lat, long){
// code to draw marker

marker.setMap(map);

};

但我也有删除这些标记的功能

for(var i = 1; i <= noOfCoordinates; i++){

   removeMarker(null);

};

var removeMarker = function(map){
// code to draw marker

marker.setMap(map);

};

绘图标记();在谷歌地图中固定/绘制标记,但 removeMarker();不会从谷歌地图中删除所有标记,它只会删除最后一个。

我想删除所有与之关联的标记,这些标记是从 drawMarker(); 中绘制的;功能。移除 = 隐藏,而不是删除。

我该如何解决这个问题?

【问题讨论】:

  • 保留对所有标记的引用,在每个标记上调用.setMap(null)
  • 引用是什么意思?以及如何保存?

标签: javascript google-maps google-maps-api-3


【解决方案1】:

保留对所有标记的引用,在每个标记上调用 .setMap(null)

geocodezip 建议如下:

markers = []; // <-- global variable

for(var i = 1; i <= noOfCoordinates; i++){

   var lat = latitude[i];
   var long = longitude[i];

   var marker = drawMarker(lat, long);
   markers[i].push(marker);
};

var drawMarker = function(lat, long){
// code to draw marker

  marker.setMap(map);
  return marker;
};

for(var i = 1; i <= noOfCoordinates; i++){

   markers[i].setMap(null);

};

【讨论】:

  • 我这样做了,但它并没有删除标记。我也收到错误:TypeError: Cannot read property 'setMap' of undefined
  • 我也得到这个错误: InvalidValueError: setMap: not an instance of Map;而不是 StreetViewPanorama 的实例...... js?key={{......这里有一些关键......}}:34 InvalidValueError:
  • 变量markers必须是全局变量
  • 我让它全球化了。它仍然没有删除标记。
猜你喜欢
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 2012-07-20
  • 2012-05-24
  • 2014-08-04
  • 2013-05-02
  • 2010-12-05
  • 2014-09-02
相关资源
最近更新 更多