0

私は Google Maps API を使用していますが、大規模なswitchステートメント以外にパノラマ画像を検索するためのより良い方法があると感じています。外部ハッシュ テーブルを使用すると、はるかに効率的で、保守がはるかに簡単になると思います。各画像には一意panoIDの があり、これを定義できます。ハッシュ テーブルを読んで、必要なデータを一定時間内に取得するためのテーブルと完璧な関数を作成できると言っているのは正しいと思います。これを構築する方法に関する良いリソースはありますか? 私はハッシュの経験がまったくありません。

私のロジックは次のようになります。各画像は としてディレクトリsometext_panoID.jpgに保存されます。前述の switch ステートメントでデータを初期化するとき、すべての切り替えは panoID に従って行われ、他のメタデータはそこでアクセスされます。例えば:sometextpanoID

switch(panoID) {
    case "test1":
      links.push({
        description : "TEST2",
        pano : "test2",
        heading : 70
      });
      break;
    case "test2":
      links.push({
        description : "TEST1",
        pano : "test1",
        heading : 125
      });
      links.push({
        description : "TEST3",
        pano : "test3",
        heading : 0
      });
      break;
      case "test3":
      links.push({
        description : "TEST2",
        pano : "test2",
        heading : 0
      });
      break;
  }

私はすべてのpanoIDs を知っており、テーブルが構築されたらソート、追加、またはその他の変更を行う必要がないため、完全なハッシュを作成する方法があると感じていますが、どこから始めればよいかわかりません。任意のヒント?事前にたくさんありがとう

4

1 に答える 1

1

実際には、プロパティを持つ単純なプレーン オブジェクトは、その下にハッシュ テーブルとして実装されています。そのため、ハッシュ アルゴリズムについて読む必要はありません。その作業は JS エンジンで行うことができます。

var table = {
    "test1": [
      {
        description : "TEST2",
        pano : "test2",
        heading : 70
      }
    ],
    "test2": [
      {
        description : "TEST1",
        pano : "test1",
        heading : 125
      },
      {
        description : "TEST3",
        pano : "test3",
        heading : 0
      }
    ],
    "test3": [
      {
        description : "TEST2",
        pano : "test2",
        heading : 0
      }
    ]
};

var itemstobepushed = table[panoID];
[].push.apply(links, itemstobepushed);
于 2013-02-20T18:51:33.667 に答える