谷歌地图js api v3:街景全景完成加载?

时间:2011-08-09 21:19:50

标签: javascript google-maps google-maps-api-3 google-street-view

我的街景有些麻烦。我想在完成加载后才显示街景,这样就不会显示灰色。我搜索了api,但我认为没有任何可以使用的事件:Documentation

有没有办法(包括非官方方式)在满载后显示街景?谢谢!

3 个答案:

答案 0 :(得分:0)

我做了一些测试(vinod_vh的编辑示例,请参阅http://jsfiddle.net/nDwSC/2/)并发现links_changed事件是最后一次发布的事件:

  
      
  1. červen201317:48:28.775 =====点击发生===== / nDwSC / 2 / show /(210行)
  2.   
  3. červen201317:48:28.780 resize / nDwSC / 2 / show /(170行)
  4.   
  5. červen201317:48:28.843 zoom_changed / nDwSC / 2 / show /(第173行)
  6.   
  7. červen201317:48:29.603 pano_changed / nDwSC / 2 / show /(第158行)
  8.   
  9. červen201317:48:29.622 position_changed / nDwSC / 2 / show /(第161行)
  10.   
  11. červen201317:48:29.634链接已更改
  12.   

所以你可能真的想要使用这个活动!它也将在不同的上下文中启动,但是您可以通过设置一些标志变量来处理这个问题,当您单击按钮并在处理程序中进行测试时可能会超时。

那么,你应该做什么:

  1. 隐藏你的街景;但是不要使用display: none,请使用技巧 使用jQuery UI中的左/右隐藏技术< 1.9(新的 版本there is it doesn't work unfortunately

    .hide { position: absolute !important; left: -10000px !important; }

    保持与结果尺寸相同的隐藏框架!

  2. 处理links_changed事件 - 删除hide类,然后调整地图大小。

  3. 如果您发现links_changed事件过早发生,则没有其他可能通过处理事件来干净地执行此操作。 You cannot even use the map idle eventidle的{​​{1}}事件不存在)。所以最后的手段可能是使用一些固定的超时 - 这完全有效!

答案 1 :(得分:0)

在加载地图后隐藏并使div可见应该可以解决问题...

像这样

<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>

希望它能帮到你

答案 2 :(得分:0)

如果你想在加载之后加载全景,为此可以使用iframe,你可以使用AJAX加载器的包装器,在加载地图之前不会改变,(就绪状态== 4),(或者更多) ajax loader包装器用一些全局变量作为标志来知道就绪状态..,注意:这是不稳定的想法,但适用于某些浏览器)

如果您想这样做,这将是一种简单的方法,

引用事件监听器,

其他

options在文档中有一个选项,

visible :: boolean ::如果为true,则在加载时可以看到街景全景。

我希望这会让事情变得轻松......

我希望我已根据您的实际要求回答了问题。