QGIS में स्थान (निकटतम दूरी) द्वारा बिंदु और रेखा परत की विशेषताओं को मिलाएं


13

मेरी समस्या निम्नलिखित है: मेरे पास एक लाइन shp (लक्ष्य परत) और एक बिंदु shp (लेयर ज्वाइन) है। दूसरा एक (पॉइंट लेयर) एक विशेषता रखता है जिसे मैं लाइन के निकटतम दूरी के आधार पर एक लाइन लेयर के साथ जोड़ना चाहता हूं। अंक और रेखाएं प्रतिच्छेदन नहीं हैं

मैं आर्कजीआईएस और स्थानिक जुड़ाव (मैच विकल्प: निकटतम) के साथ ऐसा कर सकता हूं, लेकिन मुझे नहीं पता कि मैं इसे क्यूजीआईएस में कैसे हासिल कर सकता हूं।


3
स्थान से जुड़ने के लिए एक उपकरण है, लेकिन इसमें "निकटतम" विकल्प नहीं है। मुझे नहीं पता कि कोई वर्कअराउंड है या नहीं। सामान्य तौर पर कृपया अपने लापता, पसंदीदा विकल्पों / उपकरणों के विकास का समर्थन करने के लिए मूल्यांकन करें, यह इस तरह से भी है कि उपयोगकर्ता सॉफ़्टवेयर के इस टुकड़े को बढ़ने में मदद कर सकते हैं।
गियोवन्नी मंगी १६'११

जवाबों:


8

मुझे नहीं लगता कि इसके लिए कोई 'कोर' QGIS फ़ंक्शन है। हालाँकि, MMQGIS प्लगइन स्थापित करें, और 'हब डिस्टेंस' टूल का उपयोग करें। अपने पॉइंट्स को "सोर्स पॉइंट्स" लेयर के रूप में, और अपनी लाइन्स को "डेस्टिनेशन हब्स लेयर" के रूप में और "लाइन टू हब" को "आउटपुट शेप टाइप" सेट करें। यह आपको लाइनों की एक लंबाई (लंबाई के साथ) देगा जो निकटतम सुविधाओं में शामिल हो जाएगा। आसानी से, यह विशेषता तालिका में निकटतम सुविधा की आईडी भी जोड़ता है।

संपादित करें / टिप्पणी करें: यह दृष्टिकोण अच्छी तरह से काम करता है अगर लाइनों की तुलना में कम अंक हैं, या एक से एक लाइन-टू-पॉइंट बिंदु स्थिति है। लाइनों से अधिक अंक होने से चीजें जटिल हो जाती हैं। 'हब डिस्टेंस' टूल लाइन फीचर की आईडी को पॉइंट हब के रूप में 'हबनाम' के साथ बिंदु और लाइन के बीच की दूरी को 'हबडिस्ट' के रूप में जोड़ता है। यदि लाइनों की तुलना में अधिक अंक हैं, तो अंकों के सबसेट के भीतर निर्धारित करने के लिए अतिरिक्त काम करने की आवश्यकता होती है (प्रत्येक लाइन हब से जुड़े कई रिकॉर्ड) जो उनमें से प्रत्येक पंक्ति के सबसे करीब है, और / या जो वांछित सेट के साथ एक है लाइन में शामिल होने के लिए विशेषताएँ।


इसे "लाइनों" v "बिंदुओं के मामूली संपादन के अधीन, उत्तर के रूप में चिह्नित किया जाना चाहिए
विली

1
"हब दूरी" सही उपकरण नहीं है यदि "लाइन के निकटतम दूरी" कसौटी है। Mmqgis कोड से पता चलता है कि हब की दूरी "हब" ज्यामिति के एक सन्निकटन का उपयोग करती है। दूरी की गणना (mmqgis_distance) मापदंडों के रूप में दो अंक लेती है। यहाँ वह कोड है जो mmqgis_library.py में हब ज्यामिति का सन्निकटन करता है: "feature.ometry ()। बाउंडिंगबॉक्स ()। सेंटर ()"। इसका मतलब यह है कि ज्यामिति के बाउंडिंग बॉक्स का केंद्र वास्तविक ज्यामिति के बजाय उपयोग किया जाता है। इसलिए यदि "निकटतम दूरी रेखा पर" कसौटी हो, तो GRASS v.distance या NNJoin प्लगइन अधिक उपयुक्त हैं।
होवार्ड ट्वाइट

5

इसके लिए GRASS v.distance फ़ंक्शन का उपयोग किया जा सकता है। QGIS में आप GRASS प्लगइन ( प्रसंस्करण संस्करण वर्तमान में काम नहीं कर रहा है) के माध्यम से फ़ंक्शन तक पहुंच सकते हैं । NNJoin QGIS प्लगइन एक सरल विकल्प हो सकता है।


3

NNJoin Plugin ने मुझे कभी निराश नहीं होने दिया और बड़े डेटासेट के साथ काम किया ।

प्लगइन्स> इंस्टॉल करें: NJJoin> NNJoin> इनपुट लेयर चुनें और लेयर ज्वाइन करें> फिर Join पर क्लिक करें।

विशेषता तालिका के साथ नई आउटपुट परत से परिणाम की जांच करें। चेतावनी: सुनिश्चित करें कि आपकी दोनों परतें एक ही स्थानिक प्रक्षेपण का उपयोग कर रही हैं अन्यथा आपके परिणाम रिक्त होंगे।


2

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.