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更改的结果还是用户单击控件?这似乎在两种情况下都会触发(这就是我问这个问题的原因)。 –
对不起,我误解了。 –