PostGISを使用した最近傍計算の最適化
PostGISを使用して、ポリゴンの最近傍を計算しています。計算したいのは、各ポリゴンから最も近いポリゴンまでの最小距離です。 これまでのところ、マイク・トゥウズの答え(小さな変更を引用)から大きな助けを得ました。 SELECT a.hgt AS a_hgt, b.hgt AS b_hgt, ST_Distance(a.the_geom, b.the_geom) AS distance_between_a_and_b FROM public."TestArea" AS a, public."TestArea" AS b WHERE a.hgt != b.hgt AND ST_Distance(a.the_geom, b.the_geom) < 400 次に、最小値を計算しました: SELECT a_hgt, MIN(distance_between_a_and_b) FROM public."lon_TestArea" GROUP BY a_hgt ただし、私の挑戦は、多数のポリゴン(1,000,000)についてこれを計算することです。上記の計算では、各ポリゴンを他のすべてのポリゴンと比較しているので、10 ^ 12の計算を実行する必要がないように計算を改善する方法を考えました。 私が考えていたのは、各ポリゴンをバッファリングしてから、そのポリゴンのバッファ内のすべての値の最近傍を計算し、最小値を記録することでした。それが最善のアプローチであるか、PostGISに使用すべき関数があるかどうかはわかりません。 編集:ニックラスの提案のいずれかを使用して、私は実験していST_Dwithin()ます: CREATE TABLE mytable_withinRange AS SELECT a.hgt AS …