2012년 3월 31일 토요일

[PostGIS] Shapefile and DBF Loader 2

  • pgAdmin은 오픈 소스 데이터베이스인 PostgreSQL을 위한 가장 인기있고 기능이 풍부한 오픈소스 관리 및 개발 플랫폼
  • Linux, FreeBSD, Solaris, Mac OSX, Windows 플랫폼에서 모두 사용

pgAdmin III Plug-In Architecture

  • version 1.9+ ~ 1.12.x 까지는 pgAdmin III 인스톨 폴더의 plugins.ini 파일로 관리
  • version 1.13 이후부터는 pgAdmin III 인스톨 폴더 내에 plugins.d 폴더 아래 plugin*.ini 다중 파일들로 관리
  • 만약 PostGIS Shapefile and DBF Loader PostGIS GUI 플러그인을 등록하는 경우
  • 1.12 이하 버전에서는 plugins.ini 파일에, 1.13 버전 부터는 plugins.d 폴더 내에 postgis.shp2pgsql-gui.ini 파일을 생성 또는 편집해서 등록할 수 있음
  • 두 버전 모두 다음의 내용을 등록하면 됨
    ;
    ;PostGIS shp2pgsql-gui (Windows):
    ;
    Title=PostGIS Shapefile and DBF Loader
    Command="$$PGBINDIR\postgisgui\shp2pgsql-gui.exe" -h "$$HOSTNAME" -p $$PORT -U "$$USERNAME" -d "$$DATABASE" -W "$$PASSWORD"
    Description=Open a PostGIS ESRI Shapefile or Plain dbf loader console to the current database.
    KeyFile=$$PGBINDIR\postgisgui\shp2pgsql-gui.exe
    Platform=windows
    ServerType=postgresql
    Database=Yes
    SetPassword=Yes
  • 더 자세한 내용은 다음을 참고

PostGIS Shapefile and DBF Loader2

  • pgAdmin III 플러그인 중 PostGIS Shapefile and DBF Loader(프로그램명 shp2pgsql-gui)라는 플러그인이 있음
  • 이 플러그인은 로컬 shapefile을 PostGIS 레이어로 업로드하는 기능이 있으며 한번에 하나의 shapefile만 변환이 가능함
  • PostGIS 2.0 버전부터는 이 플러그인이 다음과 같이 업데이트 됨
    • PostGIS Shapefile and DBF Loader2 라 함
    • 현재 Windows Experimental Binaries beta2
    • 다중 shapefile을 업로드 할 수 있도록 기능 개선
    • PostGIS 레이어들을 로컬에 shapefile로 변환하는 기능이 새로 탑재됨
  • 설치 요구사항
    • PostgreSQL의 Application Stack Builder 또는 수작업으로 PostGIS를 먼저 설치해야 함.
  • 다음은 윈도우 환경에서 기존 PostgreSQL 8.4.x ~ 9.1.x 버전 및 PostGIS 1.5.x 버전에서 PostGIS Shapefile and DBF Loader2를 설치하고 테스트한 내용임
  • 현재(2012/03/30) postgisgui_pgadmin-2.0.0beta2.zip 버전까지 릴리스되었으며 아래 사이트에서 받을 수 있음
  • 다운로드한 postgisgui_pgadmin-2.0.0beta2.zip 파일을 압축을 푼다.

1. pgAdmin III version 1.9+ ~ 1.12 : PostGIS 1.5.x

  • pgAdmin III 1.12 버전 이하일 경우 설치과정
    • PostgreSQL 설치폴더의 bin 폴더 내 postgisgui 폴더를 postgisgui_bk로 변경
    • 압축해제한 폴더에서 postgisgui 폴더를 복사하여 PostgreSQL 설치폴더의 bin 폴더에 복사한다.
    • PostgreSQL 설치폴더는 pgAdmin III 실행 후 Files -> Options... 메뉴 실행 후 PG bin path 정보를 확인해도 됨
    • 기존 설치한 pgAdmin III 폴더(일반적으로 PostgreSQL 설치 폴더 내 pgAdmin III 폴더)로 이동한다.
    • plugins.ini 파일을 텍스트 편집기에서 불러온다.
    • 다음의 내용을 확인하여 없으면 추가한다. 기존에 PostGIS Shapefile and DBF Loader가 플러그인으로 등록되어 사용하고 있는 경우는 수정할 필요 없음
    ;
    ;PostGIS shp2pgsql-gui (Windows):
    ;
    Title=PostGIS Shapefile and DBF Loader 2.0
    Command="$$PGBINDIR\postgisgui\shp2pgsql-gui.exe" -h "$$HOSTNAME" -p $$PORT -U "$$USERNAME" -d "$$DATABASE" -W "$$PASSWORD"
    Description=Open a PostGIS ESRI Shapefile or Plain dbf loader console to the current database.
    KeyFile=$$PGBINDIR\postgisgui\shp2pgsql-gui.exe
    Platform=windows
    ServerType=postgresql
    Database=Yes
    SetPassword=Yes

2. pgAdmin III version 1.13 ~ : PostGIS 1.5.x ~ PostGIS 2.x

  • pgAdmin III 1.13 버전 이상일 경우 설치과정
    • PostgreSQL 설치폴더의 bin 폴더 내 postgisgui 폴더를 postgisgui_bk로 변경
    • 압축해제한 폴더에서 postgisgui 폴더를 복사하여 PostgreSQL 설치폴더의 bin 폴더에 복사한다.
    • PostgreSQL 설치폴더는 pgAdmin III 실행 후 Files -> Options... 메뉴 실행 후 PG bin path 정보를 확인해도 됨
    • 기존 설치한 pgAdmin III 폴더(일반적으로 PostgreSQL 설치 폴더 내 pgAdmin III 폴더)로 이동한다.
    • plugins.d 폴더를 찾아 그 아래 postgis.shp2pgsql-gui.ini 파일을 텍스트 편집기에서 불러오거나 없으면 생성한다.
    • 다음의 내용을 확인하여 없으면 추가한다. 기존에 PostGIS Shapefile and DBF Loader가 플러그인으로 등록되어 사용하고 있는 경우는 수정할 필요 없음
    • 위 글상자 참조
  • 마지막으로 pgAdmin III이 실행중일 경우 재시작하면 반영됨

3. Version 2.0 사용 후기

  • 1.0에서와 마찬가지로 좌표정보(wkt로 저장된 prj)가 있어도 자동으로 SRID값을 가져오지 않음
  • 1.0에서는 SRID 기본값이 -1(Unknown Coordinate System)값이었으나 2.0에서는 0(2.0에서는 이 값이 기본값인가???)값이 적용.
  • 추후 개선될 것으로 기대되나 SRID값을 자동으로 가져오지 못할 경우 1.0처럼 -1값이 차라리 편함
  • 1.0에서는 GeometryColumn 이름을 the_geom을 기본값으로 사용했으나, 2.0에서는 GeometryColumn 이름을 geom을 기본값으로 사용함. 이 또한 통일이 필요할 듯
  • 다중 파일 선택 후 업로드시 프로그래스 윈도가 표시됨, 테스트 후 오류없이 변환 잘 됨
  • Export 기능이 새로 추가되어 여러 레이어를 shapefile로 내보내기 가능
  • postgresonline 에 나와 있는 UI와는 약간 다름, 정식버전이 나와야 확인이 가능할 듯
Version 1.0 vs Version 2.0
pgAdmin III Plugin
1.0

2.0

2.0 Connection