ST_DumpRings — 返回一个geometry_dump行集合,表示 Polygon 的外部和内部环。
geometry_dump[] ST_DumpRings(geometry a_polygon);
一个返回集合的函数 (SRF),用于提取多边形的环。它返回一个geometry_dump行的集合,每行包含一个几何图形(geom 字段)和一个整数数组(path 字段)。
geom 字段包含每个环作为 POLYGON。 path 字段是一个长度为 1 的整数数组,包含多边形环的索引。外部环(外壳)的索引为 0。内部环(孔)的索引为 1 及更高。
|
|
|
这仅适用于 POLYGON 几何图形。不适用于 MULTIPOLYGONS。 |
可用性:PostGIS 1.1.3。需要 PostgreSQL 7.3 或更高版本。
此函数支持 3D,并且不会删除 z 索引。
查询的一般形式。
SELECT polyTable.field1, polyTable.field1, (ST_DumpRings(polyTable.geom)).geom As geom FROM polyTable;
一个带有单个孔的多边形。
SELECT path, ST_AsEWKT(geom) As geom
FROM ST_DumpRings(
ST_GeomFromEWKT('POLYGON((-8149064 5133092 1,-8149064 5132986 1,-8148996 5132839 1,-8148972 5132767 1,-8148958 5132508 1,-8148941 5132466 1,-8148924 5132394 1,
-8148903 5132210 1,-8148930 5131967 1,-8148992 5131978 1,-8149237 5132093 1,-8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 1,
-8150305 5132788 1,-8149064 5133092 1),
(-8149362 5132394 1,-8149446 5132501 1,-8149548 5132597 1,-8149695 5132675 1,-8149362 5132394 1))')
) as foo;
path | geom
----------------------------------------------------------------------------------------------------------------
{0} | POLYGON((-8149064 5133092 1,-8149064 5132986 1,-8148996 5132839 1,-8148972 5132767 1,-8148958 5132508 1,
| -8148941 5132466 1,-8148924 5132394 1,
| -8148903 5132210 1,-8148930 5131967 1,
| -8148992 5131978 1,-8149237 5132093 1,
| -8149404 5132211 1,-8149647 5132310 1,-8149757 5132394 1,-8150305 5132788 1,-8149064 5133092 1))
{1} | POLYGON((-8149362 5132394 1,-8149446 5132501 1,
| -8149548 5132597 1,-8149695 5132675 1,-8149362 5132394 1))