YES,NOの場合には処理○4に戻る。)をその探索中の道路番号とする。)を「2」にセットする。終了条件確認サブルーチンを実行する。処理終了か否かを調べ、NOの場合には処理○3に戻り、YESの場合には処理を終了とする。ends.【0037】以上の処理を行うことによりそれぞれの交差点番号に対応して出発地から当該交差点番号に至る最適コースの道路番号がそれぞれ交差点番号毎に設定される。図7は周囲道路検索サブルーチンの処理の流れを説明するための図、図8は最適経路条件設定サブルーチンの処理の流れを説明するための図、図9は終了条件確認サブルーチンの処理の流れを説明するための図である。for.【0038】上記処理○4の周囲道路検索サブルーチンは、図7に示す処理を行うものである。周囲道路の検索が1回目か否かを調べる。time.【0039】YESの場合には処理○2に移り、NOの場合には処理○6に移る。0が始点となっている道路番号を取り出し記憶する。0にくる道路番号における禁止道路を取り出す。今取り出した道路が禁止道路か否かを調べる。road.【0043】YESの場合には処理○6に移り、NOの場合には次の処理○5に移る。今取り出した道路を周囲道路として記憶し、リターンする(図6の処理○5へ移る)。道路データから前に探索した道路と同じ始点を持ち、番号が次の道路番号を取り出す。最初探索した道路と今取り出した道路が同じか否かを調べる。NOの場合には処理○3に戻る。周囲道路なしと判定しリターンする。road.【0049】また、上記図6に示す処理○6の最適経路条件設定サブルーチンは、図8に示すような処理を行うものである。道路データから周囲道路の大きさDと長さlを読み込む。周囲道路の大きさDが1以下であるか否かを調べる。NOの場合には処理○4に移る。長さlをa倍した長さをlとする。l.すなわち、Dが1より大きい道路を通常の広い道路とし、1以下の道路を細い道路とすると、細い道路は通常の道路に対してa倍の距離の評価としている。Therefore,aは1より大きい数である。道路データから現在探索中の交差点へ通過してきた道路の案内不要データを読み込む。案内不要データと一致する周囲道路があるか否かを調べる。road.【0055】YESの場合にはリターンし、NOの場合には次の処理○6に移る。長さlにbmを加算した値を新たな長さlとしリターンする。案内不要の交差点に対して、右左折等の案内を要する交差点は、距離に換算してbm加算した評価としている。0と目的等の両隣りの交差点番号との一致を調べ、一致したことを条件に例えば終了フラグを設定する。matched.【0058】図10は交差点列及びノード列のデータ構造の例を示す図、図11は交差点列及びノード列取り出し処理の流れを説明するための図である。process.【0059】上記のように本発明の経路探索では、周囲道路の大きさや道路の案内要/不要等の走行条件を考慮して交差点間の距離に重み付けを行い、最短経路を探索する。その結果、各交差点に対応して最適コースに沿った道路番号情報が得られる。従って、この探索結果に従って図10に示す処理フローに従って交差点列及びノード列のデータを生成することができる。探索が終了した交差点番号をメモリに記憶する。その交差点にきた道路番号の始点をメモリに記憶する。その交差点が出発地の両隣りの交差点か否かを調べる。NOの場合には処理○2に戻る。加えて交差点列とする。道路データを参照して交差点間のノード列を取り出し、ノード列をつくる。案内不要データを使い交差点列から案内不要となる交差点を除く。