JA:Query-to-map

From OpenStreetMap Wiki
Jump to navigation Jump to search

ご注意:バージョン1は XAPI と Google マップ を使いました。説明文書はこちら。Query-to-map/first version

Query-to-map(クエリ・トゥ・マップ)は特定のデータベース・クエリの結果を地図に表示するスクリプトです。データベースは一般の標準的なタイルのレイヤー取得に使うものを使用します。スクリプトはリアルタイムに実行するよう設計され、比較的結果が小さいクエリ向けに使用します。出力形式は地図のほか、ABC順のリストも選べます。

クエリには bbox を含めるか対象のエリアの中心を示す座標が必要です。 リクエスト対象のオブジェクトはポイント、ライン、エリアを指定できます。 また名称、出典、キー、キーと値のコンビを指定できます。

下記のスクリプトを使うと、ドレスデンの街路を対象にインタラクティブなリストを出力します。https://query2map.toolforge.org/featurelist.php?key=highway&value=&types=lines&BBOX=13.5333,50.95,13.9333,51.15

あるいは、特定の都市を通る自動車道路の一覧を地図に出力することもできます。https://query2map.toolforge.org/queryinmap.php?name=*&key=highway&value=motorway&types=lines&BBOX=13.5333,50.95,13.9333,51.15

指定対象はラインに加え、ポイントとエリアを選べます。次の地図はドレスデンの教会をすべて表示します。https://query2map.toolforge.org/featurelist.php?key=amenity&value=place_of_worship&types=points-areas-infos&BBOX=13.5333,50.95,13.9333,51.15

上記のサンプルは "タイプ" パラメータに "info"(情報)を設定してあり、どのオブジェクトにもバルーンで情報を表示します。

ご注意:クエリが膨大な結果を引かないようにするよう、利用者の皆さんは責任をもってご使用をお願いします。そのために、ぜひ bbox をできるだけ小さく設定してください。皆さんには、場合によりこのデータ処理には時間がかかってしまう点をご理解願います。

スクリプトにリクエストがかかると、次の処理を実行します。

sqlコマンドを生成してPostGIS データベースに送り、ptolemy.toolserver.org に mapnik を請求します。

このクエリに含まれる bbox には名称、キー、値、タイプのパラメータが収納されます。

パラメータの名称、キー、キーと値を "*" に置換できます。便利なパラメータの詳細は、 Map Features をご参照ください。

  1. スクリプトの osm-to-kml.php ではクエリは直接、ポストの GIS データベースを参照し、kml-file を出力します。この kml ファイルは Google Earth にも使えます(結果が膨大な場合は、Google Map より Google Earth のほうが迅速に処理します。)Google Earth を開き、ネットワークのリンクとして次のクエリを実行してみてください。Network-Link-OSM-Mapfeatures.kml.
  • ジョブの queryinmap.php は、kml-result を Openlayers 地図に出力します。
  • リスト生成は index.php の一部として実行します。
  • 2つのクエリ queryinmap.phpindex.phpfeaturelist.php スクリプト内のフレームです。

限界

  • リスト1件にはオブジェクトの上限値 10,000 件、地図1件の上限値は 1,000 オブジェクトに設定されています。
  • スクリプトが対応できるのは、データベースに登録された OSM の地図要素のみです。現在は postgresql hstore を導入、すべての キーと値のペアが多用されないものでも、広大なエリア対象に実行できます。
  • 現状でデータは3ヵ月遅れです(2009年10月時点)。データに遅延はありません。

目的

このプロジェクトは OSM のフリーなデータを用いるほうが、Google Maps などのデータを開示しないシステムよりも縦横に実行できると示そうとしています。教育目的での使用も可能です。

この query-to-map プロジェクトは、OSM が単に素晴らしい地図の作画にとどまらず、データベース構築でもあることを示しています。 地図にバグがあると Query-to-map が検知し、たとえばウェイの一部に名称が付いていない、もしくは正しくない名称が付いていることがわかり、また地図要素のオブジェクトをすべて OSM object of a map-feature are in OSM. 上に特定の地図要素のオブジェクトがすべて網羅してあるか、チェックすることもできます。 さて、皆さんの街にある映画館、噴水などなど、すべて OSM に登録されていますか? 

サーバー(ウィキペディア)

現状でこのスクリプトは Wikimedias Toolforge (ptolemy) 上で実行します。当初の基本の考え方は OpenStreetMap のデータを用いてウィキペディアの地図オブジェクトを記述し、たったポイント1件で表示するのはよくないという、Wikipedia:WikiProject Geographical coordinates の視点です。現状では、利用と有用性を Openstreetmap に集中するほうが、より有効と考えられます。

ソースコード

やることリスト

API 側の課題

  • 安定性と性能(ウィキペディアから大量のクエリが要求される場合)
  • キャッシュ
  • 巨大な bbox によるクエリが問題源になりやすい

出力

  • OSM のタイルに用いるコントラストを改善するとよいかもしれません

...

OSM データ自体について

  • データベースクエリの要件とは、地図の作画に限定されるわけではないようです。たとえば特定の道路 ref=B170 が別の道路 ref=B6 と合流すると、データベースの索引用であれば、タグは通常、 ref=B170/B6 となるものの、作画をするならタグ2件を使い ref=B170ref=B6 とするほうが使いやすいです。

ウィキに融合する

  • それぞれのウィキからスクリプトにリンクするテンプレートを作成します(ウィキとは OSM-Wikiでもウィキペディアでも、その他のウィキプロジェクトでも可能です。)
    • Template:Osm-query-name はうまく作動しています。Template:Osm-query は Query-to-map バージョン1用に、また XAPI と合わせて使うために設計されました。現在の mapnik-database はバージョン1には適合せず、新しいテンプレートが必要で Template:Osm-query2 を作成しました。 もし次の段階でも有効であれば、すべてのリンクを新しいテンプレート用に転換する必要があります。
  • このプロジェクトをウィキペディアに取り込むには、重点は統計地図の作成にこの機能も使えるようにすることです。安定性に万全をつくし、Ptolemy(生成システム)で走るようにする必要があります。

Map 要素のスクリプト

Map 要素のスクリプトとは、特定の地域の地図要素を対象にしたクエリを生成するスクリプトで、マウスを1回クリックするだけで Query-to-map スクリプトを呼び出します。OSMhack を呼び出すには Template:Place を使うか、あるいはロンドン(都心部)が対象なら、次のスクリプトが使えます。

この機能では、出力形式を地図にするかリストにするか選択できます。

このページは User:Kolossos/featuresのページを底本にしてあるので、ウィキ文として編集できます。このスクリプトの ソースコードも入手できます。

というわけで、どの映画館や噴水など、街にあるものには OSM に項目が登録できるということは明確です。あるいはまた、皆さんの街に張り巡らされた複雑な電力網を視覚化したり、スポーツができる施設を検索することなどもできます……

クエリ生成用のインターフェイス

クエリの自作が苦手な利用者に向けて、軽い HTML インターフェイスをご用意しました。デモ版プロジェクト版

作者 / 連絡先

質問や提案がある場合は、ぜひ議論ページをご利用ください。プロジェクト参加希望者も歓迎しています。

関連項目