google maps api v3:处理用户点击地图类型控件?

时间:2012-04-30 13:35:48

标签: google-maps-api-3 controls dom-events

当用户点击mapTypeControl时,我需要处理与通过map.setMapTypeId()设置时不同的情况。如何监听地图类型控件上的点击?

2 个答案:

答案 0 :(得分:1)

您无法侦听默认UI控件集上的事件。但是,如果您严格关注区分mapTypeControlmap.setMapTypeId()上的点击次数,则可以使用控制可能调用setMapTypeId()的代码并添加一些状态管理代码的事实: / p>

// 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
    }
});

这应该让你以你需要的方式处理两种不同的事件。

答案 1 :(得分:0)

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