0

私はGoogleMapsAPIを初めて使用し、MarkerClustererを使用して地図上に最大2,000個のマーカーをプロットするRoRアプリケーションを引き継ぎました。各マーカーには、関連付けられた情報ウィンドウがあります。

現在の実装では、JavaScriptで情報ウィンドウのコンテンツ文字列の配列を作成し、JavaScriptをブラウザにダウンロードします。非圧縮(サーバーコンテンツ圧縮なし)の場合、アレイとJavascriptは最大9MBになる可能性があります。

私が見つけたこの実装に関連するパフォーマンスのボトルネックは次のとおりです。1。サーバーで2000個の文字列を作成し、JavaScript配列に配置する時間。(〜4-5秒)2。ブラウザに送信する前に、サーバーで数メガバイトのJavaScriptを圧縮する時間。(〜2-3秒)

私のイニシャルは、すべてのHTMLフォーマットを含むinfowindowコンテンツ文字列のテンプレートを作成して、infowindowコンテンツの配列に含まれるデータが実際に表示される生の数値だけになるようにすることです。これにより、サーバー上でコンテンツ文字列配列をアセンブルする計算時間が大幅に短縮され、それに応じてブラウザで配列によって消費されるメモリが削減されます。また、一度に開く必要がある情報ウィンドウは1つだけです。

Google Maps v3 APIに慣れていないので、これが最適化の最良の戦略であるかどうかについてのガイダンスを探しています。そして、このタイプの戦略を実装するコードサンプルへのポインタ。

前もって感謝します、

-スコット

4

1 に答える 1

0

配列に2000個のデータセットをすべてロードするのではなく、次の2つの方法のいずれかを実行する必要があると思います。

  1. マーカーをロードするだけなので、現在のビューポートにある情報ウィンドウをロードします。
  2. マーカーをクリックすると、ajaxによって情報ウィンドウのコンテンツが読み込まれます。
于 2011-09-21T07:03:49.540 に答える