PostGISでポイントレイヤーとポリゴンレイヤーの空間結合を実行する方法は?


13

パーセルレイヤーに関連付ける(つまり、そのparcel_idを割り当てる)世帯を表すポイントデータセットがあります。ArcMapを使用すると、ポリゴンをポイントに空間的に結合し、結合に特定の検索半径を持たせ、最も近いポリゴンを使用するように指定できます。

私はこれをpostgresで実行したいのですが、これを行う最も賢明な方法は何かと疑問に思っていました。ポイントは実際の区画ではなく通りにあるため、ST_containsは使用できません。ST_containsの代わりに、近接チェックを可能にする別の関数はありますか?

update households h set parcel_id = p.parcel_id 
from parcels p where ST_contains(p.the_geom, h.xy);

回答:


8

あなたが達成したいことのために、私はST_DWithinが動作すると思います。PostGISサイトのドキュメントから:

ST_DWithin —ジオメトリが互いに指定された距離内にある場合、trueを返します。ジオメトリ単位の場合は空間参照の単位であり、ジオグラフィ単位の場合はメートルであり、測定値はデフォルトでuse_spheroid = true(回転楕円体の周りで測定)に設定されています。


これはおそらく動作する可能性がありますが、適切な検索しきい値を設定するのがコツです。値を高く設定しすぎると、複数の一致が得られ、低く設定しすぎると何も得られません。または、高く設定して、余分な一致レコードを破棄します。
赤穂
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.