POSTGIS รับความยาวสูงสุดของรูปหลายเหลี่ยมและความกว้างเฉลี่ย


13

ฉันมีตารางประเภทโพลีกอนแล้ว

ฉันต้องการคำนวณความยาวสูงสุดของรูปหลายเหลี่ยมโดยอัตโนมัติ:

ป้อนคำอธิบายรูปภาพที่นี่

และอันที่สองคือความกว้างเฉลี่ย:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันสงสัยอย่างถ่องแท้ตอนนี้ถ้าเป็นไปได้ราวกับว่ารูปหลายเหลี่ยมของฉันเกือบทั้งหมดจะเป็นรูปสี่เหลี่ยมผืนผ้าในกรณีอื่น ๆ มันอาจจะคลุมเครือจริงๆและแทบจะเป็นไปไม่ได้เลยที่จะแยกแยะความกว้างและความสูง

เรามาดูกันว่ามีใครสามารถให้ความกระจ่างในเรื่องนี้หรือไม่

ความนับถือ,


เป็นคำถามที่น่าสนใจและเป็นไปได้อย่างแน่นอน อย่างน้อยที่สุดคุณก็วาดเส้นจากจุดสุดยอดทุกจุดไปสู่อีกจุดหนึ่งรันไทม์แบบพหุนามแน่นอน แต่เป็นวิธีแก้ปัญหา สำหรับโซลูชั่นที่หรูหรากว่านี้ลองดูที่gis.stackexchange.com/questions/32552/…
John Powell

ภาพประกอบ "ความยาวสูงสุด" ของคุณดูเหมือนชัดเจน แต่ตัวอย่าง "ความกว้างเฉลี่ย" ของคุณไม่ได้ตั้งฉากกับความยาวดังกล่าว มันไม่ควรจะเป็น? จากนั้นคุณพูดถึง "ความสูง" ทั้งหมดค่อนข้างสับสน!
มาร์ติน F

ฉันคิดว่ารายละเอียดเพิ่มเติมเป็นสิ่งจำเป็นสำหรับแนวคิดความกว้างเฉลี่ยนี้โดยเฉพาะกับตัวอย่างรูปทรงเรขาคณิตที่คุณใช้จริง
ฟาเอล

คำตอบ:


13

สำหรับส่วนแรกของคำถามของคุณ: ST_LongestLineใช้รูปทรงเรขาคณิตเดียวกันสองเท่าของอินพุต

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

สำหรับคำถามที่สองของคุณ:

เกี่ยวกับการคำนวณความกว้างเฉลี่ยของรูปหลายเหลี่ยมสามารถหาคำตอบที่น่าสนใจได้ที่นี่: ฉันจะคำนวณความกว้างเฉลี่ยของรูปหลายเหลี่ยมได้อย่างไร


มันฉลาดไม่รู้จักฟังก์ชันนั้น
John Powell

นั่นมีประโยชน์มาก มีวิธีสร้างโพลีไลน์จากผลลัพธ์ที่ยาวที่สุดนี้หรือไม่?
user1655130

7

สำหรับส่วนที่หนึ่งใช้ST_MaxDistance

ส่งคืนระยะทางสูงสุด 2 มิติระหว่างสองระดับแสงในหน่วยที่ฉาย หาก g1 และ g2 เป็นรูปทรงเรขาคณิตเดียวกันฟังก์ชันจะคืนค่าระยะห่างระหว่างจุดยอดสองจุดที่ห่างกันมากที่สุดในรูปทรงเรขาคณิตนั้น

ตัวอย่าง:

SELECT
gid,
ST_MaxDistance(geom, geom) AS "Max Length"
FROM layer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.