(58)【調査した分野】(Int.Cl.,DB名)
前記第2リンクID変換手段によって、前記座標点列をリンクIDに変換した場合には、該座標点列を該リンクIDに対応させて前記マッチングテーブルに格納すると共に、該座標点列で特定される道路の位置と前記地図座標データで特定される該リンクIDのリンクの位置との座標ずれパターンを該リンクIDに対応させて前記マッチングテーブルに格納する第1マッチングテーブル更新手段を備えたことを特徴とする請求項1に記載の道路データ作成装置。
前記第2リンクID変換手段を介して前記座標点列を前記リンクIDに変換できなかった場合には、該座標点列を前記マッチングテーブルに仮確定座標点列として格納する仮座標点列格納手段と、
所定時間間隔毎に前記マッチングテーブルに前記仮確定座標点列が格納されているか否かを判定する仮格納判定手段と、
前記マッチングテーブルに前記仮確定座標点列が格納されていると判定された場合には、該仮確定座標点列に対応する複数の候補リンクを前記地図情報に基づいて抽出する第2候補リンク抽出手段と、
前記第2候補リンク抽出手段によって抽出された複数個の候補リンクの周囲所定範囲内のリンクのリンクIDのうち、前記マッチングテーブルに格納されているリンクIDに対応する前記座標ずれパターンに基づいて、該複数個の候補リンクから1の候補リンクのリンクIDを特定して、前記仮確定座標点列を座標点列に変換して該リンクIDに対応させて該マッチングテーブルに再度格納すると共に、該座標点列で特定される地図上の道路の位置と前記地図座標データで特定される該1の候補リンクの位置との座標ずれパターンを該リンクIDに対応させて前記マッチングテーブルに格納する第2マッチングテーブル更新手段と、
を備えたことを特徴とする請求項2に記載の道路データ作成装置。
【発明を実施するための形態】
【0015】
以下、本発明に係る道路データ作成装置、道路データ作成方法及びプログラムをナビゲーション装置について具体化した一実施例に基づき図面を参照しつつ詳細に説明する。
【0016】
[ナビゲーション装置の概略構成]
先ず、本実施例に係るナビゲーション装置の概略構成について
図1及び
図2に基づいて説明する。
図1は本実施例に係るナビゲーション装置1を示したブロック図である。
図2は、ナビゲーション装置1とA道路情報送信システム3A〜C道路情報送信システム3Cとの通信を説明する説明図である。
【0017】
図1に示すように、本実施例に係るナビゲーション装置1は、自車の現在位置等を検出する現在地検出処理部11と、各種のデータが記録されたデータ記録部12と、入力された情報に基づいて、各種の演算処理を行うナビゲーション制御部13と、操作者からの操作を受け付ける操作部14と、操作者に対して地図等の情報を表示する液晶ディスプレイ(LCD)15と、経路案内等に関する音声ガイダンスを出力するスピーカ16と、A道路情報送信システム3A、B道路情報送信システム3B、C道路情報送信システム3Cや不図示の地図情報配信センタ等との間で携帯電話網等を介して通信を行う通信装置17と、液晶ディスプレイ15の表面に装着されたタッチパネル18とから構成されている。尚、ナビゲーション制御部13に自車の走行速度を検出する不図示の車速センサの出力信号が入力されるように構成してもよい。
【0018】
また、
図2に示すように、ナビゲーション装置1は、ネットワーク2を介してA道路情報送信システム3A、B道路情報送信システム3B、C道路情報送信システム3Cが接続されている。A道路情報送信システム3A、B道路情報送信システム3B、C道路情報送信システム3Cは、それぞれ、警察、日本道路公団等の交通管制システムの情報を収集して作成した道路の渋滞等に関する情報や交通規制情報等の「交通情報」と、各交通情報に関連付けられた道路の位置を特定する「座標点列」と、各道路情報配信システム3A〜3Cを各々識別するシステムIDとを含む最新の道路情報を所定時間間隔で(例えば、5分間隔である。)配信する。また、ネットワーク2としては、例えば、携帯電話回線網、電話回線網、公衆通信回線網、専用通信回線網、インターネット等の通信回線網等の通信系を使用することができる。
【0019】
そして、ナビゲーション装置1は、ネットワーク2を介して各道路情報送信システム3A〜3Cから配信された最新の道路情報を所定時間間隔で(例えば、5分間隔である。)受信することが可能に構成されている。また、この「交通情報」は、例えば、道路の渋滞等に関する道路渋滞情報、道路工事、建築工事等による交通規制情報等の交通情報に関する詳細情報である。該詳細情報は、道路渋滞情報の場合、渋滞の実際の長さ、渋滞解消の見込まれる時刻等であり、交通規制情報の場合、道路工事、建築工事等の継続期間、通行止め、片側交互通行、車線規制等の交通規制の種類、交通規制の時間帯等である。
【0020】
また、道路の位置を特定する「座標点列」は、各道路情報送信システム3A〜3Cが、それぞれ記憶している地図座標データから、道路の位置を特定するための、少なくとも2個の座標(始点、終点)で構成されたものである。また、道路の位置を特定する「座標点列」は、道路が複雑に屈曲している場合には、屈曲している数に応じて、最適な形状補間点を備えている。例えば、1回だけ直角に屈曲している道路の場合には、この直角に曲がっている地点を形状補間点とすることで、始点、終点、形状補間点によって座標点列が構成される。
【0021】
以下に、ナビゲーション装置1を構成する各構成要素について説明すると、現在地検出処理部11は、GPS31等からなり、自車位置、自車方位、走行距離等を検出することが可能となっている。尚、現在地検出処理部11に不図示の方位センサや距離センサ等を接続するようにしてもよい。
【0022】
また、データ記録部12は、外部記憶装置及び記録媒体としてのハードディスク(図示せず)やフラッシュメモリ(図示せず)等と、ハードディスク等に記憶された地図情報データベース(地図情報DB)25、交通情報データベース(交通情報DB)27、マッチングデータベース(マッチングDB)28及び所定のプログラム等を読み出すとともにハードディスクやフラッシュメモリ等に所定のデータを書き込む為のドライバ(図示せず)とを備えている。
【0023】
また、地図情報DB25には、ナビゲーション装置1の走行案内や経路探索に使用されるナビ地図情報26が格納されている。また、交通情報DB27には、各道路情報送信システム3A〜3Cから受信した交通情報を収集して作成した渋滞の実際の長さ、所要時間、渋滞の原因、渋滞解消の見込まれる時刻等から構成される現況の道路の渋滞等に関する情報である現況交通情報が、後述のように各交通情報に対応する座標点列から変換されたナビ地図情報26のリンクIDに関連付けられて格納されている。
【0024】
また、マッチングDB28には、A道路情報送信システム3A、B道路情報送信システム3B、C道路情報送信システム3Cの各々に関連付けられた各マッチングテーブルF1〜F3毎に、各道路情報送信システム3A〜3Bから受信した座標点列を変換するナビ地図情報26のリンクID等を記憶するマッチングデータファイル51(
図3参照)が格納されている。
【0025】
ここで、ナビ地図情報26は、経路案内及び地図表示に必要な各種情報から構成されており、例えば、各新設道路を特定するための新設道路情報、地図を表示するための地図表示データ、各交差点に関する交差点データ、ノード点に関するノードデータ、道路(リンク)に関するリンクデータ、経路を探索するための探索データ、施設の一種である店舗等のPOI(Point of Interest)に関する施設データ、地点を検索するための検索データ等から構成されている。
【0026】
また、ノードデータとしては、実際の道路の分岐点(交差点、T字路等も含む)、各道路に曲率半径等に応じて所定の距離ごとに設定されたノードの座標(位置)、ノードが交差点に対応するノードであるか等を表すノード属性、ノードに接続するリンクの識別番号であるリンクIDのリストである接続リンク番号リスト、ノードにリンクを介して隣接するノードのノード番号のリストである隣接ノード番号リスト等に関するデータ等が記録される。
【0027】
また、リンクデータとしては、道路を構成する各リンクに関してリンクを特定するリンクID、リンクの長さを示すリンク長、リンクの始点と終点の座標位置(例えば、緯度と経度である。)、中央分離帯の有無、リンクの属する道路の幅員、勾(こう)配、カント、バンク、路面の状態、道路の車線数、車線数の減少する箇所、幅員の狭くなる箇所、踏切り等を表すデータが、コーナに関して、曲率半径、交差点、T字路、コーナの入口及び出口等を表すデータが、道路属性に関して、降坂路、登坂路等を表すデータが、道路種別に関して、国道、県道、細街路等の一般道のほか、高速自動車国道、都市高速道路、一般有料道路、有料橋等の有料道路を表すデータがそれぞれ記録される。
【0028】
また、施設データとしては、各地域のホテル、遊園地、宮殿、病院、ガソリンスタンド、駐車場、駅、空港、フェリー乗り場、インターチェンジ(IC)、ジャンクション(JCT)、パーキングエリア(PA)等のPOIに関する名称や住所、電話番号、地図上の座標位置(例えば、中心位置、入口、出口等の緯度と経度である。)、地図上に施設の位置を表示する施設アイコンやランドマーク等のデータがPOIを特定する施設IDとともに記憶されている。また、ユーザが登録したコンビニエンスストア、ガソリンスタンド等の登録施設を特定する登録施設IDも記憶されている。
また、地図情報DB25の内容は、不図示の地図情報配信センタから通信装置17を介して配信された更新情報をダウンロードすることによって更新される。
【0029】
また、
図1に示すように、ナビゲーション装置1を構成するナビゲーション制御部13は、ナビゲーション装置1の全体の制御を行う演算装置及び制御装置としてのCPU41、並びにCPU41が各種の演算処理を行うに当たってワーキングメモリとして使用されるとともに、経路が探索されたときの経路データ等が記憶されるRAM42、制御用のプログラム等が記憶されたROM43等の内部記憶装置や、時間を計測するタイマ45等を備えている。
【0030】
また、ROM43には、後述の各道路情報送信システム3A〜3Cから受信した道路情報に含まれる、各交通情報に関連付けられた道路の位置を特定する座標点列をナビ地図情報26のリンクIDに変換する「リンクID変換処理」(
図4参照)のプログラムが記憶されている。また、後述の各マッチングテーブルF1〜F3に格納された仮確定座標点列を確定された座標点列に変換すると共に、この座標点列に対応するナビ地図情報26のリンクIDを格納する「座標点列確定処理」(
図8参照)のプログラム等が記憶されている。
【0031】
更に、前記ナビゲーション制御部13には、操作部14、液晶ディスプレイ15、スピーカ16、通信装置17、タッチパネル18の各周辺装置(アクチュエータ)が電気的に接続されている。
この操作部14は、走行開始時の現在位置を修正し、案内開始地点としての出発地及び案内終了地点としての目的地を入力する際や施設に関する情報の検索を行う場合等に操作され、各種のキーや複数の操作スイッチから構成される。そして、ナビゲーション制御部13は、各スイッチの押下等により出力されるスイッチ信号に基づき、対応する各種の動作を実行すべく制御を行う。
【0032】
また、液晶ディスプレイ15には、現在走行中の地図情報(
図7等参照)、目的地周辺の地図情報、操作案内、操作メニュー、キーの案内、現在地から目的地までの推奨経路、推奨経路に沿った案内情報、交通情報、ニュース、天気予報、時刻、メール、テレビ番組等が表示される。
【0033】
また、スピーカ16は、ナビゲーション制御部13からの指示に基づいて、推奨経路に沿った走行を案内する音声ガイダンス等を出力する。ここで、案内される音声ガイダンスとしては、例えば、「200m先、○○交差点を右方向です。」等がある。
【0034】
また、通信装置17は、各道路情報送信システム3A〜3Cや不図示の地図情報配信センタ等と通信を行う携帯電話網等による通信手段であり、各道路情報送信システム3A〜3Cから配信された最新の道路情報を受信すると共に、地図情報配信センタとの間で最もバージョンの新しい更新地図情報等の送受信を行う。
【0035】
また、タッチパネル18は、液晶ディスプレイ15の表示画面上に装着された透明なパネル状のタッチスイッチであり、液晶ディスプレイ15の画面に表示されたボタンや地図上を押下することによって各種指示コマンドの入力や、表示画面上を指で押下してドラッグした場合に、各指の移動方向及び移動速度の検出や、表示画面上を押下した指の数の検出等をすることが可能に構成されている。尚、タッチパネル18は、液晶ディスプレイ15の画面を直接押下する光センサ液晶方式等で構成してもよい。
【0036】
次に、マッチングDB27に格納されるマッチングデータファイル51の一例について
図3に基づいて説明する。
図3に示すように、マッチングデータファイル51は、A道路情報送信システム3A、B道路情報送信システム3B、C道路情報送信システム3Cの各々に関連付けられた各マッチングテーブルF1〜F3から構成されている。各マッチングテーブルF1〜F3は、同じ構成なので、マッチングテーブルF1の構成について説明する。
【0037】
マッチングテーブルF1は、「リンクID」と、「A道路情報送信システムの座標点列」と、「座標ずれ量」と、「確定フラグ」とから構成されている。この「リンクID」には、ナビ地図情報26のリンクIDが記憶されている。また、「A道路情報送信システムの座標点列」には、A道路情報送信システム3Aから受信した道路情報に含まれる、道路の位置を特定する座標点列が記憶されている。従って、この座標点列の始点と終点の座標は、A道路情報送信システム3Aが記憶している地図座標データの座標であり、リンクの両端点の各ノードの座標に相当するものである。
【0038】
また、「座標ずれ量」は、「A道路情報送信システムの座標点列」をナビ地図情報26の地図上に配置したときの当該座標点列に対する、「リンクID」によって識別されるナビ地図情報26のリンクのX方向とY方向の座標ずれ量が、それぞれ記憶されている。尚、ナビ地図情報26の地図の東西方向をX方向とし、東側方向へのずれ量を「+」、西側方向へのずれ量を「−」としている。また、ナビ地図情報26の地図の南北方向をY方向とし、北側方向へのずれ量を「+」、南側方向へのずれ量を「−」としている。
【0039】
例えば、「座標ずれ量」の「X方向」が「−15」、「Y方向」が「+20」の場合には、「リンクID」で識別されるナビ地図情報26のリンクは、「A道路情報送信システムの座標点列」をナビ地図情報26の地図上に配置したときの当該座標点列から、西側方向へ「−15」、北側方向へ「+20」だけずれた位置にある旨を表している。
【0040】
また、「確定フラグ」には、「A道路情報送信システムの座標点列」に対応する「リンクID」と「座標ずれ量」が記憶されて、当該座標点列が確定されている旨を表す「1」、又は、「A道路情報送信システムの座標点列」に対応する「リンクID」と「座標ずれ量」が記憶されておらず、当該座標点列が新規道路の仮確定座標点列である旨を表す「0」が記憶されている。
【0041】
つまり、「確定フラグ」に「0」が記憶されている場合には、後述のようにA道路情報送信システム3Aから受信した道路情報に含まれる座標点列が「仮確定座標点列」として「A道路情報送信システムの座標点列」に記憶され、「リンクID」及び「座標ずれ量」には、データが記憶されていない(
図5参照)。
【0042】
従って、マッチングテーブルF2の「B道路情報送信システムの座標点列」には、B道路情報送信システム3Bから受信した道路情報に含まれる、道路の位置を特定する座標点列が記憶されている。また、マッチングテーブルF3の「C道路情報送信システムの座標点列」には、C道路情報送信システム3Cから受信した道路情報に含まれる、道路の位置を特定する座標点列が記憶されている。
【0043】
[リンクID変換処理]
次に、上記のように構成されたナビゲーション装置1のCPU41が実行する処理であって、受信した道路情報に含まれる、各交通情報に関連付けられた道路の位置を特定する座標点列をナビ地図情報26のリンクIDに変換する「リンクID変換処理」について
図4乃至
図7に基づいて説明する。尚、
図4にフローチャートで示されるプログラムは、各道路情報送信システム3A〜3Cのいずれかから道路情報を受信した際に、CPU41によって実行される。
【0044】
図4に示すように、先ず、ステップ(以下、Sと略記する)11において、CPU41は、通信装置17を介して各道路情報送信システム3A〜3Cのいずれかから受信した道路情報をRAM42に記憶する。
【0045】
そして、S12において、CPU41は、受信した道路情報をRAM42から読み出し、当該道路情報に含まれる各道路情報送信システム3A〜3Cを識別するシステムIDを取得する。つまり、CPU41は、道路情報が各道路情報配信システム3A〜3Cのうち、いずれから配信されたか、当該システムIDによって特定する。
【0046】
そして、S13において、CPU41は、受信した道路情報に含まれる「座標点列」をRAM42から順番に読み出し、上記S12で取得したシステムIDに対応するマッチングテーブルの「座標点列」として、各「座標点列」に対応する「リンクID」に変換する。つまり、CPU41は、上記S12で取得したシステムIDに対応するマッチングテーブルから読み出した各「リンクID」を当該各「座標点列」に対応付けて、順次RAM42に記憶する。また、CPU41は、当該道路情報に含まれる「座標点列」のうち、「リンクID」に変換できなかった座標点列を、「変換できなかった座標点列」としてRAM42に記憶する。
【0047】
具体的には、例えば、上記S12で取得したシステムIDが、A道路情報送信システム3Aを識別するシステムIDの場合には、CPU41は、道路情報に含まれる「座標点列」を順番に読み出し、マッチングテーブルF1の「A道路情報送信システムの座標点列」として、それぞれに対応する「リンクID」を読み出し、当該各「座標点列」に対応付けてRAM42に記憶する。
【0048】
例えば、
図3に示すように、A道路情報送信システム3Aから受信した道路情報の座標点列が「X1、Y1、X2、Y2、X3、Y3」の場合には、CPU41は、マッチングテーブルF1のリンクID「100」を、当該「X1、Y1、X2、Y2、X3、Y3」の座標点列に対応付けてRAM42に記憶する。
【0049】
続いて、S14において、CPU41は、上記S12で取得したシステムIDに対応するマッチングテーブルを使用して、道路情報に含まれる各「座標点列」を全て「リンクID」に変換できたか否かを判定する判定処理を実行する。つまり、CPU41は、当該道路情報に含まれる座標点列が「変換できなかった座標点列」としてRAM42に記憶されているか否かを判定する判定処理を実行する。
【0050】
そして、当該道路情報に含まれる各「座標点列」を全て「リンクID」に変換できたと判定した場合、つまり、当該道路情報に含まれる座標点列が「変換できなかった座標点列」としてRAM42に記憶されていないと判定した場合には(S14:YES)、CPU41は、当該処理を終了する。
【0051】
一方、各「座標点列」を全て「リンクID」に変換できなかったと判定した場合、つまり、当該道路情報に含まれる座標点列が「変換できなかった座標点列」としてRAM42に記憶されていると判定した場合には(S14:NO)、CPU41は、S15の処理に移行する。S15において、「変換できなかった座標点列」としてRAM42に記憶されている座標点列が、既に、上記S12で取得したシステムIDに対応するマッチングテーブルの「確定フラグ」が「0」に対応した「仮確定座標点列」として記憶されているか否かを判定する判定処理を実行する。
【0052】
そして、「変換できなかった座標点列」としてRAM42に記憶されている座標点列が、既に、上記S12で取得したシステムIDに対応するマッチングテーブルの「確定フラグ」が「0」に対応した「仮確定座標点列」として記憶されていると判定した場合には(S15:YES)、CPU41は、当該処理を終了する。
【0053】
例えば、
図3に示すように、「変換できなかった座標点列」としてRAM42に記憶されている座標点列「X8、Y8、X9、Y9、X10、Y10」が、既に、上記S12で取得したシステムIDに対応するマッチングテーブルF1の「確定フラグ」が「0」に対応した「A道路情報送信システムの座標点列」に仮確定座標点列「X8、Y8、X9、Y9、X10、Y10」として記憶されている場合には(S15:YES)、CPU41は、当該処理を終了する。
【0054】
一方、「変換できなかった座標点列」としてRAM42に記憶されている座標点列が、上記S12で取得したシステムIDに対応するマッチングテーブルの「確定フラグ」が「0」に対応した「仮確定座標点列」として記憶されていないと判定した場合には(S15:NO)、CPU41は、新規道路の座標点列であると判定して、S16の処理に移行する。S16において、CPU41は、後述の「マッチングテーブル更新処理」のサブ処理(
図5及び
図6参照)を実行した後、当該処理を終了する。
【0055】
[マッチングテーブル更新処理]
次に、上記S16でCPU41が実行する「マッチングテーブル更新処理」のサブ処理について
図5乃至
図7に基づいて説明する。
図5及び
図6に示すように、先ず、S111において、CPU41は、「変換できなかった座標点列」をRAM42から読み出し、ナビ地図情報26の地図上に、この「変換できなかった座標点列」を描く。
【0056】
そして、CPU41は、ナビ地図情報26の地図座標データで描かれる道路の各リンクのうち、「変換できなかった座標点列」の周囲所定範囲内(例えば、「変換できなかった座標点列」を中心とする300m四方の範囲内である。)において、当該「変換できなかった座標点列」の方向に沿っており、形状が似ているリンクを「候補リンク」として抽出して、各候補リンクのリンクIDをRAM42に記憶する。
【0057】
続いて、S112において、CPU41は、複数個の候補リンクが抽出されているか否か、つまり、候補リンクのリンクIDをRAM42から読み出し、候補リンクのリンクIDが複数個あるか否かを判定する判定処理を実行する。そして、候補リンクが1個だけ抽出されていると判定した場合には(S112:NO)、CPU41は、S113の処理に移行する。S113において、CPU41は、上記S11で受信した道路情報に含まれる当該「変換できなかった座標点列」を候補リンクのリンクIDに変換する。つまり、CPU41は、候補リンクのリンクIDを当該「変換できなかった座標点列」に対応付けてRAM42に記憶する。
【0058】
そして、S114において、CPU41は、上記S12で取得したシステムIDに対応するマッチングテーブルの「座標点列」に当該「変換できなかった座標点列」を記憶し、候補リンクのリンクIDをマッチングテーブルの「リンクID」に記憶し、マッチングテーブルの「確定フラグ」に「1」を記憶する。また、CPU41は、ナビ地図情報26の地図上に配置した「変換できなかった座標点列」に対する、当該候補リンクのX方向とY方向の座標ずれ量を算出し、マッチングテーブルの「座標ずれ量」の「X方向」、「Y方向」に各々を記憶して、マッチングテーブルを更新する。
【0059】
また、CPU41は、RAM42から「ずれ補正フラグ」を読み出し、ずれ補正フラグを「オフ」に設定して、再度RAM42に記憶する。その後、CPU41は、当該サブ処理を終了してメインフローチャートに戻り、当該処理を終了する。尚、「ずれ補正フラグ」は、ナビゲーション装置1の起動時に、「オフ」に設定されてRAM42に記憶されている。
【0060】
一方、複数個の候補リンクが抽出されていると判定した場合には(S112:YES)、CPU41は、S115の処理に移行する。S115において、CPU41は、上記S12で取得したシステムIDに対応するマッチングテーブルの「リンクID」に記憶されている各リンクIDのうち、当該複数個の候補リンクの周囲所定範囲内(例えば、複数個の候補リンクを中心とする400m四方の範囲内である。)に存在するリンクのリンクIDを抽出して、RAM42に記憶する。
【0061】
続いて、S116において、CPU41は、マッチングテーブルの「リンクID」に記憶されている各リンクIDのうち、当該複数個の候補リンクの周囲所定範囲内に存在するリンクのリンクIDが2個以上抽出されたか否かを判定する判定処理を実行する。そして、マッチングテーブルの「リンクID」に記憶されている各リンクIDのうち、当該複数個の候補リンクの周囲所定範囲内に存在するリンクのリンクIDが1個又は0個であると判定した場合には(S116:NO)、CPU41は、S117の処理に移行する。
【0062】
S117において、CPU41は、上記S12で取得したシステムIDに対応するマッチングテーブルの「座標点列」に当該「変換できなかった座標点列」を「仮確定座標点列」として記憶し、また、マッチングテーブルの「仮確定座標点列」に対応する「確定フラグ」に「0」を記憶して、マッチングテーブルを更新する。従って、マッチングテーブルの「仮確定座標点列」に対応する「リンクID」、「座標ずれ量」には、データが記憶されていない。また、CPU41は、RAM42から「ずれ補正フラグ」を読み出し、ずれ補正フラグを「オフ」に設定して、再度RAM42に記憶する。その後、CPU41は、当該サブ処理を終了してメインフローチャートに戻り、当該処理を終了する。
【0063】
例えば、
図3に示すように、CPU41は、「変換できなかった座標点列」としてRAM42に記憶されている座標点列「X8、Y8、X9、Y9、X10、Y10」を、上記S12で取得したシステムIDに対応するマッチングテーブルF1の「A道路情報送信システムの座標点列」に仮確定座標点列「X8、Y8、X9、Y9、X10、Y10」として記憶する。また、CPU41は、マッチングテーブルF1の仮確定座標点列「X8、Y8、X9、Y9、X10、Y10」に対応する「確定フラグ」に「0」を記憶する。また、CPU41は、マッチングテーブルF1の仮確定座標点列「X8、Y8、X9、Y9、X10、Y10」に対応する「リンクID」、「座標ずれ量」にはデータを記憶しない。
【0064】
一方、マッチングテーブルの「リンクID」に記憶されている各リンクIDのうち、当該複数個の候補リンクの周囲所定範囲内に存在するリンクのリンクIDが2個以上であると判定した場合には(S116:YES)、CPU41は、S118の処理に移行する。S118においてCPU41は、上記S12で取得したシステムIDに対応するマッチングテーブルの当該2個以上のリンクIDのそれぞれに対応する「座標ずれ量」のX方向及びY方向の各データを読み出し、各「座標ずれ量」が、ほぼ同じ方向でほぼ同じ距離であるか否か、つまり、各「座標ずれ量」が、同一方向パターンか否かを判定する判定処理を実行する。
【0065】
そして、当該2個以上のリンクIDのそれぞれに対応する「座標ずれ量」が、ほぼ同じ方向でほぼ同じ距離である、つまり、同一方向パターンであると判定した場合には(S118:YES)、CPU41は、S119の処理に移行する。
【0066】
S119において、CPU41は、ナビ地図情報26の地図上に配置した「変換できなかった座標点列」に対する、各候補リンクのX方向とY方向の座標ずれ量を算出する。そして、CPU41は、各候補リンクのうち、「変換できなかった座標点列」に対するX方向とY方向の座標ずれ量が、当該2個以上のリンクIDのそれぞれに対応する「座標ずれ量」とほぼ同じ方向でほぼ同じ距離の候補リンクを、当該「変換できなかった座標点列」に対応する候補リンクとして抽出する。
【0067】
例えば、
図7に示すように、CPU41は、ナビ地図情報26の地図上において、各座標P1、P2、P3によって構成された「変換できなかった座標点列Q1」の周囲所定範囲内において、当該「変換できなかった座標点列Q1」の方向に沿っており、形状が似ている各リンク61、62を「候補リンク」として抽出して、各候補リンク61、62のリンクIDをRAM42に記憶する。
【0068】
そして、CPU41は、上記S12で取得したシステムIDに対応するマッチングテーブルの「リンクID」から、各候補リンク61、62の周囲所定範囲内に存在する各リンク63、64のリンクIDを抽出する。そして、CPU41は、マッチングテーブルの各リンク63、64のリンクIDに対応する「座標ずれ量」、つまり、各座標点列R1、R2に対する各リンク63、64の「座標ずれ量」が、ほぼ同じ方向でほぼ同じ距離であることから、「座標ずれパターン」は同一方向パターンであると判定する。
【0069】
そして、CPU41は、各候補リンク61、62のうち、マッチングテーブルの各リンク63、64のリンクIDに対応する「座標ずれ量」とほぼ同じ方向で同じ距離の候補リンク62を、当該「変換できなかった座標点列Q1」に対応する候補リンクとして抽出する。
【0070】
そして、
図5に示すように、S120において、CPU41は、上記S11で受信した道路情報に含まれる当該「変換できなかった座標点列」を候補リンクのリンクIDに変換する。つまり、CPU41は、候補リンクのリンクIDを当該「変換できなかった座標点列」に対応付けてRAM42に記憶する。
【0071】
続いて、S121において、CPU41は、上記S12で取得したシステムIDに対応するマッチングテーブルの「座標点列」に当該「変換できなかった座標点列」を記憶し、当該「変換できなかった座標点列」に対応付けて記憶した候補リンクのリンクIDをマッチングテーブルの「リンクID」に記憶し、マッチングテーブルの「確定フラグ」に「1」を記憶する。
【0072】
また、CPU41は、ナビ地図情報26の地図上に配置した「変換できなかった座標点列」に対する、リンクIDをマッチングテーブルに記憶した候補リンクのX方向とY方向の座標ずれ量を算出し、マッチングテーブルの「座標ずれ量」の「X方向」、「Y方向」に各々を記憶して、マッチングテーブルを更新する。また、CPU41は、RAM42から「ずれ補正フラグ」を読み出し、ずれ補正フラグを「オフ」に設定して、再度RAM42に記憶する。その後、CPU41は、当該サブ処理を終了してメインフローチャートに戻り、当該処理を終了する。
【0073】
他方、上記S118で当該2個以上のリンクIDのそれぞれに対応する「座標ずれ量」が、ほぼ同じ方向でほぼ同じ距離でない、つまり、同一方向パターンでないと判定した場合には(S118:NO)、CPU41は、
図6に示すS122の処理に移行する。S122において、CPU41は、RAM42から「ずれ補正フラグ」を読み出し、ずれ補正フラグが「オン」に設定されているか否か、つまり、ずれ補正済みか否かを判定する判定処理を実行する。
【0074】
そして、ずれ補正フラグが「オン」に設定されている、つまり、ずれ補正済みであると判定した場合には(S122:YES)、CPU41は、S123の処理に移行する。S123において、CPU41は、上記S12で取得したシステムIDに対応するマッチングテーブルの「座標点列」に当該「変換できなかった座標点列」を「仮確定座標点列」として記憶し、また、マッチングテーブルの「仮確定座標点列」に対応する「確定フラグ」に「0」を記憶して、マッチングテーブルを更新する。
【0075】
従って、マッチングテーブルの「仮確定座標点列」に対応する「リンクID」、「座標ずれ量」には、データが記憶されていない。また、CPU41は、RAM42から「ずれ補正フラグ」を読み出し、ずれ補正フラグを「オフ」に設定して、再度RAM42に記憶する。その後、CPU41は、当該サブ処理を終了してメインフローチャートに戻り、当該処理を終了する。
【0076】
一方、ずれ補正フラグが「オフ」に設定されている、つまり、ずれ補正済みでないと判定した場合には(S122:NO)、CPU41は、S124の処理に移行する。S124において、CPU41は、上記S115で抽出した上記S12で取得したシステムIDに対応するマッチングテーブルの「リンクID」に記憶されている2個以上のリンクIDのそれぞれに対応する「座標点列」と、ナビ地図情報26の各リンクIDに対応するリンクとをナビ地図情報26の地図上に描いた場合の、「座標ずれパターン」を判定する。
【0077】
具体的には、マッチングテーブルの「リンクID」に記憶されている2個以上のリンクIDのそれぞれに対応する「座標点列」に対して、ナビ地図情報26の各リンクIDに対応するリンクが、それぞれ所定角度ずつ傾いている場合には、CPU41は、「座標ずれパターン」は「回転パターン」であると判定し、回転パターンフラグを「オン」に設定してRAM42に記憶する。また、CPU41は、当該傾き角度を算出してRAM42に記憶する。尚、回転パターンフラグは、ナビゲーション装置1の起動時に、「オフ」に設定されてRAM42に記憶されている。
【0078】
また、マッチングテーブルの「リンクID」に記憶されている2個以上のリンクIDのそれぞれに対応する「座標点列」に対して、ナビ地図情報26の各リンクIDに対応するリンクが、それぞれ所定拡大倍率で拡大されている場合には、CPU41は、「座標ずれパターン」は、「拡大パターン」であると判定し、拡大パターンフラグを「オン」に設定してRAM42に記憶する。また、CPU41は、当該拡大倍率を算出してRAM42に記憶する。尚、拡大パターンフラグは、ナビゲーション装置1の起動時に、「オフ」に設定されてRAM42に記憶されている。
【0079】
また、マッチングテーブルの「リンクID」に記憶されている2個以上のリンクIDのそれぞれに対応する「座標点列」に対して、ナビ地図情報26の各リンクIDに対応するリンクが、それぞれ所定縮小倍率で縮小されている場合には、CPU41は、「座標ずれパターン」は、「縮小パターン」であると判定し、縮小パターンフラグを「オン」に設定してRAM42に記憶する。また、CPU41は、当該縮小倍率を算出してRAM42に記憶する。尚、縮小パターンフラグは、ナビゲーション装置1の起動時に、「オフ」に設定されてRAM42に記憶されている。
【0080】
続いて、S125において、CPU41は、「座標ずれパターン」が「回転パターン」か否かを判定する判定処理を実行する。具体的には、CPU41は、回転パターンフラグをRAM42から読み出し、「オン」に設定されているか否かを判定する。そして、「座標ずれパターン」が「回転パターン」である、つまり、回転パターンフラグが「オン」に設定されていると判定した場合には(S125:YES)、CPU41は、S126の処理に移行する。
【0081】
S126において、CPU41は、上記S124で取得した傾き角度をRAM42から読み出し、ナビ地図情報26の地図上に配置した「変換できなかった座標点列」を当該傾き角度だけ回転させた座標点列に補正して、再度、「変換できなかった座標点列」としてRAM42に記憶する。また、CPU41は、ずれ補正フラグをRAM42から読み出し、「オン」に設定して、再度RAM42に記憶する。また、CPU41は、回転パターンフラグをRAM42から読み出し、「オフ」に設定して、再度RAM42に記憶する。その後、CPU41は、再度S111以降の処理を実行する。
【0082】
一方、「座標ずれパターン」が「回転パターン」でない、つまり、回転パターンフラグが「オフ」に設定されていると判定した場合には(S125:NO)、CPU41は、S127の処理に移行する。S127において、CPU41は、「座標ずれパターン」が「拡大パターン」か否かを判定する判定処理を実行する。具体的には、CPU41は、拡大パターンフラグをRAM42から読み出し、「オン」に設定されているか否かを判定する。
【0083】
そして、「座標ずれパターン」が「拡大パターン」である、つまり、拡大パターンフラグが「オン」に設定されていると判定した場合には(S127:YES)、CPU41は、S128の処理に移行する。S128において、CPU41は、上記S124で取得した拡大倍率をRAM42から読み出し、ナビ地図情報26の地図上に配置した「変換できなかった座標点列」を当該拡大倍率だけ拡大した座標点列に補正して、再度、「変換できなかった座標点列」としてRAM42に記憶する。
【0084】
また、CPU41は、ずれ補正フラグをRAM42から読み出し、「オン」に設定して、再度RAM42に記憶する。また、CPU41は、拡大パターンフラグをRAM42から読み出し、「オフ」に設定して、再度RAM42に記憶する。その後、CPU41は、再度S111以降の処理を実行する。
【0085】
一方、「座標ずれパターン」が「拡大パターン」でない、つまり、拡大パターンフラグが「オフ」に設定されていると判定した場合には(S127:NO)、CPU41は、S129の処理に移行する。S129において、CPU41は、「座標ずれパターン」が「縮小パターン」か否かを判定する判定処理を実行する。具体的には、CPU41は、縮小パターンフラグをRAM42から読み出し、「オン」に設定されているか否かを判定する。
【0086】
そして、「座標ずれパターン」が「縮小パターン」である、つまり、縮小パターンフラグが「オン」に設定されていると判定した場合には(S129:YES)、CPU41は、S130の処理に移行する。S130において、CPU41は、上記S124で取得した縮小倍率をRAM42から読み出し、ナビ地図情報26の地図上に配置した「変換できなかった座標点列」を当該縮小倍率だけ縮小した座標点列に補正して、再度、「変換できなかった座標点列」としてRAM42に記憶する。
【0087】
また、CPU41は、ずれ補正フラグをRAM42から読み出し、「オン」に設定して、再度RAM42に記憶する。また、CPU41は、縮小パターンフラグをRAM42から読み出し、「オフ」に設定して、再度RAM42に記憶する。その後、CPU41は、再度S111以降の処理を実行する。
【0088】
一方、「座標ずれパターン」が「縮小パターン」でない、つまり、縮小パターンフラグが「オフ」に設定されていると判定した場合には(S129:NO)、CPU41は、ずれ補正フラグをRAM42から読み出し、「オン」に設定して、再度RAM42に記憶する。その後、CPU41は、再度S111以降の処理を実行する。
【0089】
[座標点列確定処理]
次に、ナビゲーション装置1のCPU41が実行する処理であって、各マッチングテーブルF1〜F3に格納された仮確定座標点列を確定された座標点列に変換すると共に、この座標点列に対応するナビ地図情報26のリンクIDを格納する「座標点列確定処理」について
図8に基づいて説明する。尚、
図8にフローチャートで示されるプログラムは、経路案内等の処理を実行していない深夜等の時間帯において、CPU41によって定期的に(例えば、24時間毎である。)実行される。
【0090】
図8に示すように、先ず、S211において、CPU41は、マッチングテーブルF1の「確定フラグ」に「0」が格納されているか否か、つまり、「A道路情報送信システムの座標点列」に「仮確定座標点列」が記憶されているか否かを判定する判定処理を実行する。
【0091】
そして、マッチングテーブルF1の「確定フラグ」に「0」が格納されていると判定した場合には(S211:YES)、CPU41は、S212の処理に移行する。S212において、CPU41は、マッチングテーブルF1の「A道路情報送信システムの座標点列」と「確定フラグ」の1番目から最後までの各データを順番に全部読み出したか否かを判定する判定処理を実行する。そして、マッチングテーブルF1の「A道路情報送信システムの座標点列」と「確定フラグ」の1番目から最後までの各データを順番に全部読み出したと判定した場合には(S212:YES)、CPU41は、後述のS216の処理に移行する。
【0092】
一方、マッチングテーブルF1の「A道路情報送信システムの座標点列」と「確定フラグ」の1番目から最後までの各データを順番に全部読み出していないと判定した場合には(S212:NO)、CPU41は、S213の処理に移行する。S213において、CPU41は、マッチングテーブルF1の「A道路情報送信システムの座標点列」と「確定フラグ」の各データのうち未だ読み出していない1組のデータを読み出す。
【0093】
続いて、S214において、CPU41は、このマッチングテーブルF1から読み出した座標点列が「仮確定座標点列」であるか否か、つまり、確定フラグが「0」であるか否かを判定する判定処理を実行する。そして、マッチングテーブルF1から読み出した座標点列が「仮確定座標点列」でない、つまり、確定フラグが「1」の場合には(S214:NO)、CPU41は、再度S212以降の処理を実行する。
【0094】
一方、マッチングテーブルF1から読み出した座標点列が「仮確定座標点列」である、つまり、確定フラグが「0」の場合には(S214:YES)、CPU41は、この仮確定座標点列を「変換できなかった座標点列」としてRAM42に記憶した後、S215の処理に移行する。S215において、CPU41は、上記S16で実行した「マッチングテーブル更新処理」のサブ処理を実行した後、再度S212以降の処理を実行する。
【0095】
他方、上記S211でマッチングテーブルF1の「確定フラグ」に「0」が格納されていないと判定した場合には(S211:NO)、CPU41は、S216の処理に移行する。S216において、CPU41は、マッチングテーブルF2及びマッチングテーブルF3について、S211以降の処理を実行したか否かを判定する判定処理を実行する。
【0096】
そして、マッチングテーブルF2及びマッチングテーブルF3について、S211以降の処理を実行していないと判定した場合には(S216:NO)、CPU41は、マッチングテーブルF2とマッチングテーブルF3とのうち、S211以降の処理を未だ実行していないマッチングテーブルを選択して、S211以降の処理を実行する。
一方、マッチングテーブルF2及びマッチングテーブルF3について、S211以降の処理を実行したと判定した場合には(S216:YES)、CPU41は、当該処理を終了する。
【0097】
以上詳細に説明した通り、本実施例に係るナビゲーション装置1では、A道路情報送信システム3A、B道路情報送信システム3B、C道路情報送信システム3Cから受信した各々の道路情報に含まれる座標点列に対応するリンクIDが、各道路情報送信システム3A〜3Cに対応する各マッチングテーブルF1〜F3に格納されている場合には、CPU41は、当該座標点列を各マッチングテーブルF1〜F3に格納されているリンクIDに変換する。これにより、CPU41は、各道路情報送信システム3A〜3Cから受信した道路情報に含まれる座標点列に対応するナビ地図情報26の地図上のリンクを高精度且つ迅速に特定することができる。
【0098】
また、各道路情報送信システム3A〜3Cから受信した道路情報に含まれる座標点列に対応するリンクIDが、各道路情報送信システム3A〜3Cに対応する各マッチングテーブルF1〜F3に格納されていない場合に、当該「変換できなかった座標点列」に対応する候補リンクが1個のときには、「変換できなかった座標点列」をこの候補リンクのリンクIDに変換する。これにより、CPU41は、各道路情報送信システム3A〜3Cから受信した道路情報に含まれる座標点列に対応するリンクIDが、各道路情報送信システム3A〜3Cに対応する各マッチングテーブルF1〜F3に格納されていない場合でも、道路情報に対応するナビ地図情報26の地図上のリンクを高精度に特定することができる。
【0099】
また、CPU41は、「変換できなかった座標点列」の候補リンクが複数個のときも、座標ずれパターンが同じ位置の1個の候補リンクを選択して、「変換できなかった座標点列」をこの選択した候補リンクのリンクIDに変換することができる。これにより、CPU41は、道路情報に含まれる座標点列に対応するリンクIDが、各マッチングテーブルF1〜F3に格納されていない場合でも、道路情報に対応するナビ地図情報26の地図上のリンクを更に高精度に特定することが可能となる。
【0100】
また、「変換できなかった座標点列」を各マッチングテーブルF1〜F3のうち、該当するマッチングテーブルに格納されていないリンクIDに変換した場合には、CPU41は、該当するマッチングテーブルの「座標点列」に当該「変換できなかった座標点列」を記憶し、当該「変換できなかった座標点列」に対応付けて記憶した候補リンクのリンクIDをマッチングテーブルの「リンクID」に記憶し、マッチングテーブルの「確定フラグ」に「1」を記憶する。また、CPU41は、ナビ地図情報26の地図上に配置した「変換できなかった座標点列」に対する、リンクIDをマッチングテーブルに記憶した候補リンクのX方向とY方向の座標ずれ量を算出し、マッチングテーブルの「座標ずれ量」の「X方向」、「Y方向」に各々を記憶して、マッチングテーブルを更新する。
【0101】
これにより、各道路情報配信システム3A〜3Cから配信される道路情報に含まれる座標点列に対応するリンクIDが、各マッチングテーブルF1〜F3のうち、該当するマッチングテーブルに格納されていない場合に、該座標点列に対応するリンクIDと座標ずれ量とを特定して、マッチングテーブルに新たに格納して更新することが可能となり、マッチングテーブルの高精度化を図ることができる。
【0102】
また、CPU41は、定期的に「座標点列確定処理」を実行して、各マッチングテーブルF1〜F3に「仮確定座標点列」が記憶されている場合には、「マッチングテーブル更新処理」のサブ処理を実行する。これにより、CPU41は、各マッチングテーブルF1〜F3を更新して、各マッチングテーブルF1〜F3の更なる高精度化を図ることができる。
【0103】
更に、複数個の候補リンクが抽出された場合に、複数個の候補リンクの位置と「変換できなかった座標点列」の位置との座標ずれパターンが、同一方向パターンでないときには、CPU41は、「変換できなかった座標点列」を所定角度回転又は所定長さ拡大又は所定長さ縮小して補正することによって、複数個の候補リンクから1個の候補リンクを選択することが可能となる。
【0104】
これにより、CPU41は、補正した「変換できなかった座標点列」をこの選択した候補リンクのリンクIDに変換できるため、道路情報に含まれる座標点列に対応するリンクIDが、該当するマッチングテーブルに格納されていない場合でも、道路情報に対応するナビ地図情報26の地図上のリンクを更に高精度に特定することが可能となる。
【0105】
尚、本発明は前記実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることは勿論である。例えば、以下のようにしてもよい。