PostGIS ค่าแรสเตอร์ของจุด lat / lon


13

ฉันมีแรสต์ riff ในฐานข้อมูล PostGIS 2.0 ของฉัน ฉันต้องการรับค่าของแรสเตอร์ที่ตำแหน่ง lat / lon ที่ระบุ

ฉันมี:

  • PostgreSQL-9.1
  • postgis-2.0-svn พร้อมการสนับสนุนแบบราสเตอร์
  • raster ที่นำเข้าสู่ PostGIS SRID ของมันคือ 3035

คำตอบ:


11

คุณสามารถเปลี่ยนจุด lat / lon เป็น raster CRS ได้ทันทีโดยใช้ ST_Transform () รวมแล้วแบบสอบถามจะมีลักษณะดังนี้:

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

5

ฟังก์ชัน ST_value:

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

ส่งคืนค่าแรสเตอร์ที่กำหนดจุดใน x, y หรือ lat, lon


มันใช้งานได้ แต่ในหน้านี้ตัวอย่างบังคับให้คุณป้อนคำค้นหาของคุณใน EPSG: 3035 และฉันต้องการค้นหาในจุด lat lon ..
avances123

4

ในขณะที่ 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))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.