名称

ST_DumpAsPolygons — 从给定的光栅波段返回一组 geomval(几何、值)行。如果未指定波段号,则波段号默认为 1。

语法

setof geomval ST_DumpAsPolygons(光栅 rast,整数 band_num=1,布尔 exclude_nodata_value=TRUE)

描述

这是一个集返回函数 (SRF)。它返回一组 geomval 行,由几何(geom)和像素波段值(val)组成。每个多边形都是具有由 val 表示的相同像素值的该波段的所有像素的并集。

ST_DumpAsPolygon 对于光栅多边形化非常有用。它是 GROUP BY 的反向,因为它创建新行。例如,它可用于将单个光栅扩展为多个 POLYGON/MULTIPOLYGON。

已更改 3.3.0,禁用验证和修复以提高性能。可能导致无效几何。

可用性:需要 GDAL 1.7 或更高版本。

[Note]

如果为波段设置了无数据值,则不会返回具有该值的像素,除非 exclude_nodata_value=false。

[Note]

如果您只关心光栅中具有给定值的像素数量,则使用 ST_ValueCount 更快。

[Note]

这与 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))
                    

另请参见

geomvalST_ValueST_PolygonST_ValueCount