PostgreSQL ड्राइवर को शामिल करने के लिए मैं ogr2ogr को कैसे अपडेट कर सकता हूं?


28

मैं ogr2ogr का उपयोग करने की कोशिश कर रहा हूं ताकि एक रिमोट पोस्टग्रेस इंस्टॉलेशन के लिए एक शेपफाइल अपलोड किया जा सके। जब मैंने यह कमांड चलाई:

celenius:~ celenius$ ogr2ogr -f PostgreSQL PG:"host=255.34.00.00 user=postgres dbname=mydb password=***" Dropbox/data/roads.shp;

मुझे निम्न त्रुटि संदेश मिला:

Unable to find driver `PostgreSQL'.
The following drivers are available:
  -> `ESRI Shapefile'
  -> `MapInfo File'
  -> `UK .NTF'
 ...
  -> `SVG'
  -> `CouchDB'
  -> `Idrisi'
  -> `ARCGEN'
  -> `SEGUKOOA'
  -> `SEGY'

(मैं कुछ ड्राइवरों को छोड़ दिया क्योंकि वे प्रासंगिक नहीं हैं)। वहाँ एक तरीका है कि मैं ogr2ogr को PostgreSQL शामिल करने के लिए अद्यतन कर सकता हूं? मैं एक मैक का उपयोग कर रहा हूँ OS 10.7.4 के साथ

जवाबों:


25

Homebrew का उपयोग करना चाहिए:

काढ़ा स्थापित करें गदल - साथ-पोस्टग्रेशकल

या गदल के पुराने संस्करणों के साथ:

काढ़ा स्थापित करें गदल - साथ-साथ

यदि आप पहले से ही काढ़ा के साथ गल्ड स्थापित कर चुके हैं, लेकिन बिना पोस्टग्रेजेक समर्थन के, बस

काढ़ा स्थापना


2
एक छोटा सुधार:brew install gdal --with-postgresql
बेंजामिन

क्या QGIS अभी भी होमब्रेक GDAL के साथ काम करेगा?
सिंबांगुंग

@ सिंबांगु ज़रूर: होमब्रेव सिर्फ एक पैकेज मैनेजर है, इसलिए जो GDAL संस्करण इसे वितरित करता है वही आप खुद को स्रोत से बना सकते हैं
एंड्रिया क्रेमैची

2
आप एक विंडोज़ मशीन पर कैसे आगे बढ़ेंगे? आदर्श रूप से एक virtualenv का उपयोग कर
RutgerH

2
कृपया खिड़कियों के लिए समाधान क्या है?
डेनिस स्टेफानोव

5

अपने आप को कुछ दर्द से बचाएं और OSX के लिए Kyngchaos पैकेज्ड बायनेरिज़ / फ्रेमवर्क का उपयोग करें ।

एक अन्य विकल्प होमब्रिज का उपयोग करना है


AFAIK यह वही है जो मैंने इस्तेमाल किया। मैंने इसे किसी अन्य तरीके से स्थापित नहीं किया।
djq

क्या यह फ़ाइल मौजूद है: /Library/Frameworks/GDAL.framework/Versions/Current/Lbooks/libpq.dylib और टर्मिनल से 'कौन ओग्रीनफो' कमांड वापस लौटता है?
रागी यासर बुरहम

which ogrinfoलौटता है /usr/local/bin/ogrinfo। मैंने QGis स्थापित करने से पहले GDAL और KyngChaos के अन्य लोगों को स्थापित किया।
djq

क्या मेरे द्वारा उल्लेखित libpq फ़ाइल उस स्थान पर मौजूद है?
रागी यासेर बुरहम

1
यदि libpq.dylib (PostgreSQL क्लाइंट लाइब्रेरी) नहीं है, तो OGR लाइब्रेरी लोड नहीं होगी।
रागी यशेर बुरहूम

4

यह मानकर कि आपने गदल को स्रोत से संकलित किया है, जब आप गाल्ड का विन्यास कर रहे हैं, तो उसमें --with-pg = / path / to / pg_config शामिल करें।

./configure -with-pg=/path/to/pg_config ...

./make clean

./make

./make install

EDIT: ध्यान दें कि pg_configआपके अन्य PostgreSQL बायनेरी, जैसे psql, आदि के साथ एक ही डायरेक्टरी में होना चाहिए । इसके अलावा, ध्यान दें, नीचे दिए गए user259060 के उत्तर से यह विवरण: आपको सत्यापित करना चाहिए कि एक उपयुक्त पोस्टग्रैक्स्ल-सर्वर-देव संस्करण स्थापित है (जैसे Ubuntu उपयोग पर) apt list --installed | grep postgresql-server-devयदि उपयोग नहीं मिला apt-cache search postgresql-server-devऔर इसके साथ संबंधित पैकेज स्थापित करें sudo apt-get install postgresql-server-dev)।


लगता है कि मुझे ./configureआउटपुट में "पोस्टग्रेक्यूएल समर्थन: हाँ" मिलेगा , लेकिन देने की कोशिश कर रहा ogr2ogr -f PostgreSQLहै ERROR 1: Unable to find driver 'PostgreSQL'। इसके अलावा, नहीं PostgreSQLमेंogrinfo --formats
adamczi

क्या आपने स्थापना के बाद ldconfig चलाया है?
dmci

1
Postgresql-server-dev को स्थापित करने के बारे में उत्तर को संपादित देखें, कि, त्रुटि को संभालना चाहिए।
thaer

2

विंडोज पर रहते हुए मुझे यही संदेश मिला।

यह उद्धरण के प्रकार के बारे में शिकायत कर रहा था (सिंगल बनाम डबल) मैं कनेक्शन स्ट्रिंग के आसपास उपयोग कर रहा था। उद्धरण स्विच करना समस्या को हल करता है।


2

इस बात की संभावना है कि आप "PostgreSQL सपोर्ट: नो" जैसा कुछ देख सकते हैं, भले ही आपने "--with-pg = / path / to / pg_config" ... का उपयोग करके स्रोत को कॉन्फ़िगर किया हो ... उस स्थिति में, sudo apt- चलाएं स्थापित हो जाओ Postgresql-server-dev-all और फिर पुनः प्रयास करें।


1

Ogr2ogr वेक्टर फॉर्मेट डॉक को पढ़ने से , ऐसा लगता है कि आपको PostgreSQL क्लाइंट लाइब्रेरी (libpq) को स्थापित करने की आवश्यकता है।

यह समान प्रश्न सिर्फ पायथन बाइंडिंग के साथ, एक ऐसी ही समस्या का समाधान करने में कुछ अंतर्दृष्टि देने के लिए लगता है।

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