Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 箭头键在谷歌地图上导航,无需单击地图_Google Maps_Google Maps Api 3 - Fatal编程技术网

Google maps 箭头键在谷歌地图上导航,无需单击地图

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

我尝试搜索谷歌地图API文档,也在这里,但我找不到如何做到这一点

我正在尝试在地图上默认设置箭头键导航,而无需单击地图区域以启用该功能

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

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遍历路径,但是:这个解决方案可以工作并获得赏金!