Đây là một tiếp theo từ câu hỏi trước . Bạn sẽ thấy tôi là người dùng PostGIS mới.
Tôi đã xem xét tính hợp lệ của cấu trúc liên kết trong dữ liệu của tôi và tìm thấy khoảng 1700 vấn đề cấu trúc liên kết trong bộ dữ liệu địa lý (đa giác). Đây là tất cả "Ring Self_intersection".
Sử dụng một số thông tin hữu ích trong bài trình bày này của Paul Ramsay (trang 20), tôi đã cố gắng đệm dữ liệu của mình cho phù hợp:
CẬP NHẬT giản đồ.data SET the_geom = buffer (the_geom, 0.0) WHERE isvalid (the_geom) = false và isvalid (buffer (the_geom, 0.0)) = true;
Nhưng tôi nhận được phản hồi:
THÔNG BÁO: Vòng tự giao nhau tại hoặc gần điểm (đã chỉnh sửa) LRI: hàng mới cho mối quan hệ "sgm_buffer" vi phạm ràng buộc kiểm tra "execce_geotype_the_geom"
********** Lỗi **********
LRI: hàng mới cho mối quan hệ "sgm_buffer" vi phạm ràng buộc kiểm tra "execce_geotype_the_geom" Trạng thái SQL: 23514
Tôi cũng đã thử chỉ:
CẬP NHẬT csgn.sgm_buffer SET the_geom = buffer (the_geom, 0.0)
và lấy:
LRI: hàng mới cho mối quan hệ "sgm_buffer" vi phạm ràng buộc kiểm tra "execce_geotype_the_geom"
********** Lỗi **********
LRI: hàng mới cho mối quan hệ "sgm_buffer" vi phạm ràng buộc kiểm tra "execce_geotype_the_geom" Trạng thái SQL: 23514
Vì vậy, tôi có cho rằng kỹ thuật đệm này sẽ không hoạt động trên các vấn đề của tôi? Hay tôi đang làm gì đó sai?
Sau đó, ông Ramsay tiếp tục trong cùng một tài liệu để đề xuất một kỹ thuật bổ sung để đối phó với "hình số 8" đa giác. Tôi hoàn toàn không hiểu làm thế nào để viết mã này đầy đủ bằng mã (hoặc nó đang làm gì và liệu nó có giúp tôi không):
CHỌN ST_BuildArea (ST_Union ('LINESTRING EMPTY', ST_Ex thầmRing ('POLYGON ((...))'
Vậy .... có ai giúp được không? Điều này đang chứng tỏ một cơn ác mộng thực sự với thời gian eo hẹp và kỹ năng hạn chế của tôi trong PostGIS.
ST_Multi()
buộc tất cả các đa giác là MULTIPOLYGON
s (đây là một giả định)