Google 地图 - 更改事件时全屏?
Google Maps - Full screen on change event?
我一直在谷歌上搜索,但找不到解决这个问题的任何地方。无论如何检测地图何时进入全屏或退出全屏? (很像 DOM 事件 onfullscreenchange)
我有一个选项 "fullscreenControl" 设置为 true 的地图,我想做的就是在地图全屏显示时将地图居中放置在标记上,以及仅在地图显示时显示信息窗口在全屏。如何检查全屏更改?
我试过在整个地图上使用 DOM 事件,但这似乎不起作用,例如:
google.maps.event.addDomListener(document.getElementById("map-canvas"), "fullscreen", function () {
console.log("FULLSCREEN CHANGED");
});
我还想过我可以创建一个自定义控件来代替全屏控件 X 按钮,以便在地图全屏时进行切换,然后我可以监听该自定义控件上的点击事件,但是没有更好的办法吗?真的没有 onfullscreenchange 事件或类似事件吗?
感谢您的帮助!
我正在更新答案以包含在 center_change
上使用计时器进行的检查
google.maps.event.addListener(map,'center_change', updateMapBounds);
}
function updateMapBounds(){
clearTimeout(mapBoundsTimer);
mapBoundsTimer = setTimeout(function() {
updateBounds();
}, 500);
}
function updateBounds(){
//code to get map_div or gm_style class size and compare it to the
if($('.gm_style').height()===window.innnerHeight &&
$('.gm_style).width() === window.innerWidth){
//fit_markers
}
}
但我认为如果使用 google.maps.event.addListener(map.'idle',updateBounds());
则可以删除 updateMapBounds
我一直在谷歌上搜索,但找不到解决这个问题的任何地方。无论如何检测地图何时进入全屏或退出全屏? (很像 DOM 事件 onfullscreenchange)
我有一个选项 "fullscreenControl" 设置为 true 的地图,我想做的就是在地图全屏显示时将地图居中放置在标记上,以及仅在地图显示时显示信息窗口在全屏。如何检查全屏更改?
我试过在整个地图上使用 DOM 事件,但这似乎不起作用,例如:
google.maps.event.addDomListener(document.getElementById("map-canvas"), "fullscreen", function () {
console.log("FULLSCREEN CHANGED");
});
我还想过我可以创建一个自定义控件来代替全屏控件 X 按钮,以便在地图全屏时进行切换,然后我可以监听该自定义控件上的点击事件,但是没有更好的办法吗?真的没有 onfullscreenchange 事件或类似事件吗?
感谢您的帮助!
我正在更新答案以包含在 center_change
上使用计时器进行的检查 google.maps.event.addListener(map,'center_change', updateMapBounds);
}
function updateMapBounds(){
clearTimeout(mapBoundsTimer);
mapBoundsTimer = setTimeout(function() {
updateBounds();
}, 500);
}
function updateBounds(){
//code to get map_div or gm_style class size and compare it to the
if($('.gm_style').height()===window.innnerHeight &&
$('.gm_style).width() === window.innerWidth){
//fit_markers
}
}
但我认为如果使用 google.maps.event.addListener(map.'idle',updateBounds());
则可以删除 updateMapBounds