0
我需要處理這種情況,當用戶點擊mapTypeControl
時,與通過map.setMapTypeId()
設置時不同。我如何聆聽點擊地圖類型控制?谷歌地圖api v3:處理用戶點擊地圖類型控制?
我需要處理這種情況,當用戶點擊mapTypeControl
時,與通過map.setMapTypeId()
設置時不同。我如何聆聽點擊地圖類型控制?谷歌地圖api v3:處理用戶點擊地圖類型控制?
您無法偵聽默認UI控件集上的事件。但是,如果你嚴格地專注於對mapTypeControl
和map.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
}
});
這應該設置你以您需要的方式處理兩個不同的事件。
google.maps.event.addListener(map, 'maptypeid_changed', function(e){
alert(map.getMapTypeId());
});
如何判斷這是編程式maptype更改的結果還是用戶單擊控件?這似乎在兩種情況下都會觸發(這就是我問這個問題的原因)。 –
對不起,我誤解了。 –