ST_SetM — Returnerar en geometri med samma X/Y-koordinater som indatageometrin och värden från rastret kopierade till M-dimensionen med den begärda omsamplingsalgoritmen.
geometry ST_SetM(raster rast, geometry geom, text resample=nearest, integer band=1);
Returnerar en geometri med samma X/Y-koordinater som indatageometrin och värden från rastret kopierade till M-dimensionerna med hjälp av den begärda resample-algoritmen.
Parametern resample kan ställas in på "nearest" för att kopiera värdena från den cell som varje vertex faller inom, eller "bilinear" för att använda bilineär interpolation för att beräkna ett värde som även tar hänsyn till angränsande celler.
Tillgänglighet: 3.2.0
Testraster på 2×2 med värdena 10 50 40 20.
WITH test_raster AS (
SELECT
ST_SetValues(
ST_AddBand(
ST_MakeEmptyRaster(
width => 2,
height => 2,
upperleftx => 0,
upperlefty => 2,
scalex => 1.0,
scaley => -1.0,
skewx => 0,
skewy => 0,
srid => 4326),
index => 1,
pixeltype => '16BSI',
initialvalue => 0,
nodataval => -999
),
1,
1,
1,
newvalueset => ARRAY[ARRAY[10.0::float8, 50.0::float8], ARRAY[40.0::float8, 20.0::float8]]) AS rast
)
SELECT
ST_SetM(
rast,
band => 1,
geom => 'SRID=4326;LINESTRING(1.0 1.9,1.0 0.2)'::geometry,
resample => 'bilinear'
)
FROM test_raster
LINESTRING M (1 1.9 38,1 0.2 27)