ST_SetSkew — 设置地理参考 X 和 Y 倾斜(或旋转参数)。 如果只传入一个,则将X和Y设置为相同的值。
raster ST_SetSkew(raster rast, float8 skewxy);
raster ST_SetSkew(raster rast, float8 skewx, float8 skewy);
设置地理参考 X 和 Y 倾斜(或旋转参数)。 如果只传入一个,则将X和Y设置为相同的值。 有关更多详细信息,请参阅世界文件。
This is the first example.
UPDATE dummy_rast SET rast = ST_SetSkew(rast, 1, 2) WHERE rid = 1;
SELECT
rid,
format('(%s, %s)', skewx, skewy) AS skew,
term,
georef[idx] AS value
FROM (
SELECT
rid,
ST_SkewX(rast) AS skewx,
ST_SkewY(rast) AS skewy,
string_to_array(ST_GeoReference(rast), E'\n') AS georef
FROM dummy_rast
WHERE rid = 1
) AS refs
CROSS JOIN (VALUES
(1, 'scaleX'),
(2, 'skewY'),
(3, 'skewX'),
(4, 'scaleY'),
(5, 'originX'),
(6, 'originY')
) AS parts(idx, term)
ORDER BY idx;
rid | skew | term | value -----+--------+---------+-------------- 1 | (1, 2) | scaleX | 2.0000000000 1 | (1, 2) | skewY | 2.0000000000 1 | (1, 2) | skewX | 1.0000000000 1 | (1, 2) | scaleY | 3.0000000000 1 | (1, 2) | originX | 0.5000000000 1 | (1, 2) | originY | 0.5000000000 (6 rows)
This second example sets both values to the same number.
UPDATE dummy_rast SET rast = ST_SetSkew(rast, 0) WHERE rid = 1;
SELECT
rid,
format('(%s, %s)', skewx, skewy) AS skew,
term,
georef[idx] AS value
FROM (
SELECT
rid,
ST_SkewX(rast) AS skewx,
ST_SkewY(rast) AS skewy,
string_to_array(ST_GeoReference(rast), E'\n') AS georef
FROM dummy_rast
WHERE rid = 1
) AS refs
CROSS JOIN (VALUES
(1, 'scaleX'),
(2, 'skewY'),
(3, 'skewX'),
(4, 'scaleY'),
(5, 'originX'),
(6, 'originY')
) AS parts(idx, term)
ORDER BY idx;
rid | skew | term | value -----+--------+---------+-------------- 1 | (0, 0) | scaleX | 2.0000000000 1 | (0, 0) | skewY | 0.0000000000 1 | (0, 0) | skewX | 0.0000000000 1 | (0, 0) | scaleY | 3.0000000000 1 | (0, 0) | originX | 0.5000000000 1 | (0, 0) | originY | 0.5000000000 (6 rows)