Растровое значение PostGIS широты / долготы


13

У меня есть TIFF растр в моей базе данных PostGIS 2.0. Я хочу получить значение растра в указанной точке широты / долготы.

У меня есть:

  • PostgreSQL-9,1
  • postgis-2.0-svn с поддержкой растров
  • импортированный в PostGIS растр, его SRID - 3035

Ответы:


11

Вы можете преобразовать точку широты / долготы в CRS растра на лету, используя ST_Transform (). В совокупности запрос выглядит так:

ST_Value(your_raster, ST_Transform(ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))

5

Функция ST_value:

http://postgis.net/docs/RT_ST_Value.html

возвращает растровое значение, заданное точкой в ​​x, y или lat, lon.


это работает, но на этой странице примеры вынуждают вас ввести свой запрос в EPSG: 3035, и я хочу сделать запрос в точках
широты

4

Пока 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))
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.