PostGISのインストール
農業・食品産業技術総合研究機構 近畿中国四国農業研究センター
寺元 郁博
はじめに
今回は PostGIS のインストール方法と、インストールが適正に行われたかをチェックする方法について説明します。 インストール方法には色々ありますが、今回は Windows 用の PostgreSQL インストーラに付属しているスタックビルダから入れる方法と、ソースからインストールする方法を紹介します。
スタックビルダを使ったインストール
まず、PostgreSQL の本家 FTP サイトからインストーラをダウンロードします。 本記事では、PostgreSQL 8.4 を例にしています。 もし PostgreSQL がインストールされていなければ、こちらの記事を参考に PostgreSQL 本体をインストールしておきましょう。 また、pgAdmin III を入れておくと、データの操作や確認が簡単にできます。
次に、スタートメニューから「PostgreSQL 8.4」にある「アプリケーションスタックビルダ」を起動させます。起動後は以下の手順を踏んで行きます。
- スタックビルダを管理者権限で実行します。
- 対象サーバを選択します。
- Spatial Extensions カテゴリから、PostGIS 1.5 を選択します。
- 「次に」を押下していくと、PostGISがダウンロードされるのでインストーラを起動させます。
- インストール前にライセンス (GPL) を確認して「I Agree」をクリックします。
- インストールするコンポーネントを決定する画面では、PostGIS と Create spatial database にチェックが入っているのを確認して「Next」をクリックします。
- インストール対象サーバでインストールできるよう、ユーザ名とパスワードとポート番号を設定します。
- 「shp2pgsqlをpgAdmin III で使えるようにしますか?」と聞かれます。「はい」としておきましょう。
- インストールが行われます。
- 完了したら pgAdmin III で見てみましょう。 postgis と template_postgis ができているのが分かります。
スタックビルダからPostGISをインストールする際に、PostGISに必要なライブラリ等も、まとめてインストールされます。
ソースからのインストール
ライブラリ等
ソースからインストールする場合には、 GEOS、PROJ.4 が必要です。 それぞれのインストール方法はリンク先の情報を参考にして下さい。
GEOS は、幾何演算ライブラリで、PostGIS がサポートする幾何演算の多くは、このライブラリを使用しています。 PROJ.4 は、投影変換ライブラリです。地図を扱う場合には付きものである「投影」の計算を行うために必要です。 また、libiconv は必須とされていませんが、日本語を扱う場合には入れておくと良いでしょう。
コンパイル
configure オプションで重要なのは以下のものです。
- --with-pgsql=(pg_configへのパス)
- --with-projdir=(PROJ.4のインストールディレクトリへのパス)
- --with-geosconfig=(GEOSのインストールディレクトリへのパス)
なお、--prefixオプションは無視される点にご注意下さい。 インストール先は PostgreSQL をインストールしたディレクトリと常に同じになるというバグがあるようです。
configure が正常に終了すれば、make を行います。 make 時に次のようなエラーが出る場合がありますが、
In file included from shp2pgsql-cli.c:16: shp2pgsql-core.h:23:19: error: iconv.h: No such file or directory
この際には、loader ディレクトリに移動後、iconv.h を指定して make すれば解決します。
$ cd loader $ gmake CFLAGS=-I(iconv.hの存在するディレクトリ)
PostGIS に付属されるもの
PostGIS には、shp2pgsql, pgsql2shp というツールが同梱されています。
shp は、GIS 大手のESRI社が策定した「シェープファイル」と呼ばれるGISデータファイルのことです。 GIS 業界では、ソフトごとに異なる形式でデータを保存していますが、シェープファイルは、大手の決めた仕様だけあって、たいていの GIS で読み込み、書き出しができます。 PostGIS でもその例に漏れず、これらのツールを使うとシェープファイルを PostGIS データベースに格納することができます。
空間データベースの作成
空間データベースとは、PostGIS に必要な関数やデータ型、テーブルなどがあらかじめ備わっているデータベースです。それ以外は特に通常のデータベースとは変わりありません。インストールが完了したら、ためしに空間データベースを作成してみましょう。
テンプレートが存在している場合
テンプレート (template_postgis データベース) があるかを psql -l
で確認しましょう。存在している場合には、次のコマンドでテンプレートを利用してデータベースを作成できます。
$ createdb -T template_postgis (データベース名)
テンプレートが存在していない場合
テンプレートが存在していない場合には、データベースを作成して、PL/pgSQL を入れ、PostGIS 特有の関数、型、テーブル等を手動で作成する必要があります。具体的には、次のコマンドを逐次実行していきます。
createdb (データベース名) -E UTF-8 $ createlang plpgsql (データベース名) $ psql (データベース名) -f $(postgis_contrib)/postgis.sql $ psql (データベース名) -f $(postgis_contrib)/spatial_ref_sys.sql
ここで $(postgis_contrib) は、$(postgresql)/share/contrib/postgis-1.5 となります。
正しくインストールされたか
正しくインストールされたか確認するには、postgis_version() 関数を用います。
db=# select * from postgis_version(); postgis_version --------------------------------------- 1.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1 (1 row)
これで、PostGIS 1.5 がインストールされ、GEOS, PROJ も使っていることが確認できます。
libiconv は PostGIS 本体ではなく、前述の shp2pgsql, pgsql2shp も使用しています。libiconv を確認するには、shp2pgsql の usage を表示してみて下さい。
$ shp2pgsql ... OPTIONS: ... -W Specify the character encoding of Shape's attribute column. (default : "ASCII")
この"-W"オプションがusageに表示されている場合は、libiconv を取り込んでコンパイルしたことを意味します。
おわりに
今回は、2種類のインストールと、データベースにPostGISを導入する方法について説明しました。
これで準備は整いました。次回は実際にデータを入れてみて、別のソフトウェアを使って図示してみます。