PostGIS-Rasterwert eines Lat / Lon-Punkts


13

Ich habe ein Tiff-Raster in meiner PostGIS 2.0-Datenbank. Ich möchte den Wert des Rasters an einem bestimmten Lat / Lon-Punkt erhalten.

Ich habe:

  • postgresql-9.1
  • postgis-2.0-svn mit raster unterstützung
  • Ein in PostGIS importiertes Raster hat die SRID 3035

Antworten:


11

Sie können den Lat / Lon-Punkt mithilfe von ST_Transform () im laufenden Betrieb in Raster-CRS umwandeln. Zusammen sieht die Abfrage so aus:

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


4

Während ST_Value funktioniert, müssen Sie sich auch räumlich mit dem Punkt verbinden:

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

Oder mit einem Tisch:

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))
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.