Valor raster PostGIS de um ponto lat / lon


13

Eu tenho um raster tiff no meu banco de dados PostGIS 2.0. Quero obter o valor da varredura em um ponto lat / lon especificado.

Eu tenho:

  • postgresql-9.1
  • postgis-2.0-svn com suporte a raster
  • uma varredura importada para o PostGIS, seu SRID é 3035

Respostas:


11

Você pode transformar o ponto lat / lon em CRS de varredura em tempo real usando ST_Transform (). Combinada, a consulta fica assim:

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


4

Enquanto o ST_Value funciona, você ainda precisa se juntar espacialmente ao ponto:

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))

Ou com uma mesa:

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))
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.