2

ポイントクラスター(クラウド?)を計算するために利用できるC#ライブラリはありますか?

5 ~ 5 万ポイントのマップを取得し、ズーム レベルに基づいてポイントをクラスター化する必要がありますが、クラスターを計算する前に、表示されていないポイントを除外する方法も必要です。

私の考えは、N ズーム レベル/マップ スケールのすべてのクラスターを計算し、それらをグリッドに分割することでした。次に、マップは ajax リクエストを送信し、「私は座標にいます。この範囲で、マップ スケールは次のとおりです」 - サーバーは、クライアントのリクエストに一致するすべてのグリッド アイテムをキャッシュにクエリし、レスポンスを送信します。

これは実行可能なアイデアですか、やり過ぎですか、それとも「通常の方法からかけ離れた」アイデアの 1 つにすぎませんか?

4

1 に答える 1

1

ここでやろうとしているのは、(1) ズーム レベルを指定して特定のポイントから関連するポイントを見つけることと、(2) ズーム レベルを指定して互いに近すぎるポイントを含めないことの 2 つです。

この場合、(1) は自明です。観測点から各点までの距離を計算します。しきい値距離未満のポイントのみが含まれます。しきい値距離は、ズーム レベルの関数です。

(2) を行うには、各点から他の点までの距離を計算することを避けたいと考えています。これは計算量が多いためです。あなたがすることは、ステップ (1) で発見された点の Delaunay 三角形分割です。次に、各三角形の面積を計算します。次に、各点について、それが頂点である三角形の面積を合計します。この値でポイントを並べ替えます (合計三角形面積 - TTA)。ズーム レベルに依存するしきい値を下回る TTA を持つすべてのポイントを削除します。実験によって、使用するのに最適なしきい値を見つけることができます。

于 2012-10-24T16:22:58.897 に答える