PostgreSQL 드라이버를 포함하도록 ogr2ogr을 어떻게 업데이트합니까?


28

ogr2ogr을 사용하여 shapefile을 원격 PostGres 설치에 업로드하려고합니다. 이 명령을 실행할 때 :

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'

(나는 관련이 없기 때문에 일부 드라이버를 생략했습니다). PostgreSQL을 포함하도록 ogr2ogr을 업데이트 할 수있는 방법이 있습니까? OS 10.7.4에서 Mac을 사용하고 있습니다

답변:


25

Homebrew를 사용하면 다음을 수행해야합니다.

brew install gdal --with-postgresql

또는 이전 버전의 gdal을 사용하는 경우 :

brew install gdal --with-postgres

이전에 postgresql을 지원하지 않고 brew로 gdal을 이미 설치 한 경우

brew uninstall gdal


2
작은 수정 :brew install gdal --with-postgresql
BenjaminGolder

QGIS가 여전히 자체 GDAL과 함께 작동합니까?
Simbamangu

@Simbamangu 물론 : homebrew는 패키지 관리자 일 뿐이므로 배포하는 GDAL 버전은 소스에서 직접 만들 수있는 것과 동일합니다.
Andrea Cremaschi

2
Windows 시스템에서 어떻게 진행 하시겠습니까? 이상적으로 virtualenv 사용
RutgerH

2
Windows 용 솔루션은 무엇입니까?
Denis Stephanov

5

OSX 용 Kyngchaos 패키지 바이너리 / 프레임 워크를 사용하십시오 .

또 다른 옵션은 HomeBrew 를 사용하는 것 입니다.


AFAIK 이것이 내가 사용한 것입니다. 다른 방법으로는 설치하지 않았습니다.
djq

이 파일이 존재합니까 : /Library/Frameworks/GDAL.framework/Versions/Current/Libraries/libpq.dylib 그리고 '어떤 ogrinfo'명령이 터미널에서 반환합니까?
Ragi Yaser Burhum

which ogrinfo을 반환합니다 /usr/local/bin/ogrinfo. QGis를 설치하기 전에 KyngChaos에서 GDAL 및 기타를 설치했습니다.
djq

내가 언급 한 libpq 파일이 해당 위치에 있습니까?
Ragi Yaser Burhum

1
libpq.dylib가 없으면 (PostgreSQL 클라이언트 라이브러리) OGR 라이브러리가로드되지 않습니다.
Ragi Yaser Burhum

4

소스에서 gdal을 컴파일했다고 가정하면 gdal을 구성 할 때 --with-pg = / path / to / pg_config 만 포함하십시오.

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

./make clean

./make

./make install

편집 : 참고 등 pg_config다른 PostgreSQL 바이너리와 동일한 디렉토리에 있어야합니다 psql. 또한 user259060의 답변 에서이 세부 사항을 참고하십시오 : 적절한 postgresql-server-dev 버전이 설치되어 있는지 확인해야합니다 (예 : 우분투 사용) apt list --installed | grep postgresql-server-dev찾을 수 없으면를 사용 apt-cache search postgresql-server-dev하여 해당 패키지를 설치하고 설치하십시오 sudo apt-get install postgresql-server-dev.


./configure출력 에서 "PostgreSQL support : yes"가 표시 되지만 ogr2ogr -f PostgreSQL제공 하려고 합니다 ERROR 1: Unable to find driver 'PostgreSQL'. 또한, 어떤 PostgreSQL에서하지ogrinfo --formats
adamczi

설치 후 ldconfig를 실행 했습니까?
dmci

1
오류를 처리해야하는 postgresql-server-dev 설치에 대한 답변 편집을 참조하십시오.
thayer

2

Windows에서 동일한 메시지를 받았습니다.

연결 문자열 주위에서 사용하고있는 따옴표 유형 (싱글 대 더블)에 대해 불평했습니다. 따옴표를 바꾸면 문제가 해결되었습니다.


2

"--with-pg = / path / to / pg_config"를 사용하여 소스를 구성한 경우에도 "PostgreSQL support : no"와 같은 내용이 표시 될 수 있습니다.이 경우 sudo apt- postgresql-server-dev-all을 설치하고 다시 시도하십시오.


1

ogr2ogr Vector 형식 문서를 읽은 후 PostgreSQL 클라이언트 라이브러리 (libpq)를 설치해야합니다.

비슷한 질문 은 파이썬 바인딩을 사용하여 비슷한 문제를 해결하는 데 대한 통찰력을 제공하는 것으로 보입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.