Valore raster PostGIS di un punto lat / lon


13

Ho un tiff raster nel mio database PostGIS 2.0. Voglio ottenere il valore del raster in un determinato punto lat / lon.

Io ho:

  • postgresql-9.1
  • postgis-2.0-svn con supporto raster
  • un raster importato in PostGIS il suo SRID è 3035

Risposte:


11

È possibile trasformare il punto lat / lon in CRS raster al volo usando ST_Transform (). Combinata, la query è simile alla seguente:

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


4

Mentre ST_Value funziona, devi comunque unirti spazialmente anche al punto:

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

O con un tavolo:

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))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.