У меня есть TIFF растр в моей базе данных PostGIS 2.0. Я хочу получить значение растра в указанной точке широты / долготы.
У меня есть:
- PostgreSQL-9,1
- postgis-2.0-svn с поддержкой растров
- импортированный в PostGIS растр, его SRID - 3035
У меня есть TIFF растр в моей базе данных PostGIS 2.0. Я хочу получить значение растра в указанной точке широты / долготы.
У меня есть:
Ответы:
Функция ST_value:
http://postgis.net/docs/RT_ST_Value.html
возвращает растровое значение, заданное точкой в x, y или lat, lon.
Пока ST_Value работает, вам все равно нужно пространственно присоединиться к точке:
SELECT ST_Value(your_raster.rast, ST_Transform(ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))
FROM your_raster
WHERE ST_Intersects(your_raster.rast, ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))
Или со столом:
SELECT ST_Value(your_raster.rast, ST_Transform(ST_SetSRID(ST_MakePoint(your_table.lon,your_table.lat),4326),3035))
FROM your_raster
JOIN your_table ON ST_Intersects(your_raster.rast, ST_SetSRID(ST_MakePoint(your_table.lon,your_table.lat),4326),3035))