33
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

発災時にOpenStreetMapでできること・できないこと

Last updated at Posted at 2016-04-19

念の為ですが、以下は個人としての発言であり、団体の意見を表明するものではありませんです。

熊本地震が発生した後、さまざまな人々によってさまざまなマップが作成され、「どこでなにが起きているか」を明らかにする地理情報の露出が多くなっています。

OpenStreetMap (OSM) でも、Crisis Mappers Japanさんが主導して行われているクライシスマッピングをはじめとした活動が行われています。そのなかで、OpenStreetMapでできること、できないことをまとめておいたほうがよいだろう、ということで、選択肢を明らかにしておく試みです。

クライシスマッピングの意味

OSMでは、地震などの災害が発生した際に クライシスマッピング という、地図作成活動が行われることがしばしばあります。

これは、災害が発生したエリアの地図をTasking Managerなどのツールをつかって担当地域を分担し、航空写真などをもとに地図作成を行うという活動です。

この活動は、もともとの地図が存在しない海外では非常に高い効果を持ち、世界各地で発生している震災や政治危機、疫病などで効力を発揮しています。

特に、赤十字や、国境なき医師団などの国際団体が現地に入る場合、英語で理解可能な地図の有り無しは現地でのロジスティクスや戦略策定に大きく影響します。

Tasking Managerは世界各地のHOTマッパーたちが参加しており、世界中のリソースが地域に投入されるため、非常に素早い速度で地図作成が行われることで、国際的な救助活動の現地入りまでにだいたいの地図が出来上がっていることもしばしばです。

Tasking Manager

しかしながら逆に言えば、既に他の地図が存在し、現地政府や団体による救助活動が中心に行われる場合、その効果は薄くなります。

さらに、クライシスマッピングで書き込むことのできる情報は、航空写真などから得られる情報が限度となります。

これはつまり、そのレベルの「ベースマップ」の作成が品質の上限、ということです。救助のように迅速な対応が求められる場面における「ベースマップ」としては、正直なところ、地理院地図Google Mapsなどの既存地図で用が足ります。

また、その他の情報をOSMに書き込むにあたっても、たとえば、事実情報を書き込むデータベースであるOSMでは、現実に存在していない崩落危険地域を書き込むことはできませんし、航空写真から避難所や病院の状況を判別することはできません。

より具体的に言えば、今回の熊本地震において、救助活動でOSMは使われておらず、救助活動にあたってOSMが役に立つことはまずないだろう、という認識です。

ただし、救援・救助の初動段階がこれから終わり、復旧作業やライフラインの確保、余震の中での日々の生活に移ってゆく段階にあたって、多くの地図がカバーしていない地域、例えば山間地などにおいてはOSMが強みをもつこともあるかもしれません。

また、森林や農地なども書き込まれた詳細な地図はそれだけで多くの情報を持っており、そうした情報が、印刷や配布のしやすいオープンなライセンスで配布されていることで、配布物の背景地図として扱いやすい素材となる可能性はあります。

このへんについては、talk-ja MLにも投稿しましたのでご参考までに。

このデータ、OpenStreetMapに載せられますか?

そんなOSMですが、「とりあえずOSMにも登録しておけばなんかなるのでは」という淡い期待のもと、相談が行われることがあります。

  • 「[Web上で公開されている|私が持っている]○○というデータをOpenStreetMapに載せるにはどうしたらよいでしょうか?」

さて困りました。

こういう場合、「載せる」という言葉にはたいてい2つの意味があります。

  • OSM画像を背景に、避難所などのアイコンを表示する
  • OSM自体にデータを登録する

OSM画像を背景に、避難所などのアイコンを表示する

こちらは、いわゆる「重畳・重ねあわせ」という手法で、ある程度簡単に実現が可能です。

具体的には、ポイントに緯度経度を割り振るなどしてCSVやgeojsonのファイルを作成し、LeafletなどをつかってOSMの背景地図を表示、そこにレイヤとしてそれらの情報を載せればOKです。

表現を行う際には、例えば、uMapCartoDBなどのツールを使うことで、こうした目的は達成することが可能です。

Google Mapsのマイマップ機能と同じような使い方ですね。

OSMを背景図として使うことの利点は、Google Mapsと違い、不特定多数に対して配布するための情報を作成しやすいことかな、と思います。

背景地図がOSMであることは、特に、印刷物の配布を行うにあたって非常に便利です。

だいたいの場合において、「載せたい」の意味はこちらのようです。

OSM自体にデータを登録する

稀に「載せる」をこちらの意味で使ってくるかたがいます。

だいたいの場合においてこの作業は困難ですし、お断りせざるを得ないのが現実です。

また、よくよく聞いてみると、最終的にやりたいのは「表示させたい」になることが多いので、ちゃんとヒアリングしたほうがよい案件です。

ただ、たんに「無理です」だと怒り出すかたもいるので、OSMにおける編集方針などを中心に、いくつか例示をします。

  • OSMのレンダリング
  • データのライセンス
  • タグ付与について
  • テンポラリ情報の取り扱い

OSMのレンダリング

OSMの地図表示は、登録されたデータをもとにして、一定のルール・定義のもとで行われています。

ですので、特定の地物だけを強調して表示させる、ということはできません。

最も有名ないつものOSM地図表示は、OSM Cartoで定義されていますが、例えば、「警察署は、このくらい拡大したときに、XX pxの大きさで、アイコンと文字列はXXXXとして表示させる」のように定義が行われています。

この定義の開発は、すぐに変えることはできません。

人道支援用に開発されているHumanitalian Tileも同様です。

「○○だけ強調するようにアイコンを置きたい」という場合、OSMデータベースではなく、別途GithubやGoogle Spread sheetなどでCSVを管理したほうがよいでしょう。

データのライセンス

データに対して位置情報を付与する場合、住所を元にしてジオコーディングを行うことで、緯度経度の情報を得ることができます。

最も有名なものは、Googleを使ったジオコーディングです。

ただし、Googleの利用規約により、Googleを使ったジオコーディング結果は、必ずGoogle Mapsと一緒に使う必要があります

利用制限規約

Google Maps Geocoding API は、Google マップと組み合わせてのみ使用することができます。

当然ながら、こうしたデータをOSMに投入することはできません

著作権侵害

OSMの協力者は、著作権者から明確な許諾を得ずに、著作権のある情報源 (例: Google マップや印刷された地図) からデータを持ち込まないよう注意するものとします。

自由なジオコーダが存在しない、という問題は古くからあり、元データとなる住所データが存在していないということが指摘されているのですが、住居表示住所や地籍調査の浸透に課題があることもあり、整備されたデータがそもそも存在していない、というのが正直なところです。
こうした住所データを所有しているのは、市町村であり、今後、オープンデータの流れのなかで公開されてゆくことが望まれます。

また、住所データが利用できないため、代替として国土交通省が公開している位置参照情報が使われることが多いですが、位置参照情報では街区レベル(番)までの情報であり、住居番号(号)まではカバーされていません。
つまり現状では、街区(丁目よりももうちょっと細かい位置)までは判別できますが、一戸単位での指定はできない、ということです。

国土地理院が公開している住居表示住所のフロンテージ情報を使うという手もありますが、こちらはやや用途が異なるデータであると共に、利用にあたっては測量成果の利用・複製の申請が必要となります。私見ですが、個人利用の範疇を超えてデータを利用し、ウェブでの公開を行う場合は、ほとんどが複製申請が必要となるかな、と思っています。(違っていたら教えてください)

参考までに、日本のデータに対応したジオコーディングのソフトウェア実装としては、東京大学CSISが公開している CSVアドレスマッチングサービスや、DmGeocodertokoroなどがあります。

タグ定義について

OSMはデータを定義するにあたり、KeyとValueを組み合わせたタグという構造でデータを管理しています。

例えば、避難所指定されている場所であれば "emergency=assembly_point"というタグで表現します。

しかしながら、こうしたタグは、自分で勝手に定義してもよいとされているものの、より多くの人が使うためには、一定程度共通したものを使う必要があります。

こうした定義を、あなたが持っている情報を細かく全て表現するために新しく作成するのはわりと労力がかかります。

例えば、避難所のキャパシティは "capacity"というタグで表現されますが、そのキャパシティに対する利用割合などを表現するタグはありません。

データのもつそれぞれのカラムに対し、細かくタグを考え、付与し、適切に更新してゆく必要があります。現実的ではありません。

テンポラリ情報の取り扱い

OSMでは一般的に、動的な情報や一時的な情報の入力は忌諱される傾向があります。

こうした情報の入力は災害以外にも、お祭りの時の施設配置などを入力したいという要望で顕著にあらわれます。ですがこうした情報は、その利用期間が終わった後にメンテが必要となります。具体的には、不要となったデータを削除したりすることが必要です。

そして実際にはこのメンテを放棄して、「後で気づいたマッパーさん誰かやっとくれ(ただしドキュメントは無いけどね)」という状態になることが非常に多いのです。

「明らかに○○なんだからうまいことできるだろ」と思うのは、データを入力するあなただけです。現地に赴くことができない遠隔マッパーが、その場所の現状を判断することは非常に困難であることを理解してください。

メンテがされなくなった瞬間、その情報は誤った情報となり、混乱を引き起こす可能性が高くなります。それは、望ましい状態ではありません。

また、一括のデータ登録や修正は、インポートやメカニカルエディットが必要であり、OSM全体の問題として、協議の上で対応することが求められます

それでもOSMに入れる

わかりました。

上記の課題を理解し、それでもOSMに入れたいというのであれば、それはかなり特殊な、あるいは想いの強いデータでしょう。

OSMに入れることで効果が高くなる場合というのは、あります。

例えば、地名や店舗名などの多言語対応などは、OSMの基盤を利用することが非常に有効と考えられます。

それは意味があるかもしれませんし、私も協力します。

OSMのデータを使う

OSMのデータは、地図画像というラスタデータではなく、ベクターデータとして使うことが可能です。

これを利用して、現在通行止めになっている高速道路や鉄道の路線を、データとして抽出し、ウェブ地図として重ねあわせることも有効かもしれません。
(現在、九州地方の高速道路や鉄道はリレーション化があまり行われていないため、誰かがリレーション化を行う必要があります)

OSMのデータは、単なるポイント・点情報以外に、ライン・線の情報や、ポリゴン・面の情報でも利用することができます。通行止区間などを表現するにあたって、こうしたデータ形式は非常に有用です。

九州自動車道の一部

また、インドのマッパー Planemadさんが、OSMデータを使った多言語地図の作り方についてドキュメントを作成しています。

各地物に割り当てられているnameタグの多言語追加を行うことで、こうした対応が実施可能になります。

OSMを使った多言語表示切り替え

OSMは地図を描くだけのプラットフォームではありません。

OSMを使うことでできることはたくさんあります。

結論

  • とりあえず、たいていの場合は、OSMにいれないでCSVで別途管理しておいたほうがいいと思う。
  • あと、そのデータのライセンスを明確にしておくと、自分以外の人も利用したりメンテしたりできるようになるのでオススメ(Google Mapsを使ってジオコーディングした場合はそういう運用NGなので注意!)
  • 位置情報いじるのだったら、geojson.ioでカラムと位置を整理してgistにアップロードするのもオススメ。
33
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?