Определение
Функция ST_PixelData.getValue возвращает значение отдельного пиксела, получив местоположение пиксела внутри объекта ST_PixelData. Местоположение пиксела может быть выбрано или с помощью координат пиксела, или с помощью географических координат. Функция возвращает ошибку в случае, если выбранное местоположение находится вне измерения пиксела растра, или вне географического экстента. ST_PixelData.getValue возвращает NULL, если значением пиксела в выбранном местоположении является NoData.
Синтаксис
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
Число (Number)
PostgreSQL
Целое
SQL Server
Двойной точности (Double)
Параметры
Параметр | Описание |
---|---|
band | Номер канала пиксела (начиная с 1) |
level | Уровень пирамидного слоя пиксела |
x | Значение координаты x пиксела |
y | Значение координаты y пиксела |
точка | Географическая координата пиксела |
Примеры
Следующая функция возвращает значение отдельного пиксела, получив местоположение этого пиксела внутри объекта 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);