Bir lat / lon noktasının PostGIS raster değeri


13

PostGIS 2.0 veritabanımda tiff rasterim var. Raster değerini belirtilen bir lat / lon noktasında almak istiyorum.

Sahibim:

  • postgresql-9.1
  • Raster destekli postgis-2.0-svn
  • PostGIS'e ithal edilen bir raster SRID'si 3035

Yanıtlar:


11

ST_Transform () kullanarak lat / lon noktasını anında CRS'ye dönüştürebilirsiniz. Birleştirildiğinde sorgu şöyle görünür:

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


4

ST_Value çalışırken, yine de noktaya mekansal olarak katılmanız gerekir:

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

Veya bir tablo ile:

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))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.