三浦です。

先月から開発してきた、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

メールによる返信