ブログページのロゴマーク猫が綴る雑多なブログ

マッピングパーティー後は「チェックリスト」を回そう

マッピングパーティーをはじめとする「現地でのOpenStreetMapへのデータ入力」での精度の限界を見直す時間を取りませんか?という話

はじめに


大きな地図を表示

こんにちは、OpenStreetMap Contributors の一人であるgc27こと北村由衣です。 本稿では、OpenStreetMap(以下「OSM」)での現地調査による入力の精度限界を、事後的に机上作業でケアしませんか?という提案をします。

私は、に大阪で開かれた「マッパーズサミット」(OSM-JP公式・さくらのナレッジ報告記事)に登壇しまして、その際に『日常に溶け込むマッピング』と題して1時間ほど話をしました。 その中でも触れていますが、私は「現地入力」と「事後的な編集」を組み合わせています。 これを、より一般化して、特に事後編集にフォーカスしたものになります。

現地入力の精度の限界

OSMの原則ともいえる「現地主義」。現地で得られた情報をOSMに反映する。これは現地でしかできないことです。ノートPCを現地で開いてJOSMやiDを使うのは現実的とは言い難く、現在はスマートフォンあるいはタブレット端末が現地入力の筆頭デバイスでしょう。

これらのデバイスで日本語圏OSM編集に適したものが揃っているとは言い難く、タグや値の入力、位置の精度(品質・クオリティー)に限界が出てきます。

これに「マッピングパーティー」といった「初心者を含むメンバーでの現地入力活動」を重ねると、タグの誤用や入力の揺れの多発が起きていることがOSM実データから観測されます。

現地品質の向上

事前にiDなどで調査予定範囲の建物をプロットしておくのは非常に有用ですが、スマホ入力に際して私が現状推しているのは、EveryDoorアプリとMapillaryスマホアプリの組み合わせです。

そう多く比較したわけではありませんが、EveryDoorは、日本の住所体系にさえ対応してくれれば現状最適解だと思っています。住所体系に関しては開発GitHubにプルリク投げたような、そのあとどうなってたっけ…。

Mapillaryスマホアプリは、360°を1枚でケアするのではなく、地物同士の位置関係や掲示内容を位置情報つきで保存するツールとして見ます。スマホのカメラの画質も良いですから、x1.0倍ズームで対象物が写るように撮影してアップしておくと、後からの品向作業で「思い出せなくても記録を参照できる」状態が作れます。

始める前に

初心者向けに上記ツールを紹介するときは、当日初操作だとしても、いくつかの留意事項を伝えるとよいでしょう。

  1. 「地図メモ」機能の紹介。OSM流儀の入力方法がわからなくても、自分の言葉でそのままデータを他のOSM編集者に向けて残せるOSM標準機能です。 EveryDoorでは下部ボタン右端から読み書きできます。OSMに共有するよう助言してあげてください。
  2. 「日本の住所体系」が世界的にみると特殊であること。東京都豊島区東池袋一丁目2番地3号マイハウス405号室を逆から解読するのが世界の主流であり、OSMのツールもそれに寄っていること。 そして、street(道路の名前)を住所の一部として持つのが世界の主流であるが、日本では使わないこと。 標準エディタiDでさえ、v2.41.2現在でaddr:housenameはUIがありません。 (余裕がありそうなら、欧州のiD住所欄を見せてもいいかもしれません)
  3. データの逃がし方。「無理やりそれっぽく入れる」のではなく、「noteに自由記述」や「地図メモ」機能があります。 住所についてはaddr:fullがあります。

※現地で得られる情報は貴重です。ベターなデータ状態が望ましいですが、「誤りや指摘を恐れて入力しなかった」ということの方が問題です。パーティーを引率される方は「これどうすればいい?」が参加者から上げられる環境を引き続きよろしくお願いします。

品向という作業

opening_hoursの構文、といった現地で得られるものの入力形式が難しいデータだったり、 地図メモに残してきた未整理の情報だったりを、OSM所定の形式に整えて、「品質向上」(略して「品向(ひんこう)」)しませんか? こんな観点でどうですか?というのが本稿のメインテーマです。

登録されたデータは、全世界のOSMユーザに公開され、利用されます。現地調査の結果をより活用してもらうための作業時間として品向作業をしませんか?「データクレンジング」と呼ぶと難しそうですから、「品向会」しながら現地調査を振り返りませんか?

ここから「品向チェックリスト」の観点を挙げていきます。ただ、これらすべてを網羅するのも大変なので、気になるポイントだけを拾っていくでも大丈夫です。よりよいOSMのデータセットのために、できる範囲のことを。

机上作業での品向チェックリスト

OverpassTurboで適切なクエリを投げることで抽出できるものから、 個別にiDやJOSMエディタで鑑別が必要なものまで、粒度が様々ですが、私が現地入力したあとの品向作業で確認するポイントです。

  • 住所体系

    繰り返しになりますが、日本の住所体系は難しすぎます。デジタル庁が住所の表記ゆれを問題視して基盤づくりを試みる、そういう次元の問題です。

    一方で、OSMにはタグ付けという体系があります。詳細はOSM-Wiki「JA:住所#日本の住所体系(街区番号・地籍転用)」に譲りますが、 addr:*で括られる12階層に住所を分解して登録することになります。

    住所表記(addr:full)を階層構造に分解するサンプル表
    上記Wikiのスクリーンショット(現在)
    1. 郵便番号はxxx-xxxx形式ですか?
    2. 都道府県(addr:province)は登録されていますか?
    3. 町村の郡(addr:county)は登録されていますか?
    4. 東京23区(addr:city)と政令指定都市の区(addr:suburb)は所定のタグについていますか?
    5. 「丸の内一丁目」の「丸の内」部分がcityやquarterに入っていませんか?
    6. 全角数字が混入していませんか?
    7. ハイフンつなぎの数字はありませんか?
    8. 建物名をaddr:housenumberにむりやり入れてませんか?addr:housenameが活用できます。
    9. addr:fullが残っていませんか?
    10. addr:streetが残っていませんか?

    フロア情報

    現地で得られる「建物の階数」情報と、「店舗が入居しているフロア」情報は往々にして混乱しやすいものです。

    1. 建物に店舗情報が入っている場合
      • その建物全体が当該店舗ですか?(1階のテナントの情報を建物全体に登録してしまっている場合があります)
      • 建物の階数building:levelsとlevelを混同していませんか?
    2. 店舗情報のaddr:floorとlevel値は整合していますか? (level値はグローバルにデータ比較の観点で必要ですが、日本での入力はaddr:floorのほうがまず正確になりがちです)
      • 複数フロアに入居している場合、;で区切られていますか?
  • nameタグは名称欄

    (同)北村由衣(IT業)は直しましょう、という例示を出しつつ、いくつか事例を挙げます。 (name=合同会社北村由衣; short_name=(同)北村由衣; office=it;です)

    1. 月極駐車場。稀によく見ます。往々にして月極駐車場に対するnameの正解は「野塩第二駐車場」だったり、無名です。 access=private; fee=yes;の組み合わせで表現します。 これで標準タイルでは「P」記号が薄い色になり、一般来訪者が使えないことが示唆されます。
    2. 正式名・略称は別のタグがあります。
      • official_nameとalt_name、あるいはshort_nameがあります。 どのnameレベルに何を格納するのかはコミュニティでもまだ標準化しきれていないように思われます。
    3. (イートイン)などの説明文がついてませんか?
      1. イートイン=indoor_seating=yes、24時間営業=opening_hours=24/7、 禁煙=smoking=noのように、OSMにはたいていの状態を持つタグがあります。
    4. 支店名が入っていませんか?name=日本銀行; branch=甲府支店のように支店名は別タグにつけます。 標準タイルではbranch値がレンダリングされないので寂しく見えますが、 nameとbranchの切り分けはOSMのタグ付けにおいては必要な分割です。
  • 営業時間

    iDでは「ただの1行テキスト入力欄」が提供されるフリー演技の場…ではなく、規定の形式に合わせる必要があります。初心者向けにはEveryDoorのようなツールや特殊パターン(第2土曜は休み、とか)はnoteやfixmeに逃がすことを教示することが望ましいです。 また、現地で「祝日」の情報を意識してもらいましょう。祝日も変わらず営業するのか、祝日だと休むのか、大事な情報です。

    1. 全角文字が入っていませんか?:や数字が全角になっていませんか?
    2. 平日/土日祝 といったテキストで書かれていませんか?
    3. 昼休みや、ランチ/ディナー営業を適切に反映できていますか?
      • 現地の案内を見て、素でMo-We,Fr 10:00-13:30,17:00-22:00; Th off; Sa-Su,PH 10:00-23:00;Su[2] off;を書ける人はあまりいません。
      • 「年中無休」は曜日+祝日のMo-Su,PH 10:00-22:00;で表現しましょう。
  • 外部リンク元の整理

    ウェブサイトやSNSへのリンクを張るタグがいくつかあります。

    1. websiteは公式ページですか?
      • SNSの場合はcontact:*に移動しましょう
      • 食べログやGoogle検索の結果にはリンクしないようにしましょう
    2. SNSリンクはcontact:instagramなどを活用しましょう
      • URL末尾の?hl=jaなどQueryStringは除去するのが望ましいです
    3. phone, faxは国際番号形式にしましょう。
      • 日本国内は03-1234-xxxxとなっていても、OSMでは国際的に対応できる国番号(+81)を頭に付けた、 +81-3-1234-xxxxとするのがお作法です。
  • Noteから情報を卒業させよう

    現地でPOIに紐づく情報を仮置きするにはnoteタグは優秀です。 しかし、品向でそれを見つけたら、適切なタグ(descriptionを含む)に振り分けて、 noteタグから情報を卒業させてあげてください。 fixmeタグをつけることも時には必要です。

    1. descriptionタグは一般利用者が当該地物の説明文として読むことが期待できます。 日本語の自然な表現が許容されます。タグに分解できない情報を残す場所として有用です。
    2. memoタグはnoteの非推奨版です。発見したら対処が必要です。
  • データを見る方法

    ここまで、直す対象を挙げましたが、それらをどう見つけ出すか?という問題があります。

    「対象のデータをどう抽出するか」と「レンダリングされないデータをどう見るか」です。これに対する回答を置いて本稿を閉じたいと思います。

    データの抽出

    OverpassTurboを主に使います。

    最低限の抽出は次のクエリで構成できます。

    クエリ例1. 描画範囲内で指定UTC時刻以後に更新されたNode/Way/Relationをすべて抽出する
    nwr(newer:"2026-06-30T15:00:00Z")({{bbox}});
    (._;>;);
    out meta;
    
    nwr(user:"gc27")(newer:" ...
    // 指定ユーザによる更新のみを抽出することも可能
    
    クエリ例2. 描画範囲内で指定タグに特定の値が含まれるNodeを抽出する
    node["addr:housenumber"~"1"]({{bbox}});
    (._;>;);
    out meta;
    
    クエリ例2-2. 特定タグに指定値が一致するWayを抽出する
    way["addr:city"="葵区"](._;>;);out meta;
    
    [追記]OverpassTurboで使えるクエリ集を公開しました

    データの確認と修正

    OverpassTurboで抽出したデータは、そのまま画面上で見ることもできますが、iDまたはLevel0エディタに移動する方法があります。

    OverpassTurbo上で表示されるNodeの値
    抽出したデータのひとつをクリックしたときにポップされるデータ

    抽出されたNode/Way/Relationの鉛筆ボタンをクリックするだけでiDエディタに移動できます。チェーン店へのWikidata付与のサジェストなどがあり、便利な標準エディタです。

    一方でエクスポートボタンから抽出したデータをすべてOSMファイルとしてダウンロードし、Level0エディタで取り込む方法もあります。含まれるオブジェクト数が1000を越えない抽出条件を調整する必要はありますが、タグ = 値のペアで確認できるので慣れてくるとこちらのほうが「異物」検知には適している可能性があります。

    iDエディタの表示

    UIが充実していますが、直接的な編集にも耐用するのがiDエディタの良いところです。

    iDエディタの住所編集枠
    iDエディタ既定のタグビュワー
    一覧表示にすると編集もしやすくなります
    iDエディタのタグ編集モード

単身現地調査でも、マッピングパーティーでも、持ち帰った編集データを見直す時間を設けることで、地域のデータ品質が着実に向上するでしょう。イベント当日のお疲れモードでやるに限らず、1週間温めてMapillaryの処理完了を待ってみたりしてもいいかもしれません。現地調査で終わらず、持ち帰った成果物の品向作業を含めて、1回の調査として考えるようにしていただけると幸いです。

ぜひ、本稿に挙げた品向観点を「チェックリスト」として机上編集してみてください。

つれづれ

当ブログのお決まり、最後のsection「つれづれ」。

今回マッピングパーティーという単語を入れたのは、2年前に開催された静岡の事例を目にしたためです。 当該イベントのおかげでPOIは非常に充実していましたが、データ記法の揺れが激しくて…。ex.Node/11640499293

静岡市の七間町周辺での修正した地図データ記録
Easy Changeset Viewerで見る更新ログ

静岡県のデジタル戦略課の方々、山梨から行けます、呼んでください。交通費はください、特急ふじかわ乗らせてください

了




コメントはこちらからお寄せください