PostGISのインストール

PostGISのインストール

農業・食品産業技術総合研究機構 近畿中国四国農業研究センター
寺元 郁博

 

はじめに

今回は PostGIS のインストール方法と、インストールが適正に行われたかをチェックする方法について説明します。 インストール方法には色々ありますが、今回は Windows 用の PostgreSQL インストーラに付属しているスタックビルダから入れる方法と、ソースからインストールする方法を紹介します。

スタックビルダを使ったインストール

まず、PostgreSQL の本家 FTP サイトからインストーラをダウンロードします。 本記事では、PostgreSQL 8.4 を例にしています。 もし PostgreSQL がインストールされていなければ、こちらの記事を参考に PostgreSQL 本体をインストールしておきましょう。 また、pgAdmin III を入れておくと、データの操作や確認が簡単にできます。

次に、スタートメニューから「PostgreSQL 8.4」にある「アプリケーションスタックビルダ」を起動させます。起動後は以下の手順を踏んで行きます。

  1. スタックビルダを管理者権限で実行します。
  2. 対象サーバを選択します。
    [スタックビルダの起動画面]
  3. Spatial Extensions カテゴリから、PostGIS 1.5 を選択します。
    [PostGISを選択した図]
  4. 「次に」を押下していくと、PostGISがダウンロードされるのでインストーラを起動させます。
  5. インストール前にライセンス (GPL) を確認して「I Agree」をクリックします。
    [PostGISインストーラの起動画面で、ライセンスを表示している図]
  6. インストールするコンポーネントを決定する画面では、PostGIS と Create spatial database にチェックが入っているのを確認して「Next」をクリックします。
    [ンストールするコンポーネントを決定する画面]
  7. インストール対象サーバでインストールできるよう、ユーザ名とパスワードとポート番号を設定します。
    [インストール用のPostgreSQLユーザ名、パスワードおよびポート番号を入力する画面]
  8. 「shp2pgsqlをpgAdmin III で使えるようにしますか?」と聞かれます。「はい」としておきましょう。
    [shp2pgsqlをpgAdmin III で使えるようにしますか訪ねている場面]
  9. インストールが行われます。
  10. 完了したら pgAdmin III で見てみましょう。 postgis と template_postgis ができているのが分かります。
    [pgAdmin IIIでpostgis関連テーブル、テンプレートがインストールされた図]

スタックビルダからPostGISをインストールする際に、PostGISに必要なライブラリ等も、まとめてインストールされます。

ソースからのインストール

ライブラリ等

ソースからインストールする場合には、 GEOSPROJ.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を導入する方法について説明しました。

これで準備は整いました。次回は実際にデータを入れてみて、別のソフトウェアを使って図示してみます。


(2010年6月16日 公開)