(57)【要約】【課題】地図データの道路形状からカーブの曲率半径や開始位置を迅速に取得する。【解決手段】道路形状のカーブの部分が２つの形状点で表現されているカーブを対象カーブとして選択する。対象カーブの２つの形状点を接続する中央リンクと、中央リンクに隣接する第１隣接リンクとが成す第１隣接角度を取得して、中央リンクに対して第１隣接角度に応じて定まる角度で、中央リンクと第１隣接リンクとの間の形状点から第１補助線を生成する。中央リンクに対して第１隣接リンクと反対側に隣接する第２隣接リンクについても同様にして第２補助線を生成する。第１補助線と第２補助線との交点を用いて前記対象カーブの円弧の中心位置を近似する。こうすれば、２つの補助線を生成して交点を求めれば中心位置を近似することができるので、地図データから読み出した道路形状の中から、カーブの円弧の曲率半径やカーブの開始位置を迅速に検出することが可能となる。【選択図】図７
2016212705.tif 000002
【特許請求の範囲】
【請求項１】
地図データの中で道路形状を表す複数の形状点の座標に基づいて前記道路形状を取得する道路形状取得装置（１００）であって、
隣接する前記形状点を直線で繋ぐことによってリンクを生成するリンク生成部（１０２）と、
前記道路形状を表す複数の前記リンクの中からカーブを検出するカーブ検出部（１０３）と、
前記カーブの中で該カーブに含まれる前記形状点が２つのカーブである対象カーブを選択する対象カーブ選択部（１０４）と、
前記対象カーブの前記２つの形状点を接続する中央リンクと、該中央リンクに隣接する第１隣接リンクとが成す第１隣接角度を取得して、前記中央リンクに対して前記第１隣接角度に応じて定まる角度で、前記中央リンクと前記第１隣接リンクとの間の前記形状点から第１補助線を生成する第１補助線生成部（１０５）と、
前記中央リンクと、該中央リンクに対して前記第１隣接リンクと反対側に隣接する第２隣接リンクとが成す第２隣接角度を取得して、前記中央リンクに対して前記第２隣接角度に応じて定まる角度で、前記中央リンクと前記第２隣接リンクとの間の前記形状点から第２補助線を生成する第２補助線生成部（１０６）と、
前記第１補助線と前記第２補助線との交点によって、前記対象カーブの円弧の中心位置を近似する中心位置近似部（１０７）と、
前記中心位置に基づいて、前記対象カーブの曲率半径または該対象カーブの開始位置の少なくとも一方を取得するカーブ形状取得部（１０８）と
を備える道路形状取得装置。
【請求項２】
請求項１に記載の道路形状取得装置であって、
前記第１補助線生成部は、前記第１補助線として、前記第１隣接角度の二等分線を生成する生成部であり、
前記第２補助線生成部は、前記第２補助線として、前記第２隣接リンク角度の二等分線を生成する生成部である
道路形状取得装置。
【請求項３】
請求項２に記載の道路形状取得装置であって、
前記第１補助線生成部は、前記第１隣接角度が所定の修正角度大きくなるように前記第１隣接リンクの向きを修正して、該修正した第１隣接リンクと前記中央リンクとが成す前記第１隣接角度の二等分線を、前記第１補助線として生成する生成部であり、
前記第２補助線生成部は、前記第２隣接リンク角度が前記修正角度大きくなるように前記第２隣接リンクの向きを修正して、該修正した第２隣接リンクと前記中央リンクとが成す前記第２隣接角度の二等分線を、前記第２補助線として生成する生成部である
道路形状取得装置。
【請求項４】
請求項３に記載の道路形状取得装置であって、
前記第１補助線生成部は、前記中央リンクが長くなるほど小さな前記修正角度で前記第１隣接リンクの向きを修正して、前記第１補助線を生成する生成部であり、
前記第２補助線生成部は、前記第１補助線生成部と同じ前記修正角度で前記第２隣接リンクの向きを修正して、前記第２補助線を生成する生成部である
道路形状取得装置。
【請求項５】
請求項４に記載の道路形状取得装置であって、
前記第１補助線生成部は、前記中央リンクの長さをＭメートルとしたときに、前記第１隣接リンクの向きを、ａｒｃｔａｎ（１／３Ｍ）〜ａｒｃｔａｎ（１／Ｍ）の角度範囲から選択された前記修正角度で修正して、前記第１補助線を生成する生成部であり、
前記第２補助線生成部は、前記第２隣接リンクの向きを、ａｒｃｔａｎ（１／３Ｍ）〜ａｒｃｔａｎ（１／Ｍ）の角度範囲から選択された前記修正角度で修正して、前記第２補助線を生成する生成部である
道路形状取得装置。
【請求項６】
請求項５に記載の道路形状取得装置であって、
前記第１補助線生成部は、前記中央リンクの長さをＭメートルとしたときに、前記第１隣接リンクの向きを、ａｒｃｔａｎ（１／Ｍ）で定まる前記修正角度で修正して、前記第１補助線を生成する生成部であり、
前記第２補助線生成部は、前記第２隣接リンクの向きを、ａｒｃｔａｎ（１／Ｍ）で定まる前記修正角度で修正して、前記第２補助線を生成する生成部である
道路形状取得装置。
【請求項７】
請求項４に記載の道路形状取得装置であって、
前記第１補助線生成部は、前記中央リンクの長さをＭメートルとしたときに、前記第１隣接リンクの向きを、ａｒｃｔａｎ（２／３Ｍ）〜ａｒｃｔａｎ（２／Ｍ）の角度範囲から選択された前記修正角度で修正して、前記第１補助線を生成する生成部であり、
前記第２補助線生成部は、前記第２隣接リンクの向きを、ａｒｃｔａｎ（２／３Ｍ）〜ａｒｃｔａｎ（２／Ｍ）の角度範囲から選択された前記修正角度で修正して、前記第２補助線を生成する生成部である
道路形状取得装置。
【請求項８】
請求項７に記載の道路形状取得装置であって、
前記第１補助線生成部は、前記中央リンクの長さをＭメートルとしたときに、前記第１隣接リンクの向きを、ａｒｃｔａｎ（２／Ｍ）で定まる前記修正角度修正して、前記第１補助線を生成する生成部であり、
前記第２補助線生成部は、前記第２隣接リンクの向きを、ａｒｃｔａｎ（２／Ｍ）で定まる前記修正角度修正して、前記第２補助線を生成する生成部である
道路形状取得装置。
【請求項９】
請求項３に記載の道路形状取得装置であって、
前記第１補助線生成部は、前記第１隣接リンクの長さをＬＦメートルとした時に、前記第１隣接リンクの向きを、ａｒｃｔａｎ（１／ＬＦ）〜ａｒｃｔａｎ（３／ＬＦ）の角度範囲から選択された前記修正角度で修正して、前記第１補助線を生成する生成部であり、
前記第２補助線生成部は、前記第２隣接リンクの長さをＬＳメートルとした時に、前記第１隣接リンクの向きを、ａｒｃｔａｎ（１／ＬＳ）〜ａｒｃｔａｎ（３／ＬＳ）の角度範囲から選択された前記修正角度で修正して、前記第２補助線を生成する生成部である
道路形状取得装置。
【請求項１０】
地図データの中で道路形状を表す複数の形状点の座標に基づいて前記道路形状を取得する道路形状取得方法であって、
隣接する前記形状点を直線で繋ぐことによってリンクを生成する工程（Ｓ１０１）と、
前記道路形状を表す複数の前記リンクの中からカーブを検出する工程（Ｓ１０２）と、
前記カーブの中で該カーブに含まれる前記形状点が２つのカーブである対象カーブを選択する工程（Ｓ１０４）と、
前記対象カーブの前記２つの形状点を接続する中央リンクと、該中央リンクに隣接する第１隣接リンクとが成す第１隣接角度を取得して、前記中央リンクに対して前記第１隣接角度に応じて定まる角度で、前記中央リンクと前記第１隣接リンクとの間の前記形状点から第１補助線を生成する工程（Ｓ１０５）と、
前記中央リンクと、該中央リンクに対して前記第１隣接リンクと反対側に隣接する第２隣接リンクとが成す第２隣接角度を取得して、前記中央リンクに対して前記第２隣接角度に応じて定まる角度で、前記中央リンクと前記第２隣接リンクとの間の前記形状点から第２補助線を生成する工程（Ｓ１０６）と、
前記第１補助線と前記第２補助線との交点によって、前記対象カーブの円弧の中心位置を近似する工程（Ｓ１０７）と、
前記中心位置に基づいて、前記対象カーブの曲率半径または該対象カーブの開始位置の少なくとも一方を取得する工程（Ｓ１０９）と
を備える道路形状取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地図データの中で道路形状を表す複数の形状点の座標に基づいて、道路形状を取得する技術に関する。
【背景技術】
【０００２】
今日では多くの車両が地図データを記憶しており、地図データを利用した様々な運転支援が提案されている。そのような提案のひとつとして、車両の進行方向前方に存在するカーブの曲率半径を地図データから検出して、その曲率半径に対して車両の走行速度が大きすぎると判断した場合には自動で減速する技術が存在する。この技術では、減速の要否だけでなく、減速を開始するタイミングも決定しなければならないので、カーブの曲率半径とカーブの開始位置とを決定することが必要となる。そして、カーブの曲率半径とカーブの開始位置とを決定するためには、カーブの円弧の半径と、円弧の中心位置とを地図データから取得する必要がある。
【０００３】
ここで、地図データでの道路形状は、複数の形状点を直線で繋いだ折れ線によって表現されている。また、地図データの道路形状は，データ量を抑制する必要性から、省略しても道路形状に大きな影響を与えない形状点についてはできるだけ間引いた状態で記憶されている。尚、形状点は「ノード」と呼ばれ、形状点を繋ぐ直線は「リンク」と呼ばれることがある。また、道路形状に大きな影響を与えることなく形状点を間引くためのアルゴリズムとしては、ダグラス・ポイカー（Ｄｏｕｇｌａｓ・Ｐｅｕｃｋｅｒ）アルゴリズムが広く使用されている。
このように、地図データの道路形状は形状点を間引いて記憶されるので、カーブの部分に形状点が２つしか残っていない場合が起こり得る。円弧を特定するには少なくとも３つの形状点が必要となるから、形状点が２つしか存在しないカーブでは、カーブの円弧の半径および円弧の中心位置を決定することができない。
【０００４】
そこで、カーブを円弧によって表現するのではなく、スプライン曲線などを用いて表現する技術が提案されている（特許文献１）。スプライン曲線などを用いれば、形状点を２つしか持たないカーブにも補間によって新たな形状点を追加することができるので、カーブの円弧の半径（カーブの曲率半径）を決定することができる。更には、カーブの円弧の中心位置を決定して、カーブの開始位置を求めることも可能と考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２９４９５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、形状点からスプライン曲線などの補間曲線を決定するためには大きな計算能力が必要となるため、車両の進行方向前方に存在するカーブの円弧の曲率半径やカーブの開始位置を、地図データから迅速に取得することが困難であるという問題があった。
【０００７】
この発明は、従来の技術が有する上述した課題に鑑みてなされたものであり、地図データに示された道路形状の中から、カーブの円弧の曲率半径やカーブの開始位置を迅速に取得することが可能な技術の提供を目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために本発明の道路形状取得装置および道路形状取得方法は、地図データの中で道路形状を表す複数の形状点を取得すると、道路形状のカーブの部分が２つの形状点で表現されているカーブを対象カーブとして選択する。そして、対象カーブの２つの形状点を接続する中央リンクと、中央リンクに隣接する第１隣接リンクとが成す第１隣接角度を取得して、中央リンクに対して第１隣接角度に応じて定まる角度で、中央リンクと第１隣接リンクとの間の形状点から第１補助線を生成する。また、中央リンクに対して第１隣接リンクと反対側に隣接する第２隣接リンクについても同様に、中央リンクと第２隣接リンクとが成す第２隣接角度を取得して、中央リンクに対して第２隣接角度に応じて定まる角度で、中央リンクと第２隣接リンクとの間の形状点から第２補助線を生成する。そして、第１補助線と第２補助線との交点を用いて前記対象カーブの円弧の中心位置を近似することによって、対象カーブの円弧の曲率半径、または対象カーブの開始位置の少なくとも一方を取得する。
【０００９】
こうすれば、二つの補助線を生成してそれら補助線の交点を求めればカーブの円弧の中心位置を決定することができるので、小さな計算負荷で（従って迅速に）カーブの中心位置を決定することができる。その結果、地図データから読み出した道路形状の中から、カーブの円弧の曲率半径やカーブの開始位置を迅速に検出することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本実施例の道路形状取得装置１００を搭載した車両１を示す説明図である。
【図２】本実施例の道路形状取得装置１００の内部構成を示すブロック図である。
【図３】ダグラス・ポイカーアルゴリズムによって道路形状の形状点を間引く様子を示す説明図である。
【図４】カーブの道路形状が複数の形状点によって表されている複数の態様を例示した説明図である。
【図５】本実施例の道路形状取得装置１００が道路形状を取得する処理のフローチャートである。
【図６】道路形状を表す複数の形状点の中からカーブを検出する様子を示す説明図である。
【図７】第１補助線および第２補助線の交点と、カーブの円弧の本当の中心位置とを例示した説明図である。
【図８】カーブ上で間引かれていた形状点を想定することで、カーブの円弧の中心位置の近似精度が向上する様子を示した説明図である。
【図９】対象カーブについて中央リンクと隣接リンクとの長さの比を調査した結果を示す説明図である。
【図１０】カーブの円弧の中心位置の近似精度を向上させる第１変形例についての説明図である。
【図１１】第１変形例によってカーブの円弧の中心位置の近似精度が向上した一例を示す説明図である。
【図１２】カーブの円弧の中心位置の近似精度を向上させる第２変形例についての説明図である。
【発明を実施するための形態】
【００１１】
以下では、上述した本願発明の内容を明確にするために実施例について説明する。
Ａ．装置構成  ：
図１には、本実施例の道路形状取得装置１００を搭載した車両１の大まかな構成が示されている。図１（ａ）に示されるように、車両１には、ステアリングハンドル２や、ステアリングシャフト３、アクセルペダル４、ブレーキペダル５、制御装置１０、ナビゲーション装置２０などが搭載されており、本実施例の道路形状取得装置１００は制御装置１０に内蔵されている。
ステアリングシャフト３には、ステアリングハンドル２の操舵角を検出する操舵角センサー３ｓや、ステアリングシャフト３を回転駆動するステアリングアクチュエーター３ａが搭載されている。また、アクセルペダル４には、アクセルペダル４の踏み込み量を検出するアクセルセンサー４ｓや、アクセルペダル４を駆動するアクセルアクチュエーター４ａが搭載されている。更に、ブレーキペダル５には、ブレーキペダル５の踏み込み量を検出するブレーキセンサー５ｓや、ブレーキペダル５を駆動するブレーキアクチュエーター５ａが搭載されている。
操舵角センサー３ｓや、アクセルセンサー４ｓ、ブレーキセンサー５ｓの出力は制御装置１０に入力されている。また、制御装置１０には、車速センサー６ｓの出力も入力されている。
【００１２】
図１（ｂ）に示すように、制御装置１０内には、本実施例の道路形状取得装置１００や、車両１の運転に関する制御全般を司る運転制御装置５０などが搭載されている。
操舵角センサー３ｓや、アクセルセンサー４ｓ、ブレーキセンサー５ｓ、車速センサー６ｓの出力は、制御装置１０内の運転制御装置５０に入力されている。また、道路形状取得装置１００は、ナビゲーション装置２０から読み出した地図データの中から道路形状を取得して運転制御装置５０に出力する。運転制御装置５０は、道路形状取得装置１００から受け取った道路形状に基づいて、車速や、操舵角、アクセルペダル４やブレーキペダル５の踏み込み量などが適切であるか否かを判断する。そして、必要に応じて、スピーカー７を用いて運転者に対して警告したり、あるいはステアリングアクチュエーター３ａ、アクセルアクチュエーター４ａ、ブレーキアクチュエーター５ａなどを駆動して運転操作に介入したりすることができる。
【００１３】
図２には、本実施例の道路形状取得装置１００の内部構成が示されている。図示されるように道路形状取得装置１００は、地図データ読出部１０１と、リンク生成部１０２と、カーブ検出部１０３と、対象カーブ選択部１０４と、第１補助線生成部１０５と、第２補助線生成部１０６と、中心位置近似部１０７と、カーブ形状取得部１０８と、中心位置取得部１０９とを備えている。
尚、これらの「部」は、道路形状取得装置１００が地図データから道路形状を取得するために備える機能に着目して、道路形状取得装置１００の内部を便宜的に分類した抽象的な概念である。従って、道路形状取得装置１００がこれらの「部」に物理的に区分されることを表すものではない。これらの「部」は、ＣＰＵで実行されるコンピュータープログラムとして実現することもできるし、ＬＳＩやメモリーを含む電子回路として実現することもできるし、更にはこれらを組合せることによって実現することもできる。
【００１４】
地図データ読出部１０１は、ナビゲーション装置２０に接続されており、車両１の現在位置を含む所定範囲の地図データを読み出す。ナビゲーション装置２０には、道路形状を複数の形状点で表した地図データを記憶した地図データ記憶部２２や、測位衛星からの信号を取得するなどの方法によって現在位置を検出する現在位置検出部２１が搭載されている。このため、地図データ読出部１０１は、現在位置を含む所定範囲の地図データをナビゲーション装置２０から読み出すことができる。
尚、本実施例では、ナビゲーション装置２０から地図データを読み出すものとして説明するが、現在位置検出部２１や地図データ記憶部２２に相当する機能を搭載した機器であれば、地図データを読み出す機器は、必ずしもナビゲーション装置２０に限られるものではない。あるいは、道路形状取得装置１００の側で現在位置を検出して、外部の機器に記憶されている地図データの中から、現在位置を含む所定範囲の地図データを読み出すようにしても構わない。
【００１５】
こうして読み出した地図データでは、道路形状は曲線ではなく折れ線によって近似されて表現されており、地図データには、折れ線の折れ点に相当する複数の形状点の座標が記憶されている。そこで、リンク生成部１０２は、隣接する形状点同士を直線で接続することによってリンクを生成する。その結果、道路形状を表す複数の形状点は、一続きのリンクに変換される。
カーブ検出部１０３は、隣接するリンク同士が交わる角度に基づいて道路形状の中のカーブの部分を検出する。尚、カーブの検出に際しては、リンク同士が交わる角度に加えて、リンクの長さを考慮しても良い。
【００１６】
対象カーブ選択部１０４は、検出されたカーブの中から「対象カーブ」を検出する。ここで、対象カーブとは、カーブに含まれる形状点が２つのカーブである。上述したように道路形状は折れ線によって近似して表現されているので、カーブの円弧の中心位置を求めるためには、カーブ上に少なくとも３つの形状点が存在する必要がある。ところが、道路形状によっては、カーブ上に残った形状点が２つになってしまう場合がある。本明細書では、このようなカーブを「対象カーブ」と称して、３つ以上の形状点を有する通常のカーブと区別する。
中心位置取得部１０９は、対象カーブ選択部１０４で選択されなかった通常のカーブについて、カーブ上に存在する少なくとも３つの形状点の座標に基づいて、カーブの円弧の中心位置を取得する。３つ以上の形状点の座標に基づいてカーブの円弧の中心位置を取得する方法は、周知な方法を用いることができる。尚、以下では、カーブの円弧の中心位置を、単に「カーブの中心位置」と表記することがあるものとする。
【００１７】
一方、対象カーブ選択部１０４で選択された対象カーブについては、第１補助線生成部１０５および第２補助線生成部１０６で、第１補助線および第２補助線を生成する。第１補助線および第２補助線の詳細については後述するが、前述したように対象カーブには２つの形状点が含まれており、一方の形状点から後述する方法によって引かれる補助線が第１補助線であり、他方の形状点から引かれる補助線が第２補助線である。
そして、中心位置近似部１０７は、第１補助線および第２補助線の交点によって、対象カーブの円弧の中心位置を近似する。
【００１８】
カーブ形状取得部１０８は、中心位置近似部１０７によって近似した中心位置、あるいは中心位置取得部１０９で取得した中心位置に基づいて、カーブの円弧の曲率半径や、カーブの開始位置などを取得する。道路形状は、直線部分とカーブとによって形成されていると考えて良いから、形状点を接続することによってリンクを生成するとともに、カーブの円弧の曲率半径や、カーブの開始位置などを決定すれば、道路形状が取得されたことになる。そこで、カーブ形状取得部１０８は、得られた道路形状を運転制御装置５０に出力する。尚、以下では、カーブの円弧の曲率半径を、単に「カーブの曲率半径」と表記することがあるものとする。
【００１９】
こうすれば、運転制御装置５０は、前方のカーブの曲率半径やカーブの開始位置に基づいて、車両１の運転者に対して警告したり、あるいは、必要に応じてステアリングアクチュエーター３ａや、アクセルアクチュエーター４ａ、ブレーキアクチュエーター５ａなどを駆動して運転動作に介入したりすることができる。
また、カーブに含まれる形状点の数が２つの場合でも、簡単に且つ十分な精度でカーブの円弧の中心位置を近似することができるので、適切なタイミングで警告したり、運転動作に介入したりすることが可能となる。
【００２０】
以下では、道路形状を表す形状点が間引かれすぎてカーブ上の形状点が２つになってしまった対象カーブについて、カーブの円弧の中心位置を近似する方法について説明するが、その準備として、道路形状を表す形状点を間引く方法について概要を説明しておく。
尚、形状点を間引く方法としては、現在、最も広く用いられているダグラス・ポイカーアルゴリズムについて説明するが、形状点を間引く方法はダグラス・ポイカーアルゴリズムに限られるわけではない。従って、他の方法によって形状点を間引いた場合でも、全く同様に適用することができる。
【００２１】
Ｂ．ダグラス・ポイカーアルゴリズムの概要  ：
図３には、ダグラス・ポイカーアルゴリズムによって道路形状の形状点を間引く様子が示されている。形状点を間引く前の道路形状は、図３（ａ）に例示されているように、一定間隔で並んだ複数の形状点によって表現されている。個々の形状点の間は直線で接続されているが、形状点の間隔が短ければ十分な精度で道路形状を表現することができる。もっとも、形状点の数が増えるとデータ量が大きくなるので、できるだけ精度を落とすことなく、しかも、できるだけ形状点の数が少なくなるように、形状点を間引くことが必要となる。そこで、ダグラス・ポイカーアルゴリズムを用いて形状点が間引かれる。
【００２２】
たとえば、図３（ａ）に示した形状点ｐ１から形状点ｐ２までの範囲で、形状点を間引くものとする。尚、ダグラス・ポイカーアルゴリズムで形状点を間引く範囲は、実際にはもっと大きな範囲に設定されるが、ここでは説明を簡単にするために、狭い範囲に設定されている。
ダグラス・ポイカーアルゴリズムでは、先ず始めに、開始点に対応する形状点（ここでは形状点ｐ１）と、終了点に対応する形状点（ここでは形状点ｐ２）とを選択し、選択した形状点を結ぶ折れ線を生成する。最初は、開始点の形状点ｐ１と終了点の形状点ｐ２の２点が選択されているに過ぎないので、折れ線は実際には直線となる。尚、図３では、一定間隔で並んだ複数の形状点の中で選択された形状点が黒丸で表されている。
続いて、折れ線（最初は直線）から最も遠くに存在する形状点までの距離Ｈｍａｘを取得する。そして、その距離Ｈｍａｘが、予め定めておいた許容距離Ｈよりも大きかった場合には、その形状点を、道路形状を表すために必要な形状点として選択する。図３（ａ）では、形状点ｐ３を選択する。
【００２３】
続いて、新たに選択した形状点ｐ３を加えた３つの形状点（形状点ｐ１、形状点ｐ３、形状点ｐ２）を繋いだ折れ線を生成する。そして、その折れ線から最も遠くに存在する形状点までの距離Ｈｍａｘを取得して、許容距離Ｈと比較する。図３（ｂ）に示すように、折れ線から最も遠くに存在する形状点は形状点ｐ４であり、折れ線から形状点ｐ４までの距離Ｈｍａｘは許容距離Ｈよりも大きいので、形状点ｐ４も道路形状を表すために必要な形状点として選択する。
【００２４】
こうして選択した形状点ｐ４も加えた４つの形状点を繋ぐことによって、図３（ｃ）に示すように、新たな折れ線を生成して、その折れ線から最も遠くに存在する形状点ｐ５までの距離Ｈｍａｘを、許容距離Ｈと比較する。その結果、形状点ｐ５について得られた距離Ｈｍａｘが許容距離Ｈよりも大きければ、形状点ｐ５も道路形状を表すために必要な形状点として選択する。
続いて、図３（ｄ）に示すように、形状点ｐ５も加えた新たな折れ線を生成して、新たな折れ線から最も遠くに存在する形状点ｐ６までの距離Ｈｍａｘを許容距離Ｈと比較する。その結果、形状点ｐ６について得られた距離Ｈｍａｘが許容距離Ｈよりも大きければ、形状点ｐ６も道路形状を表すために必要な形状点として選択する。
【００２５】
このような操作を繰り返すと、形状点が１つ追加される度に、折れ線の形状は道路形状に近付いていく。そして、折れ線から最も遠くに存在する形状点までの距離Ｈｍａｘが許容距離Ｈよりも小さくなったら、折れ線の形状は道路形状に十分に近付いたものと判断して、その時点で選択されていない形状点は、不要な形状点として間引いてしまう。
このようにすれば、図３（ｅ）に示したように、できるだけ精度を保ちつつ、できるだけ少ない形状点を用いて道路形状を表現することが可能となる。図３に示した例では、図３（ａ）で２３個の形状点を用いて表現されていた道路形状が、図３（ｅ）では１０個と半分以下の形状点によって表現されており、それでいながら道路形状は十分な精度で表現されていることが分かる。
【００２６】
図４には、上述した方法によって形状点が間引かれた道路形状のカーブの部分が拡大して示されている。図中で実線によって示した部分がカーブの部分であり、破線の部分はカーブの前後に存在する直線部分を表している。
カーブの大部分は、図４（ａ）に示したように、カーブ上に４つ以上の形状点が存在している。しかし、図４（ｂ）に示したように、カーブ上の形状点の数が３つとなる場合も一部には存在する。更に、少ない割合ではあるが、図４（ｃ）に示したように、カーブ上の形状点の数が２つのカーブ（本明細書の対象カーブ）も生じ得る。
【００２７】
一般に、円弧が通過する３点の座標が分かれば円弧は特定できるから、円弧の中心位置も決定することができる。従って、図４（ａ）や図４（ｂ）に示すように、カーブ上に３つの形状点が存在していれば、それら形状点の座標からカーブの円弧の中心位置を求めて、カーブの円弧の曲率半径や、カーブの開始位置を求めることができる。ところが、図４（ｃ）に示すように、カーブ上の形状点が２つの場合には、カーブの円弧の中心位置を求めることができず、従って、カーブの円弧の曲率半径や、カーブの開始位置を求めることができない。そして、カーブの円弧の曲率半径や開始位置を求めることができなければ、カーブに差しかかる前に運転者に警告したり、必要に応じて減速したりする運転支援を行うこともできなくなる。そこで、本実施例の道路形状取得装置１００は、形状点が２つのカーブでもカーブの円弧の曲率半径や開始位置を求められるように、次のような処理を行う。
【００２８】
Ｃ．道路形状取得処理  ：
図５には、本実施例の道路形状取得装置１００が実行する道路形状取得処理のフローチャートが示されている。
道路形状取得処理を開始すると、先ず始めに、地図データを読み出すことによって、道路形状を表す複数の形状点の座標を取得する（Ｓ１００）。続いて、隣接する形状点を直線で接続することによってリンクを生成した後（Ｓ１０１）、隣接するリンク同士が交差する角度に基づいてカーブを検出する（Ｓ１０２）。これは次のような処理である。
【００２９】
たとえば、図６（ａ）に破線で示した形状の道路が存在するとして、地図データでは、この道路は、形状点ｐａ〜形状点ｐｈの７つの形状点によって表現されている。そこで、道路形状取得処理では、先ず始めに、これら形状点の座標を読み出して（図５のＳ１００）、隣接する形状点を直線で接続することによってリンクを生成する（Ｓ１０１）。
たとえば、図６（ｂ）に示すように、形状点ｐａと形状点ｐｂとを接続してリンクＬａを生成し、形状点ｐｂと形状点ｐｃとを接続してリンクＬｂを生成する。同様に、形状点ｐｃと形状点ｐｄとを接続してリンクＬｃを生成し、形状点ｐｄと形状点ｐｅとを接続することによってリンクＬｄを、形状点ｐｅと形状点ｐｆとを接続することによってリンクＬｅを生成する。更に、形状点ｐｆと形状点ｐｇとを接続することによってリンクＬｆを、形状点ｐｇと形状点ｐｈとを接続することによってリンクＬｇを生成する。
【００３０】
続いて、隣接するリンク同士が交差する角度を算出する。たとえば、リンクＬａに対してリンクＬｂが成す角度θｂを算出する。同様に、リンクＬｂに対してリンクＬｃが成す角度θｃを算出する。また、隣接するリンク同士が交差する角度を算出するに際しては、曲がりの方向（極性）を考慮して算出する。たとえば、あるリンクから次のリンクを見た時に、次のリンクが左側に曲がっている場合には、極性を「正」とし、逆に右側に曲がっている場合には極性を「負」とすることにする。その他のリンクについても同様に、極性を考慮しながら、隣接するリンク同士が交差する角度を算出する。
【００３１】
図６（ｃ）には、このようにして、リンクＬｂ〜リンクＬｇについて得られた角度θｂ〜角度θｇが示されている。たとえば、角度θｄはリンクＬｃとリンクＬｄとが交差する角度であり、極性が負であるから、リンクＬｄはリンクＬｃから見て右側方向に角度θｄだけ曲がっていることを示している。そして、このようにして得られた角度の絶対値が、所定の閾値角度θｔｈよりも大きくなった場合には、そこにカーブが存在すると判断する。図６（ｃ）に示した例では、角度θｃ〜角度θｆが閾値角度θｔｈを超えている。従って、この範囲がカーブとなる。また、角度θｃは、（リンクＬｂに対する）リンクＬｃの角度であり、角度θｄは（リンクＬｃに対する）リンクＬｄの角度であり、角度θｅは（リンクＬｄに対する）リンクＬｅの角度、角度θｆは（リンクＬｅに対する）リンクＬｆの角度であるから、リンクＬｃ〜リンクＬｆの４つのリンクがカーブを形成していることになる。図５のＳ１０２では、このようにしてカーブを検出する。
【００３２】
続いて、検出したカーブについて、カーブ上に存在する形状点の個数が２つか否かを判断する（Ｓ１０３）。上述したようにカーブを形成するリンクが分かれば、それらリンクを形成する形状点の個数は容易に知ることができる。たとえば、図６（ｃ）に示した例では、カーブを形成するリンクはリンクＬｃ、リンクＬｄ、リンクＬｅの３つであるから、カーブ上には４つの形成点が存在すると考えても大きな間違いはない。
その結果、カーブ上に存在する形状点の個数が２つではなかった場合は（Ｓ１０３：ｎｏ）、３つ以上の形状点が存在すると考えて良い。そこで、それらの形状点がカーブの円弧上に存在するものとして、それら３つ以上の形状点の座標に基づいてカーブの円弧の中心位置を検出する（Ｓ１０８）。３つ以上の形状点の座標からカーブの中心位置を検出する方法については周知の方法を用いることができるので、ここでは説明を省略する。
【００３３】
これに対して、カーブ上に存在する形状点の個数が２つであった場合は（Ｓ１０３：ｙｅｓ）、次のような近似的な方法によってカーブの円弧の中心位置を決定する。先ず、カーブ上に存在する形状点の個数が２つのカーブを、近似対象となる対象カーブとして選択する（Ｓ１０４）。続いて、対象カーブについて、第１補助線を生成し（Ｓ１０５）、更に、第２補助線を生成する（Ｓ１０６）。そして、第１補助線と第２補助線との交点を求めて、その交点を対象カーブの円弧の中心位置として近似する（Ｓ１０７）。
【００３４】
図７には、上述した方法によって対象カーブの円弧の中心位置を近似する様子が示されている。図示した例では、破線で示された道路形状が形状点ｐＡ、形状点ｐＢ、形状点ｐＣ、形状点ｐＤの４つの形状点によって近似されている。また、破線で示した道路形状の中の太線の部分は、道路形状が円弧となっている部分（カーブ）を表しており、図中の×印は円弧の中心位置Ｒcntrを表している。
【００３５】
図示されるように、カーブ上に存在する形状点は形状点ｐＢおよび形状点ｐＣの２つであり、２つの形状点からでは、カーブの円弧の中心位置Ｒcntrを求めることはできない。
そこで、カーブ上に存在する２つの形状点を接続するリンクを中央リンクＬcntrとし、中央リンクＬcntrの左右に隣接するリンクを、それぞれ第１隣接リンクＬfrst、第２隣接リンクＬscndとする。図示した例では、形状点ｐＢおよび形状点ｐＣを接続するリンクが中央リンクＬcntrであり、形状点ｐＡおよび形状点ｐＢを接続するリンクが第１隣接リンクＬfrstであり、形状点ｐＣおよび形状点ｐＤを接続するリンクが第２隣接リンクＬscndである。
【００３６】
続いて、中央リンクＬcntrと第１隣接リンクＬfrstとの交点（形状点ｐＢ）を通って、中央リンクＬcntrと第１隣接リンクＬfrstとが成す角度（第１隣接角度）を二等分する直線を、第１補助線Ｌad１として生成する（図５のＳ１０５に対応）。
中央リンクＬcntrと第２隣接リンクＬscndとについても同様に、中央リンクＬcntrと第２隣接リンクＬscndとの交点（形状点ｐＣ）を通って、中央リンクＬcntrと第２隣接リンクＬscndとが成す角度（第２隣接角度）を二等分する直線を、第２補助線Ｌad２として生成する（図５のＳ１０６に対応）。
そして、第１補助線Ｌad１と第２補助線Ｌad２との交点を求めて、得られた交点を、対象カーブの近似的な中心位置Ｐcntrとして取得する（図５のＳ１０７に対応）。
【００３７】
図７に示されるように、こうして得られたカーブの円弧の中心位置Ｐcntrは、カーブの円弧の本当の中心位置Ｒcntrを十分な精度で近似している。このように、上述した方法を用いれば、カーブ上に存在する形状点が２つの場合でも、実用上は十分な精度でカーブの円弧の中心位置を決定することができる。
しかも、中心位置を決定するための操作としては、中央リンクＬcntrが左右の第１隣接リンクＬfrstおよび第２隣接リンクＬscndとの間で成す角度の二等分線の交点を求めるという簡単な操作で良いので、カーブの円弧の中心位置を迅速に決定することが可能となる。
【００３８】
以上のようにして、対象カーブについてはカーブの円弧の中心位置を近似によって決定し（図５のＳ１０７）、対象カーブでない通常のカーブについては、３つ以上の形状点の座標に基づいてカーブの円弧の中心位置を決定したら（Ｓ１０８）、決定した中心位置に基づいて、カーブの円弧の曲率半径およびカーブの開始位置を決定する（Ｓ１０９）。中心位置が求められている場合に、カーブの曲率半径およびカーブの開始位置を決定する方法は周知であるため、ここでは説明を省略する。
そして、求めたカーブの円弧の曲率半径およびカーブの開始位置を含む道路形状を、運転制御装置５０（図１（ｂ）参照）に出力した後（Ｓ１１０）、処理を終了するか否かを判断する（Ｓ１１１）。
【００３９】
その結果、処理を継続すると判断した場合は（Ｓ１１１：ｎｏ）、処理の先頭に戻って、新たな地図データを読み出した後（Ｓ１００）、上述した続く一連の処理（Ｓ１０１〜Ｓ１１１）を実行する。これに対して、処理を終了すると判断した場合は（Ｓ１１１：ｙｅｓ）、図５に示す道路形状取得処理を終了する。
【００４０】
本実施例の道路形状取得装置１００は、以上のように、カーブ上に存在する形状点が２つの場合でも、十分な精度で且つ迅速にカーブの円弧の中心位置を決定することができる。このため、車両１の走行中に前方に存在するカーブを、地図データから迅速に且つ確実に、そして十分な精度で読み出すことができるので、運転者に警告したり、自動で減速や操舵したりする運転支援を適切に実行することが可能となる。
【００４１】
Ｄ．変形例  ：
対象カーブについて上述した方法によって近似的に求めた曲率半径は、本当の曲率半径よりも短めの値となる。これは、地図データでは道路形状を表す形状点が間引かれているためである。この点について、図８を参照しながら説明する。
仮に、中央リンクＬcntrの形状点ｐＢおよび形状点ｐＣの外側で、カーブ上の形状点が間引かれずに残っていたとする。図８に示した例では、白抜きの丸印で示した形状点ｐＥおよび形状点ｐＦが、破線の曲線で示したカーブ上で間引かれずに残っていた形状点である。
このような場合に、形状点ｐＥと形状点ｐＢとを接続するリンクを第１隣接リンクＬfrstとし、更に、形状点ｐＣと形状点ｐＦとを接続するリンクを第２隣接リンクＬscndとして、上述した方法でカーブの円弧の中心位置Ｐcntrを求めてやる。すると、図８に示したように、求めた中心位置Ｐcntrは、カーブの円弧の本当の中心位置Ｒcntrと事実上、一致する。
【００４２】
しかし、実際には形状点ｐＥは間引かれているので、実際の第１隣接リンクＬfrstは、形状点ｐＢと形状点ｐＡとを接続するリンクＬＡとなる。このリンクＬＡは、図８に示した望ましい第１隣接リンクＬfrst（形状点ｐＢと形状点ｐＥとを接続するリンク）よりもカーブの内側に（中央リンクＬcntrとの角度が小さくなる方向に）倒れている。
第２隣接リンクＬscndについても同様なことが成立する。すなわち、形状点ｐＦは実際には間引かれているので、実際の第２隣接リンクＬscndは、形状点ｐＣと形状点ｐＤとを接続するリンクＬＣとなり、このリンクＬＣは望ましい第２隣接リンクＬscnd（形状点ｐＣと形状点ｐＦとを接続するリンク）よりも、カーブの内側に（中央リンクＬcntrとの角度が小さくなる方向に）倒れている。
その結果、第１補助線Ｌad１と第２補助線Ｌad２とは、カーブの円弧の本当の中心位置Ｒcntrよりも手前側（円弧部分に近い側）で交差することになって、曲率半径が小さめの値となる。
【００４３】
以上の説明から明らかなように、実際の第１隣接リンクＬfrst（図８中のリンクＬＡ）および実際の第２隣接リンクＬscnd（図８中のリンクＬＣ）を、カーブの外側に向けて（中央リンクＬcntrに対する角度が大きくなる方向に）傾けてやれば、第１補助線Ｌad１と第２補助線Ｌad２との交点を、カーブの円弧の本当の中心位置Ｒcntrに近付けることができる。
しかし、中央リンクＬcntrに対する第１隣接リンクＬfrst、および第２隣接リンクＬscndの角度を修正するにしても、修正量が大きすぎると近似精度が低下する。更に、修正量が大きすぎるとカーブの円弧の曲率半径を実際よりも大きく見積もってしまうことになるため、車両１の減速が必要な場合でも減速できない事態が起こり得る。従って、第１隣接リンクＬfrst、および第２隣接リンクＬscndを修正するにしても、適切な修正量となるように修正する必要がある。
そこで、第１変形例では、次のようにして第１隣接リンクＬfrst、および第２隣接リンクＬscndを修正する。
【００４４】
Ｄ−１．第１変形例  ：
図９には、実際の地図データから抽出した２０１箇所の対象カーブ（カーブ上の形状点の数が２つのカーブ）について、２つの形状点を接続するリンク（中央リンクＬcntr）の長さと、中央リンクＬcntrの両側のリンク（第１隣接リンクＬfrstおよび第２隣接リンクＬscnd）の長さを調べた結果が示されている。図では、中央リンクＬcntrの長さに対する第１隣接リンクＬfrstあるいは第２隣接リンクＬscndの長さの比率と、その比率の出現回数との関係が示されている。
【００４５】
図９に示した調査結果から明らかなように、対象カーブでは、中央リンクＬcntrの両側に存在する第１隣接リンクＬfrstおよび第２隣接リンクＬscndの長さは、８０％程度の確率で、中央リンクＬcntrの長さの１．５〜３倍の長さとなっている。
そこで、この点に着目して、次のようにして第１隣接リンクＬfrstおよび第２隣接リンクＬscndの中央リンクＬcntrに対する角度（第１隣接角度θfrstおよび第２隣接角度θscnd）が大きくなるように、第１隣接リンクＬfrstおよび第２隣接リンクＬscndを修正する。尚、以下では、第１隣接リンクＬfrstおよび第２隣接リンクＬscndを、単に「隣接リンクＬnb」と称することがあるものとする。また、第１隣接角度θfrstおよび第２隣接角度θscndを、単に「隣接角度θnb」と表記することがあるものとする。
【００４６】
図１０には、中央リンクＬcntrに対する隣接リンクＬnbの隣接角度θnbが大きくなるように隣接リンクＬnbを修正する方法が示されている。
先ず始めに、前述したように隣接リンクＬnbの長さは、８０％の確率で中央リンクＬcntrの１．５〜３倍の長さを有している。後述するように、隣接リンクＬnbの長さを短く見積もるほど、隣接角度θnbの修正角度は大きくなるから、安全側に見て、隣接リンクＬnbの長さを中央リンクＬcntrの３倍と見積もることにする。すると、中央リンクＬcntrの形状点から、中央リンクＬcntrの１．５倍の距離のところに間引かれた形状点が存在していたと考えても大きな誤りは生じない。
【００４７】
また、図３を用いて前述したように、ダグラス・ポイカーアルゴリズムでは、折れ線からの距離が許容距離Ｈを超えた形状点を間引くから、間引かれた形状点は、折れ線からの距離が０〜Ｈの範囲内にあったものと考えられる。従って、確率的には、折れ線からの距離はＨ／２であったと考えることが最も確かと考えて良い。
【００４８】
結局、間引かれた形状点は、中央リンクＬcntrから中央リンクＬcntrの１．５倍の距離離れた位置から、カーブの外側に向かって、ダグラス・ポイカーアルゴリズムの許容距離Ｈの半分の距離のところにあったと考えてもよい。図１０（ａ）に示した白抜きの丸印は、このようにして推定された形状点ｐｍの位置を表している。
従って、隣接リンクＬnbが、推定した形状点ｐｍを通るように、中央リンクＬcntrに対する隣接リンクＬnbの隣接角度θnbを大きくしてやればよい。
【００４９】
隣接角度θnbを大きくする角度（修正角度）をθｍとすれば、修正角度θｍは、図１０（ｂ）に示した（１）式で求めることができる。また、ダグラス・ポイカーアルゴリズムの許容距離Ｈは、１〜３メートルの範囲から適宜選択された値が使用されるので、その時に使われた値を（１）式のＨに代入すればよい。従って、隣接リンクＬnbの修正角度θｍは、ａｒｃｔａｎ（１／（３・Ｌcntr））〜ａｒｃｔａｎ（１／Ｌcntr）の範囲から選択された値となる。
また、上述したダグラス・ポイカーアルゴリズムの許容距離Ｈとしては、３メートルが用いられることが多いから、許容距離Ｈが不明の場合には、図１０（ｃ）中に示した（２）を用いて、修正角度θｍを、ａｒｃｔａｎ（１／Ｌcntr）としておけばよい。
【００５０】
図１１には、このようにして求めた修正角度θｍで中央リンクＬcntrに対する角度を修正した第１隣接リンクＬfrstおよび第２隣接リンクＬscndを修正して、カーブの円弧の中心位置Ｐcntrを求めた様子が例示されている。図１１中に太い破線で示した第１隣接リンクＬfrstは、前述した本実施例で第１隣接リンクＬfrstとして用いた形状点ｐＢと形状点ｐＡとを接続するリンク（図７参照）を、修正角度θｍだけ修正したリンクとなっている。また、図１１中に太い一点鎖線で示した第２隣接リンクＬscndは、前述した本実施例で第２隣接リンクＬscndとして用いた形状点ｐＣと形状点ｐＤとを接続するリンク（図７参照）を、修正角度θｍだけ修正したリンクとなっている。
このように修正した第１隣接リンクＬfrstに対して、第１隣接角度θfrstを二等分する第１補助線Ｌad１を生成し、また、修正した第２隣接リンクＬscndに対して、第２隣接角度θscndを二等分する第２補助線Ｌad２を生成する。そして、第１補助線Ｌad１と第２補助線Ｌad２との交点を求めて、カーブの円弧の中心位置Ｐcntrとする。こうして修正した隣接リンクＬnb（第１隣接リンクＬfrstおよび第２隣接リンクＬscnd）を用いて求めたカーブの円弧の中心位置Ｐcntrは、修正前の隣接リンクＬnbを用いて求めた中心位置Ｐcntr（図７参照）に比べて、本当の中心位置Ｒcntrをより精度良く近似するものとなっている。
【００５１】
また、図１０（ｂ）の（１）式や、図１０（ｃ）の（２）式を用いて得られる修正角度θｍは、少なめに見つめられた角度となっている。従って、隣接リンクＬnb（第１隣接リンクＬfrstおよび第２隣接リンクＬscnd）を修正することによって、カーブの円弧の中心位置Ｐcntrは、本当の中心位置Ｒcntrに必ず近付くこととなるので、カーブの円弧の中心位置Ｐcntrの近似精度を確実に向上させることができる。
【００５２】
一方、図９に示したように、隣接リンクＬnbの長さで最も出現頻度が高いのは、中央リンクＬcntrの１．５倍の長さである。上述した説明では、修正角度が必要な角度を超えることがないように、隣接リンクＬnbの長さを中央リンクＬcntrの３倍と見積もった。しかし、修正角度が必要な角度よりも大きくなって、カーブの曲率半径を大きめに見積もる場合が生じることを許容するのであれば、隣接リンクＬnbの長さを中央リンクＬcntrの１．５倍と見積もった方が、より正確な修正角度を求めることができる。
【００５３】
この場合、修正角度θｍは、図１０（ｄ）に示した（３）式で求めることができる。上述したように、ダグラス・ポイカーアルゴリズムの許容距離Ｈは、１〜３メートルの範囲から適宜選択された値が使用される。そこで、その時に使われた値を（３）式のＨに代入すれば、隣接リンクＬnbの修正角度θｍは、ａｒｃｔａｎ（２／（３・Ｌcntr））〜ａｒｃｔａｎ（２／Ｌcntr）の範囲から選択された値となる。このような修正角度θｍだけ隣接角度θnbが大きくなるように、隣接リンクＬnbの中央リンクＬcntrに対する角度を修正してやれば、多くの場合において、カーブの円弧の中心位置Ｐcntrの近似精度を最も向上させることができる。
また、ダグラス・ポイカーアルゴリズムの許容距離Ｈとしては、３メートルが用いられることが多いから、許容距離Ｈが不明の場合には、図１０（ｄ）中に示した（３）を用いて、修正角度θｍを、ａｒｃｔａｎ（２／Ｌcntr）としておけばよい。
【００５４】
Ｄ−２．第２変形例  ：
上述した第１変形例では、対象カーブ（カーブ上の形状点の数が２つのカーブ）に含まれる中央リンクＬcntrの長さに基づいて、中央リンクＬcntrに対する隣接リンクＬnb（第１隣接リンクＬfrstおよび第２隣接リンクＬscnd）の角度を修正するものとして説明した。
しかし、中央リンクＬcntrの長さではなく、第１隣接リンクＬfrstおよび第２隣接リンクＬscndの長さを検出して、それぞれ第１隣接リンクＬfrstおよび第２隣接リンクＬscndの中央リンクＬcntrに対する角度を修正しても良い。以下では、このような第２変形例について説明する。
【００５５】
上述した第1変形例では、中央リンクＬcntrの長さから隣接リンクＬnbの長さを見積もった上で、隣接リンクＬnbの半分の距離に、間引かれた形状点ｐｍが存在していたものとして、隣接リンクＬnbの修正角度θｍを決定した。
しかし、第１隣接リンクＬfrstの長さや、第２隣接リンクＬscndの長さを求めてやれば、間引かれた形状点ｐｍの位置を、より直接的に推定することができる。この点について、図１２を参照しながら説明する。
【００５６】
始めに、第１隣接リンクＬfrstについて説明すると、第１隣接リンクＬfrstの中央の位置から、ダグラス・ポイカーアルゴリズムの許容距離Ｈの半分の距離だけ外側の位置に、間引かれた形状点ｐｍが存在するもの考えて良い。従って、第１隣接リンクＬfrstの修正角度θｍは、第１隣接リンクＬfrstが形状点ｐｍを通るようになる角度となり、この修正角度は、図１２（ｂ）に示した（５）式で、Ｌnbの代わりに、第１隣接リンクＬfrstの長さを代入することによって求めることができる。
また、第２隣接リンクＬscndについても同様に、第２隣接リンクＬscndの中央の位置から許容距離Ｈの半分の距離だけ外側の位置に、間引かれた形状点ｐｍが存在するもの考えて良い。従って、第２隣接リンクＬscndの修正角度θｍは、第２隣接リンクＬscndが形状点ｐｍを通るようになる角度となり、この修正角度は、図１２（ｂ）に示した（５）式で、Ｌnbの代わりに、第２隣接リンクＬscndの長さを代入することによって求めることができる。
【００５７】
上述したように、ダグラス・ポイカーアルゴリズムの許容距離Ｈは、１〜３メートルの範囲から適宜選択された値が使用される。そこで、その時に使われた値を（５）式のＨに代入すれば、隣接リンクＬnbの修正角度θｍは、ａｒｃｔａｎ（１／Ｌnb）〜ａｒｃｔａｎ（３／Ｌnb）の範囲から選択された値となる。このような修正角度θｍだけ隣接角度θnbが大きくなるように、隣接リンクＬnbの中央リンクＬcntrに対する角度を修正してやれば、多くの場合において、カーブの円弧の中心位置Ｐcntrの近似精度を最も向上させることができる。
また、ダグラス・ポイカーアルゴリズムの許容距離Ｈとしては、３メートルが用いられることが多いから、許容距離Ｈが不明の場合には、修正角度θｍを、ａｒｃｔａｎ（３／Ｌcntr）としておけばよい。
【００５８】
このようにして求めた修正角度θｍで、第１隣接リンクＬfrstおよび第２隣接リンクＬscndの中央リンクＬcntrに対する角度を修正し、修正した第１隣接リンクＬfrstおよび第２隣接リンクＬscndに対して第１補助線Ｌad１および第２補助線Ｌad２を生成してやれば、カーブの円弧の中心位置をより精度良く近似することが可能となる。
【００５９】
以上、本実施例および各種の変形例について説明したが、本発明は上記の実施例および各種の変形例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することができる。
【符号の説明】
【００６０】
１…車両、    １０…制御装置、    ２０…ナビゲーション装置、
２２…地図データ記憶部、          ５０…運転制御装置、
１００…道路形状取得装置、        １０１…地図データ読出部、
１０２…リンク生成部、            １０３…カーブ検出部、
１０４…対象カーブ選択部、        １０５…第１補助線生成部、
１０６…第２補助線生成部、        １０７…中心位置近似部、
１０８…カーブ形状取得部、        １０９…中心位置取得部、
Ｌcntr…中央リンク、    Ｌfrst…第１隣接リンク、    Ｌscnd…第２隣接リンク、
Ｌad１…第１補助線、    Ｌad２…第２補助線、        θfrst…第１隣接角度、
θscnd…第２隣接角度。
【図１】
2016212705.tif 000003
【図２】
2016212705.tif 000004
【図３】
2016212705.tif 000005
【図４】
2016212705.tif 000006
【図５】
2016212705.tif 000007
【図６】
2016212705.tif 000008
【図７】
2016212705.tif 000009
【図８】
2016212705.tif 000010
【図９】
2016212705.tif 000011
【図１０】
2016212705.tif 000012
【図１１】
2016212705.tif 000013
【図１２】
2016212705.tif 000014