मेरे पास एक नक्शा है जिसे मैंने डिजिटाइज किया है और वेक्टर परत (केवल नदियों) में परिवर्तित किया है। समस्या यह है कि वेक्टरिसेशन ने प्रत्येक नदी के लिए बड़ी संख्या में सेगमेंट तैयार किए हैं, जो अलग-अलग विशेषताओं के रूप में दिखाई देते हैं (प्रत्येक में कई सीधी रेखा खंड हो सकते हैं, लेकिन वे पूरी नदियों को कवर नहीं करते हैं)। जो मैं खोज रहा हूं वह एक ऐसे क्षेत्र में विलय करने के लिए एक उपकरण है (एक पॉलीलाइन, मुझे लगता है) सभी सेगमेंट जिनकी चरम सीमाएं दी गई हैं। मैं क्यूजीआईएस और ग्रेस प्लगइन का उपयोग कर रहा हूं। मैंने v.clean.snap, v.build.polylines को आजमाया है, लेकिन अभी तक लाइनों को मर्ज करने का प्रबंधन नहीं किया है। किसी भी मदद को बहुत सराहा जाएगा!एक पंक्ति में एकाधिक लाइन सेगमेंट में शामिल हों - जीआईएस
उत्तर
मैं मैन्युअल रूप से लाइन भागों का चयन करने और फिर "विलय" टूल (उन्नत संपादन टूलबार में स्थित) का उपयोग करने का सुझाव दूंगा।
तुम भी http://gis.stackexchange.com
धन्यवाद, लेकिन मेरे पास कुछ सौ ऐसी स्थितियां हैं, और मुझे 133 मानचित्रों के लिए दोहराना होगा ...... मुझे लगता है कि मुझे इसके लिए एक प्लगइन प्राप्त करने की ज़रूरत है। कोई सुझाव जहां मैं दिखना शुरू कर सकता था? – LittleFish
आप "भंग" उपकरण (एआरसी TOOLBOX) का उपयोग कर सकते पर इस तरह के सवालों से अधिक की सलाह लेना चाहें। यह उन्हें सभी को एक सेगमेंट में विलय कर देगा।
फिर आप नोड्स (केवल नियमित) निर्यात कर सकते हैं, यह चौराहे के बिंदु हैं।
फिर आप विघटित लाइन सुविधा को नोड्स के साथ विभाजित कर सकते हैं। यह आपको कम से कम अंतरंग बिंदुओं पर एक वेक्टर फीचर स्प्लिट प्रदान करेगा।
कम से कम यह एक कदम आगे है।
आप इसे अपनी प्रोग्रामिंग भाषा में जीईओएस लाइब्रेरी का उपयोग करके और कमांडलाइन भी कर सकते हैं। मेरे मामले में, मैं आर में यह कर रहा था, rgeos
लाइब्रेरी का उपयोग:
require(rgdal)
require(rgeos)
lines <- readOGR("f:/dir", "itineraris")
# grouping line features by lines$ITINERARI
lines2 <- gLineMerge(lines, byid = lines$ITINERARI, id = lines$ITINERARI)
writeOGR(lines2, "f:/dir", "itineraris_merged", driver="ESRI Shapefile")
सावधान: documentationमें टिप्पणी से "विशेष रूप से यह अंत अंक अन्तर्विभाजक साथ रेखा खंड मिलती है" ऐसा लगता है कि लाइन सुविधाओं लगातार होना चाहिए - हालांकि यह स्पष्ट नहीं है कि यह आईडी द्वारा विलय करते समय भी लागू होता है या नहीं।
किसी और को इस सवाल पर ठोकर के लिए:
आप Roadgraph प्लगइन (शोर्टेस्ट पाथ) या PointsToRoute स्क्रिप्ट का उपयोग कर सकते हैं। किसी भी अंत में बिंदु चुनें (या पॉइंट्स 2 रूट के मामले में एकाधिक पथों से निर्दिष्ट करने के लिए अतिरिक्त अंक जोड़ें) और उसके बाद अपनी परत पर निर्यात करें।
जहां तक 133 मानचित्र चलते हैं .. मैंने पॉइंट्स टॉर रूट स्क्रिप्ट को समान भारी कर्तव्य की स्थिति में संशोधित करने के लिए स्वचालित रूप से लाइनों की एक परत के माध्यम से कदम उठाने और अपने अंत बिंदुओं के बीच मार्ग खोजने के लिए संशोधित किया है। मैं इसे साफ़ कर दूंगा और देख सकता हूं कि मैं इसे जल्द ही जिथब पर प्रकाशित कर सकता हूं या नहीं।
PointsToRoute: https://github.com/anitagraser/QGIS-Processing-tools/blob/master/1.1/scripts/points_to_route.py
ShortestPath (Roadgraph): यह QGIS प्लगइन्स प्रबंधक से सक्षम है। ध्यान रखें कि क्यूजीआईएस के नवीनतम संस्करणों में यह वेक्टर->रोडग्राफ -> प्लगइन के बावजूद सेटिंग मेनू को "सबसे छोटा पथ" के रूप में संदर्भित करने के बावजूद कॉन्फ़िगर किया गया है।
एक बहुत देर से जवाब यह है कि अन्य लोगों के लिए उपयोगी हो सकता है:
मैं एक ही मुद्दे का सामना करना पड़ा है और मैं इसे हल करने के लिए एक QGIS प्लगइन का विकास किया। यह स्वचालित रूप से कई कनेक्टेड लाइनों को विलय करता है (यानी।लाइनें जो एंडपॉइंट साझा करती हैं) लंबी लाइनों के एक छोटे से सेट में। आउटपुट परत प्रकार लाइन है, पॉलीलाइन नहीं। विलय इन दो मानदंडों में से एक पर आधारित हो सकता है:
- लंबाई: एक सेगमेंट अपने सबसे लंबे पड़ोसी के लिए विलय हो गया है।
- संरेखण: एक सेगमेंट अपने सबसे अच्छे गठबंधन पड़ोसी के लिए विलय कर दिया गया है। मुझे लगता है कि यह मानदंड नदी नेटवर्क के लिए सबसे उपयुक्त है।
इस प्लग कहा जाता है MergeLines (full documentation here), आप इसे सार्वजनिक QGIS रेपो में पा सकते हैं। कार्य अभी भी प्रगति पर है, नई कार्यक्षमताओं का सुझाव देने में संकोच नहीं करें।
क्या आपकी प्रत्येक नदियों में एक आईडी है जो आम है? – Simbamangu
पुन: वापस संपादित किए गए संपादन क्यू: "विलय" और "ग्रौब-बाय" प्रश्न शीर्षक पर कुछ मामूली और स्पर्शिक संपादन प्रतीत होते हैं जब मूल पर्याप्त और पर्याप्त था। –