JOSMプラグインQuickLabelを活用してOpenStreetMapデータの品質を上げていこう

2025年もマッピングおつかれさま!

QiitaのOpenStreetMap Advent Calendar 2025のネタということで、私の開発しているJOSMプラグイン “QuickLabel” を活用してOpenStreetMapのデータの品質をアップさせていく方法を解説していく。

今回紹介するJOSMプラグイン “QuickLabel” は、編集中のデータに、任意のタグの値を任意のフォーマットでラベルに表示することができ、しかもその表示項目を素早く切り替えられるというものだ。
たとえば……

  • 一時的に name ではなく name:en を優先的に表示し、英語環境で見たときにどうなるかをチェックする
  • 道路の maxspeed をラベルに表示して、速度制限の入力漏れや未調査をチェック
  • 建物のnamebuildingbuilding:levelsaddress:*などの重要タグを次々と切り替えながら表示し、データを充実させていく

といった使い方ができる。表面的に見えているタグだけでなく、その奥にあるさまざまなタグに目を配ることができるようになれば、OpenStreetMapのデータの利用価値も上がり、自分自身も上級マッパーへとレベルアップできる。

使い方

インストール

まずはQuickLabelをインストールしよう。

JOSMの設定画面を開き、プラグインタブを表示する。プラグイン一覧の中にある “QuickLabel” にチェックを入れればインストールできる。いったん再起動が必要となる。

JOSMの「設定」画面でプラグインリストの中から「QuickLabel」を選び、チェックボックスをチェックしている様子

基本の使い方

QuickLabelのダイアログを開いてみよう。JOSMのメニューバーの 表示 > QuickLabel から開くこともできるし、キーボードショートカット Command + Shift + L で開くこともできる。LはLabelのLだ。このショートカットを覚えておくと、高頻度で表示を変えながらさくさくとマッピングを進めることができる。

QuickLabelのダイアログ

QuickLabelのダイアログには、「メイン」と「サブ」の2つの欄があるので、それぞれに表示したいkeyを書き込んでいく。すると、マップデータの中の各オブジェクトに対して、次のようなルールで設定が適用されていく。

  • まず、いちばん上の行に合致するかどうかをチェック。対象となるオブジェクトがそのタグを持っている場合、その値がラベルとして表示される。
  • なければ次の行を適用しようと試みる。これを繰り返し、優先度順に表示内容が決まっていく。
  • 値をそのまま適用するのではなく、ちょっと書式を変えることもできる。{}で囲んだ部分は値に置き換えられるので、たとえば、{maxspeed}km/h と書いた場合、maxspeed=30 の道路には 30km/h と表示される。

「サブ」のほうも同様のルールが適用され、各オブジェクトには「メイン」と「サブ」が並んで表示されることになる。

やってみる

こちらは秋葉原のとある場所。飲食店がたくさんあって、名前が表示されている。これらのお店にどれだけの情報がタグ付けされているか、QuickLabelを使ってチェックしていこう。

秋葉原のUDXの飲食店街を拡大表示したもの。アイコンに店名が添えられている。

まず、名前の横にcuisine(料理ジャンル) とopening_hours(営業時間) を一緒に表示するように設定してみよう。どちらも、飲食店にはとても重要な情報だ。
QuickLabelを開き、「サブ」のテキストエリアの先頭に、次のように書き加えてみよう。

{cuisine} / {opening_hours}
cuisine
opening_hours

いちばん上の {cuisine} / {opening_hours} は、「cuisineopening_hoursの両方のタグを持つ場合は、メインのタグの値に加えて{cuisine} / {opening_hours}を表示する」という意味だ。
これに該当しない場合、QuickLabelは2行目を適用しようとする。opening_hoursタグは持たないけれどcuisineはある場合は、cuisineの値が表示される。


編集できたら、「適用」を押してみる。すると……

お店の詳細情報が表示されるようになった。これで、cuisineopening_hoursがタグ付けされているかどうか一目瞭然だ!

次は、お店のあるフロアが入力されているかどうかをチェックしよう。QuickLabelのダイアログを開き、「サブ」の1行目に

{level}F

と書いて適用すると、今度は “1F” (OpenStreetMapではlevel=1は2階を意味する) などと表示される。


こんな感じで、QuickLabelでさくさくと表示を切り替えながら、足らないデータを記入していったり、次の現地調査のときにチェックする項目を決めたりしよう。

地図描画スタイルとの使い分け

QuickLabelと併用したいJOSMの機能が、「地図描画スタイル」だ。

これは、ラベルに何を表示するかを決めたり、タグに応じて線のスタイルを変えたりするためのものだ。歩道マッピングに役立つものや、建物のデータのチェックに役立つものなど、さまざまなものが揃っている。自分で作ることもできるし、パネルでオン/オフを切り替えることもできる。

各種highwayの種別を線のスタイルで見分けられるようにするなど、いつでも見えるようにしておきたいものは地図描画スタイルを活用したい。

一方、常時表示しておきたいわけではないが、営業時間を表示したら次は階数、その次は決済手段をチェックして、さらにname:enを表示して……と手軽に作業したい時はQuickLabelを使うといい。

実際、どう使うか?

実際にQuickLabelを使うシーンの例をいくつか紹介する。

ケース1 : 飲食店のマッピング

さきほどの例のように、建物内の階数・料理ジャンル・営業時間など、飲食店の情報として重要なものが入っているかどうかを調べる。さらにWebサイトや連絡手段、バリアフリー情報なども書き込まれていると嬉しい。

各言語のname:*も外国人旅行者の役に立つ。

ケース2 : 道路マッピング

道路は、最も基本的なhighwayの種別に加えて、車線数や速度制限、道路材質などをチェックしていきたい。歩道の場合は、tactile_paving (点字ブロック) も重要だ。
JOSMの「地図描画スタイル」と併用しながらQuickLabelで情報を切り替えていくのがおすすめ。

ケース3: 建物

航空写真のトレースなどで入力されたばかりの建物オブジェクトは、building=yesだけがタグ付けされていることが多い。

現地調査をしたら、商店やマンションなど、建物種別によってbuildingの値を変えていく必要がある。そしてbuilding:levels (階数) やaddress:* (住所) が加わると情報が充実していく。住所は検索の役に立つし、階数が入っていると地図アプリで3D表示したときにも格好がいい。

ケース4 : バリアフリー情報

バリアフリー、あるいはバリアの情報を丁寧に取り扱えるのがOSMのいいところだ。

道路や歩道には tactile_paving (点字ブロック) やsurface (材質)、incline (傾斜) が入っているといい。施設には、wheelchair (車いすでのアクセス) などがついているかどうかをチェック。データが充実していれば、バリアフリーなルートを検索したり、車いすで入りやすいお店を調べたりすることができる。

おわりに

OpenStreetMapのデータの厚みは、一見しただけではわからない。道や建物の形が描かれていて、地物のアイコンがあって、名前が書いてあれば、地図としての体裁が整う。しかし、その地図にはどれだけの奥行きがあるだろうか。
他言語での表記はタグ付けされているだろうか? 建物の階数は? 住所は? 駐車場の収容台数は? 道路の速度制限は? 集中的にマッピングの行われた地域では、あらゆる地物にそういった表に出てこないタグがしっかり書き込まれている。

こうした「隠れたタグ」を地道に入力していくことで、OSMは「見た目だけの地図」から「さまざまな可能性を秘めた地理情報データ」へと成長していくのだ。QuickLabelは、そのための強力なツールになる。ぜひ活用してほしい。