Tôi đang cố gắng thực hiện phân tích kiểu chữ cơ bản bằng PostGIS. Mục tiêu của tôi là tìm bất kỳ đa giác nào chạm vào các đa giác khác. Để làm điều này, tôi nghĩ rằng ST_GetFaceEdges
sẽ làm việc ( tham khảo ). Tôi muốn kiểm tra mọi đa giác trong cơ sở dữ liệu của mình và liệt kê tất cả các đa giác khác chạm vào nó. Trong hình ảnh bên dưới, tôi cho rằng kết quả sẽ nói rằng hai trong số các đa giác (là các tòa nhà) chạm vào một tòa nhà và kết quả của 4 hình kia sẽ nói rằng chúng chạm 0 đa giác.
Tuy nhiên, tôi gặp một số khó khăn để hiểu phải làm gì. Khi tôi cố gắng sao chép ví dụ, có một vài phần trong đó tôi không hiểu.
-- Returns the sequence, edge id
-- , and geometry of the edges that bound face 1
-- If you just need geom and seq, can use ST_GetFaceGeometry
SELECT t.seq, t.edge, geom
FROM topology.ST_GetFaceEdges('tt',1) As t(seq,edge)
INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;
Tôi không chắc topology
là tên của một bảng, cột hay một phần của hàm. Tôi cho rằng đó là cái bàn, nhưng tôi không chắc.
-- try out on sample of data
-- Table is called 'TestArea', column used is 'fid_1'
SELECT t.seq, t.edge, geom
FROM TestArea.ST_GetFaceEdges('fid_1', 1) As t(seq,edge)
INNER JOIN tt.edge AS e ON abs(t.edge) = e.edge_id;
Tôi cũng không chắc chức năng của phép nối bên trong là gì - cái này có nối kết quả với đối tượng ban đầu không?
AddTopoGeometryColumn
bảng vào trước khi chạy truy vấn? Dựa trên kết quả từ ST_Touches
các giá trị tôi đã kiểm tra tất cả có ý nghĩa nhưng có lẽ đó là tình cờ.
AddTopoGeometryColumn
, mà dữ liệu của bạn cũng cần được số hóa theo cách thống nhất về mặt tôpô. Ví dụ, theo truyền thống, bạn sẽ số hóa hai ngôi nhà liền kề thành hai đa giác và sử dụng "snap to vertex" trong hệ thống GIS của bạn để đảm bảo các bức tường được chia sẻ, nhưng nó sẽ được lưu trữ dưới dạng hai đường trùng khớp với hai điểm trùng khớp ở mỗi đầu. Nhưng số hóa tôpô chúng có nghĩa là bức tường được chia sẻ thực sự chỉ là một dòng và hai nút được chia sẻ bởi mỗi đa giác. ST_Touches
chỉ cần kiểm tra không gian cho sự gần gũi, không phải là một cấu trúc liên kết.
CreateTopology
và v.v. ( bit.ly/oLk8QY ) Nhưng cách các tòa nhà của bạn được số hóa giống như chúng là khác biệt về mặt cấu trúc mặc dù sự gần gũi về thị giác của các cạnh của chúng. Chỉ cần một cái gì đó cho người hỏi trong tương lai nhận thức được.