0
       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
            }
          };
        }
      }

このコード ブロックでは、関数 getCustomPanoramaTileUrl のパラメーター :pano、zoom、tileX、tileY がわかりません。これらのパラメーターを使用しないと、関数は画像の URL を返すことを理解しています。

私の質問は次のとおりです。1/これらのパラメーターは何に使用され、どのように使用するのですか? 2/pano IDとは(いろいろ調べたけどよくわからない)

4

1 に答える 1

1

あなたは何について話していますか?

「なぜ私の質問が反対票を投じられたのですか?」と思うかもしれません。(PS:私はそれをしませんでした!)。質問をするとき、コンテキストがまったくないランダムなコードを平手打ちすると、あなたと同じようにあなたを助けようとする人が失われます.

コードは便利ですが、あなたの質問には重要な情報が欠けています:

  • どのような技術を使用していますか? API はありますか?
  • 何を試しましたか?
  • そのコードはどこから?
  • ドキュメントへのリンクはありますか?コンテキストは何ですか?

質問をする前に、必ず次のページを読んでくださいhttps://stackoverflow.com/help/how-to-ask

あなたのコードはどこから来たのですか?

いくつかの調査と調査を行った後、コードが実際にはGoogleドキュメントのカスタムストリートビューパノラマのコードであることがわかりました。

これを念頭に置いて、Google には、コードで何が起こっているかを理解するのに役立つ問題に関するドキュメントがいくつかあります。

ドキュメントを読みましたが、まだわかりません。

Google は複数のビューを備えたカスタム パノラマについて説明していますが、提供されている例は単純すぎて、Google が提供するリソースの可能性をすべて説明することはできません。

さて、あなたの特定の質問について...

何のためにpano, zoom, tileX, tileY使われますか?

あなたが提供したコード例では、それらは何にも使用されていません。文字通りそれらを削除してgetCustomPanoramaTileUrlも、コードは引き続き機能します。

それで、彼らは何のために使われますか?さて、StreetView のリファレンス ドキュメントによると、これらのパラメーターには次の目的があります。

指定されたタイルのタイル イメージ URL を取得します。panoは、ストリート ビュー タイルのパノラマ ID です。tileZoomは、タイルのズーム レベルです。 tileXはタイルの x 座標です。tileYはタイルの y 座標です。タイル画像の URL を返します。

さて、これでもわかりにくい場合は、説明を試みます。

カスタム パノラマは、以下の画像のように、まとめられた一連の画像です。

panorama_img

実際のパノラマ ビューを使用する場合、一連の画像を渡す必要があります。StreetView オブジェクトは、参照している画像のセット (panoId)、ズーム レベル (zoom)、およびセット内の X と現在表示されている画像の Y 位置 (tileX および tileY)。

あなたが提供した例では、非常に単純であるため、何があっても常に同じ画像を返すため、これは使用されません。しかし、一連の画像を使用するより複雑な例では、この情報はストリートビューが正しい画像を表示するためにどこを見ているかを知るために重要です。


それが役に立てば幸い!

于 2016-09-09T08:40:12.900 に答える