Google Summer Of Code 2015を振り返って

Google Summer of Codeとは、学生開発者とオープンソースプロジェクトをマッチングするプログラムです。参加する学生は経験豊かなメンターとペアを組み、オープンソースソフトウェアの開発に対してフルタイムのコミットを数ヶ月間実施します。理想的には、学生は十分な支払いを(Googleから)受けつつ、よい経験を積むことができ、なおかつ支援を受けたプロジェクトはコード面での強力な貢献者とお披露目の機会を得ることになります。 OpenStreetMapは2008年に最初に参加を行い、それ以来、Google Summer of Codeの常連参加プロジェクトとなっています。私たちは学生のみなさんに、広大な遊び場を提供しています。数百人にも及ぶボランティア開発者の方々の活動に敬意を表すると共に、私たちのエコシステムの中に存在する数多くのアクティブなオープンソースプロジェクト無くしては、OSMの活動はありえません。興味深いプロジェクトはいくつもありますが、その中から私たちは昨年のGoogle Summer of Codeの対象を選んでいます。 2015年に私たちがプロジェクトに参加することをアナウンスした際、世界中から参加を希望する学生さんたちの声が上がりました。最終的に、私たちはその中から8つの活動を選び、Googleから与えられた枠に割り当てました。最後までやり遂げたのはそのうちの7名で、達成率はかなり高いと言えるでしょう。5つのプロジェクトでは、プロジェクト終了後、あるいは作業している途中に順次、内容がアップストリームへマージされています。ここでは、2015年に完了となった7つのプロジェクトについて、それぞれ詳しい内容をご紹介します。 Carto-CSS まず最初に紹介するのは、もっとも目を引くプロジェクトであろうプロジェクトである、www.openstreetmap.orgで使われている私たちのOSM地図スタイル (openstreetmap-carto) の再デザインと道路表示の改良作業です。このプロジェクトでは、分析を元に道路表示スタイルをスクラッチで作り上げ、新しいスタイルについて多くの経験を積むと共に、多くの人が集うコミュニティの中で彼のアイデアを伝え、コミュニケーションをとる必要がありました。最終的に、通常では細かな変更が重ねられるメインのスタイル設定において大きな変更が加えられることになりました。OSMは大ブリテンが発祥であったことから、これまでは英国における一般的な地図スタイルが基礎とされていました。そうした経緯があり、過去のスタイルはある人に言わせれば “七色のカラースタイル” といわれる、それぞれの道路が独自の色設定を持ち、可能な限り多くの色が使われるものでした。そしてこの設定は結果として、例えば森林の中を走る緑色の道路や、水辺を並走する青色の道路といった問題を生じさせていました。新しいスタイルでは、その意味でよりわかりやすい表示が志向されています。Google Summer of Codeが終了し、コードがマージされるまでの数週間、このスタイルにはさまざまな意見が飛び交いました。そしてついに、新しいスタイルは有効化 (アナウンスは10月) され、作業は成功裏に終了しました。例として、ニューヨークにおける道路の色合いの変化の図を以下に挙げますが、より詳しく、www.openstreetmap.orgであなたがお住まいの街を確認することをお勧めします。  JOSM JOSMに関して昨年行われたプロジェクトは、まとめると3つあります。JOSMとはOpenStreetMapデータの編集を行うアプリケーションのひとつであり、最初期に構築されたエディタのひとつでもあります。事実、OSMデータベースに格納されているデータは、大半がJOSMから貢献されています! JOSMはエキスパート向けとしてたいへん成熟されており、多くの基本機能に加え、大量に存在するプラグインを導入することでカスタマイズも可能と成っています。そしてJOSMでは、データを編集する機能だけではなく、データを使った作業についても多くのオプションが用意されています。編集を簡単に行うためのシンプルなプリセットから、地域についての情報を記録した画像の表示、その地域の航空写真の市の正確さを向上させる機能などです。編集を行うにあたって、これらのツールは非常に強力なツールとなります。ぜひあなたのPCでも試してみてください。 OpenGLプラグイン JOSMに関する最初のプラグインは、非常に興味深く、そしてこれまではあまり鑑みられなかった領域の開発となりました。この機能は、メンターと学生のどちらから出たアイデアでもない、唯一のものとなっています。ちょっとした前知識ですが、JOSMはJavaで構築され、主要な描画ペインではJava 2D APIが利用されています。この部分の拡張として、この学生は前もってパフォーマンステストを行い、彼のアイデアに価値があることを証明していました。そのアイデアとは、この主要な描画カンバスをモダンな OpenGLを使って改良し、vortexバッファーオブジェクトを使用した高速描画と、同様に現在の実装の全機能の置換えを図る、というものです。まず、彼のアイデアを実現させるための作業の下準備として、JOSMのコア部分にいくつかの拡張機能を実装し、プラグインAPIの拡張を行う必要がありました。さらに、実装を進めるうち、彼はいくつかの問題に直面します。例えば、彼が使おうとしていたOpenGLライブラリがいくつかのネイティブライブラリを含んでいる状態で、コード自体を1つのjarファイルに格納する方法などです。そうした問題に立ち向かい、彼はOpenGLだけで描画を可能にする素晴らしいプラグインの開発に成功しました。この機能は、広大な領域や非常に地物が密集した都市地域の作業を行う際に特に有効ですが、それより小さなデータセットを扱う際にもかなりの効果を発揮します。ただし、その効果は利用しているPCのグラフィックカードに依存します。プラグインがインストールされると、新しい描画ペインを有効化/無効化するためのスイッチがメインメニューに表示されるようになります。是非試してみてください。 Mapillaryプラグイン 2つめのJOSMプラグインは、Mapillaryを利用したプラグインでした。Mapillaryは位置情報を付与した写真を共有するサイトで、地球上の全ての場所を写真で表現することを野望にしています。知っている人も多いかもしれませんが、登録されている全ての写真はCC BY−SAライセンスで公開されており、なおかつそれらの写真を参考にOpenStreetMapで利用することを明示的に許諾しています。さらにMapillaryは、画像や関連メタデータを読みこんだりアップロードしたり、クエリをかけるためのAPIも用意しています。マッピングを行う際に効果の高いリソースであり、私たちはこの機能をJOSMから利用できたらよいと考えてきました。このプラグインを有効化すると、JOSMのマップ編集表示部分に、その近隣で撮影された写真を画像フィードバックとして表示させることができるようになります。これにより、マップに入力する内容を簡単に確認することが可能になっています。例えば、道路の情報が取得された時期を確認しながら編集することが可能になりますし、その場所の最高時速制限の確認も簡単です。また、例えば横断歩道があるかどうかを確認したり、バス停にゴミ箱が併設されているかを認識することも可能です。この機能の使い途は数限りないほど存在しますが、その利用方法はプラグインの単純な有効化と、必要な箇所が写り込んだ写真の撮影だけとなっています。 画像フィルタプラグイン 3つめのプラグインは、さまざまなウェイの画像をフィルタすることを目的としています。先程も触れたように、JOSMはその背景画像としてさまざまな航空写真を追加することが可能です。例えば、背景画像としてBing航空写真を利用し、トレース結果をOSMに投入することが許諾されています。しかしながら、その画像の品質が低い地域があることも事実です。例えば画像が暗すぎたり、明るすぎたり、歪んだりしてしまっています。このプロジェクトで作成されたプラグインを利用することで、さまざまな方法でそれらの画像を修正することが可能です。たった2回クリックするだけで、現在表示されている画像のガンマ値を操作することが可能となります。 OSM2World Shader このプロジェクトは、OSM2Worldのレンダリング性能を改良することを目標としていました。OSM2Worldは、OSMデータをいくつかの3次元フォーマットに変換するツールで、それらの3Dデータを直接的に表示させたり、3Dモデルの中を歩いて回ることも可能なアプリケーションです。コードでは既に vertexバッファープラグインが利用されていましたが、OpenGLにパイプを繋ぐ機能にはさらなる改良が必要な状態でした。そのため、プロジェクトのゴールとして、モダンなOpenGLバージョンに移行すると共に、 vertexとピクセルシェーダーを利用する、という点が設定されました。さらに、時間が許す限り、いくつかの面白い機能を実装することも、後からゴールとして追加されています。学生は初めてOpenGLに触ったにも関わらず、Google Summer of Codeの期間中に素晴らしい調査能力を示し、コードのリファクタリングを非常に素早く実現しました。最終的に実装されたのは、モダンなOpenGLバックエンドをベースとしたシェーダー側のみとなりました。phongシェーダーとベーシックなテクスチャ処理の軽量化と共に、特筆すべき拡張機能も実装されています。まずは、bumpmapへのサポートが行われました。影部分の量に加え、影をマップ部分に落とす処理が付け加えられ、オブジェクトの周囲の環境により適合した処理が行われると共に、ギザギザになってしまう縁部分はMSAAによって削除が実施されるようになっています。学生はその後もコードの開発を続け、最終的に彼のコードはアップストリームにマージされました。以下のスクリーンショットは、ヨーロッパのとある場所をmaps.osm2world.orgで表示した例になります。 Moderation Queue OpenStreetMapはコラボレーション参加型プロジェクトであり、数多くのユーザが友好的に協力することで成り立っています。しかし時には、破壊行為やSPAM、個々人の間で問題が発生することがあります。OpenStreetMapでは、そうした問題に対してこれまでにも対処を行ってきましたが、その対応は常に完全に実施できるとはいえませんでした。ウェブサイトにはそれ自体にメッセージング機能を有しており、あるユーザは他のユーザに対してプライベートなメッセージを送付することができます。もしメッセージの内容が個人に関するものではなく、編集内容に関するものの場合は、変更セットでの議論を開始することも可能です(この機能も、以前のGoogle Summer of Codeで実装されたものです)。しかし、私たちはこれまで、発生しうる問題に対してモデレーションを行ったり、管理を行ったりする必要がある場合において適切に対処を行うための方法を持っていませんでした。このプロジェクトでは、私たちのウェブサイトに大きく2つの機能を実装しました。1つは “モデレーション・キュー” と呼ばれる機能で、さまざまな問題を収集するための機能です。モデレーターや管理者は問題点をピックアップし、対処を行い、コメントを追加して、もしその問題が完了した場合には解決のフラグをたてることができます。チケット管理システムと似たような機能ではありますが、その機能はOpenStreetMapで必要となる事柄に特化しています。2つめは、このモデレーション・キューは必ずなにかしらの対応が必要です。そのためこのプロジェクトでは、問題となりそうなnote (メモ機能) や、変更セット、ユーザ、SPAMと戦っているユーザ、攻撃的なメッセージなどの課題を収集することを行います。残念なことにこの機能はまだ本流にマージされておらず、広く一般には利用することができません。 LearnOverpass […]

GSoC 2016への参加

大成功を収めた昨年のイベント参加に続き、OpenStreetMapは今年もGoogle Summer of Codeのメンタリング組織として採択されました。私たちは今年も、OSMに関連したプロジェクトのアイデアについて、コミュニティと議論を交わしながら開発してくれる学生開発者を募集します。参加申し込みは3月14日からスタートです。 対象となる学生向けのより詳しい情報は、私たちのWikiページ、あるいはGoogleのGSoC公式サイトから確認ください。

OpenStreetMap.orgの地図表現変更について

OpenStreetMap.orgでは、地図の右側にレイヤー表示ボタンが配置されており、そこからいくつものレイヤーを選択して利用することが可能です。この機能が成立しているのは、どのようなスタイルでも、自分の望む形でOpenStreetMapのデータを使って地図を生成することのできる OpenStreetMapの、オープンな地理情報データ配布のありかたの為せる技です。OSMのウェブサイトではそうして作られた 5つのスタイルを表示してますが、その他にも、ウェブ上では数百数千のスタイルが利用されています。 私たちは少しずつ、’標準’ (スタンダード、デフォルト) の地図スタイルを置き換えるための実装を開始しました。新しいバージョンのスタイルはこれまでのスタイルの進化版であり、道路の色合いの変更と鉄道路線の明瞭化が行われ、地図の読みやすさが改良されています。今回のリリースの期間、数時間の間は、古いスタイルと新しいスタイルがパッチワーク状に表示されてしまいます。サーバはフル稼働で地図画像を生成しています。すべての地図画像が生成されるまで、少々お待ちください。 スタイルの変更方法 今回の地図スタイルの変更では、道路や鉄道の表示方法が主要な変更点となっています。11年もの間、OpenStreetMapでは、私たちの周囲の環境を事細かに記録してきました。そうした情報を表示するよう、標準の地図スタイルは進化を遂げてきましたが、しかしその結果、道路や鉄道の線が非常に見分けづらくなってしまっていたのです。例えば、森林の多い地域のなかで国道 (現在は緑色で表示) の線を見分けることは非常に難しい状況でした。 この新しいスタイルの開発 (プロジェクト詳細) に携わった Mateusz Koniecznyさんによれば、新しい地図スタイルでは “どんな用途の地域のなかにおいても道路表示が見やすくなるように色合いを修正” が行われています。MateuszさんはOpenStreetMapコミュニティと歩調をあわせ、フィードバックを受けながら、デザインの初期調査からドラフトの実施という長い道のりを歩んできました。”主要な道路区分 (高速道、国道、都道府県道、主要道) において、どの道路が重要であるかが直感的に判断できるよう、色相と明度の連続性を安定させた” と、彼は加えています。 スタイルの変更はいつも行っているのに、今回の変更を特別扱いする理由は? もっともな指摘です。ここ数年間の間、新しい地図スタイルは2−3週間に一度の頻度で更新が行われてきました。OpenStreetMapの他のプロジェクトと同様、この地図スタイル変更においても、スタイル改良にあたって数多くのボランティア開発者が集っています。そうした活動をすべて記すことができれば、それは非常に素晴らしいことですが、しかし現実問題として、そこまではなかなか難しいのが現状です。また、今回の変更は、大きな変更点であるというだけではなく Google Summer of Codeプロジェクトの一環でもあり、ここで作業完了の一区切りをつけ、地図スタイルの改良に貢献するひとびと全員に感謝を伝える機会でもあります。メンテナの方々、ほんとうに素晴らしい活動を、ありがとうございます! 地図スタイル、次の変更方針は? 端的に言えば、しばらくの間は地図の細かな部分を継続的に改良してゆく作業を行う予定です。大きな改良作業は、アイデアや経験を有するメンテナたちの関心を惹きつけるものでした。もしかしたら、彼らのアイデアをもとに、小道と道路 (path and roads) に関する小規模な修正が行われるかもしれません。 さらに、OSMウェブサイトで表示する地図をスタイルルールに沿って生成するためのツールキットである Mapnikのバージョン更新作業も控えています。最新バージョンでは、ラテン語圏以外の言語表記におけるバグ修正が数多く含まれています。長期的な作業対象では、現在のように限られたタグだけではなく、OpenStreetMapデータのすべてのタグを標準地図スタイルで利用することができるように、データベースのデータ再投入も視野に入れられています。 ‘標準’ スタイルの開発、私にできることは? 標準地図スタイルは OpenStreetMap-Cartoと呼ばれていますが、このスタイルはGithubで公開されています。2012年にこの地図スタイルの開発に燃料を再投下したのは Andy Allanさんですが、彼はここ数年の OpenStreetMapカンファレンスでこのスタイル開発に関する講演を行っています。State of the Map US 2015で行われた講演では、最初の一歩を踏み出すかたにとってわかりやすく、このプロジェクトの現状が伝えられています。また、State of the Map EU2014では、詳細なワークショップが開催されています。 その他の地図スタイルについて 今回の変更は、openstreetmap.orgの ‘標準’ (スタンダード、デフォルト) の地図スタイルにのみ適用されます。 […]

変更セットディスカッション機能のご紹介

OpenStreetMapプロジェクト成功の鍵はコミュニティとコミュニケーションにあります。これまで、個人が行った編集に対するディスカッションは、いつもややこしく煩雑なものでした。この投稿ではOSMウェブサイトの新機能 “変更セットディスカッション”、すなわち変更セットそれ自体に対して公開ディスカッションを行う機能について解説します。 “変更セットディスカッション”導入前 “変更セットディスカッション”機能が実装される以前、変更セットに対してコミュニケーションをとる手段は、メーリングリストやフォーラムといったサイト外の手段を使うか、あるいはその変更セットを作業した編集者に対して直接OSMメッセージを送るしかありませんでした。どちらの手段も、ややこしい手順が必要でした。 そのため、これまで変更セットに対して議論を行うことはしばしば困難を伴っていました。新しいユーザがプラス方向のフィードバックや役に立つを得ることはほとんどなく、編集結果に賛否両論ある場合には、公開で議論が行われること無いまま、しばしばDWGの担当事案となってきました。 “変更セットディスカッション”導入後 “変更セットディスカッション”ではこの問題に関して、OSMに関係している変更セットに対して直接ディスカッションを開始することができるようになりました。このディスカッションは公開状態であり、貢献者の間での協調を図ることが可能となります。 この機能はOSM Note機能に対しても同様に、コメントを残すことができます。これにより、例えばノート(日本語訳: 編集メモ)の投稿者に対してより多くの情報提供を依頼するなど、ノートに対する公開ディスカッションを開始することが可能です。 変更セットへのコメント方法 “変更セットディスカッション”は既にOSMウェブサイト上で利用可能です。機能を使うには、画面左側に変更セットの内容を表示させ、そこにコメントを入力します: 入力が終わったら投稿ボタンを押すと、コメントが表示されます: Harryさんが返信している様子はこんなかんじです: …私の手元にEメールで通知が届き、返信があったことが知らされます。 ディスカッションへの参加/退出の選択 変更セットにコメントを入力した後、その変更セットに対して新しくコメントが投稿されたると、自動的に通知を受け取ります。これにより、それ以降の議論に継続して参加できるようになります。コメントを投稿せずにその変更セットの議論を確認していたい場合、”議論に参加/Subscribe”ボタンを押してください。 I その変更セットの議論を今後確認する必要がない場合は、”議論から退出/Unsubscribe”を押すと、新しいコメントが投稿されてもアラートが送られなくなります。 “変更セットディスカッション”のユースケース 新規ユーザの歓迎 前述のとおり、OSMは新規登録したユーザに対してコミュニケーションをとるよい方法がありませんでした。変更セットディスカッションを使うことで、彼らの最初の編集に対して歓迎のメッセージを送ることができます。加えて、例えばタグづけのレクチャーや特定のやり方の連絡といった内容を、彼らに対する強力なフィードバックとして返すことが可能になります。 プラス方向のフォードバックを送る コミュニティとして、私達は自分たちが行った編集に対してプラス方向のフィードバックを受けることはあまりありませんでした。変更セットディスカッション機能を使うことで、その編集に対するありがとうメッセージを送ったり、送られたりすることができるようになります。 編集の変更内容についての質問を送る 例えばnameタグの内容が変更されたり、道路のクラスが変更されたりした場合など、編集内容に疑問点がある場合は、ユーザに直接連絡をとって確認をしたいことがあります。変更セットに質問が書き込まれることで、その編集を行った編集者に対して公開フォーラムのような形であなたからのフィードバックを送ることができます。これにより、いままでよりもさらにオープンで開かれたディスカッションを行うことができ、ユーザ間の衝突や編集競合が起こりづらくなることが期待されます。 APIもあります “変更セットディスカッション”はAPIのコンポーネントも準備されており、Wikiに解説ドキュメントがあります。このAPIを使うことで、OSM編集ソフトウェア上から直接この機能を利用できるような実装を行うことができ、コミュニケーション/コミュニティを通してよりよい編集プロセスが築かれます。 スペシャルサンクス   “変更セットディスカッション”機能は、Google Summer of Codeでの開発、特に、光栄にも私 (訳注: Serge Wroclawskiさん) が担当した生徒である Lukasz Gurdekさんの作業の結果として生まれた機能です。彼の活動成果はまさしく最高級であり私は彼と作業ができてたいへんうれしく感じます。 また、開発されたコードをOSM.orgのコード体系にマージするにあたり、私とLuksazさんと一緒に作業してくれた Tom Hughesさんに特別の感謝を捧げます。彼のがんばりがなければ、私達のブランチはウェブサイトに実装されることがないままだったでしょう。 そしてもちろん、この機会を与えてくれたGoogleと、Google Summer of Codeプロジェクトにも感謝を捧げます。

週間OSMサマリー #70

2013/05/20 – 2013/06/03 OpenStreetMap (OSM)の世界で起きているあらゆる出来事の要約です。 OSMサーバ基金2013に対して、Lokku社 と Mapbox社 から多額の寄付をいただきました。ありがとうございます。寄付は現在も受け付けています! Google Summer of Codeにおいて OSMに関連したプロジェクトが3つ採択されました。OSM: Cached API proxy、Surveying mobile application for OpenStreetMap mappers (Field Papers-like) 、The creation of a stable and improved OpenTripPlanner Android client for pedestrian, cyclist, and transit routing based on OpenStreetMap and GTFS data State of the Map Baltics 2013の登録が開始されました FrederikさんOSMのエリアにオブジェクト密度が表示 させた統計を作成しました(単位はkm四方です) Pascalさん、Dennisさん、そしてAlexanderさんが新しい研究結果を公開しました: […]