【问题标题】:Google Street View in building worked - now broken建筑物中的谷歌街景工作 - 现在坏了
【发布时间】:2014-12-10 01:07:27
【问题描述】:

所以,我有一个问题。我的网站上有谷歌地图街景,有一个建筑物全景(内部),现在 API 只显示该建筑物附近的街景。为什么以及如何解决?

这是我的代码:

        function initialize() {
            var fenway = new google.maps.LatLng(52.4980685,13.2951895);
            var panoramaOptions = {
                zoom: 1,
                panControl:false,
                zoomControl:false,
                mapTypeControl:false,
                scaleControl:false,
                rotateControl:false,
                streetViewControl:false,
                overviewMapControl:false,
                disableDefaultUI: false,
                addressControl: false,
                addressControlOptions: {
                    position: google.maps.ControlPosition.BOTTOM,
                    hide: true
                },
                position: fenway,
                pov: {
                    heading: 0,
                    pitch: 0
                }
            };
            var panorama = new google.maps.StreetViewPanorama(document.getElementById('pano'), panoramaOptions);
            google.maps.setStreetView(panorama);
        }

        google.maps.event.addDomListener(window, 'load', initialize);

【问题讨论】:

    标签: google-maps google-street-view


    【解决方案1】:

    这可能是一种错误(请随时报告)。

    我猜你说的是“Shebell Institut”这个地方。

    让我解释一下为什么这是一个错误:

    目前

    • 这张全景图的 ID 是(至少对我而言):ag1bfIf47xUAAAGuxVUjCQ
    • 和全景图的位置(由 StreetViewService 报告):(52.498042,13.29517199999998)

    您的代码中的位置略有不同,但是当我使用确切位置时,它应该显示所需的全景图(因为它是最近的)......但它没有。

    此外,当我通过StreetViewService.getPanoramaByLocation 查询全景图时,将返回另一个全景图(具有另一个位置),尽管文档说:
    如果半径小于 50 米,则最近的全景图将被退回。 ...但是当我使用确切位置时,它不应该返回另一个位置的全景图。

    我没有解决方案,因为关于文档全景 ID 仅在会话中是稳定的。

    但这并不意味着panorama-ID必须经常改变(我不知道是什么迫使panorama-ID改变,但我无法想象ID会随机改变)。

    所以让我们试一试并使用全景 ID(可选)。

    1. 将全景位置(在这种情况下为fenway)设置为

      (52.498042,13.29517199999998)
      
    2. 根据 ID (ag1bfIf47xUAAAGuxVUjCQ) 请求全景数据
    3. 当两个位置(fenway 和返回的全景图的位置)相等时,您可以假设它仍然是所需全景图的 ID 并使用此全景图

          new google.maps.StreetViewService()
            .getPanoramaById('ag1bfIf47xUAAAGuxVUjCQ',
              function(data,status){
                if(google.maps.StreetViewStatus.OK===status 
                     &&
                  data.location.latLng.toUrlValue()==fenway.toUrlValue()
                  ){
                    panorama.setPano(data.location.pano);
                  }
            });
      

    演示:http://jsfiddle.net/doktormolle/uwqvr5ee/

    如果有时不是所需的全景图,您可以向站点管理员发送通知,以便他可以更新全景图 ID。 我知道这并不完美,但这是迄今为止我能想到的唯一方法(除了custom panorama

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多