postgis ट्यूटोरियल
शुरुआत पोस्टगीस से हो रही है
खोज…
टिप्पणियों
PostGIS PostgreSQL डेटाबेस के लिए एक्सटेंशन का एक सेट है। PostGIS के साथ आप जियोस्पेशियल डेटा स्टोर कर सकते हैं और पोस्टग्रेज डेटाबेस पर स्थानिक प्रश्न कर सकते हैं।
एक सामान्य पोस्टग्रेज डेटाबेस पर डिफ़ॉल्ट डेटाटाइप्स के विपरीत, स्थानिक डेटा को अलग तरीके से संभाला जाना चाहिए। एक स्थानिक डेटाबेस पर आपके द्वारा किए जा रहे प्रश्नों को आमतौर पर 2 या 3 आयामों में बाउंडिंग-बॉक्स द्वारा परिभाषित किया जाता है। इन डेटाटाइप्स पोस्टगिस को स्टोर, इंडेक्स और हैंडल करने के लिए, आर-ट्रीज़ नामक एक अवधारणा का उपयोग करता है, जो कि डिफ़ॉल्ट पोस्टग्रेज-इंस्टॉलेशन का हिस्सा नहीं है।
पोस्टजीआईएस डेटाबेस के साथ, आप इसमें सक्षम हैं:
- स्थानिक डेटा संग्रहीत करें
- जानकारी (अंक, क्षेत्र) को पुनः प्राप्त करने और निकालने के लिए स्थानिक प्रश्न करें।
- तालिकाओं पर स्थानिक जानकारी और मेटाडेटा का प्रबंधन करें (जैसे: उपयोग किए गए कोरिनेट-संदर्भ-प्रणाली)।
- एक समन्वय-प्रणाली से दूसरे में ज्यामितीय रूपांतरित करें
- ज्यामितीयों की तुलना करें, और गुण निकालें (जैसे: सड़क या भवन की धार-लंबाई)
- दूसरों से नई ज्यामिति उत्पन्न करें।
संस्करण
| नवीनतम फ़ीचर रिलीज़ | आधिकारिक दस्तावेज | रिलीज़ की तारीख |
|---|---|---|
| 2.3.0 | HTML , पीडीएफ | 2016/09/26 |
| 2.2.0 | HTML , पीडीएफ | 2015/10/07 |
| 2.1.0 | HTML , पीडीएफ | 2013-08-17 |
| 2.0.0 | HTML , पीडीएफ | 2012-04-03 |
| 1.5.0 | 2010-02-04 | |
| 1.4.0 | 2009-07-24 | |
| 1.3.0 | 2007-08-09 | |
| 1.2.0 | 2006/12/08 | |
| 1.1.0 | 2005/12/21 | |
| 1.0.0 | 2005/04/19 |
पैकेज मैनेजर के माध्यम से स्थापना
आर्क:
एक आधिकारिक पैक्मैन-पैकेज उपलब्ध है। मूल के रूप में पैकेज को स्थापित करें, का उपयोग कर:
pacman -S postgis
OpenSuse:
भू-स्थानिक अनुप्रयोगों के लिए ओपनस्यूस रिपॉजिटरी का उपयोग करने के लिए, जियो-रिपॉजिटरी को रूट के रूप में सक्षम करें:
zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_[RELEASE]/ GEO
जहां [RELEASE] आपके Suse-वितरण की आधिकारिक रिलीज़ संख्या है। इसके बाद, आप इसके साथ पोस्टगिस स्थापित कर सकते हैं:
zypper install postgis
स्रोत से स्थापना (पोस्टग्रैजेस 9.1 या उच्चतर के साथ)
यह गाइड स्पष्ट रूप से PostgreSQL 9.1 या उच्चतर linux मशीनों के लिए है। यह पोस्टग्रेज एक्सटेंशन-फीचर का उपयोग करता है जो मौजूदा पोस्टग्रेज-इंस्टॉलेशन के लिए एक्सटेंशन के आयात में सुधार करेगा। यदि आपको पोस्टग्रेज के पुराने संस्करण के साथ काम करना है, तो कृपया आधिकारिक दस्तावेज़ देखें।
निर्भरता का समाधान
PostGIS एक जटिल परियोजना है जिसमें कई निर्भरताएं हैं। मैन्युअल कॉन्फ़िगरेशन और बिल्ड प्रक्रिया के साथ आगे बढ़ने के लिए, आपको इन निर्भरताओं को हल करना होगा और निम्नलिखित पैकेजों को मैन्युअल रूप से या पैकेज-प्रबंधकों के माध्यम से स्थापित करना होगा।
न्यूनतम आवश्यकताएं
- PostgreSQL 9.1 या उच्चतर। यह महत्वपूर्ण है, कि आप डेटाबेस को सर्वर हेडर सहित स्थापित करते हैं, जो आमतौर पर आपकी रिपॉजिटरी के पैकेज-मैनेजर के देव -संकुल में पाया जाता है।
- जीएनयू सी कंपाइलर जीसीसी ।
- जीएनयू बनाते हैं । बिल्ड-प्रक्रिया को पूरा करने के लिए।
- प्रोज ४ । समन्वय परिवर्तनों के लिए एक प्रक्षेपण पुस्तकालय।
- GEOS । एक ज्यामिति पुस्तकालय, जिसमें वर्णन में वर्णन और सरल ज्यामिति होते हैं। संस्करण 3.5 या उच्चतर को ST_ClipByBox2D और ST_Subdivide जैसे नए कार्यों का उपयोग करने के लिए अनुशंसित किया गया है।
- GDAL , संस्करण 1.9 या उच्चतर। एक पुस्तकालय जो रेखापुंज और वेक्टर-आधारित भू-स्थानिक डेटा के लिए अमूर्त डेटा-प्रारूपों को लागू करता है।
- LibXML2 , संस्करण 2.5 या उच्चतर। XML, XSLT और DTD के साथ काम करने के लिए एक लाइब्रेर।
- JSON-C , संस्करण 0.9 या उच्चतर। JSON- प्रारूप में आउटपुट बनाने के लिए एक पुस्तकालय
वैकल्पिक आवश्यकताएँ
- Shp2pgsql-gui को संकलित करने के लिए GTK (GTK + 2.0, 2.8+ की आवश्यकता है)।
- SFCGAL , संस्करण 1.1 (या उच्चतर) का उपयोग PostGIS को अतिरिक्त 2D और 3D उन्नत विश्लेषण कार्य प्रदान करने के लिए किया जा सकता है।
- पीसीआरई । पर्ल 5 वाक्यविन्यास का उपयोग करते हुए नियमित अभिव्यक्ति पैटर्न के लिए एक पुस्तकालय। यदि आप एडसर्ड स्टैन्डेलाइज़र के साथ काम करना चाहते हैं तो इस लाइब्रेरी की आवश्यकता है।
- क्युनीट । एक इकाई-परीक्षण उपयोगिता, प्रतिगमन परीक्षण के लिए आवश्यक।
- प्रलेखन के निर्माण के लिए DocBook (xsltproc) आवश्यक है।
- DBLatex को पीडीएफ प्रारूप में प्रलेखन के निर्माण के लिए आवश्यक है।
- प्रलेखन में प्रयुक्त छवियों को उत्पन्न करने के लिए ImageMagick आवश्यक है।
स्रोत प्राप्त करें
स्रोत कोड प्राप्त करने के लिए, नवीनतम टारबॉल डाउनलोड करें:
wget http://postgis.net/stuff/postgis-2.3.2dev.tar.gz
tar -xvzf postgis-2.3.2dev.tar.gz
या आधिकारिक एसवीएन-भंडार का उपयोग करें:
svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-2.3.2dev
विन्यास
यदि आपने SVN के माध्यम से स्रोत प्राप्त किए हैं, तो आप इसके साथ विन्यास-स्क्रिप्ट तैयार कर सकते हैं:
./autogen.sh
अपनी विशिष्ट मशीन के लिए बिल्ड-प्रोसेस को कॉन्फ़िगर करने के लिए, प्रोजेक्ट फ़ोल्डर में चलाएँ:
./configure
कॉन्फ़िगरेशन-चरण के लिए कई वैकल्पिक पैरामीटर हैं। कृपया विस्तृत निर्देशों के लिए आधिकारिक दस्तावेज देखें, यह आमतौर पर वैकल्पिक है और केवल उन सर्वरों के लिए है जो गैर-डिफ़ॉल्ट इंस्टॉलेशन का उपयोग करते हैं।
बिल्ड
एक बार कॉन्फ़िगरेशन-चरण सफलतापूर्वक समाप्त हो जाने के बाद, एक मेकफाइल बनाया जाएगा। बिल्ड-प्रोसेस रन शुरू करने के लिए:
make
अंतिम आउटपुट होना चाहिए:
"PostGIS was built successfully. Ready to install."
संस्करण 1.4.0 के रूप में, सभी कार्यों में दस्तावेज से उत्पन्न टिप्पणियां हैं। यदि आप इन टिप्पणियों को बाद में अपने स्थानिक डेटाबेस में स्थापित करना चाहते हैं, तो कमांड को चलाएं जिसके लिए docbook की आवश्यकता है।
make comments
स्थापना
इसके साथ सभी एक्सटेंशन स्थापित करें:
make install
यदि आप PostgreSQL 9.1 या उच्चतर का उपयोग कर रहे हैं तो PostGIS एक्सटेंशन स्वचालित रूप से निर्मित और इंस्टॉल किए जाते हैं। यदि आप अलग-अलग सेटअप करते हैं, तो आप आवश्यक एक्सटेंशन मैन्युअल रूप से इंस्टॉल कर सकते हैं।
प्रोजेक्ट फ़ोल्डर में:
cd extensions
cd postgis
make clean
make
make install
cd ..
cd postgis_topology
make clean
make
make install
cd ..
cd postgis_sfcgal
make clean
make
make install
cd ..
cd address_standardizer
make clean
make
make install
make installcheck
cd ..
cd postgis_tiger_geocoder
make clean
make
make install
make installcheck
यदि आप किसी अन्य मशीन पर मैन्युअल रूप से एक्सटेंशन इंस्टॉल करना चाहते हैं, तो extensions फ़ोल्डर से निम्न फ़ाइलों को लक्ष्य के PostgreSQL/share/extension फ़ोल्डर में कॉपी करें। प्रत्येक एक्सटेंशन के लिए:
scp extensions/[EXTENSION]/sql/*.sql user@target:[POSTGIS_PATH]/share/extension
जहां [विस्तार] चयनित विस्तार (पोस्टगिस, पोस्टगिस_टॉपोलॉजी, पोस्टगिस_एसफेकल, एड्रेस_स्टैंडाइज़र, पोस्टगिस_टाइगर_गेकोडर) और [पीओटीजीआईएस_एटीएचएच] आपके लक्ष्य-मशीन पर पोस्टगिस इंस्टॉलेशन-पथ है।
स्थापना को सत्यापित करना
यदि आपके पास एक रनिंग पोस्टग्रेज डेटाबेस सेवा नहीं है, तो पहले अपने पोस्टग्रेज डेटाबेस को सेटअप करें । डेटाबेस का उपयोग कर कनेक्ट करें:
su postgres -c psql
यह सत्यापित करने के लिए कि एक्सटेंशन सुलभ हैं, निम्न प्रश्नों को psql-session में चलाएं:
SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';
आउटपुट इस तरह दिखना चाहिए:
name | default_version | installed_version
------------------------------+-----------------+-------------------
address_standardizer | 2.3.2dev | 2.3.2dev
address_standardizer_data_us | 2.3.2dev | 2.3.2dev
postgis | 2.3.2dev | 2.3.2dev
postgis_sfcgal | 2.3.2dev |
postgis_tiger_geocoder | 2.3.2dev | 2.3.2dev
postgis_topology | 2.3.2dev |
(6 rows)
इन-डेप्थ इंस्टॉलेशन टेस्ट करने के लिए, अपने प्रोजेक्ट-फोल्डर में निम्न कमांड चलाएँ:
make check
यह एक वास्तविक PostgreSQL डेटाबेस के खिलाफ उत्पन्न पुस्तकालय का उपयोग करके विभिन्न जांचों और परीक्षणों के माध्यम से चलेगा।
एक भू-स्थानिक डेटाबेस की स्थापना
एक नया खाली डेटाबेस बनाने के लिए, पोस्टग्रैज-यूजर के रूप में चलाएं:
createdb [yourdatabase]
एक psql सत्र के साथ डेटाबेस से कनेक्ट करें:
psql -d [yourdatabase]
Psql-session रन में:
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
नेक्सेसरी भू-स्थानिक एक्सटेंशन बनाने के लिए। एक बार ऐसा करने के बाद, डेटाबेस एक भू-स्थानिक रूप से सक्षम डेटाबेस है और यह उपयोग करने के लिए तैयार है।
एक भू-स्थानिक "हैलो वर्ल्ड"
इस उदाहरण में हम एक भू-स्थानिक डेटाबेस स्थापित करेंगे, 2 अलग-अलग स्रोतों से डेटा आयात करेंगे, और QGIS नामक एप्लिकेशन में परिणाम देखेंगे। यह गाइड स्पष्ट रूप से लिनक्स-मशीनों के लिए लिखा गया है, यदि आप किसी अन्य प्लेटफ़ॉर्म पर काम करते हैं, तो कुछ कमांड या पथ अपेक्षा के अनुरूप काम नहीं कर सकते हैं।
आयातित डेटा को देखने के लिए हम QGIS नामक एप्लिकेशन का उपयोग करेंगे। यदि आपके पास यह एप्लिकेशन नहीं है, तो कृपया इसे पहले इंस्टॉल करें , यदि आप किसी अन्य दर्शक या भू-एप्लिकेशन (जैसे आर्कजीआईएस) का उपयोग करना चाहते हैं तो आप क्यूजीआईएस स्थापित करना छोड़ सकते हैं।
हमारे स्रोत न्यूयॉर्क सिटी स्टेट असेंबली डिस्ट्रिक्ट्स और न्यूयॉर्क सिटी लायन स्ट्रीट मैप डेटाबेस होंगे । कृपया लिंक किए गए स्थानों से उपयुक्त फाइलें डाउनलोड करें। आपको सामग्री के मेटाडेटा-खंड पर भी एक नज़र डालनी चाहिए, क्योंकि यह आपको जानकारी देता है कि ये फाइल किस समन्वय प्रणाली का उपयोग करती हैं।
शुरू करने के लिए, एक कामकाजी फ़ोल्डर "निक्जिस" बनाएं, डाउनलोड की गई फ़ाइलों को स्थान पर कॉपी करें और अभिलेखागार को अनज़िप करें।
mkdir nycgis
cd nycgis
cp ~/Downloads/nyad_16d.zip .
unzip ~/Downloads/nyad_16d.zip
cp ~/Downloads/nylion_16d.zip .
unzip ~/Downloads/nylion_16d.zip
"Nycgis" फ़ोल्डर में अब आपके पास 2 फ़ोल्डर होने चाहिए: "nyad_16d", कई फाइलों के साथ "शेर"।
जब भू डेटा के साथ काम करना महत्वपूर्ण महत्व का है, तो अपने स्रोत डेटा के समन्वय संदर्भ प्रणाली (सीआरएस) और अपने अंतिम आउटपुट डेटा को जानना। लिंक किए गए स्थानों के मेटाडेटा-अनुभागों में ( मेटाडेटा: असेंबली डिस्ट्रिक्ट्स , मेटाडाटा: LION डेटाबेस ), आप पाएंगे कि दोनों फाइलों के लिए CRS EPSG: 2263 है, एक समन्वय प्रणाली जिसका उपयोग उत्तर पूर्वी अमेरिका को संदर्भित करने के लिए किया जाता है।
मान लें कि हम अपने डेटाबेस में एक अलग सीआरएस का उपयोग करना चाहते हैं। इसके अलग-अलग कारण हो सकते हैं, हम उदाहरण के लिए डेटाबेस पर वेब-आधारित भू एप्लिकेशन के साथ काम करना चाहते हैं। इस तरह के आवेदन के लिए एक सामान्य सीआरएस डब्ल्यूजीएस: 84 (ईपीएसजी: 4326) है।
समन्वय प्रणालियों को परिवर्तित करने के लिए हम ogr2ogr wich नामक एक उपकरण का उपयोग करते हैं जो GDAL पैकेज का हिस्सा है। काम करने वाले फ़ोल्डर में, हम पहले रिपॉजिट किए गए डेटा का प्रतिनिधित्व करने वाले 2 फ़ोल्डर बनाते हैं, और फिर अपना डेटा परिवर्तित करते हैं।
mkdir nyad_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nyad_16d_proj_4326/nyad_4326.shp ./nyad_16d/nyad_16d.shp -s_srs EPSG:2263 -t_srs EPSG:4326
mkdir nylion_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nylion_16d_proj_4326/ny_str_4326.shp ./nylion_16d/lion/lion.gdb/a0000000d.gdbtable -s_srs EPSG:2263 -t_srs EPSG:4326
ध्यान दें कि हम केवल अपने उद्देश्यों के लिए लायन-डेटाबेस की "a0000000d.gdbtable" नामक फ़ाइल का उपयोग करते हैं। ogr2ogr -command का सिंटैक्स निम्नानुसार है:
ogr2ogr -f [output-format] [output-file] [input-file] -s_srs [source crs] -t_srs [target crs]
अब हमारे पास 2 शेपफाइल्स हैं, जिन्हें सही CRS में प्रोजेक्ट किया गया है। हमारे डेटाबेस में डेटा का उपयोग करने के लिए, हमें आकार-प्रकारों को sql-statemens में बदलना होगा। इसके लिए हम shp2pgsql नामक टूल का उपयोग करते हैं। कार्यशील निर्देशिका में निम्नलिखित कमांड चलाएँ:
shp2pgsql ./nyad_16d_proj_4326/nyad_4326.shp > nyad_4326.sql
shp2pgsql ./nylion_16d_proj_4326/ny_str_4326.shp > ny_streets_4326.sql
फाइलें nyad_4326.sql और ny_streets_4326.sql अब ny_streets_4326.sql में उपयोग करने के लिए तैयार हैं। डेटा को आगे बढ़ाने और आयात करने के लिए, एक स्थानिक रूप से सक्षम डेटाबेस बनाएँ।
sudo su - postgres
createdb nycgis
psql -d nycgis
Psql-session में, रन करें:
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
Psql- से बाहर निकलें और (CTRL + D) के साथ उपयोगकर्ता-सत्र स्थगित करें। और फ़ाइलों को आयात करें:
psql -f nyad_4326.sql -d nycgis
psql -f ny_streets_4326.sql -d nycgis
डेटाबेस nycgis में अब 2 टेबल हैं, nycgis : उपयोग किए गए स्रोतों को सफलतापूर्वक आयात किया गया था।
इसे सत्यापित करने के लिए: QGIS खोलें
- Layer > Add Layer > PostGIS-Layer का उपयोग करें
- अपने डेटाबेस से कनेक्ट करें
- अपनी तालिकाओं का चयन करें
- (वैकल्पिक) नई बनाई गई परतों की स्टाइलिंग सेट करें।
Et voilà: अब आपके पास एक स्थानिक रूप से सक्षम डेटाबेस है, जिसमें आयातित, पुनर्प्राप्त जियोडेटा है।
