JA:コンポーネント概要
- ウェブサイトやアプリケーションの開発で再利用可能なライブラリについては、Frameworksを参照してください。
このページは、開発者に、OpenStreetMap の論理システムやコンポーネントの技術的概要を提供するためのものです。
ダイアグラム
データベース
データベースは、全てのマップデータを、ノード、 リレーション、ウェイの形で、保持しています。詳しくは、Database schemaを見てください。データベースソフトウェアは、 PostgreSQL を使っています。
API
OSM のAPIは、データベースを読み書きする REST ウェブサービスインターフェイス、いわゆる XML over HTTP で、シンプルな URLs をオブジェクトアクセスに、標準的な HTTP レスポンスコードを出力に使います。
他の OSM コンポーネントは、データベースにこのインターフェイスでアクセスします。これは、外部インターネットでも利用できます。
この API ロジックは全て、 OSM フロントエンドウェブサイトと同じく、 Ruby on Rails アプリケーションの一部です。
OSM フロントエンド
ウェブフロントエンドは、 Ruby on Rails アプリケーション(詳しくは、The Rails Portを見てください)で、ビューやモデルがXML APIのそれに添って作られています。標準的な Rail アプリと同じく、データベースと直接接続します。 (APIを呼びません。この接続は上のダイアグラムにはかかれていません。)
このウェブサイトの機能は、スリッピーマップ(view タブ)やオンラインエディタiD (edit タブ)を表示することです。また、ログイン・登録・ユーザーページ・GPSトレース・ユーザー日記・データブラウザ・他の生データ'ブラウズ'ビュー・そして、changeset 履歴ビューも扱います。
スリッピーマップ
詳しくは、スリッピーマップを参照してください。 openstreetmap.org ホームページのメイン地図は、ズームや移動("スリップするような" ドラックできる移動) をさせてくれる Javascript インターフェイスです。 何が起きているかというと、そのウェブサイト(Rail アプリの 'index' ビュー)が、 Leaflet を呼び出しているのです。そうすると、ユーザーが最後に見た場所やURL パラメーターを元にした、緯度と経度を渡します。 Leaflet は、クライアントサイドの Javascript の魔法で、'タイル'イメージをタイルサーバーから取ってきて並べます。
iD
iD は、「編集」タブで現れるオンラインエディタです。再度ですが、 Rails アプリは、「編集」タブのビューがあります。 iD は Javascript で書かれています。これは他のウェブサイトに埋め込んで、ウェブ上の別の場所で構成可能な編集インタフェースのカスタマイズができます。 以前の Potlatch 2(フラッシュを使用)も編集タブのドロップダウンにあります。
タイルとタイルレンダリング
APIから地図データを取ってきて、地図をタイルとして知られているラスタイメージにレンダリングする処理があります。たくさんの新しいタイルをレンダリングして、全地球規模で蓄える必要がありますが、内在する地図データを更新するために、既存のタイルも再レンダリングされる必要があります。
Mapnik
Mapnik は、現在スリッピーマップ標準で表示されるタイルを提供するレンダリングシステムです。レンダリング処理は、'タイル'サーバーの上で走っており、 Mapnik タイルイメージはそのマシーンから提供されています。このレンダラーは postgres データベース (これもタイルサーバーにあります)からデータを取っています。このデータベースは PostGIS 拡張を使って、 Mapnik から期待されているフォーマットでデータを持っています。このフォーマットは、OSM データベースサーバーが使っているデータベースのフォーマットとは、全く違います。Mapnik データベースは、毎分のdiffs を、 osm2pgsql スクリプトを実行させて、データを入力しています。
レンダラー
上記の記述の通り、 Mapnik と Osmarender と呼ばれるソフトウェアでレンダリングして、スリッピーマップのタイル用のラスタイメージを作っています。レンダラーは、データから地図イメージを臨時的に作るのにも使えます。 私たちのデータをレンダリングする新しい方法を開発するポテンシャル(潜在能力)に制限はありません。 Renderers を見てください。
エディタ
ウェブサイト上の編集タブ (iD) の他にも、別のツールがあり、API経由でOSMデータを編集することができます。リストはEditors を参照。APIは、OpenStreetMapログイン証明書の引渡しを行うことなしに、サードパーティ・ソフトウェアにユーザが認めた許可を含むOAuth 経由での認証を許可します。エディタ・ソフトウェアはウェブベースのアプリケーション、デスクトップ・アプリケーション、あるいは(増えつつある)モバイルアプリ、といった形態を取ることができます。