ST_DumpAsPolygons — 返回给定栅格标注栏中的一组geomval(geom,val)行。如果未指定波段编号,则波段编号默认为1。
setof geomval
ST_DumpAsPolygons
(
raster
rast
, integer
band_num=1
, boolean
exclude_nodata_value=TRUE
)
;
这是一个集返回函数(SRF)。它返回一组geomval行,由几何图形(Geom)和像素带值(Val)组成。每个多边形都是该波段中具有相同像素值的所有像素的并集,该值由val表示。
ST_DumpAsPolygon对于多边形化栅格非常有用。它与GROUP BY相反,因为它创建新行。例如,它可用于将单个栅格展开为多个多边形/MULTIPOLYGONS。
更改了3.3.0,禁用了验证和修复以提高性能。可能会产生无效的几何图形。
可用性:需要GDAL 1.7或更高版本。
![]() |
|
如果没有为波段设置数据值,则不会返回具有该值的像素,除非EXCLUDE_NODATA_VALUE=FALSE。 |
![]() |
|
如果只关心栅格中具有给定值的像素数,则使用它会更快 ST_ValueCount 。 |
![]() |
|
这与ST_PixelAsPolygons不同,在ST_PixelAsPolygons中,无论像素值如何,都会为每个像素返回一个几何体。 |
-- this syntax requires PostgreSQL 9.3+
SELECT val, ST_AsText(geom) As geomwkt
FROM (
SELECT dp.*
FROM dummy_rast, LATERAL ST_DumpAsPolygons(rast) AS dp
WHERE rid = 2
) As foo
WHERE val BETWEEN 249 and 251
ORDER BY val;
val | geomwkt
-----+--------------------------------------------------------------------------
249 | POLYGON((3427927.95 5793243.95,3427927.95 5793243.85,3427928 5793243.85,
3427928 5793243.95,3427927.95 5793243.95))
250 | POLYGON((3427927.75 5793243.9,3427927.75 5793243.85,3427927.8 5793243.85,
3427927.8 5793243.9,3427927.75 5793243.9))
250 | POLYGON((3427927.8 5793243.8,3427927.8 5793243.75,3427927.85 5793243.75,
3427927.85 5793243.8, 3427927.8 5793243.8))
251 | POLYGON((3427927.75 5793243.85,3427927.75 5793243.8,3427927.8 5793243.8,
3427927.8 5793243.85,3427927.75 5793243.85))