क्या क्यूजीआईएस स्पैटियलाइट दृश्य पढ़ सकता है?


11

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

मैंने अपने डेटाबेस में एक दृश्य बनाया है, लेकिन जब मैं QGIS में स्थानिक db से जुड़ता हूं, तो मैं उन फीचर कक्षाओं की सूची में नहीं दिखा सकता, जिन्हें मैं आयात कर सकता हूं। शायद दृश्यों को स्थानिक नहीं माना जाता है? (यह कुछ ऐसा है जिसे मैं बाद में देखने जा रहा हूं, लेकिन मुझे लगा कि मैंने पहले ही कर दिया है; मैं अभी निष्कर्ष को याद नहीं करता हूं।) किसी भी मामले में, मैं जिस तरह का काम प्रवाह चाहता हूं या इसी तरह का आर्कजीआईएस विकल्प को कैसे दोहरा सकता हूं। ?

जवाबों:


15

मुझे लगता है कि आपको QGIS में इसका उपयोग करने में सक्षम होने के लिए ज्योमेट्री_कोल्यूम टेबल में दृश्य दर्ज करना होगा।

एक अच्छा संसाधन निम्नलिखित उदाहरण के साथ "अपने स्वयं के स्थानिक लेखन" लिख रहा है :

INSERT INTO views_geometry_columns
(view_name, view_geometry, view_rowid, f_table_name, f_geometry_column)
VALUES ('italy', 'geometry', 'ROWID', 'local_councils', 'geometry');

वैसे भी आपको इस दृश्य को view_geometry_columns में पंजीकृत करना होगा, इसलिए इसे वास्तविक स्थानिक दृश्य बनाने के लिए।


यह मुद्दा लगता है। मैंने दृश्य बनाया और मेटा टेबल की जाँच की। जाहिर है, दृश्य से ज्यामिति सूचीबद्ध नहीं है। मैं दृश्य की ज्यामिति को कैसे पंजीकृत करूं? मैंने RecoverGeometryColumn की कोशिश की, लेकिन यह मुझे बता रहा है कि तालिका मौजूद नहीं है। मुझे लगा कि मैं 2.4 संस्करण पर हूं, लेकिन जाहिर है कि मैं स्पैटियलाइट 3.0 बीटा के साथ काम कर रहा हूं। शायद मैं कमांड को गलत तरीके से लागू कर रहा हूं? शायद यह विचारों पर काम नहीं करता है? (यह बेहतर!); स्पष्टता के लिए, मेरा आदेश SELECT RecoverGeometryColumn ('tblName', 'SHAPE', 2226, 'POINT', 2) था;
ब्रायन गुडरिक

4
ज्यामिति आधारित विचारों को संभालने के लिए एक विशेष तालिका है। निम्नलिखित सिंटैक्स INSERT INTO VIEWS_GEOMETRY_COLUMNS VALUES ('{TABLE NAME}', '{GEOM COLUMN NAME}', '{GEOM TYPE}', 2, {SRID}, 0) का उपयोग करें;
नाथन डब्ल्यू

उदाहरण: INSERT INTO VIEWS_GEOMETRY_COLUMNS VALUES ('Towns_v1', 'Geometry', 'POINT', 2, 32632, 0);
नाथन डब्ल्यू

SELECT * FROM views_geometry_columns;यह देखने के लिए उपयोग करें कि डालने के लिए क्या आवश्यक है। Gaia-gis.it/spatialite-3.0.0-BETA/spatialite-cookbook/html/…
नाथन W

2

आपको यहां एक विशिष्ट आईडी भी देखनी पड़ सकती है , जो यहां चर्चा की गई है: इसी तरह PostGIS में एक अद्वितीय आईडी के साथ एक दृश्य बनाना संभव है?


जब तक मैं स्पष्ट रूप से देखने के निर्माण में पीके का चयन नहीं करता हूं, तब तक एक अद्वितीय आईडी साथ नहीं ली जाएगी? कम से कम सरल चयन क्वेरी के लिए मैं यहाँ कर रहा हूँ।
ब्रायन गुडरिच

@ ब्रायनगूडरिच- इसे आज़माएं, लेकिन यह पोस्टगिस के विचारों के साथ उस तरह से काम नहीं करता है, जैसा कि मैंने पाया है।
रयानकैल्टन

यह दृश्य "अपराध से दूर * का चयन किया गया था ..." और मैं जहाँ-जहाँ से उपसमुच्चय था। इसने पीके कॉलम (पंक्तिनाम, जिसे मैंने आर तालिका में कॉलम नामों से उत्पन्न किया था, जो मैंने SQLite DB को पॉप्युलेट करने के लिए उपयोग किया था) को लौटाया। समस्या यह है कि अंडरडार्क ने बताया: इसे मेटा टेबल्स में एक ज्यामिति संदर्भ की आवश्यकता है। यह वही है जो QGIS स्थानिक तालिकाओं की पहचान करने के लिए उपयोग करता है, और उन मेटा तालिकाओं में दृश्य का कोई रिकॉर्ड नहीं है।
ब्रायन गुडरिक

जानकार अच्छा लगा। सवाल पूछने और अच्छा जवाब पाने के लिए धन्यवाद
RyanKDalton

2

आजकल (वर्ष 2015) में ज्योमेट्री_कॉम्बल्स में दृश्य दर्ज करना एक अतिरिक्त क्षेत्र 'read_only' की आवश्यकता लगता है:

INSERT INTO views_geometry_columns
(view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only )
VALUES ('italy', 'geometry', 'ROWID', 'local_councils', 'geometry', 1);

1
क्या आप सहायक प्रलेखन के लिए एक लिंक जोड़ सकते हैं? धन्यवाद!
UnderDark

2

SpatialLite 4.x के लिए, मूल उत्तर में दो बदलावों की आवश्यकता होती है - read_onlyकॉलम के अतिरिक्त और सभी सम्मिलित मूल्यों को कम करने के लिए बदलना। अद्यतन SQL इस तरह दिखेगा:

INSERT INTO views_geometry_columns
(view_name, view_geometry, view_rowid, f_table_name, f_geometry_column, read_only )
VALUES ('italy', 'geometry', 'rowid', 'local_councils', 'geometry', 1);

यह read_onlyक्षेत्र या तो 0 या 1 को स्वीकार करता है ( आगे की स्पष्टीकरण के लिए सैंड्रो फ्यूरिएरी की Google समूह में टिप्पणी देखें ।)

इन और अन्य 4.x परिवर्तनों पर अधिक विवरण स्विचिंग-टू-4.0 विकी पर पाया जा सकता है ।


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