(57)【特許請求の範囲】
【請求項１】
デジタルマップ上の原点の所望コストの予め決められた範囲内にあるノードの集合を識別する；
三角形の集合を作成するために前記ノードの集合を三角形化し、前記三角形は辺を有する；
前記所望のコストを有する第１の辺上の位置を推定するように、第１の三角形の第１の辺に沿って補間する；
前記所望のコストを有する第２の辺上の位置を推定するように、第２の三角形の第２の辺に沿って補間する；
第３の三角形の第３の辺に沿って補間する；
前記所望のコストを有する閉境界上の位置を推定するように、該閉境界が決定されるまで、第ｎの三角形の第ｎの辺に沿って補間し、前記位置はコストゾーンの境界を限定する；
ステップを有する、デジタルマップにおける原点についてのコストゾーンを作成する方法。
【請求項２】
前記位置のリストをコンピュータ読取可能な記録媒体に格納する、
ステップを更に含む請求項１に記載の方法。
【請求項３】
前記リストが前記位置の経度と緯度のデータを格納している、
請求項２に記載の方法。
【請求項４】
前記位置を接続する境界を作成する、
ステップを更に含む請求項１に記載の方法。
【請求項５】
前記所望のコストが移動時間である、
請求項１に記載の方法。
【請求項６】
前記所望コストが距離である、
請求項１に記載の方法。
【請求項７】
前記所望コストが前記原点から離れる移動のコストである、
請求項１に記載の方法。
【請求項８】
前記所望のコストが原点へ向かう移動のコストである、
請求項１に記載の方法。
【請求項９】
前記ノードの集合を識別するステップが：
ａ）前記原点を優先順序列の先頭ノードと見なす；
ｂ）前記先頭ノードの隣接ノードのそれぞれについて、前記先頭ノードを通って前記隣接ノードに至る前記原点からの移動の移動コストを決定する；
ｃ）前記隣接ノードがより低い移動コストと共に前記順序列にまだ格納されていない場合、前記先頭ノードの各隣接ノードと前記移動コストを前記優先順序列に格納する：
ｄ）前記順序列が新たな先頭ノードを持つように、前記先頭ノードを前記順序列から除去する：
ステップを含む請求項１に記載の方法。
【請求項１０】
ｅ）前記順序列に格納されている前記先頭ノードの移動コストが前記所望コストの予め決められた範囲より低い場合、ステップｂ）−ｄ）を繰り返す、
ステップを更に含む請求項９に記載の方法。
【請求項１１】
前記三角形化のステップがDelaunay三角形を作成することを含む、
請求項１に記載の方法。
【請求項１２】
前記三角形化のステップが：
（ａ）３つのノードをデータ構造に加える；
（ｂ）前記３つのノードから三角形を作成する；
（ｃ）前記データ構造に追加のノードを加える；
（ｄ）前記追加のノードが囲んでいる三角形の内部にある場合、該囲んでいる三角形の全ての頂点を前記追加のノードに接続する；
（ｅ）前記追加のノードがどの三角形の内部にもない場合、三角形のどの辺も横切ることなく直線で前記追加のノードが接続可能なデータ構造内の全てのノードに前記追加のノードを接続する；
（ｆ）前記追加のノードが或る辺上にある場合、該三角形の辺に対する頂点に前記追加のノードを接続する；
（ｇ）少なくとも前記データ構造内に表される三角形の部分集合がDelaunay三角形であるか否か決定し、否の場合のみステップ(ｃ)〜(ｇ)を繰り返す；
ステップを含む請求項１に記載の方法。
【請求項１３】
全ての追加のノードが前記データ構造に加えられるまで前記ステップ（ｃ）−（ｇ）が繰り返される、
請求項１２に記載の方法。
【請求項１４】
デジタルマップ上の原点の所望コストの予め決められた範囲内にあるノードの集合を識別する；
三角形の集合を作成するために前記ノードの集合を三角形化し、前記三角形は辺を有する、前記三角形の前記辺の各々が２つの端点を有し、該端点が両方ともノードであり；
所望のコストよりも低いコストを有する一端点と所望のコストよりも大きなコストを有する第２の端点とを有する前記辺を見出す；
前記所望のコストと同じコストを有する前記一辺に沿う第１の位置を見出すために、前記一辺に沿って補間を行う；
前記一辺を含む三角形を選択する；
前記選択された三角形の次の辺を選択する、該次の辺は前記一辺ではなく、該次の辺は前記所望のコストよりも低いコストを伴う一端点と前記所望のコストよりも大きなコストを有する第２の端点を含む；
前記所望のコストと同じコストを有する前記次の辺に沿う第２の位置を見出すために、前記次の辺に沿って補間を行う；
ステップを含むデジタルマップにおける原点についてのコストゾーンを作成する方法。
【請求項１５】
コンピュータ読取可能な記録媒体に具現化されたコンピュータ読取可能なコードを有し、前記コンピュータ読取可能なコードは下記ステップを有するコストゾーンの作成方法をコンピュータに実行させるためのものである：
デジタルマップ上の前記原点の所望コストの予め決められた範囲内にあるノードの集合を識別する；
三角形の集合を作成するために前記ノードの集合を三角形化し、前記三角形は辺を有する；
前記所望のコストを有する第１の辺上の位置を推定するように、第１の三角形の第１の辺に沿って補間する；
前記所望のコストを有する第２の辺上の位置を推定するように、第２の三角形の第２の辺に沿って補間する；
第３の三角形の第３の辺に沿って補間する；
前記所望のコストを有する閉境界上の位置を推定するように、該閉境界が決定されるまで、第ｎの三角形の第ｎの辺に沿って補間し、前記位置が前記コストゾーンの境界を限定する；
コンピュータ読取可能な記録媒体。
【請求項１６】
前記方法が、下記ステップを更に含む、
前記位置のリストをコンピュータ読取可能な記録媒体に格納し、該リストは該位置に対する経度と緯度のデータを格納している、
請求項１５に記載のコンピュータ読取可能な記録媒体。
【請求項１７】
前記識別ステップが：
ａ）前記原点を優先順序列の先頭ノードと見なす；
ｂ）前記先頭ノードの隣接ノードのそれぞれについて、前記先頭ノードを通って前記隣接ノードに至る前記原点からの移動の移動コストを決定する；
ｃ）前記隣接ノードがより低い移動コストと共に前記順序列にまだ格納されていない場合、前記先頭ノードの各隣接ノードと前記移動コストを前記優先順序列に格納する：
ｄ）前記順序列が新たな先頭ノードを持つように、前記先頭ノードを前記順序列から除去する：
ステップを含む請求項１５に記載のコンピュータ読取可能な記録媒体。
【請求項１８】
前記識別ステップが：
ｅ）前記順序列に格納されている前記先頭ノードの移動コストが前記所望コストの予め決められた範囲より低い場合、ステップｂ）−ｄ）を繰り返す、
ステップを更に含む請求項１７に記載のコンピュータ読取可能な記録媒体。
【請求項１９】
前記三角形化のステップがDelaunay三角形を作成することを含む、
請求項１５に記載のコンピュータ読取可能な記録媒体。
【請求項２０】
前記三角形化のステップが：
（ａ）３つのノードをデータ構造に加える；
（ｂ）前記３つのノードから三角形を作成する；
（ｃ）前記データ構造に追加のノードを加える；
（ｄ）前記追加のノードが囲んでいる三角形の内部にある場合、該囲んでいる三角形の全ての頂点を前記追加のノードに接続する；
（ｅ）前記追加のノードがどの三角形の内部にもない場合、三角形のどの辺も横切ることなく直線で前記追加のノードが接続可能なデータ構造内の全てのノードに前記追加のノードを接続する；
（ｆ）前記追加のノードが或る辺上にある場合、該三角形の辺に対する頂点に前記追加のノードを接続する；そして
（ｇ）少なくとも前記データ構造内に表された前記三角形の部分集合がDelaunay三角形であるか否か決定し、否の場合のみステップ（ｃ）〜（ｇ）を繰り返す；
ステップを含む請求項１５に記載のコンピュータ読取可能な記録媒体。
【請求項２１】
コンピュータ読取可能な記録媒体に具現化されたコンピュータ読取可能なコードを有し、前記コンピュータ読取可能なコードは下記ステップを有するコストゾーンの作成方法をコンピュータに実行させるためのものである：
デジタルマップ上の前記原点の所望コストの予め決められた範囲内にあるノードの集合を識別する；
三角形の集合を作成するために前記ノードの集合を三角形化し、前記三角形は辺を有する；前記三角形の前記辺の各々が２つの端点を有し、該端点が両方ともノードであり；
所望のコストよりも低いコストを有する一端点と所望のコストよりも大きなコストを有する第２の端点とを有する前記辺を見出す；
前記所望のコストと同じコストを有する前記一辺に沿う第１の位置を見出すために、前記一辺に沿って補間を行う；
前記一辺を含む三角形を選択する；
前記選択された三角形の次の辺を選択する、該次の辺は前記一辺ではなく、該次の辺は前記所望のコストよりも低いコストを伴う一端点と前記所望のコストよりも大きなコストを有する第２の端点を含む；
前記所望のコストと同じ第３のコストを有する前記次の辺に沿う第２の位置を見出すために、前記次の辺に沿って補間を行う；
コンピュータ読取可能な記録媒体。
【請求項２２】
デジタルマップ上の原点の所望コストの予め決められた範囲内にあるノードの集合を識別するための手段と；
三角形の集合を作成するために前記ノードの集合を三角形化するための手段であって、前記三角形は辺を有する；
前記所望のコストを有する第１の辺上の位置を推定するように、第１の三角形の第１の辺に沿って補間する手段と；
前記所望のコストを有する第２の辺上の位置を推定するように、第２の三角形の第２の辺に沿って補間する手段と；
第３の三角形の第３の辺に沿って補間する手段と；
前記所望のコストを有する閉境界上の位置を推定するように、該閉境界が決定されるまで、第ｎの三角形の第ｎの辺に沿って補間し、前記位置はコストゾーンの境界を限定する、手段と；
を有する、デジタルマップにおける原点についてのコストゾーンを作成するための装置。
【発明の詳細な説明】
発明の背景
＜発明＞
発明の分野
この発明はデジタルマップ基づくコストゾーンを作成し、使用するシステムに関する。
関連技術の説明
コンピュータはマップの認識を、物理的な位置や政治的或いは他の特徴を描く静的な画像から、物理的、社会的又は経済的なシステムを測る地理的な参照デジタルデータから構成されるデジタルマップへと転換させてきた。デジタルマップに含まれる情報の範囲は制限がなく、例えばデジタルマップは要素間の距離や、ドライビング時間、地番（lotnumbers）、税の情報、ツーリスト情報等を格納可能である。更に、コンピュータ上のファイルとしてマップを格納することは、無限のソフトウエアアプリケーションにこのデータを操作することを可能にする。デジタルマップを使用した１つの用途に進路探索がある。
従来効果的に用いられていないデジタルマップの１つの応用として、ある所定のコスト制限の中で人が移動できる場所を決定することが出来るということがある。コストの例として、時間、距離、通行料、ターンの容易さ、景色の質、等が含まれる。従って、移動者は１０ドル以上の通行量を払うことなく、どれだけ遠くまでドライブできるか、或いは１０分のドライブの範囲でどのレストランがあるか、また徒歩１マイル内にどのガスステーションがあるか等を知ることを望むことができる。これらの各場合において、移動者は与えられたコスト内で何処に移動可能か知ることを望む。そのコスト内で移動者が移動可能な範囲を「コストゾーン」と呼んでいる。過去においては、移動者は旧来のマップを見て、そのマップの記号等を手掛かりに、例えば問題のコストが距離であるとしたら、どれだけ遠くまで移動できるか推測していた。もしコストが時間であれば、移動者は距離を見積もり、時間に関して根拠のある推測を行う。
進路探索に関係するデジタルマップはコストゾーンを決定するのに有効であり得る。例えば、デジタルマップはマップ内に要望するエレメントに関するコストの全て或いは一部を記憶可能である。もし、ユーザがある場合に移動したいとすると、コンピュータはその場所までの移動のコストを決定することが出来る。このようなシステムは非効果的である。移動者が１マイル内の全てのガスステーションを知りたいとすると、この移動者はマップをサーチして全てのガスステーションを探さなければならない。そして、進路探索アプリケーションを該各ガスステーションについて一度走らせて、ガスステーションが１マイル内か否か決定しなければならない。
コストゾーン作成における１つの試みは、コストに関係のない区域（例えば郵便番号）に既に分割されたマップを用いることを含む。１つのポイントが各区域において指定され、これは全体の区域を推定するために用いられる。各指定ポイントへの移動のコストが決定される。これらのコストに基づいて全体の区域がコストゾーンに含まれるか又は除かれる。この解決法により作成されるコストゾーンが十分に高精度であることはまだ示されていない。
従って、移動者が効果的に且つより高精度にコストゾーンを作成及び／又は使用することを可能とするシステムが必要である。
発明の概要
この発明は前記従来技術の欠点を改善することを目的とする。すなわち、本発明は、概略すれば、デジタルマップ上に或る原点（origin）に関するコストゾーンを作成するためのシステムを提供する。このシステムは、所望の原点のコストの予め決められた範囲(factor)内にあるノード集合(set)を識別する。このシステムは該ノード集合を三角形化（triangulate）し、三角形集合（set）を作成し、そして三角形の辺の部分集合に沿って補間（interpolate）し、所望のコストを有する位置を推定する。これらの位置はコストゾーンの境界上にある。これら全ての境界点は接続可能であり、コストゾーンを表すエリアを囲む閉ループを作成する。マップのユーザが特定の場所がコストゾーン内にあるか否か決定する作業を進めるとき、その目的地がコストゾーン内にあるか否か決定するために、コンピュータはコストゾーンの境界の位置と、その所望の目的地の位置とだけを知るだけで良い。
一実施例において、ノード集合を識別するステップは優先順序列（priority queue）を使用することと最初に原点を先頭ノードとして考えることを含む。先頭ノードは優先順序列の先頭におけるノードとして定義される。先頭ノードの隣接する各ノードに対して、先頭ノードを通って隣接ノードへ至る原点からの移動のコストが決定される。１つのリンクを通って第２のノードから第１のノードに進むことが可能であれば、最初のノードは第２のノードの隣接ノードである。もし、それがより低い移動コストと共に順序列に格納されていなければ、各隣接ノードとそのコストは順序列に加えられる。そして、先頭ノードは順序列から除かれ、新しい先頭ノードが所望のコストの予め決められた範囲内にないコストを持つまで、該プロセスが繰り返される。「所望のコストの予め決められた範囲内」という句は、所望のコスト（望む）の予め決められた範囲以下の、又は所望のコストの予め決められた範囲と等しいか以下のコストを含むことが可能である。そのような予め決められた範囲の一例は１．５である。従って、もし８分以内にどれだけ遠くまでドライブ出来るか決定したいとすると、上記プロセスは新たな先頭ヘッドが１２分（１．５×８）のコストを持ったときに終了する。
一実施例において、三角形化のステップはDelaunay三角形の作成を含む。Delaunay三角形の作成方法の１つは次の通りである。３つのノードをデータ構造に加え、これら３つのノードから１つの三角形を作成する。追加のノードをデータ構造に加え、追加ノードが三角形の内部にあれば、それを囲む三角形の全ての頂点を追加ノードに接続する。追加ノードが三角形内にない場合、どの三角形の辺にも交差することなく、直線で接続可能なデータ構造内の全てのノードに追加ノードを接続する。追加ノードが特定の辺にある場合には、その特定の三角形の特定の辺に対する頂点に追加ノードを接続する。そして、データ構造内の少なくとも１つの三角形の部分集合が全てDelaunay三角形であるか決定する。
他の実施例において、補間法のステップは次の通りである。第１の三角形の第１の辺、第２の三角形の第２の辺、第３の三角形の第３の辺に沿って補間を行う。第１の辺は、所望のコスト以下のコストを有する１つの端点と所望のコスト以上のコストを有する第２端点とを含む。第２の辺は、所望のコスト以下のコストを有する１つの端点と所望のコスト以上のコストを有する第２端点とを含む。第２の三角形は第１の辺を第１の三角形と分けあう。第３の辺は、所望のコスト以下のコストを有する１つの端点と所望のコスト以上のコストを有する第２端点とを含む。第３の三角形は第２の辺を第２の三角形と分けあう。このプロセスは同じように閉境界が決定されるまで三角形の他の辺に沿って補間を継続する。
本発明のこれら及び他の目的と有利性は、図面と関連つけて行われる本発明の好適な実施例の下記詳細な説明により、一層明確に表れる。
【図面の簡単な説明】
図１は本発明を実施するために使用可能な、ハードウエア構成の一例を示すブロック図。
図２Ａはデジタルマップの一部を示す方向化グラフ（Directed graph）の一例である。
図２Ｂはデジタルマップの一部を示す方向化グラフの他の一例である。
図３はコストゾーンを作成する方法を説明するフローチャート図。
図４はデジタルマップの一部を示すグラフの一例である。
図５は原点の所望コストの予め決められた範囲内にあるマップ上のノードの集合を識別するステップを説明するフローチャート図である。
図６は図４の部分を示すものであって、原点の所望コストの予め決められた範囲内にあるノードのみを示すものである。
図７Ａは三角形化のステップを説明するフローチャート図。
図７Ｂー７Ｅは図７Ａにおいて示されたステップを説明するために用いられる三角形の一例を示す。
図８は三角形化ステップ後の図６の部分グラフを示すものである。
図９は補間のステップを説明するフローチャート図。
図１０は補間ステップ後の図８の部分グラフを示すものである。
発明の詳細な説明
図１は本発明を実施するために用いることが可能なハードウエア構成の一例の記号ブロック図である。このハードウエアはＣＰＵ１２を有し、これは例えばインテル８０４８６（登録商標）にコンパチブルのＣＰＵ又はインテルペンティアムプロセッサ（登録商標）等であって良い。ＣＰＵ１２はアドレス、データ及びコントロールラインを有し、これらはＣＰＵバス１４に接続されている。ＣＰＵバス１４はまたキャッシュメモリ１６とＤＲＡＭメモリ１８とに接続され、これらは両方ともシステムコントロールロジック２０に制御されている。システムコントロールロジック２０はＣＰＵバス１４に接続され、またＩＳＡバス２２の制御、アドレス及びデータラインに接続されている。ＩＳＡバス２２にはシステムＢＩＯＳを含むＲＯＭ２４とフロッピ／ハードディスクドライブ２８のためのディスクコントローラ２６が接続されている。図１のシステムは本発明に関するソフトウエアを走らせることが可能な１つのプラットフォームを描いている。アップルコンピュータ（登録商標）、インクから出されているマッキントッシュ（登録商標）ベースのプラットフォーム、異なったローカルバス構成を有するプラットフォーム、ネットワークプラットフォーム、マルチプロセッサプラットフォーム等々のような数々の他のプラットフォームであってもまた十分である。
デジタルマップは１又はそれ以上のコンピュータファイルに格納されており、それはマップを構成するために必要なデータを含んでいる。このデータは経度データ、緯度データ、アドレス、距離、ターン規制（turning restrictions）、ドライブ時間、ハイウエイ出口番号、土地の業務使用の説明等を含んでも良い。一般的にマップデータベースは多くのソフトウエアアプリケーションと共に効率的に使用されるには大きすぎる。従って、特定の使用に必要なデータのみを含む、より小さなデータベースが作成される。これら比較的小さなデータベースの１つがグラフである。グラフはノードとエッジの集積である。ノードは特性を有し、グラフ上の判断点（Decision point）を示す客体である。エッジは２つのノード間を接続するものである。ノードＡからノードＢへのグラフにおけるパスは、リスト内の各ノードから次へのエッジがあるという様なノードのリストとして表される。方向化グラフ（Directed graph）は、各エッジがそれに関連した単一の方向を有するグラフである。与えられた一対のノード間には、各方向の２つのエッジが存在して良い。方向化グラフにおいては、エッジはリンクと呼ばれる。重み付けグラフ（weighted graph）は各リンク（又はエッジ）がそれに関連したコストを有するグラフである。代わりに、コストをノード又はノードとリンクに関連付けたり、或いはコストをグラフの他の要素に関連付けても良い。
図２Ａは方向化グラフの一例を示すもので、このグラフは東行きの一方通行街路５０と２方向街路５２を示し、これら街路は共に２方向街路５４と交差している。街路５０は交差点６０において街路５４と交差している。街路５２は街路５４と交差点７０において交差している。交差点６０には２つのノード６２、６４がある。ノードの頭は円である。ノードの後端は直線の尾部である。該円は該ノードの位置する処を表しており、該尾部は移動者がそこから来てノードに到る場所を示している。このノードシンボルは実際の視覚目的の交差点からは除かれる。例えば、ノード６２は街路５４における交差点６０方向の北行きの移動を表している。ノード６４は道路５０上の交差点６０方向の東行きの移動を表している。街路５０は東行きの一方通行であるから、交差点６０においては西行きの移動を表すノードはない。従って、道路５４を北に進み、交差点６０に到達する移動者は右折することだけが可能である。ノード７２は街路５４上を南方向に移動することにより交差点７０に到着することを表している。ノード７４は道路５２上を東方向に移動することにより交差点７０に到着することを表している。ノード７６は道路５２上を西方向に移動することにより交差点７０に到着することを表している。
リンクはノード間のパスを表している。例えば、ノード６４から移動者は交差点６０で右折が可能であり、道路５４に入るか又は道路５０を直進することが出来る。リンク８６は、ノード６４を経由して交差点６０に到着し、右折してノード７２へ進む移動者を表している。したがってリンク８６はノード６４をノード７２に接続する。リンク８８はノード６４を街路５０上の次のノードに接続する（図２Ａでは図示しない）。街路５２（ノード７６）上を西へ進むことにより交差点７０に到達した移動者は街路５２上を進み続けることが可能であり、また街路５４へと右折することが可能である。リンク８２は右折する移動者を表しており、従ってリンク８２はノード７６をノード６２へと接続する。リンク８４は道路５２上に残る移動者を表しており、従ってノード７６を街路５２上の次のノード（図示せず）に接続する。図２Ａはノード７６と５４に対して引かれたリンクを示すだけである。もしリンクが全てのノードに対して描かれるならば、方向化グラフは混雑しすぎて読みずらくなるであろう。従って、方向化グラフは単純化され、そして図２Ｂにおけるよう再作成される。
図２Ｂにおいて、同一の交差点における全てのノードは１つのノードに落とし込まれており、下記の説明を簡単にしている。（実際の使用では、本発明は図２Ａ又は図２Ｂに類似したグラフの使用が可能である。）従って、ノード１００はノード６４と６２を表している。ノード１０２はノード７２，７４及び７６を表している。ノードの尾部が描かれていないことに注意する必要がある。これらのリンクは許容される移動の方向を示すのに使用されている。従ってリンク１０４は交差点７０から交差点６０への移動を示しており、リンク１０６は交差点６０から交差点７０への移動を示している。ターン規則と一方通行街路はリンクの存在と不存在により表される。
図２Ｂの方向化グラフは、コストゾーン作成のためにコンピュータにより格納されるデータ構造を記号的に理解するために用いられる。コンピュータは実際には方向化グラフの画像を格納しない。コンピュータはデータ構造を格納している。データにおける各入口がノードを表している。各ノードについてデータ構造は、ノードの位置（例えば経度と緯度）、隣のノードのリスト（１リンクを経由して移動できるノード）及び隣のノードに到着することに関する種々のコストを格納している。本発明は説明されたものとは異なる多くの適応するデータ構造と共に用いることが考えらている。更にこの発明は方向化グラフと共に用いる必要はない。本発明はマップデータベース全体と、また他の適応する情報の部分集合と共に使用可能である。
コストゾーンを作成するために、移動者は移動者の位置又はコストゾーンの中心を示すマップ上の原点を指示しなければならない。また移動者は所望のコストを指示しなければならず、これはコストのタイプ、コストゾーンを作成するために使用されるコストの総量を含む。例えば、移動者はコストのタイプにドライブ時間を指示し、そしてコストの量に８分を指示することが可能である。これにより、マップ上に８分以内でドライブできる原点に関する領域を表すコストゾーンを作成できる。
図３は原点についてコストゾーンを作成する方法のフローチャートを示すものである。第１のステップ１２０は、マップ上の所望の原点のコストゾーンの予め決められた範囲内のノードを識別するためのものである。所望のコストは、ここで説明される実施例においては８分のドライブ時間である。予め決められた範囲は通常１（one）以上の数字であり、これは所定のコスト内の全ての領域と、所望のコストよりも大きなコストを有する追加の位置とを含むマップ上の領域を見出すために用いられ、これにより将来のステップにおいて補間を行うことが可能である。この例では、予め決められた範囲は１．５に設定されている。この予め決められた範囲はマップの詳細度と密度によって変化する。特定の実施に対する適切な値は試行錯誤に基づいて決定可能である。従って、ステップ１２０において、原点から１２分のドライブ時間を有する（８分×１．５）マップ上の全てのノードは識別される。ステップ１２２において、ステップ１２０で識別されたノード位置である三角形の頂点と共に三角形の集合が作成される。ステップ１２４において、このシステムは、ドライビングコストが８分と見積もられる位置を見つけるために、三角形の辺の部分集合に沿って補間を行う。図３はステップ１２０、１２２及び１２４を分離したステップとして示しているが、これらのステップはインターリーブ（interleave）することが可能である。
図４はデジタルマップの一部分の方向化グラフである。黒丸はノードを表し、矢はリンクを表し、リンクの次の番号はコストを表しており、この例では分単位のドライビング時間になっている。異なるリンクのドライビング時間の相違は道路のタイプと道路の地形によるものである。例えば、ハイウエイは、街の商業地域中の混雑した街路よりも所定の距離に対してより短い時間が関係付けられている。図４の例において、原点はノード１６２である。図４はまたノード１４０、１４２、１４４、１４６、１４８、１４９、１５０、１５２、１５４、１５６、１５８、１６０、１６４、１６６、１６８、１７０、１７２、１７４、１７６、１７８、１８０、１８２、１８４、１８６、１８８、１９０、１９２、１９４及び１９６を示している。
図３におけるステップ１２０の一実施例を、図４の方向化グラフを用いて図５のフローチャートにより更に詳細に説明する。この実施例において、ステップ１２０の最終目的はノード１６２における１２分のドライビング時間内の全てのノードを見出すことである。例えば、原点１６２とノード１７６間のリンクは６分のドライビング時間を示している。従ってノード１７６は原点１６２の所望コストの予め決められた範囲内にある。一方、ノード１６０と１５８を経由して原点１６２からノード１５６へ移動するには１６分のドライビング時間が必要であり、これは１２分の限界内にない。これら全てのノードを識別するためのステップが図５に詳細に示されている。
ステップ２００において、優先順序列が設定される。この実施例においては、優先順序列はノードの位置と原点からノードに到るコストが格納している。優先順序列は順序列の要素（member）をコストに基づいて区分し、最も低いコストが順序列の先頭である。ステップ２０２において、原点がそのコストと共に順序列に加えられる。原点に到るためのコストは典型的には０である。ステップ２０４において、このシステムは該ノードを順序列の先頭にあるとみなす（先頭ノード）。該原点は順序列の唯一の要素であるから、原点１６２は順序列の先頭にある。ステップ２０６において、システムは先頭ノードの隣接体の１つを任意にピックアップし、原点から先頭ノードを通ってその各隣接体への移動のコストを決定する。現在の実施例において、原点１６２は移動可能な５つの隣接体：ノード１６０、ノード１４６、ノード１４８、ノード１６４及び、ノード１７６を有している。例として、システムはノード１４６を移動可能な第１の隣接体として選出し、コストは２分であると決定する。ステップ２０８において、システムは該隣接体はより低いコストと共に既に順序列上にあるか否かを決定する。もし隣接体が既により低いコストと共に順序列にあるならば、該システムはステップ２１２にスキップする。もし該隣接体がより低いコストと共に順序列内にないのであれば、ステップ２１０が実行される。該例において、ノード１４６は順序列上になく、そのためノード１４６は２分のコストと共に順序列に加えられる（ステップ２１０）。ステップ２１２において、システムはまだ隣接体があるか否か決定する。先に検討したように、原点１６２は更に４つの隣接体を有しており、そのため答えは「イエス」である。
システムはステップ２０６に戻り、ここで次の隣接体のコストを決定する。次の判断されるべき隣接体は例えばノード１４８である。原点１６２からノード１４８への移動コストは５分である。ステップ２０８において、ノード１４８は順序列内にないと判断され、従って、ステップ２１０において、５分のコストと共にノード１４８が順序列に加えられる。ノード１４８は順序列上のノード１４６の下側に置かれていることに注意が必要である。次にノード１６４がステップ２０６で検討される。ノード１６４への移動のコストは４分である。既に順序列内にあるノード１６４への４分よりも低い既知のコストはないから（ステップ２０８）、ノード１６４は順序列上ノード１４６の後ろでノード１４８の前にステップ２１０において加えられる。ノード１６２は、未検討の２つの隣接体をまだ有するため、ステップ２０６において、システムは隣接体１７６への移動のコストを６分と決定する。既に格納されたより低いコストは順序列にないから（ステップ２０８）、ノード１７６は順序列の最後に加えられる（ステップ２１０）。システムは６分のコストを有するノード１６０を検討する（ステップ２０６）。順序列はノード１６０への６分以下の既知のコストを有していないため（ステップ２０８）、ノード１６０はノード１７６下側の順序列に加えられる。ノード１７６とノード１６０は同一のコストを有することに注意する必要がある。システムはどちらのノードを順序列内の他より前に置くか任意に決定することが出来る。１つの方法は、ノード１７６は順序列に先に置かれたから、ノード１７６をノード１６０の前に置くことである。検討すべき隣接体がもうないので（ステップ２１２）、システムは順序列の最前にあるノードをステップ２１４において除去し、除去したノードをデータ構造内に格納する。この時点で、順序列は次のような順序の記録を含んでいる：ノード１４６（順序列の先頭）、ノード１６４、ノード１４８、ノード１７６及びノード１６０。
ステップ２１６において、システムは順序列の先頭、この例ではノード１４６を注視し、そして順序列の先頭における該ノードに関係付けられたコストが所望のコスト（Ｄ）の予め決められた範囲（Ｋ）よりも少ないか調べる。所望コストの予め決められた範囲は１２分であり、そしてノード１４６に関係付けられたコストは２分であるから、該比較の答えは「イエス」であり、システムはステップ２０４に戻る。順序列上の先頭のノードのコストが１２より大きかったら、図３のステップ１２０は終了する。
現在の実施例では、システムはステップ２０４に戻りそして順序列の先頭にあるノード１４６を検討する。ステップ２０６において、システムはノード１４６の隣接体のみを考察する。図４を見ると、ノード１４４とノード１６０がノード１４６に近いが、リンクはノード１４６における移動者はノード１４８にのみ移動できることを示している。ノード１４６と１４４間及びノード１４６と１６０間のリンクはノード１４６方向へ移動する一方通行の街路であることを示している。従って、ステップ２０６において、システムは原点からノード１４６を通りノード１４８への移動のコストを考察する。図４を見ると、ノード１６２とノード１４６間のリンクに沿う移動、ノード１４６からノード１４８へのリンクに沿う移動を含んでいる。ノード１６２からノード１４６へのリンクは２分のコストを有し、そしてノード１４６からノード１４８へのリンクは２分のコストを有する；従って、原点からノード１４６を通ってノード１４８への移動のコストは４分である。ステップ２０８において、システムはノード１４８が既に順序列上により低いコストと共にあるか否か決定する。このケースでは、ノード１４８は既に順序列上に５分のコストである。ノード１６２からノード１４８への直接のドライブの５分のコストはノード１４６を通ってノード１４８へのドライブのコスト、４分よりも高い。５分のコストを伴うノード１４８の順序列登録は順序列から除去され、ノード１４８と４分のドライビング時間を含む新たな登録が順序列に加えられる（ステップ２１０）。従って、実際の例では、順序列への加入ステップは既に順序列上に存在する登録の編集又は除去を含む。ステップ２１２において、システムはノード１４６はもはや隣接体を持たないことを決定し、そしてステップ２１４においては、ノード１４６は順序列から除去される。この時点で、順序列は下記登録を下記順序で有する：ノード１６４、ノード１４８、ノード１７６そしてノード１６０。ステップ２１６において、システムは順序列の先頭、ノード１４６が１２分以下のコストを有するか否か決定する。この例では、有しておりそしてシステムはステップ２０４に戻る。
各ノードがステップ２１４において順序列から除去される時、該除去ノードはデータ構造に置かれる。ステップ２１６が順序列のノードが１２分よりも大きい又は等しいコストを有すると決定すると、図５の方法が完了し（ステップ２１８）、そしてステップ２１４において作成された該データ構造は、原点の所望コストの予め決められた範囲（例えば１２分）内にあるそれら全てのノードを表している。このデータ構造は各ノードの位置と原点からノードまでの移動の関連するコストを含んでいる。図６はノード１４６、１４８、１４９、１５０、１５２、１５８、１６０、１６２、１６４、１６６、１７４、１７６及び１７８を含むデータ構造内に置かれた図４からの全てのノードを記号的に表している。各ノードの次の括弧はデータ構造に格納された該ノードへのコストである。原点１６２は１つのノードとして見なされ、データ構造内に含まれることに注意する必要がある。
図７Ａは、ノードの三角形化のステップの一実施例を説明する更に詳細なフローチャートである。三角形を作成する他の方法もまた本発明の範囲内である。図７Ａに説明されているステップは、図６で記号化されたデータ構造に適用される。ステップ２５０において、このシステムはステップ２１４において優先順序列から取り除かれた最初の３つのノードを取って、これらノードをデータ構造（三角形データ構造）に格納する。そして、ノードどうしを結合することにより三角形を作成する。三角形の作成ステップは必ずしも三角形を描くこと及び実際にノードを結合することを意味しない。システムはむしろ三角形の頂点における３つのノードの座標を格納する。三角形を形成するためにノードを記号的に結合する線は辺（side）と呼ばれる。新たに作成された三角形は順序列（該「三角形順序列」）内に置かれる。ステップ２５２において、システムはステップ２１４において優先順位列から取り除かれた次のノードを取りあげ、これらを三角形データ構造に加える（「データ構造」とはデータを格納するあらゆるファイル又は構造を云う）。ステップ２５６で、システムはノードが既に存在する三角形内にあるか、既に存在する三角形外にあるか、或いは既に存在する三角形の辺上にあるか、決定する。
ステップ２５２において加えられた新たなノードが既に存在する三角形の辺上にある場合、対する頂点から該新たなノードへ線を引くことにより該三角形は壊され、これにより２つの三角形が作成される（ステップ２６０）。図７Ｂは存在する三角形ＡＢＣに加えられた新たなノードＤを示すものである。ノードＤは辺ＢＣ上にある。従って、ステップ２６０ではノードＡからノードＤへ線が引かれ、これにより三角形ＡＢＣが２つの三角形ＡＢＤ、ＡＤＣに分割される。ステップ２５２に加えられた新しいノードが既に存在する三角形内にある場合、ステップ２６２において新たなノードはそれが囲まれている三角形の全ての３つの頂点に接続される。例えば、図７Ｃにおいて、新たなノードＨは既に存在する三角形ＥＦＧの内部にある。ステップ２６２において、ノードＨとノードＥを結ぶ最初の線が描かれ、ノードＨとノードＦを結ぶ第２の線が描かれ、そしてノードＨとノードＧを結ぶ第３の線が描かれる。ステップ２５２で加えられた新たなノードが既に存在する全ての三角形の外側にあるならば、該追加ノードがどの辺を横切ることもなく直線で接続可能な三角形データ構造内の中のどのノードとも該新たなノードは接続される。例えば、図７Ｄにおいて、新たなノードＭは三角形ＪＫＬの外側にある。従って、ノードＭからどの辺を横切ることもなく直線でＭが接続可能な全ての他のノードへと線が描かれる。従って、ノードＭからノードＪを接続する最初の線が引かれ、ノードＭをノードＬへ接続する第２の線が引かれる。ノードＭからノードＫを接続する線は作成されない。そのような線はＪとＬ間の予め存在する辺を横切るからである。ステップ２６０、２６２又は２６４により作成されたどの三角形も三角形順序列に加えられる（ステップ２６６）。
この時点で、三角形順序列内の全ての三角形はこれらがDelaunay三角形であることを保証するためにテストされなければならない。三角形の外接円がその内部に三角形化における他のいかなるノードも含まない場合、その三角形はDelaunayである。三角形の外接円はその円周上に三角形の全ての頂点を有する円である。従って、ステップ２６８において、順序列の最初の三角形が考察される。ステップ２７０において、外接円が該三角形の周りに描かれる。ステップ２７２において、システムは考察の結果三角形がDelaunayであるか否か決定する。この方法はコンピュータ又は他のタイプのプロセッサにより実行されるため、コンピュータは実際にはどの三角形も円も描かず、三角形の関係する座標を決定し、そして外接円が実際に他のノードを含むか否か決定するために既知の計算を用いる。三角形がDelaunayでない場合、該三角形はステップ２７４において細分化され、該新たな（複数の）三角形は、ステップ２７６において三角形順序列に加えられる。ステップ２７４における細分化のステップは、外接円内で三角形の外のノードに最も近い辺を除去し、該外のノードを除去された辺の両端点と接続し、そして結果的に出来た四辺形に他の対角線を加えて細分化する、ことを含んでいる。例えば、図７Ｅにおいて、ノードＴは外接円２８３内にあるため、ＰＱＲの三角形はDelaunayではない。従って、三角形ＰＱＲはステップ２７４において細分されなければならず、これは辺ＰＲを除去し、ノードＰとＴを接続し、ノードＴとＲを接続し、更にノードＴとＱを接続することを含む。この結果２つの三角形ＰＱＴとＲＱＴができる。システムは、ステップ２６８において、三角形順序列内の次の三角形を考察する。該三角形が考察により、Delaunay三角形であれば（ステップ２７２）、該三角形は順序列から取り除かれる（ステップ２７８）。ステップ２６８−２８０は三角形順序列が空になるまで継続される（ステップ２８０）。ステップ２７２において、三角形がDelaunayでないと決定されたら、それはノードが三角形の辺の外にあり、外接円内側にあるためである。順序列が空になったら、システムは三角形データ構造に新しいノードを追加する必要があるか否か決定する（ステップ２８２）。もしなければ、三角形化は終了する。もしあれば、システムループはステップ２５２に戻り、新たなノードを追加する。
図８は図７Ａに示す方法が完了した後の三角形データ構造を記号的に表している。各ノードの次に括弧内に数字があり、これはステップ２１４において、優先順序列からノードと共に取り除かれたコストに基づく原点から該ノードへ至るコストを表している。図８に示される全ての三角形はDelaunay三角形であることに注意する必要がある。該三角形データ構造は各ノードの登録を含んでいる。各登録において、データ構造は頂点位置と、原点からのコスト及び三角形辺を経由してそれが接続される他の全ての頂点を格納している。
図９は、所望のコストを有する辺上の位置を推定するための三角形の辺の部分集合に沿った補間のステップを説明するフローチャートである。ステップ３００において、システムはシステマチックに三角形データ構造をサーチし、所望コスト（８分）より大きなコストを有する一端点と所望コスト以下のコストを有する一端点を有する三角形辺を求める。ステップ３０２において、システムは、その位置への移動のコストが所望のコストと等しくなる辺に沿う位置を推定するために、該辺に沿って線形に補間する。好ましい実施例においては線形補間を用いるが、他の補間モードが本発明において有効であることも考えられる。多くの場合、ステップ３００から選択された辺は２つの三角形の一部である。ステップ３０４において、システムはこれら２つの三角形の１つを任意に選択する。選択された三角形は、既に補間された辺以外に２つの辺を有する。ステップ３０６において、システムは選択された三角形において残る２つの辺から適切な辺を選択する。適切な辺は所望のコスト以下の端点と所望のコスト以上の端点とを有する。システムは、その位置への移動のコストが所望のコストと等しくなる辺に沿う位置を推定するために、選択された適切な辺に沿って補間を行う（ステップ３１６）。
ステップ３１６における補間後、システムは所望のコストを有すると推測される位置を表す２つの位置を有する。ステップ３１８において、システムは２つの位置を記号的に一緒に結合する。記号的とは、システムは実際には線分（line segment）を描くことなく；むしろシステムは線分の両端点をファイル又はデータ構造に格納する。２つの位置の間に記号的に描かれた線分は境界線分と呼ばれる。ステップ３２０において、システムは境界線が閉じられているか否か、即ち境界は閉ループか否か決定する。境界線が閉じられている時、補間は終了する。該境界が閉ループでない時、システムは該境界線分がデータ構造内に表されている地理的領域の周(perimenter)に到達したか否か判断する（ステップ３２２）。達していない場合、システムは次の三角形を考察する（ステップ３２４）。第２の補間位置を含む辺は２つの三角形を境する。該描かれた境界線分は三角形の１つを通って描かれ、そしてステップ３２４において、システムは他の三角形を選択しステップ３０６に戻り、ここで該他の三角形における適切な辺を選択する。もし境界線分が三角形の周に達していたら、該周における辺に沿い、端点方向に向かう、より低いコストの境界線分を、所望コストよりも上の端点と所望コストよりも下の端点を有する三角形の辺に達するまで描き続ける（ステップ３２６）。そのような三角形辺を発見したら、システムは、所望のコストを有すると推測される位置を見出すために三角形辺に沿って補間を行い、そして該位置まで境界線分を描き、次にシステムはステップ３０６に戻り、このポイントでシステムは、補間された位置を伴う辺を含む三角形内の他の２つの辺から１つを選択する。
ステップ３１６において、辺は所望コストと等しいコストを有する端点を有することが可能であることに注意が必要である。この場合、補間のステップは実際に補間する必要はなく、ステップ３１８において境界ラインは直接端点に接続される。しかし、ステップ３２４で次の三角形を選択する目的のためにプロセスはあたかも端点が所望コストよりも大きなコストを有するかのように進められ、これによりどれが次の三角形であるかという問題はなくなる。
図９のステップが完了すると、システムは全てのステップをステップ３００から繰り返す（ステップ３３０）。即ち、システムは戻り、境界線を横切らず、しかも所望コストより低いコストの端点と所望コストより上の端点を有する辺を探す。システムがそのような辺を探したら、システムはステップ３００−３３０を繰り返し、そして分離した境界線を作成する。この状態は所望コスト内でアクセス出来ない地理的な領域内の島を意味する。例えば、ゲートを有するコミュニティへの移動は移動者は行えない。１つの実施例において、システムがコストゾーン内に島を発見したら、そして該島がコストゾーン領域の所定の小部分（例えば１％）以下であれば、その島は重要でないとして無視できる。逆に、システムは境界の外側にある封入の島（island of inclusion）を見出すことも可能である。図９のステップは境界線を記号的に描くステップを説明している。これらのステップはコンピュータにより実行されるため、コンピュータがスクリーンやマップ上に境界線を描いたり、或いは多角形（ポリゴン：polygon）の頂点の集合を含む境界データ構造を作成しても良い。
図１０は図８の図表上に境界線３５０を太線で装入して表した図表である。いま例をあげるために、ステップ３００で発見された第１の辺がノード１６４とノード１６６の間の辺であるとする。ノード１６４は４分のコストを有し、これは８分の所望コストよりも下である。ノード１６６は１０分のコストを有し、これは所望コストよりも上である。ノード１６４と１６６間の辺に沿った補間により、ノード１６４からノード１６６に向けて３分の２の距離の位置３５２が発見される。次にシステムは三角形、例えば、ノード１６４、１６６及び１７８により結ばれている三角形を選択する。システムは１つの辺、例えば、ノード１６６と１７８間の辺を選択する。この辺は適切な辺ではない、そのため、システムはノード１６４と１７８間の他の辺を選択する。この辺は、一端点は４分のコストを有し、他の端点が１０分のコストを有するから、適切な辺である。システムはこの辺に沿って補間し、８分のコストを有する位置３５４を推定する。位置３５４はノード１６４からノード１７８方向へ３分の２の距離にある。位置３５２と３５４は境界線分により結合される。該境界は該辺に沿って閉じてないため他の三角形が選択される。システムはノード１６４、１７８及び１７６により結合された三角形を選択する。これが補間された辺を含む他の三角形だからである。そして、ノード１７８と１７６の間の辺を選択する。この辺は５分のコストを有する一端点と１０分のコストを有する他の端点を有する。システムは補間を行い、ノード１７８からノード１７６への距離の５分の２にある位置３５６を発見する。境界線分が位置３５４から位置３５６へ引かれる。位置３５６は周に沿っているため、システムは、所望コストよりも上及び下の端点を有する辺を発見するまで、該周に沿って境界線を継続して引き、そして所望コストの位置を発見すべく補間する。図１０において、システムは位置３５８まで境界線を引き続け、そしてこの時にシステムは三角形を選択し、補間することを図１０に示すように全体の境界線３５０が描かれるまで続ける。
システムが、図９のステップを完了した時、データ構造は境界線を表すポリゴンの頂点の位置（例えば緯度と経度）を格納して存在する。このデータ構造は多くの目的に使用可能である。例えば、システムは、境界線を含むマップを描くことができ、コストゾーンからマップを描くことも可能で、更に特別な色のコストゾーンを示すマップを描くこと等が可能である。或いは、システムは特定の位置、住所やビジネスが境界内にあるか否かユーザが質問可能とするようなアプリケーションを含むことも可能である。また、システムは、コストゾーン境界内にある全ての特別なタイプの位置のリストを求めることがユーザが可能なアプリケーションを含むことも可能である。例えば、ユーザはコストゾーン内の全てのレストランや、コストゾーン内の全てのガスステーション等を求めることができる。そして、システムは全ての又は特別なタイプの位置の座標を調べて、該調べた位置がコストゾーン内にあるか決定する。
他の例において、ユーザが１つのコスト値以上を特定してコストゾーンを求めることが出来るようにしても良い。例えば、ユーザは５分、１０分、１５分以内で移動できる全ての場所を特定するコストゾーンを知ることを望むことが可能である。このシナリオにおいて、システムはより大きなコストのために（例えば１５分）ステップ１２０と１２２を実行する。ステップ１２４、補間のステップ、は５分、１０分、１５分でそれぞれ別に実行される。
更に他の例では、所望のコスト内で原点に到達するために、原点から移動可能な全ての位置に関してコストゾーンを決定することを含む。例えば、５分以内のピックアップを宣伝するタクシ会社が、自宅（原点）でのピックアップの電話を客から受けることを考える。該タクシ会社は少なくともそのタクシの部分集合の位置を知っている。配車担当者は、５分以内に客の家に到着できるタクシの全ての位置を見つけるためにコストゾーンを作成することが出来る。このようなコストゾーンは図３に示すステップを用いることにより作成される。順序列の先頭におけるノードの隣接体と隣接体のコストを考察する時、システムは、隣接体に向けたリンクよりもむしろ、隣接体から順序列の先頭におけるノードに向けたリンクを考察する。
先の本発明の詳細な説明は説明と例示の目的でなされたものである。それは全てではないし、或いは開示された詳細な形態に本発明を限定するものでもなく、明らかに多くの改良や変形が上記説明に照らして可能である。記述された実施例は本発明とその実際的な応用の本質を最も良く説明するために選ばれたものであって、これにより他の当業者が本発明を種々の実施例において、また考えている特定の使用に適応する改良と共に、もっとも良く利用することを可能にする。添付クレームにより本発明の範囲を定義する。
【図１】
0003703100.tif 000002
【図２Ａ】
0003703100.tif 000003
【図２Ｂ】
0003703100.tif 000004
【図３】
0003703100.tif 000005
【図５】
0003703100.tif 000006
【図４】
0003703100.tif 000007
【図６】
0003703100.tif 000008
【図７Ａ】
0003703100.tif 000009
【図７Ｂ】
0003703100.tif 000010
【図７Ｃ】
0003703100.tif 000011
【図７Ｄ】
0003703100.tif 000012
【図７Ｅ】
0003703100.tif 000013
【図８】
0003703100.tif 000014
【図９】
0003703100.tif 000015
【図１０】
0003703100.tif 000016