\documentclass[a4j,11pt]{jbook} \usepackage{graphicx} \usepackage{url} \thispagestyle{empty} \addtolength{\topmargin}{-2cm} \addtolength{\textheight}{3cm} \addtolength{\textwidth}{1cm} \addtolength{\oddsidemargin}{-0.5cm} \addtolength{\evensidemargin}{0.5cm} \usepackage{ulem,color,graphicx,eclbkbox} \usepackage{multicol} \begin{document} \title{位置情報を用いて災害時を始めとした複数人での活動を\\支援するWebアプリケーションシステムの構築} \author{廣瀬研究室 4年 c1151073 鈴木光明} \date{平成30年1月15日} \maketitle \begin{center} % \fontsize{11pt}{11pt}\selectfont {\bfseries 概要} \end{center} % \abstract{ 近年、GPS内蔵型携帯電話等の位置情報を計測できる情報端末が広く普及して いる。しかし、近年の熊本地震や北海道胆振地震をはじめと する災害時にその機能が有効に活用されていないのが現状である。現在位置情 報を利用したガイドシステムは存在するが、利用者同士のコミュニケーショ ンや情報共有が念頭に置かれていない場合が多い。 そこで、個人単位で位置情報を発信できる点に着目し、災害時における避難 者の位置情報の共有の簡易化を図るアプリケーションを構築する。また、その システムに複数人でのグループ単位でも使用できるような機能を加え、外部か らの匿名性を保持した上で個人間での情報の相互共有を可能にし、災害時以外 の場面でも家族等の少人数のコミュニティ内で活用できるような機能も構築す る。(文字) \\ \thispagestyle{empty} \tableofcontents \chapter{目的・テーマ設定} 本研究の設定する目的とテーマ設定に至るまでの背景について記述する。 \section{テーマ設定の背景} 日本では近年に見られる熊本地震地震や北海道胆振東部地震をはじめとした、地震や大 雨による洪水等、 多数の被害者が出るような災害が頻繁に起こっている \cite{kisho}。その中で も高齢者をはじめとする災害弱者の逃げおくれによる被害が問題となっ ている\cite{nige}。他にも、電話や交通等のライフラインが混雑するため避難 後の安否確認が困難になる\cite{life}。そこで近年では避難経路の確保や把握 等の日常的な活動を行なうことが促進されている。しかし、事前の準備のみな らず実際に災害時の状況に陥った際の対応策が必要であると考えた。 そこで、各自が持っている位置情報を発信できる情報端末を利用することで 被災地の人間の逃げ遅れの確認や、家族等少人数でのコミュニティ内での情報 の相互共有をする手段の必要性を感じた。\par また、その他にも野外でのフィールドワークを複数人で行う際や集団のツアー 客の自由行動等、予め時間や集合場所を決めていたとしても集団の動向を一目 で把握できないのは不便な状況が存在する。宗森らの研究\cite{xEx}によると 既存の位置情報を使ったガイドシステムでは、その場での交換やチャットなど、 利用者同士のコミュニケーションや情報共有は念頭に置かれていない場合が多 いとされている\cite{oni}。また、位置情報を扱うため、Apple StoreやGoogle Play Storeから配布されているものであっても、位置情報を不正に取得している例 が確認されている\cite{alert}。\par 更に、``いまどこ?位置検索''等をはじめとした無料のアプリケーションでは共 有できる数に制限があったり全ての機能を利用するには有料であったりといっ たケースが存在する。例として上述の``いまどこ?位置検索''では14日間の試用 期間では「自動測位機能」および「見守り機能」が利用できなく、また14日目 以降の利用にはライセンスの購入と月額料の支払いが必要になる\cite{imadoko}。\par そこで、特別な外部のアカウントや電話番号等の登録情報を必要としない、 参 加者の状態を個人単位で制限なくリアルタイムで相互に把握することができる アプリケーションが必要だと考えた。 \section{過去の類似研究の例} \label{senko} 松崎らは、スマートホームシステムのホームサーバを利用して地震災害時におけ る被災状況の確認や被災者の救助支援に応用するシステムを提案してい る\cite{smart}。ホームサーバ同士の通信により在宅情報から生き埋め 等の被災者を特定し、 救助要請マップを作成してシミュレーション実験を行い、研究の有効性 を示している。しかし、ここではホームサーバごとに管理しているため、人数に 誤差が出ることや使用する多数の機器に対し電力を供給し続けなければならない ことが問題となっている。\par また、宗森らは、PDA(携帯情報端末)とGPSと携帯電話を使用 し、位置情報を用いて遠隔地間で行う鬼ごっこをはじめ複数種の電子鬼ごっこの 実験を行っている\cite{oni}。位置情報を変換することで離れた場所でも問題なく 電子鬼ごっこを行い、実験の結果では位置情報を柔軟に扱ったサービスが受け入 れられている。 \chapter{提案} 現状抱えている問題点を踏まえて、本研究で提案するシステムについて記述する。 \section{現状} 災害時等を装釘した際の離れている人同士の安否確認等の情報の相互確認につ いての現状を記述する。 \subsection{災害時の逃げ遅れによる被害} \subsection{避難後の安否確認} \subsection{既存のアプリケーション} 現在、Apple社が提供するクラウドサービス``iCloud''の機能である``友だちを探 す''やGoogleが提供している地図・ローカル検索サービス'Googleマップ'の機能 である``現在地を共有''等の位置情報の共有を目的としたアプリケーションが 存在する。しかし、これらのアプリケーションは利用する度に共有相手の設定 や時間の指定や設定の変更が必要になる。また、個人間の共有を目的にしてい るため、複数人のグループ等で共有をする際はグループ内の全員がお互いに個 人間の設定をする必要がある。\par また、これらのアプリケーションではお互いに固有のアカウントを把握してい る利用者の情報しか得ることができないため、災害時に被災者全体の避難状況 を把握することは不可能である。 \section{提案するシステム} そこで、本研究では以下のような機能を導入したシステムを提案する。 \begin{enumerate} \item 個別アカウントによるグループ管理 \item 災害時に利用者の避難状況を把握できる機能 \item 少人数グループで情報共有するためのマップ作成アプリケーション \item 一定範囲の地域内の分布を表示するマップ作成アプリケーション \end{enumerate} \chapter{システムの構築環境と概観} 本研究で開発するシステムの内容について記述する。 \section{用語解説} システムを提案する上で必要となる用語の解説を記述する。 \subsection{データの正規化} 今回関係データベース(DBMS)でデータを管理するため、データを正規化する必要がある。正規化と は、データを効率良く扱うために特定のルールにしたがって整理することであ る。以下に正規化の手順について記述する。 \subsubsection{非正規形} 整理されていない生の状態のデータのことを非正規形と言う。データベースで データを管理する際、このように一つの項目(フィールド)内に複数のデータが 格納されていても複数のデータと認識することができない。これらのデータを データベースが計算機で処理しやすい形式にすることが正規化である。\par \begin{tabular}{|c|c|c|c} 00100 & 大根 & 酒田50円30個 & 鶴岡40円40個\\ 00101 & サツマイモ & 三川70円20個 & 遊佐80円10個\\ \end{tabular} % \caption{非正規形} \subsubsection{第1正規化} 非正規形において繰り返していたり、フィールド内に複数格納され ていたりするデータを別の行(レコード)に分離し、繰り返しを排除する。\par \begin{table}[h] \begin{tabular}{c|c|c|c|c} cord & items & place & price & quant\\\hline 00100 & 大根 & 酒田 & 50円 & 30個 \\ 00100 & 大根 & 鶴岡 & 40円 & 40個 \\ 00101 & サツマイモ & 三川 & 70円 & 20個 \\ 00101 & サツマイモ & 鶴岡 & 80円 & 10個 \\ % \label{kuri} \end{tabular} \caption{繰り返しを排除した形} \end{table} 更に、テーブルごとにデータを一意に識別するための項目を設定する。このよ うなコードのことを主キーという。主キーは複数カラムから構成されることも あり、その場合は複合主キーと言う。\par \begin{table}[h] \begin{tabular}{c|c|c|c|c|c} cord & icord & items & place & price & quant\\\hline 00100 & 0001 & 大根 & 酒田 & 50円 & 30個 \\ 00100 & 0001 & 大根 & 鶴岡 & 40円 & 40個 \\ 00101 & 0002 & サツマイモ & 三川 & 70円 & 20個 \\ 00101 & 0002 & サツマイモ & 鶴岡 & 80円 & 10個 \\ % \label{kuri} \end{tabular} \caption{第1正規形} \label{daiiti} \end{table} \subsubsection{第2正規化} 表\ref{daiiti}の第1正規形から部分従属性を排除する。 \subsubsection{第3正規化} もっとばらすよって話と表作成。 \subsection{JSON形式} JavaScript Object Notation(JSON)とは、データを表現するための記法である。 \subsection{CGI} Common Gateway Interface(CGI)とは、 Webサーバとプログラム間のデータの 送受信の規格で、ブラウザからの要求に応じてプログラムを起動し、その 結果をブラウザに返すためのインターフェイスである。 \section{システムの概観} 構築するシステムの概観と内容について記述する。 \section{作業環境} 開発は以下の環境で行う。 \begin{itemize} \item Ruby 2.3.0 \item Leaflet 1.3.4 \item SQlite3 \end{itemize} % \section{扱うデータ} % \label{data} % 今回は正規化を行った以下のテーブルでデータを管理する。 % \begin{itemize} % \item user(ユーザ名, パスワード) % \item users(クッキーID, ユーザ名, 最終ログイン時刻) % \item ginfo(グループ名, グループの管理ユーザ名) % \item gmember(ユーザ名, 所属するグループ名) % \item latlng(グループ名, ユーザ名, 取得した経度, 取得した緯度) % \item lastlaln(ユーザ名, 最後に取得した経度, 最後に取得した緯度) % \item time(ユーザ名, グループ名, 取得した時刻) % \item local(ユーザ名, 設定した地域) % \end{itemize} \chapter{システムの実行} 実際に構築したシステムを実行する行程について記述する。 \section{個人アカウントの管理} 本システムを利用する際、利用者を特定するための個人アカウント周辺 の機能に関して記述する。 \subsection{個人アカウント作成} ユーザ名とパスワードと地域の情報を設定し、利用者個人を判別するためのア カウントを作成する機能である。ユーザ名を個人を判別するためのデータ とするため、ユーザが既存のアカウントと重複していた際にはエラーを表示す る。 \begin{figure}[h] \begin{center} \includegraphics[bb=0 0 477 229,scale=0.9]{make.pdf} \caption{ログイン画面} \end{center} \end{figure} \subsection{ログイン} 作成したアカウントのユーザ名とパスワードを入力し、システムにログインす るための機能である。ユーザのログイン情報を保持するため、ログインと同時 にクッキーIDを取得する。認証期限は24時間に設定している。 \section{位置情報を利用した情報共有} 本システムのメインとなる機能である。利用者が意図的に情報を送信したり、 送信情報をマップ上に表示して共有したりする機能と、そこで得た情報を元に地域ご とに利用者の分布を表示する機能の大きく2つに分かれる。 \subsection{個人の位置情報の送信} \label{kozin} アカウントを所有するユーザがデータベースに自分の利用情報をデータベース に送信する機能である。ここで得たデータを元に後述の地域ごとの分布マップ を作成する(\ref{bunpu})。 \begin{figure}[h] \begin{center} \includegraphics[bb=36 39 814 559,scale=0.4]{gainen1.pdf} \caption{個人利用時の概念図} \end{center} \end{figure} \subsection{少人数グループでの利用} \label{shounin} 特に少人数単位のグループ内で、個人を特定した上で相互に情報を共有するシ ステムである。この機能を利用する際に利用者が送信したデータも \ref{bunpu}章のマップ作成に使用する。 \begin{figure}[h] \begin{center} \includegraphics[bb=32 19 829 565,scale=0.4]{gainen2.pdf} \caption{グループ利用時の概念図} \end{center} \end{figure} \subsubsection{グループ作成・管理} \label{group} 少人数グループでの利用をするためのグループを作成・管理する機能で ある。以下の3つの機能からなる。 \begin{itemize} \item 新規グループの作成 \item グループへの加入 \item 加入済みグループからの脱退 \end{itemize} \subsubsection{グループ単位のマップの作成} (\ref{group})を用いて作成したグループ単位で利用するシステムである。グルー プメンバーが最後に利用した位置情報、名前、時刻をマップ上のピンで表示す る。 \begin{figure}[h] \begin{center} \includegraphics[bb=0 0 751 746,scale=0.5]{test.pdf} \caption{グループ利用時の画面例} \end{center} \end{figure} \subsection{設定地域内の分布表示} \label{bunpu} 利用者が\ref{kozin}章や\ref{shounin}章のシステムを利用した際に発信され る情報をもとに各利用者が設定した地域分布マップを作成するシステムである。 ここでは利用者にプライバシーやセキュリティ面への考慮からユーザ名等は表 示せず、地域内での分布のみを表示する。図\ref{skt}は山形県酒田市の人 口密度をもとにマップを擬似的に作成したものである。 \begin{figure}[h] \begin{center} \includegraphics[bb=0 0 1172 485,scale=0.3]{sakata.pdf} \caption{地域の分布表示の例} \label{skt} \end{center} \end{figure} \chapter{結論} \label{skt} アカウントを作成した利用者から発信された情報を元に地域の住民の避難状況等 をリアルタイムで把握するためのマップを作成するWebアプリケーションシステ ムを構築することができた。また、それにともない複数人のグループ単位で情報 を共有できるシステムを構築した。 \chapter{システムへの評価と今後の展望} 本システムへの評価と今後の展望としては以下のようなものが挙げられる。 \section{有事の際の情報リセット} 本システムは災害事のみならず、平常時からの利用も考慮している。それに伴 い、地震等が発生する以前のデータが残っていると地震後に全てのユーザが情 報を更新しなければ正確な避難情報を得ることができなくなるという事態に陥 る。そこで、Webスクレイピング \footnote{WebサイトからWebページのHTMLデータを収集して、特定のデータを抽出、整形し直すこと。} を用いて常時気象庁からデータを取得し、災 害発生時にその時点よりも前のデータを消去する等の処理を加えることで 災害時に対応可能にする必要がある\cite{screape}。 \section{グループ参加の有無と個人の特定} 本システムを個人でのみ利用しているユーザに関して、個人を特定する方法が完 全にない状態になっている。匿名性の保持と言う点では問題はないが、災害時 を考えた際に個人の特定の必要性に関して懸念される。 \section{グループ管理のセキュリティ観点} 現段階の本システムは、ユーザであれば誰でも存在する全てのグループに自由 に出入りできるようになっている。グループにIDを割り振る、特定のメンバー に承認周りの権限を付与する等してグループ管理周辺のセキュリティについて 整えていく必要がある。 \section{同時利用時のキャパシティ} \ref{bunpu}章から、個人の特定を 目的としない場合の避難所から離れている利用者のばらつき等の視認性においては 問題なく見えるが、災害時に多くの利用者が同時に利用した場合、またより人口 の多い場合などの動作に関してプログラムを用いて摸擬的に検証する必要があ る。 \renewcommand{\bibname}{参考文献} \bibliographystyle{junsrt} \bibliography{bib} \end{document}