三浦です。 先月から開発してきた、nginx Webサーバで動作する タイルサーバ(配信、レンダリング)のバージョン1.0ベータ1の リリースをいたします。
ファイルは、 https://github.com/osmfj/tilecache/tags こちらからダウンロードいただけます。 また、関さんたちのおかげで、簡単に仮想環境で実験できるようになりました。 この成果により、Tirexレンダリングエンジンを経由して、 タイルを自動生成して配信するところまで、確認できました。 本リリースでは、次の機能を実現する設定やツールが含まれます。 1.タイル画像のキャッシュサーバ機能 本ソフトウエアの tileproxy サーバ設定(nginx/sites/tileproxyファイル) を設置することで、 http://a.サーバ名/{z}/{x}/{y}.png にアクセスすることで、 *.tile.openstreetmap.org にアクセスしたのと 同じタイル画像が、配信されます。 また、一度配信した画像は、キャッシュされるようになるため、応答が 早くなります。ビジネス用途で利用するにあたり、本家のサーバ負担を 考慮して、少なくともキャッシュサーバをユーザ提供するように お願いします。 2.タイル画像の差し替え機能 本ソフトウエアの statictile サーバ設定(nginx/sites/statictileファイル) を設置すること、 /var/opt/tileserver/static/{z}/{x}/{y}.pngファイルを 配置することで、 例えば、 http://s.サーバ名/{z}/{x}/{y}.png にアクセスが合った時に、静的に配置したタイル画像がある場合は、それを 返すようになり、そうではない場合は、(1)の挙動を行うことができます。 事情により、OSMのタイル画像では、不都合があるような領域の配信で、 独自のタイルを使うことで、不都合を回避できます。 サンプルとして、dataディレクトリに、試験的に利用できるように OSMデータを改変して作成したサンプルのタイル画像が置いていあります。 3.独自レンダリング 本ソフトウエアのtilesreverサーバ設定を設置することで、 Tirex(てぃーれっくす と発音)レンダリングエンジンを 用いたタイルのレンダリングが可能です。 現状では、mapnikバックエンドを使って、 Tirexに付属するexample-map 設定による配信がされることを 確認しています。 例) http://j.tile.openstreetmap.jp/2/3/1.png 4. PostGISデータベースへの日本のOSMデータのロードと、日次更新機能 mapnikバックエンドにより、OSMレンダリングを行う際には、PostgreSQL RDBMSの GIS拡張であるPostGISにOSMデータを取り込む必要があります。 本配布物の updatedb ディレクトリには、OSMデータを取り込むためのスクリプトおよび 日次で更新するためのスクリプトが配布されています。 このユーティリティを利用するには、postgresql-server 9.1や postgis、osmosisなどが必要です。 5. 生成されたタイル画像のキャッシュを管理する機能 独自レンダリング(3)で生成されたタイルは、ファイルシステムに保存され、次回のアクセス からは、生成せず、前回生成されたタイル画像を返送するようになります。 (4)でDBMSを更新する際に、再生成すべきタイル画像の情報がexpire.listフィアルとして 生成されます。 このファイルを用いて、古くなったファイルを削除することで、次回からフレッシュなタイル画像を 配信できるようになります。 この作業を行うため、mod_tileプロジェクトの render_expire ユーティリティを本配布物に 取り込んでいます。 注意 上記の機能を利用するためには、最新のnginxや、そのLUA拡張モジュール、さらに LUA拡張モジュールの追加ライブラリ等が必要になります。 Ubuntuを利用されている方の場合は、 ppa:miurahr/openstreetmapリポジトリに 動作確認しているnginxのパッケージやmapnikのパッケージがあります。 そして、本配布物のlibディレクトリにあるLUAの追加ライブラリについて lib/install.sh スクリプトを参考に導入していただく必要があります。 今後の展開 1.まだ、本リリースのバックエンドで、postgis, tirex, mapnikを連携させたタイル生成については 動作確認できていません。この動作をさせるためのノウハウ蓄積や試験が必要です。 2.バージョン1.0にするためには、開発やタイルサーバについて興味のある皆さんの 動作試験をおこなっていただいて、問題が内容にする必要があります。 3.既存の課題や機能追加課題 https://github.com/osmfj/tilecache/issues?state=open 現在わかっている問題は、こちらにて管理されています。 4.開発マイルストーン https://github.com/osmfj/tilecache/issues/milestones 今後の開発マイルストーンは、本ページで記載されています。 v1.0にむけて3点ほどの課題が残っていると思います。 以上、開発成果を報告します。 OSMFJ 三浦 _______________________________________________ Talk-ja mailing list Talk-ja@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-ja