現時点では、Googleマップv.3 APIを使用して地図上にマーカーを描画しています。 合計で約500個のマーカーがあります。Googleマップに100-200Kマーカーを読み込む
表示の目的で、このツールをブラウザのブラウザ側で使用して、markerClusterとグループマーカーを使用します。
しかし、私は場所番号を拡張し、それがすぐに100Kまたは200Kに成長すると想定しています。
私はいくつかのストレステストを行い、現在の解決策は基本的にブラウザと約10〜20Kのマーカーを殺すことに気付きました。
だから私の質問は、多くのマーカー(必要なGoogleマップではない)を描くための最良のアプローチは何ですか?
私は同様の質問、例えばとの記事を読みました:
Showing many markers in Google Maps
Best solution for too many pins on google maps
基本的に、人々は私がすでに使用して表示目的のためにいくつかのクラスタラを使用することをお勧めします。
または、データを取得するためのフュージョンテーブルを使用することもできます。これはオプションではありません。データをサーバーに残す必要があります。また、表示機能はフュージョンテーブルに限られていると私は考えています。私は次のシナリオの実装を考えている
:すべてのページのズーム/負荷に
を - 表示ビューの境界でAJAXリクエストを送信し、すべての側面に約30%を追加して、マーカーを取得していますこの地理的領域にのみ入る。 ユーザーがズームアウトした場合は30%が追加されますので、他のマーカーをすばやく表示して残りの部分を背景でさらに広げることができます(広域)
マーカーが50個を超えると表示の目的でクラスタリングを適用する予定です。しかし、javascriptのmarkerClusterはmarkerClusterではなくgoogle自体であるため、すべてのマーカーの場所がまだ適用されているので、表示されたマップの境界を約15 * 15グリッドで分割することでサーバー側でクラスタリングを行う予定ですマーカを特定のセルにドロップしてから、基本的に(たとえばヒートマップのように)マーカーの数を含むクライアントクラスタに送信します。そして、マーカーをマーカーとして表示する。
似ていた人は誰でも洞察を与えてください。一般的に意味がありますか?または、Ajax要求がすべてのマップズームとシフトでサーバーに送信され、基本的に冗長な要求のサーバーに過負荷がかかるため、それは愚かなアプローチですか?
私が達成したいのは、マーカーの大きなデータセット(2秒未満で読み込む)でユーザーエクスペリエンスが優れていることです。
代わりに、バッチでajax呼び出しでマーカーを取得し、バッチでそれらを描画してください。 – sunil
@sunil詳細を教えてください。したがって、特定の地域のバッチを読み込んで、地域別にバッチを作成してください。 – Volder
あなたのスキームを考えるもう一つの方法は、マップタイルのように、サーバー上にマルチレベルのベクトルタイルを置くことです。しかし、これらの「タイル」は、エリア内のマーカー/クラスタ位置の位置です。フロントエンドは、ズームレベルと範囲に従ってこのような「タイル」を要求します。クライアントはこのような「タイル」をキャッシュすることができるため、ズームやパンするたびにリロードする必要はありません。 – headuck