google-maps-api-3 - 谷歌地图 API v3 : handle user click on map type control?

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

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

最佳答案

您无法监听默认 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
    }
});

这应该让您能够以您需要的方式处理两种不同的情况。

关于google-maps-api-3 - 谷歌地图 API v3 : handle user click on map type control?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10384597/

相关文章:

javascript - 谷歌地图信息窗口使用关闭图标并删除箭头

python - Geopy ValueError "Didn' t 在地理编码时完全找到一个匹配项

c# - 如何在单击鼠标的应用程序中找到控件的窗口句柄

javascript - 将方法传递给子组件

JavaScript 和 Google map v3 : capture result of tilesloaded() event?

javascript - TurfJS 如何从 Polygon 获取 LineString 减少应用的缓冲区值

wpf - 用于使用 WPF 选择多个文件的 OpenFileDialog

c# - 为什么我的 WinForms 控件会闪烁并缓慢调整大小?

javascript - 如何使用 Firebug 或任何其他扩展找到哪些 Javascript 代码触发表单提交?

javascript - 一组单选按钮上的 onfocus 事件如何像单个控件一样工作?