PostgreSQL पहले से ही स्थानिक डेटा प्रकार, ऑपरेटरों और अनुक्रमण का समर्थन करता है।
PostGIS क्या प्रदान करता है जो PostgreSQL के विस्तार के रूप में मौजूद होना आवश्यक है?
हम सब सिर्फ PostgreSQL की स्थानिक कार्यक्षमता का उपयोग क्यों नहीं करते हैं?
PostgreSQL पहले से ही स्थानिक डेटा प्रकार, ऑपरेटरों और अनुक्रमण का समर्थन करता है।
PostGIS क्या प्रदान करता है जो PostgreSQL के विस्तार के रूप में मौजूद होना आवश्यक है?
हम सब सिर्फ PostgreSQL की स्थानिक कार्यक्षमता का उपयोग क्यों नहीं करते हैं?
जवाबों:
यदि आप 2001 की शुरुआत में ब्रह्मांड को फिर से घायल करते हैं, और न केवल PostGIS के आविष्कारकों को भविष्य देखने दें, बल्कि PgSQL के PSC को भविष्य को देखने दें, शायद PostGIS PgSQL पर पैच की एक श्रृंखला होगी। लेकिन कम से कम, अगर हमने पैच टू कोर के रूप में शुरू किया था, तो सबसे पहली चीज जो हम करेंगे, वह है:
और कोर PgSQL ने कहा होगा: "नहीं, निश्चित रूप से नहीं, क्षेत्रों में एक मौजूदा अच्छी तरह से समझा शब्दार्थ है और हम उस तरह के पीछे असंगत परिवर्तन नहीं कर सकते हैं"।
नॉन-कोर डेवलपर्स के रूप में, PostGIS कई वर्षों तक मासिक और 6-मासिक रिलीज करने में सक्षम था, जबकि PgSQL कोर ने वार्षिक और लंबे समय के रिलीज के साथ साथ प्लेग किया। जब भी हम अपनी परियोजना में अधिकार रखते थे, तब भी हम जो भी सुविधाएँ चाहते थे, उन्हें जोड़ने में सक्षम थे, लेकिन PgSQL में प्रतिबद्ध अधिकार प्राप्त करने में बहुत लंबा समय लगता है।
जब तक PostGIS पर्याप्त बाहरी मूल्य प्रदर्शित कर रहा था कि PgSQL कोर ने देखा और खुद से कहा "हुह, कि एक अतिरिक्त सुविधा के रूप में कोर में अच्छा होता", पहले से ही इतने अलग मानक और शैली का इतना कोड था PgSQL (एक असंगत लाइसेंस के तहत उल्लेख नहीं करना) कि विलय का विचार वास्तव में संभव नहीं था।
इसके बजाय, PostGIS वास्तव में बड़े कॉम्प्लेक्स एक्सटेंशन का कैनोनिकल उदाहरण बन गया है जो PgSQL को मॉड्यूलर और एक्स्टेंसिबल बने रहने में मदद करता है। "PostGIS की तरह यह कुछ कैसे असर करेगा" एक सवाल है जो अक्सर पूछा जाता है कि कोर PgSQL कुछ बदलाव का मूल्यांकन करता है। यह भी एक अच्छी बात है, शायद उतना अच्छा नहीं जितना PostGIS कोर का हिस्सा है, लेकिन काफी अच्छा है।
अन्य कारण हैं, निर्भरता की लंबी सूची की तरह PgSQL कोर को देखने के लिए नफरत होती, आम तौर पर कम कोड की संगति और एपीआई की सफाई होती है, जिसे वे सुधारने की निराशा करते थे, और। गर्भाधान के समय भी, PostGIS PgSQL के लिए एक बाल काटने के लिए बहुत बड़ा था।
यह बस सच नहीं है, PostgreSQL Spatial डेटा प्रकारों का समर्थन नहीं करता है। यह ज्यामितीय प्रकारों का समर्थन करता है । ये कुछ चीजों के लिए पूरी तरह से ठीक हैं, लेकिन वे वास्तविक दुनिया समन्वय प्रणालियों से पूरी तरह से अलग हैं। देशी प्रकार
सूचकांक प्रश्न के लिए, यह सामान्य प्रश्न है
PostgreSQL R- ट्री इंडेक्स का समर्थन क्यों नहीं किया गया है?
PostGIS के शुरुआती संस्करणों में PostgreSQL R- ट्री इंडेक्स का उपयोग किया गया था। हालाँकि, PostgreSQL R-Trees को संस्करण 0.6 के बाद से पूरी तरह से छोड़ दिया गया है, और स्थानिक अनुक्रमण R-Tree-over-GiST योजना के साथ प्रदान किया गया है।
हमारे परीक्षणों ने मूल आर-ट्री और GiST के लिए खोज की गति को तुलनीय दिखाया है। Native PostgreSQL R-Trees की दो सीमाएँ हैं जो उन्हें GIS सुविधाओं के साथ उपयोग के लिए अवांछनीय बनाती हैं (ध्यान दें कि ये सीमाएँ वर्तमान PostgreSQL मूल R- ट्री कार्यान्वयन के कारण हैं, सामान्य रूप से R-Tree अवधारणा नहीं):
PostgreSQL में आर-ट्री इंडेक्स उन सुविधाओं को संभाल नहीं सकते हैं जो आकार में 8K से बड़े हैं। GiST अनुक्रमित, सुविधा के लिए बाउंडिंग बॉक्स को प्रतिस्थापित करने के "हानिपूर्ण" चाल का उपयोग कर सकते हैं।
PostgreSQL में आर-ट्री इंडेक्स "शून्य सुरक्षित" नहीं हैं, इसलिए एक ज्यामिति स्तंभ पर एक इंडेक्स का निर्माण करना जिसमें शून्य ज्यामिति विफल होंगे। [GiST इंडेक्स अशक्त हैं]
PostGIS PostgreSQL ऑब्जेक्ट-रिलेशनल डेटाबेस के लिए एक स्थानिक डेटाबेस एक्सटेंडर है । यह भौगोलिक वस्तुओं के लिए समर्थन जोड़ता है जिससे एसक्यूएल में स्थान प्रश्नों को चलाने की अनुमति मिलती है।
SELECT superhero.name FROM city, superhero WHERE ST_Contains(city.geom, superhero.geom) AND city.name = 'Gotham';
मूल स्थान जागरूकता के अलावा, PostGIS कई सुविधाएँ प्रदान करता है जो अन्य प्रतिस्पर्धी स्थानिक डेटाबेस जैसे Oracle लोकेटर / स्थानिक और SQL सर्वर में बहुत कम पाई जाती हैं। का संदर्भ लें PostGIS फ़ीचर सूची अधिक जानकारी के लिए।
PostGIS सुविधाएँ सूची उन क्षमताओं को भी विस्तारित करती है:
PostGIS करने के लिए अतिरिक्त प्रकार (ज्यामिति, भूगोल, रेखापुंज और अन्य) कहते हैं PostgreSQL डेटाबेस। यह इन स्थानिक प्रकारों पर लागू होने वाले फ़ंक्शंस, ऑपरेटर्स और इंडेक्स एन्हांसमेंट्स को भी जोड़ता है। ये एडिटोनल फ़ंक्शंस, ऑपरेटर, इंडेक्स बाइंडिंग और प्रकार कोर PostgreSQL DBMS की शक्ति को बढ़ाते हैं, जिससे यह एक तेज़, सुविधा-युक्त और मजबूत स्थानिक डेटाबेस प्रबंधन प्रणाली बनती है।
सुविधा की सूची
PostGIS 2+ श्रृंखला प्रदान करता है:
- स्पाइसिंग, डिसिंग, मॉर्फिंग, रिकेल्सीफाइंग और वेक्टर-रैस्टर डेटा दोनों के लिए प्रोसेसिंग और एनालिटिक फ़ंक्शंस, ठीक दाने वाले रैस्टर प्रोसेसिंग के लिए SQL रैस्टर मैप बीजगणित की शक्ति के साथ एकत्रित / संघन
- वेक्टर और रेखापुंज डेटा दोनों के लिए स्थानिक अस्वीकृति एसक्यूएल कॉल करने योग्य फ़ंक्शन, कमांडलाइन और जीयूआई पैक किए गए टूल के माध्यम से ईएसआरआई शेपफाइल वेक्टर डेटा आयात करने / निर्यात करने के लिए समर्थन और अन्य 3-पार्टी ओपन सोर्स टूल्स के माध्यम से अधिक स्वरूपों के लिए समर्थन करते हैं।
कई मानक प्रारूपों से रेखापुंज डेटा आयात करने के लिए पैकेज्ड कमांड-लाइन: जियोफाई, नेटसीडीएफ, पीएनजी, जेपीजी
SQL के उपयोग से कुछ के नाम के लिए मानक पाठ स्वरूपों जैसे KML, GML, GeoJSON, GeoHash और WKT में SQL डेटा रेंडरिंग रेखापुंज डेटा का उपयोग करके जेंडरटैस्टर, PNG, JPG, NetCDF जैसे वेक्टर टेक्स्ट सपोर्ट के लिए रेंडर करना और आयात करना।
ज्यामितीय क्षेत्र द्वारा पिक्सेल मानों की निकासी के लिए निर्बाध रेखापुंज / वेक्टर एसक्यूएल कॉल करने योग्य कार्य, क्षेत्र द्वारा आँकड़े चलाना, रेखागणित द्वारा रेखापुंजों को जोड़ना, और रेखापुंजों को 3 डी ऑब्जेक्ट सपोर्ट, स्थानिक सूचकांक, और फ़ंक्शंस नेटवर्क टोपोलॉजी समर्थन टाइगर लोडर / जियोकोडर / रिवर्स जियोकोडर का समर्थन करता है। / यूएस जनगणना टाइगर डेटा का उपयोग करना
इसके अलावा, इस पोस्ट में पहले से ही उल्लेखित बिंदुओं / भागों के लिए। मैं PostGIS वेबसाइट पर बताया गया है कि यह कैसे काम करता है
चूंकि PostGIS C में है, इसलिए यह C और C ++ में अन्य पुस्तकालयों का उपयोग कर सकता है, और यह इतनी उदारता से करता है। PostGIS पर निर्भर करता है: