名称

ST_SameAlignment — 如果栅格具有相同的倾斜度、比例、空间参考和偏移量(像素可以放在同一网格上,而无需切割像素),则返回 true;否则,返回 false,并详细说明问题。

语法

boolean ST_SameAlignment( raster rastA , raster rastB );

boolean ST_SameAlignment( double precision ulx1 , double precision uly1 , double precision scalex1 , double precision scaley1 , double precision skewx1 , double precision skewy1 , double precision ulx2 , double precision uly2 , double precision scalex2 , double precision scaley2 , double precision skewx2 , double precision skewy2 );

boolean ST_SameAlignment( raster set rastfield );

说明

非聚合版本(变体 1 和 2):如果两个栅格(直接提供或使用左上角、比例、倾斜度和 srid 的值生成)具有相同的比例、倾斜度、srid,并且其中一个栅格的任何像素的四个角中的至少一个落在另一个栅格的网格的任何角上,则返回 true。如果它们不同,则返回 false,并详细说明对齐问题。

聚合版本(变体 3):从一组栅格中,如果集合中的所有栅格都对齐,则返回 true。ST_SameAlignment() 函数在 PostgreSQL 的术语中是一个“聚合”函数。这意味着它对数据行进行操作,就像 SUM() 和 AVG() 函数一样。

可用性:2.0.0

增强:2.1.0 添加聚合变体

示例:栅格

SELECT ST_SameAlignment(
    ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0),
    ST_MakeEmptyRaster(1, 1, 0, 0, 1, 1, 0, 0)
) as sm;

sm
----
t
SELECT ST_SameAlignment(A.rast,b.rast)
 FROM dummy_rast AS A CROSS JOIN dummy_rast AS B;

 NOTICE:  The two rasters provided have different SRIDs
NOTICE:  The two rasters provided have different SRIDs
 st_samealignment
------------------
 t
 f
 f
 f

另请参见

第 9.1 节,“加载和创建栅格”ST_NotSameAlignmentReasonST_MakeEmptyRaster