पॉलीगोन के सेंट्रोइड का निर्धारण कैसे करें?


34

मेरे पास एक बहुभुज वेक्टर है और मैं एक पाठ दस्तावेज़ में प्रविष्टि के लिए इस बहुभुज के केंद्रक को जल्दी से प्राप्त करना चाहता हूं। मैं क्यूजीआईएस के साथ काम कर रहा हूं। मैंने अन्य प्रश्नों के माध्यम से खोज की और हालांकि कुछ कुछ करीब हैं, वे मेरे प्रश्न का उत्तर नहीं देते हैं।

आदर्श रूप से, केन्द्रक निर्देशांक बहुभुज की विशेषता तालिका में होगा और मैं निर्देशांक को कॉपी और पेस्ट कर सकता हूं।

मैं एक अलग बिंदु सदिश फ़ाइल बनाना नहीं चाहता, जो सेंट्रोइड का प्रतिनिधित्व करती है और फिर इन निर्देशांक को ढूंढकर कॉपी और पेस्ट करें।


आपका टेक्स्ट दस्तावेज़ क्या प्रारूप है?
नाथन डब्ल्यू

यह एक एमएस वर्ड डॉक्यूमेंट है लेकिन वास्तव में यह कुछ भी हो सकता है।
डेविड

जवाबों:


34

एक सेंटीरोइड एक बिंदु परत प्रति परिभाषा है और बहुभुज नहीं है। इसके लिए आपको एक नई परत बनाने की जरूरत है, जो QGIS 1.8 और उच्चतर संस्करणों में पाई के रूप में आसान है।

  • अपने बहुभुज में लोड करें
  • मेनू पर जाएं -> वेक्टर -> ज्यामिति उपकरण -> बहुभुज सेंट्रोइड और एक केन्द्रक बिंदु परत बनाएं
  • -> वेक्टर मेनू -> ज्योमेट्री टूल्स -> एक्सपोर्ट / एडोमेट्री कॉलम पर क्लिक करके विशेषता तालिका में बनाए गए सेंट्रोइड के निर्देशांक निर्यात करें।

बाद में आप बहुभुजों के केंद्रक स्तंभों को जोड़ने के लिए एक स्थानिक जुड़ाव बना सकते हैं और बिंदु परत को फिर से हटा सकते हैं।


उत्तर के लिए धन्यवाद मैं मदद की सराहना करता हूं। फिर भी, यह जानने के लिए बहुत काम सरल है कि केन्द्रक के निर्देशांक क्या हैं। बहुत बुरा वहाँ QGIS में एक सरल तरीका नहीं है।
डेविड

यदि आप अभी भी यह आसान चाहते हैं, तो आप नीचे उल्लिखित PostGIS और ST_Centroid फ़ंक्शन पर एक नज़र डाल सकते हैं। इस तरह आपको अस्थायी फ़ाइलें बनाने की आवश्यकता नहीं है। वैकल्पिक रूप से आप अपने आप को QGIS के लिए एक अजगर स्क्रिप्ट लिख सकते हैं या SEXTANTE मॉडलर का उपयोग कर सकते हैं।
कर्लव

10

वास्तव में, एक नई आकृति बनाना आपके सबसे आसान विकल्पों में से एक है। हालाँकि, आपको निर्देशांक को कॉपी और पेस्ट करने की आवश्यकता नहीं है। यह करो:

  • Polygon Centroids टूल का उपयोग करके अपनी सेंट्रोइड फ़ाइल बनाएं।
  • सेंट्रोइड्स विशेषता तालिका खोलें और इसे संपादन योग्य बनाएं (तल पर पेंसिल आइकन)।
  • फ़ील्ड कैलकुलेटर (नीचे की ओर स्थित कैलकुलेटर आइकन) खोलें और नया फ़ील्ड बनाएं विकल्प चुनें और इसे कुछ सार्थक (उदाहरण के लिए ईस्टिंग) कहें।
  • फ़ंक्शंस लिस्ट में से ज्योमेट्री मेनू का विस्तार करें और $ x चुनें फिर $ y के लिए एक नए कॉलम के साथ दोहराएं (इसे नॉर्थिंग कहते हैं)।
  • अपने संपादन सहेजें और अब आपके पास सभी निर्देशांक हैं जो मूल बहुभुज आईडी और विशेषताओं के साथ विशेषता तालिका के भाग के रूप में हैं यदि आपने केन्द्रक उपकरण का उपयोग किया है।

वैकल्पिक रूप से आपको अपने डेटा को PostGIS में आयात करना होगा और उसके बाद बहुभुजों पर पुनरावृति करना होगा, ST_Centroid फ़ंक्शन का उपयोग करके परिणाम को एक नए क्षेत्र में संग्रहीत करना होगा। इसमें शामिल कार्य लगभग एक ही है, लेकिन दूसरा विकल्प का मतलब है कि आपके पास एक अलग सेंट्रोइड बिंदु फ़ाइल नहीं है।


जवाब के लिए धन्यवाद। तुम्हारी सहायता सराहनीय है। ऐसा लगता है कि कर्लव का जवाब मेरे लिए थोड़ा आसान है। फिर भी ये दोनों जवाब बहुत अधिक काम हैं जो मुझे चाहिए थे। अंत में आप विभिन्न आकार-प्रकारों के साथ समाप्त हो जाते हैं जिन्हें आपको नाम, हटाना, संपादित करना आदि है
David

8

माइक के जवाब के लिए एक अधिक मजबूत आत्मा: long = toreal(regexp_substr(geom_to_wkt(centroid($geometry)), '(-?\\d+\\.?\\d*) -?\\d+\\.?\\d*')) lat = toreal(regexp_substr(geom_to_wkt(centroid($geometry)), '-?\\d+\\.?\\d* (-?\\d+\\.?\\d*)'))



6

2.2 फील्ड कैलकुलेटर में इसका उपयोग कैसे करें?

लंबा क्षेत्र = पदार्थ (geomToWKT (सेंटीमीटर ($ ज्यामिति)), 7, 12)

लाट क्षेत्र = पदार्थ (geomToWKT (सेंटीमीटर ($ ज्यामिति)), स्ट्रैप्स (geomToWKT (सेंटीमीटर ($ ज्यामिति)), '') +2, 12)

यह xmin विकल्प xmin (सेंटीमीटर ($ ज्यामिति)) के साथ 2.6 में संबोधित किया गया है


5

मैं अभी लगभग 5 साल देर से (!) इस पोस्ट के पार आया, लेकिन यहाँ मैंने 2.184 संस्करण पर बहुभुज केन्द्रक की गणना करने के लिए क्या किया है:

  1. बहुभुज परत को संपादित करना शुरू करें
  2. एक नया टेक्स्ट फ़ील्ड बनाएं, इसे सेंट्रोक्सीक्स कहें
  3. क्षेत्र कैलकुलेटर का उपयोग करते हुए, केन्द्रक = x ($ ज्यामिति) की गणना करें || ',' || y ($ ज्यामिति)
  4. परिणाम कुछ इस तरह दिखता है: 397640.915545362, 2126924.53637653
  5. अपने संपादन सहेजें।
  6. आपकी बहुभुज परत में अब x, y सेंट्रोइड मान के साथ एक फ़ील्ड है

सरल और शानदार
कज़ुहितो

3

बहुभुज की तालिका के साथ केन्द्रक बिंदु तालिका को संबद्ध करें और फिर बहुभुज नाम और आकार के साथ निर्देशांक डालें। बहुभुज अपने आप में एक लंबे समय तक नहीं है


आपके उत्तर के लिए धन्यवाद। हाँ, मुझे एहसास है कि बहुभुजों में एक लंबा नहीं होता है और अपने आप में यह बस कुछ ऐसा होता है जिसकी गणना की जा सकती है। दुर्भाग्य से, QGIS में इससे आसान नहीं है। उत्तर के लिए फिर से सभी को धन्यवाद। और इतनी जल्दी भी। धन्यवाद!
डेविड

2

इस पोस्ट पर आया था और अद्यतन का सुझाव दिया गया था,

नोट: यह आपके प्रक्षेपण निर्देशांक (जो मीटर हो सकता है) में अक्षांश और देशांतर की गणना करेगा। यदि आप दशमलव डिग्रियों में निर्देशांक चाहते हैं (मैं मान लेता हूं कि आप या वे ज्यादातर अनजाने हैं) पहले इस CRS में परत को बचाएं: EPSG: 4326, WGS 84।

  1. फ़ील्ड कैलकुलेटर खोलें
  2. नया क्षेत्र बनाएँ
  3. नाम दर्ज करें (या तो अक्षांश या देशांतर)
  4. आउटपुट फ़ील्ड प्रकार के रूप में दशमलव का चयन करें
  5. अक्षांश के लिए यह अभिव्यक्ति दर्ज करें: y ($ ज्यामिति) और देशांतर के लिए यह अभिव्यक्ति: x ($ ज्यामिति)
  6. ओके दबाओ

-2

lon = ToReal (regexp_substr (geomToWKT (सेंटीमीटर ($ ज्यामिति))), '([\ s]') lat = ToReal (regexp_substr (geomToWKT (सेंटीमीटर)), '\ s []]))।


1
इसका कोई जवाब नहीं है। कृपया दौरे को देखने के लिए एक बेहतर समझ पाने के लिए कि कैसे एक प्रश्न का उत्तर दिया जाए ...
नाइटवाच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.