我遇到了一些有关于我的街景的问题。我希望只有在街景完全加载完成后才显示,这样就不会看到灰色的颜色。我搜索了api,但我认为没有任何事件可以使用:文档
是否有任何方法(包括非官方方式)可以在街景完全加载完后显示?谢谢!
<div id="pano" style="position:absolute; left:410px; top: 8px; width: 400px; height: 300px;visibility:hidden;"></div>
<script> google.maps.event.addDomListener(window, 'load',initialize);
setTimeout('showPano()',1000);
function showPano(){
document.getElementById('pano').style.visibility='visible';}
</script>
我进行了一些测试(编辑了vinod_vh的示例,请参见http://jsfiddle.net/nDwSC/2/),发现links_changed
事件是最后一个启动的:
- 2013年6月17日17:48:28.775 ===== 点击发生 ===== /nDwSC/2/show/(第210行)
- 2013年6月17日17:48:28.780 调整大小 /nDwSC/2/show/(第170行)
- 2013年6月17日17:48:28.843 缩放更改 /nDwSC/2/show/(第173行)
- 2013年6月17日17:48:29.603 全景图更改 /nDwSC/2/show/(第158行)
- 2013年6月17日17:48:29.622 位置更改 /nDwSC/2/show/(第161行)
- 2013年6月17日17:48:29.634 链接已更改
所以你可能真的想使用这个事件!它也会在不同的上下文中启动,但是你可以通过设置一些标志变量来处理这个问题,当你点击按钮时,它将被设置,并在处理程序中进行测试,有可能超时。
所以,你应该做什么:
隐藏你的街景;但不要使用 display: none
,使用技巧
与 jQuery UI < 1.9 中的 off-left 隐藏技术相同(对于新版本不幸的是它不起作用):
.hide {
position: absolute !important;
left: -10000px !important;
}
保持隐藏框架与结果框架具有相同的尺寸!
处理 links_changed
事件 - 移除 hide
类,并调整地图大小。
links_changed
事件过早触发,没有其他方法可以通过处理事件来干净地实现。 您甚至不能使用地图的 idle
事件(对于 google.maps.StreetViewPanorama
来说,idle
事件不存在)。所以最后的办法可能是使用一些固定的超时 - 这样做是完美的!
如果您想在加载后加载全景图,可以使用iframe,并使用带有AJAX加载器的包装器,直到地图加载完成(ready state == 4),或者使用另一个带有一些全局变量作为标志以了解准备状态的ajax加载器包装器。注意:这是不稳定的想法,但在某些浏览器中可以使用。
如果您想在API中轻松实现此操作,请参考事件侦听器,
否则,
options在文档中有一个选项,
即
visible :: boolean :: 如果为true,则街景全景图在加载时可见。
我希望这将使您的工作更加轻松。
我希望我已经根据您的实际要求回答了问题。