2

最善の方法を教えて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 )。

また、ある時点で、私は本当にこのデータをキャッシュしたいと思っています (ただし、別の質問で尋ねる必要があります) が、クラスター、ビューポート、ズームレベルを念頭に置いて誰かがキャッシュ技術を提供できる場合、それは本当に役に立ちます。

4

2 に答える 2

0

私のkmeansサーバー側ソリューションを試すことができます:

https://github.com/biodiv/anycluster

(python/geodjango/postgis にあります)

大量の現金をお持ちの場合は、以下をご覧ください。

http://www.maptimize.com/

于 2013-03-20T20:09:05.127 に答える
0

GeoHash をご覧ください: http://en.wikipedia.org/wiki/Geohash

空間データのインデックス作成に Solr を使用することもできます: 検索 API21 および Apache Solr 検索統合22

于 2013-04-25T03:44:22.223 に答える