オークニーさんが出しているオープンソースのルーティングエンジンPostLBSを、Windows環境で構築してみました。
WindowsXPのSP2で試してみたところ、サンプルアプリを動かすところまでは上手くいきました。
以下はそのときのメモです。
PostLBSのセットアップ
まずはPostGISが動く環境を作ります。
PostgreSQL 8.1.4で動作確認しました。(8.1.5では上手くいきませんでした)
PostGISはインストールオプションに付属のものでOKでした。
PostLBSのダウンロードページから、pgRouting(Windows binary)をダウンロードし、中身をPostgreSQLのインストール先フォルダへコピーします。
routingを使用するDBへ対して以下のSQLを実行します。
share\contrib\routing.sql
share\contrib\routing_postgis.sql
pgAdminⅢから実行すると上手くいくのですが、psqlで実行するとエラーになりました。
「\’を使わずに、”を使え」と言ってきたので、置換してから実行する上手くいきました。
これで、pgRoutingの各ファンクションが使えるようになります。
サンプルアプリを入れる
MS4Wをセットアップします。
バージョンは2.2.1で試しました。
「pgRouting Sample Application」をダウンロードして、MS4Wのappsフォルダへコピーします。
「httpd.d」フォルダへApacheの定義ファイルを追加して、routingjアプリケーションを使えるようにします。
「routing」というDBを作り、pgRoutingを使えるようにします。
createdb -U postgres routing
psql -U postgres -d routing -f “C:\Program Files\PostgreSQL\8.1\share\contrib\routing.sql”
psql -U postgres -d routing -f “C:\Program Files\PostgreSQL\8.1\share\contrib\routing_postgis.sql”
「data\kanagawa.shp」をroutingデータベースへインポートします。
インデックスも作っておくと処理速度が速くなります。
shp2pgsql -D -c kanagawa.shp kanagawa > kanagawa.sql
psql -U postgres -f kanagawa.sql routing
psql -U postgres -d routing -c “create index k1 on kanagawa using gist (the_geom GIST_GEOMETRY_OPS);”
psql -U postgres -d routing -c “create index k2 on kanagawa( source );”
psql -U postgres -d routing -c “create index k3 on kanagawa( target );”
psql -U postgres -d routing -c “vacuum full;”
サンプルファイルはLinux用?なので、以下の修正を行います。
phtmlsフォルダ内の各「.phtml」ファイルの中身を以下のように修正します。
「php_mapscript.so」→「php_mapscript_4.10.0.dll」
「maps/routing.map」ファイル内の、
「IMAGEPATH」定義をフルパスに代える。
各「LAYER」の「CONNECTION」へPostgreSQLへ接続するための情報を設定する
これで、とりあえずは上手く動作しました。
最近のコメント