2

マップ ポイントのデータベースがあり、表示を一度に最大 50 ポイントまでに制限したいと考えています。ユーザーがズームインすると、より多くのポイントが表示される場合があります。

現在、結果セットのランダムなサンプルを取得しています。空の領域が存在する可能性があるため、ズームインすると突然ポイントが表示されるため、これは望ましくありません。

次に考えたのは、10x5 のグリッドを作成し、結果を反復処理することでした。グリッド内の場所が空の場合は、ポイントを表示します。これにより、以前の問題は修正されますが、ユーザーは集中している領域がどこにあるのかわかりません。また、ユーザーが世界全体にズームアウトすることを決定した場合、これは非常に遅くなります。

現在、データの並べ替えに空間アルゴリズムは使用していません。私の計画は、最初に正しく動作させてから、すぐに動作させることです。RTress、kd-trees、quad-trees を少し読んでも、サンプルの「スマート」サブセットを選択するのに役立つものは何も見つかりませんでした。この問題を非常に簡単に解決する、ある種の幅優先検索が必要なようです。

4

3 に答える 3

0

ポイントは数千しかなく、オフラインの時間も十分にあるため、データを並べ替える分散係数を作成するアルゴリズムを作成しました。

  1. セットのランダムな点から始めて、n=1 のスコアを与え、選択したリストに追加します。
  2. 次に、選択したリスト内の任意のポイントから離れたポイントを検索します。
  3. このポイントを取得し、n + 1 のスコアを付けて選択済みリストに追加し、すべてのポイントが選択されるまで手順 2 を繰り返します。

私のマップでは、範囲フィルターに一致するすべてのポイントを取得し、ランクの昇順に並べ替えます。フィルターやズームに関係なく、画面全体にポイントが分散されます。

于 2009-08-25T10:53:14.077 に答える