Google Maps JavaScript API:如何删除单个标记?

时间:2010-11-11 21:34:45

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

我正在使用Google地图v3库,Multi-Marker库扩展了Google地图的功能,可以将地图标记图标快速添加到地图中。

我无法弄清楚如何使用上面链接的多标记库删除单个单个地图标记。

有没有人有任何想法如何使用多标记库(和/或谷歌地图)?我已经尝试联系该项目的首席开发人员,但我没有收到回复。

感谢您的帮助。

此外,链接是有关此库的更多信息

http://blog.redfin.com/devblog/2010/07/introducing_multimarker_the_fastest_way_to_add_many_hundreds_or_thousands_of_markers_on_google_maps.html

更新

我已经链接了我正在做的事情的示例代码。我想动态删除特定的地图标记图标(叠加),但我正在努力如何做到这一点。任何建议将非常感激。感谢

实例:

http://multimarker.googlecode.com/svn/trunk/fast-marker-overlay/maps-v3/example/clickable.html

2 个答案:

答案 0 :(得分:1)

Normaly,仅使用谷歌地图api,从地图上移除叠加层,您需要在叠加层上调用setMap(null)方法。

正如我所看到的,Multi-Marker库使用一个数组来保存所有标记并创建一个叠加层以在地图上显示,这是一个包含标记的叠加层。要删除一个,它应该可以从数组中删除标记(你需要知道它在数组中的位置)并重绘重叠。

编辑:

你需要类似于函数clearOverlays(){var i = overlays.length; while(i--){var overlay = overlays [i]; if(overlay)overlay.setMap(null);删除叠加层[i]; }}

但是您需要知道要删除的标记数组中的位置。该功能将如下所示:

 function clearOneOverlay(var position) { var overlay = overlays[position]; if (overlay) overlay.setMap(null); delete overlays[position]; }

答案 1 :(得分:0)

试试这个:记住你点击哪个标记,然后再将其删除

请考虑以下代码(Google Maps v2)

var current_marker;

GEvent.addListener(marker, "click", function() {
          current_marker = marker;
      });

//remove later
current_marker.setMap(null);