ST_PixelData.getValue
定义
在给定了像素在 ST_PixelData 对象中的具体位置的情况下,ST_PixelData.getValue 函数将返回单个像素的值。位置可通过像素坐标或地理坐标指定。如果指定的位置超出了栅格像素尺寸或地理范围,该函数会返回错误。如果指定位置的像素值为 NoData,则 ST_PixelData.getValue 返回 NULL。
语法
Oracle
getValue (band INTEGER,
level INTEGER,
x INTEGER,
y INTEGER)
getValue (band INTEGER,
level INTEGER,
point SE_COORD)
PostgreSQL
getValue (data IN ST_PIXELDATA,
band IN INT,
x IN INT,
y IN INT)
getValue (data IN ST_PIXELDATA,
band IN INT,
point IN SE_COORD)
SQL Server
getValue (band IN INT,
x IN INT,
y IN INT)
getValueByLoc (band IN INT,
x IN double,
y IN double)
返回值
Oracle
数值型
PostgreSQL
整型
SQL Server
双精度型
参数
参数 | 描述 |
|---|---|
band | 像素的波段数(从 1 开始) |
level | 像素的金字塔等级 |
x | x 像素坐标 |
y | y 像素坐标 |
point | 像素的地理坐标 |
示例
在给定了像素在 ST_PixelData 对象中的位置的情况下,下列语句会返回单个像素的值。
Oracle
DECLARE
p sde.ST_PixelData;
pixelvalue NUMBER;
BEGIN
SELECT image.getPixelData() INTO p FROM MOAB;
pixelvalue := p.getvalue(1,0,1,1);
pixelvalue := p.getvalue(1,0,SE_COORD(34.057, 117.171));
END;
/
PostgreSQL
CREATE OR REPLACE FUNCTION get_pixel_value()
RETURNS integer AS '
DECLARE
p ST_PIXELDATA;
pixelvalue NUMBER;
BEGIN
SELECT getPixelData(image) INTO p FROM moab;
pixelvalue := getvalue(p,1,1,1);
pixelvalue := getvalue(p,1,SE_COORD(34.057, 117.171));
END;'
LANGUAGE plpgsql;
SELECT get_pixel_data();
DROP FUNCTION IF EXISTS get_pixel_data();
SQL Server
DECLARE
@p ST_Pixeldata;
@pixelvalue double;
SET @p = (SELECT image.getPixelData()
FROM moab );
SET @pixelvalue = @p.getValue(1,1,1);
SET @pixelvalue = @p.getValueByLoc(1, 34.057, 117.171);
5/25/2014