DATE : 2006/08/15 (Tue)
GIS 分野に手を出すことになりそうなので、PostgreSQL で地理情報を扱うためのモジュール、PostGIS をインストールしてみました。
ここでは、Windows XP 版でのインストール方法、PostGIS そのもののインストールから、データベース上で PostGIS を扱えるようになるまでをメモします。
インストール方法
PostGIS をインストールするには、以下の方法があります。
- PostgreSQL インストーラから
PostgreSQL のインストーラから、PostGIS モジュールの追加を選択できます。Windows 版では MSI 形式のインストーラが提供されているので、PostgreSQL のインストール後でも追加できます。
ただし、PostgreSQL インストーラには古いバージョンの PostGIS が付属しています(例えば、現在の PostGIS の最新バージョンは1.1.3ですが、PostgreSQL 8.4 に付属する PostGIS は1.0.5です)。
- PostGIS インストーラから
- PostGIS の公式サイトには、最新版の PostGIS インストーラが配布されています。このインストーラからインストールする場合、PostgreSQL 付属の PostGIS は未インストール状態か、もしくはアンインストールしておかなければなりません。
ただ、参考文献によると、Windows XP SP2 上の PostgreSQL 8.1.4 と PostGIS 1.1.3 はインストール中にエラーが発生するなど、相性が良くないそうです。
データベースで地理情報を扱えるようにする
まず、PL/pgSQL 言語をデータベースで扱えるようにします。(「>」はプロンプトです)
> createlang plpgsql <データベース名>
なお、すでにインストールされている場合もあります。
次に、PostGIS オブジェクトや関数をデータベースにインストールします。具体的には、インストールしたいデータベースに対して lwpostgis.sql を実行します。
> psql -f lwpostgis.sql -d <データベース名>
lwpostgis.sql などのファイルは、「<PostgreSQL のホームディレクトリ>\share\contrib」にあります。
実行後、最後にコミットされればインストール成功です。ロールバックされた場合は、インストールが失敗しています。
ちなみに、文字エンコーディングの問題でインストールが失敗した場合は、データベースにログインした後、psql で扱う文字エンコーディングを変更して実行します(psql のコマンドラインオプションで設定する方法もあります)。(「#」は、psql のプロンプトです)
# \encoding SQL_ASCII
# \i lwpostgis.sql
最後に、座標系が定義されたデータを登録します。
> psql -f spatial_ref_sys.sql -d <データベース名>
これも実行後、最後にコミットされればインストール成功です。
これまでの作業が終われば、データベース上で地理情報を扱う準備は終わりです。
参考文献
- PostGIS
- PostGIS 0.7 日本語マニュアル
- 飛べない日々 - PostgreSQL ではなく PostGIS を使え!
- 飛べない日々 - PostgreSQL+PostGIS on Win32