2015/03/28

PostgreSQL ポータブル版に PostGIS & pgRouting を入れる

[PostGIS][実行環境][pgRouting]
2015/03/15 に PostgreSQL 9.4 ポータブル版をインストールし、一昨日昨日 pgAdmin もポータブル版をセットして、データベースサーバと管理ツールを一緒に USB メモリ等の外部ディスクで持ち運べるようになりました。今日はこれに PostGIS 2.1.5 と pgRouting 2.0.0 を入れ、GIS データベースまるごとポータブルになりました。今後、出先でのデモやハンズオンに使えそう。とくに PostGIS ラスタの環境変数を PC ごとに確認・設定する作業が不要になって嬉しい ≧▽≦

以下 Windows 7 32bit ゲストユーザ上での作業経過です。管理者権限なしで問題なくできました。まずポータブル版 PostgreSQL をいったん停止します ↓


公式サイトから Windows 32bit 用の PostGIS Bundle 2.1.5 をダウンロード。Bundle の名の通り pgRouting が同梱されています。

■ http://postgis.net/windows_downloads


上の青いリンク先は PostgreSQL のバージョン別フォルダに分かれており、9.4 用から postgis-bundle-pg94x32-2.1.5-2.zip を使います。インストーラを使うとポータブルでなくなってしまうので注意。開発版を含む別の配布サイトにも同じ ZIP があります。

■ http://download.osgeo.org/postgis/windows/pg94/


↓ ZIP から、当面必要な四つのフォルダ bin, gdal-data, lib, share をまるごと PostgreSQL ポータブル版のプログラムフォルダ下にコピーします。フォルダ pgAdmin III にはシェープファイルインポート用の GUI ツールを起動するプラグイン設定ファイルがあり、フォルダ utils には Perl スクリプトがありますが、どちらも自分は使わないので割愛。


↓ コピー先。フォルダ bin, lib, share は既存です。コピーするファイルは約 100 MB でした。



PostgreSQL 起動時に PostGIS ラスタ用の環境変数をセットすることが必要なので、起動用バッチファイル(先ほどのコピー先フォルダ直下にある pgsql.cmd)に ↓ のようなブロックを追加。GDAL_DATA は先ほどコピーしたフォルダ gdal-data の場所、次の行は ST_AsPNG など GDAL のドライバを使う関数を有効にするもの、最後は外部ラスタを使うかどうかです。詳細は公式ドキュメント(英語)を参照。

:: set up PostGIS variables
set GDAL_DATA=%PGSQL%\gdal-data
set POSTGIS_GDAL_ENABLED_DRIVERS=ENABLE_ALL
set POSTGIS_ENABLE_OUTDB_RASTERS=1


これで準備完了(個々のデータベースへのセットアップを除く)。修正したバッチファイルを使い PostgreSQL サーバを起動します ↓


後は通常と同様に CREATE EXTENSION で好きなデータベースに PostGIS, pgRouting をセットできます。以下ポータブル版 pgAdmin での作業経過。ポータブル版のランチャから起動し、テスト用の新しいデータベースを作成します。




↓ 作成したデータベース上で CREATE EXTENSION を実行するだけ。public スキーマに 1000 以上の関数、地理データ型、ビュー等が追加され、GIS と経路探索用の SQL が可能になります。

CREATE EXTENSION postgis ;
CREATE EXTENSION pgrouting ;



↓ とりあえずバージョンの確認。

SELECT postgis_full_version() ;
SELECT * FROM pgr_version() ;



↓ GDAL ドライバを使う PostGIS ラスタの関数の動作確認例。

SELECT ST_AsPNG(rast)
FROM ST_AddBand(
ST_MakeEmptyRaster(1, 1, 0, 0, 1), '8BUI' :: text) rast ;


繰り返しになりますが、以上すべての作業を Windows のゲストユーザ上で行えました。ポータブルでユーザ権限の制約のない、手軽な GIS & 経路探索データベースの出来上がりです。今後は PostGIS データビュワー用のポータブルなアプリを検討します。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。