1

シナリオ:大きなデータセットがあり、各エントリに場所(x、y-座標)が含まれています。このデータセット内の100m以内にあるこのデータセットからすべてのエントリを要求し、配列として返すことができるようにしたいと思います。

このようなものを実装するにはどうすればよいですか?推奨されるパターンやフレームワークはありますか?以前は、リレーショナルまたは単純なKey-Valueタイプのデータのみを扱ってきました。

4

2 に答える 2

2

この問題を効率的に解決するデータ構造はkdツリーです。node.jsモジュールを含む、利用可能な多くの実装があります。

于 2012-08-08T11:35:18.817 に答える
1

データ セットを PostgreSQL に配置し、R ツリー インデックスを使用します。その後、バウンディング ボックス クエリを実行して、任意の場所の +-100 マイルのすべてのポイントを取得できます。次に、半径距離を計算し、100 マイル以内のポイントを受け入れます。独自のスキーマとクエリを展開するか、PostGIS を使用できます。

R ツリーとは異なり、KD ツリーは本質的にバランスが取れていません。そのため、KD ツリーの構築方法によっては、不均衡なツリーと最長のパスが原因で、一貫性のないパフォーマンスが得られる可能性があります。

于 2012-08-08T17:02:07.443 に答える