google-maps - 谷歌地图上的箭头键导航,无需点击 map

标签 google-maps google-maps-api-3

我尝试在 Google Maps API 文档和此处搜索,但我找不到如何执行此操作。

我试图在我的 map 上默认设置箭头键导航,而无需单击 map 区域来启用它。

我尝试了以下解决方案但没有成功:

map.getDiv().focus();
document.getElementById("map_canvas").focus();
google.maps.event.trigger(map, 'rightclick');

任何人都知道如何做到这一点?

谢谢你们。

最佳答案

这里需要注意几件事,只需使用 .focus()或触发 #map 上的点击操作div 元素不会起作用,因为这些操作发生在 map 实际在 DOM 上呈现之前。所以,首先要承认的是 tilesloaded 的使用。谷歌地图库提供的事件。

google.maps.event.addListener(map, 'tilesloaded', function() {
    //do actions
});

我发现的第二件事是你不能只添加 $('#map').click()在事件监听器内部。这是因为尽管 #map是容器 div - 谷歌地图脚本实际上在它上面渲染了一大堆其他 div(它们具有更高的 z 索引,也是实际保存 map 图 block 的东西)。通过一些黑客攻击和 jquery,您可以缩小到包含图 block 的 div 并触发该 div 上的点击事件......结果代码是:
google.maps.event.addListener(map, 'tilesloaded', function() {    
    $("#map").children().children().first().children().trigger('click');
});

我使用 Chrome 的开发工具缩小到包含磁贴的 div 并使用 jquery 的 children()#map 遍历到该 div 的方法.如果您将该代码粘贴到您的 init 函数中,那么您应该很高兴。这是 JSfiddle带有解决方案的工作示例。

关于google-maps - 谷歌地图上的箭头键导航,无需点击 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10334380/

相关文章:

javascript - 谷歌地图中的组标记

javascript - google.maps.places.Autocomplete 无法使用 SimpleHTTPServer

javascript - 使用 Google map 在多边形内绘制较小的多边形

javascript - Google map API 未显示在 MVC5 中

google-maps - Google 地方信息获取 LatLng

google-maps - 如何在运行时更改 Google map 的语言?

android - 如何控制 GroundOverlay 与 map 要素的 z-index

javascript - 如何制定适用于Google Maps的Google Api内容安全政策

javascript - 谷歌地图 : ReferenceError - google is not defined

android - 如何在 ScrollView 中设置谷歌地图 fragment