可以吗? GMap API V2中的clearOverlays()到Google Maps API V3?

我使用Google Maps API V3。

我迁移我的网站GMap API V2 - > V3。 但是,因为我使用clearOverlays()方法在V2中一次删除了一个现有对象,并且它在V3中已经废除的对象中单独删除了一个对象。

V2

map.clearOverlays();

V3

map.set_visible(false);
popup.close();

可以吗? 或其他解决方案?


我无法在V3参考中找到任何可以明确清除地图上创建的叠加层的任何内容,而且我也找不到任何可以执行此操作的代码示例。

我认为指出V3 API是一个非常早期的开发者版本并且只包含一组非常基本的功能是非常重要的。 他们很可能还没有完成这项功能。 如果你正在开发一个实时系统,我建议你坚持V2直到V3更成熟。

在开发人员小组上有一篇文章,询问如何使用API​​以及来自V3产品经理的非常有用的答案:

关于v3选项的误解

编辑:

好的,为了保持轻量级,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();

正如hongwei正确地提到的那样,该函数被称为setMap(),而不是set_map()。

请参阅http://code.google.com/apis/maps/documentation/v3/overlays.html#HideShow

链接地址: http://www.djcxy.com/p/81493.html

上一篇: Is it OK? clearOverlays() in GMap API V2 to Google Maps API V3?

下一篇: bind on <title> doesn't work