【问题标题】:Detecting Google Maps streetview mode检测谷歌地图街景模式
【发布时间】:2011-11-07 06:44:32
【问题描述】:

我如何知道 google 地图处于街景模式还是路线图模式?有没有被触发的事件?我尝试浏览文档,似乎没有任何内容。我错过了什么吗?

当用户切换到街景模式时,我希望 UI 发生变化,但我不知道要绑定到哪个事件。

【问题讨论】:

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


    【解决方案1】:

    在与您的Map 对象关联的StreetViewPanorama 上检测visible_changed 事件。您可以通过调用其getStreetView() 方法从地图中获取全景图,并将处理程序绑定到该对象的事件。您必须通过调用getVisible() 方法来测试StreetViewPanorama 的可见性。

    例如:

    var map = new google.maps.Map(document.getElementById("theMap"), {streetViewControl: true});
    
    var thePanorama = map.getStreetView();
    
    google.maps.event.addListener(thePanorama, 'visible_changed', function() {
    
        if (thePanorama.getVisible()) {
    
            // Display your street view visible UI
    
        } else {
    
            // Display your original UI
    
        }
    
    });
    

    请参阅StreetViewPanorama Object Documentation 的事件部分,了解您可以在此对象上侦听的更多事件。

    【讨论】:

    • 是的,我昨晚设法弄明白了,不过还是谢谢 :D
    • @userinev Doh,我在您询问后 15 分钟内发布了此消息,呵呵。可惜你没有早点回来。 :[
    • 由于某种原因,在我每次进入/退出更改时都会多次触发该事件。
    • @GerardReches 你确定事件被触发了两次,还是你有可能多次附加你的处理程序?
    • @lthibodeaux 我敢肯定,我将处理程序附加到一个函数中,并且这个函数只被调用一次。在地图加载时触发一次,当我进入街景时触发两次,当我退出街景时触发一次。我不知道为什么只有在我进入街景时才被解雇两次。
    猜你喜欢
    • 2015-10-09
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多