ST_AsRaster — Konverterar en PostGIS-geometri till ett PostGIS-raster.
raster ST_AsRaster(
geometry geom, raster ref, text pixeltype, double precision value=1, double precision nodataval=0, boolean touched=false)
;
raster ST_AsRaster(
geometry geom, raster ref, text[] pixeltype=ARRAY['8BUI'], double precision[] value=ARRAY[1], double precision[] nodataval=ARRAY[0], boolean touched=false)
;
raster ST_AsRaster(
geometry geom, double precision scalex, double precision scaley, double precision gridx, double precision gridy, text pixeltype, double precision value=1, double precision nodataval=0, double precision skewx=0, double precision skewy=0, boolean touched=false)
;
raster ST_AsRaster(
geometry geom, double precision scalex, double precision scaley, double precision gridx=NULL, double precision gridy=NULL, text[] pixeltype=ARRAY['8BUI'], double precision[] value=ARRAY[1], double precision[] nodataval=ARRAY[0], double precision skewx=0, double precision skewy=0, boolean touched=false)
;
raster ST_AsRaster(
geometry geom, double precision scalex, double precision scaley, text pixeltype, double precision value=1, double precision nodataval=0, double precision upperleftx=NULL, double precision upperlefty=NULL, double precision skewx=0, double precision skewy=0, boolean touched=false)
;
raster ST_AsRaster(
geometry geom, double precision scalex, double precision scaley, text[] pixeltype, double precision[] value=ARRAY[1], double precision[] nodataval=ARRAY[0], double precision upperleftx=NULL, double precision upperlefty=NULL, double precision skewx=0, double precision skewy=0, boolean touched=false)
;
raster ST_AsRaster(
geometry geom, integer width, integer height, double precision gridx, double precision gridy, text pixeltype, double precision value=1, double precision nodataval=0, double precision skewx=0, double precision skewy=0, boolean touched=false)
;
raster ST_AsRaster(
geometry geom, integer width, integer height, double precision gridx=NULL, double precision gridy=NULL, text[] pixeltype=ARRAY['8BUI'], double precision[] value=ARRAY[1], double precision[] nodataval=ARRAY[0], double precision skewx=0, double precision skewy=0, boolean touched=false)
;
raster ST_AsRaster(
geometry geom, integer width, integer height, text pixeltype, double precision value=1, double precision nodataval=0, double precision upperleftx=NULL, double precision upperlefty=NULL, double precision skewx=0, double precision skewy=0, boolean touched=false)
;
raster ST_AsRaster(
geometry geom, integer width, integer height, text[] pixeltype, double precision[] value=ARRAY[1], double precision[] nodataval=ARRAY[0], double precision upperleftx=NULL, double precision upperlefty=NULL, double precision skewx=0, double precision skewy=0, boolean touched=false)
;
Konverterar en PostGIS-geometri till ett PostGIS-raster. De många varianterna erbjuder tre grupper av möjligheter att ställa in justering och pixelstorlek för det resulterande rastret.
Den första gruppen, som består av de två första varianterna, producerar ett raster med samma inriktning (scalex
, scaley
, gridx
och gridy
), pixeltyp och nodatavärde som det tillhandahållna referensrastret. Du skickar i allmänhet detta referensraster genom att koppla samman tabellen som innehåller geometrin med tabellen som innehåller referensrastret.
Den andra gruppen, som består av fyra varianter, låter dig ställa in rastrets dimensioner genom att ange parametrarna för en pixelstorlek(scalex
& scaley
och skewx
& skewy
). Bredden
och höjden
på det resulterande rastret kommer att justeras för att passa geometrins omfattning. I de flesta fall måste du kasta heltal scalex
& scaley-argument
till dubbel precision så att PostgreSQL väljer rätt variant.
Den tredje gruppen, som består av fyra varianter, låter dig fastställa rastrets dimensioner genom att ange rastrets dimensioner (width
& height
). Parametrarna för pixelstorleken (scalex
& scaley
och skewx
& skewy
) i det resulterande rastret kommer att justeras för att passa geometrins utsträckning.
De två första varianterna av var och en av de två sista grupperna låter dig ange inriktningen med ett godtyckligt hörn av inriktningsrutnätet (gridx
& gridy
) och de två sista varianterna tar det övre vänstra hörnet (upperleftx
& upperlefty
).
Varje variantgrupp gör det möjligt att producera ett enbandsraster eller ett flerbandsraster. För att producera ett raster med flera band måste du tillhandahålla en array med pixeltyper(pixeltype[])
, en array med initiala värden (value
) och en array mednodatavärden (nodataval)
. Om pixeltyped inte tillhandahålls är standardvärdet 8BUI, värdena 1 och nodataval 0.
Utdatarastret kommer att ha samma spatiala referens som källgeometrin. Det enda undantaget är för varianter med ett referensraster. I detta fall kommer det resulterande rastret att få samma SRID som referensrastret.
Den valfria parametern touched
är som standard false och mappar till rasteriseringsalternativet GDAL ALL_TOUCHED, som avgör om pixlar som berörs av linjer eller polygoner ska brännas. Inte bara de som ligger på linjens renderbana eller vars mittpunkt ligger inom polygonen.
Detta är särskilt användbart för att rendera jpeg- och png-filer av geometrier direkt från databasen när de används i kombination med ST_AsPNG och andra funktioner i ST_AsGDALRaster -familjen.
Tillgänglighet: 2.0.0 - kräver GDAL >= 1.6.0.
![]() |
|
Kan ännu inte rendera komplexa geometrityper som kurvor, TINS och PolyhedralSurfaces, men bör kunna göra det när GDAL kan det. |
svart cirkel
-- this will output a black circle taking up 150 x 150 pixels -- SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10),150, 150));
exempel från buffert som renderas med bara PostGIS
-- the bands map to RGB bands - the value (118,154,118) - teal -- SELECT ST_AsPNG( ST_AsRaster( ST_Buffer( ST_GeomFromText('LINESTRING(50 50,150 150,150 50)'), 10,'join=bevel'), 200,200,ARRAY['8BUI', '8BUI', '8BUI'], ARRAY[118,154,118], ARRAY[0,0,0]));
ST_BandPixelType, ST_Buffer, ST_GDALDrivers, ST_AsGDALRaster, ST_AsPNG, ST_AsJPEG, ST_SRID