QGIS का उपयोग करते हुए ODBC कनेक्शन पढ़ना? [बन्द है]


16

मेरे पास एक सहकर्मी है जो एक बड़े एमएस एक्सेस डेटाबेस का प्रबंधन करता है जिसमें विभिन्न स्थानों के लिए एक्सएंडवाई फ़ील्ड शामिल हैं जो वह ट्रैक करता है। हमने पहले CSV को डेटा निर्यात किया है और स्थानों को प्लॉट करने के लिए QGIS डिलीट किए गए टेक्स्ट प्लगइन का उपयोग किया है।

हम अब इस डेटा को सीधे QGIS में ODBC कनेक्शन के माध्यम से MS Access db से कनेक्ट करके (जैसा कि CSV को निर्यात करने का विरोध करते हैं) कर सकते हैं।

  1. क्या QGIS XY स्थानों को प्लॉट करने के लिए ODBC कनेक्शन के डेटा का उपभोग कर सकता है?
  2. क्या यह ओडीबीसी कनेक्शन के लिए "लाइव लिंक्ड" हो सकता है ताकि जब कोई प्रोजेक्ट दोबारा खोला जाए, तो लेयर सभी पुराने और नए जोड़े गए स्थानों को गतिशील रूप से "आकार दें" (जैसा कि शेपफाइल के निर्यात के लिए विरोध किया जाता है, जो समय में एक स्नैपशॉट बना देगा)?
  3. क्या आप सारणीबद्ध ODBC कनेक्शन बना सकते हैं जो QGIS के भीतर स्थानिक तालिकाओं में शामिल हो सकते हैं?

आप यह सब ArcGIS ("Add XY Data" टूल) में कर सकते हैं, इसलिए यह बहुत अच्छा होगा यदि यह क्षमता QGIS में मौजूद है। मैं कहीं भी नहीं मिल सकता है कि इसके अस्तित्व का उल्लेख है।

मैं एक स्थानिक डेटाबेस में जाने की योजना नहीं बना रहा हूं। एक जीआईएस व्यक्ति के रूप में, हाँ, मुझे पता है कि यह एक स्थानिक डेटाबेस में जाने के लिए समझ में आता है, और हाँ मैंने इस तरह के डेटा को प्रबंधित करने के लिए PostGIS का उपयोग किया है। लेकिन अभी ये विकल्प नहीं हैं। उपयोगकर्ता एक जीआईएस व्यक्ति नहीं है और न ही बनना चाहता है, और वह एमएस एक्सेस में अपने डेटाबेस का प्रबंधन करता है और यह नहीं बदलेगा। मैं जीआईएस की दुनिया में उसे मार रहा हूं और चिल्ला रहा हूं और इसे आसान बनाना चाहता हूं। वह सीएसवी के निर्यात के साथ रह सकता है, मैं बस उम्मीद कर रहा था कि एमएस एसीसी के लिए ओडीबीसी के लिए एक बेहतर समाधान का उपयोग करना है और क्यूजीआईएस में एक्सवाई डेटा प्रदर्शित करना है।


फिर मेरी जानकारी के अनुसार, आप QGIS के साथ पूछ सकते हैं। मैं सहमत हूं कि CSV आयात के बराबर ODBC में कुछ उपयोग होगा, लेकिन किसी भी प्रकार के प्रदर्शन के लिए इसे एक गतिशील कनेक्शन के बजाय एक आयात होना होगा - जिस तरह CSV प्लगइन है। जब तक आप इसका समर्थन / विकास नहीं करते हैं, तब तक इसमें कोई बदलाव होने की संभावना नहीं है।
MerseyViking

@ एमवी- मैं आम तौर पर आपसे सहमत हूं और आपकी बातों को देखता हूं। हालांकि, गैर-जीआईएस उपयोगकर्ताओं के लिए जो मुख्य रूप से अपने डेटा की मैपिंग में रुचि रखते हैं और डेटा का विश्लेषण नहीं करते हैं, क्यूजीआईएस का प्रदर्शन एक मुद्दे के रूप में महत्वपूर्ण नहीं होगा। मैं कल्पना करता हूं कि उनके डेटा से एक गतिशील, "हमेशा जीवित" कनेक्शन प्रदर्शन चिंताओं (लगभग गैर-जीआईएस उपयोगकर्ताओं के दृष्टिकोण से फिर से सोच) को निश्चित रूप से पछाड़ देगा।
रयानKalton

जवाबों:


7

कैविएट: मैंने यह कोशिश नहीं की है, इसलिए मैं प्रत्यक्ष अनुभव के साथ किसी को भी झुकाने को तैयार हूं।

आप "वेक्टर लेयर जोड़ें" संवाद में ODBC डेटा स्रोत से कनेक्ट कर सकते हैं, स्रोत प्रकार के रूप में "डेटाबेस" और डेटाबेस प्रकार के रूप में ODBC का चयन करें। QGIS OGR के लिए ODBC ड्राइवर का उपयोग करता है , इसलिए एक ही कैविट लागू होगा - कि क्या आपको GEOMETRY_COLUMNS नामक एक तालिका की आवश्यकता होगी और इसी तरह, इसलिए आपके सहयोगी को संभवतः डेटाबेस को संशोधित करने की आवश्यकता होगी।

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


@ एमवी- यह अच्छी जानकारी है। मुझे नहीं पता था कि आप "वेक्टर लेयर जोड़ें" विकल्प के माध्यम से सारणीबद्ध डेटा जोड़ सकते हैं। हालाँकि, आप सही हैं, क्योंकि यह स्थानिक रूप से सक्षम नहीं है, फिर भी आपको किसी स्थानिक स्वरूप में निर्यात करना होगा। और आप सही हैं, उपयोगकर्ता एक स्थानिक रूप से सक्षम db पर स्विच करने वाला नहीं है क्योंकि वे न तो GIS या डेटाबेस हैं। खतरनाक होने के लिए उनके पास बस पर्याप्त प्रशिक्षण है ...
रयानकैल्टन

7

QGIS 2 में उपलब्ध नए "प्रोसेसिंग" टूल के साथ, यह थोड़ा आसान हो जाता है। जबकि मुझे अभी भी डेटा "लाइव-लिंक" करने का कोई तरीका नहीं मिला है (ताकि यदि आप एमएस एक्सेस टेबल में मान बदलते हैं, तो बिंदु स्वचालित रूप से चलता है), यह विधि बहुत अच्छी तरह से काम करती है।

इस पृष्ठ के टिप्पणियों अनुभाग में (और निश्चित रूप से @underdark ब्लॉग के लिए) "क्रिस्टीना" और "बर्नड" को अपने MS Access डेटाबेस के लिए ODBC कनेक्शन बनाने के लिए जाता है:

ODBC कनेक्शन बनाएँ:

Win7 के लिए, 32 बिट: कंट्रोल पैनल / एडमिनिस्ट्रेटिव टूल / डेटा सोर्स (ODBC) पर जाएं

Win7, 64 बिट के लिए: डिफ़ॉल्ट के बजाय "नियंत्रण कक्ष / प्रशासनिक उपकरण / डेटा स्रोत (ODBC)" का उपयोग करने के बजाय - 64 बिट संस्करणों के साथ, आपको C: \ Windows \ SysWOW64 \ odbcad32.exe का उपयोग करना होगा!

  1. उपयोगकर्ता DSN टैब पर क्लिक करें और फिर 'जोड़ें'
  2. Microsoft Access ड्राइवर (* mdb) तक स्क्रॉल करें और 'फिनिश' पर क्लिक करें
  3. कनेक्शन को एक नाम दें फिर डेटाबेस के स्थान पर ब्राउज़ करने के लिए 'चयन करें' चुनें, फिर संवाद से बाहर निकलने के लिए 'ओके' पर क्लिक करें और फिर से डीएसएन विंडो को बंद करें।

परत को QGIS में लोड करें:

  1. वेक्टर लेयर जोड़ने और डेटाबेस विकल्प का चयन करने के लिए जाएं।
  2. सुनिश्चित करें कि डेटाबेस 'टाइप' बॉक्स 'ODBC' कहता है और 'नया' पर क्लिक करें
  3. नाम बॉक्स में कनेक्शन के लिए एक नाम टाइप करें
  4. होस्ट लोकलहोस्ट है
  5. डेटाबेस का नाम चरण 4 में आपके द्वारा बनाए गए dsn का नाम है
  6. अन्य सभी बॉक्स खाली होने चाहिए लेकिन आप 'सेव पासवर्ड' बॉक्स पर टिक कर सकते हैं।
  7. कनेक्शन का परीक्षण करें और किसी भी त्रुटि का नोट करें। सफल होने पर, 'वेक्टर लेयर जोड़ें' संवाद पर लौटने के लिए 'ओके' पर क्लिक करें
  8. इस कनेक्शन को खोलने के लिए 'ओपन' पर क्लिक करें और अगर पासवर्ड के लिए कहा जाए तो 'ओके' पर क्लिक करें। अपनी परत (डेटाबेस से तालिका) चुनें, यह ध्यान में रखते हुए कि इसमें कोई ज्यामिति न हो।

XY डेटा को पॉइंट्स में बदलें:

  1. टीओसी में तालिका के साथ, "प्रसंस्करण" -> टूलबॉक्स -> जियोलाइगोरिद्म -> वेक्टर -> निर्माण -> "अंक तालिका से परत" पर जाएं।
  2. नीचे दिए गए फॉर्म को भरें:

अंक तालिका से परत


यदि आपको इस दृष्टिकोण से समस्या हो रही है, तो QGIS 2.4 पहुँच की
RyanKDalton

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

यदि मेरे पास रेखा या बहुभुज वाली एक तालिका है, तो मैं मानचित्र कैसे उत्पन्न कर सकता हूं?
माइकल

5

हालांकि मुझे यह सुनने में दिलचस्पी है कि क्या अन्य विकल्प उपलब्ध हैं, मैं एक संदेश पोस्ट पर आया था, जिसमें उल्लेख किया गया था कि यह ईवीपी प्लगिन का उपयोग करके संभव था ।

दस्तावेज़ीकरण डेटाबेस कनेक्शन अनुभाग में वर्णन करता है कि आप एक स्थिर स्नैपशॉट बनाए बिना, डेटाबेस से XY बिंदु स्थान बनाने के लिए MS Access या ODBC कनेक्शन से कैसे जुड़ सकते हैं। मैंने बस "select * from" टाइप किया और eVis ने एक डायलॉग बॉक्स पॉप अप किया, जो लेयर नेम और XY फील्ड्स के लिए पूछता है।

दुर्भाग्य से यह एमएस एक्सेस डीबी के लिए "लाइव-लिंक्ड" कनेक्शन बनाने के लिए प्रकट नहीं होता है क्योंकि अगली बार जब परियोजना खुलती है, तो क्यूजीआईएस उलझन में है ("एक या अधिक परियोजना परतों को खोलने में असमर्थ")। हालाँकि, इसका समाधान एक पूर्वनिर्धारित XML क्वेरी बनाना है जिसे उपयोगकर्ता चुन सकता है।

इसलिए सही समाधान नहीं है, लेकिन यह सीएसवी को निर्यात करने से एक कदम बेहतर है। भविष्य में मुझे लगता है कि इस उद्देश्य के लिए ODBC कनेक्शन स्वीकार करने के लिए विस्तारित डेलिकेट पाठ प्लगइन को देखना बहुत अच्छा होगा।


आह! यह जानना वाकई उपयोगी है। इसमें कुछ हुप्स शामिल हैं, लेकिन कम से कम इसे एक बार बंद किया जाना चाहिए। यदि आप QGIS में दृश्य बदलते हैं तो क्या यह डेटा पुनः लोड करेगा? या यह सिर्फ इसे कैश करता है जब तक आप क्वेरी को मैन्युअल रूप से फिर से नहीं करते हैं?
MerseyViking

@ एमवी- प्रयोग के माध्यम से मैं जो बता सकता हूं, उससे ईवीएस क्यूजीआईएस में कैश्ड लेयर बनाता प्रतीत होता है। उदाहरण के लिए, मैंने eVis के साथ परत को लोड करने के बाद, मैंने Access DB में से एक रिकॉर्ड को हटा दिया, QGIS स्क्रीन को रीफ्रेश किया, और "हटाए गए" बिंदु को बनाए रखा। लेकिन जब मैंने एक नई कैश्ड परत बनाई, तो हटाए गए बिंदु को प्रदर्शित नहीं किया गया (जैसा कि अपेक्षित था)। कैशिंग और ज़ूमिंग का कैश्ड लेयर डिस्प्ले पर कोई प्रभाव नहीं पड़ा।
रयानकैल्टन

4

डेटा को पोस्टगिस पर ले जाने के लिए एक वैकल्पिक तरीका होगा। आप सीएसवी-फाइल को सीधे पोस्टग्रैस्क्ल कॉपी-कमांड से पढ़ सकते हैं। तो आप xy- फ़ील्ड्स से पॉइंट बना सकते हैं।

तब यदि आप एक्सेस में कुछ रिपोर्ट या अन्य फ़ंक्शनलिटी का उपयोग करना चाहते हैं, तो आप पोस्टजीस को एक्सेस से कनेक्ट कर सकते हैं।

लाभ यह होगा कि आपने स्थानिक डेटा को जहाँ यह है, स्थानिक डेटाबेस में रखा है और फिर nonspatial डेटा को संभालने के लिए वापस उपयोग करने के लिए odbc का उपयोग करें यदि आप किसी कारण से अभी भी अपने डेटा को एक्सेस में देखना चाहते हैं।

Postgresonline.com में कनेक्शन का उपयोग करने के लिए पोस्टगिस / पोस्टग्रेजल के लिए महान ट्यूटोरियल है। पोस्टगिस / पोस्टग्रेसल को लागू करने के बारे में ट्यूटोरियल आप एक ही लेखक द्वारा bostongis.org पर पा सकते हैं

/ Nicklas


0

कई रूपांतरण उत्पाद हैं जो एमएस-एक्सेस डेटा को पोस्टग्रेज या SQLite और फिर से वापस करने के लिए परिवर्तित कर सकते हैं। डेटा को बहुत तेज़ी से एक तरफ से दूसरी तरफ ले जाते हैं। इनमें से किसी एक एप्लिकेशन का उपयोग करने से आपको डेटा के स्नैपशॉट पर QGIS चलाने का विकल्प मिल सकता है।


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