世界を動かす技術を、日本語で。

ベクタタイルがOpenStreetMap.orgに展開されました

概要

OpenStreetMap Foundation(OSMF)サーバーでの Vector Tilesの導入 と、OSMウェブサイトでのレイヤー公開を発表。 新しいビジュアル と技術アップグレードを実現。 長期にわたる テストと信頼性向上 を経て、正式運用開始。 開発者が 独自スタイル を作成可能な柔軟性を提供。 今後の進化 やフィードバックも歓迎。

Vector TilesのOSMFサーバー導入とOSMウェブサイトでの公開

  • Vector Tiles の正式な OSMFサーバー導入 と、OSMウェブサイトでのレイヤー公開
  • 2023年から進行してきた 技術開発とアップグレード
  • 2024年6月に デモサイト公開 や技術背景の詳細説明
  • 信頼性と速度 向上を重視した数ヶ月間のテスト運用
  • 新しいバックエンド によるシャープで高速なビジュアルレイヤーの提供
  • マッパーや訪問者向けの 視覚的体験の向上

Vector Tilesの主な利点と開発者向け情報

  • 適応性の高さ により、開発者が Shortbreadスタイル を基に独自スタイルを作成可能
  • OSMFホストのタイル を利用した新しいスタイルの開発環境
  • プロジェクトでの利用時は Vector Tile Usage Policy (利用方針)の確認が必須
    • 利用方針は今後の状況に応じて 変更される可能性
  • 今後も Shortbread仕様やスタイルの進化 を予定

コミュニティ参加とフィードバック

  • OSMF Vector Tiles への 意見やアイデア、課題報告 を歓迎
    • spiritリポジトリ :スタイル関連
    • tilekilnリポジトリ :タイル生成プロセス
    • shortbread-tilesリポジトリ :タイル内容仕様
  • フィードバックやディスカッションの 活発な促進

今後の展望

  • Shortbread仕様の進化 と新スタイルの開発継続
  • コミュニティとの連携強化 による品質向上
  • 利用方針や技術面での 柔軟な対応

Hackerたちの意見

ベクタタイルが何か全然わからなかったけど、ページにも説明がなかった。

俺の理解では、以前はOpenStreetMapのタイルエンドポイントが事前にラスタライズされたPNG画像を提供してたから、タイルをズームインするとぼやけちゃうことがあったんだ。新しいズームインしたタイルをリクエストするまでね。今は、SVG形式でタイルを提供できるから、スケーリングがうまくいくんだよね。

面白い事実: あの記事のかなりの部分を書いたよ :) https://en.wikipedia.org/w/index.php?title=Vector_tiles&oldid...

いいね!俺はもうバックエンドでベクタタイル使ってるけど、こういう他のソースがあるのは嬉しい。

このデプロイメントの目標の一つは、タイルが常に更新されて、OpenStreetMapデータベースに人々が加えている変更に追いつくことだったんだ。そのフィードバックを提供するのがサイトの主な目的の一つなんだよ。

ベクタタイルを生成するのにどれくらいの時間やリソースがかかるか気になる人のために、ここでTilemakerを使ってベンチマークをやってるよ。https://cartes.app https://github.com/systemed/tilemaker/issues/839

ごめん、"300 Go RAM"って何?300 Goって?GB/GiBしか知らないんだけど。

OSMのpbfsがAWSのオープンデータバケットで利用できるのと同じように、毎日または毎週の地球規模のmbtilesを提供しない理由は何なの?[1] https://registry.opendata.aws/osm/

mbtilesはpmtilesに移行してると思う。DBが必要ないし、R2/S3みたいな静的ストレージから提供できるからね(ワーカーは必要だけど、できればそのワーカー部分はなくなって、バイトオフセットリクエストをサポートしてほしいな)。

質問に答えると、誰かが最初の作業をしないといけないし、それを維持するためのさらなる作業も必要なんだ(他のレスでも指摘されてるけど、そんな配布にはPMTilesがコンテナフォーマットとして使われる可能性が高い)。今のOSMFの財政状況や人員を考えると、あんまり優先順位は高くないかもね。

背景として、マッピングアプリケーションはデータを「タイル」に分割して、現在見ているデータだけをダウンロードできるようにしてるんだ。例えば、自分の近所を見るために地球全体をダウンロードしたくないでしょ。歴史的に、これらのタイルはクライアントアプリケーション(つまりウェブマップ)が「タイル」を並べて見ている地図の部分をカバーするための画像だったんだ。今では、これらの画像を「ラスタ」タイルと呼んで、ベクタタイルと区別してる。ラスタライズされた画像ではなく、ベクタタイルにはその画像をレンダリングするために使える生データが含まれてる。ベクタタイルはファイルサイズが小さく、柔軟性もあるんだ。例えば、ベクタタイルを使うと、部分的なズームレベルでもシャープにレンダリングできて、線をクリアに保ちつつテキストのピクセル化を避けられる。クライアントはカスタマイズ可能なスタイルも持てて、特定のレイヤーを隠したり、他のレイヤーを強調したりできるんだ。ベクタタイルは新しい技術じゃないよ。例えば、Googleマップは10年以上前から使ってるし。じゃあ、OpenStreetMap.orgがこれに時間がかかった理由は何なの?一つの理由は、間違いなくエンジニアリングのキャパシティが不足してたからだね。古い、性能の低いクライアントハードウェアが対応できないんじゃないかって懸念もあったけど、その心配は時間とともに減ってきた。OpenStreetMapには独自の要件もあるし、コミュニティが編集するデータベースだから、ユーザーは自分の編集をすぐに(実際には即座に)見たいと思ってる。最新のデータからすべてのタイルリクエストを動的に生成するのは現実的じゃないから、キャッシングが重要なんだ。それでも、タイルが古くなる時間を最小限に抑えるために、新しいベクタタイルが導入される前に古いタイルを素早く再生成できるようにするために多くの作業が行われたんだ。

ベクタタイルは新しい技術じゃないよ。そうだね、全然新しくない。Mapboxのベクタタイル仕様は2014年に出て、少なくともここ5年は全ての(政府以外の)ウェブマッピングで標準になってる。

新しいレイヤーを実際に試してみたい人のために、"Shortbread"っていう名前で、レイヤーセレクターからアクセスできるよ。これを使ってもいいよ: https://www.openstreetmap.org/#map&layers=S そのブログ記事、もうちょっとその部分を目立たせてほしいな!既存のベクタタイルレイヤー(MapTilerが作ったやつ)と比べられるよ。あれはクラシックなラスタタイルスタイルを模してるからね: https://www.openstreetmap.org/#map&layers=V

重要な詳細が見えなくなってるね: - プライベートな道のゲート - 店の名前

個人的には、これらのタイルが元のOSMタイルの雑多さを減らしてくれて嬉しいよ。あれはナビゲーションに使うのがすごく難しかったから。どこにでも情報がありすぎて。例えば、古いタイルは鉄道の線路をすごく目立たせてたけど、実際には99%の時間で関係ないからね、電車に乗るときでも。ベクタタイルでは、もっと控えめで細くなってる。

選択肢は難しいよね、細かいところでも: どの店を忙しいエリアでどのズームレベルで表示するか?でも気をつけてね: openstreetmap.orgは開発者向けのサイトだから、開発者が自分の変更をすぐに確認できるようになってるんだ。公式には、他の人がデータを使って「いい」ことをどこかでやるべきっていう考えなんだけど、実際にはユーザーはopenstreetmap.orgをGoogleマップの代わりに使いたいって思ってるよね…

でも、Shortbreadのデフォルトスタイルはめっちゃダサいよ!コントラストがないし、詳細が欠けてて、情報がたくさん失われてる。ベクタタイルと情報がちゃんとあることを願ってる(Maputikで確認したから)自分のスタイルを作ることができるといいな(絶対に試してみるつもり)。

OpenMapTiles用のMapTiler OMTスタイルもあって、これはベクタータイルを使ってるんだ。スタンダードなOSMマップスタイルにかなり似てるよ。Shortbreadがosm.orgのウェブサイトに登場したのと同時期に出たんだ。

そうそう、高速道路だけが目立ってて、他は背景にぼやけてる感じだね。

ベクタータイルってラスタータイルよりメモリ使うの?平均的に見て、OSMではどうなんだろう。