1

我有一些简单的 Google Maps (API v3) 代码,当单击特定标记并打开信息框时,该代码会将图标更改为橙色。该代码还注意到一个信息框是否已经打开,如果是,则重置该旧信息框上的标记图标。

但是,如果信息框只是关闭,我不知道如何将标记图标重置为默认值。

我只使用一个 InfoBox 并在每次单击标记时填充详细信息:

google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {

        if(previousMarker) {
            // if marker icon was changed before, change it back to default
            previousMarker.setIcon('/img/location_pin.png');
        }
        ib.close();               // close infobox that is already open
        ib.setOptions(opt[i]);    // set new options for the infobox
        ib.open(map, this);       // open it on this marker

        // and change marker color to orange
        marker.setIcon('/img/location_pin-orange.png');

        previousMarker = marker;  // remember marker for next time

        map.panTo(markerData[i].latLng);
    }
})(marker, i));

当信息框关闭时,我怎样才能让地图上的标记(或者只是previousMarker,真的)回到默认颜色?

4

1 回答 1

2

closeclick在 InfoWindow 上的事件的回调中重置您的标记选项。

google.maps.event.addListener(ib, 'closeclick', function(){ 
    // add code to reset marker options 
});

有关与 InfoWindow 对象关联的所有事件,请参阅API 参考

如果您使用 InfoBox 库,事件仍然相同,因此可以应用相同的事件侦听器:InfoBox 的 API 参考

于 2013-10-07T01:15:33.720 回答