Khi nào tôi nên sử dụng ST_Buffer?


8

Tôi muốn biết ý nghĩa của việc sử dụng hoạt động st_buffer là gì. Trong hướng dẫn tham khảo PostGIS chỉ có cú pháp và mô tả ngắn về thao tác này.

Bạn có thể đưa ra một số ví dụ để hiểu những lợi thế của hoạt động này?

Câu trả lời:


12

Theo nhận xét của @Underdark, ST_Dwithin là cách được đề xuất để tìm hình học ở khoảng cách xa. Trong nhiều hệ thống gis khác, phương thức đệm là cách duy nhất nhưng việc xây dựng bộ đệm khá tốn kém.

Nhưng có những trường hợp sử dụng khác khi bạn cần đệm. Một lý do có thể là để hình dung một bộ đệm. Nếu bạn muốn hiển thị khu vực gần hơn 100 mét từ đường cao tốc, thì bạn có thể tạo một vùng đệm.

Một trường hợp khác là nếu bạn muốn lấy khu vực cách đường cao tốc 100 mét để được cắt ra từ một bản đồ khác. Giả sử bạn có bản đồ hiển thị mức độ sử dụng diện tích và bạn muốn phân tích diện tích gần hơn 100 mét từ đường cao tốc là rừng và diện tích nông nghiệp là bao nhiêu. Sau đó, bạn tạo một bộ đệm và tạo một giao lộ với bản đồ sử dụng khu vực.

Có một ví dụ ở trang 8-10 trong hướng dẫn này:
http://postgisonline.org/map.php?tutorial=mixed_examples.html


1
Liên kết cuối cùng dường như đã chết.
Aaron

6

OpenGeo cung cấp một bản tóm tắt khá tốt về ST_Buffer. Lưu ý khả năng vượt qua bán kính đệm âm.

Chức năng đệm cũng là một công việc hữu ích xung quanh đôi khi. Bằng cách vượt qua bán kính bộ đệm bằng 0, bạn có thể tạo dấu chân của bộ sưu tập hình học hoặc "sửa chữa" hình dạng đa giác không hợp lệ.


2

ummm để làm một bộ đệm? Đó là tất cả những gì nó thực sự làm.

Tôi thực sự sẽ không gọi đây là một mô tả ngắn http://www.postgis.org/documentation/manual-svn/ST_Buffer.html

Một trường hợp sử dụng là nếu bạn muốn chọn tất cả các đối tượng trong một bảng nằm trong phạm vi 20m của mỗi đối tượng trong một bảng khác.


4
Tôi nghĩ nên sử dụng ST_Distance cho trường hợp sử dụng đó.
underdark

1
Không nên sử dụng ST_DWithin như Nicklas đã đề cập. ST_Distance chậm vì không sử dụng chỉ mục. ST_DWithin sử dụng một chỉ mục và có logic ngắn mạch, do đó, nó không phải tính toán hoàn toàn khoảng cách để tìm ra nếu 2 thứ nằm trong khoảng cách bạn chỉ định. ST_Buffer thực sự chỉ nên được sử dụng để trực quan hóa
LR1234567

Tôi đọc những gì tôi dự kiến ​​sẽ đọc, không phải những gì đã được viết :-)
Nicklas Avén
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.