POSTGIS बहुभुज की अधिकतम लंबाई और औसत चौड़ाई प्राप्त करते हैं


13

मेरे पास एक बहुभुज प्रकार की मेज है।

मुझे बहुभुज की अधिकतम लंबाई स्वचालित रूप से गणना करने की आवश्यकता है:

यहाँ छवि विवरण दर्ज करें

और दूसरा एक औसत चौड़ाई है:

यहाँ छवि विवरण दर्ज करें

मैं अब इस बात पर संदेह कर रहा हूं कि यदि यह संभव है, हालांकि मेरे सभी बहुभुज अन्य मामलों में लगभग आयताकार होंगे, यह वास्तव में अस्पष्ट हो सकता है और यह चौड़ाई और ऊंचाई के बीच अंतर करने के लिए लगभग असंभव है।

देखते हैं कि क्या कोई इस पर प्रकाश डाल सकता है।

सादर,


यह एक दिलचस्प सवाल है, और यह निश्चित रूप से संभव है। बहुत कम से कम आप हर शिखर से हर दूसरे तक एक रेखा खींचते हैं, सुनिश्चित करने के लिए बहुपद रनटाइम, लेकिन एक समाधान। अधिक सुरुचिपूर्ण समाधान के लिए, gis.stackexchange.com/questions/32552/…
जॉन पॉवेल

"अधिकतम लंबाई" का आपका चित्रण स्पष्ट लगता है, लेकिन आपका उदाहरण "औसत चौड़ाई" उक्त लंबाई के लिए लंबवत नहीं है। यह नहीं होना चाहिए? फिर आप "ऊंचाई" का उल्लेख करें। सभी थोड़ा भ्रमित!
मार्टिन एफ

मुझे लगता है कि औसत चौड़ाई की इस अवधारणा पर अधिक विस्तार की आवश्यकता है, विशेष रूप से आपके द्वारा उपयोग किए जाने वाले वास्तविक ज्यामितीय उदाहरणों के साथ
राफेल

जवाबों:


13

आपके प्रश्न के पहले भाग के लिए: इनपुट के रूप में एक ही ज्यामिति का उपयोग करके ST_LongestLine के बारे में क्या ?

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

आपके प्रश्न के दूसरे भाग के लिए:

बहुभुजों की औसत चौड़ाई की गणना के बारे में कुछ दिलचस्प जवाब यहां मिल सकते हैं: मैं बहुभुज की औसत चौड़ाई की गणना कैसे कर सकता हूं?


वह चतुर है, उस कार्य को नहीं जानता था।
जॉन पॉवेल

यह सुपर उपयोगी है। क्या इस परिणामी लंबी लाइन से पॉलीलाइन बनाने का कोई तरीका है?
user1655130

7

भाग एक के लिए ST_MaxDistance का उपयोग करें

अनुमानित इकाइयों में दो linestrings के बीच 2-आयामी अधिकतम दूरी देता है। यदि जी 1 और जी 2 एक ही ज्यामिति है, तो फ़ंक्शन उस ज्यामिति में एक दूसरे से दो दूरों के बीच की दूरी को वापस कर देगा।

उदाहरण:

SELECT
gid,
ST_MaxDistance(geom, geom) AS "Max Length"
FROM layer
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.