繁体   English   中英

POSTGIS多个多边形ST_Intersects检查

[英]POSTGIS multiple polygons ST_Intersects check

我在数组中设置了一组多边形(不在数据库中)。 我想检查那些多边形与另一个多边形相交。

例:

input: [[], [], [], [], []] - set of polygons
want to checks those with another one polygon.
Return an array of true or false  

ST_intersects一次仅支持两个多边形。 是否可以一次检查所有内容? 如果不是,我必须遍历所有输入的多边形,并一一检查。

谢谢。

您可以将ST_DUMPST_INTERSECTS函数组合为数组几何(MULTIGEOMETRY TYPE)

St_astext(parcel.geom);

MULTIPOLYGON(((398140.945672642 4542263.06495453,398140.410405475 4542262.72839343,398140.513367039 4542263.18287079,398140.945672642 4542263.06495453)),
((398147.309882976 4542261.32904395,398146.58758329 4542258.33481488,398144.165643562 4542262.18667092,398147.309882976 4542261.32904395)),
((398141.915568335 4542238.96883738,398135.522133265 4542241.15138888,398138.811826236 4542255.67218681,398140.343422935 4542253.23633343,398146.254207604 4542256.95287011,398141.915568335 4542238.96883738)))

这是我的数据库中的一个示例-已签入;

select a.objectid,b.fid ,st_intersects (a.poly,b.geom)
from region a, 
(
select objectid::text||((st_dump(poly)).path[1]::text) as fid, (st_dump(poly)).geom as geom 
    from parcel where geometrytype(poly)='MULTIPOLYGON' ) 
  as b

http://www.postgis.org/docs/ST_Dump.html

http://postgis.org/docs/ST_Intersects.html

如果要知道至少一个输入多边形是否与目标多边形相交,则可以将输入表示为MultiPolygon数据类型。 这基本上就是您拥有的数组。 然后ST_Intersects接受一个Multipolygon单元。 但是,没有选择返回布尔值(真或假)数组的选项。

您可以在WKT Wiki页面中看到MultiPolygon的WKT表示形式,对其进行构造并使用ST_GeomFromText转换为PostGIS二进制文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM