如何在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);

Answers:


8

对于您要完成的工作,我认为ST_DWithin将起作用。从PostGIS网站文档中:

ST_DWithin —如果几何之间的指定距离内,则返回true。对于几何单位,以空间参考为单位;对于地理单位,以米为单位,并且默认将测量值设置为use_spheroid = true(围绕球体的度量),为了更快地进行检查,请使用use_spheroid = false沿球进行度量。


这可能可行,但诀窍是设置适当的搜索阈值。设置得太高,我得到不止一场比赛,设置得太低,我得不到任何比赛。或将其设置为高并丢弃多余的匹配记录。
ako 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.