説明

物理的媒体で地理上のデータを使用し、記憶するためのシステムと方法

【課題】ナビゲーションシステムに強化された機能を与えようとする際の1つの潜在的な障害は、コンピュータ可読記憶媒体上に効率的な、用途の広い、経済的な、そして柔軟な技法で地理的情報を供給する。
【解決手段】パーセル化方法は、指定された最大データ内容よりは少ないが、所望の充填率を有するパーセルを供給する。パーセル化方法は、パーセルのアドレス指定及び識別を容易にする分割配列をも与える。どのような型のどの2つの空間的パーセルの場合も、一方のパーセルが他方のパーセル内に完全に含まれるように、(独立的にパーセル化されたデータセットのような型を含む)全ての空間的パーセルを限定するために、ある共通する境界のセットが使用される。これにより、グローバルkdツリーインデックス内に空間的パーセル境界を表すために必要なデータの量が減少する。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願に対する参照)
本願は、1996年10月25日提出の係属米国出願第 08/740,298 号 " INTERFACE LAYER FOR NAVIGATION SYSTEM "に関連する。
【0002】
本発明は物理的媒体上に地理的情報を格納するシステム及び方法に関し、より詳しく述べれば、コンピュータをベースとするナビゲーションシステムにおいて使用するために物理的記憶媒体上に地理的データを供給するシステム及び方法に関する。
【背景技術】
【0003】
陸上で使用するコンピュータをベースとするナビゲーションシステムは、さまざまな形状で使用できるようになってきており、種々の有用な機能を提供している。ナビゲーションシステムの1つの型の例は、(1)1つまたはそれ以上の地理的エリアまたは領域の詳細なデータセット、(2)ナビゲーションアプリケーションプログラム、(3)マイクロプロセッサ及びメモリのような適切なコンピュータハードウェア、及びオプションとして(4)測位(ポジションニング)システムを使用している。ナビゲーションシステムの詳細な地理的データセット部分は、1つまたはそれ以上の詳細な、編成されたデータファイルまたはデータベースの形状である。詳細な地理的データセットは、1つまたはそれ以上の特定の地理的領域エリア内の、または該領域エリアに関連する道路の位置及び交差点に関する情報を含むことができ、また一方通行道路及び回転禁止、並びに街路番地、代替ルート、ホテル、レストラン、博物(美術)館、スタジアム、オフィス、自動車ディーラー、自動車修理業等の属性に関する情報も含むことができる。
【0004】
測位システムは、ある地理的領域エリア内の物理的位置を決定する、または近似する幾つかの公知の技術の何れかを使用することができる。例えば、測位システムは、当分野において公知のGPS型システム(グローバルポジションニングシステム)、「推測(デッドリコンニング)」型システム、またはこれらの、または他のシステムの組合せを使用することができる。
ナビゲーションシステムのナビゲーション応用プログラム部分は、詳細な地理的データセット及び(使用されている場合には)測位システムを使用するソフトウェアプログラムである。ナビゲーション応用プログラムは、ユーザに、その地域内のユーザの特定位置の図形表示(例えば、「地図」)を提供することができる。更に、ナビゲーション応用プログラムは、ユーザが何処にいようとも、ユーザに、そこから地域内の複数の位置まで特定の指図を与えることもできる。
【0005】
若干のナビゲーションシステムは、ナビゲーション応用プログラム、地理的データセット、及びオプションとして測位システムを単一のユニットに組合わせている。この単一のユニットシステムは、車両(ビークル)内に設置するか、または個人が携帯することができる。代替として、ナビゲーション応用プログラム及び地理的データセットは、市販のソフトウェア製品、またはユーザが彼等のパーソナルコンピュータ内にロードすることを許可されたソフトウェア製品として提供することができる。パーソナルコンピュータをベースとするシステムはスタンドアロンシステムであることも、または中央、または地域的、または分散システムへの通信リンクを使用することもできる。代替として、ナビゲーションシステムを中央に、または地域的に配置し、多数のユーザが「必要に応じて」、または代替として、ネットワークまたは通信リンクを通してオンラインでアクセスできるようにすることができる。ナビゲーションシステムは、トラック会社、パッケージ配送サービス等のような車両輸送フリートのオペレータによって使用することもできる。ナビゲーションシステムは、交通制御または交通監視に係わるエンティティが使用することもできる。車載ナビゲーションシステムは、無線通信接続を使用することができる。また、ユーザはインターネットのようなオンラインサービス、またはコンピュサーブ、Prodigy 、及びアメリカ・オンラインのようなプライベートダイアルアップサービスを通して中央ナビゲーションシステムにアクセスすることができる。
【0006】
コンピュータをベースとするナビゲーションシステムは、ユーザに高レベルのナビゲーション支援を提供することを保証している。ナビゲーションシステムは、所望の目的地まで走行するための詳細な指令を与え、それによって走行時間及び費用を低減させることができる。ナビゲーションシステムは、走行者が工事による遅れを回避するのを援助し、所望の目的地まで最も早いルートを見出すような強化されたナビゲーション機能をも提供することができる。ナビゲーションシステムは、実時間交通情報を組み込むのにも使用できる。
【発明の開示】
【発明が解決しようとする課題】
【0007】
ナビゲーションシステムに強化された機能を与えようとする際の1つの潜在的な障害は、コンピュータ可読記憶媒体上に効率的な、用途の広い、経済的な、そして柔軟な技法で地理的情報を供給する必要があることである。更に、この地理的情報は、ナビゲーションシステムのナビゲーション応用プログラム部分によるアクセス及び使用が容易な技法で記憶媒体上に保管すべきである。従って、ナビゲーションシステムにおいて使用するために、地理的データを格納している改良されたコンピュータ可読記憶媒体製品を提供することが望ましい。
【課題を解決するための手段】
【0008】
以上の、及び他の目的を達成するために、そして本発明の目的によれば、物理的記憶媒体上に地理的データを格納するための改良された方法及びシステムが提供される。これらの地理的データは、これらのデータを使用するナビゲーションシステム内の種々のナビゲーション応用機能によるデータの強化された使用及びアクセスを容易にする技法で格納されている。
一つの面によれば、地理的データを、分離したパーセルに分割するパーセル化方法が提供される。パーセル化方法は、指定された最大データ内容よりは少ないが、所望の充填率を有するパーセルを供給する。パーセル化方法は、パーセルのアドレス指定及び識別を容易にする分割配列をも与える。
【0009】
パーセル化プロセスのさらなる面は、どのような型のどの2つの空間的パーセルの場合も、一方のパーセルが他方のパーセル内に完全に含まれるように、(独立的にパーセル化されたデータセットのような型を含む)全ての空間的パーセルを限定するために、ある共通する境界のセットが使用される。これにより、グローバルkdツリーインデックス内に空間的パーセル境界を表すために必要なデータの量が減少する。
別の面によれば、物理的記憶媒体上に格納されている地理的データは、空間的ノーダルエンティティを含んでいる。各空間的ノーダルエンティティは、地理的データ内の選択された複数の正規ノードエンティティを表している。選択された複数の正規ノードエンティティは、ロータリー、クローバの葉型インターチェンジ、及び中央分離帯のあるハイウウェイの交差のような、複数の道路セグメントの複雑な交差に関係しているものとして識別されている。地理的データでは、道路セグメントデータエンティティは、空間的ノードエンティティによって表される正規ノードエンティティにではなく、空間的ノーダルエンティティに関連付けられる。従って、ルート計算プログラムでは、正規ノードエンティティの代わりに、空間的ノーダルエンティティが使用される。空間的ノーダルエンティティは、複数の道路セグメント及び正規ノードエンティティの複雑な交差を、より簡単なデータ表現に簡略化し、それによってルート計算を容易にする。
【0010】
さらなる面によれば、物理的記憶媒体は、その上に少なくとも1つの正規化された属性アレイを含む地理的データを格納している。正規化された属性アレイは記憶媒体上の分離したテーブルとして供給される。正規化された属性アレイは、地理的データ内の若干の選択された属性の再出現する組合わせを含む。地理的データ内のエンティティレコード内には、選択された属性に対応するデータの代わりにインデックスが含まれる。これらのインデックスを、正規化された属性アレイ内のエントリと呼ぶ。ナビゲーション応用プログラムがデータエンティティにアクセスすると、データエンティティ内のインデックスによって指された正規化された属性アレイ内のエントリが使用されて、インデックスによって指された属性の特定の組合わせを含むデータレコード全体が作成される。正規化された属性アレイ内に地理的データ属性の組合わせを含ませることによって、媒体上の記憶空間を保存することができ、データへのアクセスを改善することができる。
【0011】
更に別の面によれば、物理的媒体上のデータへのアクセスを容易にするフォーマットでデータを供給するコンパイル方法が提供される。このコンパイル方法によれば、媒体上に格納されるデータファイルはパーセルに編成される。データファイル内のデータレコードは、それらが位置しているパーセルによって識別される。媒体上の全てのデータファイルの配列が決定され、媒体に関係付けられたパーセル識別が各パーセルに割当てられる。データレコード間の相互参照が、割当てられたパーセル識別を含むように更新される。データファイルはパーセルを維持しながら連結され、この連結が媒体上に格納される。
別の面においては、ルート指定のために使用されるデータのような若干の型の地理的データの若干のレイヤ( layer ) 内に集合( aggregated )セグメントデータが含まれている。これらの集合セグメントは、複数の道路セグメントを表すために使用され、集合セグメントの端点の内部の交差に関する充分な情報を含んでおり、ルート計算プログラムがその端点の内部の集合セグメントにアクセスできるようにしている。
【0012】
更に別の面によれば、道路のセグメントを表すデータエンティティのために形状点が生成される。ナビゲーションシステムにおいて使用するために地理的データを収集する際に、曲がった、即ちカーブした道路のセグメントのための形状点が決定されるので、その道路セグメントに沿う点の位置を正確に決定することができる。道路セグメントが直線の場合には、一般的には形状点は含まれない。ナビゲーションシステムに使用する場合、道路セグメントの長い直線部分には形状点がこのように欠落しているために、地図表示または空間的探索中に、その道路セグメントを特定の場所に関連付けることは困難である。開示するシステムのこの面においては、直線道路セグメントに沿って、またそれぞれの道路セグメントに関連する間隔で形状点データが生成されるので、道路の直線部分に沿う場所内の道路セグメントを探知する手段が提供される。
【実施例】
【0013】
I.概要
図1を参照する。図1は、ナビゲーションシステム10の構成例を示す図である。ナビゲーションシステム10は、ハードウェアとソフトウェアとの組合せである。一実施例では、ナビゲーションシステム10は、プロセッサ12、プロセッサ12に接続されているドライブ14、及びナビゲーション応用ソフトウェアプログラム18を格納するためのROMのようなメモリ記憶デバイス16を含んでいる。ナビゲーション応用ソフトウェアプログラム18は、ナビゲーションシステムを動作させるために、ROM 16からプロセッサ12に組合わされたメモリ20内にロードされる。記憶媒体22は、ドライブ14内に挿入される。現在の一実施例では、記憶媒体22はCD−ROMである。別の代替実施例では、記憶媒体22はPCカード(PCMCIAカード)であることができ、その場合はドライブ14はPCMCIAスロットに置換されることになろう。固定ディスク、ハードディスク、DVD、並びに近い将来開発されるかも知れない記憶媒体を含む他のいろいろな記憶媒体を使用することができる。記憶媒体22は、詳細を後述するような地理的データを含んでいる。
【0014】
ナビゲーションシステム10は測位システム24も含むことができる。測位システム24は、当分野においては公知の、GPS型技術、推測型システム、またはこれらのシステムの、または他のシステムの組合せを利用することができる。測位システム24は、信号26をプロセッサ12へ出力する。信号26は、プロセッサ12上で走るナビゲーション応用プログラム18によって使用され、ナビゲーションシステム10の位置、方向、速度等を決定することができる。ナビゲーションシステム10は、記憶媒体22上に格納されている地理的データを、多分測位システム24からの出力26と共に使用して、いろいろなナビゲーション応用機能を提供する。これらのナビゲーション応用機能は、ルート計算、地図表示、車両位置定め(例えば、マップマッチング)、運転生成(詳細な指令が、所望の目的地に到達するために供給される)、及び他の機能を含むことができる。これらのナビゲーション応用機能は、ナビゲーション応用ソフトウェア18の一部であるナビゲーション応用プログラム(即ち、サブプログラム、または機能)によって遂行される。ナビゲーション機能は、ディスプレイ27、スピーカ29その他の手段によってユーザ(例えば、車両運転手)に提供される。
【0015】
図2を参照する。ナビゲーション応用ソフトウェアプログラム18は、典型的には、別々の機能(または、サブプログラム)200を含むソフトウェアプログラムである。これらの機能は、例えばルート計算機能28、地図表示機能30、及び運転生成機能32を含む、位置定め機能、目的地解明能力等々を含むものと考えることができる。これらに加えて、または代替として、ナビゲーション応用プログラム18は、他の機能またはサブプログラム34を含むことができる。これらのナビゲーション応用サブプログラムは、ナビゲーション応用プログラム18内の別々の機能、または応用として表されているが、これらの機能は組合せたり、その他で供給することができる。
図2では、記憶媒体22は、それに格納されている地理的データ40を有しているように示されている。地理的データ40は、1つまたはそれ以上のコンピュータ可読データファイル、またはデータベースの形状である。地理的データ40は、特定の地域内の、またはその地域に関連する道路及び交差点の位置に関する情報を含むことができ、また一方通行及び回転禁止街路のような道路及び交差点の属性に関する情報、並びに、街路番地、代替ルート、ホテル、レストラン、博物(美術)館、スタジアム、オフィス、自動車ディーラー、自動車修理業等に関する他の情報を含むことができる。地域エリアは、シカゴ及びその近郊、ニューヨーク及びその近郊、ロスアンジェルス及びその近郊のような大都市圏、または代替としてカリフォルニアのような州全体、合衆国のような国土全体、またはこれらの組合わせを含むことができる。1つより多くの領域を記憶媒体上に格納することができる。
【0016】
ナビゲーション応用プログラム18の種々の機能28、30、32、及び34は、ナビゲーションシステム10のユーザに有用なナビゲーション機能を提供するために、記憶媒体22からの地理的データ40の部分を使用する。これらの実施例の場合には必要としないが、ナビゲーションシステムは、種々の応用機能28、30、32、及び34と、地理的データファイル40との間に位置するインタフェースレイヤ41を含むことが好ましい。インタフェースレイヤ41は、応用プログラムが地理的データ40にアクセスして読み取るのを容易にする。一実施例では、インタフェースレイヤ41は、ナビゲーション応用機能を地理的データ40のディテールから分離するソフトウェアライブラリ機能の集まりである。インタフェースレイヤ41に関しては、本願と同日に提出され、その開示全体が本願に参照として採り入れられている前記系属出願 " INTERFACE LAYER FOR NAVIGATION SYSTEM "に詳細に記述されている。
【0017】
II.地理的データの型
前述したように、地理的データ40は、道路、交差点、速度制限、街路名、場所名、回転禁止、街路番地、代替ルート、ホテル、レストラン、美術(博物)館、スタジアム、オフィス、自動車ディーラー、自動車修理業、等々に関する詳細な情報を含んでいる。これらのデータは種々の異なる方法で表すことができる。若干の方法は、所有権を主張できるもの(プロプラエタリ)であることができ、一方他の方法は、産業または業界標準の形状であることができる。
地理的データのために使用される一つのフォーマットはGDF(地理的データファイル)フォーマットである。他のフォーマットも使用可能であり、この実施例に含まれるものと理解されたい。GDF 3.0フォーマットは 1995 年10月12日付でCEN(ヨーロッパ標準化委員会)から発行された文書に記載されており、本明細書はその全文を参照として採り入れている。GDFフォーマットは、ISO(国際標準機構)によってヨーロッパ以外でも採用することを検討中である。GDFフォーマットは、地理的データベースのための交換フォーマットである。GDFフォーマットは、地理的データセットを別のフォーマットから、または別のフォーマットへ転写するのに適している。地理的データセットをナビゲーションシステム内で使用するためには、地理的データセットをGDFフォーマットからより特殊化されたフォーマットへ変換する必要があるかも知れない。この変換プロセスの詳細に関しては後述する。
【0018】
実施例を説明する上で、以下の用語を使用する。他の用語も、本明細書の範囲から逸脱することなく使用できることを理解されたい。
実施例の説明に使用されている地理的データセットに関する「特色」、「属性」及び「関係」という語は、上述したCEN GDF標準に定義されているものである。詳述すれば、「特色」とは実世界対象をデータベース的に表したものであり、「属性」とは他の特色から独立した特色のプロパティであり、そして「関係」とは他の特色を含む特色のプロパティである。他のデータモデルにおいては異なる用語を使用できるが、同じような概念が同じように適用されよう。
地理的データセットでは、「ノード」及び「セグメント」が特色である。
「ノード」は、2つまたはそれ以上の道路の交差を表す点、ある道路の端、または道路属性が変化するような道路に沿う点である。
【0019】
「セグメント」は、ナビゲート可能な道路のある区分を表している。セグメントは各端にノードを有し、その長さに沿って1つまたはそれ以上の形状点を有することができる。
あるセグメントには、以下の属性が関連付けられている。
(1)「形状点」は、セグメントが曲がっているような、またはセグメントが互いに異なるグレードにおいて交わるようなセグメントに沿う点である。
(2)「ランドマーク」は、あるセグメントと、川または鉄道のような詳しく解明する目的にとって重要と考えられる地図作成上の特色との交差である。
(3)「ランク」は、そのセグメントが現れる最高のルート指定データレイヤを指定し、またセグメントの機能的クラスに対応させることができる。
【0020】
(4)「速度カテゴリ」は、セグメントを、平均速度に基づいて分類する。
(5)「レーンカテゴリ」は、セグメントを、単一方向に走行するために使用可能なレーンの数に基づいて分類する。
(6)「ルート型」は、例えば、ドイツにおけるオイロペアン、アウトバーン、ブンデスシュトラーセン、ランデスシュトラーセン、またはクライスシュトラーセン、または米国におけるフィーデラル、インターステート、ステート、またはカウンティのようなルートの型を指定する。
(7)「アクセス特性」は、セグメント上の走行を許可されているトラフィックの型上の制限を指定する。
POI(関心点)は、ホテル、レストラン、美術(博物)館等のような特色である。「ファシリティ型」はPOIの属性であり、ホテル、レストラン、美術(博物)館等のようなPOIの機能的カテゴリを識別する。
【0021】
「地図作成上の点」は、ランドマークのような何等かの点特色を表わす。
「ポリゴン」は、湖のようなある二次元エリアまたは地図作成上の特色の境界である。
「ポリライン」は、ナビゲート不能な、またはナビゲート可能な線形の地図作成上の特色を表している。
「管理エリア」は、市または郡のような行政エンティティの領域である。
「ゾーン」は、近隣地域または自治体として認可されていない村のような、あるエリアに対する非行政名の領域である。
「場所」は、管理エリアまたはゾーンであることができる。
サード・パーティデータ(TPD)は、付加的な関心点に関する情報である。
これらの付加的な関心点データは、サード・パーティデータ販売者によって提供することができるか、それ以外にも、それらが地理的データの残余と完全に統合されないような手法で、提供することができる。
【0022】
上述した情報の型の他にも、記憶媒体上に含まれる付加的な型のデータが存在する。例えば、サウンデックス( soundex ) 型データを含むことができる。この型のデータは、ある要求されたアイテムに似た音声、または類似パターンを有するワードまたはフレーズによって、エンティティの識別を与える。データは、要求されたアイテムに対して、考え得る一致のリストの形状でエンドユーザに戻すことができる。
III.地理的データの編成
再度図2を参照する。地理的データ40は、種々のナビゲーション応用機能28、30、32、及び34の性能を助長する、及び/または強化するように編成され、配列されている。地理的データ40の編成及び配列の若干の面は、使用される特定の物理的媒体に特定であるが、他の面は、特定の記憶媒体から独立し、無関係なナビゲーション機能の性能を助長し、強化する。ナビゲーション機能を助長する地理的データの編成の面は、地理的データのパーセル化、及びパーセル識別と、地理的データ内に正規化された属性、スーパーノード、及びセグメント集合体を含ませることとを含む。これらの各面の詳細に関しては後述する。
【0023】
各ナビゲーション機能応用、またはサブプログラム28、30、32、及び34は、典型的に、全地理的データ40の特定サブセットだけを使用する。サブセットがオーバラップする場合には、同一データを利用する異なる応用は、異なる経路によって、異なる順序でそれらにアクセスするか、または異なる性能要求を有することができる。
図3を参照する。好ましい実施例では、地理的データ40は、地理的データの分離したグループまたはサブセットとして編成されている。各グループは、データの異なる部分または集まりを含んでいる。地理的データの各グループ内に含まれるデータの部分は、データの特定の集まりを使用するナビゲーション応用機能に関係している。一般的に言えば、各機能28、30、32、及び34は地理的データセット全体のそれ自体のサブセットまたは集まりを有している。このようなデータの配列は、地理的データの集まり全体の部分に、ある重複をもたらし得る。しかしながら、もし各ナビゲーション応用機能が地理的データ全体のあるサブセットだけにアクセスすれば、またはもしそのサブセットが地理的データセット全体の中の特定の応用が必要とする部分だけを含んでいれば、一般的にナビゲーション応用機能はより高速に走るようになる。一般的に言えば、1つの機能に使用され、関連付けられたデータの部分は、他の機能に関連付けられ、使用されるデータの部分とは別々にグループ化される。更に、一般的に言えば、機能の各々によって使用されるデータは、一緒に物理的に近接して集められる。同時に、データのサブセットは、総合パーセル化境界及び他の編成的構造を共用することができ、この構造の類似性が応用プログラムの効率及び性能をさらに強化することができる。
【0024】
詳細を後述するように、各機能によって使用される地理的データの各グループはパーセルに編成される。パーセルは、類似した、または規則的にサイズ決めされた(等しい必要はない)量にデータを集めた、またはグループ化したものである。記憶媒体上に格納する場合、パーセルは記憶媒体上に存在する物理的な独特な位置に対応させることができる。一実施例では、パーセルは、記憶媒体から検索されるデータの最小量も表す。
パーセルのサイズ(即ち、パーセル内に含まれるデータの最大量)は、幾つかの要因を考慮して予め定められている。パーセルサイズを決定するために使用される1つの要因は、データを格納する記憶媒体のアクセス特性を含む。これらのアクセス特性は、転送速度及び待ち時間を含む。インデックスされたデータの場合、データの指定されたレコードを探索するために必要なインデックスパーセル検索の平均数と、インデックスパーセルの平均サイズとの間にある平衡が存在する。指定されたデータのレコードのための平均探索時間を最小にするために、単一速度CD−ROM特性は4− 16 セクタ(8− 32 Kバイト)の最適パーセルサイズを決定することができ、更にインデックスパーセルは、それがインデックスするパーセルのデータ内容の平均に等しいデータの量を含むべきである。インデックスは、空間データの場合にはkdツリーを、また順序付けられた(例えば、英数字順)データの場合には平衡多方向探索樹(Bツリー)を含むことができる。
【0025】
パーセルのサイズを決定するために使用される別の要因は、地理的データの空間型(例えば、ルート指定及び地図作成)に関する。これらの型のデータの場合、パーセル境界を説明するために特別な型のデータのような特別な考察が必要であるかも知れない。従って、小さめのパーセルデータ内容は、大きめの合計特別パーセル境界データを暗示し、それによってより大きい合計データベースデータ内容及び潜在的に低効率のアクセスがもたらされる。
パーセルのサイズを決定するために使用される別の要因は、そのデータを使用するナビゲーションシステムのメモリ制約を含む。多くのナビゲーションシステムは制限されたメモリ、またはあるサイズ決めされたデータのブロックと共に使用するように最適化されたメモリを有している。従って、これらの型のハードウェア要求も、可能な範囲内で、データパーセルのサイズを決定するものと考えられる。
【0026】
地理的データ40は、ルート計算機能28によって使用されるデータのパーセルの1つの分離したグループ48と、地図作成機能(即ち、地図表示)30のためのデータのパーセルの別の分離したグループ50と、運転機能32のためのデータのパーセルの更に別の分離したグループ52と、地図作成相互参照のためのデータの別のグループ53と、関心点地理的データのためのデータのパーセルの更に別の分離したグループ54とを含んでいる。一実施例では、これらのパーセルの全てのグループは1つのファイル内にあるが、これらは1より多くのファイルであることができる。
各機能毎の地理的データのサブセットは相互参照され(そして、ポインタを含むことができ)、機能間で共同使用することが可能である。図3に示す物理的編成は使用される媒体の型には無関係であり、図3に示す編成の実施はCD−ROMディスク、PCカード等のような種々の異なる型の物理的媒体に関連付けられた特定の特色を考慮していることは明白である。
【0027】
地理的データの若干のサブセットは、空間的に編成されている。空間的に編成されたデータは、それらのデータが、地理的に近接する特色がデータセット40内に、及び媒体22上で物理的に近接した位置にあることを表すように配列されている。若干のナビゲーション応用機能の場合、それらの関連データの空間的編成は、密に関係している地理的データがより迅速に媒体から読み出され、該機能が使用することができるメモリ内に関係ある地理的データがロードされるようにする。この種の編成は、記憶媒体22へのアクセスを最小にし、若干のナビゲーション機能の動作をスピードアップさせる。
空間的に編成された地理的データのサブセットは、ルート計算データ48、地図作成データ(地図表示)50、地図作成相互参照データ53、関心点データ54を含む。他のデータは、非空間的に編成され、アクセスされる。非空間的に編成されたデータ60は、ナビゲート可能な特色62(例えば、街路名)、場所63(例えば、管理エリア及びゾーン)、郵便コード64、道路の交差/ジャンクション65、及び地図作成上の特色66を含む。サード・パーティデータ61は、空間的に編成されない。サード・パーティデータ61の各レコードは、関心点(POI)データ54内のレコードに関連付けられる。関心点データ54は空間的に編成されるから、サード・パーティデータ61への空間的アクセスは、それらに関連付けられた関心点データ54を介して達成することができる。
【0028】
好ましい実施例では、データのルート計算部分48及びデータの地図作成部分50はレイヤ化されている。各データ型内の各レイヤは同一地理領域をカバーするように広がっている。しかしながら、データ型のより高いレイヤは、より低いレイヤよりも少ないディテールを含んでいる。例えば、データのルート計算部分のレイヤ0は一般に最も詳細なものであり、地理的データセット40が対応している地理領域内の全ての街路及び交差点を含んでいよう。ルート計算部分のレイヤ1は、一般的にその地理領域内のより低速な、そして重要性がより低い街路を省略し、レイヤ2は一般的に次により低速な、そして重要性がより低い街路を省略する、等々である。(所与のレイヤ内にこれらの街路が含まれているかどうかはランク属性によって限定することができる。例えば、街路型(例えば、露地またはインターステート高速自動車道)に依存して、街路セグメントにランクI乃至 IV が与えられているものとすれば、レイヤ0は全てのランクI乃至 IV を含むように限定することができ、レイヤ1はランクII−IVだけを含む(ランクIを省略する)ように限定することができる、等々である。)ルート計算機能は、より高いレイヤから可能な広がりまでを使用したレイヤの組合わせを使用することによって遂行することができる。
【0029】
また地図表示機能30は、迅速なパンニング及びズーミングを容易にするように編成された地理的データのサブセット50を有していると便利である。例えば、もし地理的データのサブセット50がレイヤに編成され、ディテール度の高いものが低いレイヤに、ディテール度が低いものが高いレイヤに存在するようになっていれば、ズーミングをより効率的に行うことができる。更に、地図表示機能30によって使用される地理的データのサブセット50において、もし各データパーセルが同一レイヤのインデックスの他に、その上のレイヤ及び下のレイヤの隣接パーセルのインデックスを含んでいれば、パンニング及びズーミングは、分離したインデックスファイルを更にルックアップすることなく地図表示機能30によってより効率的に行うことができる。パーセルの、同一のレイヤ及び他のレイヤの近隣の内部インデックスは、もしパーセル境界が後述するパーセル化方法を使用して確立されていれば、効率的に生成することができる。
【0030】
ルート計算機能28は、地理的データ40の部分48が2点間の最適ルートの探索を容易にするように編成されていれば便利である。また、できる限り多くの地理的探索データがメモリ20内に保持されている場合、特にCD−ROMを用いた場合のようにもし記憶媒体へのアクセスが比較的遅い場合には、ルート計算機能28をより迅速に走らせることができる。従って、ルート計算機能28によって使用される地理的データ40のサブセット48は、各パーセルが(固定バッファサイズ、または制限されたバッファサイズの数の制約の中で)最大可能な物理的地理的エリアをカバーするように編成することが好ましい。この目的は、ルート計算データパーセル内のデータまたは情報を、ルート計算に特に関連する情報だけに制限し、関連のない情報をできる限り少なくすることによって達成することができる。例えば、ルート計算のために使用される地理的データのサブセット48においては、街路名は省くことができる。
【0031】
エンドユーザに対するルート指定のための指図を生成するために、街路名のような情報は代わりに運転機能によって使用される。従って、運転機能32のために使用される街路名及び付加的な情報は、分離した空間的及び非空間的データパーセル52内に含まれる。しかしながら、街路名情報はルート計算サブセット48または地図作成サブセット50内には含まれない。
関心点地理的データ54は空間的にパーセル化され、画面上への関心点の表示、及び主として車両またはルートに「近い」関心点を入手するためにユーザによる関心点のポイント・アンド・クリック選択の両方を容易にするために、地図作成データ50と相互配置することができる。
前述したように、全ての文脈において、全ての型の地図データへのアクセスを容易にするために、異なる型の空間的に編成されたパーセル(ルート計算、地図作成、運転、関心点、及び地図作成相互参照)の各々は、同一地理エリアをカバーする他の型のパーセルを指すポインタを含んでいる。例えば、ルート計算パーセルは、同じ広がりの、またはオーバラップするカバレッジエリアに関連するデータを有する地図作成パーセルを指すポインタを含んでいる。更に、重要なキーまたは属性上の複数のインデックス、または相互参照により、種々の経路によって地図データにアクセスすることができる。例えば、関心点は、その「名前」によって、その「ファシリティの型」(関心点の型)によって、またはそのチェーンのID(例えば、「マクドナルド」レストラン)によって、探知することができる。この探知は、ある市内にある、または現位置からある指定された距離以内にあることによって更に限定( qualify ) することができる。目的地は、交差道路、街路番地、または関心点名として指定することができ、多分特定の市または町、または他の地理的な標識内にあるものとして限定される。
【0032】
IV.物理的記憶フォーマット
A.パーセル化
1.概要
前述したように、記憶媒体22上のデータ40はパーセル化されている。即ち殆どの、または全てのデータは、より小さい部分に編成され、各パーセルは複数のデータレコード及び他の情報を含む。パーセルは、記憶媒体上にデータを格納するための物理的な小分け(サブディビジョン)にも相関している。一般に、ある地理領域全体に関連するデータの完全な集まりは、メモリ内に一時にロードするには大き過ぎる。従って、データはより小さいグループまたはパーセルに編成されるのである。若干の地図データの場合には、パーセルは空間的に編成されている。即ち、各パーセルは物理的エリアの地理的矩形エリア(方形エリアを含む)で取り囲まれた地理的データを表している。
【0033】
データをパーセルにグループ化するのは、幾つかの目的がある。第1に、ナビゲーション機能の何れか1つがユーザのために動作を遂行するために必要とする殆どの、または全てのデータを1つのパーセル、またはできる限り少ないパーセル内にグループ化することを意図して、データはパーセルに編成される。もしユーザが彼の位置の地図を表示することを欲するのであれば、ユーザの直近の地理的エリアに関係するデータを、全ての必要データにアクセスしてメモリ内に迅速にロードできるように編成することが好ましいであろう。従って、ユーザのエリアの地図を表示するために必要な全てのデータを含むパーセルを、1つの、またはできる限り少ないパーセル内に一緒にグループ化すべきである。一般的に言えば、より大きいパーセルの方がベターである。各パーセルは、その地理的エリアに関係する多くの動作を処理できるように、できる限り多くの地理的エリアを理想的にカバーすべきである。データをパーセル化する別の理由は、ナビゲーションシステム応用によって容易に使用できるようなサイズを各パーセルが有するように、データをパーセルにグループ化することである。これらのサイズはハードウェア及びメモリ制約に関係し、例えば2Kバイト、4Kバイト、8Kバイト、または 16 Kバイトの規則的な倍数であることができる。
【0034】
好ましい実施例では、全ての型のデータのためのパーセルは、同一の方法を使用して構成されている。前述したように、各パーセルができる限り多くのデータを含んでいることが望ましい。例えば、もし地理的エリア全体を取り囲んでいる矩形を単に何回も二分して行き、それにより形成される全ての小さい矩形が所望の最大量のデータ以上のものを含まないようになるまで繰り返せば、これらの矩形から形成される多くのパーセル内のデータの量は、完全充実よりもかなり少なくなるであろう。これは、典型的には地理的エリアが地理的データを均一な密度で有していないことが原因である。パーセルのかなりな部分が実質的に完全充実よりも少ないと、空間が浪費され、性能が貧弱になる。以下に説明するパーセル化方法は、比較的充実したパーセルの数を最大にする。また以下に説明するパーセル化方法は、パーセルの識別及び検索を迅速処理するパーセル化配列をも提供する。
【0035】
前述したように、各ナビゲーション機能には、その機能のために適する全地理的データセットのサブセットが設けられている。従って、全地理的データセットのあるバージョンから開始して、各分離した機能毎に全データセットの分離したサブセットが生成される。例えば、特定の地理領域のための全ての地理的データを含む全地理的データから、ルート計算データサブセット、地理作成特色データサブセット、運転データサブセット、関心点データサブセット、地図作成特色データサブセット、ナビゲート可能な特色データサブセット、交差道路/ジャンクションデータサブセット、サード・パーティデータサブセット、場所データサブセット、郵便ゾーンデータサブセット、等々を含む地理的データの分離したサブセットが生成される。分離したサブセットを生成した後に、またはその一部として、各サブセットのパーセル化が遂行される。サブセットはどのような順序でパーセル化することもできるが、好ましい実施例では、空間的に編成されたデータ(即ち、ルート指定、地図作成、運転等々)の場合、一般的に最稠密データであると予測されるデータの型、即ち、最大数のパーセルに分割されることが予測されるデータのサブセットが最初にパーセル化され、グローバルkdツリーが生成される。例えば、ルート計算データが最稠密であり得るから、パーセル化は地理的データのサブセット上で最初に遂行される。
【0036】
2.最初のパーセル境界の決定
初期パーセル境界はどの位置においても確立することは可能であるが、好ましい実施例においては、パーセル境界の初期配置は以下のようにして選択される。先ず地理的データを調べ、それらの外側地理的境界を決定する。図4Aを参照する。図4Aには、地理的エリア100の地図が示されている。記憶媒体22上に格納される地理的データ40は、地理的エリア100に関係がある。地理的エリア100の地図上には、複数の点101が示されている。前述したように、パーセル化は、例えばルート計算サブセットのような、データのサブセットの1つから先ず遂行される。データのルート計算サブセット内には、ノードを識別する個々のデータレコードが含まれている。ノードレコードは、地理的エリア100内の特定の物理的位置に対応している。各ノードは、特定の緯度、経度、及び相対高度(「Zレベル」)を有している。データのルート計算サブセットは、セグメントを識別するデータレコードも含んでいる。セグメントレコードは、その地理的エリア内の道路の部分のようなある長さを有する物理的特色に対応している。各セグメントレコードは、セグメントの端点に位置するノードを参照し、それらのノードを識別することができる。更に、セグメントは、そのセグメント内の曲がり(または、物理的位置)を識別するために使用される1つまたはそれ以上の形状点を、その端点間に含むことができる。従って全ての空間的に関係を有している地理的データは、地理的エリア100内に独自の緯度及び経度を有するノードによって識別することができる。図4Aに示す点101は、地理的データセット内のノードに対応する。各点101は、地理的エリア100の地図上で、地理的データセットのルート計算サブセット内においてそれが対応しているノードの緯度及び経度に対応する位置に示されている。図4Aは、説明の目的だけのために使用され、好ましい実施例では、説明中のパーセル化手順は、適切なデータのサブセット上で動作するコンピュータプログラムによって遂行される。
【0037】
引き続き図4Aを参照する。最も外側のノードが識別される。例えば、ノード102Wは最大の経度を有する地理的データセットのルート計算部分内のノードであり、ノード102Eは最小経度を有する地理的データセットのルート計算部分内のノードであり、ノード102Sは最小緯度を有する地理的データセットのルート計算部分内のノードであり、ノード102Nは最大緯度を有する地理的データセットのルート計算部分内のノードである。ノード102N、102S、102E、及び102Wは、図4Bに破線で表されている最小境界画定用矩形(“MBR”)を限定する。最小境界画定用矩形は、全ての地理的データを含む最小の矩形である。
好ましい実施例では、緯度及び経度の寸法は、度の 1/100,000に等しいナビゲーション寸法単位で表される。度と同じように、ナビゲーション単位は絶対であることも、または地球の表面上の座標位置を参照することもできる。更に、好ましい実施例では、寸法単位は整数である。従って、測度の最小単位は、度の 1/100,000を表す「1」である。代替実施例では、寸法を表すための単位として度以外の値を選択することができ、測度単位はそれが小数を含むように選択することができる。
【0038】
好ましい実施例では、最小境界画定用矩形はその東及び北縁において、ノード102N及び102Eによって限定された縁から付加的な1寸法単位だけ外向きに調整される。例えば、もし102Nが 282の緯度を有していれば、最小境界画定用矩形の北側は緯度 283、即ち 282+1にされる。同様に、もし102Eの経度が 90,000 であれば、最小境界画定用矩形の東側は 経度 90,001 にされる。これを図4Cに示す。
このような調整された最小境界画定用矩形によって限定されたデータセットは、最小境界画定用矩形内に取り囲まれる全てのデータ、並びに最小境界画定用矩形の西及び南縁(北及び東縁は除く)と交差するどのデータをも含むものと考えることができる。このような調整された最小境界画定用矩形を使用することの利点は、各最小境界画定用矩形が結果として独特なデータセットを取り囲むようになることである。換言すれば、あるノードは1つの最小境界画定用矩形だけの中に見出される。これは、たとえ任意の最小境界画定用矩形の東縁の緯度(102Eの経度+1に等しい)が、直ぐ東の最小境界画定用矩形の西縁の緯度と同一であっても言えることである。
【0039】
前者の最小境界画定用矩形だけが、このような共有されている縁によって取り囲まれたデータを含み(しかし、共用されている縁と交差する縁は含まない)、一方後者の最小境界画定用矩形は共用されている縁と交差する縁を含むことができる。
好ましい実施例では、最小境界画定用矩形106を取り囲む最小囲み分割可能タイル(または、「ダイ・タイル」( di-tile ) )が決定される。分割可能タイル(ダイ・タイル)は、緯度M×2I ナビゲーション単位と(M+1)×2I ナビゲーション単位との間、及び経度N×2J ナビゲーション単位と(N+1)×2J ナビゲーション単位との間の全ての地図データを含む寸法2I ×2J の面積のことである。ここに、M及びNは整数であり、I及びJは正の整数である。
【0040】
最小囲みダイ・タイルを決定する一方法は、受入れ可能な間隔を限定し、そして最小囲みダイ・タイルがその側として受入れ可能な間隔だけを有することを要求することである。受入れ可能な間隔は、緯度及び経度の両方向に限定される。(任意の開始位置を選択することができるが、好ましい実施例では、受入れ可能な間隔は普通の緯度及び経度開始位置、即ち赤道及びグリニッチに準拠する。)受入れ可能な間隔は、2の累乗だけを、例えば、0−1、2−3、4−7、8−15、16−23、24−31、・・・、0−15、16−31、32−47、48−63、・・・、等々(ナビゲーション単位で)を含むように限定することができる。
図4Dに、受入れ可能な間隔の例が示されている。図4Dにおいて、「0」はグリニッチまたは赤道の何れかを表している。単位1、2、・・・等は、度の 1/100,000に等しいナビゲーション単位を表すことができる。従ってグリニッチ(経度0)から開始して、受入れ可能な間隔は、図中の線によって表させるものの何れかを含む。例えば、もし最小境界画定用矩形の西座標が5であり、東座標が 12 であれば、受入れ可能な間隔は間隔I(0,16)になろう。北・南座標に関しても同じような受入れ可能な間隔のセットが赤道に対して限定される。
【0041】
前述したように、好ましい実施例では、最小囲み矩形のための最小囲みダイ・タイルの側は、受入れ可能な間隔であることが要求される。従って、この実施例では、初期ダイ・タイルの東・西座標は2I 単位の倍数であり、初期ダイ・タイルの北・南座標は2J である。(I及びJは整数であるから、例えば、初期ダイ・タイルの東・西長さは1、2、4、8、16、32、64、128 、256 、512 、または 1024 等の単位の寸法を有し、また初期ダイ・タイルの北・南長さは1、2、4、8、16、32、64、128 、256 、512 、または 1024 等の単位の寸法を有することができる。)
このようにして最小囲みダイ・タイルを形成することの1つの長所は、異なる地図カバレッジエリアのためのダイ・タイルをより容易に併合できることである(何故ならば、異なる地図カバレッジエリアのための境界が、同一のアプローチを使用して確立されているからである。)
負及び正のナビゲーション単位の両方を含む地図カバレッジエリア(即ち、最小境界画定用矩形が、赤道及びグリニッチの何れかを含んでいるカバレッジエリア)においては、付加的な受入れ可能な間隔が要求され、従って217の倍数である座標から始まる長さ218の間隔、218の倍数である座標から始まる長さ219の間隔等々が受入れ可能であり、これらの間隔の若干は経度0°(グリニッチ)及び緯度0°(赤道)にオーバラップする。
【0042】
3.初期パーセルサイズの確立
最小囲みダイ・タイルを確立してしまうと、データをパーセル化することができる。一代替実施例では、パーセル化プロセスは、以下に説明する「規則的分割手順」を最小囲みダイ・タイル107に適用することによって開始することができる。しかしながら、好ましい実施例では、最小囲みダイ・タイルから形成された矩形の規則的な格子内へのデータの編成に基づき、先ずカバレッジエリア内のデータが調べられる。これは、最小囲みダイ・タイルを二分し、次いでそれらから形成された矩形(方形)を二分することを、矩形の規則的な格子が得られるまで複数回繰り返すことと同意義である。この格子内の各矩形を、「初期タイル」と呼ぶことができる。初期タイルサイズは、地理的データセット内の何等かの型のデータの何等かのレイヤの1つのパーセルによって表すことができる最大地理的エリアであると決定される。一実施例では、国全体の全ての領域のために1つの固定された初期タイルサイズが限定されるので、領域はより容易に併合することができる。一つの好ましい実施例においては、各初期タイルは、217ナビゲーション単位×217ナビゲーション単位の固定された所定のサイズである。
【0043】
これらの初期タイルを、図4Bに格子108として示してある。代替としてこれらの初期タイルは、地理的エリア100を、格子108と同一のパターンを有する規則的な格子に単に重ねることによって限定することができる。何れの場合も格子108は初期矩形タイル(例えば、タイル110a,b 、タイル110a+1,b 、・・・、タイル110m,n )で作られている。
最小境界画定用矩形106(即ち、最小経度(ノード102Eに対応)、最小緯度(ノード102Sに対応)、最大緯度(ノード102Nに対応)、及び最大経度(ノード102Wに対応))を取り囲むために、格子108の境界の配置が決定される。格子境界は、図4Bに示すように格子を領域100上に被せた時に、全ての空間的データが取り囲まれ、初期タイルが上述したようなサイズを有するように限定される。好ましい実施例では、格子境界の配置は、上述した受入れ可能な間隔にも準拠する。
【0044】

格子境界を決定するための上述した手順を実施する例は以下のようである。
1)最小緯度(MinLat)、最大緯度(MaxLat)、最小経度(MinLong)、及び最大経度(MaxLong)を、最小境界矩形106の最小及び最大緯度及び経度にセットすることによって開始する。これらの値は度の 1/100,000の単位であるから、これらは経度で−18000000乃至 18000000 の範囲であり、緯度で−9000000 乃至 9000000の範囲である。
2)1の増分においてK=25の場合、
(a)MaxLatを2K で除算する。
(b)MaxLatに2K を乗算する。MaxLatは整数であるから、これら2つの演算は、MaxLatのK低位バイナリディジットを切り捨てる効果を有している。実際には、これは、除算及び乗算よりも効率的な、MaxLatを右シフト及び左シフトさせることによって行われる。
【0045】
(c)もし最小境界画定用矩形の最大緯度がMaxLatよりも大きければ、MaxLatに2K を加算する。
(d)MinLatを2K で除算する。
(e)MinLatに2K を乗算する。
(f)もし最小境界画定用矩形の最小緯度がMinLatよりも小さければ、MinLatから2K を減算する。
(g)もしMinLat+2K がMaxLatに等しければ、停止する。そうでなければ、次に高いKの値に関して段階(a)から繰り返す。
3)MinLong及びMaxLongについて段階2の動作を遂行する。
これによって、MinLat、MaxLatMinLong、及びMaxLongが、格子108の境界、即ち最小境界画定用矩形106を囲むダイ・タイルを限定する。
【0046】
4.パーセルの確立
前述したように、データをパーセル化する目的は、所定の最大パーセル量にできる限り近い、しかしそれを超えない量のデータを、各パーセルに含ませることである。例えば、所定の最大量は、16Kバイトである。
図4Bの格子108内の初期タイルの各々は、その中のデータの量が単一のパーセル内にフィットするか否かを見るために「試行パーセル」として調べられる。もし「試行パーセル」内の(インデックス情報及びヘッダのような)何等かのパーセルオーバヘッドを含むデータが(もし使用されていれば、データ圧縮を考慮して)最大パーセル量より小さいか、または等しければ、パーセルはその初期タイルで構成され、その特定データの型について、その初期タイルの分割は遂行されない。一方、所定の最大パーセル量を超えるデータの量を含むどの「試行パーセル」も、その「試行パーセル」内のデータが所望の最大量を超えた量の関数として、以下の2つの手順の一方を使用して分割される。(好ましい実施例では、以下に説明する推定技術を使用して試行パーセルを決定する。推定技術は、あるパーセルを形成するために必要な全ての段階を実際に遂行せずに、パーセルオーバヘッド及び圧縮を考慮する。)
「規則的な分割手順」:もし「試行パーセル」内のデータの量が最大パーセル量を所定の倍数だけ超えれば、その「試行パーセル」を2つの矩形に分割する。好ましい実施例では、「試行パーセル」を2つの矩形に分割するのは、先ずその試行パーセルのための最小囲みダイ・タイルを決定し(初期タイルに関して上述したようにして)、囲みダイ・タイルを二分し、次いでダイ・タイルを二分した線が試行パーセルと交差する場所で「試行パーセル」を分割することによって遂行される。代替として、「試行パーセル」はそれ自体簡単に二等分することができる。(囲みダイ・タイルの二分が常に試行パーセルを二等分するとは限らず、離心した位置において試行パーセルを分割することがあり得ることに注目されたい。本説明では、このような試行パーセルの分割でも「二分」という。)何れの場合も、ダイ・タイルの二分線は、経度または緯度方向の何れかにある。好ましい実施例では、ダイ・タイルを経度分割または緯度分割のどちらで分割しようとも、得られた2つの試行パーセルの矩形の最大縦横比(≧1)は最小になる。これらの得られた各矩形は、上述したように「試行パーセル」として調べられ、もしその中に含まれるデータが最大パーセル量の所定の倍数を超えれば二分される。これらの各副矩形も上述したように「試行パーセル」として調べられ、このプロセスは矩形または副矩形内のデータの量が最大パーセル量の所定の倍数より少なくなるまで続行される。ある実施例では、最大パーセル量は 16 Kバイトのデータであると予め定められており、従って、所定の倍数は 3.2である。(代替実施例では、最大量は 16 Kよりも大きいか、または小さい、例えば8Kまたは 32 Kのような別の量、またはこれらよりも大きいか、または小さい量にでも予め定めることができる。)従って、この手順によれば、「試行パーセル」のデータ内容が 51.2 Kバイトを超えた場合に「試行パーセル」が二分される。所定の倍数は、各パーセル毎の所望の最大充填率に基づいて選択される。この実施例では、所望の最大充填率は 80 %である。何れかの試行パーセル内のデータの量が所定の量りも小さければ、試行パーセルのさらなる小分け(サブディビジョン)は、以下の「カストム分割手順」に従う。
【0047】
「カストム分割手順」:もし何れかの「試行パーセル」内のデータの量が最大パーセル量は超えているが、最大パーセル量の所定の倍数より小さければ(例えば、16Kb<x<51.2Kb)、以下のカストム分割手順が使用される。この「試行パーセル」のさらなる分割は必ずしも二等分ではなく、むしろ作成されるパーセルの数を最小にさせるように行われる。これは、パーセルを格納するために必要な空間及びパーセル内で浪費される空間の両者を最小にする効果を有する。
例えば、最大パーセルサイズまたは量の 3.6倍に等しいデータを含む試行パーセルが与えられた場合、これらのデータは4つのパーセル内にフィットさせることができる。しかしながら試行パーセルの二分は、それぞれ最大パーセルサイズの 1.2倍と、最大パーセルサイズの 2.4倍の2つの矩形にそれを分割する(もし、各矩形を分割するために二等分を使用すれば、最低5つのパーセルが発生することになる)。従って、この段階における矩形の小分けは、作成されるパーセルの数を最小にするという目的でなされるが、分割線は任意に選択されるのではないという制約を伴っている。より詳しく述べれば、「試行パーセル」が最大パーセルサイズよりは大きいが、その所定の倍数を超えないデータ内容を有している場合には、その「試行パーセル」はその一方の寸法に沿って2-Xの仕切りで分割される。好ましい実施例では、X={1、2、3、4、5}である。即ち、試行パーセルは、その幅の1/2 、または 1/4、または 1/3、または 1/16 、または 1/32 の仕切りにおいて分割される。例えば、試行パーセルは、その試行パーセルの幅の 5/8及び 3/8にそれぞれ等しい幅を有する2つの矩形に分割することができる。このカストム分割は、試行パーセルの寸法に直接適用することも、または好ましい実施例では、試行パーセルの最小囲みダイ・タイルの寸法に適用することもできる。後者の場合、試行パーセルは、ダイ・タイル交差の分割線がその試行パーセルと交差する場所において分割される。何れの場合も、分割線は経度方向または緯度方向の何れかである。
【0048】
候補分割線は、以下のようにして調べられる。第1に、分割は、試行パーセルの経度及び緯度幅の両方に沿う指定された2-Xの各仕切りにおいて行われる。このような各分割の場合、得られた2つの各矩形の縦横比(大きい方の寸法と、小さい方の寸法との比として定義される)が決定され、2つの中の大きい方が識別される。次いで、各候補分割線毎に識別された最大縦横比が比較され、候補分割線が、これらの縦横比の最小から最大まで順序付けられる。順序付けられたリスト内の第1候補線から始めて、候補分割線から生じた矩形が調べられる。試行パーセルを分割するために選択された候補分割線は、その2つの得られた矩形の一方内のデータ内容が最大パーセルサイズよりは大きいが、最大充填率×最大パーセル量の倍数(例えば、2倍)及び最大パーセル量より小さいか、または等しい場合に遭遇するリスト内の最初のものである。例えば、分割線は、得られる矩形の一方の中に最大パーセル量の 1.6乃至 2.0倍の間の量が含まれるように選択される。矩形を1回より多く分割することによって2つのさらなる副矩形が形成され、各副矩形は最大パーセル量の 80 %( 0.8)より大きい充填率を有することができる。最大パーセル量の 80 %乃至 100%の間の充填率を有するこれらの結果的な各副矩形がパーセル内に形成される。もし候補分割線がこの基準に合致しなければ、第1候補分割線(即ち、最大縦横比が最小になるもの)を使用して所与の矩形を分割する。
【0049】

以下に、パーセル化中に、試行パーセルの二分を停止させる時点、及び試行パーセルの経度及び緯度の両方向の幅に沿って 1/32 、1/16、3/32、1/8 、5/32、3/16、7/32、1/4 、9/32、5/16、11/32 、3/8 、13/32 、7/16、15/32 、17/32 、9/16、19/32 、5/8 、21/32 、11/16 、23/32 、3/4 、25/32 、13/16 、27/32 、7/8 、29/32 、15/16 、及び 31/32の候補分割を評価するカストム手順を開始させる時点をどのようにして決定するのかを説明する。
目標パーセル充填率Fが選択される。例示の目的で、Fを 0.8( 80 %)としよう。上述したように、最大パーセルサイズPも決定される。Pはバイトで表され、パーセル内に配置することができる最大データ量である。従って、最適には、サイズがF×PバイトとPバイトの範囲内のパーセルを作成することが望ましい。
【0050】
もしデータサイズDを有する試行パーセルがP<D<1.6 ×Pの範囲内にあれば、目標範囲内に入るデータサイズを有するパーセルをそれから作成することは不可能である。もし結果的に得られる一方の矩形のデータサイズが 0.8×Pより大きいかまたは等しくなるように試行パーセルを分割すれば、他方の矩形のデータサイズは 0.8×Pよりも小さくなるからである。
このプロセスは、以下の受入れ不能なデータサイズのリストを与えるように延長することができる。
受入れ不能データサイズD
0<D< 0.8×P
P<D< 1.6×P
2×P<D< 2.4×P
3×P<D< 3.2×P
次のエントリは、
4×P<D<4×P
になるから、この点においてリストは停止する。
【0051】
上記リストから、受入れ可能なデータサイズの相補的なリストを生成することができる。
0.8 ×P≦D≦P
1.6 ×P≦D≦2×P
2.4 ×P≦D≦3×P
3.2 ×P≦D
上記リストは、0.8 に等しい充填率Fに対応する。他の充填率は、受入れ可能及び受入れ不能なデータサイズの異なるリストを生成する。一般的に言えば、受入れ不能なデータサイズのリストは以下のような形状である。
受入れ不能データサイズD
0<D<F×P
P<D<2×F×P
・・・
n×P<D(n+1)×F×P
・・・
空き範囲に到達するまで続く。
【0052】
以上は、パーセルを形成するためのカストム手順に以下のように使用される。試行パーセル分割から生じた2つの各矩形のデータサイズは、(可能な場合には何時でも)受入れ可能な範囲の1つに入るべきである。実際には、これは矩形内のデータサイズが最高受入れ不能範囲の高い方の端(この例では、3.2 ×P)よりも幾らか大きく、矩形が上述した二分手順に従って分割できることを意味する。最高受入れ不能範囲の高い方の端に接近すると、カストム分割(即ち、この例では、1/32、1/16、3/32、1/8 等)が考えられるようになる。
上述したようにして候補分割線が調べられ、比較される。そして分割のために選択された分割線は以下の基準に合致する場所である。試行パーセルの2つの各副矩形内に入るデータの量は、それが理論的にはそれ自体を矩形に副分割でき、それらが指定された最小パーセルデータ充填率を平均的に達成するようなサイズである。上述した基準を満たすことができない場合が発生し得る。
【0053】
データはカストム分割手順で選択された分割線で分割され、作成された2つの各副矩形毎に必要に応じてカストム分割プロセスが繰り返される。上述したように、二分及びカストム分割手順は試行パーセルに直接適用することも、または試行パーセルの最小囲いダイ・タイルに適用することもできるが、後者の方が好ましい。若干の場合には、最小囲いダイ・タイルが試行パーセル境界に正確に等しいことに注目されたい。この最も顕著なものは、初期タイル108に関して発生し得る。最小囲いタイルによって分割を限定するユーティリティは、あるタイルは繰り返して均等に半分に分割できるが、一方任意の寸法の試行パーセル矩形はそのようにできないことである。別の利点は、この手順が異なるデータベース間の境界における処理を容易ならしめることである。タイルの側を2-X分割で試行パーセルをカストム分割することは、1からXまでの二分の数列と同意義である。従って、分割線、従って結果的な副矩形は、最小数のビット(任意矩形を限定するための8または 16 バイトまでとは対照的に、1/32分割毎に5ビット)で表すことができる。
【0054】
(矩形内に含まれるデータベースの量を調べる際に、「正確に」分割線上に位置するどのデータエンティティも、もしその分割線が北・南線であれば、その線の「右側の」(「東」の)矩形内にそのデータと共に含まれ、もし分割線が東・西線であれば、その線の「上の」(「北」の)データと共に含まれる。)
上述した手順は、格子108内の全ての初期タイル110(そして、必要な場合、全ての結果的な矩形)に対して遂行される。
5.その後のパーセル化
前述したように、地理的データの各サブセットまたは型は、他の型のサブセットから分離して維持される。例えば、ルート計算データは地図作成データから分離して配置されている。更に、データの単一のサブセット内では、データは更にレイヤに分離することができる。
【0055】
1つの型の地理的データの1つのレイヤ(即ち、ルート計算データのレイヤ0のような、最稠密であると推定されるレイヤ及び型)に対して上述したパーセル化手順が遂行された後に、同一データ型の他のレイヤ、及び他のデータ型のパーセル化が遂行される。これらの他のパーセル化(即ち、同一データ型の他のレイヤ、及び他のデータ型のパーセル化)は、初期パーセル化に使用されたものと正確に同一の初期タイリング格子108から開始される。異なるデータ型のその後の各パーセル化の各再帰レベルにおいて、ある矩形の小分けが必要になった場合には、それは、初期データ型のパーセル化中(もしくは何等かの先行パーセル化中)に使用されたものと正確に同一の分割線において(二分によって達成されていようと、またはカストム分割によって達成されていようと)遂行することが要求される。
【0056】
高レイヤは低密度であるから、各パーセルが最大パーセルサイズ内にあるようにするために、データを多くのパーセル内に分割する必要はないかも知れない。従って、特定のデータ型の高レベルにおいては少ないパーセルが存在する可能性があり、若干のパーセルは低レイヤにおけるよりも大きい地理的エリアを表すことができる。しかしながら、前述したように、高レベルのデータの分割は、低レベルにおいてなされたものと同一分割線に沿ってなされ、高レベルにおける分割はデータの量が最大パーセルサイズよりも大きくなくなるまで、必要な限り進行する。
その後のパーセル化中、分割プロセスを従来のパーセル化におけるよりも更に進める必要があるかも知れない。これは、もし初期タイル、またはそれらから形成された矩形の何れかの中に位置するその後のデータ型のデータが、先行パーセル化中に使用されたデータ型よりも稠密であれば発生する。この場合、各タイルが最大パーセル量よりも少ないその後のデータ型を含むように、始めのパーセル化が初期タイルを充分に小さい副矩形に分割しなかったのかも知れない。この場合、分割線は、それが初期パーセル化手順である場合のように決定される。この要求は、異なるレイヤまたは型のパーセルA及びBに関して、パーセルAによってカバーされる地理的エリアが、パーセルBによってカバーされる地理的エリア内に含まれているか、又はパーセルBによってカバーされる地理的エリアが、パーセルAによってカバーされる地理的エリア内に含まれているかの何れかの場合には常にそのようであることを意味する。
【0057】
換言すれば、データ密度が最大であると予測されるデータの型(例えば、ルート計算データのレイヤ0)をパーセル化した後に、同一データ型の他のレイヤ(例えば、ルート計算データのレイヤ1)、または他のデータ型(例えば地図作成データのレイヤ0)が、以下のようにして初期パーセル化と並列にパーセル化される。
1)初期矩形へのデータの小分けが、正確に同一タイルのセットから開始される。
2)特定の矩形内のデータが最大パーセルサイズを超えると、従って小分けしなければならない場合には、2つの手順の一方が使用される。即ち、(1)もしその矩形が初期パーセル化において、または何れかの先行パーセル化において小分けされていれば、先行パーセル化において使用されたものと正確に同一の分割線が使用される。(2)もしその矩形が先に分割されていなければ、初期パーセル化に関して説明したようにしてその分割線が決定される。
【0058】
長所
上述したパーセル化方法及び編成は、最適に充填されていないパーセルが作成されることを最小にし、それによって記憶媒体の格納効率を最大にすることを含む幾つかの長所を有している。これにより、1つまたは幾つかの固定されたサイズのバッファが与えられた場合、一時に、より多くのデータをメモリバッファ内に保持することができる。更に、本パーセル化方法及び編成によって同一型及びレイヤの隣接するパーセル間をナビゲートするのを容易にしながら、各パーセル内のこれらの隣接パーセル境界画定用矩形を含ませる必要も、または分離した空間的インデックスを読み出す必要もなくしている。パーセル境界を限定する方法が規則正しいので、近隣パーセルの最小にサイズ決めされた空間インデックスを各パーセル内に担持させることができる。更に、異なるレイヤ及び異なるパーセル型が並列にパーセル化されるので、この方法は、同一の、またはオーバラップしている地理的エリアをカバーする異なる型の、または異なるレイヤにおけるパーセル間をナビゲートするのを容易にする。更に、パネルを分割するためにダイ・タイルを使用することによって、境を接してはいるが分離して格納されている地理的データベース領域間をナビゲートするのが容易になる。
【0059】
6.パーセルの順序付け
全てのデータ型のための全てのパーセルが確立されてしまうと、パーセルは、パーセルのディスクへの最終的な書き込みを容易にするために配置される。CD−ROMディスクのような記憶デバイスからデバイスを読み出す際のシーク時間を最小にするために、パーセルの各空間セットは、グローバルkdツリーインデックスの場合には、深さ優先順に(即ち、各分割線毎に、分割の座標よりも小さい座標を有する副矩形内に含まれる全てのパーセルが、分割の座標よりも大きい座標を有する副矩形内に含まれる全てのパーセルに先行するように)編成されるので、地理的に隣接するパーセルはディスク上で互いに密接する見込みがより大きくなる。特定の型のディスクにアクセスするために使用される見込みが最も大きいリニアまたは空間インデックスは、そのデータの次に、及びそれに先行して配置される。「グローバルkdツリー」は全ての空間パーセル型をインデックスするから、それは媒体上の種々の位置に(即ち、空間パーセルの各データセットの近くに、そしてそれに先行して)冗長的に複製され得る。
【0060】
パーセルは、ほぼペアノ( Peano ) キー順にディスク上に格納される。パーセルの実際の順序付けは、パーセル化中、初期ダイ・タイルが副矩形に、そして最終的にパーセルに再帰的にスプリットされるにつれて生成される二次元kdツリー(データベース領域全体を表す)に基づいている。パーセルの順序付けは、このkdツリーの深さ優先走査( traversal ) によって生成される。領域の初期囲いダイ・タイルを選択し、パーセル化中に各分割線を選択する方法(前述)のために、この順序付けは、各矩形の分割線がその矩形を正確に二等分するペアノキー順序付けと同一であるが、分割線が二等分線ではない場合には、kdツリーの最低レベルにおいてペアノキー順序付けとは僅かに異なる。この順序付けは、正確なペアノキー順序付けと同様に、地理的に隣接しているパーセルをディスク上で互いに近接させて格納する見込みがより大きい。この順序付けが正確なペアノキー順序付けに優る点は、それがパーセル化プロセスによって自動的に生成され、従って付加的な分類を必要としないことである。二次元kdツリーからなるインデックス(詳細は後述する)を使用して、ルート計算パーセルに空間的にアクセスすることができる(二次元は、パーセル生成中に使用される分割線の緯度及び経度である)。この型のインデックシングは、ルート案内応用が最初に車両の現在位置に対応する地図ディスクを探知する時のように、任意位置の初期探知のために有用である。しかしながら、開始位置が分かれば、近くの地図ディスクに関する全ての情報は、パーセル内部のインデックス内に見出すことができる。
【0061】
7.インデックスツリーパーセル化及び物理的記憶フォーマット
種々のインデックスツリーが、物理的記憶フォーマットに使用される。これらは、各ループ計算、地図作成、及び関心点パーセル内に格納されている2d「隣接パーセルkdツリー」を含む。ルート計算及び地図作成ディスクパーセルは、2d「内部kdツリー」も含んでいる。
種々のグローバルインデックスツリー(データベース領域毎に)も使用される。一般的に言えば、これらの各ツリーは、単一のインデックスパーセル内にフィットすることはできない。インデックスパーセルは、完全な、または部分的なツリー(グローバルツリー、またはサブツリー)を含むことができるか、または1つより多くの完全ツリー(グローバルツリーのサブツリー)を格納することができる。理論的に考察すると、探索時間を最小にするためには、インデックスパーセルのサイズは、それらがインデックスするレコードパーセルの(平均)サイズに等しくすべきであることを暗示している。
【0062】
グローバルツリーのパーセル化は以下のように進行する。ノードは、第1位の下に格納される(探索時間を平衡させるために)。もしあるパーセルがその中に別のノードを格納することができない程充満していれば、新しいパーセルが作成されて未格納ノードが新しいパーセルのための根として選択され、第1位の下に再帰的に格納される。インデックスパーセルは、もしこれらの根における完全サブツリーがそのパーセル内にフィットする場合に限って1つより多くの根を含むことができる。即ち、もし完全サブツリーがあるインデックスパーセル内にパーセル化されていれば、完全サブツリーがそのパーセル内にフィットする場合に限って別の最高レベル未格納ノードをそのインデックスパーセル内の別の根として格納することができる。これにより、不要なクロスパーセルインデックス探索が防がれる。
【0063】
これらの根は、各インデックスパーセル内で、0から開始される順番に(ツリー識別子によって)番号付けされる。従って、あるノードに対するパーセル間参照は、パーセルID(マイナス領域指定子)+ツリーIDによる。あるノードに対するパーセル内参照は、バイトオフセットによる(「隣接パーセルkdツリー」及び「内部kdツリー」を用いる場合のように)。インデックスツリーは、インデックスパーセル内に圧縮解除されて格納される。
インデックスパーセルは以下の構造を有している。パーセル内の第1のデータは、IdxPclHdr t ヘッダ(バイトパックされた)である。ヘッダに続くのは、ツリーIDによってインデックスされるパーセル内の根に対するオフセットアレイである。
【0064】
Ushort 16 root offset[]; /* root offset array */
オフセットアレイに続くのはツリーである。
8.グローバル空間的パーセル化ツリー
各領域毎に、2D kd・グローバル空間的パーセル化ツリーが存在する。このツリーの構造は、全ての空間的にパーセル化されたデータ型(他のデータ型のための先行パーセル化と並列にパーセル化が進行されるので、限定されている)のための全てのパーセル化をリファインメントしたパーセル化に対応している。このツリーは、少なくとも2つの異なる種類の探索のために使用される。第1にこのツリーは、どのパーセルが、緯度及び経度座標が与えられた点を含んでいるのかを決定するために使用される。別の型の探索は、矩形の境界座標が与えられた矩形と交差する1つまたはそれ以上のパーセルを決定するために使用される。これらの両方の型の探索は、質問、地図表示、ルート計算、等々を含む種々の機能に使用することができる。このkdツリーの中のノードは、もしそのノードの右(左)の子に対応する矩形がそのデータパーセルのための境界画定用矩形であれば、その右(左)記述子識別子対リストを介して、データパーセルを参照する。それは、ある型(例えば、ルート計算のレイヤ1)のデータパーセルを参照することができ、また別の型(例えば、地理作成のレイヤ0)のデータパーセルを参照する子孫ノードを有することもできる。
【0065】
各「隣接パーセルkdツリー」は、グローバルツリーのサブツリー(外部から領域パーセルを表すノードのためのものを除く)を表している。グローバルツリー内のノードは、異なるインデックスパーセル内に格納されている子を有することができ、一方「隣接kdツリー」内の対応するノード及び対応する子は、同一パーセル内に格納されることに注目されたい。グローバルツリーのためのデータ構造は、「隣接パーセルkdツリー」の構造に類似しているが、以下のような相違がある。第1に、制御ビット8−9または制御ビット 10 −11の値01は、枝刈りされた子が異なるインデックスパーセル内に根として現れることを意味している。この場合、子のオフセットは4バイトであり、オフセット(その根を格納しているインデックスパーセルと子との間、グローバルツリー内の全てのインデックスパーセルは同一のサイズと冗長情報とを有し、それによってランタイムにこのパーセルIDオフセットから子パーセルのIDを構成することができる)の最初の2バイト、及びオフセットの第2の2バイトがツリーIDを与える。更に、同一サイズを有するために(枝刈りされていない子のための4バイトオフセットが最も右を、即ち最下位バイトを使用する)、左及び右の両方の子オフセットが必要である。第2に、インデックスパーセル内のパーセルIDに対するさらなる参照が存在しないから、記述子リストは、パーセルIDのためのテーブルインデックスを格納していないが、その代わりに直接的にパーセルIDを格納している。しかしながら、これらのパーセルIDは必ずしも記憶装置内で整列させる必要はない。最後に、子オフセットが2バイトの単位であるから、記述子識別子対リスト全体は2バイトの倍数に丸められる。
【0066】
9.ルート計算パーセル内部構造
データレコード内の情報は、圧縮された形状で担持することができる。圧縮解除した後もまだデータは、パックされた形状にあって、パディングバイトも、そして一般的には未使用フィールドも存在しない。従って、各圧縮解除されたデータレコードは、可変長文字配列の形状にある。この圧縮解除されてはいるが、パックされているデータが、インタフェースレイヤ41(図2の)によってナビゲーション応用プログラムソフトウェアに渡される論理レコードを作成する源である。
殆どのレコード(特に、底レイヤより上のノード及びセグメントを除外した)について、2K レコードの各ブロックの始まりを探知するために、オフセットのテーブルが使用される。これは、調べなければならない可変長レコードの数を減少させる(所望のレコードを順次に探索する場合に比して)。
【0067】
パーセルヘッダ内のデータは、パーセル内をナビゲートするためにナビゲーション応用プログラム(詳しく言えば、インタフェースレイヤ41)によって使用される。従って、これらのデータは、直ちに使用できる形状にある。例えば、パーセルヘッダ内のデータは、適用できる場合には、データレコードのように文字配列フィールド内の代わりに、2バイト、または4バイトの符号付きまたは符号の付かない整数として限定されているフィールド内に格納される。
底レイヤのパーセル内では、ノードレコードは緯度及び経度に基づいてペアノキー順に格納され、セグメントレコードはセグメントの「左」の緯度及び経度に基づいてペアノキー順に格納される。このペアノ順序付けは、所定サイズの格子のレベルまで続き、格子内では緯度・経度順序付けが続く。次いで、底レイヤパーセル内のエンティティIDが連続的にパーセル内で割当てられる。高めのレイヤにおいては、セグメント及びノードレコードは、単にエンティティ識別子順にパーセル内に格納される。
【0068】
例えば、セグメントに関連する「トラック進入禁止」のような制限、または付加的な属性に関する情報を格納するために、条件レコードが使用される。日付・時間レコードは、例えば「 4:00 PMから 6:00 まで左転回禁止」のような条件が有効であることを指示する条件に関連する情報を含む。条件及び日付・時間レコードは、主要セグメントの左ノードのペアノキーに基づいて、ペアノキー順に格納される。ペアノキー順にレコードを格納すると、空間的に近接しているエンティティがパーセル内の互いに近いレコードによって表されることが多いので、パーセル内のレコードを探索するのに消費される時間が短縮される。
10.地図作成、関心点、及び運転パーセル内部構造
以下に注記するものを除いて、地図作成、関心点、及び運転パーセルは、ルート指定パーセルと同一の、または類似の内部構造を有している。地図作成及び関心点データは、各レイヤ内に交互配置される。これは、地図作成データ及び関連関心点データが、一緒にアクセスされることが多いという例外に基づいている。交互配置は、高いCD−ROMの回転速度においてより有用になる。それは、高速においては所望のデータに到達するまでの回転遅延が、非交互配置の場合に読み出しヘッドをデータに到達させるように移動させるのに要する時間に比して比例的に短いのからである。交互配置されていないデータに到達するためにヘッドが移動しなければならない距離(及び、それに要する時間)はデータボリュームのある関数として増加するので、これは特に、データのボリュームが増加すると然りである。
【0069】
ルート計算及び運転データは、たとえデータが同じようにパーセル化され、若干の機能のために一緒に使用されようとも、交互配置する必要はない。その理由は、ルート計算プロセスの速度を増加させることが可能であるからである。運転データ及びルート計算データを交互配置すると、ルート計算データへのアクセスをスローダウンさせることになりかねないので、ある程度この目的が無効になってしまう。
B.冗長データ−隣接パーセル情報
各パーセル内には、そのパーセルの地理的に隣接するパーセル(同一の型で、同一のレイヤのパーセル)か、または同一の地理的エリアにオーバラップするパーセル(異なる型の、または異なるレイヤのパーセル)の何れかの、若干の他の関心パーセルに関する情報が格納されている。特定の型のパーセル内では、若干の、しかし全てではない他の型のパーセルが関心事である。例えば、ルート計算パーセル内ではオーバラップしている運転パーセルが参照されるが、オーバラップしている関心点パーセルは参照されない。全ての関心パーセルは、一緒に単一kdツリー構造内に格納される。この構造は、各パーセル毎の暗示境界画定用矩形情報を含む。上述したパーセル化計画は、数ビット(5ビット/分割)でエンコードすることができるパーセル境界を作成するので、暗示なのである。各エントリ(即ち、各内部ノード、またはkdツリー内の葉)も、そのエントリにおける分割線によって限定された副矩形に対応するパーセルのパーセル識別子をも含んでいる。
【0070】
図5Aに示す例は、図を簡略化する目的で1つの型のパーセル(例えば、ルート計算パーセル)だけ、及び4つのレイヤだけを含んでいる。図5Aの例は、パーセルA1のための親、近隣、及び子パーセル情報を示している。
図5B及び5Cは、kdツリー内のあるエントリの構造を示しており、あるパーセルを取り巻く地理的エリアを記述している。一般的に言えば、ある矩形内の各分割は、2バイト、またはそれ以上のバイト(2バイトの制御情報、及び左及び右の子へのオフセットを表す0−4バイト(8または 16 ビット/オフセット))のkdツリーエントリを用いて記述される。切断は、矩形の最小囲いタイルの何れかの 1/32 分割において行うことができ、従って制御情報の5ビットが、親矩形を左及び右副矩形に切断した線の位置に専用される。kdツリー(内部、または葉)ノードがあるパーセルに対応する場合には、パーセルの型及びレイヤ、及び他の情報を含むパーセル記述子(1バイト)がkdツリー内に存在する。パーセル記述子に続くのは、識別子テーブル内への1バイト、または3バイトの何れかのインデックスであり、殆どの場合は1バイトで充分であるが、テーブル内に 254パーセルIDより多くが存在する場合にはインデックスが拡張されることが予測される。パーセル識別子テーブルは、4バイトエントリを含み、1バイト領域指定子は含まれていない。領域指定子が、パーセル識別子テーブルを含むパーセルのそれとは異なる場合には、テーブル内の4バイトパーセル識別子の最上位ビットは1にセットされ、全パーセル識別子が外部パーセル識別子の分離したテーブル内でルックアップされることを指示する。
【0071】

図5D及び5Eには、kdツリーテーブルの構造及びパーセル識別子テーブルの例が示してある。簡略化のために、この例は単一のパーセル型及び単一のレイヤを含んでいるに過ぎない。もし複数のパーセル型及びレイヤがこのkdツリー内に含まれていれば、kdツリー内のどの(内部、または葉)ノードも、複数のパーセル識別子に対応させることができる。これは、所与のkdツリーエントリには単一より多くの左パーセル記述子及び右パーセル記述子が後続することを意味している。この例では、kdツリー及びパーセルIDテーブルは共に、全てのオフセット及びインデックスを1バイト内に含むことができるように充分に小さい。
【0072】
C.圧縮
再度図1及び2を参照する。一実施例では、パーセルは、それらがディスク22から読み出された後のメモリ20内では圧縮された形状に維持され、パーセル内のエンティティは、それらがナビゲーション応用機能28、30、32、及び34によって要求された時には圧縮解除される。一実施例では、パーセルは、図2に関連して説明したインタフェースレイヤ41内ではそれらの圧縮された形状で維持される。これにより、メモリの使用が減少する。もし完全に圧縮解除されたパーセルをメモリキャッシュ内に保持すれば、特に圧縮解除されたパーセルレコードの長さが変化するから、より多くのキャッシュメモリを必要としよう。例えば、ルート計算機能28は、パーセルがディスクから読み出される度に、パーセル内のレコードの極く一部だけにアクセスすることが多い。従って、このアプローチを使用すると、圧縮解除のための処理時間が短縮される。圧縮されたレコードは、通常は長さが可変であるから、たとえ圧縮解除されたレコードが固定長であるとしても、圧縮されたディスク内の任意のレコードを探知するために、以下のアプローチを使用することができる。
【0073】
位置合わせ考察
圧縮されたデータレコード、並びに圧縮解除された直後のデータレコードが存在する中間(パックされた)形状は、文字配列である(即ち、バイナリバイトアレイであり、ASCII文字配列ではない)。従って、位置合わせの考察は行わない。パーセルを記述するために、及びその中をナビゲートするために使用される各パーセルのヘッダ部分内のデータは、最も便宜的にC言語倍長整数、短整数、構造またはユニオンの形状で格納されることが多い。これらのデータ型のための倍長及び位置合わせは、プラットフォームが異なれば変化し得る。地理的データ40は種々のプラットフォーム上で使用するように設計されているから、位置合わせ及び長さのための協約を定義することが適切である。これらの協約を地図データ(例えば、CD−ROMディスク)を含む媒体上のデータに適用し、論理レコードフォーマットは、インタフェースレイヤソフトウェア41が実行するハードウェアプラットフォームのための位置合わせ及び長さ規則を省略する。上述した中間(パックされた)形状は、それがナビゲーション応用の全体的な独立成分にアクセス可能であるので、全ての物理的記憶フォーマット内で同一であるべきである。
【0074】
以下の協約が地図データパーセルヘッダ内のデータ型のために使用される。

データ型 位置合わせ 長さ
短整数 2バイト境界 2バイト
倍長整数 4バイト境界 4バイト
構造/ユニオン 4バイト境界 4バイト倍数
地図データ内のバイトは「ビッグ・エンディアン」形状(最上位ビット優先)であり、地図データ内の短整数及び倍長整数は共に「ビッグ・エンディアン」形状(最上位ビット優先)である。
D.エンティティ識別子を介してのパーセル内レコードアクセス
パーセル内で特定の型の各レコードが、独特なエンティティ識別子を有している場合、以下に説明するこのようなレコードを探知する2つの方法の一方を使用することができる。第1の方法は、所与の型のレコードに、エンティティ識別子がパーセル内で連続的に割当てられている時に、レコードを探知するために使用される。例えば、パーセル内の第1のレコードはエンティティ識別子0を有し、第2のレコードはエンティティ識別子1を有する等であり、間隙は設けられていない。第2の方法は、間隙は存在するが、それでもレコードはエンティティ識別子による順番に格納されているような、レコードを探知するために使用される。この第2の方法は、セグメントレコード及び底レイヤより上のルート計算パーセル内のノードレコードにアクセスするために使用され、一方第1の方法は全てのパーセル内の他の殆どのレコード型にアクセスするために使用される。
【0075】
「方法 1」
レコードにアクセスするこの方法は、エンティティ識別子がパーセル内で連続的に割当てられているレコードを探知するために使用される。
(1)パーセルヘッダは、パーセル内のエンティティ型に関する以下の情報を含んでいる。
「オフセット」: パーセルの始まりからデータまでのオフセット。
「カウント」: レコードカウント。
「ブロック数」( Numblks ) : 圧縮されたレコードのブロックの数。
「ブロックカウント」( Blkcnt ): ブロック当たりの圧縮されたレコードの数(指数の形状で担持される、ここにkは2k レコードを暗示している)。
【0076】
それらの識別子はパーセル内で連続的であるが、0から始まっていないエンティティ型の場合、パーセル内の第1のエンティティ識別子が担持される。これは底レイヤノード及びルート計算パーセル内のセグメントレコードに適用される。
(2)「ブロック数」のテーブル+1のテーブルのエントリ(各々 16 ビット)を指すオフセット。ここにテーブルエントリNは「ブロックカウント」レコードを指し、その最初は(N−1)×「ブロックカウント」に等しいエンティティIDを有するレコードである。
(3)各レコードブロックの第1バイトが、そのブロック内の第1データレコードまでのオフセットである「タイプ1可変長符号なし値」の始まりである。このフィールドに続くのは、「タイプ1可変長符号なし値」より2k 多いフィールドであり、それらの各々はブロック内の圧縮されたレコードの長さである。これらの長さフィールドを使用することにより、以下の例のように、あるブロック内のレコードを通して迅速にナビゲートすることが可能になる。
【0077】
「例」
ブロックは各々 32 レコードからなり、ブロック内の各レコードの長さは1バイトによって表されるように充分に小さい。ブロックの第1バイトは、ブロックの始まりからそのブロック内の最初の圧縮されたデータレコードまでのオフセットである値 33 を含む1バイトのフィールドを含む。ブロック内の第2バイトは、ブロック内の第1の圧縮されたレコードを含む。第3バイトは、ブロック内の第2の圧縮されたレコードを含む、等々である。ブロック内の第 33 バイトは、ブロック内の第 32 の圧縮されたレコードの長さを含んでいる。ブロック内の第7のレコードの始まりを見出すために、ブロックの始まりのアドレス、ブロックの始まりからブロック内の第1の圧縮されたレコードまでのオフセット、及び最初の6レコードの長さが一緒に追加される。この例では、ブロックの最初の7バイトがブロックのアドレスに追加される。
【0078】
例えば、あるパーセル内に所与のエンティティ型の 1500 レコードが存在し、「ブロックカウント」が 32 であれば、 16 ビットオフセットの 47 のテーブルが生成され(即ち、「ブロック数」= 46 )、その最初のものはID 0−31を有するレコードを含むブロックを指し、2番目のものはID 32−63を有するレコードを含むブロックを指す等である。従って、ID 100を有するレコードを見出すためには、100 を 32 で除す(または、100 を5だけ右シフトさせる)。これにより3が求められ、これがレコード 100を含むブロックの(0をベースとする)インデックスである。異なるエンティティ型の場合、「ブロック数」の最良値は、レコードサイズ、レコードカウント、圧縮によって節約された空間のパーセント、または他の要因によって影響を受ける可能性があり、全てのパーセル内で同一である必要はない。
【0079】
「方法 2」
レコードへアクセスするこの方法は、独特なエンティティ識別子によって順番に格納されているが、エンティティ識別子が一般に0から始まっていない、そしてパーセル内で連続的に(間隙なしに)割当てられていないレコードを探知するために使用される。
(1)パーセルヘッダは、パーセル内のエンティティ型に関する以下の情報を含む。
「オフセット」: パーセルの始まりからデータまでのオフォセット。
「カウント」: レコードカウント。
(2)「オフセット」は「カウント」のテーブル+1のテーブルのエントリ(各々 16 ビット+ 24 ビット)を指す。各エントリの 24 ビットはレコードのエンティティ識別子であり、エントリの残りの 16 ビットはパーセルの始まりから、テーブルエントリのエンティティ識別子に対応する「圧縮された」レコードまでのオフセットである。最後のテーブルエントリはレコードを指さず、最後のレコードに続く最初のバイトを指す。
(3)圧縮されたレコードの長さはそのテーブルエントリ内のオフセットと、次に続くテーブルエントリ内のオフセット(そのオフセットの高位ビットは1に等しく「ない」)との間の差に等しい。その高位ビットが1に等しいオフセットを有するテーブルエントリは、あるレコードを指さない特別なエントリである。
【0080】
圧縮解除されたレコードは、可変長でパックされた形状である。このパックされたレコードのサイズは、以下のようにして最小にすることができる。(1)これはC構造ではなくバイトアレイの形状であろうから、このフォーマット内にパディングバイトが存在することはあり得ない。(2)制限された数のビットを詰めた若干のフィールドは、1バイト内に一緒に組合わせることができる。(3)最後に、街路名のような文字列データは、普通のテキスト向き圧縮方法を使用してデータフィールドレベルにおいて圧縮することができる。
レコードの論理フォーマット(インタフェースレイヤ41から応用ソフトウェアプログラム28、30、32、及び34へ戻されるフォーマット)は上述した圧縮解除され、パックされたレコードから作成される。
【0081】
E.スーパーノード
一実施例では、地理的データのルート計算サブセット48(図3の)と共に、以下の手順を使用する。
地理的データのルート計算サブセットは、ノード、条件、及びセグメントのための特色エンティティを含む。ノード特色は、ノードエンティティの形状である。若干のノードエンティティは、セグメントの端点に関する位置情報(即ち、緯度及び経度)を格納するために使用される。(セグメントの端点以外の位置情報に関係を有するノードエンティティも存在し得る。)各ノードに関係を有する位置情報は、経度、緯度、及び相対高度の表現で格納される。このノードエンティティは、ノードに関する付加的な情報を提供する属性を含むこともできる。
【0082】
前述したように、データのルート計算サブセットのために使用されるパーセル化方法は、同時にメモリ内に保持することができる関連ルート計算情報の量を最大にするので、ルート計算中の時間を消費するメモリ動作を最小にする。この実施例のこの面によれば、ルート計算データセット内に単一の圧縮した( collapsed ) ノード(「スーパーノード」と呼ぶ)を含ませることによって、ルート計算機能28(図2)をスピードアップさせることができる。これらの各圧縮したノード、即ちスーパーノードは、複数の近接して離間した、または関係を有する正規ノード及びセグメントを表す。複数の正規ノードを表すためにスーパーノードを使用する場合には、そのスーパーノードによって表される複数の正規ノードの何れかに関連があるセグメントは、正規ノードにではなく、そのスーパーノードに関連付けられる。そこで、ルート計算応用プログラムがルートを計算するために何れかのセグメントにアクセスする場合には、複数の正規ノードの代わりに、スーパーノードが使用される。若干の複雑な交差点を圧縮した交差点に置換することによって、ルート計算応用プログラムがこれらの交差点を通ってナビゲートするのに必要な時間及びデータが減少する。
【0083】
例えば、図6Aはロータリー608のある地図である。ルート計算データセット内に、セグメント612、614、616、及び618、及びノード622、624、628、及び632が形成される。この実施例によれば、ロータリー608を形成しているノード及びセグメントは、図6Bにスーパーノード640によって示されている単一のスーパーノードエンティティに圧縮される。スーパーノードデータエンティティ640は、ルート計算データセットのコンパイル中に自動的に生成される。セグメント611、613、615、及び617のためのセグメントレコードは、それらが、それぞれ実際のノード622、624、628、及び632の代わりに、スーパーノード640に接続されることを指示する。セグメント611、613、615、及び617のジオメトリは、図6Bのスーパーノード表現では異なって現れているが、セグメント長を含む全てのセグメントの属性は、交差点を完全に表現したものと同一に維持されている。
【0084】
スーパーノードの目的は、ルート計算のスピードアップを援助することができるように、道路網の表現を簡易化することである。例えば、スーパーノード表現を用いない場合には、もしルート計算プログラム28がノード626からノード630までのロータリー608を通るルートを計算するものとすれば、ノード626からノード624まで、ノード624からノード628まで、そしてノード628からノード630まで走行する処理をしなければならない。スーパーノード表現を用いると、ルート計算プログラムはノード626からノード640までとノード640からノード630までの走行を処理するだけでよい。
好ましい実施例では、たとえルート計算データセットの所与のレベルにスーパーノードを使用したとしても、そのレベルのデータセットはスーパーノードによって表される複数の正規ノードも含んでいる。これにより、もし必要ならば、これらの正規ノードに関連を有するどの情報へも、ナビゲーション応用プログラムがアクセスできるようにされたままである。例えば、計算されたルートの地図を表示するためには、全ての道路セグメントを示すことができるようにスーパーノードによって表される正規ノードを入手する必要がある。これは、各スーパーノードがその構成ノードへ戻る参照を供給するので決定することができる。
【0085】
2、3のセグメント、または行き止まりの簡単な交差点の場合には、これらの比較的簡単な型のノードを表すためにスーパーノードを使用しても殆ど利益は得られないからスーパーノードは使用されず、その代わりにルート計算データセットは正規ノードを含む。
正確な位置は不要であるから、スーパーノードには、それが表すノードのグループのほぼ中心に地理的位置が与えられる。スーパーノード及びそれが表すノードは、スーパーノードによって表される正規ノードが同一パーセル内に一緒に配置されるように、パーセル化される時にユニットとして処理される。
データのルート計算サブセットまたはデータの地図作成サブセットのように、データがレイヤに編成される時、スーパーノードを形成する底レイヤのどの正規ノードも底レイヤより上のレイヤにおいては省かれる(即ち、スーパーノードは、少なくとも底レイヤの直上のレイヤ内には含まれるが、それらに従属する正規ノードは含まれない)ことに注目されたい。またスーパーノードは、どのレイヤにおいても限定することができる。
【0086】
ナビゲーション応用のルート計算プログラム内の機能呼出しは、スーパーノードを正規ノード、及びそれが表しているセグメントに戻すように翻訳するために使用することができる。別の機能呼出しを使用して、スーパーノードに接続されている1つのセグメントから別のスーパーノードに到達するために走行すべきスーパーノードの内側のセグメントの順序付けられたリストを検索することができる。一実施例では、上述した機能呼出しは、ナビゲーション応用のルート計算機能28内にではなく、図2のインタフェースレイヤ41内に含ませることができる。
機能呼出しを使用して、スーパーノードの相対走行費用(または、「インピーダンス」)を求めることができる。スーパーノードの(または、正規ノードの)相対費用は、そのノードを横切って走行するのにどれ程多くの時間がかかるかを表している。スーパーノードの相対走行費用は、スーパーノードエントリの属性として含むことができ、または、好ましくは、スーパーノードの走行費用は、そのスーパーノードに接続されている1つのセグメントから別のセグメントに到達するために走行すべきスーパーノードの内側のセグメントの走行の長さ及び/または速度に基づくこともできる。図6A及び14の例では、セグメント611からセグメント615に到達するための相対走行費用は、セグメント612及び614の長さ、並びにセグメント611からセグメント615まで走行するのに必要な2つの右転回に基づいている。一実施例では、上述した機能呼出しは、図2のインタフェースレイヤ41内に、またはナビゲーション応用のルート計算機能28内に含ませることができる。
【0087】
スーパーノードは何れかの交差点を表すのに使用され、特に2つより多い道路を含む複雑な交差点を表すのに有用である。例えば、スーパーノード表現642を中央分離帯付きハイウェイ644(図6C及び6Dに示す)のために使用することができ、スーパーノード表現648をクローバ型インターチェンジ650(図6E及び6Fに示す)のために使用することができる。
一実施例では、幾つかの正規ノードの代表としてスーパーノードを含ませる時点の決定は、上述したようにコンパイル時に行われる。一実施例では、スーパーノードは、所定の規則のセットに基づいてコンパイラ内で自動的に生成される。例えば、候補スーパーノードが確立され、それが所定の条件のセットに適合するか否かが調べられる。例えば、中央分離帯付きハイウェイのスーパーノードを形成する場合、ルート指定データが調べられて2つの多様にディジタル化された道路が交差する全ての場合を見出す。(多様にディジタル化された道路とは、各方向における交通を表すために分離したセグメントが使用されるような道路のことである。)これらの多様にディジタル化された道路の交差点を調べて、その交差点に正確に4つの内部ノードが存在するか否か、その交差点の内部に正確に4つのセグメントが存在するか否か、及び各内部セグメントが内部ノードによって2つの、そして2つだけの他の内部セグメントに接続されているか否かを決定する。もしこれらの条件の全てに合致すれば、スーパーノードエンティティが形成され、ルート指定データのレイヤ内に格納される。
【0088】
同様に、スーパーノードはロータリーに関しても自動的に生成される。ロータリーを形成する場合の規則は、そのロータリー内にどれ程多くの内部ノード及びセグメントが含まれているかについての制限は含まない。候補スーパーノードを形成するために使用されるノード及びセグメントは、それらがロータリーの一部であることを指示する表示特性を有するものである。(GDFデータは、この型の情報を、セグメント及びノードと共に含むことができる。)候補スーパーノードが形成されると、ロータリーに関連していると識別されたセグメント及びノードを使用してスーパーノードが生成される。
F.正規化属性
記憶媒体上に格納されている地理的データを使用する若干のナビゲーション応用の動作をスピードアップする一方法は、記憶媒体上に格納されているデータの量を減少させ、それによって情報により早くアクセスできるようにすることである。ナビゲーション応用の動作をスピードアップする別の方法は、頻繁に使用されるデータをメモリ内に格納しておくことである。アクセスをスピードアップさせるこれらの両方法は、若干の地理的データを正規化された属性アレイ(後述)と共に記憶媒体上に格納することによって、及び若干の、または全ての正規化された属性アレイをメモリ内に読み込むことによって、使用することができる。
【0089】
例えば、地理的データセット内のセグメントデータエンティティは、地理的領域内の全ての道路の各セグメントを識別する情報を含んでいる。これらの各セグメントデータエンティティは、そのセグメントの特性に関する属性情報を含む。例えば、地理的データセット内の各セグメントエンティティは、セグメントIDフィールドと、セグメントの位置、セグメントのランク、ルートの型、レーンカテゴリ(即ち、レーンの数)、速度カテゴリ、速度制限、アクセス特性等々を識別する属性とを有している。
この実施例では、各セグメント毎のデータレコード内のこれらの各属性フィールド毎に分離したエントリを含む代わりに、若干の属性に関して、セグメントレコードはレコードのテーブルを参照する単一のインデックスを含んでいる。このレコードのテーブルは、グローバル正規化された属性アレイとして参照される。これにより、全ての関連属性値の代わりに、単一のインデックスをセグメントレコード内に担持することが可能になる。この正規化された属性アレイを使用することは、属性の特定のグループのための属性値が、互いに完全に独立していないことを認識することに基づいている。例えば、もしセグメントのルート型属性が、そのセグメントが大都市間ハイウェイであることを指示していれば、通常はそのセグメントのための速度カテゴリ属性は、そのセグメントが高速カテゴリであることを指示しよう。実際の分離した個々の属性エントリの代わりに、これらの組合わせを1つのテーブル内に格納し(「正規化された属性アレイ」と呼ぶ)、インデックスをセグメントエンティティレコード内のテーブル内に格納することによってディスク記憶空間が節約され、地理的データセット内に見出されるこれらの属性の若干のグループの実際の異なる組合わせの数が充分に小さくなることが分かった。
【0090】
好ましい実施例では、正規化された属性アレイは、データの特定のセット内の特定のエンティティのための属性の最も一般的な組合わせを含んでいる。一実施例では、グローバル正規化されたアレイは、256 の最も一般的な属性組合わせを含んでいる。地理的領域が異なれば、これらの属性の組合わせも異なり得る。
図7Aは、記憶媒体上に格納された、図3に示した異なるデータの型、またはサブセットを含む地理的データ40の表現である。これらのデータの型、またはサブセットは、ルート計算データ48、地図作成データ50、運転データ52、及び関心点データ54を含む。地理的データ40のこれらの異なる各サブセットはパーセルに編成され、これらの各サブセットは所定の構造を有するレコードを含んでいる。
【0091】
図示の実施例では、ルート計算データ48はセグメント構造812を含み、地図作成データ806はポリライン構造814を含む。これらのデータ構造は、部分的に正規化された属性のアレイから導出される。詳しく述べれば、ルート指定データセグメント構造812は、部分的にルート計算の正規化された属性アレイ816から導出される。同様に、地図作成データポリライン構造814は、部分的に、地図作成の正規化された属性アレイ818から導出される。セグメント構造812は、データの型のための、速度カテゴリ、レーンカテゴリ、ランク、その他のデータ属性フィールドを含む。これらのデータは関係を有している。より多くのレーンを有する道路の速度制限は高くしてある等である。従って、これらの分離したデータフィールド(及び、それらに含まれているデータ)を、各ルート指定データセグメントレコードから取り除き、それらを正規化されたアレイ816に配置することが可能である。同様な関係が、地図作成データポリライン構造内にも見出される。各構造内では、取り除かれた属性の組合わせがインデックスに置換されている。インデックスは、置換された属性の特定の組合わせを含む正規化された属性アレイ内のエントリを指す。
【0092】
若干の属性がグローバル正規化された属性アレイを指すインデックスによって置換されているような地理的データセットでは、若干のレコードをアレイをインデックスできなくすることが可能である。これらのレコードは、属性の組合わせが一般的ではない、従ってグローバル正規化された属性アレイ内に含まれる属性の特定組合わせの最も一般的な(例えば、256 の最も一般的な)出現によっては表されないようなものを含む。これらのレコードのための属性はグローバル正規化されたアレイ内には含まれていないから、これらのレコードはグローバル正規化された属性アレイを指すインデックスを含まない。この分離したアレイは、ローカル正規化された属性アレイとして含まれる。ローカル正規化された属性アレイは、普通ではないレコードが位置しているパーセル内に含まれる。ローカルアレイは、グローバルアレイのように編成される。もしパーセル内の複数のレコードが、グローバル正規化された属性アレイ内に見出されない同じ普通ではない組合わせを有していれば、この特定の普通ではない属性の組合わせを有する各レコード内のインデックスは、ローカルアレイ内の同一属性組合わせを指す。一実施例では、パーセル内の全てのレコードは、グローバル正規化された属性アレイ、またはローカル正規化された属性アレイの何れかを指すインデックスを含んでいる。この特色は、若干の普通ではない属性の組合わせは極めてローカル化されており、従って、これらの普通ではない組合わせを含む特定のパーセルを使用する時に、ナビゲーション応用が必要としないのに、それらをメモリ内にロードするのは効率的ではない。
【0093】
例えば、図7Bに示すルート計算機能28は、ルート計算データ48のパーセルの1つにアクセスしている。グローバル正規化された属性アレイ816、またはローカル正規化された属性アレイ822の何れかを指す各セグメントエントリ内のインデックスを使用して、パーセル820内に格納されたルート計算データ内のセグメントレコードデータから、セグメントエンティティが作成される。好ましい実施例では、正規化された属性アレイデータの、グローバルアレイ816、またはローカルアレイ822の何れかから適切なデータレコードの適切なデータフィールドへの置換は、前述したインタフェースレイヤ41によって遂行される。処理をスピードアップさせるために、グローバル正規化された属性アレイ816はメモリ内に保持しておくことができる。このグローバル正規化された属性を、記憶媒体からメモリ内へ(完全に、または部分的に)読み込み、ナビゲーション応用の動作中メモリ内に保持することができる。
【0094】
G.セグメント集約( Segment Aggregation )
1.概要
前述したように、ナビゲート可能なセグメントは、そのセグメントが現れる最高ルート指定データレイヤを指定するランク属性を含む。ルート計算データ48の最低レイヤは、全てのナビゲート可能なセグメント(即ち、全てのランクのセグメント)を含む。次々に高い各レイヤにおいて、最低にランク付けされた残余のセグメントのクラスが落とされて行く。一般的には、これによって複数の二価のノード、即ち正確に2つのセグメントの間の交差点が作成される。もしナビゲーションに関連するこれら2つのセグメントのための全ての属性が等しければ、二価のノードを落として行くことが可能であり、また有益である。これによりデータのサイズが減少し、ルート計算中に探査する必要があるセグメントの数が減少し、そして最終的な計算されたルートを形成するセグメントの数が減少する。このようにして形成されたセグメントを集約セグメントと呼ぶ。好ましい実施例では、集約セグメントは最低レイヤより上のレイヤ内に含まれる。
【0095】
以下に、高いレイヤにおけるセグメントの集約を説明する。最初に、集約セグメントの物理的表現を説明する。2番目に、セグメントを集約させるための基準を説明する。3番目に、集約セグメントを形成するプロセスを説明する。
2.集約セグメントの物理的記憶
集約が行われると、集約セグメント内部のセグメントレコード及びノードレコードは所与のレイヤ内に縮約された( abbreviated ) 形状で維持される。各縮約されたセグメントは、セグメント識別子、長さ、通行時間、及び方位を含む。各縮約されたノードは、ノード識別子及び位置を含む。これらの縮約されたレコードには、縮約されたセグメントに共通の属性を含む集約セグメントレコードを通してアクセス可能である。集約セグメントレコードは、このセグメントにルート計算処理中に何れの端からも進入できるので、「左セグメント識別子」及び「右セグメント識別子」の両方を含んでいる。
【0096】
図8Aに、レイヤ0内の複数のセグメントを示す。ノードは、各セグメントの2つの端点に関連付けられている。レイヤ0では、全てのランクの全てのセグメントが表される。図8Bは、図8Aに示したものと同数のセグメント及びノードを示しているが、レイヤ内で最低のランクを有するセグメントが破線で示されていることが異なる。図8Cでは、最低にランク付けされたセグメントは除かれている。(図8B及び8Cは中間段階を示すものであって、あるレイヤを代表してはいない。)図8Dでは、セグメントS4、S5、S6、S9、及びS11は集約セグメントAG12に集約されている。集約セグメントAG12は、集約セグメントの端点に対応するノードN109及びN104を含む。更に、集約セグメントは、集約セグメントAG12の内部であるノードN106、N107、N108、及びN113をも含む。これらの内部ノードは、どのノードにおいても(たとえこれらのノードが集約セグメントの端点であっても)ルート計算プログラムを1つのレイヤから別のレイヤへ移動可能ならしめることによって、ルート探索の際に好ましい結果を与える。これは、ルート計算プログラムがより迅速により高いレイヤへアクセスでき、それによって潜在的により早いルート計算を行い得ることを意味している。
【0097】
図8Eは、図8Dの集約セグメントレコードと、レイヤ1内の他のデータエンティティとの間の関係を示している。
3.集約基準
一実施例では、隣接するセグメントの各連続対が以下の基準を満たしていれば、どのような数の連続セグメントの集約も許容される。
(1)当該レイヤ内において、交差の点(ノード)において正確に2つのセグメントが交わっていること。
(2)2つのセグメントが以下の条件の何れの一部分でもないこと。
(i)交差ノードを横切って伸びる運転制限
(ii)車両制限
(iii)走行方向の制限
(iv)ゲート
(v)特大車両制限
(vi)二股道路
(vii)料金ブース
(viii)信号
(3)2つのセグメントが正確に同一セットのナビゲート可能な特色名を共有していること(地図作成特色名を除く)。
【0098】
(4)2つのセグメントについて以下の属性が同一であること。
(i)ランク
(ii)速度カテゴリ
(iii)レーンカテゴリ
(iv)アクセス特性、及び
(v)以下のセグメント属性
(a)中央分離帯付きセグメント
(b)走行方向−左
(c)走行方向−右
私道
ランプ
有料道路
制御されたアクセス
鉄道フェリー
ボートフェリー
集約される2つの隣接するセグメントの間で、残りの属性が異なっていても許容されることに注目されたい。一般的に言えば、これらの属性は、集約セグメントのための集約された属性のセットを生成するプロセスにおいて、組合わされるか、もしくは落とされる。上述した基準は、単なる例示に過ぎない。これらは現在では好ましいものであるが、他の基準または上述した基準のサブセットも使用可能である。
【0099】
4.集約セグメントを形成するプロセス
集約セグメントを形成する第1段階は、集約セグメントのための考え得る端ノードを識別することである。これらは「集約セグメント有意」ノードとして知られている。各レイヤの地理的データベース内の全てのノードは、それが「集約セグメント有意」であるか否かを決定するために評価される。ノードは、最高レイヤから開始され、以下下方へ一時に1つずつ評価されて行く。あるノードに1つのセグメントだけが接続されているか、または2つより多いセグメントが接続されている場合、そのノードは所与のレイヤにおける「集約セグメント有意」である。しかしながら、もし正確に2つのセグメントがあるノードに接続されていれば、そのノードは集約セグメント有意ではない。もし任意のレイヤのあるノードが集約セグメント有意であると決定されれば、それはそれより低い全てのレイヤにおいても集約セグメント有意である。一方の端に集約セグメント有意ノードを有し、他方の端に非有意を有しているレイヤ内の各セグメントは、集約セグメントのための潜在的な開始端である。
【0100】
図8Cにおいては、2つより多いセグメントに接続されているノードN102及びN112が集約セグメント有意である。ノードN106、N107、N108、N109、及びN113は、それらが2つのセグメントに、そして2つだけのセグメントに接続されているので、非有意である。セグメントS1は、それが集約セグメント有意である1つのノードN112と、非有意である他のノードN109を有していることから、集約セグメントのための潜在的開始点として識別される。非有意ノードN109は、集約セグメントを形成するための潜在的開始点として選択される。図8CにおいてノードN109に接続されている他方のセグメントS4は、(1)その他方のノードN108が集約セグメント有意であるか否かを決定し、そして(2)他の集約基準(前述)を満足しているか否かを調べることによって評価される。もしそれが非有意であれば、N108に接続されている他方のセグメント(即ち、S5)が同じようにして評価される等々である。このプロセスは、集約セグメント有意ノードに到達するまで、または集約には不適格である異なる条件を有する2つのセグメントを接続している非有意ノードに到達するまで続行される。これらの条件は上述した。もし非有意ノードが、集約には不適格である異なる条件を有する2つのセグメントを接続していれば、そのノードはそのランク及びそれより下のための集約セグメント有意ノードと呼ばれる。
【0101】
あるセグメントの列(2つの集約セグメント有意ノード間の)は、非有意ノードによって互いに接続されていることが識別され、これらのセグメントを表す集約セグメントレコードが作成される。集約セグメントレコードには、それを集約セグメントとして識別するためのセグメントIDが与えられる。集約セグメントの端ノードは、集約セグメント有意ノードである。集約セグメントレコードは、その集約セグメントによって表されているノード(1つまたは複数)及びセグメントのための縮約されたノード及びセグメントレコードを指すポインタを含んでいる。これらの縮約されたレコードは、集約されたセグメントの各レイヤに維持される。
集約されたセグメントレコードは、集約されたセグメントの「正当方向」における長さ、平均速度、及び走行時間を含む集約セグメントに関する付加的な情報(集約セグメントを走行する際の(ノード費用を含む)全ての走行費用、またはインピーダンスを考慮している)も格納している。「正当方向」とは、任意の集約セグメントに関して、1方向だけへの走行が正当であることができることを意味する。走行の正当方向は、最初に、例えば左から右へのような1方向において評価される。もし受入れることができれば、通過時間が計算され、もし逆方向の走行も正当であればその方向に関しても同一であるものと見做される。もし集約のための条件が賦課されていなければ、これは必ずしも真である必要はない。もし左から右へが受入れることができない走行方向であれば、通過時間は右から左について決定される。
【0102】
上述した方法は、その端に集約セグメント有意ノードと、両端の間に少なくとも1つの非有意ノードとを有する集約セグメントを発生させることに注目されたい。しかしながら、あるレイヤ内の全ての集約セグメント有意ノードは必然的に集約セグメントの端点に位置している。
上述したアプローチは、集約セグメント有意ノードの間に伸びる、または代替として、集約セグメント有意ノードの間の最も左及び最も右のセグメントの非有意ノードの間だけに伸びる(図8Cに示すように)集約セグメントに使用することができる。前者の場合の利点は、ルート探索プログラムがルートを決定するのに僅かなステップ(集約セグメント有意ノード間のセグメントを横切るのに3ステップの代わりに1ステップ)で済むことである。後者の場合の利点は、集約するセグメントを審査するための条件が、若干の制約(例えば、左転回禁止)を有しているセグメントを、それ以外の全ての点では不適格にしないものとすれば、ルート探索プログラムはその集約セグメントが計算されたルートの一部を形成できるか否かをより迅速に(即ち、僅かなステップで)決定できることである。何れの場合も、上述した集約セグメントを使用することにより、ルート探索プログラムは、どのノードにおいても(たとえ集約セグメントの一部を形成しているノードにおいても)レイヤをジャンプすることができる利点が得られる。
【0103】
集約セグメントによって与えられる別の利点は、セグメントを集約すべきか否かを決定するための条件を使用することによって、正当に走行することができない集約セグメントが作成される可能性を減少させることである。
V.物理的記憶フォーマットファイルを形成するためのコンパイルプロセス
A.コンパイラ−概要
以上に、ナビゲーションシステム内のナビゲーション応用プログラムによる地理的データベースの使用及びアクセスを容易にするために、物理的媒体上に地理的データベースを設ける種々の面を説明した。前述したように、エンドユーザのナビゲーションシステムにおいて使用され、アクセスされる記憶媒体上に格納するのに適するフォーマットに編成する前に、地理的データベースは別の異なるフォーマットで供給され、編成されることがあり得る。例えば、地理的データは、始めにGDFフォーマットまたはたのフォーマットのような交換フォーマットに編成することができる。交換フォーマットは、データの交換を容易にすることも、またはデータの取得及び更新を行うこともできる。記憶媒体上にデータの使用を容易にするような技法で地理的データを格納するために、データはこの元の、即ち交換フォーマットから変換される。この変換プロセスは、以下に説明するように、地理的データセットコンパイラによって達成することができる。一実施例では、コンパイラはCプログラミング言語で書かれているが、代替実施例ではどのような適当なプログラミング言語を使用することもできる。
【0104】
図9Aに、地理的データセットコンパイラ900の流れ図を示す。コンパイラ900は、幾つかの異なる種類のデータ901を受入れる。例えばデータ901は、地図カバレッジデータ902、共通補助データ903、及び関連サード・パーティデータ(TPD)904を含むことができる。地図カバレッジデータ902は、上述したGDF交換フォーマットで供給することができ、また他の種類のデータを何等かの適当なフォーマットで供給することもできる。サード・パーティデータもGDFフォーマットで供給することができる。補助データベースは説明、音声、またはアイコン型のデータを含むことができる。一実施例では、コンパイラ900は、GDF 3.0仕様の地図カバレッジデータ902を受入れることができるが、代替実施例では他のデータベースフォーマットも同様に受入れることができる。
【0105】
地理的データセットコンパイラ900は、地理的データセットを含む出力905を生成する。この出力は、ナビゲーションシステムにおいて使用するために、図1の記憶媒体22のような記憶媒体上に格納するのに適するように圧縮され、最適化されたフォーマットである。出力905が記憶媒体22上に格納される時に、それは図2のデータベース40を含む。地理的データセットコンパイラ900は、編成された出力905を準備する場合にデータベース40が車両内の特定のオンボード記憶媒体の特性を含む車両内システムのようなエンドユーザのシステム内で使用される際のデータベース40のレイアウトを考慮に入れる。媒体特性が変化した場合、レイアウト構造またはフォーマットを相応に変化させる必要がある。地理的データセットコンパイラ900によって作成されるデータベースを含む出力905は、所与の記憶媒体のための適切な物理的記憶フォーマットに従う。これは、媒体従属面を地理的データセットコンパイラ900のコア機能から分離することによって達成される。
【0106】
一実施例では、地理的データセットコンパイラ900は、128 MBのRAM及び1GBのページング空間を有するIBMモデルRS6000上で走る。RS6000は、AIX 4.1 OSを走らせ、開発環境はIBMのC Set++バージョン3.1である。ANSI C及びC++コンパイラは、xlc及びxlCをそれぞれ含み、デバッガはxldbである。他のコンピュータ、オペレーティングシステム、及び開発ツールも適当であろう。
地理的データセットコンパイラ900は、データベース901を、GDFフォーマット(主としてASCII交換フォーマットである)からデータベース905内の最適化され、圧縮されたバイナリフォーマットに累進的に変形するプロセスのシーケンスを含んでいる。この変形を達成するために、地理的データセットコンパイラ900は、このプロセスのためのルーチンのフレームワークを供給する。
【0107】
地理的データセットコンパイラ900は、一般的に3つのレイヤ、即ち、データ変形レイヤ910、サービスレイヤ912、及び物理的フォーマット分離レイヤ914を含んでいる。これらのレイヤが一緒になって、入力データ901を、所望の物理的媒体上に書き込むために適当な媒体特定のフォーマットの出力905にコンパイルする。
B.コンパイラサービスレイヤ
コンパイラサービスレイヤ912は、地理的データセットコンパイラ900内の処理のために使用可能な、そして使用されるルーチンのライブラリを含んでいる。ルーチンのライブラリは、地理的データの処理のために特別に開発された特殊化された機能を含むデータセットコンパイラ内で一般的に使用される機能のための基本命令のセットを含んでいる。例えば、サービスレイヤは、I/Oの処理、ファイル及びテーブル管理、誤り処理、メモリ管理及びバッファリング、デバッギング、及びデータ操作のための機能を含む。サービスレイヤ912は、他の機能のためのルーチンも含むことができる。
【0108】
好ましい実施例では、サービスレイヤ912は、データの処理及び変形を強化するために共用メモリモデルも実現する。普通の共用メモリ技術は、並行プロセス間でメモリを共用させる。サービスレイヤ912は、非並行プロセスにまたがって共用メモリを実現する。これは、グローバルkdツリー(データパーセル化に関して説明済み)の開発のような種々のデータ変形プロセスに利点を提供する。グローバルkdツリーの開発のためのプロセスは、他の変形プロセスに使用されるものと同一のデータの若干を使用するが、必ずしも他のプロセスと同時に走らせる必要はない。非並行共用メモリを使用することによって、サービスレイヤは、グローバルkdツリーの開発のために設けられたプロセスと他のプロセスとの間でデータを共用することができる。
【0109】
C.コンパイラデータ変形レイヤ
1.概要
図9Bを参照する。地理的データセットコンパイラ900のデータ変形レイヤ910は、地理的地図カバレッジデータ901を一般化された交換フォーマットから中間出力に変形する。データ変形レイヤ910は、2つの主要ステップまたは段を含む。交換フォーマットのデータから開始される第1段923において、データ変形レイヤ910はデータ901を転送ファイルフォーマットのファイル925に変換する。普通のシナリオでは、データ901は、GDFのような一般化された交換フォーマットでコンパイラに供給される。GDFのような交換フォーマットは、それからデータを、ナビゲーションシーケンス内の記憶媒体上で使用する物理的記憶フォーマットに直接変換することが困難なように、データを編成する。例えば、GDFを物理的記憶フォーマットに直接変換することが困難である一つの理由は、物理的記憶フォーマット出力ファイルを発生するためには、GDFファイルの全ての必要部分を格納するための極めて大量のメモリをコンパイラ内に必要とするからである。従って、好ましい実施例では、地理的データを先ず転送ファイルフォーマットに変換し、それからのデータのさらなる処理を容易にしている。
【0110】
データを転送ファイルフォーマットに変換した後、データ変形レイヤ910の第2段928は転送ファイルフォーマット内のファイル925を処理して分離した中間データファイル927を発生する。これらの分離した中間データファイル927を発生する際に、この第2段928は、最終的に種々の分離したナビゲーション応用機能によって使用される分離したデータの集まり(例えば、セグメント931、933等)を生成する。前述したように、各ナビゲーション応用機能は、典型的には地理的データベース全体の若干の部分だけを使用する。従って、各ナビゲーション応用機能の動作を容易にするために、物理的記憶フォーマットは各ナビゲーション応用機能に、地理的データベースのサブセットだけを表すそれ自体の分離した地理的データの集まりを供給する。各サブセットは、通常はナビゲーション機能が使用しないデータベースの部分を排除することが好ましい。このデータ変形段において、データ変形プロセスは、例えばファイル941、943、及び945(ここでは「中間データファイル」、または「データファイルユニット」という)のような実際の分離したファイルとしてこれらの分離した地理的データの集まりを作成する。これらの各中間データファイルは、データベース全体の一部分、即ちビューだけを含む。
【0111】
これらの中間データファイルを発生するプロセスの一部としてのこのデータ変形レイヤプロセスのさらなる面として、スーパーノード、集約セグメント、及び生成された形状点のような若干の新しいデータのアイテムが、転送ファイルフォーマット内のデータから作成される。これらの新しいデータのアイテムは転送ファイルフォーマット内のデータから導出されるのであるが、それらはGDF入力ファイル内の直接の写しは有していない。更に、これらの中間データファイルが生成されるにつれて、これらの各中間ファイルは各中間データファイル内のパーセルにグループ化される。データ変形レイヤの処理の後に、後述するように、後刻分離レイヤプロセスにおいて分離したデータファイルが単一の大きいファイルに再組合わせされる時に、データのパーセル編成が維持される。もしサード・パーティデータを物理的記憶フォーマット内に含ませることを意図するのであれば、それらはデータ変形プロセス内に組み込まれる。
【0112】
データ変形レイヤ910におけるプロセスに関して以下に詳細に説明する。
2.転送ファイルフォーマット
コンパイラ900は、数多くの異なるファイルで地理的データを受けることができる。一実施例では、コンパイラ900は交換フォーマットで、特定的にはGDF 3.0で地理的データを受ける。前述したように、もしデータが始めにGDFのようなフォーマットで供給されれば、そのデータを更に処理する前に、そのデータを先ず交換フォーマットから転送ファイルフォーマットに変換することが好ましい。GDFフォーマットは物理的記憶フォーマットを発生するデータの部分の処理を容易にするような技法でデータを編成しないので、この変換が遂行されるのである。転送ファイルフォーマットへのこの変換プロセスは、地図カバレッジデータ並びにサード・パーティデータ(もしあれば)にも適用できる。
【0113】
コンパイラプロセスを開始する前にある決定がなされて、記憶媒体上に表される(1つまたは複数の)地図カバレッジエリアを限定する。記憶媒体上に表される地図カバレッジエリアは、大都市エリア、州、隣接州、国全体、または他の領域または領域の組合わせを含むことができる。このプロセスの部分は、GDFファイルが編成された技法を考慮に入れることができる。国の異なる地理的部分のために、分離したGDF交換ファイルが存在し得る。記憶媒体上に格納される所望の地図カバレッジエリアは、必ずしも単一のGDFファイルの境界と一致させる必要はない。従って、コンパイラプロセスへの入力は、1つより多くのGDFファイルを含むことができる。即ち、GDF入力は物理的に複数のファイルに区分けすることができる。GDFファイルは論理的に区分けする、即ち異なるカバレッジエリアを単一のファイル内に別々に含ませることができる。媒体上に表される地図カバレッジエリアの選択を行った後に、選択された地図カバレッジエリアに対応する1つまたはそれ以上のGDFファイルをコンパイラプロセスへの入力として使用する。
【0114】
転送ファイル生成プロセスは、幾つかの論理転送ファイル925の集まりの形状で出力を供給する。特定の転送ファイルの数及び型は、物理的記憶フォーマットファイル内に含ませることを望む特定の情報の型に基づいて決定することができる。一実施例では、名前、言語、管理領域、郵便コード、線形地理作成特色(ポリライン)、及びポリゴナル地図作成特色(ポリゴン)、ノード、セグメント、付属物、関心点、関心点の型、及び関心点のチェーンのような異なる型の転送ファイルが作成される。更に、幾つかの相互参照転送ファイルを作成することができる。これらの相互参照ファイルは、他のファイル内の種々のエンティティの若干を互いに対応付けるのを容易にする。一実施例では、これらの相互参照ファイルは、郵便コード及び管理領域相互参照、及びゾーン及び管理エンティティ相互参照を含む。更に、これらの転送ファイルの生成に関する情報を保管する制御ファイルを作成することができる。これらの転送ファイルは、バイナリ型ファイル、またはASCII型ファイルであることができる。一実施例では、名前、管理エンティティ、及び言語転送ファイルはASCII型ファイルであり、残りはバイナリ型ファイルである。これらの各転送ファイルをGDFファイルから発生する方法を以下に説明する。一実施例におけるこれらの特定ファイルへのデータの集め方は、物理的記憶フォーマットファイルを発生するためのプロセスの一部を表しているが、データの他の集め方及び他のプロセスを使用しても差し支えない。
【0115】
名前転送ファイル及び言語転送ファイルはそれぞれ、GDFファイル内の名前及び属性レコードからのデータを使用して作成される。名前転送ファイルは、物理的特色の名前(例えば、道路、場所等の名前)を含み、言語転送ファイルはこれらの特色の名前の言語(例えば、フランス語、英語等)を含む。
管理エリア転送ファイルは、地図カバレッジ領域(例えば、州、郡、市)内の行政区分の階層を表すテーブルの形状で作成される。管理エリア転送ファイルは、GDF関係、名前、属性、エリア、及び複雑な特色レコードを使用して作成される。これらの同一GDFレコードを使用して、地図カバレッジエリア内の郵便コードを含む郵便コード転送ファイルも作成される。更に、これらの同一GDFレコードから、ゾーン転送ファイルを作成することもできる。ゾーン転送ファイルは、地図カバレッジエリア内の近隣を識別するデータを含む。
【0116】
管理エリア転送ファイル、郵便コード転送ファイル、及びゾーン転送ファイル(もし使用可能であれば)内のエントリを関係付ける相互参照転送ファイルが作成される。この相互参照転送ファイルは、管理エリア、郵便コード、及びゾーンを参照するGDF関係レコードを使用して作成される。
ポリゴン転送ファイルは、GDFファイル内のエリア、面、縁、名前、属性、XYZ、及びノットレコードから作成される。ポリゴンエンティティは、公園、湖等のような地図カバレッジ領域内のエリアを表す。このファイルは、テーブルの形状である。
ノード転送ファイルは、GDFファイル内の点特色、ノットレコード、XYZレコード、及び属性レコードから作成される。
【0117】
セグメント転送ファイル及び付属物転送ファイルは、GDF線特色レコード、縁レコード、XYZレコード、属性レコード、点特色レコード、及び先に作成された管理エリア転送ファイルから作成される。(付属物転送ファイル内のエンティティは、道路標識、状態、形状点、ブロック、番地範囲、オーバーパス情報、等々を含む。)
ポリライン転送ファイルは、GDF線レコード、特色レコード、縁レコード、XYZレコード、ノットレコード、属性レコード、及び名前レコードから作成される。ポリラインエンティティは、道路、クリーク、及び鉄道のようなナビゲート可能な、及びナビゲート不能な両線形特色を含む。全てのポリラインレコードを作成した後に、ポリゴン及びポリラインレコードは地図作成転送ファイル内に併合される。
【0118】
POI(関心点)転送ファイル、及び関心点の型転送ファイルは、GDF関係レコード、点特色レコード、属性レコード、名前レコード、及び先に作成された管理エリア転送ファイルから作成される。
更に、POIチェーン転送ファイルのような他の転送ファイルを作成することができる。この転送ファイルは、マクドナルドレストラン、マリオットホテル等々のような関心点チェーンの名前を含むことができる。
各転送ファイルを作成する際に、作成されるエンティティの属性に関する完全な情報を得るために、GDF属性定義及び属性値レコードが参照される。更に、各転送ファイルを作成する際に、転送ファイルエンティティのための識別番号を得るために、GDF外部更新レコードが参照される。
【0119】
このプロセスの一部として、異なるレコード型のカウントを生成し、制御ファイル内に維持することができる。
もし、地図カバレッジデータに加えて、サード・パーティデータを物理的記憶フォーマット内に含ませることを意図するのであれば、この時点でサード・パーティデータを1つまたはそれ以上の転送ファイルに変換することができる。サード・パーティデータは、特別な関心物に関係付けられて特別に生成されたデータを含むことも、または一般的に付加的なデータが別のパーティによって生成されるか否かの付加的情報に関係付けることもできる。これらのサード・パーティデータは、付加的に、販売者に特定のデータフォーマットで供給することができる。地図カバレッジデータファイルは、上述した正規の関心点データに加える付加的な関心点型データとして、このサード・パーティデータを指すポインタを有することができる。主データファイル902とサード・パーティデータ904との間のこれらのポインタは、発生される転送ファイル内に維持され続ける。
【0120】
3.中間データファイル及び補助ファイルの作成
地理的データ及び何等かのサード・パーティデータ904を転送ファイル925に変換した後に、今は転送ファイルフォーマットになったデータを使用して、最終的に種々のナビゲーション応用プログラムによって使用されるデータを含む種々の特殊化された中間データファイル927が作成される。異なる型のナビゲーション機能のためのこれらの中間データファイルは、1つの型の中間データファイルを作成するのに先に作成された別の型の中間データファイルを必要とする場合を除いて、一般的にはどのような順番ででも作成することができる。
これらの中間ファイルは、どのような適当な、便利な手法で命名することもできる。例えば、シカゴ圏を含むカバレッジエリアのためのレベル0ルート指定データを chicago.rt0と呼ぶことができ、レイヤ1の場合には chicago.rt1と呼ぶことができる。これらの中間ファイルが作成されるにつれて、それらはパーセルにも編成される。補助ファイル949(例えば、ファイル951、953、955)は、各中間データファイル毎に1つの補助ファイルとして作成される。補助ファイルは、それが関連している中間データファイル内の各パーセルの開始位置を識別するオフセットを含む。これらの補助ファイルには、ルート指定レイヤ0データファイル chicago.rt0の補助ファイルには chicago.rf0等々のような、どのように適当に命名しても差し支えない。補助ファイル内の情報は、後述するように分離レイヤプロセスにおいて使用される。
【0121】
4.ルート指定中間データファイル
データ変形レイヤプロセスは、複数の中間ルート指定データファイル931を作成する。これらの各ルート指定中間データファイルは、最終的にルート指定ナビゲーション応用によって使用されるように空間的に編成される。このプロセスの一部として、ルート指定データの分離したレイヤが作成される。この段階において、各分離したレイヤが作成され、分離した中間データファイルとして格納される。また、このプロセスの一部として、前述したようにスーパーノード及び集約セグメントが作成される。更に、ルート指定データの各分離したレイヤに対応する各分離した中間ルート指定データファイル内では、データは前述したようにパーセルに編成される。ルート指定データの任意のレイヤにおいては、パーセルは、セグメント、ノード、及び状態、アクセス特性、日付・時間変更子(“DTM”)等のような関連するナビゲート可能な属性を含む。
【0122】
中間ルート指定データファイル931は、上述したセグメント、ノード、及び付属物転送ファイルから作成される。これらの転送ファイル内の関連データがメモリ内にロードされ、種々のエンティティ間の関係を表すポインタが作成される。例えば、セグメントエンティティレコードは、そのセグメントの端点のノードのためのノードエンティティレコードを指すポインタを有していよう。
生成された形状点
データ変形レイヤプロセスの一部として、特別な形状点(「生成」または「人工」形状点と呼ぶ)が作成され、若干のセグメントエンティティの属性として中間ルート指定データファイル内に含まれる。従って、これらの生成形状点が、ルート指定データファイルを作成するプロセスの一部として作成され、若干のセグメントエンティティの属性として含まれるのである。
【0123】
上述したように、セグメントデータエンティティは、その長さに沿う1つまたはそれ以上の形状点属性を含むことができる。もし道路セグメントが直線以外であれば、形状点属性はそのセグメントに沿う地理的位置(緯度、経度)を供給してそのセグメントに沿う真の物理的位置を正確に表し、車両の位置決め等を援助する。図10Aは、直線セグメントS20及び形状点SP1、SP2、及びSP3を有するセグメントS21を示している。
好ましい実施例では、たとえあるセグメントが直線であっても、従ってそれに沿って位置するどのような形状点も必要としないとしても、もしそのセグメントの何れかの部分が所定の長さしきい値を超えれば、生成形状点が作成され、形状点属性としてセグメントエンティティに関連付けられる。従って、ルート指定レイヤ中間データファイルを作成するコンパイラプロセスの一部として、各セグメントエンティティが調べられ、それが形状点を有せずに所定の長さしきい値を超える部分を含むか否かが決定される。もしそうであれば、形状点を有せずに所定のしきい値を超えるセグメント内の長さが存在する場合には、生成形状点が作成され、そのセグメントに関連付けられる。一実施例では、所定のしきい値は、東・西または北・南方向において 512ナビゲーション単位(1度の 512/100,000)である。他の形状点と同様に、これらの生成形状点は、そのセグメントに沿う真の位置(緯度、経度)を表している。生成形状点が含まれているのが直線であるために、これらの生成形状点の位置は比較的容易に導出することができる。生成形状点を含ませたことにより、形状点を有することなく 512ナビゲーション単位よりも大きいセグメントの部分は存在しなくなる。関連する生成形状点GSP1、GSP2を含むセグメントS20を図10Bに示す。
【0124】
この特色は、あるセグメントが、たとえそのセグメントがその中にその端点を有していなくてもそのセグメントが通過する全てのパーセルに、またはそれが通過する各パーセル内の何等かの正規形状点に、関連付けられる見込みが増加する長所を提供する。例えば、あるセグメントの直線長があるパーセルの隅(例えば、図10AのパーセルP34)を通過するかも知れない。セグメントS20の端点(及びもしあれば、正規形状点)はこのパーセルの外側に位置しているから、何等かのデータがセグメントS20をそのパーセルに関連付けることはあり得ない。図10Bに示すように、直線セグメントに沿って規則的な間隔で生成形状点を含ませることは、そのようにしなければセグメントに関連付けられないパーセル内にセグメントの点を位置決めする手段を提供する。
【0125】
好ましい実施例においては、あるセグメントの何れかの部分があるパーセルの一部分を横切り、そのセグメントがそのパーセル内に何等かの形状点または端点(ノード)を有していない場合にも、そのパーセルを横切るそのセグメントの部分が少なくとも 512ナビゲーション単位であるか否かには拘わりなく、生成形状点を計算し、そのセグメントと共に含むことができる。あるセグメントが横切る全てのパーセルのリストを生成し、全てのセグメントのノード及び形状点に関連付けられたパーセルのリストと比較することができる。この比較に基づいて、セグメントを特定のパーセルに対応付けるために、そのセグメントの何れかの部分に生成形状点を追加する必要があるか否かを決定することができる。生成形状点の位置はパーセル内の何処であってもよく、必ずしもパーセル境界上である必要はない。
【0126】
ルート指定中間データファイル(続き)
セグメントエンティティのための方位属性が、セグメントエンティティの形状点から計算される。各セグメント毎に2つの、即ちセグメントの各端毎の1つずつの方位が計算される。方位属性は、セグメントが「通じている」方向を表している。方位は、真北に対する変位の角度として計算される。セグメントの各端毎の方位を計算するために、セグメント内の1つまたはそれ以上の形状点が使用される。これらの形状点は、そのセグメントの端点における各ノードに近接する、または約 100ナビゲーション単位(または約 300フィート)以内のものを含む。端点におけるノード及びそれに近接する形状点を使用して、仮想線が生成される。この仮想線の方向が真北に対して比較され、方位の値が計算される。好ましい実施例では、計算された方位は、格納を容易にするために0乃至 225の値に正規化される。方位は各セグメントエンティティ毎の属性として格納される。
【0127】
ノードエンティティのランクが限定され、集約セグメント及びスーパーノードが前述したようにして作成される。集約セグメントの決定に関して言えば、全てのレイヤ内のノードエンティティは、そのノードが「集約セグメント有意」であるか否か、即ち、そのノードがそのレイヤのための集約セグメントの端ノードであるか否かを指示する属性を含む。またこの段階において、正規化された属性テーブル内のエントリに対応する属性の組合わせを含むセグメントエンティティには、その正規化された属性テーブルを指すポインタが割当てられる。ノードのための位置データ及び形状点(生成形状点を含む)を使用して、ペアノキーアレイが作られる。
各レイヤ内のデータは、最低レイヤ(最も稠密)から開始して、前述したようにしてパーセル化される。好ましい実施例では、パーセルを形成する際に、パーセルの最終サイズの推定が行われる。
【0128】
推定技術
上述したパーセル化プロセスにおいては、データの量を評価する多くの場合が存在する。例えば、前述した「規則的な分割手順」中に、より小さい矩形領域を表す部分にデータを分割し続けるかどうかを決定する目的で、データの量が評価される。前述した「カストム分割手順」では、パーセルを形成するために所望の分割線を決定する目的で、データの量が評価される。これらの場合、これらの評価は、ある量の地理的データから形成されるパーセルの最終サイズが幾つかの要因によって影響され得ることを考慮に入れる。例えば、地理的データに加えて、全てではないにしても殆どのパーセルは、パーセルヘッダのようなオーバヘッドと、kdツリーのようなインデックス情報とを含んでいる。パーセル内に含まれているこれらの付加的な種類の情報の若干はサイズが固定され、他はデータの量または内容と共に変化し得る。これらの型のオーバヘッドがパーセル内の空間を占めるので、所与の量のデータをパーセルに形成できるか否かを評価する上で、これらの情報の付加的なアイテムを考慮に入れる必要がある。一方、若干の型のデータのサイズは、圧縮技術を使用して減少させることができる。また、所与の量が所望の充填率を有するパーセルに形成できるか否かを評価する際にも、これらの圧縮技術を考慮する必要がある。
【0129】
これらの評価を行う一方法は、評価が必要になった時に、ある量のデータからパーセルを形成する全てのステップを遂行することである。このプロセスは評価を行わせるために必要情報を供給するが、所望のパーセル境界の決定に到達するためには多くの試行パーセル結果(最終的には破棄される)を生成する必要があるので比較的非効率である。代替として、好ましい実施例では、推定技術を使用する。
推定技術は、ある型の地理的データ内に存在する変数を識別する。これらの変数は、ある型の地理的データ内の異なる型の各エンティティの量として識別される。例えば、ルート指定データでは、変数は所与の量の地理的データ内に存在するノード、セグメント、状態、及び形状エンティティの各々の量として識別される。スーパーノード及び集約セグメントの量も別々に識別される。推定技術は、これらの各変数に定数を適用し、所与の量のデータから形成されるパーセルのおおよそのサイズを推定する。これらの各変数に適用される定数は、これらの各変数を比較的広い範囲で(及び、他の各変数に対して)変化させ、結果的なパーセルサイズが計算される。
【0130】
実際のパーセルが、代表的なデータサンプルについて生成される。推定定数が初期値として与えられ、得られたパーセルサイズ推定が実際のパーセルサイズと比較される。1つの定数が選択され、その値が、推定を改良する方向に少量だけ変動される。選択された定数を更に変化させてもさらなる改良が得られなくなると、このプロセスが第2の選択された定数について繰り返され、その後残りの全ての推定定数について繰り返される。このプロセスは、推定が受入れ可能な範囲内になるまで、またはさらなる改良を得ることができなくなるまで、全ての推定定数について1回またはそれ以上の回数繰り返される。
推定プロセスにより、結果的に得られるパーセルを約2%以内で推定することができる。この推定技術は、推定技術が殆ど常に許容サイズ以内で推定できるようにする目標パーセルサイズ(例えば、 95 %)と共に使用される。
【0131】
推定技術は、地図作成、運転、関心点等を含む全ての型のデータに適用することができる。各型のデータは異なるエンティティを有しているから、各型のデータはそれ自体の変数及び定数を有することになろう。しかしながら、定数は同じようにして導出される。
ルート指定中間データファイル(続き)
二次元kdツリーが、各レイヤ毎に、そのレイヤのための集約セグメント有意ノード(前述)を使用して作成される。勿論、レイヤ0はどのような集約セグメント有意ノードも含んでおらず、従って、正規ノードを使用してレイヤ0のためのkdツリーが作成される。
各ルート指定パーセルがレイヤ0のための中間ルート指定データファイル内に限定されるにつれて、パーセルはパーセルデータのサブセットを含むセルに更に分割される。これらのセルは、512 ナビゲーション単位(1度の 512/100,000)のような所定のサイズを有するように限定される。セルは、ペアノキー順に編成される。各セル内の位置データは、昇順に緯度及び経度によって編成される。これらのセルは、後刻パーセル内のデータの空間的探索を容易にするように使用することができる。
【0132】
パーセルが生成されるにつれて、臨時パーセル識別子(「パーセル参照番号」または“PRN”と呼ぶ)が割当てられる。パーセルは、グローバルkdツリーから深さ優先順(ほぼペアノキー順)に各ファイル内に格納される。
パーセル化されたルート指定データ内の全てのエンティティには、転送ファイル内で使用されたものに対して新しい識別番号が割当てられることに注目されたい。また、エンティティが転送ファイルから最初に生成される時点に、それらにこれらの新しい識別番号が割当てられることにも注目されたい。これらの場合、古い識別番号と新しい識別番号との間の相互参照テーブルが作成される。従って、既に新しい識別番号を割当てられているエンティティにその後のステップが参照を行う時には、これらの相互参照テーブルを使用してエンティティを転送ファイルから(それらは未だ古い識別番号を有している)入手することができる。
【0133】
5.地図作成中間データファイル
ルート指定中間データファイルを生成した後に、地図作成中間データファイルが生成される。地図作成中間データファイルは、ポリライン及びポリゴンを含んでいる。ポリラインは、線形特色を表す地理的データベースの地図作成部分内のデータエンティティである。ポリゴンは、エリア特色を表す地理的データベースの地図作成部分内のデータエンティティである。ポリライン及びポリゴンは、ナビゲーションシステム内の視覚ディスプレイ上に像を発生させるために、ナビゲーションシステムの地図表示機能によって使用される。
データ変形レイヤプロセスは、ナビゲート可能な、及びナビゲート不能な両方の特色のためのポリラインを作成する。地図作成データの各レイヤ毎に分離したポリラインが作成される。一般的に言えば、後述するように、ポリラインは、パーセルの境界、またはパーセルの小分けのような若干の制限と矛盾しない各特色の考え得る最長の「ストランド」によって表されるべきである。
【0134】
ポリライン転送ファイルを使用して、各ナビゲート不能なポリライン毎のノードが線形順番に順序付けられる。各ポリラインエンティティの長さ及び最小境界画定用矩形が計算される。この計算された長さは他の情報と共に、ポリラインエンティティを所与の地図作成の一般化レイヤ内に含ませるべきか否かを決定するために使用することができる。
セグメント、ノード、及び付属物転送ファイルからのノード、形状点、及びセグメントは、ナビゲート可能なポリラインエンティティ(即ち、道路)を作成するために使用される。ナビゲート可能なポリラインエンティティは、幾つかのセグメントを組合わせてセグメントのより長いスタンドを形成させることによって作成する。ナビゲート可能なポリラインエンティティの場合、若干の属性がポリラインに沿って変化しないままであることを条件として、セグメントはできる限り長いポリラインを構成するように組合わされる。例えば、セグメントが車両のアクセス、平均速度、レーンの数、走行の方向、ランク、または道路の型(例えば、舗装済み、ランプ、有料道路)のような同一属性の何れか1つ、またはそれ以上を有していることを条件に、セグメントはポリラインを形成するように組合わせることができる。ポリラインを構成した後に、ナビゲート可能なポリラインエンティティの長さ及び最小境界画定用矩形が計算される。ナビゲート不能なポリラインの場合と同様に、この長さ値は、ポリラインを所与の地図作成の一般化レイヤ内に含ませるべきか否かを決定するために使用することができる。ナビゲート可能なポリラインの最小境界画定用矩形は、以下に詳述するように、ポリラインがパーセルの細分の境界と交差するか否かを決定するために使用することができる。
【0135】
ポリゴン転送ファイルを使用して、各ポリゴンに関連付けられたノードエンティティが反時計方向に順序付けられるように、各ポリゴン毎のノードエンティティが順番に編成される。各ポリゴンエンティティの周縁、面積、及び最小境界画定用矩形が計算され、格納される。これらの計算された値を他の情報と共に使用して、所与の地図作成レイヤ内の図形のオーバレイのための優先順位を決定し、またそのエンティティを所与の地図作成の一般化レイヤ内に含ませるべきか否かを決定するために使用することができる。
順序付けられたポリゴン及びナビゲート不能なポリライン、並びにナビゲート可能なポリラインは、複数のレイヤ内に編成される。各レイヤ毎に1つのポリゴンファイル及び1つのポリラインファイルが作成される。地図作成データのレイヤの数は、ルート指定データのレイヤの数に対応するように選択することができる。例えば、もしルート指定データが5レイヤであれば、地図作成データのレイヤも5レイヤに形成することができる。地図作成データの最低(最稠密)レイヤが最初に形成される。(地図作成データのレイヤの数は、異なるランクのセグメントの数にも対応させることができる。)
ルート指定データと同様に、地図作成データの選択された属性の普通に発生する組合わせを含む正規化された属性テーブルを構成することができる。もし正規化された属性テーブルを使用するのであれば、地図作成正規化された属性テーブルを指すポインタを、選択された地図作成データエンティティ内に含ませることができる。
【0136】
地図作成データの各レイヤが形成されるにつれて、そのレイヤ内の地図作成データがパーセル化される。予備的に、各レイヤ毎の位置データ(例えば、緯度、経度)が、位置の経度または緯度の何れかによって編成される。例えば、各位置毎にキーを、位置を指すポインタ、及び位置が対応しているエンティティを指すポインタと共に生成することができる。キーは、それらが指す位置の経度に従って昇順に(左から右へ)編成される。代替として、キーを指すポインタが、緯度によって昇順に編成されたポインタと共に生成される。前述したように、この位置データは、パーセル化のための推定技術に使用される。
もしルート指定データ(または、他の空間的に編成されたデータ)が未だにパーセル化されていなければ、地図作成データの各レイヤは前述したようにしてパーセル化することができる。もしルート指定または他の空間的データのパーセル化に基づいてグローバルkdツリーが既に生成されていれば、先に生成された同一境界を使用して地図作成データをパーセル化する。地図カバレッジエリアのための地図作成データは、どのパーセル内のデータの量も最大パーセル量を超えないという要求を満足する最大エリアをカバーするパーセル内に含まれるべきである。従って地図作成データパーセルは、先に生成されたルート指定データパーセルと同一の地理的境界を必ずしも有している必要はない。例えば、もし地理作成データの密度が低ければ、地図作成データをルート指定データ程多く分割してはならないかも知れない。しかしながら、地図作成データを分割してパーセルを形成する際に、ルート指定データをパーセル化する際に生成されたものと同一の分割線が使用されよう。これは、複数のルート指定データパーセルを、1つの地図作成パーセルとして同一地理的エリアに対応させることができる(そして、地図作成データがルート指定データよりも稠密であるような領域では、その逆も真である)ことを暗示している。もし所与のレイヤ内の地図作成データがルート指定データよりも稠密であれば、ルート指定データのパーセル化で限定済みの分割を超えて、地図作成データのさらなる分割を行う必要があり得る。このような地図作成データのさらなる分割は、上述したようにして行うことが可能である。
【0137】
地図作成パーセルの小分け
地図作成データの場合、所与のレイヤにおいて各パーセルが限定されるにつれて、パーセルはパーセル内のデータのサブセットを含むセルに更に分割される。これらのセルは、パーセル上にオーバレイされた規則的な格子パターンによって限定することができる。パーセル内にそのパーセルセル構造を識別するヘッダが作成される。
セルは、そのパーセルのカバレッジエリア内の比較的大きい非オーバラップ地理的矩形を表す。これにより、パーセルのカバレッジエリアにオーバラップする探索矩形に対応するデータが抽出し易くなる。セルは、パーセル内の地図作成データによって表される地理的エリアのズーミング及びパンニングを管理するために、地図表示ナビゲーション応用機能によって付加的に使用される。ナビゲーションシステムの好ましい実施例は、媒体からのパーセル内のデータだけを読み出すことはできるが、これらのデータは圧縮されている。従って、地図位置を所与のズームレベルで表示するためには、セル構造を使用することによって、パーセル内のデータのサブセットだけ、即ちセル内容だけを拡張し、ナビゲーション応用へ戻す必要がある。このような小分けを行わない場合には、探索矩形内のデータを探知するためには、パーセル全体を拡張して調べる必要があろう。地図をズームアウトするか、または左右上下にパンする場合には、データのセルの隣接サブセットを使用することができる。
【0138】
例えば、図11Aにおいて地図表示に必要なエリアは、地図作成パーセルの小さい部分と交差している。パーセル内のデータはセルに編成されているから、地図表示エリアと交差している2つのセル内に含まれるデータだけを調べればよい。所与の矩形にオーバラップしているセルは、地図パーセル内部のkdツリー(その各葉ノードがセルを表している)を探索することによって見出し得る。各セルが、ポリラインレコードの連続間隔、ポリゴンレコードの連続間隔、及び点レコードの連続間隔を備えているように、あるセル内の所与の型のレコードは連続的に格納されている。
図11Bは、地図作成パーセルの内部kdツリーエントリを示している。前述したように、矩形の最小囲い2I ×2J タイルの何れかの 1/32 分割において、kdツリーのためのカットが限定される。kdツリーの各葉ノードはセルを表し、地図作成エントリレコードの1組の間隔に対応している。
【0139】
パーセルの小分けは、セル境界において大きいポリゴン及び長いポリラインをも破る。これらのパーセルセルの境界を明確に画定するために、セル境界と交差するポリゴン及びポリラインは、セル境界に従うように切り取る、またはクリップすることができる。例えば、図11Cに示すように、もしポリゴンエンティティPG10が6つの異なるセルC1−C6の部分を占める湖を表しているものとすれば、この湖を表すポリゴンエンティティは、各セルC1−C6内に位置する湖の部分を表す6つの分離したポリゴンエンティティ(PG11−PG16で示す)によって置換される。これらの各新しいポリゴンエンティティには、セル内に新しいエンティティ識別番号が与えられるので、地図表示のために適切なデータを読み出すことができる。一実施例では、ポリゴンエンティティは、それらがどのセル内に位置しているのかを指示する情報は含んでいない。
【0140】
6.相互参照中間データファイル
ルート指定及び地図作成データをパーセル化した後に、相互参照ファイルを作成し、地図作成データの各レイヤ内の各パーセル内のエンティティと、ルート指定データのパーセル内のルート指定エンティティとを相関させることができる。一実施例では、地図作成エンティティは、ルート指定データのレイヤ0内のルート指定データエンティティだけに相関付けられる。これらの相互参照ファイルは、例えば、ルート計算応用によって計算されたルートを形成するルート指定データ内のセグメントエンティティに対応するルートを表示し、強調表示(ハイライト)させるべく、ナビゲーション応用プログラムが適切な地図作成データを見出すために使用することができる。
【0141】
7.場所中間データファイル及び場所インデックス
場所データとは、例えば市、郡、近隣等のような管理エリア及びゾーンのことをいう。データ変形レイヤプロセスは、管理エリア、セグメントノード、及び付属物転送ファイルを使用して場所中間データファイル及びインデックスを作成する。これらの転送ファイルはメモリ内にロードされ、場所は、例えば、国、州、郡、市等のような階層順に編成される。一般的に言えば、階層の各レコードにおいて、同一の管理階層親場所を有する場所は、一緒に配列され、アルファベット順に順序付けられる。しかしながら、もしある場所の直の階層管理親が「住所有意」ではないと決定されれば、その場所は、住所有意であると決定されている階層内の次に高いレベル親に基づいて、同一の階層管理親場所を有する他の場所と一緒に配列され、アルファベット順に順序付けられる。ある場所は、それが通常は住所を限定するために使用されない場合に、「住所有意」ではないと決定される。例えば、米国内の住所情報は、典型的には自治体(例えば、市、町、村)を含み、自治体の直の管理階層親は郡である。しかしながら、郡は通常は住所に使用されないから、米国では郡は住所有意ではない。従って次に高い階層管理親、即ち州が使用される(何故ならば、州は住所に使用され、従って住所有意である)。この場合、市及び郡は共に、それらが位置している州によって編成されることになろう。
【0142】
異なるレベルの階層における関連場所間のポインタが生成される(例えば、市はそれが位置する郡を指し、郡はそれが位置する州を指し、その逆も真である)。また各場所毎に、最小境界画定用矩形を計算することができる。各場所毎の最小境界画定用矩形は、階層の最低レベルにおいて決定され、格納される。階層内の各高レベル場所毎の最小境界画定用矩形は、その場所内に含まれるより低い場所の最小境界画定用矩形を組合わせ、次いでこれらの組合わされた矩形のための最小境界画定用矩形を生成することによって計算することができる。場所に関連付けられた最小境界画定用矩形は、ナビゲーション応用プログラムによる空間的探索を容易ならしめる。
場所名のために、Bツリー(平衡多方向探索樹)インデックスファイルを作成することができる。これらのインデックスは、これらの場所のための識別番号順にこれらの場所名を含む。インデックスファイル内の各エントリは、関連パーセル内の場所のレコードを指すポインタを有している。場所データは、ハフマンエンコーディングまたは他の公知の圧縮方法を使用して圧縮することができる。
【0143】
場所データは場所中間データファイル内に格納される。他の中間データファイルと同様に、場所データファイルもそれが作成されるにつれてパーセル化される。しかしながら、空間的に編成されたデータとは異なり、場所データは空間的にはパーセル化されない。その代わりとして、場所データは、場所中間データファイルのパーセルが最大パーセル量に近接するように、しかしそれよりは小さくなるように、サイズだけに基づいて(場所エンティティが配列されている順序で)パーセル化される。
8.郵便コード中間データファイル及び郵便コードインデックス
データ変形レイヤプロセスは、郵便コード及びセグメント転送ファイルからの郵便コードデータを使用して、郵便コード中間データファイル及びインデックスを生成する。これらのファイルはメモリ内にロードされ、郵便コードは英数字順に編成される。各郵便コード毎に、郵便コードを有するセグメントに基づいて最小境界画定用矩形が計算される。郵便コードのための最小境界画定用矩形は、郵便コードをベースとする空間的探索を容易にするために、ナビゲーション応用プログラムによって使用することができる。
【0144】
各郵便コードの関連パーセルを指すポインタを含む郵便コードについて、Bツリーインデックスファイルを作成することができる。郵便コードデータは、ハフマンエンコーディングまたは他の公知の圧縮方法を使用して圧縮することができる。
郵便コードデータは、郵便コード中間データファイル内に格納される。場所中間データファイルと同様に、郵便コード中間データファイルは、データの量に基づいてパーセル化される。
9.ナビゲート可能な特色名中間データファイル及びインデックス
データ変形レイヤプロセスは、名前転送ファイル及び付属物転送ファイルからのナビゲート可能な特色名データを使用してナビゲーション特色名中間データ及びインデックスを生成する。これらのファイルはメモリ内にロードされ、名前はアルファベット順に編成される。ナビゲート可能な特色名のために、Bツリーインデックスファイルを作成することができる。これらのインデックスファイルは名前レコードを含み、各レコードは名前に関連したパーセルを指すポインタを含んでいる。ナビゲート可能な特色名データは、ハフマンエンコーディングまたは他の公知の圧縮方法を使用して圧縮することができる。
【0145】
ナビゲート可能な特色名データは、ナビゲート可能な特色名のベース名によってアルファベット順に格納される。格納されたナビゲート可能な特色名データはパーセル化され、中間データファイル内に格納される。
10.ナビゲート可能な特色(場所によって順序付けされている)中間データファイル
ナビゲート可能な特色の識別番号も、場所階層の最低レコードにおける各場所毎に編成される。各ナビゲート可能な特色が関連付けられている1つまたは複数の場所は、ナビゲート可能な特色を構成しているセグメントから決定される。より詳しく述べると、このような各セグメント毎に、そのセグメントが位置している管理エリアはセグメント転送ファイルから決定することができ、そのセグメントのための道路名は付属物転送ファイルから決定することができる。従って、管理エリアを、ナビゲート可能な特色のための道路名に相関させることができる。場所は、それらの識別番号によって編成される。各場所毎のナビゲート可能な特色の識別番号は、これらの場所内に昇順で編成される。更に、各ナビゲート可能な特色の識別番号レコードは運転パーセルの1つまたは複数の識別番号をも含んでおり、関連する場所内にナビゲート可能な特色を見出すことができるようになっている。
【0146】
このデータは、場所によって編成された道路のリストを生成するために、及び道路/場所組合わせに関連するセグメントを識別するために、ナビゲーション応用プログラムによって使用することができる。
場所によって順序付けられたナビゲート可能な特色のために、少なくとも2つのBツリーインデックスファイルを作成することができる。1つのインデックスファイルは場所情報を一次キーとして使用し、ナビゲート可能な特色ベース名を二次キーとして使用する。このインデックスファイルは、ある場所内のベース名と一致するナビゲート可能な特色を探知するために使用される。他のインデックスファイルは、ナビゲート可能な特色のIDを一次キーとして使用する。このインデックスファイルは、ナビゲート可能な特色のIDが既に知られており、その場所のようなナビゲート可能な特色に関する付加的な情報を入手したい場合に使用される(例えば、先行探索から)。
【0147】
11.運転中間データファイル
運転データは、セグメント及びそれらのアドレス範囲、ナビゲート可能な特色の識別番号、道路標識情報、及び例えばセグメントとナビゲート可能な特色との間の、及びその逆のエンティティ間の相互参照を含んでいる。
データ変形レイヤプロセスは、セグメント、ノード、及び付属物転送ファイルを使用して運転中間データファイル及びインデックスを生成する。種々のエンティティ間に関係を確立するためにポインタが作成される。例えば、ポインタが、ルート指定データ内のセグメントと、場所データ内の場所名との間の関係を確立する。別の例では、あるセグメントは、そのセグメントエンティティの端点のノードのレコードを指すポインタを有している。
【0148】
生成形状点を計算し、運転セグメントと共に格納することも、または代替として、ルート指定中間データファイルの生成中に作成された生成形状点を使用することもできる。
ペアノキーアレイを作成するために、ノード、形状点、及び人工形状点(今はメモリ内にある)のための位置データが使用される。代替として、ルート指定中間データファイルのために生成されたペアノキーアレイを使用することができる。
運転データパーセル(ナビゲート可能な特色名及び場所のような)を生成するために転送ファイルから入手したデータの若干は、他の型のデータのための中間ファイルを先に生成した時に既に新しい識別番号が割当てられていることがあり得る。従って、これらのエンティティのための古い識別番号は、各中間ファイルを作成する時に生成される相互参照テーブルを使用して、新しい識別番号に変換される。
【0149】
運転データは、先に生成されたグローバルkdツリーを使用してパーセル化される。運転データは、各パーセル毎に所望の最小充填率を満足するようにパーセル化すべきである。所与の地理的エリアのための運転データは、所望の最小充填率が満足される最大エリアをカバーするパーセル内に含まれるべきである。もし先に限定されたパーセルに対応する地理的矩形エリア内に取り囲まれている運転データが最大パーセル量を超えれば、前述したように所望のパーセル量を達成するために、そのデータをより小さい矩形エリアに対応する集約(グルーピング)に更に分割することができる。
運転データの場合、各パーセルが限定されるにつれて、セグメントをそのパーセル内部のセルインデックスに関連付けることができる。セルインデックスは、緯度及び経度の組合わせであることができる。パーセルは、セルに分割されたものとして表され、各セルは1度の 256/100,000のような規則的なサイズの地理的エリアとして限定される。パーセル内の各セグメント毎に最小境界画定用矩形が計算され、セグメントの最小境界画定用矩形の最も北及び最も南の隅に位置しているセルが識別される。次いでこれらのセルがセグメントに関連付けられる。(最小境界画定用矩形の最も北及び最も南の両方の隅が同一セル内に位置することがあり得るが、もしそうであれば、この情報は相応にセグメントに関連付けられる。)セグメントデータのこの配列によって、セグメントがまたがっているセルを迅速に調べることができるために、パーセル内のデータの空間的探索が容易になる。
【0150】
12.関心点及びサード・パーティ中間データファイル
関心点転送ファイル930を使用して、別のデータ変形レイヤプロセスはこれらのデータを読み出し、関心点中間データファイルを生成する。この中間ファイルを作成する際に、このプロセスは関心点を、地図作成中間データファイル内の地図作成データのパーセルと同一の境界を有するパーセルに空間的に編成する。この段において、もしサード・パーティデータが転送ファイルフォーマット内に含まれていれば、これらのデータも中間ファイル及び関連インデックスに編成される。サード・パーティ中間データファイルを生成する際に、データは、前述したように地図作成及び関心点パーセルと同一の境界を有するパーセルに編成される。
【0151】
13.近隣kdツリー中間データファイル
全ての空間的データ(ルート指定、地図作成、及び地図作成相互参照データ)をパーセル化した後に、変形レイヤプロセスは、各型の空間的データのための各パーセル内に近隣kdツリーを格納する。あるパーセル内の近隣kdツリーは、そのパーセル、そのパーセルの1つまたは複数の親(もしあれば)、そのパーセルの子(もしあれば)、及びそのパーセルの隣接パーセル(もしあれば)を識別する。これらの近隣kdツリーは、空間的な探索のために、及び1つのパーセルに別のパーセルからアクセスするために、ナビゲーション応用プログラムによって使用することができる。
14.グローバルkdツリー中間データファイル
空間的に編成された各パーセル毎に近隣kdツリーが限定され、格納された後に、グローバルkdツリーは圧縮された形状に変換され、中間ファイル内に格納される。
【0152】
D.物理的記憶フォーマット分離レイヤ
前述したように、地理的データセットコンパイラ900は出力905を供給する。この出力905を発生するコンパイラ900の成分は、物理的記憶フォーマット分離レイヤ914である。物理的記憶フォーマット分離レイヤ914は、データ変形レイヤ910によって生成された中間データファイル927から出力905を発生させる。分離レイヤ914は、前述した配置計画に従って、中間データファイル927から媒体に特定のフォーマットを形成する。
物理的記憶フォーマット分離レイヤ914によって得られる利点の1つは、それが、データ変形レイヤプロセスのような残りの地理的データセットコンパイラプロセスを、特定の異なる型の媒体のディテール及び特性から分離することである。異なる型の媒体は、種々のデータ成分について異なる配置及び冗長戦略から利益を得ることができる。例えば、CD−ROM上では、最も屡々アクセスされることが予測されるか、または最高に早いアクセス時間が要求されるデータは、内側トラックの近くに配置される。
【0153】
図9Cを参照する。物理的記憶フォーマット分離レイヤ914によって発生された出力905は、少なくとも1つの記憶媒体地理的データファイル1001を含んでいる。記憶媒体地理的データファイル1001は、データ変形レイヤ910によって作成された中間ファイル927内に含まれる個々のパーセルの全てを含んでいる。分離レイヤ914において、これらの個々のパーセル化された中間ファイル927が単一のファイルに連結され、記憶媒体ファイル1001が形成される。
分離レイヤ914において、1つより多い地図データカバレッジエリア(DCA)を、単一の記憶媒体地理的データファイル1001に組合わせることができる。各地図データカバレッジエリアは、図4Aの領域100のような特定の地理的領域に関係付けられる。もし単一の地理的データファイル1001内に複数の地図データカバレッジエリアが含まれていれば、各地図データカバレッジエリアはそれ自体の地図データファイルヘッダを含む。(地図データヘッダファイルは、後述するように、その特定データカバレッジエリアに適用可能なグローバルデータを含んでいる。)例えば、ファイル1001は2つの地図データカバレッジエリアと、相応して2つのヘッダ1004及び1005とを含んでいる。地図データファイルヘッダは、それが関係を有しているデータのパーセルの直前の記憶媒体地理的データファイル内に配置される。
【0154】
分離レイヤ914の出力905の一部として含まれているのは、媒体ファイルまたは成分1009である。媒体ファイル/成分1009は、分離したファイルとして形成することができ、また好ましくは、媒体ファイル1009は記憶媒体地理的データファイル1001のパーセル化された成分(即ち、「媒体成分」)として形成することもできる。媒体成分1009は、全体として記憶媒体に関係するグローバルデータを含んでいる。
ファイル1001内のデータの配置は、種々の中間データファイルを単一のファイルに連結し、各中間データファイル毎にオフセット(「パーセルID」と呼ぶ)を作成することによって与えられる。パーセルIDは、パーセルサイズ、冗長度、及びファイル1001の開始からのオフセットの組合わせである。従ってパーセルIDは、本質的に媒体特性に依存する。パーセルIDは、媒体上の特定のパーセルを迅速に探知可能にするだけではなく、パーセルのサイズを識別する情報を担持しているために、ナビゲーション応用プログラムが、パーセルをロードするのに充分なメモリを適切に割当てることを可能にする。CD−ROMの場合、パーセルIDはセクタ番号を反映することが好ましい。PCMCIAカードの場合には、パーセルIDは、例えば 256バイトの単位でバイトオフセットを反映する。パーセルIDの1ビットはパーセルの余分の(冗長)コピーを指示するために使用される。これらのコピー(もしあれば)の位置は、ナビゲーション応用によってメモリ常駐テーブルから決定することができる。CD−ROMのような媒体の場合、媒体上に格納されている種々のコピーの中から選択する能力によってCDヘッドに最も近い冗長コピーを選択することができるために、データ検索時間が短縮される。一代替実施例では、データの冗長コピーを、「グローバルkdツリー」のようなインデックス情報のために使用することができる。
【0155】
中間データファイル内の全てのデータはパーセル化されているから(考え得る若干のグローバルデータを除く)、パーセル参照をパーセルIDで置換できるようになる前に、パーセルは先ず特定のシーケンス内に滞在する。パーセルプレースホールダ( placeholder ) 情報がこの目的のために設けられている。この情報は、バイトオフセットに翻訳することができる先に生成された「パーセル参照番号」(PRN)、またはパーセルインデックスの形状である。パーセルインデックス(0−n)は、中間データファイルを作成するデータ変形レイヤ910内の各プロセスによって生成される生の順次インデックスである。従って、分離レイヤ914は先ず中間データファイルからのパーセルをロードし、パーセルを最寄りの境界単位に丸められた所定のシーケンスに書き直す。次いで、パーセル参照番号が新たに生成されたパーセルIDによって置換される。この第2の段階は、含まれている特定のデータ構造の知識を含む。この第2のステップが処理するパーセルには2つの型が存在する。データパーセルに対してローカルのパーセル参照番号は、そのパーセル型のための適切なパーセルヘッダを読み込み、これらのパーセル参照番号を含むパーセルテーブルにはヘッダを通してアクセスする必要がある。対応するパーセルIDに対するパーセル参照番号を更新するためには、インデックスパーセル内に担持されているパーセル参照番号が、特定のインデックスファイルパーセルを読み込み、インデックスツリーを辿る必要がある。空間的、及び非空間的インデックスが存在するから、このステップはインデックスツリーを生成する際に開発された情報を使用する。
【0156】
このプロセスを遂行する一代替アプローチは、各パーセル参照番号毎のオフセットを含む補助ファイルを準備することである。インデックスツリーパーセル参照番号の更新は、オフセットによって指示された特定の位置にアクセスし、次いでその位置におけるパーセル参照番号を実際のパーセルオフセットを含む既存テーブルへのインデックスとして使用することを含む。
別の代替アプローチは、パーセル参照番号の位置まで下がってナビゲートする機能をも含む中間データファイルを発生するデータ変形レイヤ内に、物理的記憶フォーマット分離レイヤ914がパーセル参照番号をパーセルIDに置換できるようにするプロセスを設けることである。以下に概要を説明する方法は、この後者のアプローチに基づくものである。
【0157】
物理的記憶フォーマット分離レイヤ914の動作の2つの有用な副産物は、パーセル冗長度テーブル及びインデックス根パーセルIDの生成である。
どのような異なる型の記憶媒体の場合でも、地理的データ出力ファイル1001を含む出力ファイルが先ずハードディスク上に作成される。出力ファイルをCD−ROMのような実際の記憶デバイス22へ転写するのは、当分野においては公知のマスタリングプロセス917の機能である。
2.物理的記憶フォーマット分離レイヤの成分
分離レイヤ914は、入力として、データ変形レイヤ910によって生成された中間データファイル927、及びデータ変形レイヤ910によって各中間データファイル毎に生成された補助ファイル949を使用する。分離レイヤプロセスは、データカバレッジエリア名、使用中の媒体の型、及び記憶媒体上の開始ユニット(または、位置ユニット)の1つまたはそれ以上を識別する入力を受入れるように構成可能であることができる(手動入力プロンプト、または構成ファイルからの何れかによって)。分離レイヤは、好ましいデータ配置順及び冗長性情報を含むルックアップファイル1020(「データ マップファイル」と呼ぶ)も使用する。冗長性は、異なるデータファイルユニットが繰り返し出現することによって暗示される。
【0158】
前述したように、各中間データファイル毎に補助ファイル(「オフセット記述子ファイル」と呼ぶ)が生成される。「オフセット記述子ファイル」は、各中間データファイル毎のパーセルオフセット及びパーセルサイズを含んでいる。例えば、中間データファイル943はデータパーセル943A、943A、943A・・・を含み、この中間データファイル943に関連付けられている補助ファイル953は中間データファイル943のパーセルオフセット及びサイズを含んでいる。パーセルオフセットは、ファイルの開始からのそのパーセルのバイトオフセットを表している。好ましい実施例では、「オフセット記述子」ファイルは、全てのレイヤの各型の中間データファイル毎に存在する。例として、ルート指定レイヤ0乃至レイヤ4ファイルのための中間データファイルは、各々それ自体の「オフセット記述子」ファイル(ファイル内のパーセル参照番号によって明示的にインデックスされるバイトオフセットのテーブルを含む)に関連付けられている。好ましい実施例では、インデックス及び関連グローバルデータファイルを含む各中間データファイルは、ファイル内に含まれているパーセルの合計数を指示する固定サイズのファイルヘッダを有している。
【0159】
分離レイヤは、ディスク上のデータファイルユニット、及び付随する「オフセット記述子」ファイルの両方のためのファイルエクステンション及び接尾部を識別する情報を含む各中間データファイル毎のファイル1030(「ファイル情報記述子」ファイルと呼ぶ)をも使用する。「ファイル情報記述子」ファイル1030は、特定の中間ディスクファイルが何等かのパーセル参照番号を含むか否かを指示する情報をも含む。
3.物理的記憶フォーマット分離レイヤの動作
分離レイヤ914においては、シーケンスに書き直される前に各パーセルを調べ、データを書き込む記憶媒体に関連する境界単位のサイズにパーセルを均等に順応させるには、パーセルのサイズをどの程度多く増加させるべきかを決定する。記憶媒体が異なれば、境界単位のサイズも異なり得る。例えば、CD−ROMの場合には境界単位は 2048 バイトであり、PCMCIAカードの場合には境界単位は 256バイトである。パーセルが媒体の境界単位の倍数に正確に対応するサイズを有していない限り、パーセルのサイズはある量のパディング(「丸め調整」ともいう)を追加することによって、パーセルを境界単位の次に最大の倍数に対応するサイズに「切上げ」られる。中間データファイル内の各パーセルは異なる量のデータを有し得るので、パディングの量は各中間ファイル内の各パーセル毎に別個に計算される。
【0160】
パーセルのサイズを媒体上の境界単位の次に大きい倍数に合わせるようにパーセルにパディングを行うには、先ずパーセルのサイズを物理的境界単位の数の表現で決定する必要がある。媒体の型に依存して、これは2つの公式の一方を使用することを含む。
境界単位が2×K(K=1024バイト)であるCD−ROMの場合には、丸め調整は次の2K単位に丸められた(パーセル サイズ%2×K)に等しい(ここに「パーセル サイズ」は、パーセルが中間データファイル内に存在する時のパーセルのサイズに等しい)。
境界単位が 256バイトであるPCMCIAカードの場合には、丸め調整は次の 256単位に丸められた(パーセル サイズ% 256)に等しい(ここに「パーセル サイズ」は、パーセルが中間データファイル内に存在する時のパーセルのサイズに等しい)。
【0161】
もしCD−ROMまたはPCMCIAカード以外の媒体を使用するのであれば、異なるサイズの異なる境界単位が存在し得るので、丸め調整は相応して変更される。
分離レイヤ914は、媒体の型、地図カバレッジエリア等を識別する適切なパラメータを用いて初期化される。また、順序及び冗長性を指示するルックアップファイル1020(即ち、「データ マップ」ファイル)がロードされる。ルックアップファイル1020を通る第1のパスがメモリ内で遂行され、中間データファイル及び冗長性の合計数が決定される。もし特定のファイルがそのデータカバレッジエリア内に存在しなければ、分離レイヤプロセスは、失われたファイルが最小セットの一部ではない限り、次のファイルへ移動する。最小セットは、例えばグローバルデータ、少なくとも1組のインデックス、及び中間データファイルを含むことができる。
【0162】
第1の中間データファイル内の各パーセルのサイズ及び位置を識別する補助ファイル(即ち、「オフセット記述子」ファイル)を使用してパーセルがメモリ内に読み込まれ、そのパーセルを最大の境界単位に丸めた後に、ディスク上の記憶フォーマットファイル1001へ書き戻される。パーセルが書き込まれた後に、補助ファイルを使用して、プロセスは第1の中間データファイル内の次のパーセル上に移動する。丸め調整が再度計算され、パーセル+丸め調整がディスクへ書き込まれる。プロセスは、第1の中間データファイル内の全てのパーセルがパディングされ、ディスクに書き込まれるまで続行する。パーセルがディスクに書き込まれるにつれて、パーセルIDが各パーセルに割当てられる。各パーセルには独特のIDが割当てられ、好ましい実施例ではパーセルIDは、物理的記憶フォーマットデータファイルの始まりからのオフセット+パーセルのサイズ(丸め調整を考慮している)+冗長情報の組合わせを表している。
【0163】
第1の中間データファイルからのパーセルがパディングされ、パーセルIDが割当てられ、そしてディスクに書き込まれた後に、次の中間データファイル(例えば、945)がメモリ内にロードされ、第1の中間データファイルと同じようにして、そのパーセルはパディングされ、パーセルIDが割当てられ、そしてディスクへ書き込まれる。前述したように、中間データファイルが処理されるシーケンスは、ルックアップファイル1020(「データ マップ」)を参照することによって決定される。第2の、及びその後の中間データファイルが処理されると、これらの中間データファイル内のパーセルは同一記憶フォーマットデータファイル1001内へ書き込まれる。相応して、第2の、及びその後の中間データファイル内のパーセルには、第1の中間データファイルから書き込まれたパーセルを既に含んでいる同一の記憶フォーマットファイル1001の開始からのオフセット(+パーセルサイズ)であるパーセルIDが割当てられる。冗長パーセル(もしあれば)の場合には、新しい組のパーセルIDを受け入れるように拡張された同一プロセスが使用される。このプロセスが終わると、「データ マップ」ファイル内に存在する全てのデータ型についてパーセルIDが作成されており、媒体上で使用可能になっている。好ましい実施例では、あるデータベース領域のための全ての異なる中間データファイルからの全てのパーセルは、単一の領域当たりの記憶フォーマットデータファイル内に含まれている(即ち、全ての中間データファイルが結合型プロセス内に併合されている)。
【0164】
中間データファイルからの全てのパーセルが記憶フォーマットデータファイルに連結された後に、分離レイヤプロセスは、ディスクに書き込まれたディスクパーセル内の全てのパーセル参照番号を更新する。インデックスファイルを含む多くのデータは、同一パーセル内の、または他のパーセル内の何れかの他のデータに対する参照を含んでいる。ナビゲーション応用機能の動作を強化するために、これらの他のデータへの参照は、割当てられたパーセルIDを含むように更新される。先行分離レイヤプロセスが全てのパーセルに新しいパーセルIDを割当てているから、パーセル内部の全てのパーセル参照(先に割当てられたパーセル参照番号)は、これらの新たに割当てられたパーセルIDを使用して更新されなければならない。好ましい実施例においては、ルックアップファイル(「データ マップ」)は、更新を必要とするパーセル参照番号を有するパーセルを含む中間データファイルの型を識別する情報を含んでいる。分離レイヤ内のプロセスは、ディスクへ書き込まれた各パーセル毎に、パーセルID、及び先にそのパーセルに関連付けられたパーセル参照番号を追跡するテーブルを形成する。更新を必要とするパーセルを含む中間データファイルの場合、分離レイヤプロセスはパーセル内のパーセル参照番号までのオフセットを識別するためにルックアップファイルを使用する。全てのパーセル内の総てのパーセル参照番号が探知され、適切なパーセルIDに置換される。
【0165】
前述したように、物理的記憶フォーマットデータファイル1001内には、1つより多い地図カバレッジエリア(即ち、データベース領域)を含むことができる。上述したプロセスは、同一物理的記憶フォーマットデータファイル1001内に含まれるその後の地図カバレッジエリアを追跡する。代替として、付加的な地図カバレッジエリアを分離した物理的記憶フォーマットデータファイル内に含ませることができる。
この物理的記憶フォーマットデータファイル1001は、ファイル1001を記憶媒体上に書き込むマスタリングプロセス917において使用される。出力ファイルが媒体上に書き込まれると、それは図9Cに示す編成を保持する。マスタリングプロセスは普通のものであってよい。出力ファイル1001がCD−ROMのような物理的媒体上に格納されると、パーセルIDは媒体上の位置に直接的に対応するデータ内を参照するから、パーセルID情報は媒体上のデータの位置を迅速に探知することができる。即ち、上述した実施例では、パーセルIDは、媒体上に格納されている単一の地図データファイルの開始からのオフセット(+パーセルサイズ)を表す。この情報を使用して、データが格納されている媒体上の位置を直接探知することができる。これは、記憶媒体上の地理的データを使用するナビゲーション応用機能の速度及び動作を強化する可能性を与える。
【0166】
VI.代替実施例
さらなる代替実施例では、ナビゲーションシステムは、無線通信を組み込むんで、それが使用する若干のまたは全てのデータを遠隔位置または中央位置から入手することができる。これらの代替実施例では、地理的データは遠隔または中央位置から供給することも、または代替として、若干のまたは全ての情報を無線通信を介して入手することもできる。例えば、無線通信を介して更新または実時間交通情報を供給し、車載ナビゲーションシステムに設置された地理的データベースを補足することができる。
以上の詳細な説明は単なる例示に過ぎず、本発明を限定するものではなく、特許請求の範囲が本発明の範囲を限定するものであることを理解されたい。
【図面の簡単な説明】
【0167】
【図1】地理的データ、及びオプションとして他のデータを格納している記憶媒体を含むナビゲーションシステムを示す図である。
【図2】図1のナビゲーションシステムのソフトウェア成分を示す図である。
【図3】図1の記憶デバイス上に格納されているナビゲーションデータファイルの型を示す図である。
【図4A】図4Aは、図1の記憶デバイス上のナビゲーションデータを編成するためのパーセル化プロセスを示す図である。
【図4B】図4Bは、図1の記憶デバイス上のナビゲーションデータを編成するためのパーセル化プロセスを示す図である。
【図4C】図4Cは、図1の記憶デバイス上のナビゲーションデータを編成するためのパーセル化プロセスを示す図である。
【図4D】図4Dは、図1の記憶デバイス上のナビゲーションデータを編成するためのパーセル化プロセスを示す図である。
【図5A】図5Aは、図1の記憶デバイス上のナビゲーションデータの若干からなるパーセル内の関連データを含むプロセスを示す図である。
【図5B】図5Bは、図1の記憶デバイス上のナビゲーションデータの若干からなるパーセル内の関連データを含むプロセスを示す図である。
【図5C】図5Cは、図1の記憶デバイス上のナビゲーションデータの若干からなるパーセル内の関連データを含むプロセスを示す図である。
【図5D】図5Dは、図1の記憶デバイス上のナビゲーションデータの若干からなるパーセル内の関連データを含むプロセスを示す図である。
【図5E】図Eは、図1の記憶デバイス上のナビゲーションデータの若干からなるパーセル内の関連データを含むプロセスを示す図である。
【図6A】図6Aは、図3に示すルート計算地理的データセットにおいて、複数の正規ノードをスーパーノードに置換するプロセスを示す図である。
【図6B】図6Bは、図3に示すルート計算地理的データセットにおいて、複数の正規ノードをスーパーノードに置換するプロセスを示す図である。
【図6C】図6Cは、図3に示すルート計算地理的データセットにおいて、複数の正規ノードをスーパーノードに置換するプロセスを示す図である。
【図6D】図6Dは、図3に示すルート計算地理的データセットにおいて、複数の正規ノードをスーパーノードに置換するプロセスを示す図である。
【図6E】図6Eは、図3に示すルート計算地理的データセットにおいて、複数の正規ノードをスーパーノードに置換するプロセスを示す図である。
【図6F】図Fは、図3に示すルート計算地理的データセットにおいて、複数の正規ノードをスーパーノードに置換するプロセスを示す図である。
【図7A】図7Aは、図3に示す地理的データセット内の若干のデータエントリ内の若干のデータ属性を表すために正規化された属性アレイの使用を示す図である。
【図7B】図7Bは、図3に示す地理的データセット内の若干のデータエントリ内の若干のデータ属性を表すために正規化された属性アレイの使用を示す図である。
【図8A】図8Aは、図3に示すルート計算地理的データセットにおいて使用するためのセグメント集約手順を示す図である。
【図8B】図8Bは、図3に示すルート計算地理的データセットにおいて使用するためのセグメント集約手順を示す図である。
【図8C】図8Cは、図3に示すルート計算地理的データセットにおいて使用するためのセグメント集約手順を示す図である。
【図8D】図8Dは、図3に示すルート計算地理的データセットにおいて使用するためのセグメント集約手順を示す図である。
【図8E】図8Eは、図8Dの集約セグメントと、それが関連付けられている他のデータとの関係を示す図である。
【図9A】図9Aは、図1のナビゲーションシステムに使用するために記憶媒体上に格納される地理的データベースを生成するための地理的データセットコンパイラの一実施例の成分を示す流れ図である。
【図9B】図1のナビゲーションシステムに使用するために記憶媒体上に格納される地理的データベースを生成するための地理的データセットコンパイラの一実施例の成分を示す流れ図である。
【図9C】図1のナビゲーションシステムに使用するために記憶媒体上に格納される地理的データベースを生成するための地理的データセットコンパイラの一実施例の成分を示す流れ図である。
【図10A】図10Aは、図9A−28に示すコンパイラにおけるプロセスで発生する「生成形状点」を示す図である。
【図10B】図10Bは、図9A−28に示すコンパイラにおけるプロセスで発生する「生成形状点」を示す図である。
【図11A】図11Aは、図9A−28に示すコンパイラにおけるプロセスによる地図作成データの小分けを示す図である。
【図11B】図11Bは、図9A−28に示すコンパイラにおけるプロセスによる地図作成データの小分けを示す図である。
【図11C】図11Cは、図9A−28に示すコンパイラにおけるプロセスによる地図作成データの小分けを示す図である。
【符号の説明】
【0168】
10 ナビゲーションシステム
12 プロセッサ
14 ドライブ
16 メモリ記憶デバイス
18 ナビゲーション応用ソフトウェアプログラム
20 メモリ
22 記憶媒体
24 測位システム
27 ディスプレイ
28 ルート計算機能
29 スピーカ
30 地図表示機能
32 運転生成機能
34 他の機能(サブプログラム)
40 地理的データ
41 インタフェースレイヤ
48 ルート計算パーセル
50 地図作成パーセル
52 運転パーセル
53 参照パーセル
54 関心点パーセル
60 非空間的に編成されたデータ
61 サード・パーティデータ
62 ナビゲート可能特色
63 場所
64 郵便コード
65 交差道路/ジャンクション
66 地図作成上の特色
100 地理的エリア
101 ノード
102 最大・最小緯(経)度のノード
106 最小境界画定用矩形
107 最小囲みダイ・タイル
108 格子
110 初期タイル
900 地理的データセットコンパイラ

【特許請求の範囲】
【請求項1】
ナビゲーションシステム内のルート探索プログラムと共に使用して地理的領域内の目的地までのルートを見出すための改良された地理的データベースにおいて、上記地理的データベースは記憶媒体上に格納され、更に、上記地理的データベースは、上記地理的エリア内の道路の部分に対応するセグメントデータエンティティと、上記道路の交差を含む上記地理的エリア内の点に対応するノーダルデータエンティティとを含み、上記改良は、
上記地理的データベース内に含まれているスーパーノーダルデータエンティティを備え、上記各スーパーノーダルデータエンティティは上記ルート探索プログラムの複数のノーダルデータエンティティのための置換を表している
ことを特徴とする地理的データベース。
【請求項2】
地理的データを、ルート探索プログラムによって使用されるようにコンピュータ可読媒体内に格納するための改良された方法において、道路セグメントの部分の両端がノードによって表され、上記方法は、
上記地理的データ内の複雑な交差を識別するステップと、
複数の分離したノードを単一のノードとして表すステップと、
を備えていることを特徴とする方法。
【請求項3】
ナビゲーションシステムにおいてルート計算プログラムと共に使用する地理的領域のための改良された地理的データベースにおいて、上記改良された地理的データベースはコンピュータ可読物理的記憶媒体上に格納されており、上記コンピュータ可読物理的記憶媒体上に格納されている上記改良された地理的データベースは、
上記地理的領域内の複数の点を表す複数の規則的なノードデータエンティティと、
各々が複数の規則的なノードデータエンティティを表す複数のスーパーノードデータエンティティと、
各々が上記地理的領域内の道路の一部分を表す複数のセグメントデータエンティティと、
を備え、
上記各セグメントデータエンティティは、上記セグメントエンティティが表している道路の端に対応する少なくとも1つのノードデータエンティティに関連付けられ、
上記スーパーノードデータエンティティによって表される正規ノードデータエンティティに対応する端を有する上記セグメントデータエンティティは、上記ルート計算プログラムによって使用される目的のために上記スーパーノードデータエンティティに関連付けられている
ことを特徴とする改善された地理的データベース。
【請求項4】
上記複数の各セグメントデータエンティティは、各々が上記セグメントデータエンティティによって表される道路部分の部分の端に対応している2つのノードデータエンティティに関連付けられている請求項3に記載の改善された地理的データベース。
【請求項5】
上記複数の各スーパーノードデータエンティティは、上記スーパーノードデータエンティティによって表される上記正規ノードデータエンティティを識別する属性を含む請求項3に記載の改良された地理的データベース。
【請求項6】
上記複数のスーパーノードデータエンティティの少なくとも若干はセグメントデータエンティティを更に表し、セグメントデータエンティティをも表すこれらの各スーパーノードデータエンティティに関して、上記スーパーノードデータエンティティによって表される上記セグメントデータエンティティを識別する属性を含んでいる請求項3に記載の改良された地理的データベース。
【請求項7】
上記複数のスーパーノードデータエンティティの少なくとも若干は、ロータリーを表している請求項3に記載の改良された地理的データベース。
【請求項8】
上記複数のスーパーノードデータエンティティの少なくとも若干は、クローバー型インターチェンジを表している請求項3に記載の改良された地理的データベース。
【請求項9】
上記複数のスーパーノードデータエンティティの少なくとも若干は、中央分離帯付きハイウェイのインターチェンジを表している請求項3に記載の改良された地理的データベース。
【請求項10】
上記複数の各スーパーノードデータエンティティは、それに関連する費用を有している請求項3に記載の改善された地理的データベース。
【請求項11】
上記データベースは複数のレイヤからなり、低めのレイヤは高めのレイヤよりもディテールを表し、上記複数のスーパーノードは上記低めのレイヤ内に位置している請求項3に記載の改善された地理的データベース。
【請求項12】
ナビゲーションシステムにおいて使用するために、地理的データベースをコンピュータ可読記憶媒体上に編成するための方法において、道路の部分の交差はノードデータエンティティによって表され、上記方法は、
関係付けられたノードデータエンティティを識別するステップと、
上記関係付けられたノードデータエンティティを表すスーパーノードデータエンティティを指定するステップと、
ルート計算プログラムに使用するために、スーパーノードデータエンティティによって表される上記関係付けられるノードデータエンティティの代わりに、上記スーパーノードデータエンティティを供給するステップと、
を備えていることを特徴とする方法。
【請求項13】
上記供給ステップは、
あるスーパーノードデータエンティティによって表されるノードデータエンティティに対応する交差に端点を有する道路の部分を表すセグメントデータエンティティにおいて、上記スーパーノードデータエンティティによって表されるノードデータエンティティに対する参照の代わりに、上記スーパーノードデータエンティティに対する参照に置換する
ことを更に特徴とする請求項12に記載の方法。
【請求項14】
ナビゲーションシステム内のルート探索プログラムと共に使用して地理的領域内の目的地までのルートを見出すための改良された地理的データベースにおいて、上記地理的データベースは記憶媒体上に格納され、更に、上記地理的データベースは、上記地理的エリア内の道路の部分に対応するセグメントデータエンティティと、上記道路の交差を含む上記地理的エリア内の点に対応するノーダルデータエンティティとを含み、上記改良は、
上記地理的データベース内に含まれているスーパーノーダルデータエンティティを備え、上記各スーパーノーダルデータエンティティは上記ルート探索プログラムの複数のノーダルデータエンティティのための置換を表している
ことを特徴とする地理的データベース。
【請求項15】
ナビゲーションシステムと共に使用する地理的領域のための改良された地理的データベースにおいて、上記改善された地理的データベースはコンピュータ可読物理的記憶媒体上に格納され、上記改良されたデータベースは、
上記物理的記憶媒体上に格納され、上記地理的領域内の物理的特色を表す複数のデータエンティティと、
上記物理的記憶媒体上に格納されている正規化された属性アレイと、
を備え、上記正規化された属性アレイは複数のエントリを有し、上記各エントリはインデックス参照と、ある物理的特色を記述する複数の属性の特定の組合わせとを有し、
上記各データエンティティは、インデックス参照を含み、
それによって、第1のインデックス参照を有するデータエンティティによって表される特色を記述する属性が、上記第1のインデックス参照に対応する上記正規化された属性アレイ内のエントリに対する参照によって決定される
ことを特徴とする改良された地理的データベース。
【請求項16】
第1の複数のデータエンティティが上記第1のインデックス参照を有し、上記第1の複数の各データエンティティを記述する属性が上記第1のインデックス参照に対応する上記正規化された属性アレイ内のエントリに対する参照によって決定される請求項15に記載の改良された地理的データベース。
【請求項17】
ナビゲーションシステムと共に使用する地理的領域のための改良された地理的データベースにおいて、上記改良された地理的データベースはコンピュータ可読物理的記憶媒体上に格納されており、上記改良されたデータベースは、
上記物理的記憶媒体上に格納され、上記地理的領域内の物理的特色を表す複数のデータエンティティと、
上記物理的記憶媒体上に格納されているグローバル正規化された属性アレイと、
を備え、上記正規化された属性アレイは複数のエントリを有し、上記各エントリはインデックス参照と、ある物理的特色を記述する複数の属性の特定の組合わせとを有し、
上記物理的記憶媒体上に格納されている複数のローカル正規化された属性アレイを更に備え、
上記ローカル正規化された属性アレイは複数のエントリを有し、上記各エントリはインデックス参照と、ある物理的特色を記述する複数の属性の特定の組合わせとを有し、
上記各データエンティティは、インデックス参照を含み、
それによって、第1のインデックス参照を有するデータエンティティによって表される特色を記述する属性が、上記グローバル正規化された属性アレイまたは上記複数のローカル正規化された属性アレイの一方内の上記第1のインデックス参照に対応するエントリに対する参照によって決定される
ことを特徴とする改良された地理的データベース。
【請求項18】
上記地理的データベースは上記記憶媒体上でパーセル化されており、更に、上記ローカル正規化された各属性アレイはあるパーセルに関連付けられ、上記ローカル正規化された各属性アレイは、それに関連付けられた上記パーセル内に格納されているデータベースエントリによって表される物理的特色を記述する複数の属性の特定の組合わせを含んでいる請求項17に記載の改良された地理的データベース。
【請求項19】
物理的媒体上に格納するためにデータを編成するための方法において、
各々がその中にデータを有している複数のデータファイルを形成するステップと、
上記各データファイルを複数のパーセルにパーセル化するステップと、
上記データの上記パーセル化を保持しながら上記複数のデータファイルを連結するステップと、
上記複数の各パーセルにパーセル識別を割当てるステップと、
上記連結を記憶媒体上に格納するステップと、
を備えていることを特徴とする方法。
【請求項20】
上記複数のデータファイルを形成するステップは、
ルート計算のためのデータファイルを形成するステップ
を更に備えている請求項19に記載の方法。
【請求項21】
上記記憶媒体は、CD−ROMである請求項19に記載の方法。
【請求項22】
上記記憶媒体は、PCMCIAカードである請求項19に記載の方法。
【請求項23】
上記連結は、単一データファイルである請求項19に記載の方法。
【請求項24】
上記パーセル識別は、上記連結の開始からのオフセットを含む請求項19に記載の方法。
【請求項25】
上記パーセル識別は、上記連結の開始からのオフセットと、それによって識別されるパーセルのサイズの指示とを含む請求項19に記載の方法。
【請求項26】
上記データは、上記データの個々のレコード間の相互参照を含み、上記方法は、
上記パーセル識別を上記複数の各パーセルに割当てるステップの後に、上記パーセル識別を含むように上記相互参照を更新するステップ
を更に備えている請求項19に記載の方法。
【請求項27】
コンピュータ可読データのための物理的記憶媒体において、上記媒体は複数の類似サイズの物理的境界を含み、
各々が複数のデータエンティティを含む複数のパーセルと、
上記複数のパーセルの個々のパーセルに付加して上記パーセルを上記類似サイズの物理的境界に順応させるパディングと、
を備え、上記複数のパーセルの各パーセルはパーセル識別を含み、上記パーセル識別は上記複数の類似サイズの物理的境界の開始からのオフセットに関係付けられている
ことを特徴とする物理的記憶媒体。
【請求項28】
上記複数のデータエンティティは相互参照データを含み、上記相互参照データはパーセル識別に対する参照を含む請求項27に記載の発明。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図4D】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図5D】
image rotate

【図5E】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate

【図6D】
image rotate

【図6E】
image rotate

【図6F】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図8C】
image rotate

【図8D】
image rotate

【図8E】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図9C】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図11C】
image rotate


【公開番号】特開2007−10678(P2007−10678A)
【公開日】平成19年1月18日(2007.1.18)
【国際特許分類】
【出願番号】特願2006−224512(P2006−224512)
【出願日】平成18年8月21日(2006.8.21)
【分割の表示】特願平9−332262の分割
【原出願日】平成9年10月27日(1997.10.27)
【出願人】(597011544)ナヴィゲイション テクノロジーズ コーポレイション (8)
【Fターム(参考)】