PostGISのインストール
PostGISをインストールしてみたので手順をメモしておく。
PostGISの本体はLinuxでサーバとして動かし、Windows PCをクライアントとしてGUIベースの各種GISアプリケーションはWindows PCで利用することを想定してシステムを構築した。
今回、サーバとして利用するPCのLinuxには私のお気に入りのUbuntuを利用したが、基本的には他のLinuxでもほぼ同様の手順で大丈夫かと思う。(Debian系とRedhat系などの違いで一部のコマンドは違うが。)私がUbuntuを気に入っているのは、LTS(長期サポート版)があり長い期間安定して使えることと、Linux上のアプリケーションが整理されて豊富に利用できるからだ。(GUIの良さもあるが、今回はサーバ版を利用するのでGUIは関係ない。)
さて、もう3ヵ月程で最新のLTS版がリリースされるようだが、今回は(LTSではないが)現時点での最新版のUbuntu 9.10 Serverを使った。後述するが、Linuxのバージョンにより利用できるPostreSQLとPostGISのバージョンも微妙に異なってくるので、ベースとなるLinuxに合わせてPostgreSQL/PostGISのバージョンを選定する必要がある。
PostGISは、これ自身はアプリケーションというよりは、PostgreSQLの拡張機能アドインというイメージに近い。PostgreSQLは有名なオープンソースのリレーショナルデータベースだが、PostGISはPostgreSQLに対してGISに向いたデータ定義や関数を提供している。Linuxとしてのコマンドも2つ程含まれるが、多くはPostgreSQLの組み込み関数(およびそれから呼び出される外部ライブラリ)から構成されている。従って、PostGISの本体はPostgreSQLそのものであり、先ずはPostgreSQLをインストールしなければならない。
PostgreSQLもPostGISも、Linuxのディストリビューションのパッケージとして既にコンパイルされた状態のものをインストールする方法と、オープンソースのソースコードをダウンロードして、それをコンパイルして使う方法がある。一長一短であり、前者はインストールが簡単で確実に動作することができるが最新のバージョンが使えない場合がある。後者は最新のバージョンを利用できる半面、コンパイルなどの作業が必要であり、場合によってはハマってしまうことがある。Windows側のGUIアプリケーション(GISツール)が特定のバージョンのPostgreSQLやPostGISにしか対応していない場合は、Linux側のGISサーバもそれに合わせてバージョンを選択する必要があり、場合によってはソースからコンパイルする必要性が出てくる。
PostGISを利用できるようにするまでの大まかな手順は次のようになる。
- PostgreSQL/PostGISのインストール(パッケージ版)
- PostgreSQL/PostGISのインストール(オープンソース版)
- PostGIS用データベースの作成(テンプレート・データベースの作成を含む)
- PostGISの利用
この内、“PostgreSQL/PostGISのインストール”は標準パッケージからのインストールと、オープンソースからのインストールに分けて紹介する。まずは、標準パッケージを利用してインストールする方法、次にオープンソースからコンパイルする方法という順序で紹介する。ただし、PostgreSQL、PostGISとも先週から初めて使い始めたので、まだ不慣れであり、不的確なオペレーション(とくにデータベース関連のオペレーション)があるかも知れないことを予め断わっておく。
なお、Ubuntu 9.10 Serverの標準パッケージとしてインストールできるPostgreSQLは8.4、PostGISは1.3.5である。(現時点での最新LTSであるUbuntu 8.04 LTSでは、PostgreSQLは8.3、PostGISは1.2.1である。)オープンソースの最新版は今日の時点ではPostgreSQLは8.4.2、PostGISは1.4.1である。
以下の作業は、先ずroot権限で行うので任意のユーザでログインした後、“sudo -s”でroot権限を得た状態で作業を始める。
⇒次へ(パッケージ版) ⇒次へ(オープンソース版) ⇒トップへ
PostgreSQL/PostGISのインストール(パッケージ版)
■ PostgreSQLのインストール
まず、ベースとなるLinuxをインストールする。その際(=インストール時)に、追加パッケージを聞かれるが、ここではPostgreSQLを選択しないこと。なぜなら....
Ubuntu 9.10の標準パッケージをインストールするとPostgreSQLは8.4、PostGISは1.3.5になりそうだが、実はPostgreSQLは8.3をインストールしなければならない。標準パッケージのPostGISはPostgreSQL 8.4をサポートしていないためだ。Ubuntuを起動して次のコマンドでPostGISが対応しているPostgreSQLを確認する。
root@postgis:~# apt-get update root@postgis:~# apt-cache pkgnames | grep postgresql-\.*-postgis postgresql-8.3-postgis
そこで、PostgreSQL 8.3をインストールしなければならない。(もし、既に別のバージョンのPostgreSQLがインストールされている場合は、別のマシンを使うか apt-get remove postgresqlで削除する必要がある。)
root@postgis:~# apt-get install postgresql-8.3
この時、PostgreSQL 8.3は最新版でないので 8.4へアップグレードするようにというメッセージが出るが、これは無視(メッセージ画面で
しかし、セキュリティパッチなどのアップグレードで勝手に8.4へアップグレードされても困るので、念のため8.3をインストール後、apt-get upgrade、apt-get distupgradeを実行したが、自動的に8.4へアプリケーショングレードされることはなかった。
PostgreSQL/PostGISのインストール(オープンソース版)
ここではPostGISをオープンソースからコンパイルしてインストールする方法を紹介する。ただし、ベースとなるPostgreSQLは標準パッケージ利用してインストールしている。
■ PostgreSQLのインストール
Ubuntu 9.10の場合、標準パッケージのPostgreSQLが8.4なので、SQLサーバはそのまま標準パッケージをインストールした。
root@postgis:~# apt-get install postgresql
厳密には最新版ではないかも知れないが、ここはそれ程神経質にならず、標準パッケージを使った方が、パッチの対応も“お任せ”できるので良いだろう。
■ PostGISの実行に必要なパッケージの追加
標準パッケージからインストールする場合は、パッケージ管理システム(Debian系だとapt、Reddhat系だとyum等)が必要となる関連パッケージも自動的にインストールするので、余計な手間がかからないが、ソースコードからインストールする場合には、先に必要なパッケージを手動でインストールする必要がある。そのため、PostGIS環境で利用するパッケージ、GEOS(Geometry Engine Open Source:幾何エンジン)とProj.4(Cartographic Projections Library:地図処理投影ライブラリ)を次の様にインストールしておく。
root@postgis:~# apt-get install libgeos-dev root@postgis:~# apt-get install proj
■ PostGISのインストールに必要なパッケージの追加
PostGISのインストール(コンパイル、設定、チェック)に必要なパッケージを予めインストールしておく。
root@postgis:~# apt-get install libpq-dev root@postgis:~# apt-get install postgresql-server-dev-8.4 root@postgis:~# apt-get install flex root@postgis:~# apt-get install xsltproc root@postgis:~# apt-get install libcunit1-ncurses-dev
最後のCUnitパッケージは無くてもインストールは可能。CUnitは、後述する“インストール状況の確認”の際に、CUnitが存在すればユニットテストを行う。もし、CUnitが存在しなければユニットテストは省略される。
次のパッケージはドキュメント生成で必要とされるパッケージのようで、これらをインストールしなくてもPostGISをインストールすることはできる。これらのパッケージ、特にdblatexはフォントデータをインストールするためサイズが大きい。500MB近く喰ってしまうので、例えばPostGISと座標処理だけしたいとかいう場合は必要ないかも知れない。もっとも500MB程度は高が知れているのだけど。)ドキュメントも含め全てをインストールする場合には予め追加しておく。
root@postgis:~# apt-get install graphicsmagick-imagemagick-compat root@postgis:~# apt-get install dblatex root@postgis:~# apt-get install ldp-docbook-xsl
■ PostGISのインストール
今までの作業はパッケージのインストールが中心だったのでroot(つまり sudo -sの状態)で実行した。以降の作業も rootで続けることもできるが、PostGISのソースの保管・管理などは一般ユーザで行った方が良いので、“postgres”というユーザで行うことにした。(“postgis”などのユーザを作成しても良いが、adminユーザに登録したり、データベースに管理者として登録するなど、セキュリティが低下するため“postgres”で作業することにした。この辺りを気にしないのであればpostgresとは別に“postgis”というアカウントを作成して作業した方が良いだろう。)
まず、postgresアカウントをadminグループに追加し、パスワードを設定してから、postgresにsu(switch user)する。
root@postgis:~# adduser postgres admin Adding user `postgres' to group `admin' ... Adding user postgres to group admin Done. root@postgis:~# passwd postgres Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully root@postgis:~# su - postgres To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. postgres@postgis:~$
(なお、一連の作業が終わったらpostgresをadminグループから削除し、パスワードも潰しておいた方が良いだろう。)
次にPostGISのソースコードをダウンロードする。“PostGIS:Downloads”ページから適当なものをダウンロードする。私は今日時点で最新版である postgis-1.4.1.tar.gz をダウンロードした。ダウンロードしてtar展開すると以下の様にファイルが解凍される。
postgres@postgis:~$ wget http://postgis.refractions.net/download/postgis-1.4.1.tar.gz postgres@postgis:~$ ls 8.4 postgis-1.4.1.tar.gz postgres@postgis:~$ tar xf postgis-1.4.1.tar.gz postgres@postgis:~$ ls 8.4 postgis-1.4.1 postgis-1.4.1.tar.gz postgres@postgis:~$ ls postgis-1.4.1 aclocal.m4 COPYING liblwgeom postgis TODO autogen.sh CREDITS libtool postgis_comments.sql topology ChangeLog doc loader postgis_config.h.in utils config.guess extras ltmain.sh README.postgis Version.config config.sub GNUmakefile macros regress configure install-sh Makefile spatial_ref_sys.sql configure.ac java NEWS STYLE postgres@postgis:~$
ここでREADME.postgisを見て先ほどインストールしたPostgreSQLのバージョンが適合するか確認しておく。以下の様な記述があるはずだ。
postgres@postgis:~$ more postgis-1.4.1/README.postgis : REQUIREMENTS ------------ PostGIS is compatible with PostgreSQL 8.2 and above. :
問題無ければ、PostGISのソースコードのディレクトリに移り、最初に“./configure”を実行する。無事にコンフィグレーションが実行できれば、次のようなサマリが出て終わる。
postgres@postgis:~/postgis-1.4.1$ ./configure : : PostGIS is now configured for x86_64-unknown-linux-gnu -------------- Compiler Info ------------- C compiler: gcc -g -O2 C++ compiler: g++ -------------- Dependencies -------------- GEOS config: /usr/bin/geos-config GEOS version: 3.1 PostgreSQL config: /usr/bin/pg_config PostgreSQL version: 8.4 PROJ4 version: 46 PostGIS debug level: 0 -------- Documentation Generation -------- xsltproc: /usr/bin/xsltproc xsl style sheets: /usr/share/xml/docbook/stylesheet/nwalsh dblatex: /usr/bin/dblatex convert: /usr/bin/convert
次にライブライブラリのコンパイルやSQLプログラム、コメントを生成する。
postgres@postgis:~/postgis-1.4.1$ make : : PostGIS was built successfully. Ready to install.
“PostGIS was built successfully. Ready to install.”というメッセージが出てくればOK。
次に commnetsデータベースとドキュメント類を作成する。
postgres@postgis:~/postgis-1.4.1$ make comments postgres@postgis:~/postgis-1.4.1$ make docs
作成したライブラリ類をインストールする。
postgres@postgis:~/postgis-1.4.1$ sudo make install postgres@postgis:~/postgis-1.4.1$ sudo make comments-install postgres@postgis:~/postgis-1.4.1$ sudo make docs-install
(makeを実行せずに行き成りmake installでも良いが、コンパイルエラーやインストールエラーが発生した場合に原因の切り分けを単純にするためにもmakeとmake installは分けて実行した方が良い。)
このコマンドで(バージョンや環境等によっても異なるが)次のファイルがインストールされる。
/usr/lib/postgresql/8.4/lib/postgis-1.4.so /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql /usr/share/postgresql/8.4/contrib/postgis.sql /usr/share/postgresql/8.4/contrib/uninstall_postgis.sql /usr/share/postgresql/8.4/contrib/postgis_upgrade_14_minor.sql /usr/share/postgresql/8.4/contrib/postgis_upgrade_13_to_14.sql /usr/share/postgresql/8.4/contrib/postgis_upgrade_12_to_14.sql /usr/share/postgresql/8.4/contrib/postgis_comments.sql /usr/lib/postgresql/8.4/bin/pgsql2shp /usr/lib/postgresql/8.4/bin/shp2pgsql /usr/share/doc/postgresql/postgis/postgis.html /usr/share/doc/postgresql/postgis/README.postgis /usr/share/postgresql/8.4/man/man1/pgsql2shp.1 /usr/share/postgresql/8.4/man/man1/shp2pgsql.1
ここで注意しなければならないのは、2つのLinuxコマンド pgsql2shpと shp2pgsqlである。標準パッケージからのインストールではこれらのコマンドは /usr/bin/に設置されるので、何の追加設定も無く利用することができる。しかし、/usr/lib/postgresql/8.4/bin/にはpathが設定されていないので、このままでは2つのコマンドを利用できない。正統派(?)の設定方法としては、PostGISを利用するユーザのpathに“/usr/lib/postgresql/8.4/bin”を追加することだろう。しかし、私は今回のケースでは /usr/bin/からシンボリックリンクを張る方法で対処した。
$ sudo ln -s /usr/lib/postgresql/8.4/bin/shp2pgsql /usr/bin/ $ sudo ln -s /usr/lib/postgresql/8.4/bin/pgsql2shp /usr/bin/
将来、パッケージ版のpostgisをインストールした際は上書きされる。
■ インストール状況の確認
最後に make checkにより、正常にインストール出来たかをテスト(リグレッション・テスト)する。
postgres@postgis:~/postgis-1.4.1$ make check : : Run tests: 42 Failed: 0 make[1]: Leaving directory `/var/lib/postgresql/postgis-1.4.1/regress'
“Failed”が0であればOK。
インストール作業が無事に終わったら作業用ディレクトリをお掃除しておこう。
postgres@postgis:~/postgis-1.4.1$ make clean
PostGIS用データベースの作成
以上までの手順で(標準パッケージからインストールするか、オープンソースからインストールするかに関わらず)PostGISを利用する準備が出来た。次は、GIS情報を格納するためにPostGIS機能拡張されたデータベースを作成する。
PostGIS用データベースを作成するは、
の2通りがある。テンプレート“template_postgis”がPostgreSQLサーバに既に登録されている場合は、
postgres@postgis:~$ createdb -T template_postgis gistestdb
とコマンド1つで済む。(ここで作成するPostGIS用データベースの名前は“gistestdb”とする。以下、同様。) ただ、私のインストールしたPostGISではテンプレートデータベース template_postgisが見当たらなかった。マニュアルを見るとWin32用のインストーラーでバージョン1.1.5以上に入っているようだが、私のインストールしたLinux版にはことごとく入っていなかった。(なぜ、Windows版だけなのだろう?)ダウンロードした“postgis-1.4.1/extras/template_gis”というディレクトリにテンプレート・データベースを作成するシェルスクリプト等が入っているし、“templategis”というmakeコマンドのターゲットも存在するが、“make templategis”としてもエラーで終了してしまう。postgis-1.4.1/extras/template_gis/Makefileが今のバージョンの構成に対応していない。template_gisのプログラムは使われなくなったようだ。理由は分からないが。
仕方ないのPostGISのマニュアルとtemplate_gisディレクトリの中を参考にし、PostGISのSQLライブラリを使って“自前”の template_postgisデータベースを作成した。
ここで更に、PostGIS用データベースを作成する方法はPostGIS Ver 1.3 と Ver 1.4でパスやファイル名などが微妙に異なっている。以下に両方の手順を載せておくが、Ver 1.3に関してはUbuntu 9.10の標準パッケージとしてインストールしたVer 1.3.5、Ver 1.4に関してはオープンソースからインストールしたVer 1.4.1の例となる。
Ver 1.3での手順
postgres@postgis:~$ createdb template_postgis postgres@postgis:~$ createlang plpgsql template_postgis postgres@postgis:~$ psql -d template_postgis -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql postgres@postgis:~$ psql -d template_postgis -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql
Ver 1.4での手順
postgres@postgis:~$ createdb template_postgis postgres@postgis:~$ createlang plpgsql template_postgis postgres@postgis:~$ psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/postgis.sql postgres@postgis:~$ psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql postgres@postgis:~$ psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/postgis_comments.sql
ここでVer 1.3の手順には“postgis_comments.sql”を読み込むステップが無いが、これはUbuntu 9.10の標準パッケージからインストールするとpostgis_comments.sqlがインストールされないため。オープンソースのVer 1.3にはpostgis_comments.sqlがあるらしい(未確認)。なお、postgis_comments.sqlは読み込まなくても動作には支障はない。
作成した“template_postgis”をテンプレート・データベースとして扱えるように設定する。また、PostGISのデータベースやテーブルを扱うための“postgis”というロールを作って置き、PostGISデータベースを扱うユーザはこのロールに属せるように設定しておく。
先ず、“postgis”というロールを作る。
postgres@postgis:~$ psql psql (8.4.2) Type "help" for help. postgres=# CREATE ROLE postgis; CREATE ROLE postgres=#
この例ではpostgisはログイン属性の無い単なるロールであるが、postgisというユーザでPostgreSQLへアクセスし管理したい場合は、CREATE USERを使ってロールを作成しても構わない。
次に、データベースtemplate_postgisやその中のテーブルのオーナーをpostgisに変更する。
postgres=# ALTER DATABASE template_postgis OWNER TO postgis ; ALTER DATABASE postgres=# \c template_postgis psql (8.4.2) You are now connected to database "template_postgis". template_postgis=# \d List of relations Schema | Name | Type | Owner --------+------------------+-------+---------- public | geometry_columns | table | postgres public | spatial_ref_sys | table | postgres (2 rows) template_postgis=# ALTER TABLE geometry_columns OWNER TO postgis ; ALTER TABLE template_postgis=# ALTER TABLE spatial_ref_sys OWNER TO postgis ; ALTER TABLE template_postgis=# \d List of relations Schema | Name | Type | Owner --------+------------------+-------+--------- public | geometry_columns | table | postgis public | spatial_ref_sys | table | postgis (2 rows) template_postgis=#
最後にデータベースtemplate_postgisにテンプレート属性を設定し、更に“接続不可”属性を与える。
template_postgis=# VACUUM FULL ; VACUUM template_postgis=# VACUUM FREEZE ; VACUUM template_postgis=# \c postgres psql (8.4.2) You are now connected to database "postgres". postgres=# UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template_postgis' ; UPDATE 1 postgres=# UPDATE pg_database SET datallowconn = FALSE WHERE datname = 'template_postgis' ; UPDATE 1 postgres=# \q postgres@postgis:~$
参考までに、以上の手続きをLinuxシェルから実行する場合の手順を次に載せておく。これをシェルスクリプトにまとめればPostGISテンプレート作成プログラムが出来る。(PostgreSQL管理者アカウント(“postgres”等)で実行する。)
createdb template_postgis createlang plpgsql template_postgis psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/postgis.sql psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/postgis_comments.sql psql -c "CREATE ROLE postgis ;" psql -c "ALTER DATABASE template_postgis OWNER TO postgis ;" psql -d template_postgis -c "ALTER TABLE geometry_columns OWNER TO postgis ;" psql -d template_postgis -c "ALTER TABLE spatial_ref_sys OWNER TO postgis ;" psql -d template_postgis -c "VACUUM FULL ;" psql -d template_postgis -c "VACUUM FREEZE ;" psql -c "UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template_postgis' ;" psql -c "UPDATE pg_database SET datallowconn = FALSE WHERE datname = 'template_postgis' ;"
PostGISの利用
最初に述べたように、今回PostGISはLinuxサーバ上で動かし、GUIベースのGISのアプリケーション等はネットワークを介してWindows PCで利用することを想定している。そこでPostgreSQLをネットワークから利用できるように設定する。
先ずはPostGISを利用するユーザアカウントを作る。ここでは“adsaria”というユーザとデフォルトのデータベースを作成し、このユーザはpostgisロールに属するように設定する。
postgres@postgis:~$ psql psql (8.4.2) Type "help" for help. postgres=# CREATE USER adsaria CREATEDB LOGIN PASSWORD 'password' ; CREATE ROLE postgres=# GRANT postgis TO adsaria ; GRANT ROLE postgres=# CREATE DATABASE adsaria OWNER adsaria ; CREATE DATABASE postgres=# \q postgres@postgis:~$
(ロールpostgisへの付加はGRANTを使わずに、CREATE USER時に IN ROLE句を使って設定もできる。)
次に、ネットワークからPostgreSQLサーバへアクセスできる様にファイル /etc/postgresql/8.4/main/pg_hba.conf(パス名はPostgreSQLのバージョン等によって異なる)に次の行を追加する。
# host all adsaria 0.0.0.0/0 md5
これで“adsaria”というユーザはパスワード認証を使ってどのネットワークからもアクセスできる。
更に /etc/postgresql/8.4/main/postgresql.conf の“listen_addresses”行のコメントを外して、アクセス可能なホストを指定する。(ここでは任意のホストからアクアセを許すように設定している。)
listen_addresses = '*' # what IP address(es) to listen on;
PostgreSQLサーバを再起動する。
postgres@postgis:~$ sudo service postgresql-8.4 restart
これでネットワーク経由のアクセスが可能になったので、“-h”オプションと共に psql コマンドでアクセスできることを確認する。(その際、アドレスとして127.0.0.1(またはlocahost)は使わない。)
postgres@postgis:~$ psql -U adsaria -h 192.168.1.129 Password for user adsaria: psql (8.4.2) SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help. adsaria=> \q postgres@postgis:~$
ユーザの準備とネットワークからアクセスが整ったのでPostGISデータベースを作成する。
postgres@postgis:~$ psql -U adsaria -h 192.168.1.129 Password for user adsaria: psql (8.4.2) SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help. adsaria=> CREATE DATABASE gistestdb TEMPLATE template_postgis ; CREATE DATABASE adsaria=> \c gistestdb psql (8.4.2) SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) You are now connected to database "gistestdb". gistestdb=> \d List of relations Schema | Name | Type | Owner --------+------------------+-------+--------- public | geometry_columns | table | postgis public | spatial_ref_sys | table | postgis (2 rows) gistestdb=> \q postgres@postgis:~$
次に、今作ったgistestdbデータベースにGISデータを読み込む。
GISデータを入手しなければならないが、ESRI社が無償で配布している“全国市区町村界データ”等で試すことができる。(非営利目的で非再配布であれは利用できるようだ。)“japan_ver62.zip”が最新バージョン(とっていも2007年10月更新だが)になっている。
先ずはファイルをダウンロードしてunzipする。(unzipコマンドが無い場合は“apt-get install zip”でパッケージを追加する。)
postgres@postgis:~$ mkdir Shapes postgres@postgis:~$ cd Shapes/ postgres@postgis:~/Shapes$ wget http://www.esrij.com/products/gis_data/japanshp/files/japan_ver62.zip : postgres@postgis:~/Shapes$ ls japan_ver62.zip postgres@postgis:~/Shapes$ unzip japan_ver62.zip : postgres@postgis:~/Shapes$ ls japan_ver62 japan_ver62.zip postgres@postgis:~/Shapes$ cd japan_ver62 postgres@postgis:~/Shapes/japan_ver62$ ls japan_ver62.dbf japan_ver62.sbn japan_ver62.shp japan_ver62.shx japan_ver62.prj japan_ver62.sbx japan_ver62.shp.xml Readme.txt postgres@postgis:~/Shapes/japan_ver62$
次にPostGISのコマンド shp2pgsqlを使ってshpフォーマットをSQL文に変換し、それをpsqlコマンドでデータベースに読み込む。
postgres@postgis:~/Shapes/japan_ver62$ shp2pgsql -W SJIS japan_ver62.shp japan_ver62 gistestdb > japan_ver62.sql Shapefile type: Polygon Postgis type: MULTIPOLYGON[2] postgres@postgis:~/Shapes/japan_ver62$ ls japan_ver62.dbf japan_ver62.sbn japan_ver62.shp japan_ver62.shx Readme.txt japan_ver62.prj japan_ver62.sbx japan_ver62.shp.xml japan_ver62.sql postgres@postgis:~/Shapes/japan_ver62$ psql -U adsaria -d gistestdb -h 192.168.1.129 < japan_ver62.sql Password for user adsaria: : : COMMIT postgres@postgis:~/Shapes/japan_ver62$
これで形状ファイルが読み込めた。後はお好みのGISアプリケーションからネットワーク越しにアクセスすればいい。
次の例はネットワーク上のWindows PCにある“uDig”というGISアプリケーションからPostGISデータベースをアクセスした。