(57)【要約】課題  大量の車両からイベントデータが送信される場合であっても、マップマッチング結果に基づく解析の精度を落とさないようにしつつ高速にマップマッチングを行うことができる汎用的なマップマッチングシステムを提供する。解決手段  グリッド道路生成手段８は、道路ネットワーク記憶手段２に記憶されているデータに基づいて、道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割した各グリッドを生成する。そして、通過する道路の集合が同一であるグリッドを統合する。イベントグリッドマッチ手段４０１は、車両から収集するイベントデータとグリッドとを対応付ける。イベント処理優先度判定手段４０２は、グリッドに対応付けられたイベントデータが多い場合には、その一部を選択する。イベント道路マッチ手段４０３は、選択されたイベントデータと、グリッド内の道路とを対応付ける。
2008117787.tif 000002
【特許請求の範囲】
【請求項１】
交差点であるノードの位置と、交差点を始点および終点とする道路であるアークとによって道路網を表したデータを記憶する道路ネットワーク記憶手段と、
道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割したグリッドを導出し、グリッドとグリッドを通過するアークとを対応付ける道路グリッド分割手段と、
互いに隣接していて対応付けられているアークの集合が一致する複数のグリッドに対して共通のアークＩＤを割り当て、対応付けられているアークの集合が隣接するいずれのグリッドとも異なるグリッドに対してアークＩＤを割り当て、道路グリッド分割手段によって導出されたグリッドの範囲とグリッドＩＤとグリッドを通過するアークとの関係を示す情報を記憶装置に記憶させるグリッド道路結合手段と、
車両の位置および状態を表すイベントデータを受信するイベント収集手段と、
前記記憶装置が記憶する情報を参照して、イベント収集手段が受信したイベントデータに含まれる生成位置が属するグリッドのグリッドＩＤを特定し、グリッドＩＤとイベントデータとを対応付けた情報を生成するイベントグリッドマッチ手段と、
イベントグリッドマッチ手段によってイベントデータと対応付けられたグリッドＩＤ毎に、対応付けられたイベントデータの数が閾値よりも多ければ当該閾値の数のイベントデータを選択し、対応付けられたイベントデータの数が閾値以下であれば対応付けられたイベントデータを全て選択するイベントデータ選択手段と、
イベントデータ選択手段によって選択された各イベントデータ毎に、イベントデータに対応するグリッドＩＤに対応付けられているアークの中からイベントデータの生成位置に最も近いアークを特定するイベント道路マッチ手段と、
イベント道路マッチ手段によって特定されたアークとイベントデータとの対応関係を示す情報を記憶するイベント道路記憶手段とを備えた
ことを特徴とするマップマッチングシステム。
【請求項２】
グリッドＩＤに対応するアークの数が多いほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値をグリッドＩＤ毎に定める閾値制御手段を備えた
請求項１に記載のマップマッチングシステム。
【請求項３】
道路ネットワーク記憶手段が記憶するデータに基づいて各グリッドＩＤに対応するグリッド内のアークの長さを算出し、グリッドＩＤに対応するグリッド内のアークの長さが長いほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値をグリッドＩＤ毎に定める閾値制御手段を備えた
請求項１に記載のマップマッピングシステム。
【請求項４】
イベントグリッドマッチ手段によって生成されたグリッドＩＤとイベントデータとを対応付けた情報を参照して、グリッドＩＤ毎に、グリッドＩＤに対応するイベントデータ中の速度のばらつきの度合いを計算するイベント分布分析手段と、
速度のばらつきの度合いが大きいほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値をグリッドＩＤ毎に定める閾値制御手段を備えた
請求項１に記載のマップマッチングシステム。
【請求項５】
イベント分布分析手段は、速度のばらつきの度合いとして分散を計算する請求項４に記載のマップマッチングシステム。
【請求項６】
イベントグリッドマッチ手段、イベントデータ選択手段およびイベント道路マッチ手段がコンピュータによって実現され、
前記コンピュータの負荷が大きいほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値を定める閾値制御手段を備えた
請求項１に記載のマップマッチングシステム。
【請求項７】
コンピュータの負荷が低いほど大きな値になるように定められた負荷に応じた処理数を記憶し、コンピュータの負荷を監視して負荷に応じた処理数を特定する負荷情報記憶手段を備え、
閾値制御手段は、負荷に応じた処理数を総アーク数で除算した値を計算し、グリッドＩＤ毎に、グリッドＩＤに対応するアークの数に前記除算の結果を乗じた値以下の値として閾値を定める
請求項６に記載のマップマッチングシステム。
【請求項８】
イベント収集手段が受信するイベントデータの数が増加傾向にあるか減少傾向にあるかを判定する監視手段と、
イベント収集手段が受信するイベントデータの数が増加傾向にあるか減少傾向にあるかに応じてイベントデータ選択手段が使用する閾値を変動させる閾値制御手段を備えた
請求項１に記載のマップマッチングシステム。
【請求項９】
監視手段は、一定期間毎にイベントデータの数をカウントし、カウント結果から１つ前のカウント結果を減じた差分が正であることが連続している場合に増加傾向であると判定し、その差分が負であることが連続している場合に減少傾向であると判定する
請求項８に記載のマップマッチングシステム。
【請求項１０】
イベントグリッドマッチ手段は、
イベント収集手段が受信したイベントデータを一時的に記憶するイベント記憶手段と、
イベント記憶手段に記憶されたイベントデータであってグリッドＩＤとの対応付けの処理対象となるイベントデータを記憶する処理対象イベント記憶手段と、
記憶装置が記憶する情報を参照して、処理対象イベント記憶手段に記憶されたイベントデータに含まれる生成位置を含むグリッドのグリッドＩＤを特定し、グリッドＩＤとイベントデータとを対応付けた情報を生成するマッチング手段とを有する
請求項１から請求項９のうちのいずれか１項に記載されたマップマッピングシステム。
【請求項１１】
イベント道路記憶手段に記憶された情報に基づいて交通状況の解析を行うイベント解析手段を備えた
請求項１から請求項１０のうちのいずれか１項に記載されたマップマッピングシステム。
【請求項１２】
道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割した各グリッドの範囲と、道路であるアークの集合が共通であるグリッドの集合毎に一意に割り当てられるグリッドＩＤと、グリッドを通過するアークとの関係を示す情報を記憶する道路データ記憶装置にアクセス可能なマップマッピング装置であって、
車両の位置および状態を表すイベントデータを受信するイベント収集手段と、
道路データ記憶装置が記憶する情報を参照して、イベント収集手段が受信したイベントデータに含まれる生成位置が属するグリッドのグリッドＩＤを特定し、グリッドＩＤとイベントデータとを対応付けた情報を生成するイベントグリッドマッチ手段と、
イベントグリッドマッチ手段によってイベントデータと対応付けられたグリッドＩＤ毎に、対応付けられたイベントデータの数が閾値よりも多ければ当該閾値の数のイベントデータを選択し、対応付けられたイベントデータの数が閾値以下であれば対応付けられたイベントデータを全て選択するイベントデータ選択手段と、
イベントデータ選択手段によって選択された各イベントデータ毎に、イベントデータに対応するグリッドＩＤに対応付けられているアークの中からイベントデータの生成位置に最も近いアークを特定するイベント道路マッチ手段と、
イベント道路マッチ手段によって特定されたアークとイベントデータとの対応関係を示す情報を記憶するイベント道路記憶手段とを備えた
ことを特徴とするマップマッピング装置。
【請求項１３】
グリッドＩＤに対応するアークの数が多いほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値をグリッドＩＤ毎に定める閾値制御手段を備えた
請求項１２に記載のマップマッピング装置。
【請求項１４】
各グリッドＩＤに対応するグリッド内のアークの長さを算出し、グリッドＩＤに対応するグリッド内のアークの長さが長いほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値をグリッドＩＤ毎に定める閾値制御手段を備えた
請求項１２に記載のマップマッピング装置。
【請求項１５】
イベントグリッドマッチ手段によって生成されたグリッドＩＤとイベントデータとを対応付けた情報を参照して、グリッドＩＤ毎に、グリッドＩＤに対応するイベントデータ中の速度のばらつきの度合いを計算するイベント分布分析手段と、
速度のばらつきの度合いが大きいほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値をグリッドＩＤ毎に定める閾値制御手段を備えた
請求項１２に記載のマップマッピング装置。
【請求項１６】
マップマッピング装置の負荷が大きいほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値を定める閾値制御手段を備えた
請求項１２に記載のマップマッピング装置。
【請求項１７】
イベント収集手段が受信するイベントデータの数が増加傾向にあるか減少傾向にあるかを判定する監視手段と、
イベント収集手段が受信するイベントデータの数が増加傾向にあるか減少傾向にあるかに応じてイベントデータ選択手段が使用する閾値を変動させる閾値制御手段を備えた
請求項１２に記載のマップマッピング装置。
【請求項１８】
交差点であるノードの位置と、交差点を始点および終点とする道路であるアークとによって道路網を表したデータを記憶する道路ネットワーク記憶手段にアクセス可能であり、マップマッチングに利用されるデータを生成する道路データ生成装置であって、
道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割したグリッドを導出し、グリッドとグリッドを通過するアークとを対応付ける道路グリッド分割手段と、
互いに隣接していて対応付けられているアークの集合が一致する複数のグリッドに対して共通のアークＩＤを割り当て、対応付けられているアークの集合が隣接するいずれのグリッドとも異なるグリッドに対してアークＩＤを割り当て、道路グリッド分割手段によって導出されたグリッドの範囲とグリッドＩＤとグリッドを通過するアークとの関係を示す情報を生成するグリッド道路結合手段とを備えた
ことを特徴とする道路データ生成装置。
【請求項１９】
道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割した各グリッドの範囲と、道路であるアークの集合が共通であるグリッドの集合毎に一意に割り当てられるグリッドＩＤと、グリッドを通過するアークとの関係を示す情報を記憶する道路データ記憶装置にアクセス可能なマップマッピング装置に適用されるマップマッピング方法であって、
イベント収集手段が、車両の位置および状態を表すイベントデータを受信し、
イベントグリッドマッチ手段が、道路データ記憶装置が記憶する情報を参照して、イベント収集手段が受信したイベントデータに含まれる生成位置が属するグリッドのグリッドＩＤを特定し、グリッドＩＤとイベントデータとを対応付けた情報を生成し、
イベントデータ選択手段が、イベントグリッドマッチ手段によってイベントデータと対応付けられたグリッドＩＤ毎に、対応付けられたイベントデータの数が閾値よりも多ければ当該閾値の数のイベントデータを選択し、対応付けられたイベントデータの数が閾値以下であれば対応付けられたイベントデータを全て選択し、
イベント道路マッチ手段が、イベントデータ選択手段によって選択された各イベントデータ毎に、イベントデータに対応するグリッドＩＤに対応付けられているアークの中からイベントデータの生成位置に最も近いアークを特定する
ことを特徴とするマップマッピング方法。
【請求項２０】
閾値制御手段が、グリッドＩＤに対応するアークの数が多いほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値をグリッドＩＤ毎に定める
請求項１９に記載のマップマッピング方法。
【請求項２１】
閾値制御手段が、各グリッドＩＤに対応するグリッド内のアークの長さを算出し、グリッドＩＤに対応するグリッド内のアークの長さが長いほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値をグリッドＩＤ毎に定める
請求項１９に記載のマップマッピング方法。
【請求項２２】
イベント分布分析手段が、イベントグリッドマッチ手段によって生成されたグリッドＩＤとイベントデータとを対応付けた情報を参照して、グリッドＩＤ毎に、グリッドＩＤに対応するイベントデータ中の速度のばらつきの度合いを計算し、
閾値制御手段が、速度のばらつきの度合いが大きいほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値をグリッドＩＤ毎に定める
請求項１９に記載のマップマッピング方法。
【請求項２３】
閾値制御手段が、マップマッピング装置の負荷が大きいほど閾値が大きくなるように、イベントデータ選択手段が使用する閾値を定める
請求項１９に記載のマップマッピング方法。
【請求項２４】
監視手段が、イベント収集手段が受信するイベントデータの数が増加傾向にあるか減少傾向にあるかを判定し、
閾値制御手段が、イベント収集手段が受信するイベントデータの数が増加傾向にあるか減少傾向にあるかに応じてイベントデータ選択手段が使用する閾値を変動させる
請求項１９に記載のマップマッピング方法。
【請求項２５】
道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割した各グリッドの範囲と、道路であるアークの集合が共通であるグリッドの集合毎に一意に割り当てられるグリッドＩＤと、グリッドを通過するアークとの関係を示す情報を記憶する道路データ記憶装置にアクセス可能なコンピュータに搭載されるマップマッピングプログラムであって、
コンピュータに、
車両の位置および状態を表すイベントデータを受信するイベント収集処理、
道路データ記憶装置が記憶する情報を参照して、受信したイベントデータに含まれる生成位置が属するグリッドのグリッドＩＤを特定し、グリッドＩＤとイベントデータとを対応付けた情報を生成するイベントグリッドマッチ処理、
イベントグリッドマッチ処理でイベントデータと対応付けられたグリッドＩＤ毎に、対応付けられたイベントデータの数が閾値よりも多ければ当該閾値の数のイベントデータを選択し、対応付けられたイベントデータの数が閾値以下であれば対応付けられたイベントデータを全て選択するイベントデータ選択処理、および
イベントデータ選択処理で選択された各イベントデータ毎に、イベントデータに対応するグリッドＩＤに対応付けられているアークの中からイベントデータの生成位置に最も近いアークを特定するイベント道路マッチ処理
を実行させるためのマップマッピングプログラム。
【請求項２６】
コンピュータに、
グリッドＩＤに対応するアークの数が多いほど閾値が大きくなるように、イベントデータ選択処理で使用する閾値をグリッドＩＤ毎に定める閾値制御処理
を実行させる請求項２５に記載のマップマッピングプログラム。
【請求項２７】
コンピュータに、
各グリッドＩＤに対応するグリッド内のアークの長さを算出し、グリッドＩＤに対応するグリッド内のアークの長さが長いほど閾値が大きくなるように、イベントデータ選択処理で使用する閾値をグリッドＩＤ毎に定める閾値制御処理
を実行させる請求項２５に記載のマップマッピングプログラム。
【請求項２８】
コンピュータに、
イベントグリッドマッチ処理で生成されたグリッドＩＤとイベントデータとを対応付けた情報を参照して、グリッドＩＤ毎に、グリッドＩＤに対応するイベントデータ中の速度のばらつきの度合いを計算するイベント分布分析処理、
速度のばらつきの度合いが大きいほど閾値が大きくなるように、イベントデータ選択処理で使用する閾値をグリッドＩＤ毎に定める閾値制御処理
を実行させる請求項２５に記載のマップマッピングプログラム。
【請求項２９】
コンピュータに、
当該コンピュータの負荷が大きいほど閾値が大きくなるように、イベントデータ選択処理で使用する閾値を定める閾値制御処理
を実行させる請求項２５に記載のマップマッピングプログラム。
【請求項３０】
コンピュータに、
受信するイベントデータの数が増加傾向にあるか減少傾向にあるかを判定する監視処理、
受信するイベントデータの数が増加傾向にあるか減少傾向にあるかに応じてイベントデータ選択処理で使用する閾値を変動させる閾値制御処理
を実行させる請求項２５に記載のマップマッピングプログラム。
【請求項３１】
交差点であるノードの位置と、交差点を始点および終点とする道路であるアークとによって道路網を表したデータを記憶する道路ネットワーク記憶装置にアクセス可能なコンピュータに搭載される道路データ生成プログラムであって、
コンピュータに、
道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割したグリッドを導出し、グリッドとグリッドを通過するアークとを対応付ける道路グリッド分割処理、および
互いに隣接していて対応付けられているアークの集合が一致する複数のグリッドに対して共通のアークＩＤを割り当て、対応付けられているアークの集合が隣接するいずれのグリッドとも異なるグリッドに対してアークＩＤを割り当て、道路グリッド分割処理で導出されたグリッドの範囲とグリッドＩＤとグリッドを通過するアークとの関係を示す情報を生成するグリッド道路結合処理
を実行させるための道路データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に関するデータを道路のデータと対応付ける処理を行うマップマッチングシステム、マップマッチング方法、マップマッチングシステムに適用されるマップマッチング装置、道路データ生成装置、マップマッチングプログラムおよび道路データ生成プログラムに関し、特に、高速に処理を行うことができるマップマッチングシステム、マップマッチング方法、マップマッチングシステムに適用されるマップマッチング装置、道路データ生成装置、マップマッチングプログラムおよび道路データ生成プログラムに関する。
【背景技術】
【０００２】
多数の車両からの大量のイベントデータを高速に地図にマッチさせる処理として、イベントデータの量をうまく減らす方法（特許文献１参照。）や、マッチングさせる道路の候補をうまく減らす方法（特許文献２参照。）が提案されている。なお、イベントデータとは、車両の位置および状態を表すデータである。【０００３】
特許文献１には、イベントの発生源である車両側で、サーバへアップロードするデータを絞り込む方法が記載されている。特許文献１に記載された絞り込み方法では、道の曲率などの形状をデータとして持っておき、サンプリングレートを制御する。例えば、直線を走っている場合は、サンプリングレートを低くすることでデータ量を抑える。【０００４】
また、特許文献２には、後者の例として、道路を最上位層（主要道路網）、中位層（５．５ｍ幅以上の道路網）、最下位層（全道路網）にあらかじめ分類しておき、最上位層からマッチングさせることが記載されている。特許文献２に記載された方法では、マッチング結果がある条件を満たさない場合には、より下位の層へのマッチングを試みることで高速化を図る。【０００５】
また、特許文献３には、所定の地理的範囲を複数に分割したメッシュデータを用いたナビゲーションシステムが記載されている。特許文献４には、平均車速を算出して渋滞度を算出するシステムが記載されている。【０００６】
【特許文献１】特開２００４−２８０５２１号公報
【特許文献２】特開２００４−３５４３９５号公報
【特許文献３】特開２００４−１７７３６４号公報
【特許文献４】特開２００５−３０１６４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載された方法は、各車両の走行軌跡をより正確に生成することを目的に車両からのイベントデータを活用しているので実現できる方法であるといえる。しかし、そのような方法では、イベントデータを他の用途に活用できない。例えば、イベントデータから渋滞情報を推定しようとする場合、各車両はまわりの車両との関係を認識してはじめてサンプリングレートを制御できるが、特許文献１に記載の方法では、道の曲率のような固定的な情報からしかサンプリングレートを算出していない。そのため、渋滞情報の推定に特許文献１に記載された方法は適用できない。【０００８】
走行軌跡を正確に把握するという特定の目的にのみ利用可能ではなく、交通状況に関する種々の解析に利用可能であることが好ましい。さらに、大量（例えば数万台）の車両からイベントデータが送信される場合であっても、高速にイベントデータと道路の対応付けを行えることが好ましい。【０００９】
特許文献２に記載の方法では、下位の層ほど高速化の効果は弱くなり、最下位層とのマッチング行う場合には高速化の効果を得られない。従って、下位の層の車両のイベントデータを活用する場合には、高速化の効果を得られない。例えば、長距離の経路で到着時間を推定する解析を行う場合、車両は主要な道路を利用するために特許文献２に記載された方法で高速に処理を行うことができるが、生活道路などを利用した車両の到着時間を推定する場合には高速化の効果を得られない。【００１０】
そこで、本発明は、大量の車両からイベントデータが送信される場合であっても、マップマッチング結果に基づく解析の精度を落とさないようにしつつ高速にマップマッチングを行うことができ、特定の用途に限定されない汎用的なマップマッチングシステム、マップマッチング方法、そのようなマップマッチングシステムに適用されるマップマッチング装置、道路データ生成装置、マップマッチングプログラムおよび道路データ作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のマップマッチングシステムは、交差点であるノードの位置と、交差点を始点および終点とする道路であるアークとによって道路網を表したデータを記憶する道路ネットワーク記憶手段と、道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割したグリッドを導出し、グリッドとグリッドを通過するアークとを対応付ける道路グリッド分割手段と、互いに隣接していて対応付けられているアークの集合が一致する複数のグリッドに対して共通のアークＩＤを割り当て、対応付けられているアークの集合が隣接するいずれのグリッドとも異なるグリッドに対してアークＩＤを割り当て、道路グリッド分割手段によって導出されたグリッドの範囲とグリッドＩＤとグリッドを通過するアークとの関係を示す情報を記憶装置に記憶させるグリッド道路結合手段と、車両の位置および状態を表すイベントデータを受信するイベント収集手段と、その記憶装置が記憶する情報を参照して、イベント収集手段が受信したイベントデータに含まれる生成位置が属するグリッドのグリッドＩＤを特定し、グリッドＩＤとイベントデータとを対応付けた情報を生成するイベントグリッドマッチ手段と、イベントグリッドマッチ手段によってイベントデータと対応付けられたグリッドＩＤ毎に、対応付けられたイベントデータの数が閾値よりも多ければその閾値の数のイベントデータを選択し、対応付けられたイベントデータの数が閾値以下であれば対応付けられたイベントデータを全て選択するイベントデータ選択手段と、イベントデータ選択手段によって選択された各イベントデータ毎に、イベントデータに対応するグリッドＩＤに対応付けられているアークの中からイベントデータの生成位置に最も近いアークを特定するイベント道路マッチ手段と、イベント道路マッチ手段によって特定されたアークとイベントデータとの対応関係を示す情報を記憶するイベント道路記憶手段とを含む。【００１２】
本発明のマップマッピング装置は、道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割した各グリッドの範囲と、道路であるアークの集合が共通であるグリッドの集合毎に一意に割り当てられるグリッドＩＤと、グリッドを通過するアークとの関係を示す情報を記憶する道路データ記憶装置にアクセス可能なマップマッピング装置であって、車両の位置および状態を表すイベントデータを受信するイベント収集手段と、道路データ記憶装置が記憶する情報を参照して、イベント収集手段が受信したイベントデータに含まれる生成位置が属するグリッドのグリッドＩＤを特定し、グリッドＩＤとイベントデータとを対応付けた情報を生成するイベントグリッドマッチ手段と、イベントグリッドマッチ手段によってイベントデータと対応付けられたグリッドＩＤ毎に、対応付けられたイベントデータの数が閾値よりも多ければその閾値の数のイベントデータを選択し、対応付けられたイベントデータの数が閾値以下であれば対応付けられたイベントデータを全て選択するイベントデータ選択手段と、イベントデータ選択手段によって選択された各イベントデータ毎に、イベントデータに対応するグリッドＩＤに対応付けられているアークの中からイベントデータの生成位置に最も近いアークを特定するイベント道路マッチ手段と、イベント道路マッチ手段によって特定されたアークとイベントデータとの対応関係を示す情報を記憶するイベント道路記憶手段とを含む。【００１３】
本発明の道路データ生成装置は、交差点であるノードの位置と、交差点を始点および終点とする道路であるアークとによって道路網を表したデータを記憶する道路ネットワーク記憶手段にアクセス可能であり、マップマッチングに利用されるデータを生成する道路データ生成装置であって、道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割したグリッドを導出し、グリッドとグリッドを通過するアークとを対応付ける道路グリッド分割手段と、互いに隣接していて対応付けられているアークの集合が一致する複数のグリッドに対して共通のアークＩＤを割り当て、対応付けられているアークの集合が隣接するいずれのグリッドとも異なるグリッドに対してアークＩＤを割り当て、道路グリッド分割手段によって導出されたグリッドの範囲とグリッドＩＤとグリッドを通過するアークとの関係を示す情報を生成するグリッド道路結合手段とを含む。【００１４】
本発明のマップマッピング方法は、道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割した各グリッドの範囲と、道路であるアークの集合が共通であるグリッドの集合毎に一意に割り当てられるグリッドＩＤと、グリッドを通過するアークとの関係を示す情報を記憶する道路データ記憶装置にアクセス可能なマップマッピング装置に適用されるマップマッピング方法であって、イベント収集手段が、イベント収集手段が、車両の位置および状態を表すイベントデータを受信し、イベントグリッドマッチ手段が、道路データ記憶装置が記憶する情報を参照して、イベント収集手段が受信したイベントデータに含まれる生成位置が属するグリッドのグリッドＩＤを特定し、グリッドＩＤとイベントデータとを対応付けた情報を生成し、イベントデータ選択手段が、イベントグリッドマッチ手段によってイベントデータと対応付けられたグリッドＩＤ毎に、対応付けられたイベントデータの数が閾値よりも多ければその閾値の数のイベントデータを選択し、対応付けられたイベントデータの数が閾値以下であれば対応付けられたイベントデータを全て選択し、イベント道路マッチ手段が、イベントデータ選択手段によって選択された各イベントデータ毎に、イベントデータに対応するグリッドＩＤに対応付けられているアークの中からイベントデータの生成位置に最も近いアークを特定する。【００１５】
本発明のマップマッピングプログラムは、道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割した各グリッドの範囲と、道路であるアークの集合が共通であるグリッドの集合毎に一意に割り当てられるグリッドＩＤと、グリッドを通過するアークとの関係を示す情報を記憶する道路データ記憶装置にアクセス可能なコンピュータに搭載されるマップマッピングプログラムであって、コンピュータに、車両の位置および状態を表すイベントデータを受信するイベント収集処理、道路データ記憶装置が記憶する情報を参照して、受信したイベントデータに含まれる生成位置が属するグリッドのグリッドＩＤを特定し、グリッドＩＤとイベントデータとを対応付けた情報を生成するイベントグリッドマッチ処理、イベントグリッドマッチ処理でイベントデータと対応付けられたグリッドＩＤ毎に、対応付けられたイベントデータの数が閾値よりも多ければその閾値の数のイベントデータを選択し、対応付けられたイベントデータの数が閾値以下であれば対応付けられたイベントデータを全て選択するイベントデータ選択処理、およびイベントデータ選択処理で選択された各イベントデータ毎に、イベントデータに対応するグリッドＩＤに対応付けられているアークの中からイベントデータの生成位置に最も近いアークを特定するイベント道路マッチ処理を実行させる。【００１６】
本発明の道路データ生成プログラムは、交差点であるノードの位置と、交差点を始点および終点とする道路であるアークとによって道路網を表したデータを記憶する道路ネットワーク記憶装置にアクセス可能なコンピュータに搭載される道路データ生成プログラムであって、コンピュータに、道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割したグリッドを導出し、グリッドとグリッドを通過するアークとを対応付ける道路グリッド分割処理、および互いに隣接していて対応付けられているアークの集合が一致する複数のグリッドに対して共通のアークＩＤを割り当て、対応付けられているアークの集合が隣接するいずれのグリッドとも異なるグリッドに対してアークＩＤを割り当て、道路グリッド分割処理で導出されたグリッドの範囲とグリッドＩＤとグリッドを通過するアークとの関係を示す情報を生成するグリッド道路結合処理を実行させる。
【発明の効果】
【００１７】
本発明によれば、イベントＩＤ毎に行う処理の処理量を削減し、また、イベントデータ毎に行われるイベント道路マッチ手段の処理量を削減することができる。よって、処理を高速化することができる。【００１８】
また、同じ道路を走っている車両のイベントデータには類似していることが多いので、グリッドＩＤに対応付けられたイベントデータの中から閾値の数のイベントデータを選択したとしても、解析の精度を維持することができる。従って、大量の車両からイベントデータが送信される場合であっても、マップマッチング結果に基づく解析の精度を落とさないようにしつつ高速にマップマッチングを行うことができる。また、イベント道路マッチ手段によってアークが特定されたイベントデータとそのアークとの対応関係を示す情報の利用目的は限定されないので、種々の解析に汎用的に利用することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施の形態の例を示すブロック図である。
【図２】イベントデータの例を示す説明図である。
【図３】アーク情報テーブルを示す説明図である。
【図４】ノード情報テーブルを示す説明図である。
【図５】道路網の例を模式的に示す説明図である。
【図６】分割された道路網を模式的に示す説明図である。
【図７】アークの集合をグリッド毎に示した説明図である。
【図８】結合処理を行った後のグリッドを模式的に示す説明図である。
【図９】配列グリッドテーブルの例を示す説明図である。
【図１０】グリッドアークテーブルの例を示す説明図である。
【図１１】イベントグリッドマッチ手段の構成例を示す説明図である。
【図１２】マッチング手段の動作の例を示すフローチャートである。
【図１３】グリッドイベントテーブルの例を示す説明図である。
【図１４】イベント処理優先度判定手段の動作の例を示すフローチャートである。
【図１５】グリッド優先イベントテーブルを示す説明図である。
【図１６】イベント道路マッチ手段の動作の例を示すフローチャートである。
【図１７】アークイベントテーブルの例を示す説明図である。
【図１８】マップマッチングシステム全体の動作を示す説明図である。
【図１９】グリッド道路生成ステップの動作を示すフローチャートである。
【図２０】イベントマップマッチング解析ステップの動作を示すフローチャートである。
【図２１】各アークの「上り」および「下り」の属性毎にイベントデータを対応付けたアークイベントテーブルの例を示す説明図である。
【図２２】本発明の第２の実施の形態の例を示すブロック図である。
【図２３】最小イベント数および最大イベント数を追加したグリッドアークテーブルの例を示す説明図である。
【図２４】本発明の第３の実施の形態の例を示すブロック図である。
【図２５】グリッド内のノードおよびそのノードから伸びるアークの例を示す説明図である。
【図２６】本発明の第４の実施の形態の例を示すブロック図である。
【図２７】本発明の第５の実施の形態の例を示すブロック図である。
【図２８】イベント処理能力テーブルの例を示す説明図である。
【図２９】最大イベント数を修正する動作の例を示す説明図である。
【図３０】本発明の第６の実施の形態の例を示すブロック図である。
【図３１】最大イベント数と最小イベント数を変化させる動作の例を示す説明図である。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して説明する。【００２１】
実施の形態１．
図１は、本発明の第１の実施の形態の例を示すブロック図である。本発明のマップマッチングシステムは、マップマッチング装置１０１と、道路データ記憶装置１０２と、道路データ生成装置１０３と、道路ネットワーク記憶装置１０４とを備える。【００２２】
道路ネットワーク記憶装置１０４は、道路網のデータを交差点と交差点間をつなぐ道路のネットワークとして記憶する道路ネットワーク記憶手段２を備える。【００２３】
道路データ生成装置１０３は、道路ネットワーク記憶手段２に記憶されているデータが表す道路網を複数の領域に分割した場合における各領域に属する道路のデータを生成する。道路網が存在する領域全体を分割して得られる領域をグリッドと記す。道路データ生成装置１０３は、各グリッド毎に、グリッドとグリッドに属する道路とを対応付けたデータを生成する。【００２４】
道路データ記憶装置１０２は、グリッド道路記憶手段３を備える。グリッド道路記憶手段３は、グリッド道路生成手段８によって生成されたデータ（各グリッド毎にグリッドと道路とを対応付けたデータ）を記憶する記憶装置である。【００２５】
マップマッチング装置１０１は、イベント収集手段１と、高速マップマッチング手段４と、イベント道路記憶手段５と、イベント解析手段６と、解析結果出力手段７とを備える。【００２６】
イベント収集手段１は、道路上のプローブカーからイベントデータを受信する。イベントデータは、車両の位置および状態を表すデータであり、イベントデータを送信する車両をプローブカーと呼ぶ。プローブカーの数は複数であり、数万台といった多くのプローブカーからイベントデータを受信してもよい。なお、地域毎に設置された基地局が無線通信ネットワークを介してプローブカーからイベントデータを受信し、イベント収集手段１は、各基地局からイベントデータを受信する。このように、イベント収集手段１は、基地局を介してプローブカーからイベントデータを受信する。以下、プローブカーを単に車両と記す。【００２７】
基地局や、イベントデータを生成する車両の構成は特に限定されない。また、イベント収集手段１、基地局、車両間の通信プロトコルも特に限定されない。イベント収集手段１は、記憶装置を備え、受信したイベントデータをその記憶装置に蓄積し、例えば一定時間毎に、蓄積しているイベントデータを発生順にソートし高速マップマッチング手段４が備えるイベントグリッドマッチ手段４０１（より具体的にはイベント記憶手段４０１０１）に記憶させる。イベント収集手段１は、イベントグリッドマッチ手段４０１に記憶させたイベントデータは、イベント収集手段１自身が備える記憶装置から削除する。【００２８】
高速マップマッチング手段４は、グリッド道路記憶手段３に記憶されているグリッドのデータを参照して、イベント収集手段１が受信したイベントデータと各道路とを対応付けるマップマッピング処理を行う。【００２９】
イベント道路記憶手段５は、高速マップマッチング手段４によって対応付けられた道路とイベントデータとの対応関係を記憶する記憶装置である。イベント解析手段６は、イベント道路記憶手段５に記憶された道路とイベントデータとの対応関係と各イベントデータとを参照して交通状況の解析を行う。イベント解析手段６が実行可能な解析の例として、例えば道路の渋滞度の判定が挙げられるが、イベント解析手段６が実行する解析の種類は特に限定されない。解析結果出力手段７は、イベント解析手段６による解析結果を出力する出力装置である。例えば、解析結果出力手段７は、解析結果を表示するディスプレイ装置である。また、イベント解析手段６は、例えば、プログラムに従って動作するＣＰＵによって実現される。【００３０】
図１では、マップマッピングシステムがマップマッチング装置１０１と、道路データ記憶装置１０２と、道路データ生成装置１０３と、道路ネットワーク記憶装置１０４とを備え、それぞれの装置が上述のように各手段を有する構成例を示したが、マップマッピングシステムは図１に示す構成に限定されない。例えば、道路ネットワーク記憶手段２とグリッド道路記憶手段３とが同一の装置で実現されていてもよい。また、上述の各手段が全て同一の装置に設けられる構成であってもよい。この点は、後述する他の実施の形態でも同様である。【００３１】
以下、本発明のマップマッピングシステムの各構成要素およびその動作や、本発明に適用される各データについて説明する。【００３２】
グリッド道路生成手段８は、道路グリッド分割手段８０１と、グリッド道路結合手段８０２とを有する。道路グリッド分割手段８０１は、道路ネットワーク記憶手段２に記憶されているデータに基づいて、道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割した各分割領域（グリッド）と道路とを対応付けたデータを生成する。なお、緯度方向の分割間隔と経度方向の分割間隔とは一致していても異なっていてもよい。グリッド道路結合手段８０２は、道路グリッド分割手段８０１によって生成されたデータ（グリッドと道路とを対応付けたデータ）のうち、互いに隣接するグリッドであってグリッドに対応付けられている道路の集合が一致する複数のグリッドが存在している場合、その複数のグリッドに対して共通のグリッドＩＤを付すことで１つのグリッドとする。また、対応付けられている道路の集合が、隣接するいずれのグリッドとも異なっているグリッドに対してもグリッドＩＤを付す。グリッドＩＤは、各グリッドを識別するための識別情報であり、通過するアークの集合が共通であるグリッドの集合毎に一意に割り当てられる。このように、対応付けられている道路の集合が共通である隣接するグリッドの集合、および対応付けられている道路の集合が隣接するいずれのグリッドとも異なっているグリッドに対してグリッドＩＤを付すことをグリッドの結合処理と記す。グリッド道路結合手段８０２は、道路と、結合前のグリッドと、結合処理後のグリッドとの対応関係をグリッド道路記憶手段３に記憶させる。例えば、結合処理前の各グリッドと結合処理によって付されたグリッドＩＤとの対応関係を示す情報と、グリッドＩＤとそのグリッドＩＤが示すグリッドに対応する道路との対応関係を示す情報を作成し、作成した情報をグリッド道路記憶手段３に記憶させる。【００３３】
結合処理後では、１つのグリッドＩＤが割り当てられたグリッドを１つのグリッドとして扱う。従って、隣接する複数のグリッドに１つのグリッドが割り当てられた場合、その複数のグリッドが１つのグリッドとなる。【００３４】
なお、道路グリッド分割８０１は、導出した各情報をグリッド道路記憶手段３に記憶させ、グリッド道路結合手段８０２は、その情報を読み込んで結合処理を行い、情報をグリッド道路記憶手段３に記憶させる。【００３５】
道路グリッド分割８０１およびグリッド道路結合手段８０２は、例えば、プログラムに従って動作するＣＰＵによって実現される。例えば、道路データ生成装置１０３は、道路グリッド分割８０１およびグリッド道路結合手段８０２の動作をコンピュータに実行させるための道路データ生成プログラムを予め記憶し、道路データ生成装置１０３に設けられるＣＰＵがその道路データ生成プログラムに従って動作する。【００３６】
高速マップマッチング手段４は、イベントグリッドマッチ手段４０１と、イベント処理優先度判定手段４０２と、イベント道路マッチ手段４０３とを有する。イベントグリッドマッチ手段４０１は、グリッド道路記憶手段３に記憶されている結合処理後のグリッドと、そのグリッドの範囲で発生したイベントデータとを対応付ける。イベント処理優先度判定手段４０２は、結合処理後のグリッドに対応付けられたイベントデータの数が、閾値（以下、最大イベント数と記す。）となる値より多ければ、そのイベントデータから最大イベント数のイベントデータを抽出する。また、イベント処理優先度判定手段４０２は、結合処理後のグリッドに対応付けられたイベントデータの数が最大イベント数未満であれば、そのグリッドに対応付けられたイベントデータを全て抽出する。イベント処理優先度判定手段４０２は、この処理を各グリッド毎に行う。最大イベント数は、解析精度の維持とマッチング処理の高速化を両立するために予め定められた閾値である。イベント道路マッチ手段４０３は、イベント処理優先度判定手段４０２によって抽出された全てのイベントデータについて、イベントデータに対応付けられたグリッド内の道路とイベントデータの発生位置との距離計算を行い、イベントデータが生成された道路を特定し、イベントデータと道路とを対応付ける。【００３７】
イベントグリッドマッチ手段４０１は、例えば、記憶装置と、プログラムに従って動作するＣＰＵとによって実現される。イベント処理優先度判定手段４０２およびイベント道路マッチ手段４０３は、プログラムに従って動作するＣＰＵとによって実現される。【００３８】
たとえば、マップマッチング装置１０１は、イベント発生手段１、イベントグリッドマッチ手段４０１、イベント処理優先度判定手段４０２、イベント道路マッチ手段４０３、イベント解析手段６の動作をコンピュータに実行させるためのマップマッチングプログラムを予め記憶し、マップマッチング装置１０１に設けられるＣＰＵがそのマップマッチングプログラムに従って動作する。【００３９】
ここで、イベントデータについて説明する。図２は、イベントデータの例を示す説明図である。図２（ａ）は、本発明に適用されるイベントデータが必ず含むデータを示している。車両は、図２（ａ）に例示するように、少なくともイベントデータのＩＤ、イベントデータの生成日時、イベントデータ生成時における車両の位置、速度を含むイベントデータを生成する。イベントデータのＩＤ、生成日時、車両の位置、速度は、本発明に適用されるイベントデータに含まれていなければならないデータであるが、図２（ｂ）に例示するように、方向、ワイパー利用状況、ブレーキ利用情報等の他のデータが含まれていてもよい。【００４０】
図２においてＴ１０１の符号を付して示したＩＤは、個々のイベントデータを識別するための識別情報である。図２では“Ｅ１”というＩＤを示しているが、車両は、例えば車両の識別情報とイベントデータの生成時刻とを含む文字列をＩＤとする。ＩＤは、複数の車両によって生成されるイベントデータを識別できる情報であればよい。【００４１】
図２に示す日時Ｔ１０２は、イベントデータの発生日時（すなわち、車両がイベントデータを生成した生成日時）である。図２では、日付および時刻で日時Ｔ１０２を表現しているが、日時は他の表現形式で表されてもよい。例えば、ある日時からの経過秒などで日時Ｔ１０２が表現されていてもよい。【００４２】
図２に示す位置Ｔ１０３は、イベントデータ生成時の車両の位置である。図２では、（経度，緯度）の形式で位置を表現しているが、位置は他の形式で表現されてもよい。例えば、ある基準点からの距離および角度によって位置が表されてもよい。なお、この場合の角度とは、基準点と車両位置を結ぶ線分と、基準点を通過する基準軸との角度である。【００４３】
図２に示す速度Ｔ１０４は、イベントデータ生成時の車両の速度である。図２では、時速をキロメートルで表現しているが、他の形式で速度が表されていてもよい。例えば、分速をマイルで表した値を速度としてもよい。【００４４】
イベントデータには、少なくともＩＤ、日時、位置および速度が含まれる。イベントデータにさらに他のデータが含まれていてもよい。図２（ｂ）は、さらに他のデータを含むイベントデータの例を示している。【００４５】
図２（ｂ）に示す方向Ｔ１０５は、イベントデータ生成時の車両の進行方向である。図２（ｂ）では、ある基準の方向からの角度で方向を表現しているが、他の形式で方向が表されてもよい。例えば、北北東といった表現を用いてもよい。【００４６】
図２（ｂ）に示すワイパー利用状況Ｔ１０６は、イベントデータ生成時に車両がワイパーを使用しているか否かを示すデータである。例えば、イベントデータ生成時に車両がワイパーを使用している場合には“１”とし、使用していない場合には“０”とすればよい。同様に、図２（ｂ）に示すブレーキ利用状況Ｔ１０７は、イベントデータ生成時に車両がブレーキを使用しているか否かを示すデータである。例えば、イベントデータ生成時に車両がブレーキを使用している場合には“１”とし、使用していない場合には“０”とすればよい。同様に、イベントデータ生成時の車両のライトの利用状況がイベントデータに含まれていてもよい。【００４７】
道路ネットワーク記憶手段２に記憶される道路網のデータについて説明する。道路ネットワーク記憶手段２に記憶される道路網のデータは、交差点（ノード）と、交差点と交差点とを結ぶ道路（アーク）とで表現される。以下に示す例では、説明を簡単にするため、道路を、始点の交差点から終点の交差点までの直線で表現する。カーブしている道路を表現する場合には、カーブしている道路の途中で補助としてノードを配置し、短いアークを連ねることで表現することができる。【００４８】
道路ネットワーク記憶手段２は、図３に示すアーク情報テーブルと、図４に示すノード情報テーブルを記憶する記憶装置である。このアーク情報テーブルおよびノード情報テーブルにより道路網が表現される。【００４９】
図３は、アーク情報テーブルを示す。図３においてＴ２０１の符号を付して示したアークＩＤは、各道路を識別するための識別情報である。アークＩＤは、道路に割り当てた通し番号でよい。始点Ｔ２０２は、道路の始点となる交差点のＩＤであり、終点Ｔ２０３は、道路の終点となる交差点のＩＤである。アーク情報テーブルは、このアークＩＤ、始点および終点を対応付けた情報の集合である。【００５０】
図４は、ノード情報テーブルを示す。図４においてＴ２０４の符号を付して示したノードＩＤは、各交差点を識別するための識別情報である。ノードＩＤは、交差点に割り当てた通し番号でよい。緯度Ｔ２０５は、交差点の緯度であり、経度Ｔ２０６は、交差点の経度である。ここでは、交差点の位置を緯度および経度で表現しているが、交差点の位置の表現は緯度および経度に限定されない。ノード情報テーブルは、ノードＩＤと、ノードの位置とを対応付けた情報の集合である。【００５１】
なお、アーク情報テーブルにおける始点Ｔ２０２および終点Ｔ２０３は、ノード情報テーブルに含まれるノードＩＤで表される。【００５２】
図５は、アーク情報テーブルおよびノード情報テーブルによって表される道路網の例を模式的に示す説明図である。図５において、線分はアークを表し、“ａ”から始まるラベルはアークＩＤを意味する。また、丸は交差点を表し、“ｎ”から始まるラベルはノードＩＤを意味する。図５に示すノードの位置は、実際の地図の交差点と同じ空間的な位置関係を表しているもとのする。【００５３】
次に、グリッド道路生成手段８について説明する。
道路グリッド分割手段８０１は、道路ネットワーク記憶手段２に記憶されているアーク情報テーブルおよびノード情報テーブルが表す道路網の領域を緯度方向および経度方法にそれぞれ等間隔に分割した各分割領域（グリッド）を導出する。道路グリッド分割手段８０１は、図６は、分割された道路網を模式的に示す説明図である。道路グリッド分割手段８０１は、緯度方向の分割範囲にそれぞれ０から順にインデックス（座標）を割り当てる。同様に、経度方向の分割範囲にそれぞれ０から順にインデックス（座標）を割り当てる。緯度方向のインデックスおよび経度方向のインデックスがいずれも０となるグリッドを原点グリッドと記す。図６に示す例では、ノードｎ４を含むグリッド（符号Ｇ００を付したグリッド）が原点グリッドである。また、原点グリッドの頂点となる４点のうち、緯度および経度が最小となる点（図６に示す例ではグリッドＧ００の左下の点）を原点と呼ぶ。以下の説明では、グリッドをＧ（経度方向の座標，緯度方向の座標）と表現する。この表現によれば、原点グリッドＧ００はＧ（０，０）と表現される。【００５４】
道路グリッド分割手段８０１は、道路網の領域を緯度方向および経度方向に等間隔に分割する際、基準となる緯度および経度から等間隔に分割すればよい。基準となる緯度および経度から等間隔に分割することで、各グリッドの頂点の緯度および経度を特定できる。道路グリッド分割手段８０１は、各グリッドを横切っているアークの集合を算出し記憶する。道路グリッド分割手段８０１は、１つのグリッドを横切るアーク（道路）の集合を以下のように特定する。道路グリッド分割手段８０１は、緯度および経度がグリッドの範囲内に収まるノード（交差点）のノードＩＤをノード情報テーブル（図４参照。）から抽出し、そのノードＩＤを始点または終点とするアークＩＤをアーク情報テーブル（図３参照。）から抽出する。抽出されたアークＩＤの集合が１つのグリッドを横切るアークの集合である。道路グリッド分割手段８０１は、グリッドを横切るアークの集合を特定する処理を各グリッド毎に行う。そして、グリッドと、グリッドを通過するアークとの対応関係を記憶する。【００５５】
以下、アーク等の要素の集合を表す場合、括弧内に各要素を並べて、｛第一番目の要素，第二番目の要素，．．．｝と表現する。図６に示す例では、グリッドＧ（２，２）は、３つのアークａ４，ａ５，ａ６が含まれている。従って、グリッドＧ（２，２）を横切るアークの集合を｛ａ４，ａ５，ａ６｝を表す。【００５６】
図７は、グリッドを横切るアークとして抽出されたアークの集合をグリッド毎に示した説明図である。【００５７】
グリッド道路結合手段８０２は、道路グリッド分割手段８０１によって生成されたグリッドとアークとを対応付けたデータに対して統合処理を行う。すなわち、互いに隣接するグリッドであってグリッドに対応付けられているアークの集合が一致する複数のグリッドが存在している場合、その複数のグリッドに対して１つのグリッドＩＤを付す。また、対応付けられている道路の集合が、隣接するいずれのグリッドとも異なっているグリッドに対してもグリッドＩＤを付す。【００５８】
グリッド道路結合手段８０２は、１つのグリッドに着目し、そのグリッドに隣接するグリッドに、着目したグリッドに対応付けられたアークの集合と同一のアークの集合が対応付けられたグリッドが存在するか否かを判定し、そのようなグリッドが存在するならば、着目したグリッドおよび、着目したグリッドに対応付けられたアークの集合と同一のアークの集合が対応付けられたグリッドに同一のグリッドＩＤを割り当てる。グリッド道路結合手段８０２は、そのグリッドＩＤを割り当てたグリッドに隣接するグリッドに、着目したグリッドに対応付けられたアークの集合と同一のアークの集合が対応付けられたグリッドが存在するか否かを判定し、そのようなグリッドが存在するならば、そのグリッドにも同一のグリッドＩＤを割り当てる。隣接するグリッドに、着目したグリッドに対応付けられたアークの集合と同一のアークの集合が対応付けられたグリッドが存在しなければ、着目するグリッドを変更する。また、１つのグリッドに着目し、そのグリッドに隣接するグリッドに、着目したグリッドに対応付けられたアークの集合と同一のアークの集合が対応付けられたグリッドが存在するか否かを判定し、そのようなグリッドが存在しなければ、着目したグリッドにグリッドＩＤを割り当て、着目するグリッドを変更する。グリッドを識別するためにグリッドに割り当てるグリッドＩＤは、例えば通し番号でよい。グリッド道路結合手段８０２は、この処理を繰り返し、着目していないグリッドであってグリッドＩＤが割り当てられていないグリッドがなくなったならば結合処理を終了する。【００５９】
図７に示す例では、結合処理前に、Ｇ（０，０）からＧ（４，５）までの２４個が初期のグリッドがあり、グリッドに順に着目して処理を行う。グリッドＧ（０，０）に着目した場合、Ｇ（０，０）に隣接するグリッドは、グリッドＧ（１，０），Ｇ（０，１）である。グリッドＧ（１，０）に対応するアークの集合は空集合であり、グリッドＧ（０，１）に対応するアークの集合は｛ａ３｝である。着目しているグリッドＧ（０，０）に対応するアークの集合は｛ａ３｝であるので、グリッドＧ（０，０），Ｇ（０，１）は結合される。すなわち、グリッドＧ（０，０），Ｇ（０，１）に共通のグリッドＩＤが割り当てられる。なお、隣接するグリッドに同じアークが対応付けられていても、アークの集合が異なっていれば結合されない。例えば、図７に示すグリッドＧ（０，１），Ｇ（０，２）にはいずれもアークａ３が対応付けられているが、アーク集合としては｛ａ３｝と｛ａ２，ａ３，ａ４｝で異なっているので、グリッドＧ（０，１），Ｇ（０，２）は結合されない。【００６０】
図８は、図７に例示するグリッドに対して、結合処理を行った後のグリッドを模式的に示す説明図である。図８に示す例では、グリッドＧ（０，０）とグリッド（０，１）が結合したグリッドに、Ｇ４というグリッドＩＤが割り当てられている。【００６１】
グリッド道路結合手段８０２は、結合処理後に、グリッド道路記憶手段３にアーク、結合処理前のグリッド、結合処理後のグリッドとの対応関係を記憶させる。本例では、グリッド道路結合手段８０２は、図９に例示する配列グリッドテーブルおよび図１０に例示するグリッドアークテーブルをグリッド道路記憶手段３に記憶させる。ただし、図９および図１０はグリッド道路結合手段８０２がグリッド道路記憶手段３に記憶させるデータのデータ構造の一例を示したものである。他の構造のデータ、例えば、配列グリッドテーブルおよびグリッドアークテーブルを統合した１つのテーブルをグリッド道路記憶手段３に記憶させてもよい。【００６２】
図９は、配列グリッドテーブルの例を示す。配列グリッドテーブルは、結合処理前の各グリッドの緯度方向および経度方向のインデックス（座標）と、結合処理において割り当てられたグリッドＩＤとを対応付けた情報の集合である。図９においてＴ３０１の符号を付して示した配列ＩＤは、結合処理前の各グリッドの緯度方向および経度方向のインデックスを表している。図９に示す例では、（経度方向，緯度方向）というフォーマットで処理前の各グリッドの位置を表している。図９においてＴ３０２の符号を付して示したグリッドＩＤは、結合処理で割り当てられたグリッドＩＤである。例えば、図８に示すようにグリッドＧ（０，０），（０，１）に共通のグリッドＩＤ“Ｇ４”を割り当てている場合、グリッド道路結合手段８０２は、その各グリッドの座標（０，０），（０，１）それぞれに対してＧ４を対応付け（図９参照。）、グリッド道路記憶手段３に記憶させる。グリッド道路結合手段８０２は、各グリッド毎に、配列ＩＤとグリッドＩＤとを対応付けてグリッド道路記憶手段３に記憶させる。【００６３】
図１０は、グリッドアークテーブルの例を示す。グリッドアークテーブルは、結合処理で割り当てたグリッドＩＤと、そのグリッドＩＤが示すグリッドに含まれるアークの集合とを対応付けた情報の集合である。図１０においてＴ３０３の符号を付して示したグリッドＩＤは、結合処理で割り当てられたグリッドＩＤである。アーク集合Ｔ３０４は、グリッドＩＤによって特定されるグリッドに対応付けられたアーク集合である。グリッド道路結合手段８０２は、グリッドＩＤと、そのグリッドＩＤによって特定されるグリッドに対応付けられたアーク集合との組み合わせを、グリッドＩＤ毎にグリッド道路記憶手段３に記憶させる。例えば、図８に例示するように、アークａ１，ａ２を含むグリッドＧ（０，５）にグリッドＩＤ“Ｇ１”を割り当てた場合、図１０に示す第一レコードのように、Ｇ１と｛ａ１，ａ２｝とを対応付ける。【００６４】
次に、イベントグリッドマッチ手段４０１について説明する。図１１は、イベントグリッドマッチ手段４０１の構成例を示す説明図である。イベントグリッドマッチ手段４０１は、イベント記憶手段４０１０１と、処理対象記憶手段４０１０２と、マッチング処理手段４０１０３と、グリッドイベントテーブル記憶手段４０１０４とを備える。【００６５】
イベント記憶手段４０１０１は、イベント収集手段１が時間順にソートしたイベントデータを記憶するメモリを備え、メモリに記憶された情報を順次、処理対象記憶手段４０１０２に記憶させる。イベント記憶手段４０１０１は、一定時間毎にメモリに記憶しているイベントデータを発生時刻順に順次、処理対象記憶手段４０１０２に記憶させてもよい。また、イベント記憶手段４０１０１は、メモリに記憶しているイベントデータが所定数に達したときにそのイベントデータを処理対象記憶手段４０１０２に記憶させてもよい。イベント記憶手段４０１０１は、処理対象記憶手段４０１０２に記憶させたデータを、イベント記憶手段４０１０１が備えるメモリから削除する。ここでは、一定時間毎あるいは所定数毎にイベント記憶手段４０１０１に記憶されたイベントデータを処理対象記憶手段４０１０２に移動させる場合を例示したが、他の態様でイベント記憶手段４０１０１から処理対象記憶手段４０１０２にイベントデータを移動させてもよい。【００６６】
処理対象記憶手段４０１０２は、アークとのマッチング処理が行われるイベントデータを記憶する記憶装置である。イベント記憶手段４０１０１が一旦記憶したイベントデータが、順次、処理対象記憶手段４０１０２に記憶される。【００６７】
マッチング処理手段４０１０３は、処理対象記憶手段４０１０２に記憶された全てのイベントデータと、結合処理後のグリッドとを対応付ける処理を行い、イベントデータとグリッドとを対応付けた情報をグリッドイベントテーブル記憶手段４０１０４に記憶させる。グリッドイベントテーブル記憶手段４０１０４は、マッチング処理手段４０１０３によるマッチング処理の結果（イベントデータとグリッドとを対応付けた情報の集合であるグリッドイベントテーブル）を記憶する。【００６８】
イベント収集手段１は高速マップマッチング手段４とは非同期にイベントデータを受信するために、イベント収集手段１よって発生時刻順にソートされたイベントデータを随時追加する記憶手段としてイベント記憶手段４０１０１と、マッチング処理に用いる記憶手段である処理対象イベント記憶手段４０１０２とが必要となる。よって、イベントグリッドマッチ手段４０１は、イベント記憶手段４０１０１と処理対象イベント記憶手段４０１０２の２重に記憶手段を有する。【００６９】
図１２は、マッチング手段４０１０３の動作の例を示すフローチャートである。マッチング手段４０１０３は、グリッドイベントテーブル記憶手段４０１０４に記憶されたグリッドイベントテーブルをクリアしてから、処理対象記憶手段４０１０２に記憶された各イベントデータに対して以下の処理を行う。ここでは、イベントデータにおいて位置Ｔ１０３が緯度および経度で記述されるものとする。【００７０】
また、図１３は、グリッドイベントテーブルの例を示す。図１３において、Ｔ４０１０４０１の符号を付して示したグリッドＩＤは、結合処理で割り当てられたグリッドＩＤである。イベント集合Ｔ４０１０４０２は、グリッドＩＤに対応付けられるイベントデータのイベントＩＤの集合である。【００７１】
マッチング手段４０１０３は、イベントデータに含まれる位置Ｔ１０３（図２参照。）として記述される緯度および経度から、以下に示す式（１）および式（２）により、イベントデータの発生位置が緯度方向および経度方向それぞれにおいてどのインデックスに該当するかを判定する（ステップＳ４０１０３０１）。【００７２】
経度のインデックス＝整数化（（イベントの経度  −  原点の経度）／経度方向のグリッドのサイズ）                                  式（１）【００７３】
緯度のインデックス＝整数化（（イベントの緯度  −  原点の緯度）／緯度方向のグリッドのサイズ）                                  式（２）【００７４】
なお、式（１）および式（２）における整数化とは、小数点以下を切り捨てて整数値にする演算である。また、式（１）における「イベントの経度」とはイベントデータに記述された経度であり、「経度方向のグリッドのサイズ」は道路グリッド分割手段８０１によるグリッド分割における経度方向の分割間隔である。同様に、式（２）における「イベントの緯度」とはイベントデータに記述された緯度であり、「緯度方向のグリッドのサイズ」は道路グリッド分割手段８０１によるグリッド分割における緯度方向の分割間隔である。【００７５】
マッチング手段４０１０３は、ステップＳ４０１０３０１で算出した緯度および経度のインデックスを座標とするグリッドに対応するグリッドＩＤを、グリッド道路記憶手段３に記憶された配列グリッドテーブルから特定する（ステップＳ４０１０３０２）。この結果、イベントデータをグリッドに対応付けることができる。【００７６】
続いて、マッチング手段４０１０３は、ステップＳ４０１０３０２で特定したグリッドＩＤの値を、グリッドイベントテーブル（図１３参照。）のグリッドＩＤフィールドで検索する。検索に成功した場合、マッチング手段４０１０３は、グリッドイベントテーブルにおいて、検索されたグリッドＩＤのレコードのイベント集合に処理対象としているイベントデータのイベントＩＤを追加する。検索に失敗した場合、ステップＳ４０１０３０２で特定したグリッドＩＤと、そのグリッドＩＤに対応付けたイベントデータのイベントＩＤの組み合わせを、グリッドイベントテーブル記憶手段４０１０４に記憶されているグリッドイベントテーブルに追加する（ステップＳ４０１０３０３）。マッチング手段４０１０３は、グリッドイベントテーブルにイベントデータのＩＤを追加した場合、そのＩＤによって特定されるイベントデータもあわせてグリッドイベントテーブル記憶手段４０１０４に記憶させる。【００７７】
次に、イベント処理優先度判定手段４０２について説明する。図１４は、イベント処理優先度判定手段４０２の動作の例を示すフローチャートである。イベント処理優先度判定手段４０２は、マッチング手段４０１０３が各イベントデータに対してステップＳ４０１０３０１〜Ｓ４０１０３０３の処理を行った後、図１４に示す処理を行う。【００７８】
図１５は、イベント処理優先度判定手段４０２の処理により得られるグリッド優先イベントテーブルを示す。グリッド優先イベントテーブルは、グリッドイベントテーブルと同様に、イベントデータとグリッドとを対応付けた情報の集合である。ただし、グリッド優先イベントテーブルでは、グリッドＩＤと、選択された所定数以下のイベントデータが対応付けられる。ここでは、さらに警告フラグの状態も対応付けられる場合を例にして説明する。警告フラグがオフ（本例では“０”とする。）であるということは、グリッドＩＤに対応するイベント集合から得られる解析結果が信頼できることを意味する。警告フラグがオン（本例では“１”とする。）であるということは、グリッドＩＤに対応するイベントデータの数が不足していて、そのイベントデータから得られる解析結果の信頼性が低いことを意味する。【００７９】
イベント処理優先度判定手段４０２は、まず、グリッドイベントテーブル（図１３参照。）のグリッドＩＤフィールドから全てグリッドＩＤ（グリッドＩＤ一覧）を抽出し、抽出したグリッドＩＤをグリッド優先イベントテーブルのグリッドＩＤとして記憶する（ステップＳ４０２０１）。【００８０】
イベント処理優先度判定手段４０２は、ステップＳ４０２０１で抽出したグリッドＩＤの中に、ステップＳ４０２０３〜Ｓ４０２０６の処理を行っていないグリッドＩＤ（ステップＳ４０２０３で選択されていないグリッドＩＤ）が残っているか否かを判定する（ステップＳ４０２０２）。そのようなグリッドＩＤが残っていれば、ステップＳ４０２０３に移行し、残っていなければイベント処理優先度判定手段４０２は処理を終了する。【００８１】
ステップＳ４０２０３において、イベント処理優先度判定手段４０２は、ステップＳ４０２０１で抽出したグリッドＩＤであって未だステップＳ４０２０３で選択されていないグリッドＩＤを１つ選択する。イベント処理優先度判定手段４０２は、未選択のグリッドＩＤの中からランダムにグリッドＩＤを選択してもよい。また、グリッドイベントテーブルに記憶されている順番にグリッドＩＤを選択してもよい。ステップＳ４０２０３で選択したグリッドＩＤを、以下、注目グリッドＩＤと称して説明する。【００８２】
次に、イベント処理優先度判定手段４０２は、注目グリッドＩＤに対応したイベント集合をグリッドイベントテーブルから抽出する（ステップＳ４０２０４）。【００８３】
続いて、イベント処理優先度判定手段４０２は、ステップＳ４０２０４でグリッドイベントテーブルから抽出したイベント集合に属するイベントデータの数が最大イベント数よりも多ければ、そのイベント集合から最大イベント数のイベントデータを選択し、イベント集合に属するイベントデータの数が最大イベント数以下であれば、そのイベント集合に属する全てのイベントデータを選択する（ステップＳ４０２０５）。既に説明したように、最大イベント数は、解析精度の維持とマッチング処理の高速化を両立するために予め定められた閾値である。解析の際にイベントデータ数が多ければ多いほど解析精度は向上する。一方、イベントデータ数が多いほど、イベントデータと道路とのマッチング処理に要する時間がかかってしまう。しかし、同じ道路を走っている車両のイベントデータには類似していることが多い。そこで、１つのグリッド（結合処理後のグリッド）に対応するイベントデータも類似していることが多いと考えることができ、本発明では、１つの注目グリッドＩＤに対応するイベントデータが多く存在する場合には、その中一部を抽出し、イベントデータが少ない場合には全てのイベントデータを抽出することとしている。最大イベント数は、イベントデータが多く存在し、その一部を抽出する閾値として定められている。図１５に示す例では、最大イベント数を２としているが、最大イベント数はイベント解析手段６で行う解析の種類に応じて適宜定めておけばよい。例えば、イベント解析手段６で渋滞度を算出する場合、最大イベント数は１０程度が適当である。【００８４】
ステップＳ４０２０４で抽出したイベント集合に属するイベントデータの数が最大イベント数よりも多い場合、イベント処理優先度判定手段４０２は、そのイベント集合の中から、最大イベント数のイベントデータを任意に選択すればよい。【００８５】
また、最小イベント数は、注目グリッドＩＤに対応するイベントデータの数が不足しているか否かを判定するための値である。【００８６】
ステップＳ４０２０５の後、イベント処理優先度判定手段４０２は、ステップＳ４０２０５で選択したイベントデータを注目グリッドＩＤに対応付けてグリッド優先イベントテーブルに追加する。すなわち、グリッド優先イベントテーブルにおける注目グリッドＩＤに対応させて記憶させる（ステップＳ４０２０６）。このとき、イベント処理優先度判定手段４０２は、グリッドイベントテーブルから抽出したイベント集合に属するイベントデータ数が最小イベント数未満であれば、注目グリッドＩＤに対応する警告フラグをオン（“１”）とし、イベントデータ数が最小イベント数以上であれば警告フラグをオフ（“０”）とする。なお、図１５では、最小イベント数を１として警告フラグを常時オフとする場合を例示している。【００８７】
次に、イベント道路マッチ手段４０３について説明する。図１６は、イベント道路マッチ手段４０３の動作の例を示すフローチャートである。イベント道路マッチ手段４０３は、イベント処理優先度判定手段４０２によってグリッド優先イベントテーブル（図１５参照。）が生成された後、図１６に示す処理を行う。イベント道路マッチ手段４０３は、グリッド優先イベントテーブル（図１５参照。）のグリッドＩＤフィールドから全てのグリッドＩＤ（グリッドＩＤ一覧）を抽出して記憶する（ステップＳ４０３０１）。【００８８】
イベント道路マッチ手段４０３は、ステップＳ４０３０１で抽出して記憶したグリッドＩＤの中に、ステップＳ４０３０３〜Ｓ４０３１０の処理を行っていないグリッドＩＤ（ステップＳ４０３０３で選択されていないグリッドＩＤ）が残っているか否かを判定する（ステップＳ４０３０２）。そのようなグリッドＩＤが残っていれば、ステップＳ４０３０３に移行し、残っていなければイベント道路マッチ手段４０３は処理を終了する。【００８９】
ステップＳ４０３０３において、イベント道路マッチ手段４０３は、ステップＳ４０３０１で抽出して記憶したグリッドＩＤであって未だステップＳ４０３０３で選択されていないグリッドＩＤを１つ選択する。イベント道路マッチ手段４０３は、未選択のグリッドＩＤの中からランダムにグリッドＩＤを選択してもよい。また、グリッド優先イベントテーブルに記憶されている順番にグリッドＩＤを選択してもよい。ステップＳ４０３０３で選択したグリッドＩＤを、以下、注目グリッドＩＤと称して説明する。【００９０】
次に、イベント道路マッチ手段４０３は、グリッド優先イベントテーブル（図１５参照。）から注目グリッドＩＤに対応したイベント集合を抽出する（ステップＳ４０３０４）。ステップＳ４０３０４では、イベント道路マッチ手段４０３は、注目グリッドＩＤの値でグリッド優先イベントテーブルのグリッドＩＤフィールドを検索し、検索したグリッドＩＤフィールドに対応するイベント集合を抽出する。例えば、注目グリッドＩＤが“Ｇ１”であるとすると、イベント道路マッチ手段４０３は、図１５に例示するグリッド優先イベントテーブルからイベント集合｛Ｅ１１，Ｅ１２｝を抽出する。なお、イベント道路マッチ手段４０３はあらかじめイベント処理優先度判定手段４０２のグリッド優先イベントテーブルへのアクセス方法を知っているとする。【００９１】
また、イベント道路マッチ手段４０３は、グリッドアークテーブル（図１０参照。）から注目グリッドに対応したアーク集合を抽出する（ステップＳ４０３０５）。ステップＳ４０３０５では、イベント道路マッチ手段４０３は、注目グリッドＩＤの値でグリッドアークテーブルのグリッドＩＤフィールドを検索し、検索したグリッドＩＤフィールドに対応するアーク集合を抽出する。例えば、注目グリッドＩＤが“Ｇ１”であるとすると、イベント道路マッチ手段４０３は、図１０に例示するグリッドアークテーブルからアーク集合｛ａ１，ａ２｝を抽出する。なお、イベント道路マッチ手段４０３はあらかじめグリッド道路記憶手段３のグリッドアークテーブルへのアクセス方法を知っているとする。また、図１６では、ステップＳ４０３０４の後にステップＳ４０３０５を行う場合を示しているが、ステップＳ４０３０４，Ｓ４０３０５の実行順序はどちらが先であってもよい。ステップＳ４０３０４，Ｓ４０３０５の処理をいずれも行った後にステップＳ４０３０６に移行する。【００９２】
イベント道路マッチ手段４０３は、ステップＳ４０３０５で抽出したアーク集合の要素素数が１であるか否かを判定する（ステップＳ４０３０６）。すなわち、ステップＳ４０３０５で抽出したアーク集合に属するアークが１つであるか否かを判定する。【００９３】
アーク集合の要素が複数である場合、すなわちアーク集合に複数のアークがある場合（ステップＳ４０３０６のｎｏ）、イベント道路マッチ手段４０３は、ステップＳ４０３０４で抽出したイベント集合に属する各イベントデータ毎に、イベントデータの発生位置と、ステップＳ４０３０５で抽出したアーク集合に属する全てのアークとの距離を計算する（ステップＳ４０３０７）。例えば、注目グリッドが“Ｇ１”である場合、イベント道路マッチ手段４０３は、イベント集合｛Ｅ１１，Ｅ１２｝に属するＩＤがＥ１１であるイベントデータの発生位置と、アーク集合｛ａ１，ａ２｝に属する全てのアークａ１，ａ２との距離を算出する。同様に、ＩＤがＥ１２であるイベントデータの発生位置と、アークａ１，ａ２との距離を算出する。【００９４】
イベントデータの発生位置とアークとの距離を算出する場合、イベントデータの発生位置は１点でありアークは線分であるから、イベント道路マッチ手段４０３は、イベントデータの発生位置からアークへの垂線を下ろした場合の垂線の長さを計算すればよい。【００９５】
例えば、イベント道路マッチ手段４０３は、以下のようにしてイベントデータの発生位置とアークとの距離を計算すればよい。なお、以下の計算では経度方向の軸をｘ軸とし、緯度方向の軸をｙ軸として、経度をｘ座標、緯度をｙ座標とする。イベント道路マッチ手段４０３は、道路ネットワーク記憶手段２のアーク情報テーブル（図３参照。）にアクセスして、アークの始点および終点となるノードのノードＩＤを読み込む。さらに、イベント道路マッチ手段４０３は、道路ネットワーク記憶手段２のノード情報テーブル（図４参照。）にアクセスして、アークの始点および終点のノードＩＤに対応付けられた緯度および経度を読み込む。始点となるノードの座標を（ｘ１，ｙ２）とし、終点となるノードの座標を（ｘ２，ｙ２）とする。ｘ１，ｘ２はノードの経度であり、ｙ１，ｙ２はノードの緯度である。この２つのノードを通過する直線の傾きをｍとするとｍは以下の式（３）で求められる。【００９６】
ｍ＝（ｙ１−ｙ２）／（ｘ１−ｘ２）                    式（３）【００９７】
また、２つのノードを通過する直線の切片をｎとするとｎは以下の式（４）で求められる。【００９８】
ｎ＝−ｍ・ｘ１＋ｙ１                                  式（４）【００９９】
さらに、イベントデータの発生位置を（ｘ０，ｙ０）とする。ｘ０は、イベントデータに発生位置として記述されている経度であり、ｙ０はイベントデータに発生位置として記述されている緯度である。このとき、イベントデータの発生位置とアークとの距離をｄとする距離ｄは、上記の傾きｍおよび切片ｎを用いて、以下の式（５）で求められる。【０１００】
ｄ＝｜ｙ０−ｍ・ｘ０−ｎ｜／√（１＋ｍ２）                    式（５）【０１０１】
よって、イベント道路マッチ手段４０３は、アークの始点および終点の緯度、経度から式（３）によってｍを算出し、さらに式（４）によってｎを算出し、そのｍ，ｎとイベントデータの発生位置を（ｘ０，ｙ０）から式（５）によって距離ｄを計算すればよい。【０１０２】
イベント道路マッチ手段４０３は、ステップＳ４０３０４で抽出したイベント集合に属する各イベントデータ毎に、ステップＳ４０３０７で計算した距離が最短となっているアークを特定する（ステップＳ４０３０８）。ステップＳ４０３０３で、イベントデータの発生位置との距離が最短であると判定されたアークを、イベントの関連アークと記す。ステップＳ４０３０４で抽出したイベント集合に属する各イベントデータ毎に、関連アークを特定する。関連アークは、イベントデータは発生した道路を意味する。【０１０３】
また、ステップＳ４０３０５で抽出したアーク集合の要素が１つである場合、すなわちアーク集合に１つしかアークがない場合（ステップＳ４０３０６のｙｅｓ）、イベント道路マッチ手段４０３は、そのアークを、ステップＳ４０３０４で抽出したイベント集合に属する各イベントデータの関連アークに決定する（ステップＳ４０３０９）。【０１０４】
ステップＳ４０３０８，ステップＳ４０３０９の後、イベント道路マッチ手段４０３は、アークイベントテーブルにイベントデータとアークとの対応関係を示す情報を追加する（ステップＳ４０３１０）。図１７は、アークイベントテーブルの例を示す説明図である。アークイベントテーブルは、アークと、そのアークを関連アークとするイベントデータの集合とを対応付けた情報の集合である。ここでは、さらに警告フラグの状態も対応付けられる場合を例にして説明する。図１７においてＴ５０１の符号を付して示したアークＩＤは、ステップＳ４０３０８またはステップＳ４０３０９で関連アークとされたアークのアークＩＤである。また、イベント集合Ｔ５０２は、アークＩＤによって特定されるアークを関連アークとするイベントデータの集合である。【０１０５】
ステップＳ４０３１０において、イベント道路マッチ手段４０３は、ステップＳ４０３０８またはステップＳ４０３０９で関連アークと定めたアークのアークＩＤをアークイベントテーブルのアークＩＤフィールドで検索する。検索に成功した場合、イベント道路マッチ手段４０３は、そのアークを関連アークとするイベントデータのＩＤを、検索されたアークＩＤのレコードのイベント集合に追加する。検索に失敗した場合、イベントＩＤとそのイベントデータの関連アークのアークＩＤとの組み合わせを新規にアークイベントテーブルに追加する。【０１０６】
イベント道路マッチ手段４０３は、アークイベントテーブルをイベント道路記憶手段５に記憶させる。ステップＳ４０３１０でアークイベントテーブルに、アークＩＤや、イベント集合に属するイベントデータのＩＤを追加する場合、イベント道路記憶手段５のアークイベントテーブルに追加する。イベント道路マッチ手段４０３は、アークイベントテーブルにイベントデータのＩＤを追加した場合、そのＩＤによって特定されるイベントデータもあわせてイベント道路記憶手段５に記憶させる。【０１０７】
また、イベント道路マッチ手段４０３は、アークＩＤに対応するイベント集合の中に、グリッド優先イベントテーブルで警告フラグがオン（“１”）となっているイベント集合と一致するイベント集合が存在する場合、そのアークＩＤに対応する警告フラグをオン（“１”）とする。【０１０８】
次に、イベント解析手段６について説明する。イベント道路記憶手段５に記憶されたアークイベントテーブルは、道路（アーク）とその道路で生成されたイベントデータとを対応付けている。イベント解析手段６は、イベント道路記憶手段５に記憶されたアークイベントテーブルを参照し、交通状況に関する解析を行う。イベント解析手段６は、イベント道路記憶手段５に記憶されたアークイベントテーブルを参照し、アークＩＤに対応するイベント集合を抽出し、イベント集合に属するイベントデータのＩＤによって特定されるイベントデータを読み込み、そのイベントデータを用いて解析を行えばよい。【０１０９】
例えば、道路毎に渋滞度を判定する場合、イベント解析手段６は、アークイベントテーブルのアークＩＤ毎にイベントデータを読み込み、そのイベントデータに記述された速度の平均値を算出し、アークＩＤ毎に平均値に応じた渋滞度を判定すればよい。例えば、速度の範囲として、速度０以上Ｖ１未満の範囲、Ｖ１以上Ｖ２未満の範囲、Ｖ２以上の範囲を定めておき、アークの平均速度が０以上Ｖ１未満であれば渋滞度「大」と判定し、平均速度がＶ１以上Ｖ２未満であれば渋滞度「中」と判定し、平均速度がＶ２以上であれば渋滞度「低」と判定すればよい。イベント解析手段６は、アーク毎に速度の平均値を算出し、アーク毎に渋滞度を判定する。【０１１０】
また、イベント解析手段６による解析の他の態様として、到着時間推定等が挙げられる。イベント解析手段６は、渋滞度を判定する場合と同様に、アークＩＤ毎にイベントデータに記述された速度の平均値を算出する。また、イベント解析手段６は、例えば、マップマッチングシステムの管理者から車両の出発地点および到着地点を指定された場合、その出発地点から到着地点までのアークの集合を道路ネットワーク記憶手段２に記憶されたアーク情報テーブルおよびノード情報テーブルから探索する。イベント解析手段６は、探索したアークの集合に含まれるアーク毎に、アークの長さ（各アークの始点および終点間の距離）を算出する。このとき、道路ネットワーク記憶手段２に記憶されたアーク情報テーブルにアクセスして各アークＩＤの始点ととなるノードおよび終点となるノードのノードＩＤを読み込み、道路ネットワーク記憶手段２に記憶されたノード情報テーブルにアクセスしてそのノードＩＤに対応する緯度および経度を読み込む。そして、始点となるノードおよび終点となるノードの緯度および経度を座標として二点間の距離を算出すればよい。さらに、イベント解析手段６は、探索したアークの集合に含まれるアーク毎に、アークの長さを速度の平均値で除算することで車両がアークを通過する時間を計算し、その通過時間の和を算出する。この和が、指定された出発地点から到着地点までの移動時間である。イベント解析手段６は、現在時刻からこの移動時間を加えた時刻を到着推定時刻とする。なお、出発地点から到着地点までのアークの集合を探索する処理は、イベント解析手段６以外の装置が実行してもよい。【０１１１】
また、到着時間推定において、アーク毎にイベントデータを２クラスにクラスタリングして、最速移動時間および最悪移動時間を算出して、推定される移動時間に幅を持たせてもよい。イベントデータを２クラスにクラスタリングする場合、イベント解析手段６は、例えばアーク毎に速度の平均値を算出した後、イベントデータを、平均値より大きい速度が記述されたイベントデータのクラスと、平均値より小さい速度が記述されたイベントデータのクラスとに分類すればよい。また、Ｋ−平均法でイベントデータを２クラスにクラスタリングしてもよい。イベント解析手段６は、平均値より大きい速度が記述された各イベントデータにおける速度の平均値を算出し、その平均値を用いて、上述の場合と同様に出発地点から到着地点までの移動時間または到着推定時刻を算出する。この時間が、最速移動時間である。同様に、イベント解析手段６は、平均値より小さい速度が記述された各イベントデータにおける速度の平均値を算出し、その平均値を用いて、上述の場合と同様に出発地点から到着地点までの移動時間または到着推定時刻を算出する。この時間が、最悪移動時間である。【０１１２】
また、イベント解析手段６による他の解析の態様として、移動時間の変動検出が挙げられる。イベント解析手段６は、アーク毎に算出した平均速度を一定時間毎の履歴として記憶装置に記憶する。この一定時間は例えば管理者によって任意に設定される。例えば、３０分であっても１日であってもよい。イベント解析手段６は、履歴として記憶した平均速度の平均値（履歴平均速度）をアーク毎に算出し、新たにアーク毎の平均速度を算出した場合、履歴平均速度の差分を計算する。その差分が閾値よりも大きければ、警告を解析結果出力手段７に表示させる。【０１１３】
イベント解析手段６は、解析結果を解析結果出力手段７に出力させる。例えば、イベント解析手段６は、渋滞度の判定を行った場合、地図上に道路ネットワークを重ね合わせ、渋滞度によって道を色分けした画像を解析結果出力手段７に表示させる。この表示により、管理者が解析結果を確認する。また、イベント解析手段６は、アークイベントテーブル（図１７参照。）において、警告フラグがオン（“１”）とされているアークが存在する場合、そのアークを他のアークと区別して解析結果出力手段７に表示させる。この表示により、管理者は、イベントデータ数が少なかったために解析結果の信頼性が低いアーク（道路）を認識することができる。【０１１４】
次に、マップマッチングシステム全体の動作について説明する。図１８は、マップマッチングシステム全体の動作を示す説明図である。マップマッチングシステムは、グリッド道路記憶手段３にアーク、結合処理前のグリッド、結合処理後のグリッドとの対応関係を記憶させる処理を実行する（グリッド道路生成ステップ、ステップＳ１）。そして、グリッド道路記憶手段３に記憶された情報を参照して、イベント収集手段１が収集したイベントデータに対するマップマッチングを行って解析を行う処理を実行する（イベントマップマッチング解析ステップ、ステップＳ２）。ステップＳ１は、ステップＳ２の前処理であり、一旦ステップＳ１を実行すると、道路ネットワーク記憶手段２が記憶する道路網のデータが変更されない限り、再度ステップＳ１を実行する必要はない。【０１１５】
ステップＳ１は、グリッド道路生成手段８によって実行される。ステップＳ２は、イベント収集手段１、高速マップマッチング手段４、イベント道路記憶手段５、イベント解析手段６および解析結果出力手段７により実行される。前処理であるステップＳ１を実行するグリッド道路生成手段８はバックエンドである。また、随時受信するイベントデータに対して処理を行うイベント収集手段１、高速マップマッチング手段４、イベント道路記憶手段５、イベント解析手段６および解析結果出力手段７はフロントエンドである。グリッド道路記憶手段３は、バックエンドによって生成された情報を記憶する。この情報はフロントエンドによって参照される。【０１１６】
図１９は、ステップＳ１（グリッド道路生成ステップ）の動作を示すフローチャートである。ステップＳ１において、道路グリッド分割手段８０１は、道路ネットワーク記憶手段２に記憶されているアーク情報テーブルおよびノード情報テーブルが表す道路網の領域を、緯度方向および経度方法にそれぞれ等間隔に分割した各グリッドを導出する（道路グリッド分割ステップ、ステップＳ１０１）。ステップＳ１０１において、道路グリッド分割手段８０１は、緯度方向の分割範囲にそれぞれ０から順にインデックスを割り当て、同様に、経度方向の分割範囲にそれぞれ０から順にインデックスを割り当てる。さらに、道路グリッド分割手段８０１は、グリッドを横切るアークの集合を特定し、グリッドとアークとを対応付ける。【０１１７】
ステップＳ１０１の後、グリッド道路結合手段８０２は、道路グリッド分割手段８０１によって生成されたグリッドとアークとを対応付けたデータに対して統合処理を行う（グリッド道路結合ステップ、ステップＳ１０２）。その後、グリッド道路結合手段８０２は、グリッド道路記憶手段３にアーク、結合処理前のグリッド、結合処理後のグリッドとの対応関係を記憶させる（グリッド道路記憶ステップ、ステップＳ１０３）。例えば、グリッド道路結合手段８０２は、図９に例示する配列グリッドテーブルおよび図１０に例示するグリッドアークテーブルをグリッド道路記憶手段３に記憶させる。【０１１８】
上記の道路グリッド分割手段８０１、グリッド道路結合手段８０２の動作の詳細については既に説明した通りである。【０１１９】
図２０は、ステップＳ２（イベントマップマッチング解析ステップ）の動作を示すフローチャートである。ステップＳ２は、随時受信するイベントデータに対する処理であり、ステップＳ２の処理が行われるときには、バックエンドであるグリッド道路生成手段８は動作せず、フロントエンドのみが動作する。【０１２０】
ステップＳ２において、イベント収集手段１は、車両が生成したイベントデータを、基地局を介して受信する（イベント収集ステップ、ステップＳ２０１）。車両は多数存在し、イベント収集手段１は、各車両が送信するイベントデータを受信する。【０１２１】
イベントグリッドマッチ手段４０１は、イベント収集手段１が受信したイベントデータと、結合処理後のグリッドとを対応付け、結合処理後のグリッド毎に対応するイベントデータの集合を特定する（イベントグリッドマッチステップ、ステップＳ２０２）。すなわち、グリッドイベントテーブル（図１３参照。）を導出する。【０１２２】
続いて、イベント処理優先度判定手段４０２は、結合処理後のグリッドに対応付けられたイベントデータの数が最大イベント数より多ければ、そのイベントデータから最大イベント数のイベントデータを抽出し、結合処理後のグリッドに対応付けられたイベントデータの数が最大イベント数以下であればそのグリッドに対応付けられたイベントデータを全て抽出する（イベントデータ抽出ステップ、ステップＳ２０３）。【０１２３】
イベント道路マッチ手段４０３は、ステップＳ２０３で抽出された全てのイベントデータに対し、イベントデータに対応付けられたグリッド内の道路とイベントデータの発生位置との距離計算を行い、イベントデータがどの道路を走行している車両で生成されたのかを特定する（イベント道路マッチステップ、ステップＳ２０４）。すなわち、アークイベントテーブル（図１７参照。）を導出する。【０１２４】
続いて、イベント解析手段６は、アークイベントテーブルを参照し、道路毎に対応付けられたイベントデータに基づいて、道路の渋滞度の判定等の解析を行う（イベント解析ステップ、ステップＳ２０５）。イベント解析手段６による解析の種類は特に限定されない。【０１２５】
本発明によれば、道路グリッド分割手段８０１が、道路網が存在する領域を緯度方向および経度方法にそれぞれ等間隔に分割したグリッドを導出し、グリッド道路結合手段８０２が、互いに隣接するグリッドであってグリッドに対応付けられている道路の集合が一致する複数のグリッドに対して同一のグリッドＩＤを割り当てる。そして、アークイベントテーブルを導出する際には、結合処理後のグリッドＩＤ毎に処理を行う。このように結合処理を行うことで処理量を少なくすることができ、イベントデータとアークとを対応付ける処理を高速に行うことができる。具体的には、グリッド道路結合手段８０２が結合処理を行うことで、図１６に示すステップＳ４０３０２から始まるループ処理の繰り返し回数が少なくてすむので、アークイベントテーブルを導出する処理を高速に行うことができる。【０１２６】
また、同じ道路を走っている車両のイベントデータには類似していることが多い。そのため、グリッド道路結合手段８０２が結合処理を行うことで、道路の集合が一致する範囲をまとめ、その範囲に対応するイベントデータを特定すれば、類似するイベントデータを道路の集合が一致する範囲に数多く対応付けることができる。そして、そのようなイベントデータが閾値（最大イベント数）以上存在する場合には、そのイベントデータの一部を抽出して道路との対応付けを行い、その上で解析を行っても解析精度は維持でき、かつ、処理負荷を減らして処理の高速化を実現することができる。具体的には、ステップＳ４０３０７，Ｓ４０３０８，Ｓ４０３０９（図１６参照。）の処理量を減らして、アークイベントテーブルを導出する処理を高速に行うことができる。【０１２７】
また、本発明では、フロントエンド（イベント収集手段１、高速マップマッチング手段４、イベント道路記憶手段５、イベント解析手段６および解析結果出力手段７）は、バックエンド（グリッド道路生成手段８）による前処理とは独立に動作する。従って、前処理での処理量の多寡によらず、フロントエンドは上述のように高速に処理を行うことができる。【０１２８】
イベントデータの収集対象とする道路網が広げたとしても、また、イベントデータを送信する車両の数が増大したとしても、本発明は、上記のように高速に処理を行うことができる。すなわち、本発明は、イベントデータの収集対象とする道路網の広さや車両の数に対してスケーラビリティがある。【０１２９】
また、イベント道路マッチ手段４０３の処理結果を用いた解析目的は限定されないので、汎用的な解析に利用することができる。【０１３０】
以上のように本発明によれば、イベントデータと道路とを対応付けたアークイベントとーブルを高速に導出することができる。また、本発明に適用されるイベントデータは、ＩＤ、イベントデータの発生日時、発生位置、および発生時の車両の速度を含んでいるので、渋滞度の判定、到着時間の推定、移動時間の変動検出等の多様な解析を行うことができる。【０１３１】
また、本発明では、アークとして道路ネットワーク記憶手段に記憶させる道路は、主要な道路に限定されずに、細かな道路もアークとして定めることができる。従って、道路の種類を区別することなく、主要な道路だけでなく細かな道路で生成されたイベントデータに対してもアークとの対応付けを行って、解析対象とすることができる。【０１３２】
上記の説明では、結合処理後のグリッドに対応付けられたイベントデータの数が最小イベント数未満であれば警告フラグをオンとする処理を行う場合を示したが、グリッドに対応付けられたイベントデータの数と最小イベント数との比較を行わなくてもよい。すなわち、本発明において最小イベント数が定められていなくてもよい。この場合、警告フラグを用いない。従って、イベント解析手段６が解析結果出力手段７に解析結果を表示させる場合、警告フラグに基づいて道路を区別して表示することはない。【０１３３】
また、イベントデータに車両の進行方向が含まれている場合、イベント道路マッチ手段４０３は、アークイベントテーブルを作成する際に、各アークに「上り」および「下り」の属性を付加し、イベントデータと、アークの「上り」または「下り」のいずれか一方に対応付けてもよい。１つのアークに対応付けられるイベントデータに記述される方向は、互いに逆向きとなる２方向のうちのいずれか一方である。イベントデータに記述されている方向がその２方向のうちの一方であれば、例えば、アークの「上り」に対応付ければよい。また、その逆方向が記述されたイベントデータは、アークの「下り」に対応付ければよい。図２１は、各アークの「上り」および「下り」の属性毎にイベントデータを対応付けたアークイベントテーブルの例である。なお、図２１では、警告フラグフィールドを省略している。また、このようにアークイベントテーブルを導出する場合、ステップＳ４０２０５（図１４参照。）において、最大イベント数よりも多くのイベントデータの中から最大イベント数のイベントデータを選択する際に、一方の方向が記述されたイベントデータの数と、その逆方向が記述されたイベントデータの数ができるだけ近くなるようにイベントデータを選択することが好ましい。あるいは、既に説明した場合と同様に、任意にイベントデータを選択してもよい。また、図２１に例示するアークイベントデータが生成されている場合、イベント解析手段６は、アークの「上り」と「下り」に関してそれぞれ別々に解析を行う。【０１３４】
また、イベントデータにワイパー利用状況が含まれている場合、イベント解析手段６は、道路付近の降雨の有無を判定してもよい。すなわち、アークＩＤに対応するイベントデータのうち、ワイパー利用状況において“使用中”を意味する記述がされているイベントデータが所定数以上存在する場合、そのアーク近辺では雨が降っていると判定してもよい。【０１３５】
同様に、イベントデータにブレーキ利用状況が含まれている場合、イベント解析手段６は、ブレーキ利用状況に基づく渋滞度判定を行ってもよい。すなわち、アークＩＤに対応するイベントデータのうち、ブレーキ利用状況において“使用中”を意味する記述がされているイベントデータが所定数以上存在する場合、そのアークが渋滞中であると判定してもよい。また、渋滞中と判定する代わりに、事故が発生した可能性があると判定してもよい。【０１３６】
実施の形態２．
図２２は、本発明の第２の実施の形態の例を示すブロック図である。第１の実施の形態と同様の構成部については、図１と同一の符号を付し説明を省略する。第２の実施の形態のマップマッピングシステムは、マッチング精度評価手段９を有するマッチング精度評価装置１０５を備える。マッチング精度評価手段９は、グリッドに対応付けられたアークの数に応じて、最大イベント数および最小イベント数をグリッド毎に決定する。【０１３７】
マッチング精度評価手段９は、例えば、プログラムに従って動作するＣＰＵによって実現される。【０１３８】
また、マッチング精度評価手段９は、マップマッチング装置１０１あるいは道路データ生成装置１０３に設けられていてもよい。マッチング精度評価手段９がマップマッチング装置１０１に設けられる場合、マッチング精度評価手段９と高速マップマッチング手段４は、マップマッピングプログラムに従って動作する同一のＣＰＵによって実現される。また、道路データ記憶装置１０２、道路ネットワーク記憶装置１０４およびマッチング精度評価装置１０５が同一の装置で実現されていてもよい。また、各手段が全て同一の装置に設けられる構成であってもよい。このように、第２の実施の形態のマップマッピングシステムの構成は、図２２に示す構成に限定されるわけでない。【０１３９】
マッチング精度評価手段９は、グリッド道路結合手段８０２によってグリッド道路記憶手段３に記憶されたグリッドアークテーブルを参照する。そして、マッチング精度評価手段９は、グリッドに対応付けられたアークの数に応じて最大イベント数および最小イベント数を決定する。マッチング精度評価手段９は、この処理をグリッド毎に行う。【０１４０】
マッチング精度評価手段９は、グリッドアークテーブルにおける各グリッドＩＤ毎に、アーク数が多いほど、「最小イベント数」＜「最大イベント数」を満足しつつ、最小イベント数および最大イベント数をより大きな値として決定する。例えば、マッチング精度評価手段９は、最小イベント数をアークの数と同数とし、最大イベント数をアークの数の２倍として定めてもよい。ただし、この最小イベント数および最大イベント数の計算は一例であり、他の計算によってグリッドＩＤ毎に最小イベント数および最大イベント数を決定してもよい。最小イベント数および最大イベント数の計算は、グリッド（結合処理後のグリッド）に対応するアーク数が多いほど最小イベント数および最大イベント数を大きな値に定め、かつ、「最小イベント数」＜「最大イベント数」を満足する計算であればよい。【０１４１】
マッチング精度評価手段９は、グリッドＩＤ毎に定めた最小イベント数および最大イベント数をグリッドＩＤに対応付けてグリッド道路記憶手段３に記憶させる。例えば、グリッドアークテーブルに最小イベント数および最大イベント数を追加する。図２３は、最小イベント数および最大イベント数を追加したグリッドアークテーブルの例を示す。図２３に示すグリッドＩＤおよびアーク集合は、第１の実施の形態で説明したグリッドアークテーブル（図１０参照。）と同様である。精度評価値Ｔ３０５は、最小イベント数および最大イベント数を示す。図２３では、最小イベント数および最大イベント数を“（最小イベント数，最大イベント数）”というフォーマットで記述する場合を例示しているが、最小イベント数および最大イベント数を記述するフォーマットは、他のフォーマットでもよい。【０１４２】
また、イベント処理優先度判定手段４０２は、ステップＳ４０２０５（図１４参照。）の処理を行う前に、グリッド道路記憶手段３にアクセスして、注目グリッドＩＤに対応する最小イベント数および最大イベント数を読み込む。そして、その最大イベント数を用いてステップＳ４０２０５の処理を行う。また、イベント処理優先度判定手段４０２は、警告フラグをオンとするか否かを、その最小イベント数を用いて判定する。【０１４３】
その他の動作については、第１の実施の形態と同様である。【０１４４】
一般に、アークの数が多いほど、解析に必要なイベントデータの数が多く必要であると考えられる。本実施の形態では、グリッドに対応するアーク数が多いほど最小イベント数、最大イベント数を大きな値に定めるので、より高精度にイベントデータを解析することができる。【０１４５】
実施の形態３．
図２４は、本発明の第３の実施の形態の例を示すブロック図である。第１の実施の形態、第２の実施形態と同様の構成部については、図１、図２２と同一の符号を付し説明を省略する。ただし、本実施の形態では、マッチング精度評価手段９の動作が、第２の実施の形態とは異なる。なお、マッチング精度評価手段９を備えるマッチング精度評価装置１０５は、他の装置とは別個の装置でなくてもよい。この点は、第２の実施の形態と同様である。例えば、マッチング精度評価手段９は、マップマッチング装置１０１に設けられていてもよい。この場合、マッチング精度評価手段９と高速マップマッチング手段４は、マップマッピングプログラムに従って動作する同一のＣＰＵによって実現される。【０１４６】
本実施の形態のグリッド道路結合手段８０２は、結合処理後のグリッドにおいて、他のグリッドとの境界となる各辺の両端点の緯度および経度もグリッドＩＤとともにグリッドアークテーブルに含める。【０１４７】
本実施の形態のマッチング精度評価手段９は、グリッド内を通過するアークの長さの総和に応じて最大イベント数および最小イベント数をグリッド毎に決定する。この動作は、例えば、以下に示すように行えばよい。マッチング精度評価手段９は、グリッドアークテーブルを参照して、１つのグリッドＩＤを選択し、そのグリッドＩＤに対応する各アークＩＤを読み込む。そして、そのグリッドＩＤに対応する配列ＩＤを配列グリッドテーブルから読み込む。さらに、マッチング精度評価手段９は、グリッドＩＤに対応する各アークの始点または終点となるノードであって、グリッドＩＤが示すグリッド内に属するノードを検索する。グリッドＩＤに対応する各アークの始点または終点となるノードは、道路ネットワーク記憶手段２に記憶されるアーク情報テーブル（図３参照。）にアクセスして特定する。また、そのノード緯度および経度は、道路ネットワーク記憶手段２に記憶されるノード情報テーブル（図４参照。）にアクセスして特定する。【０１４８】
式（１）、式（２）におけるイベントの経度およびイベントの緯度を、アークの始点または終点のノードの緯度、経度に置き換え、式（１）、式（２）と同様の計算を行う。この結果得られた、経度のインデックスおよび経度のインデックスの組み合わせが、選択したグリッドＩＤに対応する配列ＩＤと一致すれば、そのノードは、グリッドＩＤに対応する各アークの始点または終点となるノードであって、グリッドＩＤが示すグリッド内に属するノードであると判定する。【０１４９】
マッチング精度評価手段９は、検索したノードを始点または終点とする各アークの両端点の緯度および経度と、選択したグリッドＩＤが示すグリッドの辺の両端点の緯度および経度を用いて、検索したノードから伸びるアークと、選択したグリッドＩＤが示すグリッドの辺との交点の緯度および経度を求める。図２５は、選択したグリッドＩＤが示すグリッド内で検索したノードおよびそのノードから伸びるアークの例を示す説明図である。図２５に示すノードｎ２は、グリッドＩＤに対応する各アークの始点または終点となるノードであって、グリッドＩＤが示すグリッド内に属するノードとして検索されたノードである。ここでは、グリッドＩＤとしてＧ１を選択した場合を例示している。マッチング精度評価手段９は、ノードｎ２を始点または終点とするアークａ１の両端点の緯度および経度を道路ネットワーク記憶手段２から読み込む。マッチング精度評価手段９は、グリッドＩＤが示すグリッドの辺ｇ１の両端点の緯度および経度をグリッドアークテーブル読み込み、アークａ１と辺ｇ１の交点の緯度および経度を算出する。マッチング精度評価手段９は、アークａ１の両端点の緯度および経度から、アークａ１を含む直線の方程式を計算し、同様に、辺ｇ１の両端点の緯度および経度から、辺ｇ１を含む直線の方程式を計算し、その２直線の交点として、ａ１とｇ１の交点の緯度および経度を計算すればよい。そして、マッチング精度評価手段９は、その交点とノードｎ２との距離ｐ１を計算する。マッチング精度評価手段９は、ｎ２から伸びる他のアークａ２についても、アークａ２および辺ｇ２の交点とｎ２との距離ｐ２を求める。このように求めたノードｎ２と、ノードｎ２から伸びるアークと辺との交点との距離の和を計算することで、グリッド内を通過するアークの長さの総和を求める。【０１５０】
マッチング精度評価手段９は、グリッドアークテーブルを参照して、個々のグリッドＩＤを順に選択し、グリッドＩＤ毎に上記の処理を行う。【０１５１】
マッチング精度評価手段９は、グリッド内を通過するアークの長さの総和を求めたならば、グリッド内のアークの長さの総和に応じて、最大イベント数および最小イベント数を決定する。この決定もグリッド毎に行う。【０１５２】
マッチング精度評価手段９は、グリッド内を通過するアークの長さの総和が大きいほど、「最小イベント数」＜「最大イベント数」を満足しつつ、最小イベント数および最大イベント数をより大きな値として決定する。例えば、アークの長さの総和に比例した値として、グリッドＩＤ毎に最小イベント数および最大イベント数を決定してもよい。ただし、この最小イベント数および最大イベント数の計算は一例であり、他の計算によってグリッドＩＤ毎に最小イベント数および最大イベント数を決定してもよい。最小イベント数および最大イベント数の計算は、グリッド（結合処理後のグリッド）を通過するアークの長さの総和が大きいほど、最小イベント数および最大イベント数を大きな値に定め、かつ、「最小イベント数」＜「最大イベント数」を満足する計算であればよい。【０１５３】
マッチング精度評価手段９は、第２の実施の形態と同様に、グリッドアークテーブルに最小イベント数および最大イベント数を追加する。また、イベント処理優先度判定手段４０２の動作は、第２の実施の形態と同様である。すなわち、ステップＳ４０２０５（図１４参照。）の処理を行う前に、グリッド道路記憶手段３にアクセスして、注目グリッドＩＤに対応する最小イベント数および最大イベント数を読み込む。そして、その最大イベント数を用いてステップＳ４０２０５の処理を行う。警告フラグをオンとするか否かの判定も、その最小イベント数を用いて行う。【０１５４】
グリッド内を通過するアークの長さが長いほど、解析に必要なイベントデータの数が多く必要であると考えられる。よって、本実施の形態では、アークの長さの総和が大きいほど最小イベント数、最大イベント数を大きな値に定めるので、より高精度にイベントデータを解析することができる。【０１５５】
実施の形態４．
図２６は、本発明の第４の実施の形態の例を示すブロック図である。第１の実施の形態、第２の実施形態と同様の構成部については、図１、図２２と同一の符号を付し説明を省略する。ただし、本実施の形態では、マッチング精度評価手段９の動作が、第２の実施の形態とは異なる。以下、第４の実施の形態では、イベント解析手段６が、渋滞度の判定等ように、イベントデータに含まれる速度を用いた解析を行うものとする。【０１５６】
本実施の形態では、マッチング精度評価手段９はマップマッチング装置１０１に設けられることが好ましいが、他の装置に設けられていてもよい。マッチング精度評価手段９がマップマッチング装置１０１に設けられる場合、マッチング精度評価手段９と高速マップマッチング手段４とイベント分布手段１０は、マップマッピングプログラムに従って動作する同一のＣＰＵによって実現される。【０１５７】
本実施の形態のマップマッチング装置１０１は、イベント分布手段１０を備える。イベント分布手段１０は、イベントグリッドマッチ手段４０１が記憶するグリッドイベントテーブルを参照し、グリッド毎に、グリッドに対応するイベントデータに記述された速度のばらつきの度合いを示す値を計算する。ばらつきを示す値の例として例えば分散があるが、ばらつきを示す値として最大値と最小値の差を用いてもよい。以下、イベント分布手段１０は、グリッド毎に、グリッドに対応するイベントデータに記述された速度の分散を計算する場合を例にして説明する。【０１５８】
例えば、図１３に例示するグリッドイベントテーブルが生成された場合、イベント分布手段１０は、グリッドＩＤ“Ｇ１”に対応するＩＤの集合｛Ｅ１，Ｅ２，Ｅ３，Ｅ４，Ｅ５｝によって特定されるイベントデータの速度の分散を計算する。イベント分布手段１０は、同様に他のグリッドＩＤに関しても、イベントデータに記述された速度の分散を計算する。【０１５９】
マッチング精度評価手段９は、イベント分布手段１０によって計算されたグリッドＩＤ毎の分散値に応じて、各グリッドＩＤ毎の最大イベント数および最小イベント数を決定する。マッチング精度評価手段９は、分散値が大きいほど、「最小イベント数」＜「最大イベント数」を満足しつつ、最小イベント数および最大イベント数をより大きな値として決定する。例えば、分散値に比例した値として、グリッドＩＤ毎に最小イベント数および最大イベント数を決定してもよい。ただし、この最小イベント数および最大イベント数の計算は一例であり、他の計算によってグリッドＩＤ毎に最小イベント数および最大イベント数を決定してもよい。最小イベント数および最大イベント数の計算は、分散が大きいほど、最小イベント数および最大イベント数を大きな値に定め、かつ、「最小イベント数」＜「最大イベント数」を満足する計算であればよい。【０１６０】
マッチング精度評価手段９は、第２の実施の形態と同様に、グリッドＩＤ毎に定めた最小イベント数および最大イベント数をグリッドＩＤに対応付けてグリッド道路記憶手段３に記憶させる。イベント処理優先度判定手段４０２と同様に動作する。【０１６１】
また、上記の説明では、速度の分散を用いる場合を例に説明したが、速度と最大値と最小値との差のように、速度のばらつき度合いを示す値であれば分散以外の値を用いてもよい。また、ここでは、イベント解析手段６が速度を用いて解析を行い、速度のばらつき度合いに応じて最大イベント数および最小イベント数を計算する場合を例に説明したが、計算の対象は速度に限定されず、イベント解析手段６が解析に用いるデータであればよい。【０１６２】
解析に用いられる値のばらつきが大きいほど、解析に必要なイベントデータの数が多く必要であると考えられる。よって、本実施の形態でも、精度の低下を抑えながら高速にマップマッチングを行うことができ、より高精度にイベントデータを解析することができる。【０１６３】
実施の形態５．
図２７は、本発明の第５の実施の形態の例を示すブロック図である。第１の実施の形態、第４の実施形態と同様の構成部については、図１、図２６と同一の符号を付し説明を省略する。ただし、本実施の形態では、マッチング精度評価手段９の動作が、第４の実施の形態とは異なる。本実施の形態においても、マッチング精度評価手段９はマップマッチング装置１０１に設けられることが好ましいが、他の装置に設けられていてもよい。マッチング精度評価手段９はマップマッチング装置１０１に設けられる場合、マッチング精度評価手段９と高速マップマッチング手段４と負荷情報記憶手段１１は、マップマッピングプログラムに従って動作する同一のＣＰＵによって実現される。【０１６４】
また、本実施の形態では、図２３に示すようにグリッドアークテーブルにおいて、グリッドＩＤ毎に最小イベント数および最大イベント数が対応付けられているものとする。【０１６５】
本実施の形態のマッチング精度評価手段９は、高速マップマッチング手段４として動作するコンピュータの負荷状況に応じて、グリッド毎に定められている最大イベント数を変化させる。【０１６６】
本実施の形態のマップマッチング装置１０１は、負荷情報記憶手段１１を備える。負荷情報記憶手段１１は、高速マップマッチング手段４として動作するコンピュータ（図２７に示す例ではマップマッチング装置１０１）の負荷状況を監視する。また、負荷情報記憶手段１１は、コンピュータの負荷状況と、単位時間（ここでは１秒とする。）当たりに解析可能なイベントデータの最大数との関係を示すイベント処理能力テーブルを記憶する。図２８は、イベント処理能力テーブルの例を示す。単位時間当たり解析可能なイベントデータの最大数（以下、最大イベント処理数と記す。）とは、イベント収集手段１がイベントグリッドマッチ手段４０１にイベントデータ入力してから、イベント解析手段６がイベントデータに対する解析結果を解析結果出力手段７に出力させるまでの動作を単位時間内に可能とするイベントデータの最大数である。【０１６７】
図２７に示す負荷Ｔ１１０１は、高速マップマッチング手段４として動作するコンピュータの負荷の段階を示す。図２７に示す例では、コンピュータの負荷の段階を０以上１０未満の値で表している。【０１６８】
図２７に示す最大イベント処理数Ｔ１１０２は、１秒当たりに解析可能なイベントデータの最大数である。図２７に示す例では、コンピュータの負荷が６以上１０未満である場合、最大イベント処理数は３０００である。従って、例えば、コンピュータの負荷が６．２である場合、１秒当たりに、イベント収集手段１がイベントグリッドマッチ手段４０１に最大３０００個のイベントデータを入力し、イベント解析手段６がそのイベントデータに対する解析結果を解析結果出力手段７に出力させることができる。最大イベント処理数Ｔ１１０２は、負荷が低いほど大きな値で定められる。【０１６９】
負荷情報記憶手段１１は、ＯＳに従って動作するコンピュータ自身から負荷状況を取得し、イベント処理能力テーブルを参照して、負荷状況に応じた最大イベント処理数を特定する。【０１７０】
マッチング精度評価手段９は、負荷情報記憶手段１１によって特定された最大イベント処理数に応じて、グリッドアークテーブル内の最大イベント数を変化させる。例えば、マッチング精度評価手段９は、負荷情報記憶手段１１によって特定された最大イベント処理数を、アークの総数で除算した値を求める。この値を、１アーク当たりの最大イベント処理数と記す。マッチング精度評価手段９は、図２３に例示するグリッドアークテーブルを参照して、グリッドＩＤに対応するアークの数と１アーク当たりの最大イベント処理数との積よりも、既に定められている最大イベント数の方が大きければ、その最大イベント数を、算出した積の値以下の最大の整数に修正する。また、グリッドＩＤに対応するアークの数と、１アーク当たりの最大イベント処理数との積が、予め定められていた最大イベント数以上であれば、最大イベント処理数を、予め定められていた最大イベント数に戻す。【０１７１】
例えば、コンピュータの負荷が６．２であり、イベントグリッドマッチ手段４０１によって、最大イベント処理数が３０００であると判定されたとする。また、アークの総数が２０００本であるとする。マッチング精度評価手段９は、例えば道路ネットワーク記憶手段２に記憶されたアーク情報テーブルにおけるアークＩＤの数をカウントしてアークの総数を求めればよい。本例の場合、マッチング精度評価手段９は、アーク当たりの最大イベント処理数を３０００／２０００＝１．５として算出する。【０１７２】
図２９は、グリッドアークテーブルにおける最大イベント数を修正する動作の例を示す説明図である。上記のように、アーク当たりの最大イベント処理数が１．５として算出されたとする。マッチング精度評価手段９は、グリッドＩＤ“Ｇ１”では、対応するアークがａ１，ａ２の２本であるので、最大イベント処理数とアーク数２との積を求める。この場合、１．５×２＝３となる。グリッドＩＤ“Ｇ１”に対応する最大イベント数６は計算結果“３”よりも大きい。従って、マッチング精度評価手段９は、最大イベント数“６”を計算結果“３”以下の最大の整数（ここでは３）に変更する（図２９に示す第１レコードを参照。）。【０１７３】
マッチング精度評価手段９は、他のグリッドＩＤに関しても同様の処理を行う。【０１７４】
イベント処理優先度判定手段４０２は、第２の実施の形態と同様にグリッドアークテーブルが示す最大イベント数を読み込み、ステップＳ４０２０５（図１４参照。）の処理を行う。イベント処理優先度判定手段４０２の動作は、第２の実施の形態と同様である。【０１７５】
本実施の形態によれば、コンピュータの負荷状況に応じてマップマッチングの処理速度や解析精度を制御できる。具体的には、コンピュータの負荷が大きい場合に、ステップＳ４０２０５（図１４参照。）で選択するイベントデータの数を減らして、コンピュータの処理負荷を上げないようにすることができる。また、コンピュータの負荷が小さい場合には、ステップＳ４０２０５で選択するイベントデータの数を減らして解析精度を上げることができる。【０１７６】
実施の形態６．
図３０は、本発明の第６の実施の形態の例を示すブロック図である。第１の実施の形態、第４の実施形態と同様の構成部については、図１、図２６と同一の符号を付し説明を省略する。ただし、本実施の形態では、マッチング精度評価手段９の動作が、第４の実施の形態とは異なる。本実施の形態においても、マッチング精度評価手段９はマップマッチング装置１０１に設けられることが好ましいが、他の装置に設けられていてもよい。マッチング精度評価手段９がマップマッチング装置１０１に設けられる場合、マッチング精度評価手段９と高速マップマッチング手段４と処理遅延監視手段１２は、マップマッピングプログラムに従って動作する同一のＣＰＵによって実現される。【０１７７】
また、本実施の形態でも、第５の実施の形態と同様に、図２３に示すようにグリッドアークテーブルにおいて、グリッドＩＤ毎に最小イベント数および最大イベント数が対応付けられているものとする。【０１７８】
本実施の形態のマッチング精度評価手段９は、イベント収集手段１がイベント記憶手段４０１０１に記憶させたイベントデータの数（換言すれば、イベント収集手段１が受信したイベントデータの数）が増加しているか減少しているかによって、グリッド毎に定められている最大イベント数、最小イベント数を変化させる。【０１７９】
本実施の形態のマップマッチング装置１０１は、処理遅延監視手段１２を備える。処理遅延監視手段１２は、イベント記憶手段４０１０１に記憶されているイベントデータの総数を定期的にカウントし、イベント記憶手段４０１０１に記憶されているイベントデータの総数が増加傾向にあるのか減少傾向にあるのかを判定する。処理遅延監視手段１２は、一定期間毎にイベントデータの数をカウントし、カウント結果から１つ前のカウント結果を減じた差分が正であることが連続している場合に増加傾向であると判定し、その差分が負であることが連続している場合に減少傾向であると判定する。例えば、処理遅延監視手段１２は、イベント記憶手段４０１０１に記憶されているイベントデータの総数を１分単位にカウントして記憶するとともに、過去１０分間のカウント結果をそれぞれ参照する。処理遅延監視手段１２は、過去１０分間分のそれぞれのカウント結果から、その１つ前のカウント結果を減算した差分をそれぞれ求める。この差分が全て正であれば、イベント記憶手段４０１０１に記憶されているイベントデータの総数が増加傾向であると判定する。また、この差分が全て負であれば、イベント記憶手段４０１０１に記憶されているイベントデータの総数が減少傾向であると判定する。ただし、ここで示した判定は例示であり、処理遅延監視手段１２は他の態様で増加傾向か減少傾向かを判定してもよい。例えば、より細かく加減の傾向をレベル分けしてもよい。【０１８０】
図３１は、マッチング精度評価手段９が、イベントデータの加減の傾向に応じて最大イベント数と最小イベント数を変化させる動作の例を示す説明図である。マッチング精度評価手段９は、ベント記憶手段４０１０１に記憶されているイベントデータの数が増加傾向であると判定された場合、各グリッドＩＤに対応する各最大イベント数を減少させる。このとき、各グリッドＩＤに対応する各最小イベント数もあわせて変化させてもよい。また、マッチング精度評価手段９は、ベント記憶手段４０１０１に記憶されているイベントデータの数が減少傾向であると判定された場合、各グリッドＩＤに対応する各最小イベント数を増加させる。このとき、各グリッドＩＤに対応する各最大イベント数もあわせて変化させてもよい。【０１８１】
図３１に示す第１レコードを例に説明すると、イベントデータ数が増加傾向にある場合、最大イベント数を減少させて、精度評価値を（２，６）から（２，５）に変化させている。また、イベントデータ数が減少傾向にある場合、最小イベント数を増加させて、精度評価値を（２，６）から（３，６）に変化させている。【０１８２】
イベント処理優先度判定手段４０２の動作は、第２の実施の形態と同様である。【０１８３】
第６の実施の形態によれば、イベント収集手段１がイベント記憶手段４０１０１に機多くさせるイベントデータ数の増減に応じて、解析精度を制御することができる。【０１８４】
既に説明したように、本発明において最小イベント数が定められていなくてもよい。この場合、第２から第６までの各実施の形態では、最大イベント数のみを制御すればよい。【０１８５】
また、第２、第３、第４、第６の各実施の形態では、最小イベント数および最大イベント数を変化させ、第５の実施の形態では、最大イベント数のみ変化させている。本発明のマップマッピングシステムは、イベントデータ等の状況に応じて、最小イベント数のみを変化させてもよい。【０１８６】
上述した本発明の実施の形態によれば、グリッド道路結合手段が、互いに隣接していて対応付けられているアークの集合が一致する複数のグリッドに対して共通のアークＩＤを割り当て、対応付けられているアークの集合が隣接するいずれのグリッドとも異なるグリッドに対してアークＩＤを割り当て、道路グリッド分割手段によって導出されたグリッドの範囲とグリッドＩＤとグリッドを通過するアークとの関係を示す情報を記憶装置に記憶させ、イベントデータ選択手段が、イベントデータと対応付けられたグリッドＩＤ毎に、対応付けられたイベントデータの数が閾値よりも多ければその閾値の数のイベントデータを選択し、対応付けられたイベントデータの数が閾値以下であれば対応付けられたイベントデータを全て選択する。従って、イベントＩＤ毎に行う処理の処理量を削減し、また、イベントデータ毎に行われるイベント道路マッチ手段の処理量を削減することができる。よって、処理を高速化することができる。【０１８７】
また、同じ道路を走っている車両のイベントデータには類似していることが多いので、グリッドＩＤに対応付けられたイベントデータの中から閾値の数のイベントデータを選択したとしても、解析の精度を維持することができる。従って、大量の車両からイベントデータが送信される場合であっても、マップマッチング結果に基づく解析の精度を落とさないようにしつつ高速にマップマッチングを行うことができる。また、イベント道路マッチ手段によってアークが特定されたイベントデータとそのアークとの対応関係を示す情報の利用目的は限定されないので、種々の解析に汎用的に利用することができる。【０１８８】
以上好ましい実施の形態（及び実施例）を参照して本願発明を説明したが、本願発明は上記実施の形態（及び実施例）に限定されるものでない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１８９】
この出願は、２００７年３月２７日に出願された日本出願特願２００７−０８２６３２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１９０】
本発明は、車両が生成するイベントデータと道路とを対応付けるマップマッチングシステムに好適に適用される。
【図１】
2008117787.tif 000003
【図２】
2008117787.tif 000004
【図３】
2008117787.tif 000005
【図４】
2008117787.tif 000006
【図５】
2008117787.tif 000007
【図６】
2008117787.tif 000008
【図７】
2008117787.tif 000009
【図８】
2008117787.tif 000010
【図９】
2008117787.tif 000011
【図１０】
2008117787.tif 000012
【図１１】
2008117787.tif 000013
【図１２】
2008117787.tif 000014
【図１３】
2008117787.tif 000015
【図１４】
2008117787.tif 000016
【図１５】
2008117787.tif 000017
【図１６】
2008117787.tif 000018
【図１７】
2008117787.tif 000019
【図１８】
2008117787.tif 000020
【図１９】
2008117787.tif 000021
【図２０】
2008117787.tif 000022
【図２１】
2008117787.tif 000023
【図２２】
2008117787.tif 000024
【図２３】
2008117787.tif 000025
【図２４】
2008117787.tif 000026
【図２５】
2008117787.tif 000027
【図２６】
2008117787.tif 000028
【図２７】
2008117787.tif 000029
【図２８】
2008117787.tif 000030
【図２９】
2008117787.tif 000031
【図３０】
2008117787.tif 000032
【図３１】
2008117787.tif 000033
【国際調査報告】
2008117787.tif 000034
2008117787.tif 000035
2008117787.tif 000036
2008117787.tif 000037