Tạo bảng PostGIS không gian là kết quả của truy vấn PostGIS


8

Khi tôi muốn lưu trữ kết quả của truy vấn không gian dưới dạng bảng PostGIS khác, tôi phải làm gì? Tôi quan tâm đến việc xác định tất cả các tòa nhà dân cư nằm trong một tập hợp các bưu kiện:

CREATE TABLE residentialBuildings AS
SELECT buildings.the_geom
FROM parcels as p
JOIN buildings as b
ON ST_Contains(p.the_geom, b.the_geom)
WHERE p.residentialarea > 0;

Điều này có vẻ hiệu quả, nhưng nó không trả về kết quả không gian - thay vào đó bảng có biểu diễn nhị phân của hình học. Tôi không chắc chắn những gì tôi nên làm để tạo ra một bảng kết quả. Trước tiên tôi có cần tạo một bảng không, sau đó chuyển đổi kết quả thành hình học?

(Tôi đã đọc tài liệu này, nhưng tôi cảm thấy như mình đang thiếu các cụm từ tìm kiếm đúng vì tôi cảm thấy đây phải là một điều khá rõ ràng để làm).

Tôi nhận ra rằng có nhiều lệnh để tạo hình

ST_GeogFromText 
ST_GeographyFromText 
ST_GeogFromWKB 
ST_GeomCollFromText 
ST_GeomFromEWKB 
ST_GeomFromEWKT 
ST_GeometryFromText 
ST_GeomFromGML 
ST_GeomFromKML 
ST_GMLToSQL 
ST_GeomFromText 
ST_GeomFromWKB 

nhưng tôi không biết nên chọn tùy chọn nào, hoặc nếu đây là phương pháp đúng.

Câu trả lời:


8

Bạn có thể tự đăng ký Cột Hình học trong hình học_column . Cái gì đó như:

INSERT INTO geometry_columns (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type")
VALUES ('', 'public', 'residentialBuildings', 'the_geom', 2, <yourSRID>, 'MULTIPOLYGON')

1
Tôi đang nhận được thông báo lỗi cho biết ERROR: column "polygon" does not exist SQL state: 42703Bạn có biết điều gì có thể gây ra lỗi không? Bảng không tồn tại và tôi cũng đã thử sử dụng POLYGON.
djq

Xin lỗi, quên thêm ''.
underdark

5

Kết quả là một bảng không gian chỉ có một cột ở dạng hình học. Các đại diện nhị phân là chính xác. Nếu bạn đang sử dụng cái này bên ngoài PostGIS (nói ArcGIS hoặc QGIS hoặc bất cứ thứ gì), có lẽ bạn đang tìm kiếm hai điều:


Để làm rõ (tôi sẽ cập nhật câu hỏi) Tôi muốn tạo một bảng trong PostGIS với kết quả.
djq

yeah, vì vậy cách tiếp cận và kết quả của bạn là OK. Giống như trong Cơ sở dữ liệu GeoDat, các hàng trong cột hình học được tạo từ các hình học được tuần tự hóa. Nếu bạn muốn xem nội dung, chỉ cần sử dụng ST_AsText trên cột hình học, giống như bạn sẽ làm với bất kỳ bảng postgis nào khác.
Ragi Yaser Burhum
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.