Nilai raster PostGIS dari titik lat / lon

13

Saya memiliki taster raster di database PostGIS 2.0 saya. Saya ingin mendapatkan nilai raster pada titik lat / lon yang ditentukan.

Saya sudah:

  • postgresql-9.1
  • postgis-2.0-svn dengan dukungan raster
  • raster yang diimpor ke PostGIS SRID-nya adalah 3035
avances123
sumber

Jawaban:

11

Anda dapat mengubah titik lat / lon menjadi raster CRS dengan cepat menggunakan ST_Transform (). Gabungan, kueri terlihat seperti ini:

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

Fungsi ST_value:

http://postgis.net/docs/RT_ST_Value.html

mengembalikan nilai raster yang diberi titik dalam x, y atau lat, lon.

unicoletti
sumber
ini bekerja, tetapi di halaman ini contoh memaksa Anda untuk memasukkan permintaan Anda di EPSG: 3035, dan saya ingin meminta dalam lat lon points ..
avances123
4

Saat ST_Value berfungsi, Anda masih harus bergabung secara spasial ke titik juga:

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

Atau dengan meja:

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