2013/09/29
PostGIS
 >  pgRouting 2.0 正式版を含む新インストーラが出た
1. 今日やったこと
記事日付は29日だが、実際書いているのは27日。PostgreSQL 9.3.0 に PostGIS 2.1.と pgRouting 2.0 をインストールした。OS は Windows XP SP3。

三週間近く前(9/9)に PostgreSQL 9.3.0 が出てから、今日まで PostGIS と pgRouting をインストールしなかった。それは理由があって、PostGIS 2.1 Bundle という新しいインストーラが出るのを待っていたから。下の Postgres Online Journal の記事がその予告で、PostgreSQL 9.3.0 リリースと同じ日に出ていた。

Postgres OnLine Journal : POSTGIS 2.1 WINDOWS BUNDLE (2013.09.09)
http://www.postgresonline.com/journal/archives/319-PostGIS-2.1-windows-bundle.html


記事の要点は第二段落。スタックビルダという PostgreSQL 付属の追加インストーラがあるが、それ用に PostGIS 2.1 Bundle という新しい名称のバージョンを出す。Bundle というのは、PostGIS だけでなく pgRouting 等を含むから(以上、私なりに補足)。

特に注目したのは、経路探索拡張 pgRouting についての記述。待望の新バージョン 2.0 の開発版が今年6月に出たが(2013/06/20 の記事参照)、その後しばらく動きがなかった。ところが上の記事で、もう少しで pgRouting 2.0 が正式版となるのでそれを待って PostGIS 2.1 Bundle にするとあった。これを待っていたわけである。

スタックビルダを使わずとも、PostGIS や pgRouting を個別に手動でインストールすることはできる(例えば 2013/08/18 の記事参照)。しかし各バージョンの微妙な違いがあるかもしれないし、他の PC へインストールしたり他人に教える際の手間もあった。スタックビルダにあれば、PostgreSQL 本体のインストールに続いてすぐ PostGIS と pgRouting が使えるようになる。このように PostgreSQL では、拡張機能や周辺ツールが連携を良くしながらバージョンアップし続けており、実に素晴らしいと思う。

上の記事で、PostGIS の旧バージョン、特にラスタとジオグラフィ型を使う人には 2.1 へのバージョンアップを強く推している。ラスタには大幅な速度向上と新しい機能があり、ST_Clip と ST_Union 関数は much much much faster になったと。私も 2013/08/18 の記事でラスタに値を入力する新関数 ST_Setvalues を試し、従来より格段の進化を実感した。

2. インストーラ実行
前置きが長くなったが、以下、PostgreSQL 9.3.0 にスタックビルダから PostGIS 2.1 Bundle をインストールした様子を紹介する。下がスタックビルダを起動しサーバとして 9.3 を選択した直後の画面。Spatial Extensions に確かに PostGIS 2.1 Bundle がある。


↓ 数日前はこの様子で、PostGIS がなかった。


↓ スタックビルダの PostgreSQL 9.2 向けの画面。PostGIS 2.1 Bundle がこちらにも対応するのかは不明。


久しぶりに pgRouting 公式ウェブサイトを見たら、確かに 2.0 が開発版から正式版になっていた。Postgres Online Journal の記事のとおりで、PostGIS 2.1 Bundle にも含まれていると期待できる。

pgRouting Project
http://pgrouting.org/


以下、スタックビルダに沿ってインストールした様子。PostGIS 2.1 Bundle にチェックを入れて「次へ」を押すと、下のようにダウンロードファイルの保存先を聞かれる。これはどこでも良い(インストール後はファイル不要になる)。




上のようにダウンロード終了し「次へ」を押すと PostGIS 2.1 Bundle のインストーラが起動する。下がその最初。タイトルバーなどに確かに pgRouting 2.0 が入っている。


↓ インストール項目の選択画面に進むが、実質、PostGIS / pgRouting 用のデータベースを作るか否かのみ。手動でデータベースを作る場合や、既存のデータベースに PostGIS / pgRouting をインストールする場合はチェック不要。


↓ インストールするフォルダ。デフォルトで PostgreSQL のパスが入り、通常は変更不要。


↓ データベースサーバにアクセスするためのユーザ名、パスワード、ポート番号を入力。9.3 しかインストールしていなければ、ポート番号は通常 5432 になっていると思う。私は 9.1 と 9.2 をそれぞれ 5432 と 5433 のポートで動かしているので少し違う。


以上でインストール設定が終わり、Next キーでインストールが始まる。


↓ 過去に PostGIS をインストールしていると GDAL_DATA という Windows の環境変数が設定されているので、それを上書きしてもいいかというダイアログが出る。私は Yes で。


↓ インストール終了はそっけない。



↓ インストーラを閉じるとスタックビルダも終了画面になる。


3. PostGIS / pgRouting データベース作成
以上でインストーラは問題なく終了した。いよいよ PostgreSQL 9.3.0 上で PostGIS 2.1 / pgRouting 2.0 のデータベースを作る。

PostGIS 2.0 までのインストーラは必ず template_postgis というような名前のテンプレートデータベースを作っていた。今回の PostGIS 2.1 Bundle から動作が変更になった模様。昔と違って EXTENSION で簡単に PostGIS データベースが作れるようになったので、テンプレートはもう不要という判断かもしれない。

↓ pgAdminV で 9.3 のサーバに接続し、任意の名前で空のデータベースを作る。


↓ 当該データベース上でクエリツールを開き、CREATE EXTENSION postgis ; CREATE EXTENSION pgrouting ; と入力し実行するだけ。拍子抜けするほど簡単に終了した。もしトポロジ機能も必要なら CREATE EXTENSION postgis_topology ; を追加する。


↓ CREATE EXTENSION 実行後の様子。確かに PostGIS 2.1.0 と pgRouting 2.0.0 がインストールされた。



↓ PostGIS / pgRouting の関数、型、システムテーブルとビューは全て public スキーマに集約される。関数の数は1000以上ある。


以上、PostGIS 2.1 Bundle をスタックビルダから利用することで、従来より簡単に PostGIS / pgRouting データベースを作成することができた。と言っても、まだデータがない「入れ物」の状態。これに様々なデータをインポートして初めて本当のデータベースになる。
<< PL/R を PostgreSQL 9.3 から使う方法
横罫線だけの表を PDF に出力(PL/R… >>
×

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