我尝试在Google Maps API文档上搜索,但我也找不到如何执行此操作。
我正在尝试在我的地图上默认设置箭头键导航,而无需点击地图区域以启用它。
我尝试了以下解决方案但没有成功:
map.getDiv().focus();
document.getElementById("map_canvas").focus();
google.maps.event.trigger(map, 'rightclick');
任何人都知道如何做到这一点?
谢谢大家。
答案 0 :(得分:5)
这里需要注意的事情,只需使用.focus()
或触发#map
div元素上的点击操作就行不通,因为这些操作发生在地图实际渲染之前DOM。因此,首先要承认的是使用谷歌地图库提供的tilesloaded
事件。
google.maps.event.addListener(map, 'tilesloaded', function() {
//do actions
});
我发现的第二件事是你不能只在事件监听器中添加$('#map').click()
。这是因为尽管#map
是容器div - 谷歌地图脚本实际上在它上面呈现了一大堆其他div(它们具有更高的z-indices并且实际上也是你的地图图块)。通过一些黑客攻击和jquery,您可以缩小到包含磁贴的div并触发该div上的click事件...结果代码是:
google.maps.event.addListener(map, 'tilesloaded', function() {
$("#map").children().children().first().children().trigger('click');
});
我使用Chrome的开发工具缩小到包含切片的div,并使用jquery的children()
方法从#map
遍历到该div。如果您将该代码粘贴到init函数中,那么您应该很高兴。这是一个JSfiddle,其中包含解决方案的工作示例。