JA:Slippy Map
- ここはSlippy Map一般について書いてあります。wikiページ内の <slippymap>タグについて知りたいときは、Slippy Map MediaWiki Extensionを見てください。
Slippy Map は、openstreetmap.org のメインページの地図の表示、つまり、OpenStreetMapレンダリング済みデータを閲覧するためのウェブインターフェイスを指す言葉です。初期設定では、Slippy Mapは、Mapnikでレンダリングされたタイルを表示します。地図の右上にある+記号のボタンを使うと、少し違って見えるOsmarenderのレンダリング(Tiles@homeプロジェクトによって製作されているもの)に、切り替えることもできます。その他にも、Cycle Mapレイヤーと、NoNameレイヤーがあります。
閲覧のページには、もっと基本的な情報があります。
Contents |
技術的詳細
Slippy Map は、AJAXコンポーネントです。JavaScriptをブラウザーで実行し、(全HTMLページを再読み込みなどせずに、)スクリプトがバックグラウンドでサーバーにタイルをダイナミックに要求することによって、スムースに滑る様なズームができる地図閲覧体験を与えてくれます。この実装は、ほとんどOpenLayersが提供しています。
タイルレンダリング
レンダリングは、かなりの計算資源を集中させるプロセスです。サーバーは地図の閲覧者一人一人のために、リアルタイムでタイルのレンダリングなどしません。タイルはあらかじめレンダリングされて、ディスクの上に貯めてあります。 詳しくは、コンポーネントの概要を見てください。
貯めてあるタイルは2セットあります。片方はMapnikによるもので、他方はOsmarenderによるものです。
Mapnikのタイルレンダリング
Mapnikでのレンダリングの詳細は、Mapnikのページを見てください。
Mapnik タイルは現在 tile.openstreetmap.orgで生成されています。 Mapnikデータベースは、毎時diffにより更新されているので、ほとんどのデータの変更は1時間以内に描画されます。これは、2009-02-09からそうなりました。過去には、Mapnikレイヤーは、毎週水曜の朝(GMT/BST)に作られるPlanet.osm ダンプに基づいて、週1回だけ更新されていました。全planetダンプは、diffを適応する時に発生する気まぐれなエラーを補正するために、今でも毎週供給されています。
Mapnik レンダリングは、私たちの必要とする高性能を実現するために特別に開発された、apache モジュールのmod tileと呼ばれるものを走らせています。
ここのタイルは、いつ描画されたかを示すタイムスタンプと再描画する準備を示すdirtyフラグを持っています。レンダラーは次のルールにしたがいます。:
- タイルが見られるたびに、7日より古いかをチェックされます。
- もし、7日より古ければ、dirtyと印が付けられます。 (すなわち再レンダリングされます)
- バックグランドレンダリングプロセスが、全dirtyタイルのリストを作り、それから全部の再レンダリングを実行します。
- それが終わったら、またdirtyタイルのリストを作ります。
これにより、もし誰もその地域を見なかったら、そこは頻繁に再レンダリングされません。 タイルは、基本的に(いわゆる)注目度最優先で、レンダリングされます。 あるタイルをdirtyにすることは、それのサブタイル(より拡大されたタイル)もdirtyにすることになりません。 もし'More OpenStreetMap coming soon...'のタイルに出会ったなら、 そのタイルにデータがないということで、いまからレンダリングするようにしたということです。 タイルURL(右クリックして'このイメージのURLをコピー'とかして)を入手したら、タイルのステータスを見ることができます。
- http://tile.openstreetmap.org/7/63/42.png
だったら、/statusを最後に足します。:
このページがタイルが作られたタイムスタンプと、dirtyステータスを教えてくれます。
7日の期限より前にタイルをレンダリングさせたかったら、/dirtyを足すことで、dirtyにすることができます。
Osmarenderのタイルレンダリング(Tiles@Home)
Osmarenderのレンダリングの詳細はOsmarenderのページを見てください。
Osmarenderのタイルレンダリングは、Tiles@homeで行われています。 tiles@homeのタイルは、OSMのホームページでも見ることができますが、
http://www.informationfreeway.org/ では、選ぶタイルの上にマウスを置いて、"r"キーを押すか、Ctrlキーを押しながらクリックすることで、Tiles@homeに再レンダリング要求を出すことができます。
その他のタイルキャッシュの開発
いくつかのOSM地図が、TileCacheと呼ばれる MetaCartaやLabsからのPythonをベースとしたWMS-Cサーバーの実装を使ってます。
- http://labs.metacarta.com/wms-c/osm.html – あなたのドラッグした範囲をレンダリングします。: OSMデータベースのスナップショットを使用しています。
関連項目
- Slippy map tilenames, 座標からタイル番号を計算する。
- OpenStreetMap の利用 自分のウェブページにSlippy Mapを張るなどについて。
- 閲覧: openstreetmap.org のホームページのSlippy mapの基本的な使い方