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
Ho un tiff raster nel mio database PostGIS 2.0. Voglio ottenere il valore del raster in un determinato punto lat / lon.
Io ho:
Risposte:
La funzione ST_value:
http://postgis.net/docs/RT_ST_Value.html
restituisce un valore raster dato un punto in x, yo lat, lon.
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))