Category Archives: Engineering Working Group

エンジニアワーキンググループより、ベクトルタイルに関する進捗報告

OpenStreetMap財団のエンジニアリングワーキンググループより、openstreetmap.orgのベクトルタイル作成に関する最新情報をお知らせします。 この作業が重要な理由、これまでの進捗状況とコミュニティのフィードバックを取り入れ方、さらに詳しい技術的な詳細についてご紹介します。

背景

現在、openstreetmap.orgウェブサイトではピクセルで構成される画像タイル、すなわちラスタータイルを配信しています。しかし現在、サイトにベクトルタイルを導入する取り組みが始まっており、地図の見た目と動作が改善されます。プロジェクトの背景については、こちらで詳しく読むことができます。

ベクトルタイルでは、ポイント、ライン、ポリゴンといったベクターデータとして地図が配信されます。ベクトルタイルでは、格納される地理データ(例えばOpenStreetMapを構成するデータなど)はダイナミックなスタイリングとインタラクティビティが可能になります。ユーザーにとって、ベクトルタイルはopenstreetmap.orgでの滑らかなズームが可能な新しくモダンなマップスタイル、データ変更時の迅速な地図更新、よりよいパフォーマンスをもたらします。

さらに今後に焦点を当てた時、このベクトルタイルプロジェクトで実現できる最もワクワクする部分は、ボランティアやタイル利用者の参画が可能になることです。例えば、3D地図、より効率的なデータの組み合わせやその他のデータセットの統合、テーマスタイル、多言語対応の地図、行政境界の異なる表示、インタラクティブな観光地点、視覚障害者向けのより利用しやすい地図、そしてまだ誰も思いついていない他のアイデアが生まれることが期待されます。OSMコミュニティの人々の長年の関心事だったことが多く実現できることでしょう。

計画

ベクトルタイルプロジェクトの目標は、openstreetmap.orgで機能するベクトルタイルの動作環境を一式を提供することです。つまり、世界中のユーザーやサービスから大きな需要があり、地図の根底となるデータが常に変化する、世界規模の複雑なベースマップサイトです。

技術的に言えば、高負荷の世界規模の複雑なベースマップにおいて、毎分単位の更新が必要な動作環境を作成します。

Paul Normanさんが、ベクトルタイルプロジェクトを主導しています。

彼はPostgreSQLデータベースからベクトルタイルを生成する Tilekilnプロジェクト に機能を追加し、ベクトルタイル内のレイヤーやプロパティの命名方式である Shortbreadスキーマを活用し、OSMデータをPostgresデータベースに追加できるThemeparkの改善を行っています。

作業は3つのステップに分かれています。 

1. TilekilnおよびShortbread Themeparkの改善、第1ラウンド

2. 並列処理の改善

3. Shortbreadの本番環境公開

最初の2ステップはほぼ完了しています。Tilekilnは今や並列でタイルを生成できるため、世界全体のタイル生成が実用的になりました。次のステップはOSMFのハードウェアへの本番環境導入の準備です。  

ステップ1の技術的詳細

作業中の技術的詳細に興味がある方のために、上記第1ステップの5つの主要コンポーネントをご紹介します。

        1.        Tilekilnのパッケージ自動化

        2.        Prometheusエクスポーターによる、Tilekilnメトリクスの公開

        3.        Themepark Shortbreadのレビュー

        4.        毎分ごとのShortbreadタイルの更新とオンデマンドのタイルレンダリングを行うデモサーバーの運用

        5.        コミュニティへのデモの公開

1と2は議論の必要なく完了しています。3については、osm2pgsqlのThemepark Shortbread実装にレイヤーが欠けているなど、Paulさんがいくつかの問題を発見したため、予想以上の工程が必要だと判明しました。  

4と5は完了しています。Paulさんのデモサーバーは1分ごとの更新で動作しており、必要なハードウェア要件は予想より控えめでした。  

コミュニティからも有用なフィードバックが寄せられています。例えばPaulさんのOSMコミュニティフォーラムへの投稿へもフィードバックが投稿されています。

コミュニティからは多くの提案がありました。その中にはすでに取り入れられたものもあります。コミュニティから提案された範囲内の残課題は、曲線がギザギザに描画されること、ベクトルタイルが大きすぎることです。

ギザギザの線の問題は、ベクトルタイル内でスムーズな曲線がどのように表現されているかによるものです。おおむね対処済みですが、同様の問題が将来的に発生することが予想されます。標準タイルレイヤーの最小縮尺に相当する縮尺が設定されました。より小さなスケールにズームインすることは可能ですが、新しい課題が現れ始める可能性があります。

ベクトルタイルのサイズ最適化は今後も継続的に取り組む必要がある課題です。現在のタイルは特に大きくなっています。このテスト期間中に、サイズを半分に削減する変更が加えられましたが、今後も最適化の課題は残り続けます。タイルサイズがユーザーエクスペリエンスに最も大きな影響を与えるからです。

生成されているタイルは使用可能ですが、さらなる作業が残されています。並列処理の作業が完了したことにより、テストのために大量のタイルを生成できるようになったため、Paulさんの作業は再度、タイルサイズの改善と残りの問題の修正となります。ただし、現在のタイルは 使用可能です。

使用されているツールについて

このプロジェクトで使用されている様々なツールについて紹介します。

Tilekiln は、Paul Normanさんが作成した、PostgreSQLデータベースからベクトルタイルを生成するソフトウェアです。代替ツールとしてmartin(またはt_rex)があります。Tilekilnは新しい開発段階にありますが、ベクトルタイルデータを生成するために多くの標準的なPostgreSQLの機能を使用しています。ほとんどのOSMベースの地図(osm.orgのosm-cartoを含む)は、PostgreSQLデータベースからのSQLデータベースクエリから生成されています。Tilekilnは同様のクエリからベクトルタイルを生成します。Tilekilnはまだ開発されてそれほど日が経っていません。

Themepark は、osm2pgsqlツールスイートの一部で、OSMデータをPostgresに追加し、それらの処理ステップを他のプロジェクト間で共有できるようにするものです。多くのPostgreSQLベースのOSMマップスタイル(osm-cartoなど)がosm2pgsqlを使用しています。  

osm2pgsql はOSMで15年以上の歴史があり、多くの場所で使用されています。Paulさんもコードに貢献していますが、主要な開発者ではありません。osm2pgsqlは最近数年で高度化し、より良くなっています。その強みの一部はデータの前処理にあり、Themeparkはこれらの前処理ステップを簡単にしようとする試みです。

Shortbread はGeofabrikが作成した「ベクトルタイルスキーマ」です。ベクトルタイル内のレイヤーやプロパティの命名方式のデータフォーマットとなっています。

This blog posts contains contributions from Adam Hoyle, Mikel Maron, Amanda McCann, Paul Norman, and Andrew Wiseman

The OpenStreetMap Foundation is a not-for-profit organisation, formed to support the OpenStreetMap Project. It is dedicated to encouraging the growth, development and distribution of free geospatial data for anyone to use and share. The OpenStreetMap Foundation owns and maintains the infrastructure of the OpenStreetMap project, is financially supported by membership fees and donations, and organises the annual, international State of the Map conference. Our volunteer Working Groups and small core staff work to support the OpenStreetMap project. Join the OpenStreetMap Foundation for just £15 a year or for free if you are an active OpenStreetMap contributor.

2024年: OpenStreetMapベクトルマップの年

本年、OpenStreetMapは、 openstreetmap.org に対してベクトルタイルを導入することにより大きな飛躍を遂げます。これは、その進捗状況を共有する第一報であり、今後も引き続きブログでの報告を行う予定です。

ベクトルタイルプロジェクトを主導にあたって、OpenStreetMap Foundationは地図調製とオープンデータの分野で著名なPaul Normanさんを採用しました。Paulさんは、2010年にxkcdフォーラムでの偶然の出会いからOpenStreetMapの旅を始め、2013年にはOpenStreetMap Cartoでの仕事でコミュニティでの役割が本格化しました。OSM Foundationへのボランティア参加歴はプロジェクトへの彼のコミットメントを占めており、複数のワーキンググループへの貢献やOSMF理事の在任などが挙げられます。職業上では、MapQuest、CartoDB、Wikimedia Foundation、Amazonで様々な影響力のあるポジションを務めており、数十億人が彼の仕事の成果を目にしています。  Paulさんの詳細な情報は彼のブログ に詳細があります。 また、ベクトルタイルに関する技術的な詳細については、Mastodon または Twitterのフォローをお願いします。

ベクトルタイルは、地図データが処理および表示される方法における重要な進化のひとつです。 . 伝統的なラスタタイルは静的な画像 であり、ピクセルによって表現されますが、ベクトルタイルはマッピングの世界における “SVG” のような技術です。これにより、地理データが動的なスタイリングとインタラクティブ性を可能にする形式で保存され、データを変更することなく地図表示の視覚的な外観を適応させることができます。これは、他の地図で見たことのあるものと同じようなもの、と思われるかもしれません。はい、まさにそれです!  ベクトルタイルは、openstreetmap.orgとは違って頻繁に更新されることがない対話的なマップで業界標準の技術であり、必要に応じてデータベース全体を単純に再計算できる状態となります。

ただし、 openstreetmap.org に表示される地図は、その他の地図とは全く異なっています! OpenStreetMapの地図は、常に、編集した1分後には更新されます。これはマッパーへのフィードバックループの重要な部分であり、このブログを投稿している私が最初に引き込まれた理由です。なぜ私たちが、独自のベクトルタイルソフトウェアスタックに投資しなければならないのか、その理由がまさにこれなのです。

直近の未来では、ユーザーにとって、 openstreetmap.orgにおける新しくモダンな外観の地図スタイルとシームレスなズームを意味します。より先の未来を見据えると、このベクトルタイルプロジェクトが成立することによってボランティアやタイル利用者が利便に感じる最も素晴らしい部分は無数のアイデア、例えば3Dマップ、効率的なデータのミキシングとマッチング、他のデータセットとの統合、テーマ別のスタイル、多言語マップ、行政区画の異なるビュー、Point of Interestのインタラクティブな表示、視覚障害のユーザー向けのよりアクセスしやすい地図表示など、まだ誰も考えつかないであろう多くのアイデアであります。このベクトルタイル技術は、審美眼的な進化だけでなく、機能面でも大きな飛躍であり、全体的なユーザーエクスペリエンスを向上させます。

2021年の コミュニティ調査 (15ページ参照)では、財団がベクトルタイルに対して何をすべきか、明確な意見がありませんでした。ただし、アプローチについて、ボランティア主導の開発を支持する人もいれば、専門家の参加を支持する人など、いくつかの志向を読み取ることができました。その後、エコシステムは進化し、既存のソフトウェアの上に仕組みを構築することが容易になりました。私たちはこのプロジェクトを、2つの人気のある回答の間でバランスがとれた形態であると見なしています。  コアソフトウェアへの投資も、私たちの数年にわたる戦略計画の一環です。

OpenStreetMap Foundationは、このプロジェクトを完了するために寄付に依存しています。特に私たちのベクトルタイルの年をサポートしたい場合は、  寄付メッセージ に”vector tiles”と記入できます。 どんな形の貢献も、大きな貢献も小さな貢献も、OpenStreetMapがすべての人に対してオープンでアクセス可能でダイナミックであることを確実にしようとする私たちの試みを、直接的に支援するものとなります。あなたの支援はただの寄付ではなく、オープンソースマッピングの未来への投資となります。

私たちはこのワクワクする旅をはじめたばかりです。これからのブログ投稿では、スキーマとスタイルの側面にさらに深く踏み込んでいきます。お楽しみに!

データモデルに関する意見募集

データモデル研究

OpenStreetMap Foundationのエンジニアリングワーキンググループ(EWG)は2022年の初頭、既存のデータモデルをどのように改善するかについての調査を発注しました。 Jochen Topf氏は、OpenStreetMapのデータモデルをより計算効率がよく、よりアクセスしやすくする方法に関する提案を含む、この研究の結果を提供しました。

研究結果では、2つの重要な提案が成されています。

  • ポリゴンを表現するためのareaデータ型の導入
  • タグ無しノードの削除

コミュニティでの協議

このプロセスの次の段階を決定するにあたって、私達は開発者のコミュニティとより多くの議論を行いたいと考えています。なぜなら、提案された変更は、直接または間接的にデータモデルに依存しているOpenStreetMapソフトウェアに影響を与えるからです。

潜在的な利点

エリアの複雑さの低減

OSMにはまだAreaデータ型が存在しないと聞いて、驚くマッパーもいるかもしれません。iDエディタにはポイント、ライン、エリアを描くためのボタンが用意されています。マッピングをすると、期待通りの形状がマップに表示されます。OSM wikiでは、それぞれのタグが通常、エリアに使用されるかどうかを文書化していますし、Overpass Turboでもクエリでエリアを指定することができます。

しかしこれらのエリアは、裏側ではウェイやリレーションとして表現されています。OSMデータを扱うそれぞれのツールは、特定のウェイがラインを表すのか、エリアを表すのか、独自のルールを使って推測しています。エリアをOSMデータモデルの適切な一部にすることで、アプリケーション間で一貫した解釈が可能になり、壊れたエリアデータがアップロードされるのを防ぐAPIが実現可能になり、最終的には非常に大きなエリアの部分ダウンロードのサポートにつながるかもしれません。

OSMデータの処理容易化

現在、ウェイは複数のノードへのリファレンスで構成されており、これらリファレンスの状態を確認することによって、ウェイ同士がどのように接続されているかを決定しています。これらノードへのリファレンスによる座標解決は、OpenStreetMapのツールチェーンを用いた場合、高性能なハードウェアであっても数時間から数日かかるため、コストの高い処理となっています。

将来的に、私達はウェイを緯度経度の単純なリストとしてモデル化するかもしれません – ただしこれは、最終的に行われる実装によります。これは大きなパフォーマンス上の利点をもたらしますが、タグなしノードの削減は重要な変更となります。

一見しただけでは、性能の向上があまり見込めないように思えるかもしれません。しかし、私達のデータを容易に扱えるようにすることは、OpenStreetMapが世界全体にとっていかに有用であるかに直接影響します。Jochen氏の観察によれば、「この目的は、OSMデータを使うにあたって数十億ドル規模の企業だけでなく、ノートブックで世界地図を作りたい学生や、寄付された中古のコンピュータを持つ活動家も利用できる素晴らしいリソースとしてあり続けることができるようにすることにあります」

よりよい履歴情報の提供

ウェブサイトの履歴タブで実際に表示できるものがいかに少ないかに気がついた時、多くのマッパーは残念さを感じます。OSMChaやAchaviのような多くのツールがありますが、それらを使うにはある程度の熟練が必要です。

これはなぜなのか、と問われるかもしれませんが、答えは非常に技術的なものです。ウェイを表現するバージョンでは、多くの場合、座標情報が管理されていません。変更内容のトラッキングが比較的初心者にとっつきにくいツールで、専門的な分野にとどまっているのはこのためです。データモデルを変更することで、この障壁から開放され、より優れたツールの開発がきたいできるようになりますが、ウェイのバージョンと座標情報を適切に取得できるようになるまで、それは実現しえません。

分単位でのベクトルタイル生成

現在、ベクトルタイル生成には多くの成熟したツールが存在していますが、まだいくつかの課題が残っています。

  • ひとつは、openstreetmap.orgのためのベクトルタイルにどの機能を入れるか。
  • もうひとつは、許容できるレベルのベクトルタイルのパフォーマンスと、分単位での更新をどのように調和させるか。

もしタイルの生成を本当に並列化できるだけではなく、変更されたウェイがどのタイルに含まれるかを見つけ出すという、コストの高い最初のステップを省略することができれば、この作業は一段と簡単になります。

また、その処理のために必要となるコンピュータパワーをカプセル化する方法を開発できる人を見つけられるかもしれません。ただしその場合でも、これはそのパートナーへ依存度としては極めて望ましくありません。

つまり、データモデルの変更を行わなかった場合、openstreetmap.orgで分単位の変更を行うベクタータイルの実現は、可能ではありますが非常にコストが高く、特別なハードウェアが必要となります。

未来に声を上げよう

今後、何かしらの変化は避けることができません。OSMデータベースの成長速度はハードウェアの高速化スピードを上回っていますし、IDベースのデータモデルではすべての処理を並列化して高速化することが不可能です。変化に対するこれまでの対応は簡単でしたが、これからはさらなる工夫が必要です。将来的には、分単位での変更に対応するための特別なハードウェアが必要になるかもしれません。

しかしながら、この課題に対しては様々な対応方法が考えられます。今こそ、開発者コミュニティで意見を出し合うチャンスです。


The OpenStreetMap Foundation is a not-for-profit organisation, formed to support the OpenStreetMap Project. It is dedicated to encouraging the growth, development and distribution of free geospatial data for anyone to use and share. The OpenStreetMap Foundation owns and maintains the infrastructure of the OpenStreetMap project, is financially supported by membership fees and donations, and organises the annual, international State of the Map conference. Our volunteer Working Groups and small core staff work to support the OpenStreetMap project. Join the OpenStreetMap Foundation for just £15 a year or for free if you are an active OpenStreetMap contributor.