JA:Component overview

From OpenStreetMap Wiki
Jump to: navigation, search
Help
Available languages
Български Deutsch English Español Français עברית Italiano 日本語 Русский

このページは、開発者に、OpenStreetMap の論理システムやコンポーネントの技術的概要を与えるためのものです。

Contents

ダイヤグラム

ダイヤグラム

データベース

データベースは、全てのマップデータを、ノード・ウェイ・リレーションの形で、保持しているものです。詳しくは、Database schemaを見てください。データベースソフトウェアーは、PostgreSQLを使っています。

API

OSM のAPI (別名"Protocol")は、データベースを読み書きする REST ウェブサービスインターフェイス、いわゆる XML over HTTP で、簡単な URLs をオブジェクトアクセスに、標準的な HTTP レスポンスコードを出力に使います。

他の OSM コンポーネントは、データベースにこのインターフェイスでアクセスします。これは、外部インターネットでも利用できます。

この API 論理は全て、OSMフロントエンドウェブサイトと同じく、Ruby on Rails アプリケーションです。

OSM フロントエンド

OSMフロントエンドウェブサイトは、 Ruby on Rails アプリケーション(詳しくは、The Rails Portを見てください)で、ビューやモデルがXML APIのそれに添って作られています。標準的なRail アプリと同じく、データベースと直接接続します。 (APIを呼びません。この接続は上のダイアグラムにはかかれていません。)

このウェブサイトの主な機能は、Slippy Map("view" タブ)、オンラインエディターPotlatch ("edit" タブ)の表示を簡略化することです。また、ログイン・登録・ユーザーページ・ユーザー日記・生データ'閲覧'ビュー・そして、API v0.6より導入されたchangeset ビューも扱います。

Slippy Map

詳しくは、Slippy Mapを見てください。openstreetmap.org ホームページのメイン地図は、ズームや移動("スリップするような" ドラックできる移動) をさせてくれる Javascript インターフェイスです。 何が起きているかというと、そのウェブサイト(Rail アプリの 'index' ビュー)が、OpenLayersを呼び出しているのです。そうすると、ユーザーが最後に見た場所やURL パラメターを元にした、緯度と経度を渡します。OpenLayers は、クライアントサイドの javascript の魔法で、'タイル'イメージをタイルサーバーから取ってきて並べます。

Potlatch

Potlatch は、'edit'タブで現れるオンラインエディターです。再度ですが、rails アプリは、'edit' タブのビューがあります。Potlatch は、ウェブサイトに埋め込まれたフラッシュのオブジェクトです。これは、ActionScript で書かれています。これをブラウザーで走らせている間、'AMF Controller'と呼ばれるAPIの特殊な部分の呼び出しを行います。ブラウザーのセキュリティー制限で、 openstreetmap.org 以外のウェブサイトのものは埋め込むことができません。 (APIにHTTP リクエストを行わなければならないから、)

タイルとタイルレンダリング

APIから地図データを取ってきて、地図をタイルとして知られているラスタイメージにレンダリングする処理があります。たくさんの新しいタイルをレンダリングして、全地球規模で蓄える必要がありますが、内在する地図データを更新するために、既存のタイルも再レンダリングされる必要があります。

Mapnik

Mapnik は、現在 Slippy Map 標準で表示されるタイルを提供するレンダリングシステムです。レンダリング処理は、'タイル'サーバーの上で走っており、 Mapnik タイルイメージはそのマシーンから提供されています。このレンダラーは postgres データベース (これもタイルサーバーにあります)からデータを取ってます。このデータベースは PostGIS 拡張を使って、 Mapnik から期待されているフォーマットでデータを持っています。このフォーマットは、OSM データベースサーバーが使っているデータベースのフォーマットとは、全く違います。Mapnik データベースは、毎週 Planet.osm ダンプに、 osm2pgsql スクリプトを実行させて、データを入力しています。最近では、Osmosis 差分 (毎時) を応用して、周期的にデータの更新もしています。

Tiles@home

Tiles@home は、分散タイルレンダリングシステムです。これは、 Osmarender レンダリングシステム (XSLT) をたくさんのクライアントマシーンで走らせています。それぞれのクライアントは、API から生データを取ってきて、それを SVG に変換し、 inkscape を使ってラスタライズし、レンダリングされたイメージを t@h サーバーにアップロードして返します。分散されたクライアントにより、絶望的なCPU負荷(Mapnik よりはるかに高いです)を分散し、tiles@home レイヤーをかなり最新の状態に保持する事ができます。

レンダラー

上記の記述の通り、MapnikOsmarenderと呼ばれるソフトウェアでレンダリングして、SlippyMapのタイル用のラスタイメージを作っています。レンダラーは、データから地図イメージを臨時的に作るのにも使えます。 私たちのデータをレンダリングする新しい方法を開発するポテンシャル(潜在能力)に制限はありません。 Renderersを見てください。

エディター

ウェブサイトのedit タブからでてくる (Potlatch)の他にも、エディターがあります。オフラインアプリも他のウェブサイトも、OSM データをAPIを通すことによって、編集可能になってます。

Personal tools
Namespaces
Variants
Actions
site
Toolbox