J'ai un raster tiff dans ma base de données PostGIS 2.0. Je veux obtenir la valeur du raster à un point lat / lon spécifié.
J'ai:
- postgresql-9.1
- postgis-2.0-svn avec prise en charge raster
- un raster importé dans PostGIS son SRID est 3035
J'ai un raster tiff dans ma base de données PostGIS 2.0. Je veux obtenir la valeur du raster à un point lat / lon spécifié.
J'ai:
Réponses:
La fonction ST_value:
http://postgis.net/docs/RT_ST_Value.html
renvoie une valeur raster étant donné un point en x, y ou lat, lon.
Pendant que ST_Value fonctionne, vous devez également vous joindre spatialement au point:
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 avec une table:
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))