Convivial-Web

WEBを共に愉しむ。

Month: 11月 2006

PostLBSをWindowsで使ってみる

オークニーさんが出しているオープンソースのルーティングエンジン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へ接続するための情報を設定する
これで、とりあえずは上手く動作しました。

OpenLayersでGoogleMapsとWMSを重ね合わせる

OpenLayersのバージョンが上がって、2.2になっていました。
WMSレイヤの投影法を、ベースとなるレイヤの投影法に合わせることができるようになっています。
これで何がうれしいかというと、GoogleMapsとWMSの重ね合わせが出来るようになります。→サンプル
他には、
・MapServerのCGIに対応。
・静的な画像を表示可能。
・オーバービューマップコントロールの追加→サンプル
などが追加されているようです。
詳しくはこちら

Google Maps APIはObject汚染を許さない!

Google Maps APIのあるバージョンから、Markerを追加するときにエラー「Bd(a, b, true).push is not a function」が発生するようになってしまいました。いろいろ試してみた結果、Object.prototypeに独自関数を追加している場合に発生することがわかりました。→再現ページ
いわゆる、Object汚染というやつです。
以前はPrototype.jsのオブジェクト汚染(現バージョンでは解決済み)がよく話題になっていましたが、jsonricoがいまだに、この問題を抱えています。
というわけで、上記2つのライブラリとGoogle Maps APIを同時に使用している場合は注意が必要です。
バージョン指定をしないでGoogle Maps APIを使っていると、今回のようなケースでいつの間にかアプリケーションが動かなくなってしまうことがあります。
組み込みのオブジェクトを勝手に拡張しているライブラリの方が悪いのだとは思いますが…
※追記1
この問題はFirefox2.0で発生します。
IE7では発生しないようです。
※追記2
v2.64以降で発生するようです。→Bd(a, b, true).push is not a function

Wikiが実現する新たなWebの世界とは

グーグル、Wikiシステムを提供するJotSpotを買収
GoogleがJotSpotを買収し、いよいよWikiの時代がやってくる予感がします。
すでに一般市民にも浸透しているBlogやSNSと比べると、自由度が高い分取っ付きにくかったり、誰でも編集できてしまう点を気持ち悪がられたりと、Web2.0の代表例の割には、不遇な扱いを受けてきていたような印象を持っています。
WikiがBlogと異なる点は、Blogが単にコンテンツを溜め込んでいく(まさにCGM)なのに対して、Wikiはお手軽Webサイト構築ツールにもなり得るという点にあります。Blogはある程度定められたフォーマットの中にコンテンツが溜め込まれていきますが、WikiはWebサイトの構造自体をある程度自由に作り上げることができます。
その点に着目して、いくつかの企業がEnterprise2.0やOffice2.0といわれるようなサービスとしてビジネスにしようとしていたようですが、ついにGoogle参入と相成ったということでしょうか。
Googleに取り込まれるからには、単なるWebサイト構築ツールに留まらず、マッシュアップのためのプラットフォームのようなものが出てこないかと期待しています。
WikiでHTMLページを作成するだけでなく、地図を貼り付けたり、カレンダーと連動したり、表計算式が埋め込まれていたりすると楽しいと思います。(プログラム大好きな人にとってはつまらないかもしれませんが…)
一昔前に、Access、Excelと共に、「エンドユーザーコンピューティング」という言葉が流行ったのですが、あのような現象がWebサイト構築でも起きてくるのではないでしょうか。この場合、構築する対象がWebサイトとなるので、「エンドユーザー・ウェブパブリッシング」とでも言ったらよいのでしょうか?
俺Myマッシュアップがプログラマ以外の人たちからも作られるようになると、WebAPIの形態も変わってくるかもしれません。

© 2017 Convivial-Web

Theme by Anders NorenUp ↑