好吧,涉及到的事實,我用的是地圖上的Marker Clusterer問題...基本上,下面發生的事情:在表
- 點擊項目,
InfoWindow
打開
- 地圖被平移到要顯示的位置
InfoWindow
- 當平移完成時,Marker Clusterer隨即重新繪製(如果需要),並強制關閉
InfoWindow
。
我的解決辦法是,點擊表格中的項目時,我得到了相應的Marker's
經緯度,手動平移到這個位置,等待平移通過「閒置」監聽完成,何時完成(和Clusterer完成了它的重繪),然後我打開InfoWindow
。
// get map, marker positions
var mapLatLng = GLOBAL_map.getCenter();
var markerLatLng = GLOBAL_markers[index].getPosition();
// pan the map
if(!markerLatLng.equals(mapLatLng)) {
// map will need to pan
GLOBAL_map.panTo(markerLatLng);
google.maps.event.addListenerOnce(GLOBAL_map, 'idle', function() {
// open InfoWindow
GLOBAL_infowindow.setContent(GLOBAL_markers_content[index]);
GLOBAL_infowindow.open(GLOBAL_map, GLOBAL_markers[index]);
});
} else {
// map won't be panning, which wouldn't trigger 'idle' listener
GLOBAL_infowindow.setContent(GLOBAL_markers_content[index]);
GLOBAL_infowindow.open(GLOBAL_map, GLOBAL_markers[index]);
}
你能複製jsfiddle中的行爲嗎?如果您禁用自動平移並手動平移,它會保持打開狀態嗎? – lashleigh