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 cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.