POSTGIS có được chiều dài tối đa của đa giác và chiều rộng trung bình


13

Tôi có trong postgis một loại bảng đa giác.

Tôi cần tính toán tự động độ dài tối đa của đa giác:

nhập mô tả hình ảnh ở đây

Và cái thứ hai là chiều rộng trung bình:

nhập mô tả hình ảnh ở đây

Bây giờ tôi nghi ngờ sự cứng nhắc nếu điều này là có thể vì mặc dù tất cả các đa giác của tôi sẽ gần như hình chữ nhật trong các trường hợp khác, nó có thể thực sự mơ hồ và gần như không thể phân biệt giữa chiều rộng và chiều cao.

Hãy xem liệu ai đó có thể làm sáng tỏ điều này.

Trân trọng,


Đó là một câu hỏi thú vị, và nó chắc chắn là có thể. Ít nhất bạn chỉ cần vẽ một đường thẳng từ mọi đỉnh đến mọi thời gian khác, thời gian chạy đa thức cho chắc chắn, nhưng là một giải pháp. Để biết các giải pháp thanh lịch hơn, hãy xem gis.stackexchange.com/questions/32552/iêu
John Powell

Hình minh họa "chiều dài tối đa" của bạn có vẻ rõ ràng, nhưng ví dụ "chiều rộng avg" của bạn không vuông góc với chiều dài đã nói. Có nên không? Sau đó, bạn đề cập đến "chiều cao". Tất cả hơi khó hiểu!
Martin F

Tôi nghĩ rằng cần nhiều chi tiết hơn về khái niệm chiều rộng trung bình này, đặc biệt là với các ví dụ về hình học thực tế bạn đang sử dụng
raphael

Câu trả lời:


13

Đối với phần đầu tiên của câu hỏi của bạn: Điều gì về ST_LongestLine sử dụng cùng một hình học hai lần làm đầu vào?

SELECT 
  ST_Length(ST_LongestLine(
   (SELECT geom FROM mylayer WHERE gid=1),
   (SELECT geom FROM mylayer WHERE gid=1))
);

Đối với phần thứ hai của câu hỏi của bạn:

Liên quan đến việc tính toán độ rộng trung bình của đa giác, một số câu trả lời thú vị có thể được tìm thấy ở đây: Làm thế nào tôi có thể tính chiều rộng trung bình của đa giác?


Thật thông minh, không biết chức năng đó.
John Powell

Điều đó siêu hữu ích. Có cách nào tạo ra một polyline từ dòng dài nhất kết quả này không?
dùng1655130

7

Đối với phần một, sử dụng ST_MaxDistance

Trả về khoảng cách tối đa 2 chiều giữa hai dòng trong các đơn vị được chiếu. Nếu g1 và g2 là cùng một hình học, hàm sẽ trả về khoảng cách giữa hai đỉnh cách xa nhau nhất trong hình học đó.

Thí dụ:

SELECT
gid,
ST_MaxDistance(geom, geom) AS "Max Length"
FROM layer
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.