境界ボックスよりも良いもの?
-
13-09-2019 - |
質問
私は、X百万個の経度緯度点を有するシナリオを持っている。
新しい長い/緯度の点が追加されると、私はの効率的の知りたい他の点は、ユーザが設定した距離パラメータの範囲内にあるので、私は、リストに追加することができます。
バウンディングボックスをより良いものを得たか。
私はアルゴリズム、参照およびいくつかの実装を見てみたい!;)親切にありがとうございました。
他のヒント
の同僚は、<彼はモートン・コードを使用したとの良好な経験を持っていたことを私に言いました/> GISデータの空間インデックスとして、多分それは。
調べてみる価値何かがありますこの間に合わせと-アプローチはあなたにいくつかの悲しみを保存することがあります。1度ボックスに、地球の表面を分割します。その後、180x360要素の配列を持つことになりますし、あなただけのコーナーの一つは、ユーザーが指定した距離内にあるため、すぐに周りの新しいポイントとすべてのボックスを含むボックスを含むボックスの数が少ない、検索する必要があります。あなたはすぐにボックスがそれらすべてを考慮せずに使用するかを把握するために使用できるいくつかのトリックがあることがわかります。ただ、緯度、経度、ラップアラウンドを忘れないでください。
あなたの場合「のみ」のポイント数百万を持っており、それらがホットスポットにクラスタ化されていない、それはあなたを介して取得することがあります。
理論的に優れた方法:あなたは3次元空間に各ポイントをマッピングして、オクトツリーでそれらを格納することができあなたはすぐに任意の距離内に近くのポイントを見つける聞かせを、。あなたは、変換係数を計算する必要がありますので、当然のことながら、3次元空間での距離は、地球上の大圏距離よりも若干異なります。それはしかし、シンプルでなければなりません。あなたは、実装言語に言及していないが、ほぼ確実にあなたが作業している任意の言語について十分にテストされた八分木の実装があるように起こっている。あなたは、サードパーティのコードを挿入し気にしない場合は、このソリューションはへの道であります行きます。