(57)【要約】【課題】移動体の位置情報が示す位置の間隔が大きい場合でも移動体の軌跡を特定することができるプログラム、情報処理装置及び情報処理方法を提供することにある。【解決手段】一態様のプログラム１２Ｐは一の移動体が移動した軌跡を該一の移動体についての複数の位置情報に基づいて特定する処理を行う情報処理装置１に用いられるプログラム１２Ｐであって、前記一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定し、特定した他の移動体についての一又は複数の位置情報が示す位置と、前記一の移動体についての複数の位置情報が示す位置との位置関係に基づいて該他の移動体についての一又は複数の位置情報と、前記一の移動体についての複数の位置情報とを関連付ける処理を前記情報処理装置１に実行させる。【選択図】図１
2015170030.tif 000002
【特許請求の範囲】
【請求項１】
一の移動体が移動した軌跡を該一の移動体についての複数の位置情報に基づいて特定する処理を行う情報処理装置に用いられるプログラムであって、
前記一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定し、
特定した他の移動体についての一又は複数の位置情報が示す位置と、前記一の移動体についての複数の位置情報が示す位置との位置関係に基づいて該他の移動体についての一又は複数の位置情報と、前記一の移動体についての複数の位置情報とを関連付ける処理を前記情報処理装置に実行させるプログラム。
【請求項２】
前記一の移動体についての複数の位置情報が示す位置のいずれか２つを結ぶ線分を算出し、
他の移動体についての一又は複数の位置情報が示す位置から前記線分へ垂線を下せるか否かを判定し、
垂線を下せる場合、前記線分へ下ろす垂線を算出し、
算出した垂線の長さが所定の閾値以内にあるか否かを判定し、
算出した垂線の長さが所定の閾値以内にある場合、前記位置を示す他の移動体についての一又は複数の位置情報を特定する請求項１に記載のプログラム。
【請求項３】
前記一の移動体についての複数の位置情報の内いずれか１つの位置情報を抽出し、
抽出した位置情報が示す位置と、特定した他の移動体についての一又は複数の位置情報が示す位置との間の距離を算出し、
前記一の移動体についての複数の位置情報と、前記他の移動体についての一又は複数の位置情報とを前記距離の長短に基づいて関連付ける処理を前記情報処理装置に実行させる請求項１又は請求項２に記載のプログラム。
【請求項４】
一の移動体が移動した軌跡を該一の移動体についての複数の位置情報に基づいて特定する特定部を備える情報処理装置であって、
前記一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定する情報特定部を備え、
前記特定部は、前記情報特定部で特定した他の移動体についての一又は複数の位置情報が示す位置と、前記一の移動体についての複数の位置情報が示す位置との位置関係に基づいて前記情報特定部で特定した他の移動体についての一又は複数の位置情報と、前記一の移動体についての複数の位置情報とを関連付ける情報処理装置。
【請求項５】
一の移動体が移動した軌跡を該一の移動体についての複数の位置情報に基づいて特定する処理を行う情報処理装置における情報処理方法であって、
前記一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定し、
特定した他の移動体についての一又は複数の位置情報が示す位置と、前記一の移動体についての複数の位置情報が示す位置との位置関係に基づいて該他の移動体についての一又は複数の位置情報と、前記一の移動体についての複数の位置情報とを関連付ける処理を前記情報処理装置に実行させる情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置情報に基づいて移動体の軌跡を特定するプログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、自動車、歩行者等の移動体の位置情報を取得し、取得した位置情報同士を関連付けることで移動体が移動した軌跡を特定するプログラムが知られている。例えば特許文献１に記載のプログラムは、カメラ画像から同一の移動体の位置情報を取得し、取得した同一の移動体の位置情報同士を連結することで移動体の軌跡を特定している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１７０５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし従来の技術では、移動体の位置情報の取得間隔が大きい場合、十分な位置情報を取得できず、実際の移動体の軌跡と異なった軌跡を特定してしまう。
【０００５】
一つの側面では、移動体の位置情報が示す位置の間隔が大きい場合でも移動体の軌跡を特定することができるプログラム、情報処理装置及び情報処理方法を提供することにある。
【課題を解決するための手段】
【０００６】
一態様のプログラムは一の移動体が移動した軌跡を該一の移動体についての複数の位置情報に基づいて特定する処理を行う情報処理装置に用いられるプログラムであって、前記一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定し、特定した他の移動体についての一又は複数の位置情報が示す位置と、前記一の移動体についての複数の位置情報が示す位置との位置関係に基づいて該他の移動体についての一又は複数の位置情報と、前記一の移動体についての複数の位置情報とを関連付ける処理を前記情報処理装置に実行させる。
【発明の効果】
【０００７】
一態様によれば、移動体の位置情報が示す位置の間隔が大きい場合でも移動体の軌跡を特定することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置のハードウェア群を示すブロック図である。
【図２】位置情報テーブルのレコードレイアウトの一例を示す説明図である。
【図３】抽出テーブルのレコードレイアウトの一例を示す説明図である。
【図４】特定テーブルのレコードレイアウトの一例を示す説明図である。
【図５】補間テーブルのレコードレイアウトの一例を示す説明図である。
【図６】表示部に出力した位置情報を示す説明図である。
【図７】特定処理を行った位置情報を示す説明図である。
【図８】並べ替え処理を行った位置情報を示す説明図である。
【図９】接続した位置情報を示す説明図である。
【図１０】ＣＰＵの処理手順を示したフローチャートである。
【図１１】ＣＰＵの処理手順を示したフローチャートである。
【図１２】ＣＰＵの処理手順を示したフローチャートである。
【図１３】特定処理の処理手順を示したフローチャートである。
【図１４】並べ替え処理の処理手順を示したフローチャートである。
【図１５】実施の形態２に係る特定処理を行った位置情報を示す説明図である。
【図１６】実施の形態２に係る特定処理を示すフローチャートである。
【図１７】実施の形態３に係る並べ替え処理を行った位置情報を示す説明図である。
【図１８】実施の形態３に係る並べ替え処理を示すフローチャートである。
【図１９】実施の形態３に係る並べ替え処理を示すフローチャートである。
【図２０】実施の形態４に係る情報処理装置のハードウェア群を示すブロック図である。
【図２１】実施の形態４に係る情報処理装置の機能ブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１
以下実施の形態を、図面を参照して説明する。図１は情報処理装置１のハードウェア群を示すブロック図である。情報処理装置１は例えばパーソナルコンピュータ、携帯電話、スマートフォン等である。図１に示す情報処理装置１は、ＣＰＵ(Central Processing Unit)１１、記憶部１２、ＲＡＭ１３、入力部１４、表示出力部１５、通信部１６を備える。
【００１０】
ＣＰＵ１１は、バスを介してハードウェア各部と接続されている。ＣＰＵ１１は例えば一又は複数のＣＰＵ又はマルチコアＣＰＵ等を備える。ＣＰＵ１１は、記憶部１２に記憶されたプログラム１２Ｐに従いハードウェアの各部を制御する。
【００１１】
記憶部１２は例えばハードディスクまたは大容量メモリ等である。記憶部１２にはＣＰＵ１１が処理を行う際に必要とする種々のデータ、プログラム１２Ｐ、位置情報テーブルＴ１、抽出テーブルＴ２、特定テーブルＴ３、補間テーブルＴ４を格納する。
【００１２】
ＲＡＭ１３は例えばＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等である。ＲＡＭ１３は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１３】
入力部１４はマウス、キーボード又はタッチパネル等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ出力する。
【００１４】
通信部１６は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して位置情報等の各種情報を受信する。位置情報とは例えばデカルト座標系におけるＸ座標、Ｙ座標、地理座標系における緯度、経度等である。また位置情報は時刻等の位置情報に付加された付加情報を含んでもよい。
【００１５】
ＣＰＵ１１は通信部１６を介して位置情報を記憶した別のサーバ（図示せず）から位置情報を取得する。なお、本実施の形態においては位置情報の取得方法として別のサーバを介して取得する形態につき説明するが、位置情報を取得することができればこれに限るものではない。例えば、ＣＰＵ１１は、通信部１６を介してＧＰＳ衛星が送信した位置情報、無線ＬＡＮのアクセスポイントの情報、カメラ画像から算定した位置情報、携帯電話基地局の位置情報等を取得するようにしてもよい。またＣＰＵ１１は予め記憶部１２に記憶された位置情報を取得するようにしてもよい。
【００１６】
表示出力部１５は左下を原点とし、右横方向に増加する方向をＸ軸正方向、上方向に増加する方向をＹ軸正方向とするデカルト座標系により表示された位置情報を表示部（図示せず）に出力する。
【００１７】
図２は位置情報テーブルＴ１のレコードレイアウトの一例を示す説明図である。位置情報テーブルＴ１は位置情報を記憶するテーブルである。位置情報テーブルＴ１はＩＤ列、位置情報列等を含む。ＩＤ列には移動体を識別するためのＩＤが記憶される。移動体とは、例えば自動車、歩行者等である。移動体は複数であり、夫々の移動体を識別するためのＩＤが対応づけられている。位置列にはＩＤに対応づけられた移動体の位置情報が記憶される。位置情報列には例えば、（０,３５）、（０,２５）等が記憶される。（０,３５）とはＸ座標が０であり、Ｙ座標が３５であることを示す。（０,２５）とはＸ座標が０であり、Ｙ座標が２５であることを示す。なお、位置情報テーブルＴ１は時刻列を含んでもよい。時刻列には位置情報に含まれる時刻が記憶される。ＣＰＵ１１は通信部１６から取得した位置情報を位置情報テーブルＴ１に記憶する。
【００１８】
図３は抽出テーブルＴ２のレコードレイアウトの一例を示す説明図である。抽出テーブルＴ２はＩＤ毎の位置情報を記憶したテーブルである。抽出テーブルＴ２はＩＤ１列、ＩＤ２列、ＩＤ３列、ＩＤ４列等を含む。ＩＤ１列、ＩＤ２列、ＩＤ３列、ＩＤ４列には夫々のＩＤに対応づけられた位置情報が記憶される。具体的にはＣＰＵ１１はＩＤ毎に位置情報を抽出テーブルＴ２に記憶する。
【００１９】
図４は特定テーブルＴ３のレコードレイアウトの一例を示す説明図である。特定テーブルＴ３はプログラム１２Ｐを実行したＣＰＵ１１が特定又は抽出した位置情報を記憶するテーブルである。特定テーブルＴ３は、接続番号列、位置情報１列等を含む。接続番号列には位置情報を接続する順番を示す接続番号が記憶される。位置情報１列にはＣＰＵ１１が特定又は抽出した位置情報が記憶される。なお、特定テーブルＴ３は番号列がなくてもよい。その場合、特定テーブルＴ３は位置情報１列の行番号により接続番号を示す。例えば、特定テーブルＴ３は行番号が１の場合、接続番号が１であり、行番号が２の場合、接続番号が２である。
【００２０】
図５は補間テーブルＴ４のレコードレイアウトの一例を示す説明図である。補間テーブルＴ４にはプログラム１２Ｐを実行したＣＰＵ１１がＩＤ毎に補間した位置情報が記憶される。
【００２１】
次に本実施形態のＣＰＵ１１により行われる処理を図６〜８を参照しつつ説明する。図６は表示部に出力した位置情報を示す説明図である。ＣＰＵ１１は位置情報テーブルＴ１に基づいて表示出力部１５から表示部に位置情報を出力する。具体的にはＣＰＵ１１は（０,３５）及び（３５，０）にＩＤ１を出力する。ＣＰＵ１１は（０,２５）及び（５,０）にＩＤ２を出力する。ＣＰＵ１１は（０,１５）及び（１５,０）にＩＤ３を出力する。ＣＰＵ１１は（０,５）及び（２５,０）にＩＤ４を出力する。
【００２２】
ＣＰＵ１１は抽出テーブルＴ２に位置情報が記憶されていると判定した場合、ＩＤに対応づけられた位置情報を抽出する。ＣＰＵ１１は抽出した位置情報を抽出テーブルＴ２から削除する。ＣＰＵ１１は補間した位置情報の数を示す補間点数に１を代入する。ＣＰＵ１１は抽出した位置情報の数が補間点数を超えたか否かを判定する。
【００２３】
ＣＰＵ１１は抽出した位置情報の数が補間点数を超えたと判定した場合、抽出した位置情報を特定テーブルＴ３に記憶する。ＣＰＵ１１は抽出した位置情報に昇順で接続番号を割り振る。ＣＰＵ１１は一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定する特定処理を行う。
【００２４】
具体的にはＣＰＵ１１は抽出テーブルＴ２に位置情報が記憶されていると判定する。ＣＰＵ１１はＩＤ１に対応づけられた（０,３５）及び（３５，０）を抽出する。ＣＰＵ１１は（０,３５）及び（３５，０）を抽出テーブルＴ２から削除する。ＣＰＵ１１は補間点数に１を代入する。ＣＰＵ１１は抽出した位置情報の数が２であり、補間点数が１であるため、抽出した位置情報の数が補間点数を超えたと判定する。ＣＰＵ１１は（０,３５）及び（３５，０）を特定テーブルＴ３に記憶する。ＣＰＵ１１は（０,３５）の接続番号に１を割り振り、（３５，０）の接続番号に２を割り振る。
【００２５】
図７は特定処理を行った位置情報を示す説明図である。ＣＰＵ１１は一の移動体についての複数の位置情報が示す位置のいずれか２つを結ぶ線分を算出する。すなわち抽出した位置情報を接続する線分を算出する。ＣＰＵ１１は他の移動体についての一又は複数の位置情報が示す位置から線分へ下ろした垂線を算出する。すなわちＣＰＵ１１は位置情報テーブルＴ１に記憶された位置情報から線分へ下ろした垂線の長さを算出する。ＣＰＵ１１は垂線の長さが所定の閾値Ａ２以内にあるか否かを判定する。所定の閾値Ａ２とは記憶部１２に予め記憶されている値である。なお、ＣＰＵ１１は所定の閾値Ａ２を通信部１６を介して取得してもよい。本実施形態において所定の閾値Ａ２は例えば２５である。ＣＰＵ１１は垂線の長さが所定の閾値Ａ２以内にあると判定した場合、所定の閾値Ａ２以内にある位置を示す他の移動体についての一又は複数の位置情報を特定する。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報に対して垂線の長さを算出したか否かを判定する。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報に対して垂線の長さを算出したと判定した場合、特定処理を終了する。
【００２６】
具体的には図７に示すように、ＣＰＵ１１は（０,３５）と（３５，０）とを接続する線分Ａ１を算出する。ＣＰＵ１１は（０,２５）から算出した線分Ａ１へ下ろした垂線の長さを算出する。ＣＰＵ１１は垂線の長さが閾値である２５より短いと判定する。ＣＰＵ１１は（０,２５）の位置情報を特定する。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報に対して垂線の長さを算出していないと判定する。ＣＰＵ１１は（０,１５）から算出した線分Ａ１へ下ろした垂線の長さを算出する。ＣＰＵ１１は垂線の長さが閾値である２５より短いと判定する。ＣＰＵ１１は（０,１５）の位置情報を特定する。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報に対して垂線の長さを算出していないと判定する。ＣＰＵ１１は以下、同様の処理を行い、（０,２５）、（２５,０）、（０,１５）、（１５,０）、（０,５）、（５,０）の位置情報を特定する。すなわち、ＣＰＵ１１は一辺の長さをＡ１とし、一辺に対して垂直をなす他辺の長さをＡ２×２とする矩形領域Ａ３内の（０,２５）、（２５,０）、（０,１５）、（１５,０）、（０,５）、（５,０）を特定する。
【００２７】
図８は並べ替え処理を行った位置情報を示す説明図である。並べ替え処理とは特定した他の移動体についての一又は複数の位置情報が示す位置と、一の移動体についての複数の位置情報が示す位置との位置関係に基づいて他の移動体についての一又は複数の位置情報と、一の移動体についての複数の位置情報とを関連付ける処理である。ＣＰＵ１１は一の移動体についての複数の位置情報の内いずれか１つの位置情報を抽出する。具体的にはＣＰＵ１１は抽出した位置情報の内で最小の接続番号が割り振られた位置情報を示す始点を抽出する。ＣＰＵ１１は始点から各位置情報までの距離を算出する。ＣＰＵ１１は距離を比較する。一の移動体についての複数の位置情報と、他の移動体についての一又は複数の位置情報とを距離の長短に基づいて関連付ける。すなわちＣＰＵ１１は始点からの距離が短い位置情報の順に接続番号を割り振る。なお、ＣＰＵ１１は始点からの距離が短い位置情報の順に位置情報を並び替えてもよい。ＣＰＵ１１は並べ替え処理を終了する。
【００２８】
具体的には図８に示すように、ＣＰＵ１１は接続番号が１の（０，３５）を始点として抽出する。ＣＰＵ１１は（０，３５）と（０,２５）との間の距離ｒ１を算出する。ＣＰＵ１１は（０，３５）と（０,１５）との間の距離ｒ２を算出する。ＣＰＵ１１は（０，３５）と（０,５）との間の距離ｒ３を算出する。ＣＰＵ１１は（０，３５）と（５,０）との間の距離ｒ４を算出する。ＣＰＵ１１は（０，３５）と（１５,０）との間の距離ｒ５を算出する。ＣＰＵ１１は（０，３５）と（２５,０）との間の距離ｒ６を算出する。ＣＰＵ１１は（０，３５）と（３５，０）との間の距離ｒ７を算出する。
【００２９】
ＣＰＵ１１は距離ｒ１が距離ｒ２より短く、距離ｒ２が距離ｒ３より短く、距離ｒ３が距離ｒ４より短く、距離ｒ４が距離ｒ５より短く、距離ｒ５が距離ｒ６より短く、距離ｒ６が距離ｒ７より短いと判定する。ＣＰＵ１１は始点である（０，３５）に接続番号１を割り振る。ＣＰＵ１１は距離ｒ１が最も短いため、（０，２５）に接続番号２を割り振る。ＣＰＵ１１は距離ｒ２が２番目に短いため、（０，１５）に接続番号３を割り振る。ＣＰＵ１１は距離ｒ３が３番目に短いため、（０，５）に接続番号４を割り振る。ＣＰＵ１１は距離ｒ４が４番目に短いため、（５，０）に接続番号５を割り振る。ＣＰＵ１１は距離ｒ５が５番目に短いため、（１５，０）に接続番号６を割り振る。ＣＰＵ１１は距離ｒ６が６番目に短いため、（２５，０）に接続番号７を割り振る。ＣＰＵ１１は距離ｒ７が７番目に短いため、（３５，０）に接続番号８を割り振る。
【００３０】
図９は接続した位置情報を示す説明図である。ＣＰＵ１１は接続番号を割り振ることにより補間した位置情報を補間テーブルＴ４に記憶する。ＣＰＵ１１は接続番号の順に位置情報を接続する。具体的には図９に示すように、ＣＰＵ１１は（０，３５）と（０，２５）とを接続する。ＣＰＵ１１は（０，２５）と（０，１５）とを接続する。ＣＰＵ１１は（０，１５）と（０，５）とを接続する。ＣＰＵ１１は（０，５）と（５，０）とを接続する。ＣＰＵ１１は（５，０）と（１５，０）とを接続する。ＣＰＵ１１は（１５，０）と（２５，０）とを接続する。ＣＰＵ１１は（２５，０）と（３５，０）とを接続する。ＣＰＵ１１は上述の通り接続した位置情報を補間テーブルＴ４に記憶する。ＣＰＵ１１は以下、ＩＤ２、ＩＤ３、ＩＤ４に対して同様の処理を行い、抽出テーブルＴ２に位置情報が記憶されていないと判定した場合、処理を終了する。
【００３１】
次に、フローチャートを用いてＣＰＵ１１の処理手順を説明する。図１０〜１２はＣＰＵ１１の処理手順を示したフローチャートである。ＣＰＵ１１は通信部１６を介して別のサーバから位置情報を取得する（ステップＳ１）。ＣＰＵ１１は取得した位置情報を位置情報テーブルＴ１に記憶する（ステップＳ２）。ＣＰＵ１１は取得した位置情報をＩＤ毎に抽出テーブルＴ２に記憶する（ステップＳ３）。
【００３２】
ＣＰＵ１１は抽出テーブルＴ２に位置情報が記憶されているか否かを判定する（ステップＳ４）。ＣＰＵ１１は抽出テーブルＴ２に位置情報が記憶されていないと判定した場合（ステップＳ４：ＮＯ）、処理を終了する。ＣＰＵ１１は抽出テーブルＴ２に位置情報が記憶されていると判定した場合（ステップＳ４：ＹＥＳ）、ＩＤに対応づけられた位置情報を抽出する（ステップＳ５）。
【００３３】
ＣＰＵ１１は抽出した位置情報を抽出テーブルＴ２から削除する（ステップＳ６）。ＣＰＵ１１は補間した位置情報の数を示す補間点数に１を代入する（ステップＳ７）。ＣＰＵ１１は抽出した位置情報の数が補間点数を超えたか否かを判定する（ステップＳ８）。ＣＰＵ１１は抽出した位置情報の数が補間点数を超えなかったと判定した場合（ステップＳ８：ＮＯ）、処理をステップＳ４に移す。
【００３４】
ＣＰＵ１１は抽出した位置情報の数が補間点数を超えたと判定した場合（ステップＳ８：ＹＥＳ）、抽出した位置情報を特定テーブルＴ３に記憶する（ステップＳ９）。ＣＰＵ１１は抽出した位置情報に昇順で接続番号を割り振る（ステップＳ１０）。なお、位置情報が付加情報を含んでいる場合、ＣＰＵ１１は付加情報に基づいて位置情報に接続番号を振ってもよい。具体的には位置情報が時刻の付加情報を含んでいる場合、時刻が早い付加情報を含む位置情報の順に接続番号を割り振る。次にＣＰＵ１１は特定処理を行う（ステップＳ１１）。
【００３５】
図１３は特定処理の処理手順を示したフローチャートである。ＣＰＵ１１は抽出した位置情報を接続する線分を算出する（ステップＳ２１）。ＣＰＵ１１は位置情報テーブルＴ１に記憶された位置情報が示す位置から算出した線分へ垂線を下ろせるか否かを判定する（ステップＳ２２）。ＣＰＵ１１は垂線を下ろせないと判定した場合（ステップＳ２２：ＮＯ）、処理をステップＳ２６に移す。ＣＰＵ１１は垂線を下ろせると判定した場合（ステップＳ２２：ＹＥＳ）、位置情報テーブルＴ１に記憶された位置情報が示す位置から線分へ下ろした垂線の長さを算出する（ステップＳ２３）。ＣＰＵ１１は垂線の長さが所定の閾値Ａ２以内にあるか否かを判定する（ステップＳ２４）。ＣＰＵ１１は垂線の長さが所定の閾値Ａ２以内にないと判定した場合（ステップＳ２４：ＮＯ）、処理をステップＳ２６に移す。ＣＰＵ１１は垂線の長さが所定の閾値Ａ２以内にあると判定した場合（ステップＳ２４：ＹＥＳ）、所定の閾値Ａ２以内にある位置を示す他の移動体についての一又は複数の位置情報を特定する（ステップＳ２５）。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報に対して垂線の長さを算出したか否かを判定する（ステップＳ２６）。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報に対して垂線の長さを算出していないと判定した場合（ステップＳ２６：ＮＯ）、処理をステップＳ２２に戻す。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報に対して垂線の長さを算出したと判定した場合（ステップＳ２６：ＹＥＳ）、特定処理を終了する。
【００３６】
ＣＰＵ１１は特定処理を終了した後、特定した位置情報を特定テーブルＴ３に記憶する（ステップＳ１２）。ＣＰＵ１１は並べ替え処理を行う（ステップＳ１３）。
【００３７】
図１４は並べ替え処理の処理手順を示したフローチャートである。ＣＰＵ１１は抽出した位置情報の内で最小の接続番号が割り振られた位置情報を示す始点を抽出する（ステップＳ３１）。ＣＰＵ１１は始点から各位置情報までの距離を算出する（ステップＳ３２）。ＣＰＵ１１は距離を比較する（ステップＳ３３）。ＣＰＵ１１は始点からの距離が短い位置情報の順に接続番号を割り振る（ステップＳ３４）。すなわちＣＰＵ１１は一の移動体についての複数の位置情報と、他の移動体についての一又は複数の位置情報とを距離の長短に基づいて関連付ける。ＣＰＵ１１は並べ替え処理を終了する。
【００３８】
ＣＰＵ１１は並べ替え処理を終了した後、補間点数に１と特定した位置情報の数を加算する（ステップＳ１４）。ＣＰＵ１１は特定テーブルＴ３に記憶した位置情報の数は補間点数を超えたか否かを判定する（ステップＳ１５）。ＣＰＵ１１は特定テーブルＴ３に記憶した位置情報の数は補間点数を超えたと判定した場合（ステップＳ１５：ＹＥＳ）、ステップＳ１１に処理を移す。ＣＰＵ１１は特定テーブルＴ３に記憶した位置情報の数は補間点数を超えなかったと判定した場合（ステップＳ１５：ＮＯ）、接続番号を割り振ることにより補間した位置情報を補間テーブルＴ４に記憶する（ステップＳ１６）。ＣＰＵ１１は接続番号の順に位置情報を接続する（ステップＳ１７）。ＣＰＵ１１はステップＳ４に処理を移し、抽出テーブルＴ２に位置情報が記憶されていないと判定した場合（ステップＳ４：ＮＯ）、処理を終了する。
【００３９】
本実施の形態によれば、移動体の位置情報の間隔が大きい場合でも移動体の軌跡を特定することができる。
【００４０】
本実施の形態によれば、ＣＰＵ１１は矩形領域内に含まれる移動体を特定する。このため、移動体と他の移動体との間の距離が判明している場合、ＣＰＵ１１は容易に他の移動体を特定することができる。
【００４１】
本実施の形態によれば、始点から各位置情報までの距離に基づいて接続する点を特定するため、算出処理が少なくて済むので処理負荷を軽減する効果が得られる。
【００４２】
実施の形態２
図１５は実施の形態２に係る特定処理を行った位置情報を示す説明図である。以下、特に説明する構成、作用以外の構成及び作用は実施の形態１と同等であり、簡潔のため記載を省略する。
【００４３】
本実施形態における特定処理を図１５を参照しつつ説明する。ＣＰＵ１１は抽出した位置情報の中点を算出する。ＣＰＵ１１は一の移動体についての複数の位置情報が示す位置のいずれか２つを結ぶ線分を算出する。すなわちＣＰＵ１１は抽出した位置情報を接続する線分を算出する。ＣＰＵ１１は算出した中点を中心とし、算出した線分を直径とする円を算出する。ＣＰＵ１１は算出した円内に他の移動体についての一又は複数の位置情報が示す位置が含まれるか否かを判定する。すなわちＣＰＵ１１は円内に位置情報テーブルＴ１に記憶された位置情報が示す位置が含まれているか否かを判定する。ＣＰＵ１１は算出した円内に他の移動体についての一又は複数の位置情報が示す位置が含まれる場合、他の移動体についての一又は複数の位置情報を特定する。すなわち円内に位置情報テーブルＴ１に記憶された位置情報が示す位置が含まれていると判定した場合、円内に含まれる位置情報を特定する。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報について判定したか否かを判定する。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報について判定したと判定した場合、特定処理を終了する。
【００４４】
具体的には図１５に示すように、ＣＰＵ１１は（０，３５）と（３５，０）との中点Ｂ１を算出する。ＣＰＵ１１は（０,３５）と（３５，０）とを接続する線分Ａ１を算出する。ＣＰＵ１１は中点Ｂ１を中心とする直径Ａ１の円Ｂ２を算出する。ＣＰＵ１１は円Ｂ２内に含まれる（０,２５）、（２５,０）、（０,１５）、（１５,０）、（０,５）、（５,０）を特定する。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報について判定したと判定し、特定処理を終了する。
【００４５】
図１６は実施の形態２に係る特定処理を示すフローチャートである。ステップＳ２１〜２５以外の処理は上述の実施の形態１に係る情報処理システムと同様であるので、簡潔のため説明を省略する。ＣＰＵ１１はステップＳ１０の処理を終了した後、特定処理を行う。ＣＰＵ１１は抽出した位置情報の中点を算出する（ステップＳ４１）。ＣＰＵ１１は抽出した位置情報を接続する線分を算出する（ステップＳ４２）。ＣＰＵ１１は算出した中点を中心とし、算出した線分を直径とする円を算出する（ステップＳ４３）。ＣＰＵ１１は円内に位置情報テーブルＴ１に記憶された位置情報が示す位置が含まれているか否かを判定する（ステップＳ４４）。ＣＰＵ１１は円内に位置情報テーブルＴ１に記憶された位置情報が示す位置が含まれていないと判定した場合（ステップＳ４４：ＮＯ）、処理をステップＳ４６に移す。ＣＰＵ１１は円内に位置情報テーブルＴ１に記憶された位置情報が示す位置が含まれていると判定した場合（ステップＳ４４：ＹＥＳ）、円内に含まれる位置情報を特定する（ステップＳ４５）。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報について判定したか否かを判定する（ステップＳ４６）。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報について判定していないと判定した場合（ステップＳ４６：ＮＯ）、処理をステップＳ４４に戻す。ＣＰＵ１１は位置情報テーブルＴ１に記憶された全ての位置情報について判定したと判定した場合（ステップＳ４６：ＹＥＳ）、特定処理を終了する。
【００４６】
本実施の形態によれば、抽出した位置情報から算出した線分により円内に含まれる位置情報を特定するため、他の移動体との距離が特定できない状況でも移動体の軌跡を特定することができる。
【００４７】
実施の形態３
図１７は実施の形態３に係る並べ替え処理を行った位置情報を示す説明図である。以下、特に説明する構成、作用以外の構成及び作用は実施の形態２と同等であり、簡潔のため記載を省略する。
【００４８】
本実施形態における並べ替え処理を図１７を参照しつつ説明する。ＣＰＵ１１は一の移動体についての複数の位置情報が示す位置のいずれか２つを結ぶ線分を算出する。すなわちＣＰＵ１１は抽出した位置情報を接続する線分を算出する。ＣＰＵ１１は他の移動体についての一又は複数の位置情報が示す位置から線分へ下ろした垂線を算出する。すなわちＣＰＵ１１は各位置情報から線分に下ろした垂線を算出する。ＣＰＵ１１は線分と垂線との交点を算出する。
【００４９】
ＣＰＵ１１は一の移動体についての複数の位置情報の内いずれか１つの位置情報を抽出する。すなわちＣＰＵ１１は抽出した位置情報の内で最小の接続番号が割り振られた位置情報を示す始点を抽出する。ＣＰＵ１１は交点と他の移動体についての一又は複数の位置情報とを対応づける。ＣＰＵ１１は始点と交点との間の距離を示す交点距離（距離）を算出する。ＣＰＵ１１は一の移動体についての複数の位置情報と、交点に対応づけられた一又は複数の位置情報とを交点距離の長短に基づいて関連付ける。すなわちＣＰＵ１１は始点からの交点距離が短い交点に対応づけられた位置情報の順に接続番号を割り振る。なお、ＣＰＵ１１は接続番号がなかった場合、始点からの交点距離が短い順に位置情報を並び替えてもよい。ＣＰＵ１１は抽出した位置情報の内で最大の接続番号が割り振られた位置情報を示す終点を抽出する。ＣＰＵ１１は割り振った接続番号の内、最大の接続番号の次の接続番号を終点に割り振る。ＣＰＵ１１は並ベ替え処理を終了する。
【００５０】
具体的には図１７に示すように、ＣＰＵ１１は線分Ａ１を算出する。ＣＰＵ１１は（０,２５）から線分Ａ１に下ろした垂線ｈ１を算出する。ＣＰＵ１１は（０,１５）から線分Ａ１に下ろした垂線ｈ２を算出する。ＣＰＵ１１は（０,５）から線分Ａ１に下ろした垂線ｈ３を算出する。ＣＰＵ１１は（５,０）から線分Ａ１に下ろした垂線ｈ４を算出する。ＣＰＵ１１は（１５,０）から線分Ａ１に下ろした垂線ｈ５を算出する。ＣＰＵ１１は（２５,０）から線分Ａ１に下ろした垂線ｈ６を算出する。
【００５１】
ＣＰＵ１１は線分Ａ１と垂線ｈ１との交点ａ１を算出する。ＣＰＵ１１は線分Ａ１と垂線ｈ２との交点ａ２を算出する。ＣＰＵ１１は線分Ａ１と垂線ｈ３との交点ａ３を算出する。ＣＰＵ１１は線分Ａ１と垂線ｈ４との交点ａ４を算出する。ＣＰＵ１１は線分Ａ１と垂線ｈ５との交点ａ５を算出する。ＣＰＵ１１は線分Ａ１と垂線ｈ６との交点ａ６を算出する。
【００５２】
ＣＰＵ１１は接続番号が１の（０，３５）を始点として抽出する。ＣＰＵ１１は（０,２５）と交点ａ１とを対応づける。ＣＰＵ１１は（０,１５）と交点ａ２とを対応づける。ＣＰＵ１１は（０,５）と交点ａ３とを対応づける。ＣＰＵ１１は（５,０）と交点ａ４とを対応づける。ＣＰＵ１１は（１５,０）と交点ａ５とを対応づける。ＣＰＵ１１は（２５,０）と交点ａ６とを対応づける。
【００５３】
ＣＰＵ１１は（０，３５）と交点ａ１との間の距離を示す交点距離Ｒ１を算出する。ＣＰＵ１１は（０，３５）と交点ａ２との間の距離を示す交点距離Ｒ２を算出する。ＣＰＵ１１は（０，３５）と交点ａ３との間の距離を示す交点距離Ｒ３を算出する。ＣＰＵ１１は（０，３５）と交点ａ４との間の距離を示す交点距離Ｒ４を算出する。ＣＰＵ１１は（０，３５）と交点ａ５との間の距離を示す交点距離Ｒ５を算出する。ＣＰＵ１１は（０，３５）と交点ａ６との間の距離を示す交点距離Ｒ６を算出する。
【００５４】
ＣＰＵ１１は距離Ｒ１が距離Ｒ２より短く、距離Ｒ２が距離Ｒ３より短く、距離Ｒ３が距離Ｒ４より短く、距離Ｒ４が距離Ｒ５より短く、距離Ｒ５が距離Ｒ６より短いと判定する。
【００５５】
ＣＰＵ１１は始点である（０，３５）に接続番号１を割り振る。ＣＰＵ１１は交点ａ１に対応づけられた（０，２５）に接続番号２を割り振る。ＣＰＵ１１は交点ａ２に対応づけられた（０，１５）に接続番号３を割り振る。ＣＰＵ１１は交点ａ３に対応づけられた（０，５）に接続番号４を割り振る。ＣＰＵ１１は交点ａ４に対応づけられた（５，０）に接続番号５を割り振る。ＣＰＵ１１は交点ａ５に対応づけられた（１５，０）に接続番号６を割り振る。ＣＰＵ１１は交点ａ６に対応づけられた（２５，０）に接続番号７を割り振る。ＣＰＵ１１は終点である（３５，０）を抽出する。ＣＰＵ１１は（３５，０）に接続番号８を割り振り、並ベ替え処理を終了する。
【００５６】
図１８〜図１９は実施の形態３に係る並べ替え処理を示すフローチャートである。ステップＳ３１〜３４以外の処理は上述の実施の形態２に係る情報処理システムと同様であるので、簡潔のため説明を省略する。ＣＰＵ１１は抽出した位置情報を接続する線分を算出する（ステップＳ５１）。ＣＰＵ１１は各位置情報から線分に下ろした垂線を算出する（ステップＳ５２）。ＣＰＵ１１は線分と垂線との交点を算出する（ステップＳ５３）。
【００５７】
ＣＰＵ１１は抽出した位置情報の内で最小の接続番号が割り振られた位置情報を示す始点を抽出する（ステップＳ５４）。ＣＰＵ１１は位置情報と交点とを対応づける（ステップＳ５５）。ＣＰＵ１１は始点と交点との間の距離を示す交点距離を算出する（ステップＳ５６）。ＣＰＵ１１は交点距離を比較する（ステップＳ５７）。ＣＰＵ１１は始点からの交点距離が短い交点に対応づけられた位置情報の順に接続番号を割り振る（ステップＳ５８）。すなわちＣＰＵ１１は一の移動体についての複数の位置情報と、交点に対応づけられた一又は複数の位置情報とを交点距離の長短に基づいて関連付ける。ＣＰＵ１１は抽出した位置情報の内で最大の接続番号が割り振られた位置情報を示す終点を抽出する（ステップＳ５９）。ＣＰＵ１１は割り振った接続番号の内、最大の接続番号の次の接続番号を終点に割り振り（ステップＳ６０）、並ベ替え処理を終了する。
【００５８】
本実施の形態によれば、交点距離に基づいて移動体の軌跡を特定するため、始点から終点へ向かって軌跡を接続する。このことによりＣＰＵ１１は終点から始点へ向かうような軌跡を接続しないため、移動体の軌跡をより正確に特定することができる。
【００５９】
実施の形態４
以下本発明の実施の形態４をその実施の形態を示す図面に基づいて詳述する。図２０は実施の形態４に係る情報処理装置１のハードウェア群を示すブロック図である。以下、特に説明する構成、作用以外の構成及び作用は実施の形態３と同等であり、簡潔のため記載を省略する。
【００６０】
情報処理装置１を動作させるためのプログラムは、ディスクドライブ等の読み取り部１７にＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）ディスク、メモリーカード、又はＵＳＢ（Universal Serial Bus）メモリ等の可搬型記録媒体１７Ａを読み取らせて記憶部１２に記憶してもよい。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ１７Ｂを情報処理装置１内に実装しても良い。通信部１６は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して他のサーバに接続されている。当該プログラムは、通信部１６によりインターネット等の通信網Ｎを介して接続される他のサーバ（図示せず）からダウンロードすることも可能である。以下にその内容を説明する。
【００６１】
図２０に示す情報処理装置１は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体１７Ａ又は半導体メモリ１７Ｂから読み取り、あるいは、通信網Ｎを介して他のサーバ（図示せず）からダウンロードする。当該プログラムは、プログラム１２Ｐとしてインストールされ、記憶部１２にロードして実行される。これより上述した情報処理装置１として機能する。
【００６２】
図２１は実施の形態４に係る情報処理装置１の機能ブロック図である。ＣＰＵ１１がプログラム１２Ｐを実行することにより、情報処理装置１は以下のように動作する。特定部１１Ａは一の移動体が移動した軌跡を一の移動体についての複数の位置情報に基づいて特定する。情報特定部１１Ｂは一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定する。特定部１１Ａは、情報特定部１１Ｂで特定した他の移動体についての一又は複数の位置情報が示す位置と、一の移動体についての複数の位置情報が示す位置との位置関係に基づいて情報特定部１１Ｂで特定した他の移動体についての一又は複数の位置情報と、一の移動体についての複数の位置情報とを関連付けることで軌跡を特定する。
【００６３】
以上の実施の形態に関し、更に以下の付記を開示する。
【００６４】
（付記１）    
一の移動体が移動した軌跡を該一の移動体についての複数の位置情報に基づいて特定する処理を行う情報処理装置に用いられるプログラムであって、
前記一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定し、
特定した他の移動体についての一又は複数の位置情報が示す位置と、前記一の移動体についての複数の位置情報が示す位置との位置関係に基づいて該他の移動体についての一又は複数の位置情報と、前記一の移動体についての複数の位置情報とを関連付ける処理を前記情報処理装置に実行させるプログラム。
（付記２）    
前記一の移動体についての複数の位置情報が示す位置のいずれか２つを結ぶ線分を算出し、
他の移動体についての一又は複数の位置情報が示す位置から前記線分へ垂線を下せるか否かを判定し、
垂線を下せる場合、前記線分へ下ろす垂線を算出し、
算出した垂線の長さが所定の閾値以内にあるか否かを判定し、
算出した垂線の長さが所定の閾値以内にある場合、前記位置を示す他の移動体についての一又は複数の位置情報を特定する付記１に記載のプログラム。
（付記３）    
前記一の移動体についての複数の位置情報が示す位置のいずれか２つを結ぶ線分を算出し、
算出した線分を直径とする円を算出し、
算出した円内に他の移動体についての一又は複数の位置情報が示す位置が含まれるか否かを判定し、
算出した円内に他の移動体についての一又は複数の位置情報が示す位置が含まれる場合、該他の移動体についての一又は複数の位置情報を特定する付記１に記載のプログラム。
（付記４）    
前記一の移動体についての複数の位置情報の内いずれか１つの位置情報を抽出し、
抽出した位置情報が示す位置と、特定した他の移動体についての一又は複数の位置情報が示す位置との間の距離を算出し、
前記一の移動体についての複数の位置情報と、前記他の移動体についての一又は複数の位置情報とを前記距離の長短に基づいて関連付ける処理を前記情報処理装置に実行させる付記１から付記３のいずれか１つに記載のプログラム。
（付記５）    
前記一の移動体についての複数の位置情報が示す位置のいずれか２つを結ぶ線分を算出し、
他の移動体についての一又は複数の位置情報が示す位置から前記線分へ下ろした垂線を算出し、
算出した垂線と前記線分との交点を算出し、
前記一の移動体についての複数の位置情報の内いずれか１つの位置情報を抽出し、
前記交点と前記他の移動体についての一又は複数の位置情報とを対応づけ、
抽出した位置情報が示す位置と前記交点との間の距離を算出し、
前記一の移動体についての複数の位置情報と、前記交点に対応づけられた一又は複数の位置情報とを前記距離の長短に基づいて関連付ける処理を前記情報処理装置に実行させる付記１から付記３のいずれか１つに記載のプログラム。
（付記６）    
一の移動体が移動した軌跡を該一の移動体についての複数の位置情報に基づいて特定する特定部を備える情報処理装置であって、
前記一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定する情報特定部を備え、
前記特定部は、前記情報特定部で特定した他の移動体についての一又は複数の位置情報が示す位置と、前記一の移動体についての複数の位置情報が示す位置との位置関係に基づいて前記情報特定部で特定した他の移動体についての一又は複数の位置情報と、前記一の移動体についての複数の位置情報とを関連付ける情報処理装置。
（付記７）    
一の移動体が移動した軌跡を該一の移動体についての複数の位置情報に基づいて特定する処理を行う情報処理装置における情報処理方法であって、
前記一の移動体についての複数の位置情報が示す位置の近傍に存在する位置を示す他の移動体についての一又は複数の位置情報を特定し、
特定した他の移動体についての一又は複数の位置情報が示す位置と、前記一の移動体についての複数の位置情報が示す位置との位置関係に基づいて該他の移動体についての一又は複数の位置情報と、前記一の移動体についての複数の位置情報とを関連付ける処理を前記情報処理装置に実行させる情報処理方法。
【００６５】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６６】
１１  ＣＰＵ
１１Ａ  特定部
１１Ｂ  情報特定部
１２  記憶部
１２Ｐ  プログラム
【図１】
2015170030.tif 000003
【図２】
2015170030.tif 000004
【図３】
2015170030.tif 000005
【図４】
2015170030.tif 000006
【図５】
2015170030.tif 000007
【図６】
2015170030.tif 000008
【図７】
2015170030.tif 000009
【図８】
2015170030.tif 000010
【図９】
2015170030.tif 000011
【図１０】
2015170030.tif 000012
【図１１】
2015170030.tif 000013
【図１２】
2015170030.tif 000014
【図１３】
2015170030.tif 000015
【図１４】
2015170030.tif 000016
【図１５】
2015170030.tif 000017
【図１６】
2015170030.tif 000018
【図１７】
2015170030.tif 000019
【図１８】
2015170030.tif 000020
【図１９】
2015170030.tif 000021
【図２０】
2015170030.tif 000022
【図２１】
2015170030.tif 000023