2013-10-07 19 views
1

我有一些简单的Google地图(API v3)代码,当点击某个标记并打开信息框时,图标会变为橙色。代码还会注意信息框是否已经打开,如果是,则重置旧信息框上的标记图标。信息框关闭时重置针图形

但是,我不知道如何重置标记图标返回到默认,如果信息框简单地关闭。

我只使用一个信息框,并与细节每次点击标记时间往里面:

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,真的)回到默认信息框关闭时的颜色?

回答

2

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

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

有关与InfoWindow对象相关的所有事件,请参见API reference

如果您正在使用的信息框库,该事件仍然是相同的,所以可以适用相同的事件监听器:API reference for InfoBox

+0

谢谢。我添加了一个循环来遍历我的所有标记并重置它们的图标,这就实现了。 – Eric