使用PostGis获取多边形中的内孔

问题描述 投票:0回答:1

目前我有一个包含土壤数据的数据库。该土壤数据由其中有孔的多边形组成。例如,

sample of soil data around NY

我需要为点周围区域的数据选择最外环和所有内环。到目前为止,这是我的

select
。它选择点周围区域中的所有多边形(示例是纽约周围)。

WITH point AS (
    SELECT ST_SetSRID(ST_MakePoint(-74.0060, 40.7128), 4326) AS geom
),
buffered_point AS (
    SELECT ST_Buffer(geom, 1.0) AS geom
    FROM point
)
SELECT s.geom AS geom
FROM soil s
JOIN buffered_point bp ON ST_Intersects(s.geom, bp.geom);

如何获得多边形中的所有内孔?

我尝试在

ST_Dump
ST_DumpRings
上使用
ST_InteriorRingN
geom
select
,但没有成功。

postgis
1个回答
0
投票

您可以 1) 使用

ST_DumpRings
(https://postgis.net/docs/ST_DumpRings.html) 并获取一组所有环,或者 2) 使用
ST_NumInteriorRings
() 查找内部环的数量https://postgis.net/docs/ST_NumInteriorRings.html)并迭代代码中的每一个。它应该非常简单 - 如果您需要更多帮助,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.