位置情報グループウェアの提案
森本哲郎1・松葉碧2・吉田龍一3・上善恒雄4・西田純二5

1㈱社会システム総合研究所/大阪電気通信大学大学院（〒550-0002 大阪府大阪市西区江戸堀1-10-27）

E-mail:morimoto@jriss.jp
2㈱社会システム総合研究所（〒550-0002 大阪府大阪市西区江戸堀1-10-27）

E-mail:matsuba@jriss.jp
3㈱社会システム総合研究所（〒550-0002 大阪府大阪市西区江戸堀1-10-27）

E-mail:yoshida@jriss.jp
4大阪電気通信大学総合情報学部（〒575-0063 大阪府四條畷市清滝1130-70）
5正会員

E-mail:jozen@dg.osakac.ac.jp㈱社会システム総合研究所（〒575-0063 大阪府四條畷市清滝1130-70）
E-mail:nishida@jriss.jp

近年, スマートフォンのGPS機能を用いたアプリケーションが拡大しつつある. 経路案内, 安否確認, GPSロガー, ソーシャルゲームや社員の位置を把握するものまで利用方法は多岐にわたる. また, 単純な位置情報の取得に加えて, 連続的に収集された位置情報の解析を通して, 行動解析, 地図生成, 渋滞解析等, その応用範囲は拡大しつつある.
著者らは, ウェブソケットを用いた双方向通信によるリアルタイム位置情報共有システムを構築し, 複数の見守りシステムやプローブデータ収集モジュールを開発し実用に供している. これらシステムは HTML5を利用したウェブベースのアプリケーションとすることで, 対応ブラウザを搭載する幅広いデバイス上で動作する. さらに, ウェブリソースとすることで開発や運用にかかるコストや時間を通常のアプリケーションより大幅に削減している. 本論文では, ウェブベースの位置情報グループウェアを支える技術とその展望について論じる.

Key Words : 位置情報, HTML5, WebSocket, プローブ

1. はじめにブラウザ上で実現することが可能となってきた. つまり,HTML5を用いることで，幅広い種類の端末に対応した

今日, スマートフォンやタブレット端末といったモバ多機能なアプリケーションをウェブベースで容易に構築

イル端末の位置情報が容易に利用できるようになった．.

することが可能となった.

モバイル端末の位置情報をプローブ情報として取得し,こうした技術進歩と社会的背景の中で，我々は,HTML5 の ソ ケ ッ ト 通 信 (WebSocket) や 位 置 情 報

平均速度, 所要時間, 旅行時間, 時間帯別の統計情報など(Geolocation)などに注目し, いくつかのブラウザベースのに加工し，道路交通情報として提供することで, 交通渋滞の緩和, CO2の削減などの社会問題解決へのアプローチとして応用することができる. また, 地理空間情報分野

情報共有システムを開発し，運用を行ってきた. 本論文
では, HTML5の通信方式や位置情報の利用方法について

においては, 収集したプローブ情報を用いて，デジタル述べ, 我々が構築してきたウェブベースの位置情報グルマップの道路の位置情報を補正することや, デジタルマープウェアを紹介し，今後の活用について提案を行う.

ップ上に登録されていない新たな道路データを自動生成

2.

することにも応用されている.

双方向通信技術

今日の技術を俯瞰すると, クラウドサービスの成長とともにウェブ技術が急速に進歩しており, 特にHTML5は位置情報を共有する上で, リアルタイム性は必須であ

多くのマルチメディアに対応し, カメラやジャイロセンる.リアルタイムに情報共有するためには,Push/Pull型サへなどの機器組込みデバイスへのアクセスも可能となの両方を取り入れた双方向のデータ通信が適切であっており，ネイティブアプリケーションと同等の機能をる.WebSocketは,ブラウザとウェブサーバ間でソケット1通信を行うためのHTML5の規格であり,ブラウザとウェブ位置測位のオプション[表5]として, 高精度な測位を要求サーバ間での双方向通信をサポートする.また, Web-するenableHighAccuracyプロパティなどを指定をすること

Socketを含み他のリアルタイムな通信方法をサポートすができるため, 開発仕様に沿った適切な測位設定が行えるSocket.IOがある.Socket.IOがサポートする通信方法るようになっている.

[ 表 -1] は , WebSocket,Adobe Flash Socket,AJAX long

表-4 Coordinates[3]polling,AJAX multipart streaming,Forever Iframe,JSONP

フィールド
latitudelongitude
altitudeaccuracy

Pollingであり, WebSocket非対応のブラウザである場合
でも, Pollingなどの技術によって双方向通信のデータ通信がサポートされ, この機能は様々なブラウザ上で利用することが可能になってきた[表-2]. Socket.IOはNode.js以外の環境もサポートしているため，既存のプログラムとも親和性が高い [表-3]. Socket.IOを用いて送内容
緯度
経度
高度
緯度・経度の精度
高度の精度
方角
速度

altitudeAccuracy
headingspeed

受信するデータは, テキスト, XML, JSONなど様々なデータを送受信することが可能である. そのため, Geolocation
で端末から取得した位置情報を直接, Socket.IOで配信す表-4ることが可能である.

数
名前値
1 PERMISSION_DENIED
2 POSITION_UN
AVAILABLE
3 TIMEOUT

表-1Supported transports [1]．

WebSocket
AJAX long polling
Forever Iframe
表-2

Adobe® Flash® Socket
AJAX multipart streaming
JSONP Polling

iPhone Safari
Android WebKit

Desktop
Safari 3+
Firefox 3+

表-5

MobileiPad Safari
WebOs WebKit

表-3 In other languages [1]．
ErlangHaskellJava
Scala
Objective-CC
C++ / Cocos2d-x
QT QMLGoPythonFlashHaxe.NET
C++/Win32

Android
Lua
C++
Perl
Ruby
PHP
unity3d

度
度メートル
メートル
メートル
度
秒速

PositionError[3]Supported browsers [1]．

Internet Explorer 5.5+
Google Chrome 4+
Opera 10.61+

単位内容
位置測位のための権限がない
位置情報の取得ができない
位置取得する前に timeout プロ
パティで設定した時間を経過した

PositionOptions[3]型boolean名前
enableHighAccuracy

longtimeoutlongmaximumAge

内容
高精度の位置情報取得を行うかどうかタイムアウトするまでの時間
キャッシュの有効期限

4. サーバアプリケーション
位置情報グループウェアにおいて, ウェブサーバ側の3. 位置情報

サーバアプリケーションの目的は, クライアントと双方
HTML5にはGeolocation APIがあり, ブラウザから端末の向通信の接続をすること, クライアントから位置情報を位置情報を取得することができる. Geolocationによる位置測位は, GPS, Wi-Fi, IPアドレスなど様々な情報を用いて位受信すること, 他のクライアントへ位置情報を送信する置が算出される仕組みとなっている. Geolocatoinには, 一サーバアプリケーションの構築は, サーバ構築の基本

度だけ位置情報を取得するgetCurrentPosition, 位置情報をシステムであるNode.jsによりSocket.IOを使用することが，監視するwatchPosition, 監視を解除するclearWatchの3種類のAPIがある. 取得できる位置情報データは, Position型のデータ量の増大に伴う負荷分散（スケーラビリティの確オブジェクトで , 緯度経度やその精度などを持つCoordinates型のオブジェクト[表4]とタイムスタンプを持り，この組み合わせによりグループウェアの開発を進めことの3つである.

保）と開発コストの低減のためには効率的な組合せであつ. 位置情報の取得に失敗した場合, PositionError型オブジることとした．
Socket.IOではクライアントからの接続要求があった場ェクト[表4]が返され, その原因を知ることが出来る. また,合, 自動的に接続が成立するため，開発者がソケット管2められる場合は, D3.js, three.jsなどをGoogle Maps API, Leaflet.jsと併用すれば，複雑なデータの可視化やWebGLを用理を行う必要はない. クライアントからの位置情報を受信するには, 接続が成立したソケットに対して独自の名前で受信処理をバインドすれば良い. データの送信先は,ソケットからソケット自身, 接続状態の全てのソケット,いたグラフィック処理を行うことができる. さらに,
Google MapsやOpen Street Mapに代表されるデジタルマッ

ソケット自身を除く接続状態の全てのソケットが基本的プの配信が必要な場合は, MapServer, GeoServer, QGISなどな対象となる.のGISソフトウェアが非常に有用であり, 独自のベースマこれらの基本対象以外のグループを形成するために,Socket.IOにはグループ管理機能(Room)がある. この機能をップや交通情報などのデータをGeoJSONやPNGとして配信することができる. WMS(Web Map Service)やTMS(Tile

用いて各Roomに属するクライアントに対してデータの送信を行うことができる. Roomは, マルチキャストを実Map Service)としてGoogle Maps API, Leaflet.js, OpenLayersな現するために，非常に有効な手段である. 例えば，同じある．

どのライブラリからレイヤとして利用することが可能で会社に属する端末を一つのRoomとして定義することで，5. Peer-To-Peer通信

それらの端末に対して一斉にデータ配信を行う操作を容易に実現することができる．データの送信に失敗した場合は自動的に再試行する仕組みとなっているが, 大量の位置情報グループウェアの応用として, 音声や動画でのやり取りが考えられる. WebRTC (Web Real-Time Com-

送信に伴う再試行が頻発しサーバ負荷が高くなる場合な
どは, 再試行しない揮発性 (Volatile)を使用して過負荷をmunication)は, Websocketのソケット通信とは異なり，デー避ける. ただし, データの送受信を保証するためには,Volatileの使用を避け, 送受信が正しく行われたかを確実

タ通信において常時, サーバーを介さずブラウザ相互のP2P(Peer-to-Peer)通信を実現するためのAPIである. カメラに確認するようにしなければならない.

やマイクのハードウェアアクセスから得られるメディア

また, ソケットにクライアントの個別のデータを付与ストリームをWebRTCを用いてP2P通信で送受信するこさせる機能があり, 例えば端末の利用者の名前やIDを割とで, ブラウザだけを用いてリアルタイムに動作するビり当てるなどを行えば，管理に有効である．割り当てられた個別のデータは，ソケットが切断されるまで割り当デオチャットを実現することが可能となった. これらの機能は，現在 Google ChromeやFire Fox, Operaなどのてられたデータは保存される．.

HTML5対応モダンブラウザで動作し, さらにAndroidスマ

4. クライアントアプリケーションートフォンでも動作することを確認した.
WebSocketでもCanvasを用いて同様なビデオチャットを実現することは可能ではあるが, データ転送にかかるサ

ブラウザ側のクライアントアプリケーションの目的は,サーバアプリケーションとの双方向通信の確立と, 位置ーバ負荷を軽減するためにはWebRTCは有効な手段である. また, WebRTCを利用するためにPeer.jsがある. Node.jsを情報の取得, サーバアプリケーションへの位置情報の送用いてPeer.jsをサーバーアプリケーションとして起動す信である. また, 必要に応じて位置情報の可視化を行い，ることでWebRTCの接続手続きを簡略化することができ,利用者に現在位置などを知らせる．.

より簡単にP2P通信を用いたプログラムの開発が可能とサーバアプリケーションとの双方向通信の確立には,Socket.IOのConnect関数にサーバアプリケーションのURLなる.

を引数として渡して実行すると，ソケット接続が完了すが主力な通信方法となっているが，通信チャンネルが飽る. クライアントから位置情報を送信するには, ソケット和状態となるなど業務無線における問題も起きている.のEmit関数に緯度・経度・高度などのKeyにデータが割こうした問題の解決に向けて, 車載のスマートフォンにり当てられたKey-Valueの組を引数として渡して関数を実行する. サーバアプリケーションでは, KeyにバインドおけるWebRTCが，飽和状態の業務無線を代替する可能

例えば運送業など一部の業界においては, 未だ無線機性がある．.

された関数がコールされ引数としてValueを受け取る.

6. スマートフォンアプリケーション

クライアント側では, 位置情報を適切に管理し，可視化を行う. 可視化する際に使用するライブラリとしては，
Google Maps APIやLeaflet.jsの地図ライブラリなどがあり，本論文で提案しているウェブベースの位置情報グルーユーザビリティが良く, 様々なサービスの提供があるた

プウェアは, 一般的なウェブページと同様に，ウェブブめ，最近は一般的に用いられるようになってきた. マー

ラウザから容易に利用できる．またWebViewなどのブラカやオブジェクトをクリックすることによるポップアッウジング機能をスマートフォンアプリケーションに埋め込むことで, AndroidやiOSのネイティブアプリケーションプ機能などによる表示方法の他，より高度な可視化が求3としてGoogle Play, App Storeで容易に配信することもでき

行管理者が操作することを想定したウェブページと, トる.

ラック運転手が利用するスマートフォン用ウェブページ

アプリケーションのメンテナンスは, ウェブサーバ上で構成される．のリソースを編集するだけで済むため, スマートフォン

運行管理者はトラック運転手に対してメッセージを送

アプリケーションのアップデートや再配布にかかる工程信し，個別に運送指示を行うことが可能となっている.

が不要であるため，運用コストの低減など大きなメリッ運行管理者とトラック運転手は, リアルタイムに自社のトを有する.
さらに, ウェブページ内のスクリプトからスマートフ車両の位置を地図上で確認することができ, 同時にGoogle Maps APIにより渋滞などの交通状況を把握するこォンアプリケーションの関数を呼ぶことができ, ブラウとができる. また, 港湾管理者が,本システムの全利用者にザでは制御できない通知, バイブレーション, 電話帳など対してメッセージを送信することができる．緊急性の高の機能を利用するなど，ウェブアプリケーションを拡張

いメッセージなどを速報として通知することが出来る仕組みとなっている[図-2.1, 2.2]. また, 収集した膨大な位置することも可能となっている.

情報を保存, 解析するためにMongDBを使用している.

7. 位置情報グループウェアの実例
Node.js, Socket.IO, HTML5を用いたシステムの実例を紹介する.
(1)

車両位置情報モニタリングシステム

このシステムは, スマートフォン, タブレット用の汎用的なウェブアプリケーションである. 管理者は, スマートフォンを搭載した車両などの移動体の現在位置, 過去の走行軌跡, 速度分布などを閲覧することが出来るシステ
ムである[図-1]. ユーザ管理機能があるため, トラッキン
図-2.1 スマートフォンサイト(上部がメッセージ受信画面,下部がプローブ表示画面)．

グサービスとしても利用できる. サーバに蓄積された走行軌跡はCSV, Google Earthに対応したKMLなどのフォー
マットで出力ことが可能で，様々な移動体の追跡，分析に利用できる．このシステムは交通の基礎調査などで活用されている.

図-2.2 PC サイトの表示(右上が新規メッセージ作成画面, 右下がメッセージ受信画面, 左がプローブ表示画面)
図-1 走行軌跡, 速度分布と管理パネルの表示．

(3) 要支援者の見守りシステム
このシステムは, 通常のウェブサイトに位置情報収集モジュールを組み込むことでウェブサイトを閲覧してい(2) 港湾向け運行管理システム
このシステムは, 港湾におけるコンテナ運搬に関わるる利用者のリアルタイムな位置を管理者が閲覧出来るシ運送管理を行うためのシステムである. 運送事業者の運ステムである. 事前に登録された利用者の健康, 身体属性が地図上に表示される設計となっており事故や病気など
4

の緊急時に, このシステムを通じてスムーズな連携をとタクシー, トラックなどの効率的な運行管理は，渋滞解るためのシステムである[図-3].

消や省エネルギー，環境問題の改善などの面で高い導入ニーズを有している．しかしこれまでの動態管理・運行管理システムはシステムの導入費や運用費が高額となるため，高コストが制約となって導入が進まなかった．
しかし，本論文で紹介した位置情報グループウェアは，複数の事業者が地域にローカライズされた汎用性の高いサービスを低コストで提供することができる．
さらに，本システムを通じて収集される移動体のプローブビックデータを解析することにより,正確な交通情報の提供が可能となり，高度道路交通システム(ITS).の一翼を担うことができる．

9. まとめ図-3 利用者の位置と障害種別の表示．

我々は, HTML5を応用した位置情報グループウェアを(4) 自動車ドライバー向け見守りシステム開発し，運用を行ってきた. 本論文は，これらの経験をこのシステムは, 運転手, 同乗者とそれを見守るパート通して得られた, 位置情報グループウェアを短期間かつナーのためのサービスである. パートナーは自動車の位低コストに実現するための技術とその応用例を示した．

置を確認でき, 運転手, 同乗者にメッセージを送信するこ

今後は本論文で述べた技術を活用して，より汎用性のとができる.

高いシステムを開発し，実社会での応用例を積み重ねていきたいと考えている．

(5) タクシー管理システム
このシステムは, タクシーのリアルタイムな位置と状態を可視化するシステムである. 空車, 迎車, 待機, 回送, 休

参考文献

憩などの状態を地図上で把握でき, 運転手にメッセージ1)2)による指示ができるシステムである.

3)

8. 展望

4)

本論文の位置情報グループウェアは, 携帯電波の届く

Socket.IO http://socket.io/#browser-support
W3C The WebSocket API
http://www.w3.org/TR/geolocation-API/W3C Geolocation API Specification,
http://dev.w3.org/geo/api/spec-source.html
W3C WebRTC 1.0: Real-time Communication Between
Browsers, http://www.w3.org/TR/webrtc/

地域であれば世界中どこにいても利用可能である.
日本国内はもとより，開発途上国においては，バス,The proposal of location-based groupware
Tetsuro MORIMOTO, Midori MATSUBA, Ryuichi YOSHIDA, Tsuneo JOZENand Junji NISHIDA
In recent years, location-based service(LBS) has been spreading such as routing, keeping a watch, GPSlogger, SNS and games. And collected locations are in demand to analysis as big-data for behavior analysis, traffic analysis, and creating maps automatically.
We developed the systems which be able to share and visualize real-time locations on a group using
WebSocket in HTML5. And we are running them. The systems is composed as a web application, so werealize to run on cross platform and reduce costs of development and maintenance. This paper describe
the technologies about our location-based groupware and mention prospects about it.

5