最善の方法を教えてcluster map markers
ください。現在、アプリケーションで Google マップを使用しています。ここでは、すべてのエンティティがマップ上のポイントを定義しgrid based clustering algorithm (64px X 64px grid)
、エンティティ ポイントをクラスタ化するための があります。これは、約 80,000 個のエンティティで問題なく機能しました。5000 から 150 万のエンティティまでさまざまなデータセットがあります。問題1.5 million dataset
は、非常に多くのマーカーがあるため、マップ上のほぼすべてのグリッドがクラスター化されたマーカーであり、UI が不適切になるだけでなく (すべてのグリッドでクラスター化されたマーカー)、マップの読み込み時間が長くなることです。
1) Client Side
- クライアント側のクラスタリングを試しました ( Map Clusterer
)。150 万のエンティティを持つ json オブジェクト自体がシステムの速度を低下させたため、これは機能しませんでした。また、Map Clusterer は最大 50k のマーカーしか機能しませんでした。
2)Server Side
-このような巨大なデータセットの問題は、すべてのエンティティをクエリすることさえできないことです。そのため、SQLで最初のレベルのグリッドベースのクラスタリングを行い、SQLから最初のパスのクラスタリング結果を取得した後、密度ベースのクラスタリングを行うことを考えていましたすべてのクラスターに clusterCount と avg lat/long があります。MAFIA, CLIQUE
または、そのような巨大なデータセットに対するより良いアイデアがある場合 (クラスタリングについて読みましたhttp://www.siam.org/proceedings/datamining/2001/dm01_07NageshH.pdf )。
また、ある時点で、私は本当にこのデータをキャッシュしたいと思っています (ただし、別の質問で尋ねる必要があります) が、クラスター、ビューポート、ズームレベルを念頭に置いて誰かがキャッシュ技術を提供できる場合、それは本当に役に立ちます。