2012-04-30 40 views

回答

1

您無法偵聽默認UI控件集上的事件。但是,如果你嚴格地專注於對mapTypeControlmap.setMapTypeId()點擊之間的區別,你可以使用的事實,你控制可能調用setMapTypeId(),並添加一些狀態管理代碼的代碼:

// First, add a new state var: 
var typeIdChangedInCode = false; 

// Then, anywhere in your code where you call setMapTypeId(), add this: 
typeIdChangedInCode = true; 
map.setMapTypeId(newTypeId); 

// Finally, include state checking code in the map event listener: 
google.maps.event.addListener(map, "maptypeid_changed", function(evnt) { 
    if (typeIdChangedInCode) { 
     //handle the scenario in the non-click way, but REMEMBER TO: 
     typeIdChangedInCode = false; 
    } 
    else { 
     //handle the scenario in the map click way 
    } 
}); 

這應該設置你以您需要的方式處理兩個不同的事件。

0
google.maps.event.addListener(map, 'maptypeid_changed', function(e){ 
      alert(map.getMapTypeId()); 
    }); 
+0

如何判斷這是編程式maptype更改的結果還是用戶單擊控件?這似乎在兩種情況下都會觸發(這就是我問這個問題的原因)。 –

+0

對不起,我誤解了。 –