可以吗?提供clearOverlays()在GMAP API V2谷歌地图API V3?
-
11-09-2019 - |
题
我使用谷歌地图API V3。
我迁移我的网站GMAP API V2 - > V3。 但应对因为我使用了提供clearOverlays()方法在曾经在V2来删除现有的对象,并且它在删除了什么在V3被废除的对象单独
<强> V2 强>
map.clearOverlays();
<强> V3 强>
map.set_visible(false);
popup.close();
是它OK? 或其它溶液?
解决方案
我无法找到在 V3参考任何一个>这将明确地清除地图上创建的叠加和我便无法找到任何代码样本,其执行此任。
我认为,重要的是要指出V3 API是一个非常早期的开发者版本,并且只包含一个的非常基本的的设置的功能。这是很可能的,他们根本就没有到这个功能呢。如果你是一个活的系统上工作,我建议你坚持使用V2 V3之前更加成熟。
有是在其询问如何API应该从V3产品经理一个非常有用的答案中使用的问题的显影剂组后:
编辑:
OK,好像这个功能从API刻意为了保持它的重量轻失踪。你应该跟踪您的覆盖对象的自己,并呼吁:
object.set_map(null);
,以除去它们。
其他提示
下面是我做的:
创建一个空数组文本,按下标记为你让他们,并在必要时然后驱逐他们
var eviction_list = [];
function evictMarkers() {
// clear all markers
$(eviction_list).each(function () {
this.set_map(null);
});
// reset the eviction array
eviction_list = [];
}
//in function adding markers
......
marker = new google.maps.Marker({
position: results[0].geometry.location,
map: map,
title: elem.title
});
eviction_list.push(marker);
......
//to clear all markers
evictMarkers();
作为宏伟正确提到,被调用的函数的setMap(),不set_map()。
请参阅 http://code.google.com/的API /地图/文档/ V3 / overlays.html#隐藏显示
问题是,setMap(null)
可能会很慢,当你有很多的标记。
不隶属于 StackOverflow