साझा क्षेत्र के औसत लिनेस्ट्रिंग द्वारा दो चौराहे वाले बहुभुज को कैसे विभाजित किया जाए (QGIS / पायथन शेप)


9

मेरे पास दो बहुभुज हैं,

POLYGON ((- 5 -5, -5 5,5 5,5 -5, -5 -5)) POLYGON ((1 1, 1 7, 7 7, 7 1, 1 1))

और उन्हें समान रूप से विभाजित करना चाहते हैं। परिणाम लाल चिह्नित रेखा के साथ एक विभाजन होना चाहिए।

मैं qgis / python को सुडौल रूप से उपयोग कर रहा हूं और python का उपयोग करना चाहता हूं।

लाइनिंग (1 5,5 1)


4
आपकी समस्या कितनी सामान्य है? जाहिर है कि आप इन दो बहुभुजों से अधिक लागू करने के लिए एक समाधान का इरादा रखते हैं। आप किस तरह के पॉलीगनों पर विचार करते हैं? संक्षेप में आप "समान रूप से" क्या मतलब है? विभाजन को एक खंड खंड के साथ होना चाहिए या यह कुछ अरेखीय चाप के साथ हो सकता है? बहुभुज चौराहे में कई घटक होते हैं या बस-कनेक्ट नहीं होने की स्थिति में क्या होना चाहिए? आउटपुट को किस रूप में लेना चाहिए - क्या यह चौराहे, या प्रत्येक बहुभुज को विभाजित करना चाहिए, या शायद केवल विभाजन रेखा हो सकती है?
whuber

1
मैं w / अनियमित बहुभुज काम कर रहा हूँ, और दो बहु-प्रतिच्छेदन बहुभुज नहीं हैं। इस मामले में, उल्लेख के रूप में मूल बहुभुज और वांछित परिणाम POLYGON है ((5 -5, -5 5,1 5,5 1,5 -5, -5 -5)) POLYGON ((1 5, 1 7, 1) 7 7, 7 1,5 1,1 5))
ओएलएस

1
समस्या तब कठिन होती है जब या तो या दोनों बहुभुजों में छल्ले हो सकते हैं (यानी, बस-कनेक्ट नहीं होना चाहिए)।
whuber

जवाबों:


5

मैंने एक बार वोरोनोई पॉलीगॉन के साथ एक दृष्टिकोण का उपयोग किया। मैंने इसे हाथ से किया और मेरे पास केवल एक अस्पष्ट विचार है कि आप इसे कैसे कर सकते हैं, लेकिन यहाँ यह कैसे होता है।

सबसे पहले, आप प्रत्येक ओवरलैपिंग पॉलीगोन के कोने को बाहर निकालते हैं और उनसे वोरोनोई पॉलीगॉन बनाते हैं (वेक्टर> ज्यामिति उपकरण> एक्सट्रैक्ट नोड्स और वेक्टर> ज्यामिति उपकरण> वॉनोनोई)। परिणामस्वरूप आकार के साथ, आप उस रेखा को खींच सकते हैं जो आपके अतिव्यापी क्षेत्र को दो में बिल्कुल विभाजित करती है। (चमकदार हरी रेखा) voronoi

आप ओवरलैपिंग बहुभुज के साथ वोरोनोई परत को क्लिप करते हैं और ओवरलैप को मूल आकृतियों से हटाते हैं और अपने मूल आकार के साथ उलटी वोरोनोई बहुभुज को चिपकाते हैं। चयन करें, मर्ज करें, वॉइलिया!

अब, यह थोड़ा कच्चा लगता है, क्योंकि मेरा वास्तव में सरल आकार है। लेकिन, आप इसे सदिश (वेक्टर> ज्योमेट्री टूल्स> डेंसिटी जियोमेट्रीज) करते हैं और प्रत्येक मौजूदा शीर्ष के बीच 20 नोड्स जोड़ते हैं, आपके पास यह हो सकता है:

densigy_voronoi

जो बहुत बेहतर है। यदि आपके पास संशोधित करने के लिए केवल थोड़ी मात्रा में आकृतियाँ हैं तो आसान है।


यह एक अच्छा विचार है। लेकिन वह चमकीली हरी रेखा कहां से आती है और आप कैसे जानते हैं कि यह क्षेत्र को दो समान भागों में विभाजित करता है?
whuber

ECT SELECT astext (चौराहा (geomFromText ('POLYGON (- (5 -5 -5 -5,5,5,5 -5 -5 -5 -5))), 4326), geomFromText (' POLYGON) की तुलना में यह प्रक्रिया कितनी भिन्न है। (1 1, 1 7, 7 7, 7 1, 1 1)) ', 4326))); astext -------------------------------- POLYGON ((1 5,5 5,5 1,1 1,1 5) ) '?
OLS

यह वोरोनोई बहुभुज की औचित्य से आता है। यह अंतरिक्ष को बिंदुओं के बीच समान रूप से विभाजित करता है। इसलिए आपको अपने बहुभुजों को घनीभूत करना होगा क्योंकि अन्यथा, "मध्य" रेखा सीमाओं का पालन नहीं करती है। के रूप में उज्ज्वल लाइन के लिए, मैं इसे मैन्युअल रूप से यह बताने के लिए आकर्षित करता हूं कि मध्य कहां है ... जैसा कि PostGIS कमांड (मैं PostGIS में एक नौसिखिया है) के लिए, मुझे लगता है कि यह केवल इंटरसेक्टिंग क्षेत्र का चयन करेगा, इसे विभाजित नहीं करेगा।
fgcartographix

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