Giá trị raster PostGIS của điểm lat / lon


13

Tôi có một raster riff trong cơ sở dữ liệu PostGIS 2.0 của tôi. Tôi muốn nhận giá trị của raster tại một điểm lat / lon được chỉ định.

Tôi có:

  • postgresql-9.1
  • postgis-2.0-svn với sự hỗ trợ của raster
  • một raster được nhập vào PostGIS SRID của nó là 3035

Câu trả lời:


11

Bạn có thể chuyển đổi điểm lat / lon thành CRS raster khi đang di chuyển bằng ST_Transform (). Kết hợp lại, truy vấn trông như thế này:

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


4

Trong khi ST_Value hoạt động, bạn vẫn cần tham gia theo không gian:

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

Hoặc với một bảng:

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))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.