PostGIS डेटाबेस में शेपफाइल्स जोड़ना


30

मैं एक Postgresql डेटाबेस बनाने में सक्षम था और फिर मैंने निष्पादित किया,

createlang plpgsql geospecies
psql -d geospecies -f postgis.sql
psql -d geospecies -f spatial_ref_sys.sql

तो क्या अब मैं सीधे शेपफाइल्स आयात कर सकता हूं? क्या यह सही आदेश होगा,

ogr2ogr -f PostgreSQL PG:"host=server_ip user=username dbname=dbname password=password" yourshapefile.shp;

मुझे यकीन नहीं है कि डेटाबेस को कैसे तैयार किया जाए, क्या उसे टेबल की आवश्यकता नहीं होगी? आखिरकार मुझे शेपफाइल्स का एक गुच्छा लोड करने की आवश्यकता होगी और ऐसा करने के लिए एक कमांड है?

जवाबों:


49

कोशिश करो shp2pgsql। मूल वाक्यविन्यास इस प्रकार है:

shp2pgsql -s SRID SHAPEFILE.shp SCHEMA.TABLE | psql -h HOST -d DATABASE -U USER

मुझे यह http://www.bostongis.com उपयोगी से हमेशा धोखा देती है । यदि आप थोड़ा नीचे स्क्रॉल करते हैं, तो आपको डेटा लोड करने के तरीके के सरल उदाहरण मिलेंगे।

आशा करता हूँ की ये काम करेगा।


लेकिन मेरे पास मेज नहीं है। मुझे क्या तालिका और स्कीमा बनाना चाहिए?
2300 पर सैम 007

1
आप पर एक नज़र डालें तो cheatsheet , (-d|-a|-c|-p)तालिकाओं के लिए झंडे हैं। यदि आपने कुछ भी निर्दिष्ट नहीं किया है, तो वह -cडिफ़ॉल्ट रूप से चयन करेगा (एक नई तालिका बनाता है और उसे पॉप्युलेट करता है)। के रूप में SRID, मुझे नहीं पता - यह आपके डेटा के प्रक्षेपण पर निर्भर करता है। यदि आपके पास आकृतिफ़ाइलों के.proj साथ आने वाली फ़ाइल है, तो आप इसे prj2epsg.org/search पर प्रक्षेपण की जाँच कर सकते हैं । आशा है कि यह मदद करता है ..

उत्तर के लिए धन्यवाद @ हाज़ीक। मैं केवल उलझन में हूँ कि कहाँ -cआये? मैंने कोशिश की shp2pgsql -s 4326 /var/www/geo/shapefile/PimaPine.shp -c public.Pima | psql -h localhost -d geospecies -U smaranhलेकिन मुझे एक त्रुटि मिल रही है dpaste.com/834563
Sam007

मुझे लगता है कि -cबाद में जाना चाहिए -s 4326, और पहले /var/www/geo/shapefile/PimaPine.shp.. वाक्यविन्यास है shp2pgsql [OPTIONS] shapefile [schema.]table। क्या -cत्रुटि में अभी भी प्रभाव की स्थिति बदल रही है ?

अभी भी एक ही त्रुटि नहीं होगी। यह भी इस के लिए संक्षिप्त
Sam007

4

आह! अभी तक टिप्पणी नहीं कर सकता!

हाज़िक ने जो पोस्ट किया, वह सैम करने के लिए सही कमांडलाइन तरीका होगा।

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

यदि आप मेरी तरह आलसी हो जाते हैं, तो मैं अभी अपने सभी शेपफाइल्स को आयात करने के लिए QGIS प्लगइन के रूप में उपलब्ध भयानक SPIT (शेपफाइल टू पोस्टगिस इंपोर्ट टूल) का उपयोग करता हूं। मान लें कि आप क्वांटमजीआईएस का उपयोग कर रहे हैं जैसा कि आपने कहा था कि आपके पहले ओपनजीओ का उपयोग कर रहे थे।


1
समस्या यह है कि मेरे पास कोई GUI नहीं है। मैं उबंटू सर्वर पर दूरस्थ रूप से काम कर रहा हूं।
सैम ००

SPIT दूर से काम करेगी, मैं हर समय अपने घर DB से काम करता हूं, आपको बस कनेक्शन की जानकारी भरनी है जैसा आपने psql पर लॉगिन करने के लिए किया था।
रोमा एचएच

मैं इसे कैसे अंजाम देता हूँ
Sam007

वैसे मैं मान रहा था कि आप स्थानीय shp फाइलें ले रहे हैं और उन्हें अपने रिमोट सर्वर पर डाल रहे हैं। आप QGIS शुरू करते हैं और अपने स्थानीय मशीन पर SPIT प्लगइन का उपयोग करते हैं, अपने दूरस्थ सर्वर को कनेक्ट करते हैं और अपलोड करते हैं।
रोमाँ

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