多数の機能を使用する場合、パフォーマンスを向上させるために、境界ボックス空間インデックスを使用するのが一般的です。多数の頂点を持つ個々のジオメトリに対して操作が実行される場合、同様の最適化戦略が存在しますか?
たとえば、ポリゴンのポイントまたはユニオン操作を高速化できるデータ構造はありますか?
R
)はユーザーに提供しますそのようなものをはるかに制御します。
多数の機能を使用する場合、パフォーマンスを向上させるために、境界ボックス空間インデックスを使用するのが一般的です。多数の頂点を持つ個々のジオメトリに対して操作が実行される場合、同様の最適化戦略が存在しますか?
たとえば、ポリゴンのポイントまたはユニオン操作を高速化できるデータ構造はありますか?
R
)はユーザーに提供しますそのようなものをはるかに制御します。
回答:
[ポリゴン内のポイントのみ]でOK:
この問題は、2Dオブジェクトの「フラクタル性」と、空間情報の不確実で不均衡な分布に基づいていると思います。通常のグリッドがある場合、セルの位置または関係を簡単に計算できます。ただし、地形モデルの等値線では、複雑な部分が側面に、数学的に複雑な部分が反対側にあります(形態学的にアクティブな部分は尾根、谷など)。
インデックス作成では、次の2つのことを処理しようとします。
空間的に区別できるオブジェクト(バケット!)を収集する一連のバケットを提供する高速ルーチン。また、BBoxは計算と処理が簡単です。
空間的なもの(オブジェクト)を区別または関連付けるための一連の関係(オーバーラップ、タッチ)。
残念ながら、BBoxesは、各BBoxにあるポイントの数、オブジェクトの形状(穴、凸など)、および情報がローカルに分散される方法(ポイントの左上隅の90%のポイント)を提供しません。 BBox)。そのため、オブジェクトレベルで高速操作メンバーを見つけ、テストの関係構築で多くの時間を失う可能性があります。
より不規則なアプローチを使用するために、IMO三角形分割とand quadtreesを組み合わせた戦略では、バケットのインデックスとインデックスの関係構築部分を近づけることができます(バケット==関係構築)。
Point-in-Polygon-Testの例では、次を使用して不規則なキャッシュを構築できます。
錫と四分木を構築するコストは非常に高く、計算が難しく、四分木は大小の三角形(小さなサブツリーボックスに収まらない三角形)のバランスを取る必要があります。
いくつかのツールとリンク: