1

我已经坚持了很长一段时间,所以我真的很感激一些见解。

我试图在单击事件上显示(两个)圆圈和标记的信息窗口,然后在您再次单击它时隐藏它们。第二次点击事件不起作用。它会在点击时向我显示内容,但不是在第二次隐藏它,而是再次加载 Circles 和 InfoWindow。

这是我的代码:

// Toggle Radii and InfoWindow — You can run, but you can't hide?
google.maps.event.addListener(marker, 'click', function() {
    if ( ccArray[i].setMap() == null || iwcArray[i].setMap() == null ) {
        // First Click
        infowindow.open(map,marker);
        ccArray[i].setMap(map);
        iwcArray[i].setMap(map);
    } else {
        // Second Click
        alert('You can hide, so just do it.');
        infowindow.open(null,marker);
        ccArray[i].setMap(null);
        iwcArray[i].setMap(null);
    }
});

有任何想法吗?

4

1 回答 1

1

" if ( ccArray[i].setMap() == null || iwcArray[i].setMap() == null ) {"

ccArrayiwcArray包含 google.maps.Circle 对象。

google.maps.Circle.setMap() 是一个什么都不返回的函数,setMap 只是用来设置圆的地图属性,而不是获取它。因此,我怀疑您的代码将始终通过测试,并且永远不会落入 else 子句。

你确定你不想使用 ccArray[i]. getMap()和 iwcArray[i].getMap() ?

(见https://developers.google.com/maps/documentation/javascript/reference#Circle

于 2012-07-12T08:39:56.083 回答