(57)【要約】【課題】測位誤差を含む位置情報に基づいてユーザの移動距離を算出するに際して、誤差の影響を軽減することにより、移動距離の算出精度を向上する。【解決手段】位置情報取得部１１により複数の位置情報が取得され、移動軌跡判定部１６により、時系列上で連続する３点の位置情報により形成される折れ角に基づいて、ユーザが曲線移動中であるか、直線移動中であるかが位置情報ごとに判定され、位置情報選択部１７により、直線移動中と判定された位置情報の１つ以上が除去され、除去されなかった直線移動中の位置情報と、曲線移動中と判定された位置情報とが処理対象の位置情報として選択される。こうして選択された位置情報に基づくユーザの移動軌跡は、直線移動中において方向転換をしているかのような誤差が排除されたものとなる。従って、かかる位置情報に基づいて算出されるユーザの移動距離は、高精度なものとなる。【選択図】図１
2011117941.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの所在位置を示す情報を含む位置情報に基づいて、前記ユーザの移動距離を算出する移動距離算出装置であって、
複数の前記位置情報を取得する位置情報取得手段と、
前記位置情報取得手段により取得された前記位置情報を処理対象の位置情報として取得し、時系列上において連続する３つの前記位置情報を第１〜第３の位置情報としたときに、前記第１の位置情報と前記第２の位置情報とを結ぶ直線に対して、前記第２の位置情報と前記第３の位置情報とを結ぶ直線が成す角度である折れ角に基づいて、前記ユーザが曲線移動中であるか否かを前記位置情報毎に判定する移動軌跡判定手段と、
前記移動軌跡判定手段により曲線移動中と判定されなかった前記位置情報である直線移動中位置情報のうち少なくとも１つの前記直線移動中位置情報を除去し、除去されなかった前記直線移動中位置情報と、前記移動軌跡判定手段により曲線移動中と判定された前記位置情報である曲線移動中位置情報とを、移動距離算出のための前記位置情報として選択する位置情報選択手段と、
前記位置情報選択手段により選択された前記位置情報に基づいて、前記位置情報間の距離を算出し、算出された前記位置情報間の距離を積算することにより、前記ユーザの移動距離を算出する移動距離算出手段と、
前記移動距離算出手段により算出されたユーザの移動距離を出力する処理結果出力手段と
を備えることを特徴とする移動距離算出装置。
【請求項２】
前記移動軌跡判定手段は、
前記位置情報取得手段により取得された前記位置情報から、時系列上において連続する位置情報ｐ１，ｐ２，ｐ３，・・・ｐｊ（ｊは４以上の整数）を取得し、時系列上において連続する３つの位置情報ｐｉ−１，ｐｉ，ｐｉ＋１（ｉは２〜（ｊ−１）の整数）に基づき、位置情報ｐｉ−１と位置情報ｐｉとを結ぶ直線に対して、位置情報ｐｉと位置情報ｐｉ＋１を結ぶ直線が成す角度として形成される折れ角θｉを求め、前記折れ角θ２〜折れ角θｊ−１を積算した値である積算角θを求め、前記積算角θの値が予め設定された所定範囲に含まれる場合に、前記折れ角θ２〜折れ角θｊ−１の絶対値が最大となる前記折れ角θｉを形成する前記位置情報ｐｉを前記曲線移動中位置情報と判定する
ことを特徴とする請求項１に記載の移動距離算出装置。
【請求項３】
前記位置情報選択手段は、
前記曲線移動中位置情報のみを移動距離算出のための前記位置情報として選択する
ことを特徴とする請求項１または２に記載の移動距離算出装置。
【請求項４】
前記位置情報選択手段は、
予め設定された所定数の前記直線移動中位置情報ごとに１つの前記直線移動中位置情報を選択し、選択された当該直線移動中位置情報と前記曲線移動中位置情報とを移動距離算出のための前記位置情報として選択する
ことを特徴とする請求項１または２に記載の移動距離算出装置。
【請求項５】
前記位置情報取得手段により取得された前記位置情報を処理対象の位置情報として取得し、取得した前記位置情報から一の位置情報を選択し、前記一の位置情報から予め設定された所定の距離以内に所在する前記位置情報を関連位置情報として保持し、前記一の位置情報及び前記関連位置情報の重心位置を算出し、前記重心位置を示す集約位置情報を生成する位置情報集約手段をさらに備え、
前記移動軌跡判定手段は、前記位置情報取得手段により取得された前記位置情報及び前記位置情報集約手段により生成された前記集約位置情報を処理対象の位置情報として取得する
ことを特徴とする請求項１〜４のいずれか１項に記載の移動距離算出装置。
【請求項６】
前記位置情報取得手段により取得された前記位置情報のうち、時系列上において連続する３つの前記位置情報を位置情報ｐｉ−１，ｐｉ，ｐｉ＋１としたときに、前記位置情報ｐｉ−１と前記位置情報ｐｉとを結ぶ直線に対して、前記位置情報ｐｉと前記位置情報ｐｉ＋１とを結ぶ直線が成す角度が、予め設定された所定の角度以下である場合に、当該位置情報ｐｉを異常位置情報として検出することを第１の異常検出条件とし、前記第１の異常検出条件により検出した前記異常位置情報を処理対象の前記位置情報から除去する異常位置情報除去手段をさらに備え、
前記位置情報集約手段は、前記異常位置情報除去手段により前記異常位置情報を除去された後の前記位置情報を処理対象の位置情報として取得する
ことを特徴とする請求項５に記載の移動距離算出装置。
【請求項７】
前記異常位置情報除去手段は、
前記位置情報取得手段により取得された前記位置情報のうち、時系列上において連続する５つの前記位置情報を位置情報ｐｉ−２，ｐｉ−１，ｐｉ，ｐｉ＋１，ｐｉ＋２としたときに、前記位置情報ｐｉ−２と前記位置情報ｐｉ−１との間の距離及び前記位置情報ｐｉ＋１と前記位置情報ｐｉ＋２との間の距離の和に対する、前記位置情報ｐｉ−１と前記位置情報ｐｉとの間の距離及び前記位置情報ｐｉと前記位置情報ｐｉ＋１との間の距離の和の比が、予め設定された所定の閾値以上である場合に、当該位置情報ｐｉを異常位置情報として検出することを第２の異常検出条件とし、前記第１の異常検出条件及び前記第２の異常検出条件により検出した前記異常位置情報を処理対象の前記位置情報から除去する
ことを特徴とする請求項６に記載の移動距離算出装置。
【請求項８】
前記異常位置情報除去手段は，
前記位置情報取得手段により取得された前記位置情報のうち，時系列上において連続する２つの前記位置情報をｐｉ−１，ｐｉとしたときに、前記位置情報ｐｉ−１，ｐｉに基づき算出される移動距離、及び前記位置情報が測位された時刻に基づき算出される移動時間に基づき算出された移動速度が所定の閾値以上である場合に、当該位置情報ｐｉを異常位置情報として検出することを第３の異常検出条件とし，前記第３の異常検出条件により検出した前記異常位置情報を処理対象の前記位置情報から除去する
ことを特徴とする請求項６または７に記載の移動距離算出装置。
【請求項９】
前記異常位置情報除去手段は、
前記位置情報ｐｉに関して前記第３の異常検出条件が満たされる場合において、位置情報ｐｉ−１が時系列上において最初に取得した位置情報である場合には，前記位置情報ｐｉに代えて、前記位置情報ｐｉ−１を処理対象の前記位置情報から除去する
ことを特徴とする請求項８に記載の移動距離算出装置．
【請求項１０】
前記位置情報選択手段は、
前記位置情報集約手段によって集約された時系列上における最新の集約位置情報の生成に用いられた位置情報のうち、時系列上において最新の位置情報を移動距離算出のための位置情報として選択する
ことを特徴とする請求項５〜９のいずれか１項に記載の移動距離算出装置。
【請求項１１】
ユーザの所在位置を示す情報を含む位置情報に基づいて、前記ユーザの移動距離を算出する移動距離算出装置における移動距離算出方法であって、
複数の前記位置情報を取得する位置情報取得ステップと、
前記位置情報取得ステップにおいて取得された前記位置情報を処理対象の位置情報として取得し、時系列上において連続する３つの前記位置情報を第１〜第３の位置情報としたときに、前記第１の位置情報と前記第２の位置情報とを結ぶ直線に対して、前記第２の位置情報と前記第３の位置情報とを結ぶ直線が成す角度である折れ角に基づいて、前記ユーザが曲線移動中であるか否かを前記位置情報毎に判定する移動軌跡判定ステップと、
前記移動軌跡判定ステップにおいて曲線移動中と判定されなかった前記位置情報である直線移動中位置情報のうち少なくとも１つの前記直線移動中位置情報を除去し、除去されなかった前記直線移動中位置情報と、前記移動軌跡判定ステップにおいて曲線移動中と判定された前記位置情報である曲線移動中位置情報とを、移動距離算出のための前記位置情報として選択する位置情報選択ステップと、
前記位置情報選択ステップにおいて選択された前記位置情報に基づいて、前記位置情報間の距離を算出し、算出された前記位置情報間の距離を積算することにより、前記ユーザの移動距離を算出する移動距離算出ステップと、
前記移動距離算出ステップにおいて算出されたユーザの移動距離を出力する処理結果出力ステップと
を有することを特徴とする移動距離算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動距離算出装置及び移動距離算出方法に関する。
【背景技術】
【０００２】
従来より、例えばＧＰＳ等の手段により取得された位置情報に基づいて、ユーザの移動距離を算出する技術が知られている。例えば、ＧＰＳにより移動者の位置座標を測定し、その位置座標を直線で結び、直線の長さを合算した線分長をユーザの移動距離とする技術が知られている（例えば、特許文献１参照）。また、取得された位置情報群から、所定個おきに位置情報を取り出し、取り出した位置情報間の距離を算出することにより移動距離を求める技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３１７９６０号公報
【特許文献２】特開２００４−２０３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では、ユーザが直線移動している場合であっても、取得される位置情報に含まれる測位誤差等によって、方向転換を繰り返しながら移動しているような移動軌跡が描かれる。このような移動軌跡となる位置情報から算出された移動距離は、大きな誤差を含むこととなる。
【０００５】
そこで、本発明は、上記問題点に鑑みてなされたものであり、測位誤差を含む位置情報に基づいてユーザの移動距離を算出するに際して、誤差の影響を軽減することにより、移動距離の算出精度の向上が可能な移動距離算出装置及び移動距離算出方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の移動距離算出装置は、ユーザの所在位置を示す情報を含む位置情報に基づいて、ユーザの移動距離を算出する移動距離算出装置であって、複数の位置情報を取得する位置情報取得手段と、位置情報取得手段により取得された位置情報を処理対象の位置情報として取得し、時系列上において連続する３つの位置情報を第１〜第３の位置情報としたときに、第１の位置情報と第２の位置情報とを結ぶ直線に対して、第２の位置情報と第３の位置情報とを結ぶ直線が成す角度である折れ角に基づいて、ユーザが曲線移動中であるか否かを位置情報毎に判定する移動軌跡判定手段と、移動軌跡判定手段により曲線移動中と判定されなかった位置情報である直線移動中位置情報のうち少なくとも１つの直線移動中位置情報を除去し、除去されなかった直線移動中位置情報と、移動軌跡判定手段により曲線移動中と判定された位置情報である曲線移動中位置情報とを、移動距離算出のための位置情報として選択する位置情報選択手段と、位置情報選択手段により選択された位置情報に基づいて、位置情報間の距離を算出し、算出された位置情報間の距離を積算することにより、ユーザの移動距離を算出する移動距離算出手段と、移動距離算出手段により算出されたユーザの移動距離を出力する処理結果出力手段とを備えることを特徴とする。
【０００７】
また、上記課題を解決するために、本発明の移動距離算出方法は、ユーザの所在位置を示す情報を含む位置情報に基づいて、ユーザの移動距離を算出する移動距離算出装置における移動距離算出方法であって、複数の位置情報を取得する位置情報取得ステップと、位置情報取得ステップにおいて取得された位置情報を処理対象の位置情報として取得し、時系列上において連続する３つの位置情報を第１〜第３の位置情報としたときに、第１の位置情報と第２の位置情報とを結ぶ直線に対して、第２の位置情報と第３の位置情報とを結ぶ直線が成す角度である折れ角に基づいて、ユーザが曲線移動中であるか否かを位置情報毎に判定する移動軌跡判定ステップと、移動軌跡判定ステップにおいて曲線移動中と判定されなかった位置情報である直線移動中位置情報のうち少なくとも１つの直線移動中位置情報を除去し、除去されなかった直線移動中位置情報と、移動軌跡判定ステップにおいて曲線移動中と判定された位置情報である曲線移動中位置情報とを、移動距離算出のための位置情報として選択する位置情報選択ステップと、位置情報選択ステップにおいて選択された位置情報に基づいて、位置情報間の距離を算出し、算出された位置情報間の距離を積算することにより、ユーザの移動距離を算出する移動距離算出ステップと、移動距離算出ステップにおいて算出されたユーザの移動距離を出力する処理結果出力ステップとを有することを特徴とする。
【０００８】
本発明の移動距離算出装置及び移動距離算出方法によれば、時系列上で連続する３点の位置情報により形成される折れ角に基づいて、ユーザが曲線移動中であるか、直線移動中であるかが判定され、直線移動中と判定された位置情報の１つ以上を除去されるので、除去されなかった直線移動中の位置情報に基づく移動軌跡が直線となる。そして、除去されなかった直線移動中の位置情報と、曲線移動中と判定された位置情報に基づいて移動距離が算出されるので、移動距離算出の精度が向上する。
【０００９】
また、本発明の移動距離算出装置では、移動軌跡判定手段は、位置情報取得手段により取得された位置情報から、時系列上において連続する位置情報ｐ１，ｐ２，ｐ３，・・・ｐｊ（ｊは４以上の整数）を取得し、時系列上において連続する３つの位置情報ｐｉ−１，ｐｉ，ｐｉ＋１（ｉは２〜（ｊ−１）の整数）に基づき、位置情報ｐｉ−１と位置情報ｐｉとを結ぶ直線に対して、位置情報ｐｉと位置情報ｐｉ＋１を結ぶ直線が成す角度として形成される折れ角θｉを求め、折れ角θ２〜折れ角θｊ−１を積算した値である積算角θを求め、積算角θの値が予め設定された所定範囲に含まれる場合に、折れ角θ２〜折れ角θｊ−１の絶対値が最大となる折れ角θｉを形成する位置情報ｐｉを曲線移動中位置情報と判定することを特徴とする。
【００１０】
折れ角θｉの積算角θの値が所定範囲に含まれる場合には、積算された折れ角θ２〜折れ角θｊ−１を形成するいずれかの位置情報ｐｉに示される位置において、曲線移動が行われているものと判断することができる。従って、折れ角θ２〜折れ角θｊ−１のうち絶対値が最大となる折れ角θｉを形成する位置情報ｐｉを曲線移動中の位置情報と判定することができる。これにより、ユーザが曲線移動中であるか、直線移動中であるかの判定が適切に行われる。
【００１１】
また、本発明の移動距離算出装置では、位置情報選択手段は、曲線移動中位置情報のみを移動距離算出のための位置情報として選択することが好ましい。
【００１２】
この場合には、全ての直線移動中位置情報が除去され、曲線移動中位置情報が移動距離算出のための位置情報として選択されるので、選択された位置情報を直線で結んで得られる軌跡は、ユーザの移動軌跡を適切に表したものとなる。また、全ての直線移動中位置情報が除去された上で移動距離の算出が行われるので、移動距離算出の処理負荷が軽減される。
【００１３】
また、本発明の移動距離算出装置では、位置情報選択手段は、予め設定された所定数の直線移動中位置情報ごとに１つの直線移動中位置情報を選択し、選択された当該直線移動中位置情報と曲線移動中位置情報とを移動距離算出のための位置情報として選択する構成とすることもできる。
【００１４】
この場合には、一部の直線移動中位置情報と曲線移動中位置情報が移動距離算出のための位置情報として選択されるので、選択された位置情報を直線で結んで得られる軌跡は、ユーザの移動軌跡を適切に表したものとなる。一部の直線移動中位置情報が移動距離算出のための位置情報として用いられるので、移動距離算出の精度が向上する。また、ユーザが常に直線移動を行っている場合において、距離算出が行われないことが防止される。
【００１５】
また、本発明の移動距離算出装置では、位置情報取得手段により取得された位置情報を処理対象の位置情報として取得し、取得した位置情報から一の位置情報を選択し、一の位置情報から予め設定された所定の距離以内に所在する位置情報を関連位置情報として保持し、一の位置情報及び関連位置情報の重心位置を算出し、重心位置を示す集約位置情報を生成する位置情報集約手段をさらに備え、移動軌跡判定手段は、位置情報取得手段により取得された位置情報及び位置情報集約手段により生成された集約位置情報を処理対象の位置情報として取得することを特徴とする。
【００１６】
この場合には、一の位置情報の近傍の所定距離内に所在する位置情報が当該一の位置情報に集約され、集約された複数の位置情報の重心位置から集約位置情報が算出され、算出された集約位置情報が移動距離算出に用いられる。これにより、測位誤差によりユーザが静止している場合であっても細かく移動しているように見えてしまうような複数の位置情報が集約位置情報に集約されるので、移動距離の算出精度が向上する。
【００１７】
また、本発明の移動距離算出装置では、位置情報取得手段により取得された位置情報のうち、時系列上において連続する３つの位置情報を位置情報ｐｉ−１，ｐｉ，ｐｉ＋１としたときに、位置情報ｐｉ−１と位置情報ｐｉとを結ぶ直線に対して、位置情報ｐｉと位置情報ｐｉ＋１とを結ぶ直線が成す角度が、予め設定された所定の角度以下である場合に、当該位置情報ｐｉを異常位置情報として検出することを第１の異常検出条件とし、第１の異常検出条件により検出した異常位置情報を処理対象の位置情報から除去する異常位置情報除去手段をさらに備え、位置情報集約手段は、異常位置情報除去手段により異常位置情報を除去された後の位置情報を処理対象の位置情報として取得することを特徴とする。
【００１８】
この場合には、測位誤差または測位異常といった原因により、移動軌跡が成す角度が所定の角度以下となるような位置情報が異常位置情報として検出され、検出された異常位置情報が予め除去されるので、移動距離の算出精度が向上する。
【００１９】
また、本発明の移動距離算出装置では、異常位置情報除去手段は、位置情報取得手段により取得された位置情報のうち、時系列上において連続する５つの位置情報を位置情報ｐｉ−２，ｐｉ−１，ｐｉ，ｐｉ＋１，ｐｉ＋２としたときに、位置情報ｐｉ−２と位置情報ｐｉ−１との間の距離及び位置情報ｐｉ＋１と位置情報ｐｉ＋２との間の距離の和に対する、位置情報ｐｉ−１と位置情報ｐｉとの間の距離及び位置情報ｐｉと位置情報ｐｉ＋１との間の距離の和の比が、予め設定された所定の閾値以上である場合に、当該位置情報ｐｉを異常位置情報として検出することを第２の異常検出条件とし、第１の異常検出条件及び第２の異常検出条件により検出した異常位置情報を処理対象の位置情報から除去することが好ましい。
【００２０】
この場合には、位置情報間を直線で結んだ移動距離が極端に大きくなるような位置情報が異常位置情報として検出され、検出された異常位置情報が予め除去されるので、移動距離の算出精度がさらに向上する。
【００２１】
また、本発明の移動距離算出装置では、異常位置情報除去手段は，位置情報取得手段により取得された位置情報のうち，時系列上において連続する２つの位置情報をｐｉ−１，ｐｉとしたときに、位置情報ｐｉ−１，ｐｉに基づき算出される移動距離、及び位置情報が測位された時刻に基づき算出される移動時間に基づき算出された移動速度が所定の閾値以上である場合に、当該位置情報ｐｉを異常位置情報として検出することを第３の異常検出条件とし，第３の異常検出条件により検出した異常位置情報を処理対象の位置情報から除去することを特徴とする。
【００２２】
位置情報から算出される移動速度が極端に大きく所定の閾値以上である場合には、当該位置情報に大きな誤差が含まれている可能性が高い。上記構成によれば、大きな誤差が含まれている可能性が高い位置情報が異常位置情報として検出され、移動距離の算出に用いられないので、移動距離の算出精度が向上する。
【００２３】
また、本発明の移動距離算出装置では、異常位置情報除去手段は、位置情報ｐｉに関して第３の異常検出条件が満たされる場合において、位置情報ｐｉ−１が時系列上において最初に取得した位置情報である場合には，位置情報ｐｉに代えて、位置情報ｐｉ−１を処理対象の位置情報から除去することを特徴とする。
【００２４】
一般的に位置情報取得部により最初に取得された位置情報の測位誤差は大きく、２回目以降の測位において補正され測位精度が向上する場合が多い。上記構成によれば、第３の異常検出条件を満たすような位置情報が検出された場合において、最初に測位された位置情報が異常位置情報として検出され、検出された異常位置情報が移動距離の算出対象から除去されるので、移動距離の算出精度がさらに向上する。
【００２５】
また、本発明の移動距離算出装置では、位置情報選択手段は、位置情報集約手段によって集約された時系列上における最新の集約位置情報の生成に用いられた位置情報のうち、時系列上において最新の位置情報を移動距離算出のための位置情報として選択することを特徴とする。
【００２６】
この場合には、集約位置情報に代えて、時系列において最新の位置情報を移動距離算出のための位置情報として利用することにより、算出される移動距離のリアルタイム性が向上し、短距離の移動における移動距離算出の精度が向上する。
【発明の効果】
【００２７】
測位誤差を含む位置情報に基づいてユーザの移動距離を算出するに際して、誤差の影響を軽減することにより、移動距離の算出精度の向上が可能となる。
【図面の簡単な説明】
【００２８】
【図１】移動距離算出装置の機能的構成を示すブロック図である。
【図２】移動距離算出装置のハードブロック図である。
【図３】位置情報の構成及び内容の一例を示す図である。
【図４】時系列上において連続する５点の位置情報の例を示す図である。
【図５】位置情報集約部による位置情報の集約処理を説明するための図である。
【図６】集約位置情報の構成及び内容の一例を示す図である。
【図７】異常集約位置情報除去部による異常集約位置情報の除去処理を説明するための図である。
【図８】異常集約位置情報除去部から取得された集約位置情報の構成及び内容の一例を示す図である。
【図９】移動軌跡判定部における判定処理のアルゴリズムを示すフローチャートである。
【図１０】図８に示す集約位置情報ｐ´ｉを時系列順に直線で結んだ状態を示す図である。
【図１１】曲線移動中と判定された集約位置情報のデータに曲線移動中フラグが設定された状態を示す図である。
【図１２】移動距離算出のための位置情報として選択された集約位置情報のデータに位置情報選択フラグが設定された状態を示す図である。
【図１３】移動距離算出のための位置情報として選択された集約位置情報を直線で結んだ軌跡を示す図である。
【図１４】移動距離算出部により算出された移動距離のデータの例を示す図である。
【図１５】移動距離算出装置において実施される移動距離算出方法の処理内容を示すフローチャートである。
【図１６】最新の位置情報が移動距離算出のための位置情報として選択される例を示す図である。
【発明を実施するための形態】
【００２９】
本発明に係る移動距離算出装置の実施形態について図面を参照して説明する。なお、可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
【００３０】
図１は、実施形態に係る移動距離算出装置の機能的構成を示すブロック図である。移動距離算出装置１は、ユーザの所在位置を示す情報を含む位置情報に基づいて、ユーザの移動距離を算出する装置であって、例えば、移動端末、携帯電話、サーバといったコンピュータにより構成される。
【００３１】
移動距離算出装置１は、機能的には、位置情報格納部１０、位置情報取得部１１（位置情報取得手段）、異常位置情報除去部１２（異常位置情報除去手段）、位置情報集約部１３（位置情報集約手段）、集約位置情報格納部１４、異常集約位置情報除去部１５、移動軌跡判定部１６（移動軌跡判定手段）、位置情報選択部１７（位置情報選択手段）、移動距離算出部１８（移動距離算出手段）、移動距離格納部１９、及び処理結果出力部２０（処理結果出力手段）を備える。
【００３２】
図２は、移動距離算出装置１のハードウエア構成図である。移動距離算出装置１は、物理的には、図２に示すように、ＣＰＵ１０１、主記憶装置であるＲＡＭ１０２及びＲＯＭ１０３、ネットワークカード等のデータ送受信デバイスである通信モジュール１０４、ハードディスク、フラッシュメモリ等の補助記憶装置１０５、入力デバイスであるキーボード及びマウス等の入力装置１０６、ディスプレイ等の出力装置１０７などを含むコンピュータシステムとして構成されている。図１に示した各機能は、図２に示すＣＰＵ１０１、ＲＡＭ１０２等のハードウエア上に所定のコンピュータソフトウェアを読み込ませることにより、ＣＰＵ１０１の制御のもとで通信モジュール１０４、入力装置１０６、出力装置１０７を動作させるとともに、ＲＡＭ１０２や補助記憶装置１０５におけるデータの読み出し及び書き込みを行うことで実現される。再び、図１を参照し、移動距離算出装置１の各機能部について詳細に説明する。
【００３３】
位置情報格納部１０は、ユーザの所在位置を示す位置情報を格納している記憶手段である。図３（ａ）は、位置情報格納部１０の構成及び記憶されているデータの一例を示す図である。図３（ａ）に示すように、位置情報格納部１０には、レコードを識別するＩＤ毎に、測位日時、緯度及び経度が記憶されている。ユーザの所在位置を示す緯度及び経度は、例えば、ＧＰＳ装置（図示せず）により測位される。移動距離算出装置１が携帯電話、移動端末等により構成される場合には、ＧＰＳ装置は、移動距離算出装置１に備えられる。
【００３４】
位置情報取得部１１は、複数の位置情報を位置情報格納部１０から取得する部分である。位置情報取得部１１により取得される位置情報の例は、図３（ａ）に示される。なお、以降の説明において、ＩＤ「ｉ」の位置情報を位置情報ｐｉと示すこととする。即ち、本実施形態では、位置情報取得部１１は、測位日時が時系列上において連続する位置情報ｐ１〜ｐ１１を取得する。
【００３５】
異常位置情報除去部１２は、位置情報取得部１１により取得された位置情報から、異常位置情報を検出し、検出した異常位置情報を処理対象の位置情報から除去する部分である。異常位置情報は、例えば、何らかの原因により緯度または経度として異常な値が測定された位置情報や、非常に大きな誤差が含まれる位置情報である。図４を用いて、異常位置情報を検出するための異常検出条件を以下に説明する。
【００３６】
図４は、時系列上において連続する５点の位置情報の例を示す図である。第１の異常検出条件は、時系列上において連続する３つの位置情報を位置情報ｐｉ−１，ｐｉ，ｐｉ＋１としたときに、位置情報ｐｉ−１と位置情報ｐｉとを結ぶ直線に対して、位置情報ｐｉと位置情報ｐｉ＋１とを結ぶ直線が成す角度θｉが、予め設定された所定の角度以下である場合に、当該位置情報ｐｉを異常位置情報として検出するものである。また、角度θｉの値は、ｐｉを始点とｐｉ−１を終点とするベクトル、及びｐｉを始点とｐｉ＋１を終点とするベクトルに基づいてアークコサイン値を算出することにより求められる。なお、第１の異常検出条件において異常位置情報の検出に用いられる所定の角度は、位置情報の測定精度等に基づいて決定され、例えば６０度といった値に設定される。
【００３７】
また、第２の異常検出条件は、図４に示すように、時系列上において連続する５つの位置情報を位置情報ｐｉ−２，ｐｉ−１，ｐｉ，ｐｉ＋１，ｐｉ＋２としたときに、位置情報ｐｉ−２及び位置情報ｐｉ−１間の距離と位置情報ｐｉ＋１及び位置情報ｐｉ＋２間の距離との和に対する、位置情報ｐｉ−１及び位置情報ｐｉ間の距離と位置情報ｐｉ及び位置情報ｐｉ＋１間の距離の和の比が、予め設定された所定の閾値以上である場合に、当該位置情報ｐｉを異常位置情報として検出するものである。即ち、点ａと点ｂとの間の距離をｄｉｓ（ａ，ｂ）と表したときに、下記式（１）の値が所定の閾値以上である場合に、位置情報ｐｉが異常位置情報として検出される。なお、２点間の距離の算出には、例えば、ヒュベニの距離計算式を用いることができる。
【数１】
2011117941.tif 000003
なお、第２の異常検出条件において異常位置情報の検出に用いられる所定の閾値は、位置情報の測定精度等に基づいて決定することができる。なお、以上の異常検出条件の説明において、位置情報ｐｉの添え字ｉは、２以上且つ位置情報取得部１１により取得された位置情報数から１を減じた数以下の整数である。
【００３８】
異常位置情報除去部１２は、第１の異常検出条件及び第２の異常検出条件の両方に該当する位置情報を異常位置情報として検出することとしてもよいし、第１の異常検出条件及び第２の異常検出条件のいずれか一方に該当する位置情報を異常位置情報として検出することとしてもよい。また、異常位置情報除去部１２は、以下に説明する第３の異常検出条件により異常位置情報を検出することとしてもよい。
【００３９】
第３の異常検出条件は、図４に示すように、時系列上において連続する２つの位置情報を位置情報ｐｉ−１，ｐｉとし、これらの位置情報が測位された時刻をそれぞれ時刻ｔｉ−１，ｔｉとしたときに、下記式（７）により算出される移動速度が所定の閾値以上である場合に、位置情報ｐｉ−１又は位置情報ｐｉを異常位置情報として検出するものである。異常位置情報除去部１２は、位置情報ｐｉ−１が最初に取得した位置情報である場合には、当該位置情報ｐｉ−１を異常位置情報として検出し、位置情報ｐｉ−１が最初に取得した位置情報でない場合には、当該位置情報ｐｉを異常位置情報として検出する。
【数２】
2011117941.tif 000004
【００４０】
位置情報から算出される移動速度が極端に大きく所定の閾値以上である場合には、当該位置情報に大きな誤差が含まれている可能性が高いので、かかる位置情報を異常位置情報として検出し、移動距離の算出に用いないことにより、移動距離の算出精度が向上する。
【００４１】
また、一般的に位置情報取得部により最初に取得された位置情報の測位誤差は大きく，２回目以降の測位において補正され測位精度が向上する場合が多いので、第３の異常検出条件を満たすような位置情報が検出された場合において、最初に測位された位置情報を異常位置情報として検出し、検出された異常位置情報を移動距離の算出から除去することにより、移動距離の算出精度がさらに向上する。
【００４２】
異常位置情報除去部１２は、図３（ｂ）に示すように、異常位置情報として検出した位置情報のデータに対応付けて、異常位置情報フラグを設定する。図３（ｂ）に示す例では、ＩＤ「３」の位置情報が異常位置情報として検出されている。異常位置情報フラグが設定された位置情報は、処理対象の位置情報から除去される。以上説明したように、異常位置情報除去部１２が異常位置情報を処理対象の位置情報から除外することにより、ユーザの移動距離の算出精度が向上する。
【００４３】
位置情報集約部１３は、異常位置情報除去部１２から処理対象の位置情報を取得し、取得した位置情報から一の位置情報を代表位置情報として選択し、代表位置情報から予め設定された所定の距離以内に所在する位置情報を関連位置情報として保持し、代表位置情報及び関連位置情報の重心位置を算出し、算出した重心位置を集約位置とする集約位置情報を生成する部分である。本実施形態の移動距離算出において、高頻度に取得された位置情報を用いる場合に、それぞれの位置情報に含まれる誤差が少量であっても、位置情報間の移動距離を積算すると、少量の誤差が蓄積されて大きな誤差となる。そこで、位置情報間の距離が所定の距離以内の位置情報を集約して１つの位置情報として扱うことにより、算出される移動距離に誤差が蓄積されることを防止する。以下に、図３（ｃ）及び図５を用いて、集約位置情報の生成を説明する。
【００４４】
図５に示すように、まず、位置情報集約部１３は、位置情報ｐ１を代表位置情報として選択し、図３（ｃ）に示すように、代表位置情報として設定した位置情報ｐ１のデータに代表位置情報ＩＤ「１」を設定する。続いて、位置情報集約部１３は、位置情報ｐ１から所定の距離以内に所在する位置情報ｐ２，ｐ４を関連位置情報として取得・保持し、図３（ｃ）に示すように、関連位置情報として取得した位置情報ｐ２，ｐ４のデータに、関連付けた代表位置情報のＩＤとして代表位置関連付け「１」を設定する。なお、位置情報の集約の条件として用いられる所定の距離は、例えば位置情報の測定精度等に基づいて決定され、例えば１００ｍといった値に設定される。
【００４５】
そして、位置情報集約部１３は、位置情報ｐ１，ｐ２，ｐ４の重心を算出し、算出した重心を集約位置とする集約位置情報ｐ´１を生成する。同様に、位置情報集約部１３は、集約位置情報ｐ´２，ｐ´３を生成する。図５に示す例では、集約位置情報ｐ´２，ｐ´３はそれぞれ、位置情報ｐ５，ｐ６に基づいて生成されている。図６は、こうして生成された集約位置情報ｐ´の例を示す図である。図６に示す例では、集約位置情報のデータとして、集約位置情報ｐ´のＩＤに対応付けて、緯度、経度及び被集約位置情報が記憶されている。被集約位置情報は、集約位置（重心）の算出に用いた位置情報のＩＤである。
【００４６】
また、位置情報集約部１３は、以上説明したように、異常位置情報が除去された後の位置情報ｐｉに対して位置情報ｐｉの集約処理を行うことに代えて、位置情報ｐｉを取得しながら、集約位置情報の算出を異常位置情報除去と共に逐次算出することができる。例えば、ｎ個の位置情報の重心位置を集約位置とする集約位置情報ｐ´ｋに対して、関連位置情報として位置情報ｐｍが追加された場合に、位置情報集約部１３は、集約位置情報ｐ´ｍを以下の式（２）により算出する。
ｐ´ｍ＝（ｎｐ´ｋ＋ｐｍ）／（ｎ＋１）  ・・・（２）
【００４７】
また、ｎ個の位置情報の重心位置を集約位置とする集約位置情報ｐ´ｋが算出された後に、ｎ個の位置情報のうちの位置情報ｐｋが異常位置情報として異常位置情報除去部１２により除去された場合には、位置情報集約部１３は、集約位置情報ｐ´ｍを以下の式（３）により算出する。
ｐ´ｍ＝（ｎｐ´ｋ−ｐｋ）／（ｎ−１）  ・・・（３）
これにより、位置情報集約部１３により位置情報集約の処理を、位置情報の取得に伴い逐次的に行うことが可能となる。
【００４８】
以上説明した位置情報集約部１３の処理により、一の位置情報の近傍の所定距離内に所在する位置情報が当該一の位置情報に集約され、集約された複数の位置情報の重心位置から集約位置情報が算出され、算出された集約位置情報が移動距離算出に用いられる。これにより、測位誤差によりユーザが静止している場合であっても細かく移動しているように見えてしまうような複数の位置情報が集約位置情報に集約されるので、移動距離の算出精度が向上する。
【００４９】
集約位置情報格納部１４は、位置情報集約部１３により生成された集約位置情報ｐ´ｉを格納する記憶手段であり、例えば、図６に示す集約位置情報ｐ´ｉを格納している。
【００５０】
異常集約位置情報除去部１５は、位置情報集約部１３により生成された集約位置情報から、異常集約位置情報を検出し、検出した異常集約位置情報を処理対象の位置情報から除去する部分である。図７を用いて、異常集約位置情報を検出するための異常集約位置情報検出条件を説明する。
【００５１】
図７は、時系列上において連続する３点の集約位置情報の例を示す図である。第１の異常集約位置情報検出条件は、時系列上において連続する３つの集約位置情報を集約位置情報ｐ´ｉ−１，ｐ´ｉ，ｐ´ｉ＋１としたときに、集約位置情報ｐ´ｉ−１と集約位置情報ｐ´ｉとを結ぶ直線に対して、集約位置情報ｐ´ｉと集約位置情報ｐ´ｉ＋１とを結ぶ直線が成す角度θ´ｉが、予め設定された所定の角度以下である場合に、当該集約位置情報ｐ´ｉを異常位置情報として検出するものである。角度θ´ｉ値は、ｐ´ｉを始点とｐ´ｉ−１を終点とするベクトル、及びｐ´ｉを始点とｐ´ｉ＋１を終点とするベクトルに基づいてアークコサイン値を算出することにより求められる。なお、第１の異常集約位置情報検出条件において異常集約位置情報の検出に用いられる所定の角度は、位置情報の測定精度等に基づいて決定され、例えば６０度といった値に設定される。
【００５２】
また、第２の異常集約位置情報検出条件は、図７に示すように、時系列上において連続する３つの集約位置情報を集約位置情報ｐ´ｉ−１，ｐ´ｉ，ｐ´ｉ＋１としたときに、集約位置情報ｐ´ｉ−１及び集約位置情報ｐ´ｉ間の距離と集約位置情報ｐ´ｉ及び集約位置情報ｐ´ｉ＋１間の距離の和の比が、予め設定された所定の閾値以上である場合に、当該集約位置情報ｐｉを異常集約位置情報として検出するものである。即ち、点ａと点ｂとの間の距離をｄｉｓ（ａ，ｂ）と表したときに、下記式（４）の値が所定の閾値以上である場合に、集約位置情報ｐ´ｉが異常集約位置情報として検出される。なお、２点間の距離の算出には、例えば、ヒュベニの距離計算式を用いることができる。
【数３】
2011117941.tif 000005
なお、第２の異常集約位置情報検出条件において異常集約位置情報の検出に用いられる所定の閾値は、位置情報の測定精度等に基づいて決定することができる。
【００５３】
異常集約位置情報除去部１５は、第１の異常集約位置情報検出条件及び第２の異常集約位置情報検出条件の両方に該当する集約位置情報を異常集約位置情報として検出することとしてもよいし、第１の異常集約位置情報検出条件及び第２の異常集約位置情報検出条件のいずれか一方に該当する集約位置情報を異常集約位置情報として検出することとしてもよい。なお集約位置情報ｐ´ｉの添え字ｉは、２以上且つ位置情報取得部１１により取得された位置情報数から２を減じた数以下の整数である。
【００５４】
異常集約位置情報除去部１５は、図８に示すように、異常集約位置情報として検出した集約位置情報のデータに対応付けて、異常集約位置情報フラグを設定する。図８では、異常集約位置情報が検出されなかった例を示している。異常集約位置情報フラグが設定された集約位置情報は、処理対象の位置情報から除去される。
【００５５】
移動軌跡判定部１６は、異常集約位置情報除去部１５から処理対象の位置情報を取得し、時系列上において連続する３つの位置情報を第１〜第３の位置情報としたときに、第１の位置情報と第２の位置情報とを結ぶ直線に対して、第２の位置情報と第３の位置情報とを結ぶ直線が成す角度である折れ角に基づいて、ユーザが曲線移動中であるか否かを位置情報毎に判定する部分である。本実施形態では、移動軌跡判定部１６における処理対象の位置情報は、異常集約位置情報除去部１５から取得された集約位置情報である。続いて、図８〜１１を用いて、移動軌跡判定部１６における判定処理を詳細に説明する。
【００５６】
図８は、異常集約位置情報除去部１５から取得された集約位置情報の例である。図９は、移動軌跡判定部１６における判定処理のアルゴリズムを示すフローチャートである。図１０は、図８に示す集約位置情報ｐ´ｉを時系列順に直線で結んだ状態を示す図である。図１０において、折れ角θ´ｉは、時系列上において連続する３つの集約位置情報ｐ´ｉ−１，ｐ´ｉ，ｐ´ｉ＋１に基づいて、集約位置情報ｐ´ｉ−１と集約位置情報ｐ´ｉとを結ぶ直線に対して、集約位置情報ｐ´ｉと集約位置情報ｐ´ｉ＋１を結ぶ直線が時計回りの方向に成す角度として形成されている。図１１は、曲線移動中と判定された集約位置情報のデータに曲線移動中フラグが設定された状態を示している。以下、図９を参照して、移動軌跡判定部１６における判定処理のアルゴリズムを詳細に説明する。
【００５７】
まず、移動軌跡判定部１６は、集約位置情報ｐ´１の曲線移動中フラグを１に設定することにより（図１１参照）集約位置情報ｐ´１を始点とし、変数ｊの値を４に設定した後に（Ｓ１１）、集約位置情報ｐ´１，ｐ´２，ｐ´３，・・・ｐ´ｊ，（ｊは４以上の整数）を取得する（Ｓ１２）。即ち、ステップ１２において、移動軌跡判定部１６は、集約位置情報ｐ´１〜ｐ´４を取得する。
【００５８】
次に、移動軌跡判定部１６は、連続する３点の集約位置情報ｐ´ｉ−１，ｐ´ｉ，ｐ´ｉ＋１（ｉは２〜（ｊ−１）の整数）に基づき、集約位置情報ｐ´ｉ−１と集約位置情報ｐ´ｉとを結ぶ直線に対して、集約位置情報ｐ´ｉと集約位置情報ｐ´ｉ＋１を結ぶ直線が成す角度として形成される折れ角θ´ｉを集約位置情報毎に求める（Ｓ１３）。
【００５９】
続いて、移動軌跡判定部１６は、折れ角θ´１，θ´２，θ´３，・・・θ´ｊ−１の積算角θを算出する（Ｓ１４）。そして、移動軌跡判定部１６は、積算角θの値が予め設定された第１の所定範囲に含まれるか否かを判定する（Ｓ１５）。具体的には、移動軌跡判定部１６は、下記式（５）が成立するか否かを判定する。
ＴＨ＿θ１≦｜θ｜≦ＴＨ＿θ２  ・・・（５）
【００６０】
第１の所定範囲の値としてのＴＨ＿θ１及びＴＨ＿θ２の値は、例えば、それぞれ６０°及び１２０°に設定されることができる。積算角θの値が予め設定された第１の所定範囲に含まれる場合には、処理手順はステップＳ１６に進められ、積算角θの値が予め設定された第１の所定範囲に含まれない場合には、処理手順はステップＳ２１に進められる。
【００６１】
続くステップＳ１６では、折れ角θ´ｊ−１の値が予め設定された第２の所定範囲に含まれるか否かを判定する（Ｓ１６）。具体的には、移動軌跡判定部１６は、下記式（６）が成立するか否かを判定する。
ＴＨ＿θ´１≦｜θ´ｊ−１｜≦ＴＨ＿θ´２  ・・・（６）
【００６２】
第２の所定範囲の値としてのＴＨ＿θ´１及びＴＨ＿θ´２の値は、例えば、それぞれ６０°及び１２０°に設定されることができる。なお、第２の所定範囲の値には、第１の所定範囲の値と同じ値を用いることとしてもよいし、異なる値を用いることとしてもよい。折れ角θ´ｊ−１の値が予め設定された第２の所定範囲に含まれる場合には、処理手順はステップＳ１７に進められ、折れ角θ´ｊ−１の値が予め設定された第２の所定範囲に含まれない場合には、処理手順はステップＳ１９に進められる。
【００６３】
ステップＳ１７において、移動軌跡判定部１６は、曲線移動中候補フラグに「１」が設定されているか否かを判定する（Ｓ１７）。曲線移動中候補フラグは、折れ角θ´ｉ（ｉ：２〜ｊ−１）を形成する集約位置情報ｐ´ｉ（ｉ：２〜ｊ−１）の中に、曲線移動中位置情報であると判定される可能性がある位置情報が含まれていることを示すフラグである。曲線移動中候補フラグに「１」が設定されている場合には、処理手順はステップＳ１９に進められ、曲線移動中候補フラグに「１」が設定されていない場合には、処理手順はステップＳ１８に進められる。
【００６４】
ステップＳ１８において、移動軌跡判定部１６は、曲線移動中候補フラグに「１」を設定する。一方、ステップＳ１９において、移動軌跡判定部１６は、折れ角θ´ｉ（ｉ：２〜ｊ−１）のうち、その絶対値が最大値又は当該最大値から予め設定された値θｗを減じた値以上となる折れ角θ´ｉを抽出し、抽出された折れ角θ´ｉを形成する集約位置情報ｐ´ｉの曲線移動中フラグを「１」に設定する（図１１参照）。曲線移動中フラグは、当該位置情報が曲線移動中位置情報であることを示す。また、曲線移動中位置情報は、当該位置情報に示される所在位置においてユーザが曲線移動中に測位された位置情報である。なお、上記値θｗは、例えば、５度に設定される。
【００６５】
続くステップＳ２０において、移動軌跡判定部１６は、曲線移動中候補フラグを「０」に設定すると共に、積算値θを「０」に設定することにより、処理を初期化する。一方、ステップＳ２１において、移動軌跡判定部１６は、変数ｊの値をインクリメントする。そして、処理手順は、ステップＳ１２に戻る。
【００６６】
ステップＳ１９において、曲線移動中フラグが設定されることにより、曲線移動中位置情報が抽出された後に処理が終了すると、移動軌跡判定部１６は、当該曲線移動中位置情報を始点として、ステップＳ１１からの判定処理を再び開始する。
【００６７】
以上説明したアルゴリズムでは、折れ角θｉの積算角θの値が第１の所定範囲に含まれる場合には、積算された折れ角θ２〜折れ角θｊ−１を形成するいずれかの位置情報ｐｉに示される位置において、曲線移動が行われているものと判断することができる。従って、折れ角θ２〜折れ角θｊ−１のうち絶対値が最大となる折れ角θｉ、及び当該最大値から予め設定された値θｗを減じた値以上となる折れ角θ´ｉを形成する位置情報ｐｉを曲線移動中の位置情報と判定することができる。これにより、ユーザが曲線移動中であるか、直線移動中であるかの判定が適切に行われる。
【００６８】
なお、以上説明した移動軌跡判定部１６における判定処理のアルゴリズムでは、ステップＳ１９において、折れ角θ´ｉ（ｉ：２〜ｊ−１）のうち、その絶対値が最大値又は当該最大値から予め設定された値θｗを減じた値以上となる折れ角θ´ｉを抽出し、抽出された折れ角θ´ｉを形成する集約位置情報ｐ´ｉの曲線移動中フラグを「１」に設定することとしているが、折れ角θ´ｉ（ｉ：２〜ｊ−１）のうち、その絶対値が最大値となる折れ角θ´ｉを抽出し、当該折れ角θ´ｉを形成する集約位置情報ｐ´ｉの曲線移動中フラグを「１」に設定することとしてもよい。
【００６９】
図１０に示した集約位置情報ｐ´ｉに、以上説明したアルゴリズムを適用すると以下のようになる。即ち、まず、集約位置情報ｐ´ｉ（ｉ：１〜４）に基づいて（Ｓ１２）、折れ角θ´２、θ´３の値がそれぞれ−３０°、＋３０°と求められる（Ｓ１３）。そして、積算角θは、０°（＝（−３０°）＋（＋３０°））となるので（Ｓ１４）、積算角θの値が第１の所定範囲に含まれない（Ｓ１５）。従って、処理手順は、ステップＳ２１を経由して、ステップＳ１２に戻る。
【００７０】
続いて、集約位置情報ｐ´ｉ（ｉ：１〜５）に基づき、折れ角θ´２、θ´３、θ´４（＝＋６０°）の値が求められる（Ｓ１３）。すると、積算角θは、＋６０°（＝（−３０°）＋（＋３０°）＋（＋６０°））となるので（Ｓ１４）、積算角θの値は、第１の所定範囲に含まれる（Ｓ１５）。さらに、折れ角θ´４（＝＋６０°）の値が第２の所定範囲に含まれるので、曲線移動中候補フラグに「１」が設定された後（Ｓ１７，Ｓ１８）、処理手順は、ステップＳ２１を経由して、ステップＳ１２に戻る。
【００７１】
続いて、集約位置情報ｐ´ｉ（ｉ：１〜６）に基づき、折れ角θ´２、θ´３、θ´４、θ´５（＝＋１０°）の値が求められる（Ｓ１３）。すると、積算角θは、＋７０°（＝（−３０°）＋（＋３０°）＋（＋６０°）＋（＋１０°））となるので（Ｓ１４）、積算角θの値は、第１の所定範囲に含まれる（Ｓ１５）。そして、折れ角θ´５（＝＋１０°）の値が第２の所定範囲に含まれないので、処理手順は、ステップＳ１９に進められる。ステップＳ１９において、折れ角θ´２、θ´３、θ´４、θ´５のうち、その値が、最大値又は当該最大値から５°を減じた値以上となる折れ角θ´４が抽出され、折れ角θ´４を形成する集約位置情報ｐ´４の曲線移動中フラグが「１」に設定される（図１１参照）。そして、曲線移動中候補フラグ及び積算値θが初期化され、判定処理が一旦終了する。この後に、曲線移動中位置情報と判定された集約位置情報ｐ´４を始点として、図９のフローチャートに示す処理が再び行われる。以上説明したアルゴリズムを用いて、全ての集約位置情報ｐ´ｉに対する判定処理を実施することにより、集約位置情報ｐ´６，ｐ´７，ｐ´８が、曲線移動中位置情報であると判定される。
【００７２】
ユーザが直線移動している場合において、その直線移動過程における集約位置情報ｐ´ｉにより形成される折れ角θ´ｉの値が、測位誤差等の理由により、方向転換をしたかのような大きい値となることがあるが、直線移動中における折れ角の積算角θは、直線移動を示すような一定の範囲に収まる。以上説明した移動軌跡判定部１６における判定処理のアルゴリズムでは、所定値を超える折れ角θ´ｉが検出された場合であっても、当該折れ角θ´ｉを形成する位置情報を曲線移動中位置情報の候補としておき、時系列上において当該折れ角θ´ｉ以降の折れ角θ´ｉ＋１を加算した積算角θの値が所定範囲に含まれるか否かにより、当該折れ角θ´ｉを形成する集約位置情報ｐ´ｉが曲線移動中位置情報であるか否かを判定することとしている。これにより、直線移動中の位置情報を曲線移動中と誤判定することが防止される。
【００７３】
再び図１を参照して、位置情報選択部１７は、移動軌跡判定部１６により曲線移動中と判定されなかった集約位置情報である直線移動中位置情報のうち少なくとも１つの直線移動中位置情報を除去し、除去されなかった直線移動中位置情報と、移動軌跡判定部１６により曲線移動中と判定された集約位置情報である曲線移動中位置情報とを、移動距離算出のための位置情報として選択する部分である。図１２及び図１３を用いて、位置情報選択部１７による位置情報の選択処理を具体的に説明する。
【００７４】
図１２は、移動距離算出のための位置情報として選択された集約位置情報のデータに位置情報選択フラグが設定された状態を示す図である。また、図１３は、移動距離算出のための位置情報として選択された集約位置情報を直線で結んだ軌跡を示す図である。
【００７５】
位置情報選択部１７は、例えば、曲線移動中位置情報のみを移動距離算出のための集約位置情報として選択する。そして、位置情報選択部１７は、図１２（ａ）に示すように、曲線判定フラグが「１」に設定された集約位置情報のデータに位置情報選択フラグ「１」を設定する。移動距離算出のための位置情報として選択された集約位置情報の移動軌跡は、図１３（ａ）の太線により示される。
【００７６】
この例では、全ての直線移動中位置情報が除去され、曲線移動中位置情報が移動距離算出のための位置情報として選択されるので、選択された位置情報を直線で結んで得られる軌跡は、ユーザの移動軌跡を適切に表したものとなる。また、全ての直線移動中位置情報が除去された上で移動距離の算出が行われるので、移動距離算出の処理負荷が軽減される。
【００７７】
また、位置情報選択部１７は、例えば、予め設定された所定数の直線移動中位置情報ごとに１つの直線移動中位置情報を選択し、選択された当該直線移動中位置情報と曲線移動中位置情報とを移動距離算出のための位置情報として選択することができる。本実施形態では、位置情報選択部１７は、例えば、２つの直線移動中位置情報ごとに１つの直線移動中位置情報を選択する。位置情報選択部１７は、図１２（ｂ）に示すように、選択した直線移動中位置情報、及び曲線移動中位置情報のデータに、位置情報選択フラグ「１」を設定する。移動距離算出のための位置情報として選択された集約位置情報の移動軌跡は、図１３（ｂ）の太線により示される。
【００７８】
この例では、一部の直線移動中位置情報と曲線移動中位置情報が移動距離算出のための位置情報として選択されるので、選択された位置情報を直線で結んで得られる軌跡は、ユーザの移動軌跡を適切に表したものとなる。一部の直線移動中位置情報が移動距離算出のための位置情報として用いられるので、移動距離算出の精度が向上する。また、ユーザが常に直線移動を行っている場合において、距離算出が行われないことが防止される。
【００７９】
なお、位置情報選択部１７は、時系列において最新の集約位置情報に代えて、時系列において最新の位置情報を移動距離算出のための位置情報として選択することとしてもよい。かかる位置情報の選択処理を、図１６を参照して説明する。図１６は、最新の位置情報が移動距離算出のための位置情報として選択される例を示す図である。
【００８０】
図１６（ａ）に示すように、新たに取得された位置情報ｐ１６に基づき、位置情報集約部１３により新たな集約位置情報ｐ´８が生成された場合に、位置情報選択部１７は、最新の集約位置情報ｐ´８に代えて、最新の位置情報ｐ１６を移動距離算出のための位置情報として選択する。
【００８１】
続けて、図１６（ｂ）に示すように、さらに位置情報ｐ１７が取得され、位置情報ｐ１６及びｐ１７に基づき集約位置情報ｐ´８が生成された場合には、位置情報選択部１７は、最新の位置情報ｐ１７を移動距離算出のための位置情報として選択する。
【００８２】
このように、集約位置情報に代えて、時系列において最新の位置情報を移動距離算出のための位置情報として利用することにより、算出される移動距離のリアルタイム性が向上し、短距離の移動における移動距離算出の精度が向上する。
【００８３】
移動距離算出部１８は、位置情報選択部１７により選択された処理対象の位置情報に基づいて、位置情報間の距離を算出し、算出された位置情報間の距離を積算することにより、ユーザの移動距離を算出する部分である。具体的には、移動距離算出部１８は、図１３（ａ）または図１３（ｂ）において太線に示された移動軌跡の長さを算出する。図１４は、移動距離算出部１８により算出された移動距離のデータの例を示す図である。移動距離算出部１８は、算出した移動距離のデータを移動距離格納部１９に記憶させる。移動距離格納部１９は、移動距離算出部１８により算出された移動距離のデータを格納する記憶手段である。
【００８４】
処理結果出力部２０は、移動距離算出部１８により算出されたユーザの移動距離を出力する部分である。例えば、移動距離算出装置１が移動端末や携帯電話といった装置により構成される場合には、処理結果出力部２０は、例えばディスプレイといった出力装置１０７により構成される。また、移動距離算出装置１が他の装置から移動距離算出の処理要求を受け付けて、処理要求に応じて算出した移動距離を返信するようなサーバ装置により構成される場合には、処理結果出力部２０は、処理要求の要求元に対して移動距離のデータを送信する送信手段である。
【００８５】
続いて、図１５を参照して、本実施形態の移動距離算出方法における移動距離算出装置１の動作について説明する。図１５は、移動距離算出装置１において実施される処理内容を示すフローチャートである。
【００８６】
まず、位置情報取得部１１は、複数の位置情報を位置情報格納部１０から取得する（Ｓ１、位置情報取得ステップ）。次に、異常位置情報除去部１２は、位置情報取得部１１により取得された位置情報から、異常位置情報を検出し、検出した異常位置情報を処理対象の位置情報から除去する（Ｓ２）。
【００８７】
続いて、位置情報集約部１３は、異常位置情報除去部１２から処理対象の位置情報を取得し、取得した位置情報から一の位置情報を代表位置情報として選択し、代表位置情報から予め設定された所定の距離以内に所在する位置情報を関連位置情報として保持し、代表位置情報及び関連位置情報の重心位置を算出し、算出した重心位置を集約位置とする集約位置情報を生成する（Ｓ３）。さらに、異常集約位置情報除去部１５は、位置情報集約部１３により生成された集約位置情報から、異常集約位置情報を検出し、検出した異常集約位置情報を処理対象の位置情報から除去する（Ｓ４）。
【００８８】
次に、移動軌跡判定部１６は、異常集約位置情報除去部１５から処理対象の位置情報を取得し、時系列上において連続する３つの位置情報により形成される折れ角に基づいて、ユーザが曲線移動中であるか否かを位置情報毎に判定する（Ｓ５、移動軌跡判定ステップ）。ステップＳ５において行われる処理のアルゴリズムは、図９のフローチャートにより示される。
【００８９】
次に、位置情報選択部１７は、移動軌跡判定部１６により曲線移動中と判定されなかった集約位置情報である直線移動中位置情報のうち少なくとも１つの直線移動中位置情報を除去し、除去されなかった直線移動中位置情報と、移動軌跡判定部１６により曲線移動中と判定された集約位置情報である曲線移動中位置情報とを、移動距離算出のための位置情報として選択する（Ｓ６、位置情報選択ステップ）。
【００９０】
続いて、移動距離算出部１８は、位置情報選択部１７により選択された処理対象の位置情報に基づいて、位置情報間の距離を算出し、算出された位置情報間の距離を積算することにより、ユーザの移動距離を算出する（Ｓ７、移動距離算出ステップ）。そして、処理結果出力部２０は、移動距離算出部１８により算出されたユーザの移動距離を出力する（Ｓ８、処理結果出力ステップ）。こうして、本実施形態の処理を終了する。
【００９１】
以上説明した実施形態の移動距離算出装置１では、時系列上で連続する３点の位置情報により形成される折れ角に基づいて、ユーザが曲線移動中であるか、直線移動中であるかが位置情報ごとに判定され、直線移動中と判定された位置情報の１つ以上が除去され、除去されなかった直線移動中の位置情報と、曲線移動中と判定された位置情報とが処理対象の位置情報として選択される。このように選択された位置情報に基づくユーザの移動軌跡は、直線移動中において方向転換をしているかのような誤差が排除されたものとなる。従って、かかる位置情報に基づいてユーザの移動距離を算出することにより、移動距離算出の精度が向上する。
【００９２】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００９３】
例えば、本実施形態では、位置情報取得部１１により取得された位置情報に対して、異常位置情報除去部１２による異常位置情報の除去処理、位置情報集約部１３による位置情報の集約処理、及び異常集約位置情報除去部１５による異常集約位置情報の除去処理を実施し、それらの処理の結果として処理対象とされた位置情報について移動軌跡判定部１６による判定処理が行われることとしているが、これには限定されない。例えば、位置情報取得部１１により取得された位置情報に対して、移動軌跡判定部１６による判定処理が行われることとしてもよい。
【００９４】
また、異常位置情報除去部１２による異常位置情報の除去処理、位置情報集約部１３による位置情報の集約処理、及び異常集約位置情報除去部１５による異常集約位置情報の除去処理のうち、いずれか１つまたは複数の処理が実施されることとしてもよい。
【符号の説明】
【００９５】
１…移動距離算出装置、１０…位置情報格納部、１１…位置情報取得部、１２…異常位置情報除去部、１３…位置情報集約部、１４…集約位置情報格納部、１５…異常集約位置情報除去部、１６…移動軌跡判定部、１７…位置情報選択部、１８…移動距離算出部、１９…移動距離格納部、２０…処理結果出力部。
【図１】
2011117941.tif 000006
【図２】
2011117941.tif 000007
【図３】
2011117941.tif 000008
【図４】
2011117941.tif 000009
【図５】
2011117941.tif 000010
【図６】
2011117941.tif 000011
【図７】
2011117941.tif 000012
【図８】
2011117941.tif 000013
【図９】
2011117941.tif 000014
【図１０】
2011117941.tif 000015
【図１１】
2011117941.tif 000016
【図１２】
2011117941.tif 000017
【図１３】
2011117941.tif 000018
【図１４】
2011117941.tif 000019
【図１５】
2011117941.tif 000020
【図１６】
2011117941.tif 000021