Google maps 箭头键在谷歌地图上导航,无需单击地图
我尝试搜索谷歌地图API文档,也在这里,但我找不到如何做到这一点 我正在尝试在地图上默认设置箭头键导航,而无需单击地图区域以启用该功能 我尝试了以下解决方案,但没有成功:Google maps 箭头键在谷歌地图上导航,无需单击地图,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我尝试搜索谷歌地图API文档,也在这里,但我找不到如何做到这一点 我正在尝试在地图上默认设置箭头键导航,而无需单击地图区域以启用该功能 我尝试了以下解决方案,但没有成功: map.getDiv().focus(); document.getElementById("map_canvas").focus(); google.maps.event.trigger(map, 'rightclick'); 有人知道怎么做吗 谢谢大家。这里需要注意的几件事,简单地使用.focus()或触发#mapdiv
map.getDiv().focus();
document.getElementById("map_canvas").focus();
google.maps.event.trigger(map, 'rightclick');
有人知道怎么做吗
谢谢大家。这里需要注意的几件事,简单地使用
.focus()
或触发#map
div元素上的单击操作不会起作用,因为这些操作发生在映射实际在DOM上呈现之前。因此,首先要确认的是使用谷歌地图库提供的tilesload
事件
google.maps.event.addListener(map, 'tilesloaded', function() {
//do actions
});
我发现的第二件事是,您不能只添加$('#map')。请在事件侦听器中单击()。这是因为尽管#map
是容器div,但google maps脚本实际上会在其上呈现一大堆其他div(这些div具有更高的z索引,并且实际上也是保存地图分幅的部分)。通过一点黑客攻击和jquery,您可以缩小到包含平铺的div,并触发该div上的单击事件。结果代码是:
google.maps.event.addListener(map, 'tilesloaded', function() {
$("#map").children().children().first().children().trigger('click');
});
我使用Chrome的开发工具缩小到包含瓷砖的div,并使用jquery的children()
方法从#map
遍历到该div。如果您将该代码粘贴到init函数中,您应该可以开始了。这里有一个解决方案的工作示例。你是说用键盘上的箭头键控制地图的平移吗?这个问题的答案可能会有所帮助:另外,我希望谷歌在其新的3.10版本中提供一种本地方法来关注地图容器,甚至在初始化时将其作为地图选项。很好的解决方案,我希望有一个很好的方法来获取平铺容器,而不必依赖脆弱的DOM遍历路径,但是:这个解决方案可以工作并获得赏金!