在谷歌地图上查看全景图像

时间:2016-09-09 02:09:53

标签: javascript google-maps 360-panorama

       function initPano() {
        // Set up Street View and initially set it visible. Register the
        // custom panorama provider function. Set the StreetView to display
        // the custom panorama 'reception' which we check for below.
        var panorama = new google.maps.StreetViewPanorama(
          document.getElementById('map'), {
            pano: 'reception',
            visible: true,
            panoProvider: getCustomPanorama
        });
      }

      // Return a pano image given the panoID.
      function getCustomPanoramaTileUrl(pano, zoom, tileX, tileY) {
        // Note: robust custom panorama methods would require tiled pano data.
        // Here we're just using a single tile, set to the tile size and equal
        // to the pano "world" size.
        return 'http://bestofdiscus.gr/portals/0/Discus-Header-WR.jpg';
      }






  function getCustomPanorama(pano, zoom, tileX, tileY) {
        if (pano === 'reception') {
          return {
            location: {
              pano: 'reception',
              description: 'Google Sydney - Reception'
            },
            links: [],
            // The text for the copyright control.
            copyright: 'Imagery (c) 2010 Google',
            // The definition of the tiles for this panorama.
            tiles: {
              tileSize: new google.maps.Size(1024, 512),
              worldSize: new google.maps.Size(1024, 512),
              centerHeading: 105,
              getTileUrl: getCustomPanoramaTileUrl
            }
          };
        }
      }

在这段代码中,我不理解参数:pano,zoom,tileX,tileY在函数getCustomPanoramaTileUrl中。据我所知,在不使用这些参数的情况下,该函数将返回一个图像的url。

我的问题是: 1 /这些参数用于什么以及如何使用它? 2 /什么是全景ID(我一直在搜索它但仍然无法理解)

1 个答案:

答案 0 :(得分:1)

你在说什么?

您可能在想,"为什么我的问题被低估?" (PS:我没有做到!)。在提出问题时,在没有任何上下文的情况下拍下随机代码会让任何人试图像你一样迷失方向。

虽然代码很有用,但您的问题却缺少重要信息:

  • 您使用的是哪些技术?任何API?
  • 你有什么尝试?
  • 该代码来自哪里?
  • 任何文档的链接?背景是什么?

在提出问题之前,请务必阅读以下页面https://stackoverflow.com/help/how-to-ask

您的代码,它来自哪里?

在进行了一些挖掘和研究之后,我发现您的代码实际上是Google文档Custom Street View panoramas中的一段代码。

考虑到这一点,Google提供了一些有关此问题的文档,可帮助您了解代码的运行情况:

我阅读了文档,但我仍然没有得到它!

尽管Google谈论了包含多个视图的自定义全景图,但提供的示例过于简单,无法说明Google为您提供的资源的全部潜力。

现在,关于你的具体问题......

pano, zoom, tileX, tileY用于什么?

在您提供的代码示例中,它们用于......什么都没有。您可以从getCustomPanoramaTileUrl中逐字删除它们,代码仍可以使用。

那么,它们用于什么?那么,根据References Documentation for StreetView,这些参数具有以下目标:

  

获取指定图块的图块图像URL。 全景是全景图   街景视图图块的ID。 tileZoom 是磁贴的缩放级别。    tileX 是磁贴的x坐标。 tileY 是y坐标   瓷砖。返回图块图像的URL。

现在,如果这仍然令人困惑,我会尝试解释。

自定义全景图是一组图像,放在一起,如下图所示:

panorama_img

使用真实全景视图时,您想传递一组图像,而StreetView对象需要知道您所指的是哪一组图像(全景),缩放级别(缩放)和内部,您当前看到的图像的X和Y位置(tileX和tileY)。

在您提供的示例中,由于它非常简单,因此无论如何都会使用相同的图像。但是在一个使用一组图像的更复杂的例子中,这些信息对于让StreetView知道您正在查看的位置以显示正确的图像至关重要。

希望它有所帮助!