PostGIS 2.0データベースにtiffラスターがあります。指定した緯度/経度のポイントでラスターの値を取得したい。
私が持っています:
- postgresql-9.1
- ラスターをサポートするpostgis-2.0-svn
- PostGISにインポートされたラスターのSRIDは3035
PostGIS 2.0データベースにtiffラスターがあります。指定した緯度/経度のポイントでラスターの値を取得したい。
私が持っています:
回答:
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))