あと1週間ほどで、 Backseat co-Driver アプリを Google Play で正式リリースできる見込みです。このアプリはドライビングアシストを主な目的としており、走行速度や進行方向を読み上げるほか、 OpenStreetMap に登録されている制限速度、道路標識、信号機のない横断歩道などの情報も音声でドライバーに知らせます。 OpenStreetMap を採用した大きな理由は、オープンデータとして利用できることです。ただし、日本では道路そのものの情報はかなり充実している一方、地域によっては制限速度、横断歩道、道路標識などの細かな情報が十分に登録されていません。こうした情報が少ない道路では、 Backseat co-Driver も十分なドライビングアシストを行うことができません。
OpenStreetMap は、利用者自身が情報を追加・修正することで、地図をより充実させることができます。まずは自分が普段走っている道路や、自宅、職場の周辺など、実際の状況をよく知っている場所から情報を登録してみるのがおすすめです。逆に、一度も通ったことのない道路や、現地の状況を確認できない場所を無理に編集する必要はありません。また、 Google Maps や Google Street View など、利用規約上 OpenStreetMap への転記が認められていない資料を見て、その内容を登録してはいけません。自分で現地確認した情報や、 OpenStreetMap への利用が認められている資料を使うのが基本です。普段よく使う道路であれば、見落とされがちな標識や制限速度、幅員や高さ制限など、自分が知っている有用な情報を追加できます。
この記事では OpenStreetMap の編集方法を簡単に紹介します。私自身の備忘録も兼ねています。 OpenStreetMap を編集する方法はいくつかありますが、今回はブラウザだけで利用でき、基本的な編集をわかりやすく行えるオンラインエディタの iD を使用します。

https://www.openstreetmap.org/ をブラウザで開きます。右上の「ログイン」をクリックします。アカウントを持っていない場合は「利用者登録」を行います。

すでにOpenStreetMapのアカウントを持っている場合は、アカウント情報を入力してログインします。新しくアカウントを作成する場合は、地球の絵の左にある「利用者登録」タブをクリックします。今回は利用者登録の手順については割愛します。

左上付近にある「編集」をクリックします。編集方法の候補が表示された場合は「iD(ブラウザー内エディタ)で編集」を選択します。

編集画面が開くと、背景に航空写真が表示されます。編集したい地域まで地図を移動し、十分に拡大します。建物や道路などのデータが多い地域を広範囲に表示すると、ブラウザの動作が重くなることがあります。そのため、まず編集したい場所まで移動してから、必要な範囲だけを拡大表示するようにすると操作しやすくなります。

横断歩道の例です。道路上の横断歩道を示す基本的なタグは highway=crossing です。必要に応じて横断歩道の種類や路面標示なども設定します。日本で一般的な縞模様の横断歩道であれば「ゼブラ」を選択します。この画像は信号機のある交差点の横断歩道なので、信号で制御されていることを示す crossing=traffic_signals を設定します。ナビゲーションやドライビングアシストでは、横断歩道が信号機で制御されているかどうかが重要な情報になります。 Backseat co-Driver で特に注意を促したいのは、信号機のない横断歩道です。日本では信号機のない横断歩道の手前には、原則として横断歩道があることを知らせるひし形の道路標示が設けられています。ただし、道路状況によっては信号機のある場所にも設置されることがあるため、ひし形だけで判断するのではなく、実際の状況を確認して登録します。

信号機の例です。信号機の基本的なタグは highway=traffic_signals です。交差点全体を1つの信号機ノードとして登録する方法もありますが、大きな交差点などでは、進行方向ごとに信号機を個別に登録することもできます。この画像では個別に信号機を登録しています。西から東へ進む車両に対して有効な信号なので、その信号が適用される方向を設定します。この道路では OpenStreetMap 上の道路の向きと対象車両の進行方向が同じなので「順方向」を選択します。これは traffic_signals:direction=forward に相当します。
ここで注意したいのは、編集画面に表示される道路の矢印が、一方通行や車の進行方向を意味するものではないことです。OpenStreetMap では、道路を表す線(way)には必ず始点から終点へ向かう方向があります。双方向に通行できる道路であっても、データ上はどちらか一方の向きに線が描かれています。「順方向」や「逆方向」は、このwayの向きを基準に指定します。方向指定を削除したい場合はゴミ箱のアイコンをクリックするか、全てのタグから traffic_signals:direction=forward 、 traffic_signals:direction=backward 、 traffic_signals:direction=both などの該当するタグを削除します。

道路を選択した状態です。道路には国道や都道府県道、一般道、自動車専用道路、住宅地の道路、農道、林道、歩道など、さまざまな種類があります。主要な道路については道路そのものや名称がすでに登録されていることが多い一方、制限速度などの細かな情報が登録されていない区間もあります。制限速度は maxspeed タグで登録します。 OpenStreetMap では、見た目には1本の道路でも、データ上はいくつもの区間に分割されていることがあります。制限速度などの情報は、それぞれの区間ごとに設定されるため注意が必要です。橋、交差点、道路属性の変化する場所などでwayが分割されていることもあるので、途中の区間だけ情報が抜けないよう、同じ道路をたどりながら確認していきます。

一時停止の例です。一時停止を示す基本的なタグは highway=stop です。一時停止は、どちらの方向から走ってくる車両に適用されるのかを指定する必要がある場合が殆どです。この画像では道路は片側1車線の双方向ですが、OpenStreetMap 上では1本のwayとして登録されています。wayには便宜上の向きがあるため、その向きを基準に一時停止が適用される方向を設定します。この画像では「順方向」 direction=forward ですが、道路の描かれ方によっては「逆方向」になる場合もあります。編集画面に表示される扇形の方向ガイドを確認し、実際に一時停止しなければならない車両の進行方向と一致するように設定します。この例では、左(西)から右(東)へ走行する車両に対して一時停止が適用されます。

信号機のない横断歩道の例です。前述した信号機付きの横断歩道と同じく highway=crossing を設定し、信号機で制御されていない横断歩道であることを示す crossing=uncontrolled を設定します。画像を見ると、横断歩道の手前にひし形の道路標示も確認できます。信号機のない横断歩道では、横断しようとする歩行者がいる場合、車両には横断歩道の手前で一時停止する義務があります。そのため、Backseat co-Driver のようなドライビングアシストアプリにとって、信号機のない横断歩道の位置は特に重要な情報です。こうした横断歩道を OpenStreetMap に正しく登録しておけば、アプリからドライバーへ事前に注意を促せるようになります。

変更内容はまとめてアップロードできますが、私の環境では数百件ほどの変更をためた状態になるとブラウザの動作が重くなり、安定性も下がることがありました。そのため、ある程度編集したところで画面右上の「保存(アップロード)」ボタンをクリックして保存するようにしています。左上のコメント欄には、どのような変更を行ったのかを簡潔に記入します。その後「アップロード」ボタンをクリックすれば、変更内容が OpenStreetMap に登録されます。
編集画面ではデフォルトで航空写真が表示されますが、航空写真上の道路と OpenStreetMap の道路の線がずれて見えることがあります。この場合、安易に航空写真へ合わせて道路の位置を変更しないようにしてください。航空写真そのものに位置のずれが含まれていることがあり、 OpenStreetMap の道路データのほうが正しい場合もあります。位置を修正するときは、利用可能な複数の情報を確認して慎重に判断する必要があります。一方で、道路名、交差点名、制限速度、道路標識などの情報が未登録だったり、実際の状況と異なっていたりすることもあります。自分で現地の状況を確認できる場所であれば、ぜひ積極的に追加・修正してみてください。
地図の情報が充実すれば、それを利用するサービスも便利になり、利用者が増えることでさらに地図が充実していく好循環も期待できます。 Backseat co-Driver の利用者が OpenStreetMap の情報を少しずつ充実させてくれることを願っています。
- 令和に蘇る昭和のMacintosh II ケースのレトロブライト (前編)
- intel N150 16GBメモリ512GBストレージのミニPCが1万円半ばだったので買ってみた
- HDMI + USBの8ポートLVMスイッチを買ってみた
- TexHooのintel N95のミニPCを買ってみた
- AOOSTARのRyzen 7 5825U搭載ミニPCを買ってみた
- TexHooの2万円 Ryzen 5 4500U ミニPCを購入してみた
- Ryzen 5 5500U搭載で3万円台半ばの格安ミニPC TRIGKEY Speed S5
- Celeron J6412搭載の日本初上陸?マザーボードを動かしてみた
- 自宅データセンター鯖向けの底々な性能の低消費電力CPUを比較してみた
- UnixBench 自分の常用端末でも試してみた