1．はじめに
2007年のiPhoneの発売以来,スマートフォンの爆発的な普及と国内におけるオープンデータの推進によりGIS関連アプリが誰でも簡単に作成できる土壌が整いつつある. このような中,  2011年4月に国土数値情報の土砂災害危険箇所データ（2010年度)， 2013年６月には同じく国土数値情報の避難施設データ(2012年度)と浸水想定区域データ(2012年度）の提供が開始されるなど,防災アプリや洪水ハザードマップアプリの作成に必要な地理空間データも充実しはじめている.一方で，ハザードマップは市区町村単位で製作・配布され，住民が隣接自治体や広域の状況を知るには別途情報を収集しなければならない.そこで本論文では, これらオープンデータとスマートフォンを用い，市町村単独ではなく広域の洪水ハザードマップの閲覧ができるとともに，洪水氾濫時の避離に適した避難所の検索を行う洪水ハザードマップアプリの開発を試みた.対象プラットフォームとして2013年の国内スマートフォン出荷台数の約半数（46.0%）を占め（電通総研, 2015),公開申請アプリに対する事前審査により一定の品質が保証されるiPhoneの基本OSであるiOSを選択した. 開発環境はXcode,開発言語はObjective-Cである. なお,  2015年５月からGoogle Play（Android）公開アプリのレーティング審査が開始されたことを付記しておく.防災アプリは「いざというときに気軽に利用できるもの」 (内野, 2014)として開発される場合が多いが，本アプリは災害時に使用するものではなく,事前の確認,机上訓練での使用を想定した.これは災害発生時に指定の避難所が耐震補強中などの要因で開設されない場合があることから，緊急時の利用に適していないと考えたためである. 2015年7月現在, App Storeにおいて防災をキーワードとして公開されているアプリは210本あり,国内の一部または全部の避難所の確認が可能なアプリは防災情報全国避難所ガイド（アップル, 2011)など67本（著者製作アプリを除く）存在する. このうち被害想定のオーバーレイ表示が可能なアプリはi国土II (アップル, 2012)など７本が存在するものの,これらの中にオーバーレイ検索などの空間分析が可能なアプリは存在せず，具体的な被害想定値は読図で確認しなければならない.本アプリはオーバーレイ検索による複数の洪水氾濫を対象にした最大浸水深の検索・表示や，浸水深を考慮した避難所検索など空間分析に重点を置いた点に新規性を有す.
2.オープンデータの活用
日本国内には総務省が定義するオープンデータ,すなわち二次利用可能な形で公開された公共データ（総務省, 2014）が多数存在する.ここで,二次利用可能な形とは,二次利用可能な利用ルールが整備されかつRDF (Resource Description Framework)やXMLなど機械判読に適したデータ形式であることをいう.本論文では,出典の明記で二次利用が可能でかつGISの世界では一般的なJPGIS（Japan Profile for Geographic Information Standards）フォーマットでデータが提供されている,すなわちオープンデータの要件を満たす国土交通省国土政策局国土情報課の国土数値情報を用いることにした. なお,後述する使用データの利用約款が公開当初と異なり随時更新されていることから，使用においては最新の約款を確認して頂きたい. ベースマップにはiOSのMapKitフレームワークに附属する地図データ(国内地図はインクリメントＰ製）を用いた.
2. l . 浸水想定区域データ
国土数値情報・浸水想定区域データ（国土交通省国土政策局国土情報課, 2013a）は河川管理者（国土交通大臣または都道府県知事）から提供された洪水子報・水位周知河川の浸水想定区域図を電子化し,浸水深ごとにポリゴンデータ化されたものである. JPGIS（GML）形式およびシェイプファイル形式で都道府県別に提供されている.ポリゴンデータの中には非常に範囲が広く，穴がたくさんあいている複雑な図形のデータも多い.そこで，全てのポリゴンを事前に縦横0.01°間隔で分割することにより,スマートフォンなどの一般に描画性能が劣るデバイスでも高速に描画できるようにした. 使用する地理空間データはCore Dataフレームワーク（モデルオプジェクト永続化のフレームワーク, 以下Core Dataという）で管理するため，分割したデータは浸水区域データセットとして表１のように定義した. 表中のTransformableととははNSData型に変換されるタイプである. なお,分割前のポリゴン数は140万637個で分割後は168万5,600個と前後で約1.2倍増加している. シェイプファイル附属の属性情報と説明文についてはポリゴンから独立させ,表２のように浸水情報データセットとした.

2. 2.避難施設データ
国土数値情報・避難施設データ（国土交通省国土政策局国土情報課, 2013b）は各地方自治体の地域防災計画から避難施設情報を抽出し，順ジオコーディングにより作成されたポイントデータである.データ件数は約12万６千件で，浸水想定区域データと同様にJPGIS（GML）形式およびシェイプファイル形式で都道府県別に提供されている.当初はユーザビリティ向上のため一時避難所や収容避難所など避難所種別ごとにアイコンを分けることを試みたが，名称や役割が自治体間で異なることや，同じ自治体内，たとえば淡路市では同じ機能を有すると思われる施設でも一次避難所，指定避難所( 1次),一時避難所とデータ上では名称が異なることから分類は困難と判断した.ただし, 2014年4月１日施行された改正災害対策基本法により新たに緊急避難場所と避難所の指定に関する規定が定められたことから，近い将来は分類が容易に行えるようになると思われる. 避難施設データは避難施設データセットとして表３のように定義した.

3.防災アプリの開発
前章で定義したデータセットをMapKitフレームワーク（iOS附属のGISエンジン, 以下MapKitという）で扱うため， Core Dataを用いてデータベース（SQLite）に格納する.  Core Dataではポリゴン(MKPolygon)を直接扱えないため,緯度経度の羅列（表１の「ノード群」を差す）を１レコードとして格納した.なお,本章ではオプジェクト名やクラス名を開発者向けドキュメント（Apple, 2014）記載の名称をかっこ書きで併記する.
3．1．現在地の想定最大浸水深
地図画面中心位置の想定最大浸水深を出力する機能である. 全ての洪水氾濫情報に対する串刺し検索により最大浸水深を取得するもので，他のスマートフォン向け防災アプリでは見られない機能である. 現在地表示はMapKitの現在地マーク表示機能を用いているが，この機能は内部でCore Locationフレームワーク（位置情報操作用のフレームワーク，以下Core Locationという）が使用されており， GNSS （Global Navigation Satellite System）   にAssisted GPSとGLONASS（iPhone 4S以降で使用可能）が用いられる. 想定最大浸水深については現在地マークの緯度経度（CLLocation）からその包含するポリゴン（浸水区域データセットのレコード）を検索し，最大浸水深となるポリゴンを取得する.なお， MapKitには空間分析に関するAPI（Application Programming Interface）が２点間の距離計算以外には用意されていないため,ポイントインポリゴンルーチン（バーロー, 1990）などを独自に実装する必要がある. 取得した想定最大浸水深は図１に示すように河川名とともに画面上部に表示する.あわせて，地図画面の中心をわかりやすく伝えるため，十字のスコープを配置し,さらに検索やデータ処理中はスコープを赤色に変更することでユーザビリティの向上を図っている.
3．2．逆ジオコーディングによる住所表示
避難訓練時の位置情報共有のため,表示中の地図画面中心位置を座標値ではなく住所で把握できるよう住所表示機能を搭載する.本機能も他の防災アプリに見られない機能である.住所の検索方法はCore Locationの逆ジオコーディング機能（CLGeocoder）を使用する. 逆ジオコーディングとは緯度経度（CLLocation）をAppleのサーバに渡し，位置と住所情報をまとめたプレースマーク（CLPlacemark）を得ることをいい，かならず一つのプレースマークが返される.ちなみに,順ジオコーディングの場合は複数のプレースマークが返される.得られたプレースマークから住所情報(addressDictionaryプロパティ, NSDictionary)を取り出し，文字列の処理後，図1に示すように画面上部の浸水深表示のすぐ下に表示するようにした.
3 . 3 . 避雛所情報の表示
本機能はごく一般的な避難所情報表示機能である．避難所の位置情報はCore Dataから得たデータをそのまま地図上に配置するため，検索結果を地図上のシンボルのプロトコル（MKAnnotation）を有したオプジェクト(NSManagedObject)に直接格納する. これにより, 図1に示すように避難所アイコンをタップすると施設名称や避難所種別がコールアウト（吹き出し）に表示されるとともに,  iマーク(DetailDisclosure) をタップしたときに諸元情報のリスト表示へと遷移させることが可能になる.
3．4．洪水予報・水位周知河川の検索と表示
最大浸水深となる洪水子報・水位周知河川を除く河川については，近隣（地図画面中央の周囲）の浸水想定区域の検索・表示機能を設けた.本機能も本アプリ独自のもので，バッファ検索を応用したものである. 画面中心地点から一定の範囲を検索し, 浸水区域データセットに定める図形左下緯度・経度,図形右上緯度・経度が含まれたレコードをCore Dataからオプジェクト（NSManagedObject）に移し,図２のように河川名のみをリスト化する.河川名が選択されると,オプジェクトのメソッドでポリゴン(MKPolygon)を生成後,図３のように洪水ハザードマップ作成の手引き改定版（国土交通省水管理・国土保全局河川環境課水防企画室, 2013)が定める4段階の表示色を用いて表示する.メソッドでポリゴンを生成する理由は，本章冒頭に記したとおりCore Dataがポリゴン（MKPolygon）を直接扱えないためである.  iOSでポリゴンを直接格納したい場合は， SpatiaLiteの追加や他のデータベースエンジンの使用を検討する必要がある. 洪水予報・水位周知河川の諸元情報は検索結果のリスト表示時にｉマークがタップされた際に表示する.また，地方自治体別の河川検索機能も設けている。
3．5．近隣避羅所検索
避難所を検索する機能であるが，既存の防災アプリのように単純に最近隣の避離所を検索するわけではない. 最近隣でも水没する避難所であるため利用できない可能性があることや（明田ほか, 2007),異なる地方自治体の避難所である場合がある.異なる自治体の避難所であっても，緊急時には近くの避難所に逃げ込む必要があるのは変わりない.そのため，本アプリでは図４に示すように現在位置に対して①同一行政区域内で浸水しない避難所，②同一行政区域内にある浸水の恐れがある避難所，③他の行政区域にある浸水しない避難所，④他の行政区域にある浸水の恐れがある避難所,の最大４件までを検索する.検索は①が見つかった時点で終了し,たとえば最近隣の選難所が①であれば１件で終了する.なお，検索範囲は東日本大震災で記録された徒歩による最大避難距離である10kmを使用した（国土交通省都市局街路交通施設課・都市計画課, 2011).図５は吹田商工会議所前（図１の中心）での検索例であるが、最近隣の避難所は会議所前の文化会館(メイシアター）であるものの,浸水の恐れがあることから吹二地区公民館が別途検索されている.
3．6．避難所へのルート検索
各避難所への避難経路はルート検索機能(MKDire ctions)を用いて利用者に提供する. ルート検索機能はiOS 7以降のMapKitに標準搭載されており，起点と終点のプレースマーク(MKPlacemark)をルート検索条件に指定してAppleのサーバに渡すとルート情報（MKRoute）が返されてくる.ルート検索時における移動手段として徒歩や自動車などの選択が可能であるが，本アプリでは徒歩としてルート検索を行い，避難速度を東日本大震災での記録である平均時速2.3km（国土交通省都市局街路交通施設課・都市計画課, 2011）を用いて所要時間を表示するようにした.画面上部上段が直線距離,下段がネットワーク距離である. ここで，MapKit附属の地図は細街路が反映されていない場合が多く，必ずしも最短のルートであるとは限らないことに注意する必要がある。図６は吹田商工会議所前から浸水の恐れがない最近隣の避難所である吹二地区公民館への避難経路を表示したものである。吹二地区公民館は神崎川氾濫時には阪急千里線の盛土で浸水を免れる想定になっていると考えられる.
4.おわりに
本論文ではオープンデータの中でも無料の地理空間データである国土数値情報の災害・防災関連データと無料の開発環境（Xcode）およびGISエンジン(MapKit)を利用した洪水氾濫から身を守るための防災アプリの開発方法について解説した.基本情報技術者レベルのプログラミングの知識があれば,オープンデータを用いて簡単に防災アプリの構築ができ，広く一般に公開可能であることを示した．本論文の成果となる防災アプリは全国の洪水氾濫データを一つにまとめると大きな容量が必要となり,スマートフォン用アプリとして適さないことから関西版.関東版,九州・沖縄版(アップル, 2014a, 2014b, 2014c）と地域を区分してApp Storeを通じ広く一般に無償で公開している.将来的に浸水想定区域データの配信用サーバが準備できれば，Core Data接続先の変更により全国版の提供も可能になる.今後の課題として，本論文では国土数値情報の浸水想定区域データを使用したが，ほかに土砂災害危険箇所データや2015年６月からは土砂災害警戒区域データも公開されており，重ねて表示することで防災マップとしてより利便性を高めることが挙げられる.また，啓発の意味ではAndroidや他のプラットフォーム版の提供についても検討しなければならない．その場合，MapKitに代わる無料の地図データと，AndroidならEclipseのように無料の開発環境を用いて同様のアプリを開発することは可能である.本論文を参考する如何を問わず，さらに防災アプリの公開件数が増え，災害対策への啓発に寄与することを願っている.なお,本論文は日本技術士会近畿本部情報工学部会・関西情報技術士会2014年7月合同例会の講演内容のうち，アプリ開発部分を加筆文章化したものである.