-
VERWEIS AUF
VERWANDTE ANMELDUNGEN
-
Die
vorliegende Anmeldung ist verwandt mit der ebenfalls anhängigen Anmeldung
mit dem Titel "SEGMENT
AGGREGATION IN A GEOGRAPHIC DATABASE AND METHODS FOR USE THEREOF IN
A NAVIGATION APPLICATION",
welche am gleichen Tag eingereicht worden ist.
-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft ein System und ein Verfahren zur
Vereinfachung des Zugangs zu und der Verwendung von geografischen
Daten, welche mit einem Navigations-Applikationsprogramm verwendet
werden, welches einem Endbenutzer Navigationsmerkmale und -funktionen
bereitstellt, und im Speziellen betrifft die vorliegende Erfindung
eine geografische Datenbank, die geografische Daten unterschiedlicher
Typen enthält,
wobei jeder Typ von ihnen darauf zugeschnitten ist, eine oder mehrere
der Navigationsfunktionen zu unterstützen und mit einem anderen
der unterschiedlichen Typen zu funktionieren, wodurch gewisse Navigationsfunktionen
vereinfacht und die Leistungsfähigkeit
verbessert wird.
-
Es
sind Computer-gestützte
Navigations-Applikationsprogramme erhältlich, welche Endanwendern
(wie zum Beispiel Fahrern von Fahrzeugen, in denen Navigationssysteme
installiert sind) verschiedene Navigationsfunktionen und -merkmale
bereitstellen. Beispielsweise sind einige Navigations-Applikationsprogramme
in der Lage, eine optimale, auf Straßen zu befahrende Route bzw.
Strecke zwischen Orten zu bestimmen. Unter Verwendung von Input
eines Endanwenders und optional von einer Ausrüstung, die den physikalischen
Ort von jemandem bestimmen kann (wie beispielsweise ein GPS-System), kann
ein Navigations-Applikationsprogramm
verschiedene Routen zwischen zwei Orten untersuchen, um eine optimale
Route zu bestimmen, um in einer geografischen Region von einem Startort
zu einem Zielort zu fahren. Das Navigations-Applikationsprogramm
kann dann dem Endanwender Informationen über die optimale Route in Form
von Instruktionen bereitstellen, welche die erforderlichen Manöver identifizieren,
die von einem Endanwender ausgeführt
werden müssen,
um vom Startort zum Zielort zu fahren. Wenn ein Navigationssystem
in einem Kraftfahrzeug angeordnet ist, können die Instruktionen die Form
von Audioinstruktionen annehmen, welche entlang des Weges bereitgestellt
werden, während
der Endanwender die Route abfährt.
Einige Navigations-Applikationsprogramme sind in der Lage, detaillierte
Karten auf Computerdisplays anzuzeigen, welche Routen zu Zielen,
die an unterschiedlichen Orten entlang der Routen auszuführenden
Manöver,
Orte gewisser Typen von Merkmalen, usw., darstellen.
-
Um
diese und andere Navigationsfunktionen bereitzustellen, verwendet
das Navigations-Applikationsprogramm eine oder mehrere detaillierte
Datenbanken, welche Daten enthalten, die physikalische Merkmale
in einer geografischen Region repräsentieren. Die detaillierte
Datenbank kann Daten enthalten, welche die Straßen und Kreuzungen in einer
geografischen Region repräsentieren,
und kann auch Informationen über
die Straßen
und Kreuzungen in einer geografischen Region enthalten, wie beispielsweise Abbiegeeinschränkungen
an Kreuzungen, Geschwindigkeitsbegrenzungen entlang der Straßen, Straßennamen
der unterschiedlichen Straßen, Adressbereiche
entlang der unterschiedlichen Straßen, usw.
-
Eine
Schwierigkeit beim Bereitstellen von geografischen Daten für die Verwendung
durch ein Navigations-Applikationsprogramm betrifft die effiziente
Verwendung der verfügbaren
Computerressourcen des Navigationssystems, auf denen das Navigations-Applikationsprogramm
läuft.
Computer-gestützte
Navigations-Applikationsprogramme werden auf verschiedenen Plattformen
bereitgestellt, einschließlich
solcher mit relativ beschränkten
Computer-Hardware-Ressourcen. Beispielsweise können Navigationssysteme in
Fahrzeugen angeordnet sein oder ein Handheld sein. Diese Typen von
Navigationssystemen weisen typischerweise relativ begrenzte Computerressourcen
auf, wie beispielsweise begrenzter Speicher und relativ langsame
Eingabe/Ausgabe (I/O). Um einen hohen Level an Funktionalität in solchen
Systemen bereitzustellen, ist es erforderlich, dass die verfügbaren Computerressourcen
effizient verwendet werden.
-
Unter
der Voraussetzung der relativ umfangreichen Größe der geografischen Datenbank,
wobei die Größe notwendig
ist, um ein gewünschtes
Niveau von Navigationsfunktionalität dem Endanwender bereitzustellen,
wird in Kauf genommen, dass nicht alle Datensätze für ein gesamtes geografisches
Gebiet gleichzeitig in den Speicher des Navigationssystems geladen
werden können.
Dies trifft im Speziellen auf Navigationssystemplattformen zu, welche
beschränkte
Ressourcen aufweisen, wie in Fahrzeugen installierte Systeme oder
Handheld-Systeme. Aufgrund der begrenzten Speicherressourcen dieser Navigationssysteme
ist es notwendig, geografische Daten nach Bedarf von einem Speichermedium,
wie beispielsweise einer CD-ROM-Platte, in den Speicher des Navigationssystems
zu laden für
die Verwendung durch das Navigations-Applikationsprogramm. Unglücklicherweise
kann, wie oben erwähnt, in
diesen Systemtypen der I/O-Zugang von einem Speichermedium auch
relativ langsam sein. Die relativ beschränkten Speicherressourcen kombiniert
mit dem relativ langsamen I/O können
daher die Leistungsfähigkeit
einiger Typen von Navigationssystemen beschränken, was zu langsamer Reaktion
führt. Langsame
Reaktion in einem Navigationssystem kann neben dem, dass sie unerwünscht ist,
das System unter bestimmten Umständen
unbrauchbar für seinen
beabsichtigten Zweck machen. Wenn das Navigationssystem beispielsweise
in einem Fahrzeug installiert ist, kann der Fahrer Information vom
Navigationssystem über
eine gewünschte
Route in einem Bereich von Sekunden benötigen, um die Information beim
Fahren zu verwenden. Wenn das Navigationssystem mehr als einige
Sekunden benötigt,
um eine Route zu berechnen, kann der Fahrer über den Punkt hinausgefahren
sein, an dem die vom Navigationssystem bereitgestellte Streckenführungsinformation relevant
ist. Es ist daher wichtig, dass Navigationssysteme effizient arbeiten,
um Navigationsinformation relativ schnell bereitzustellen.
-
Navigations-Applikationsprogramme
können auch
auf Computerplattformen laufen gelassen werden, die im Allgemeinen
größere Speicherressourcen
und schnelleren I/O aufweisen, wie beispielsweise Personal Computer
oder Netzwerke. Obwohl diese Systeme mehr und schnellere Ressourcen
aufweisen, sind die Überlegungen
bezüglich
der effizienten Verwendung von geografischen Daten weiter gültig, jedoch
in einem umfangreicheren Ausmaß.
Mit diesen Systemtypen kann sogar größere Funktionalität bereitgestellt
werden, wenn die durch Speichergröße und I/O auferlegten Beschränkungen
minimiert werden.
-
Es
wurden Techniken ausgedacht oder implementiert, um durch Organisieren,
Strukturieren oder Anordnen der geografischen Datenbank oder der
Daten in der Datenbank auf spezielle Art und Weise die Navigationssystem-Leistungsfähigkeit
zu verbessern. Da ein Navigationssystem geografische Daten auf gewisse
bekannte und erwartete Weisen nutzt, um bekannte Funktionen auszuführen, können die
geografischen Daten in einer Weise organisiert, strukturiert oder
angeordnet werden, die deren Verwendung in diesen bekannten Weisen
durch die Navigationssysteme vereinfacht.
-
Eine
Technik, die in einer geografischen Datenbank implementiert sein
kann, um die Funktion des Navigationssystems zu verbessern, liegt
darin, getrennte Sammlungen oder Untermengen der geografischen Daten
bereitzustellen für
die Verwendung durch jede der getrennten Funktionen im Navigations-Applikationsprogramm.
Beispielsweise verwendet die Routenberechnungsfunktion normalerweise nur
einen Teil der gesamten Information in der geografischen Datenbank,
der einem Segment einer Straße
zugeordnet ist. Wenn die Routenberechnungsfunktion laufen gelassen
wird, kann sie Informationen benötigen,
wie beispielsweise die Geschwindigkeit entlang eines Straßensegments,
Abbiegeeinschränkungen
von einem Straßensegment zu
einem anderen, usw. Die Routenberechnungsfunktion benötigt allerdings
nicht notwendigerweise den Namen der Straße, um eine Route zu berechnen.
Wenn ähnlich
hierzu die Kartenanzeigefunktion verwendet wird, werden einige der
einem Straßensegment
zugeordneten Informationen, wie beispielsweise die Geschwindigkeitsbeschränkungen
oder Abbiegeeinschränkungen,
nicht benötigt.
Wenn die Kartenanzeigefunktion läuft,
verwendet sie dagegen nur einen Teil der Information, die dem Straßensegment
zugeordnet ist, wie beispielsweise die Formen und Orte und Straßen und
möglicherweise
die Namen der Straßen.
Wenn weiterhin die Streckenführungsfunktion
laufen gelassen wird, sind einige der einem Segment einer Straße zugeordneten
Informationen, wie beispielsweise die Geschwindigkeit und Abbiegeeinschränkungen,
nicht notwendig. Wenn die Streckenführungsfunktion läuft, verwendet
sie dagegen Informationen, welche den Namen der Straße enthält, die
durch den Straßensegmentdatensatz
repräsentiert
ist, den Adressbereich entlang des Straßensegments, alle Schilder
entlang dem Straßensegment,
usw. Obwohl es bezüglich
der durch die verschiedenen Navigationsfunktionen verwendeten Informationstypen
eine gewisse Überschneidung
geben kann, werden einige Daten, welche durch irgendeine dieser
Navigationsfunktionen verwendet werden, nicht durch andere der Funktionen
verwendet. Wenn alle Informationen, die zu jedem Straßensegment
gehören,
einem einzelnen Datensatz in einer einzelnen Datenbank zugeordnet
wären,
wäre jede
Datenentität
relativ umfangreich. Immer wenn also irgendeine der Navigationsfunktionen
auf einen Entitätsdatensatz
zugreift, müsste
sie eine bedeutende Menge von Information in den Speicher lesen,
wobei vieles davon durch die Navigationsfunktion nicht gebraucht
wird. Wenn die Datenentität
von einer Platte gelesen wird, könnten
ferner relativ wenige Datenentitäten
gleichzeitig gelesen werden, da jede Datenentität relativ umfangreich sein
würde.
-
Um
die Information in der geografischen Datenbank in einem effizienteren
Format zur Verwendung durch jede der Navigationsfunktionen bereitzustellen,
sind getrennte Untermengen der gesamten geografischen Datenbank
für eine
gegebene geografische Region vorgesehen für jeden der unterschiedlichen
Typen von Navigationsfunktionen, welche in dem Navigations-Applikationsprogramm
bereitzustellen sind. Jede dieser getrennten Untermengen ist spezifisch
für die
Verwendung durch eine der Funktionen zugeschnitten. Jede Untermenge
von Daten enthält
nur Daten, welche zur Verwendung durch eine spezielle Navigationsfunktion
benötigt
sind. Es gibt eine gewisse Überschneidung
von Daten zwischen jeder dieser Untermengen mit dem Ergebnis, dass
einige Teile der Information in mehr als einer Untermenge enthalten
sind. Beispielsweise können sowohl
die Straßensegment-Datenentität in der
Routendatenuntermenge als auch die Straßensegment-Datenentität in der
kartografischen Datenuntermenge Attribute enthalten, welche die
an den Enden der Segmente angeordneten Knoten identifizieren. Obwohl
diese Duplizierung zu einem insgesamt größeren Datenspeichererfordernis
führen
kann, profitiert jede der Navigationsfunktionen von der resultierenden
Effizienz der Behandlung von kleineren Datenmengen.
-
Das
Bereitstellen getrennter Untermengen von geografischen Daten für jede der
Navigationsfunktionen berücksichtigt
auch, dass die Verwendung jeder dieser Navigationsfunktionen mit
den anderen der Navigationsfunktionen in erwarteter Art und Weise
in Beziehung steht. Beispielsweise möchte ein Endanwender zuerst
eine aktuelle Position sehen, dann eine Destination bzw. einen Zielort
eingeben, dann Instruktionen erhalten, wie zum Zielort hin gestartet wird,
dann eine Karte beobachten, welche den anfänglichen Teil der Route zeigt,
dann weitere Instruktionen erhalten, dann eine Karte angezeigt bekommen,
auf der der nächste
Teil der Route angezeigt ist, usw. Aufgrund dieses Typs von erwarteter
Verwendung sorgt das Auftrennen der Daten in Untermengen für die effiziente
Verwendung der Daten bei Verwendung jeder getrennten Funktion.
-
Obwohl
die Aufteilung der geografischen Daten in Untermengen für effiziente
Verwendung der Daten durch jede der unterschiedlichen Navigationsfunktionen
sorgt, ist es notwendig, dafür
zu sorgen, dass die unterschiedlichen Navigationsfunktionen, welche
diese unterschiedlichen Untermengen der Datenbank nutzen, zusammenarbeiten.
Nachdem beispielsweise ein Endanwender eine berechnete Route erhält, kann
es gewünscht
sein, eine Karte auf einer Computeranzeige mit der hervorgehobenen
berechneten Route anzuzeigen. Um dies zu erfüllen, wird zuerst auf die Routenuntermenge
der geografischen Daten zugegriffen, um die Routenstraßensegment-Datenentitäten für die optimale
Route zu erhalten, und dann wird auf die kartografische Untermenge
der geografischen Datenbank zugegriffen, um die kartografischen
Straßensegment-Datenentitäten in Entsprechung
zu den Routendatenentitäten
zu erhalten. Um diesen Datenuntermengen das Zusammenarbeiten zu
erlauben, können
Indexdateien, Querverweisdateien, Suchbäume oder andere Techniken verwendet
werden. Obwohl diese Techniken es erlauben, diese unterschiedlichen
Typen von Daten zusammen zu verwenden, können Verzögerungen auftreten, welche
dem Umschalten zwischen diesen Typen zugeordnet sind. Entsprechend
gibt es weiterhin Raum für
Verbesserung bei der Bereitstellung einer geografischen Datenbank
zur Verwendung mit einer Navigationsapplikation.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Um
die oben genannten Bedenken anzusprechen, ist gemäß einem
ersten Aspekt der vorliegenden Erfindung eine geografische Datenbank
zur Verwendung mit einem Navigations-Applikationsprogramm vorgesehen,
das einem Endanwender Navigationsfunktionen bereitstellt. Die geografische
Datenbank umfasst mehrere Datensätze
von einem ersten Typ und mehrere Datensätze von einem zweiten Typ.
Die mehreren Datensätze
vom ersten Typ sind in mehreren Paketen angeordnet, wobei jedes
Paket mehrere Datensätze
vom ersten Typ enthält.
Die mehreren Datensätze
vom zweiten Typ sind in mehreren Paketen angeordnet, wobei jedes
Paket mehrere Datensätze
vom zweiten Typ enthält.
Die Pakete der Datensätze
vom ersten Typ sind mit den Paketen von Datensätzen vom zweiten Typ verschachtelt. Dieses
Verschachteln ermöglicht
Navigationsfunktionen, welche diese unterschiedlichen Typen verwenden,
um auf diese unterschiedlichen Typen schneller und effizienter zuzugreifen,
wodurch die Navigationssystem-Leistungsfähigkeit
verbessert wird.
-
Es
ist auch ein Verfahren zur Bildung einer geografischen Datenbank
offenbart, die mehrere Datensätze
enthält,
die geografische Merkmale repräsentieren,
und die in einem Navigationssystem verwendet werden kann. Das Verfahren
enthält
den Schritt des Verschachtelns von Paketen, welche mehrere Datensätze von
einem ersten Typ enthalten, mit Paketen, welche mehrere Datensätze von
einem zweiten Typ enthalten.
-
Die
Datentypen, welche verschachtelt werden können, können irgendeinen Typ aufweisen,
wie beispielsweise Routendaten, kartografische Daten, Manöverdaten,
Daten über
interessante Punkte, usw. Die Art der Verschachtelung kann ausgewählt werden,
um die Leistungsfähigkeit
gewisser Navigationsfunktionen zu fördern. Die Arten der Verschachtelung enthalten
einfach abwechselnde Anordnung, räumliche Anordnung und maßgeschneiderte
Anordnung sowie andere Arten.
-
KURZE BESCHREIBUNG
DER FIGUREN
-
1 ist
ein Blockdiagramm, welches ein Navigationssystem darstellt.
-
2 zeigt
eine Karte, welche eine durch die geografische Datenbank der 1 repräsentierte geografische
Region darstellt.
-
3 stellt
eine vergrößerte Ansicht
eines Teils der Karte der 2 dar.
-
4 ist
eine Darstellung eines einzelnen Straßensegments, das in der Karte
der 3 gezeigt ist.
-
5 ist
ein Diagramm, welches die unterschiedlichen Typen von Daten darstellt,
die in der geografischen Datenbank der 1 zur Verwendung mit
verschiedenen Navigations-Applikationssfunktionen
enthalten sind.
-
6 ist
ein Diagramm, welches getrennte Schichten von Daten in den in 5 gezeigten
Routendaten darstellt.
-
7 zeigt
eine Karte einer geografischen Region der 2, welche
die Anwendung eines Paketbildungsverfahrens auf räumlich organisierte
geografische Daten darstellt.
-
8 ist
ein Diagramm, welches die Anordnung von Datenpaketen in der geografischen
Datenbank der 1 gemäß dem in 7 dargestellten Paketbildungsverfahren
zeigt.
-
9 ist
ein Diagramm, welches die Anordnung von Segment- und Knotendatensätzen innerhalb
eines einzelnen Pakets der Datenbank der 8 zeigt.
-
10A bis 10D stellen
grafisch die geografischen Merkmale dar, welche durch aggregierte Segmentdatensätze repräsentiert
sind.
-
11 ist
ein Diagramm, welches die Implikation von aggregierten Segmentdatensätzen in
einem Paket von Routendaten in einer Schicht über Schicht 0 darstellt.
-
12 ist
ein Diagramm, das die Komponenten eines aggregierten Segmentdatensatzes
und seines zugehörigen,
abgekürzten
Datensatzarrays der 11 darstellt.
-
13 ist
ein Diagramm, welches die Komponenten des abgekürzten Segmentdatensatzes der 12 darstellt.
-
14 ist
ein Diagramm, das die Komponenten des abgekürzten Knotendatensatzes der 12 darstellt.
-
15 ist
ein Diagramm, das die Informationsarten darstellt, welche in einem
Segmentdatensatz enthalten sind, der in Schicht 0–3 der Routendaten
enthalten ist.
-
16 ist
ein Diagramm, welches die Implikation von aggregierten Segmentdatensätzen in
Paketen einer Schicht von Routendaten gemäß einer anderen Ausführungsform
darstellt.
-
17 ist
ein Diagramm, welches die Komponenten eines aggregierten Segmentdatensatzes und
eines zugehörigen
abgekürzten
Datensatzarrays der 16 darstellt.
-
18 ist
ein Diagramm, das eine Anordnung zum Verschachteln unterschiedlicher
Typen von Daten innerhalb einer Datenschicht repräsentiert.
-
19 ist
ein Diagramm, das eine andere Anordnung zum Verschachteln unterschiedlicher
Typen von Daten innerhalb einer Datenschicht repräsentiert.
-
20 ist
ein Diagramm, das noch eine andere Anordnung zum Verschachteln unterschiedlicher
Datentypen in einer Datenschicht repräsentiert.
-
21 ist
ein Diagramm, das die Schritte beim Bilden einer geografischen Datenbank
darstellt, die einen Teil mit unterschiedlichen Datentypen aufweist,
die miteinander verschachtelt sind, wie dies in 20 gezeigt
ist.
-
22 ist
ein Diagramm einer Karte, welche die Applikation eines Paketbildungsschritts
in 21 auf geografische Daten darstellt, die Merkmale
in der dargestellten Region repräsentieren.
-
23 ist
ein Diagramm eines kd-Baums, der dem in 22 dargestellten
Paketbildungsschritt entspricht.
-
DETAILLIERTE BESCHREIBUNG
DER DERZEIT BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
I. NAVIGATIONSSYSTEM – ÜBERBLICK
-
1 stellt
ein Blockdiagramm eines Navigationssystems 10 dar. Das
Navigationssystem 10 ist in einem Fahrzeug 11 installiert,
beispielsweise in einem Personenkraftwagen oder Nutzkraftwagen,
obwohl das Navigationssystem 10 in alternativen Ausführungsformen
außerhalb
eines Fahrzeugs angeordnet sein kann oder auf verschiedenen anderen Plattformen
oder Umgebungen implementiert sein kann, wie dies nachfolgend beschrieben
ist.
-
Unter
Bezugnahme auf die Ausführungsform der 1 ist
das Navigationssystem 10 eine Kombination von Hardware-
und Softwarekomponenten. In einer Ausführungsform enthält das Navigationssystem 10 einen
Prozessor 12, ein Laufwerk 14, das mit dem Prozessor 12 verbunden
ist, und eine Vorrichtung 16 mit nicht flüchtigem
Speicher zum Speichern eines Navigations-Applikationssoftwareprogramms 18 sowie
möglicherweise
anderer Informationen. Der Prozessor 12 kann von irgendeinem
Typ sein, der bei Navigationssystemen verwendet wird, wie beispielsweise
32-Bit-Prozessoren, welche einen Adressraum verwenden, wie beispielsweise
ein Hitachi SH1, ein Intel 80386, ein Intel 960, ein Motorola 68020
(oder andere Prozessoren, die ähnliche
oder größere Adressräume aufweisen).
Prozessortypen von einem anderen Typ sowie Prozessoren, die in der
Zukunft entwickelt werden können,
können
ebenfalls geeignet sein.
-
Das
Navigationssystem 10 kann auch ein Positionierungssystem 24 enthalten.
Das Positionierungssystem 24 kann GPS-artige Technologie,
ein koppelnavigationsartiges System oder Kombinationen von diesen,
oder andere Systeme verwenden, die alle im Fachgebiet bekannt sind.
Das Positionierungssystem 24 kann geeignete Sensorvorrichtungen 25 enthalten,
welche die Fahrdistanz, Geschwindigkeit, Richtung usw. des Fahrzeugs
messen. Das Positionierungssystem 24 kann ebenfalls geeignete Technologie
enthalten, um ein GPS-Signal in einer im Fachgebiet bekannten Art
und Weise zu erhalten. Das Positionierungssystem 24 gibt
ein Signal 26 zum Prozessor 12 aus. Das Signal 26 kann
durch die Navigations-Applikationssoftware 18 verwendet
werden, die auf dem Prozessor 12 läuft, um den Ort, die Richtung,
die Geschwindigkeit usw. des Navigationssystems 10 zu bestimmen.
-
Das
Navigationssystem 10 enthält auch eine Benutzerschnittstelle 31.
Die Benutzerschnittstelle 31 enthält geeignete Ausrüstung, die
es dem Endanwender erlaubt, Information in das Navigationssystem
einzugeben. Diese Eingabeinformation kann eine Anfrage zur Verwendung
der Navigationssfunktionen des Navigationssystems enthalten. Beispielsweise
kann die Eingabeinformation eine Anfrage für eine Route zu einer gewünschten
Destination bzw. zu einem gewünschten
Zielort enthalten. Die Eingabeinformation kann auch andere Arten
von Information enthalten. Die verwendete Ausrüstung zur Eingabe von Information
in das Navigationssystem kann ein Tastenblock, eine Tastatur, ein
Mikrofon etc. sowie geeignete Software, wie beispielsweise ein Spracherkennungsprogramm,
enthalten. Die Benutzerschnittstelle 31 enthält auch
eine geeignete Ausrüstung,
die Informationen zurück
zum Endanwender bereitstellt. Diese Ausrüstung kann eine Anzeige 27, Lautsprecher 29 oder
andere Mittel enthalten.
-
Das
Navigationssystem 10 verwendet eine Kartendatenbank 40,
die auf einem Speichermedium 32 gespeichert ist. Das Speichermedium 32 ist
im Laufwerk 14 installiert, so dass die Kartendatenbank 40 vom
Navigationssystem gelesen und verwendet werden kann. Das Speichermedium 32 kann
entfernbar und ersetzbar sein, so dass ein Speichermedium mit einer
geeigneten Kartendatenbank für
die geografische Region, in der das Fahrzeug fährt, verwendet werden kann.
Zusätzlich
kann das Speichermedium 32 ersetzbar sein, so dass die
Kartendatenbank 40 auf ihm einfach aktualisiert werden
kann. In einer Ausführungsform
können
die geografischen Daten von Navigation Technologies aus Sunnyvale,
Kalifornien, herausgegeben sein.
-
In
einer Ausführungsform
ist das Speichermedium 32 eine CD-ROM-Platte. In einer
alternativen Ausführungsform
kann das Speichermedium 32 eine PCMCIA-Karte sein, wobei
in diesem Falle das Laufwerk 14 durch einen PCMCIA-Slot
ersetzt würde.
Verschiedene andere Speichermedien können verwendet werden, einschließlich Festplatten,
DVDs (Digital Video Disks) oder andere derzeit verfügbare Speichermedien
sowie Speichermedien, die in Zukunft entwickelt werden können. Das
Speichermedium 32 und die geografische Datenbank 40 müssen physikalisch
nicht am Ort des Navigationssystems bereitgestellt sein. In alternativen
Ausführungsformen
kann das Speichermedium 32, auf dem einige oder alle geografischen
Daten 40 gespeichert sind, entfernt vom Rest des Navigationssystems
angeordnet sein und Teile der geografischen Daten können über eine
Kommunikationsverbindung bei Bedarf bereitgestellt werden.
-
Das
Navigations-Applikationssoftwareprogramm 18 wird vom nicht
flüchtigen
Speicher 16 in einen RAM-Speicher 20 geladen,
der dem Prozessor 12 zugeordnet ist, um das Navigationssystem
zu betreiben. Das Navigationssystem 10 verwendet die Kartendatenbank 40,
welche auf dem Speichermedium 32 gespeichert ist, möglicherweise
in Verbindung mit der Ausgabe 26 des Positionierungssystems 24, um
verschiedene Navigationsmerkmale und -funktionen bereitzustellen.
Das Navigations-Applikationssoftwareprogramm 18 kann
getrennte Applikationen (oder Unterprogramme) enthalten, welche
diese verschiedenen Navigationsmerkmale und -funktionen bereitstellen.
Diese Funktionen und Merkmale können
Routenberechnung, Kartenanzeige, Fahrzeugpositionierung (z.B. Karten-Matching),
Streckenführung
(wobei detaillierte Richtungen zum Erreichen eines gewünschten
Zielorts bereitgestellt werden), Zielortauflösungsfähigkeiten und andere Funktionen enthalten.
-
II. GEOGRAFISCHE KARTENDATENBANK
-
a) Übersicht
-
In
einer vorliegenden Ausführungsform
können
die Geschwindigkeit und/oder Funktionalität eines Navigationssystems
verbessert werden durch eine Kombination, welche Verbesserungen
beim Speichern, Anordnen und/oder Strukturieren der geografischen
Daten enthält,
die durch das System verwendet werden, um die Verwendung der Daten
durch einige der Funktionen des Navigations-Applikationsprogramms
in diese Daten verwendenen Systemen zu erleichtern. Basierend auf
der Art und Weise, in der die geografischen Daten gespeichert, angeordnet
und/oder strukturiert sind, können
Funktionen im Navigations-Applikationsprogramm, die auf die Daten
zugreifen und sie verwenden, Routinen implementieren, die die in
den geografischen Daten enthaltenen Verbesserungen nutzen. Diese
Kombination kann zu einer insgesamt verbesserten Leistungsfähigkeit
durch das Navigationssystem führen.
-
Die
Kartendatenbank 40 enthält
Informationen über
das Straßennetzwerk
in der geografischen Region. In einer Ausführungsform enthält die Kartendatenbank 40 Knotendaten
und Segmentdaten. Knotendaten repräsentieren physikalische Orte
in der geografischen Region (wie beispielsweise Straßenkreuzungen
und andere Positionen), und Segmentdaten repräsentieren Abschnitte von Straßen zwischen
den physikalischen Orten, welche durch die Knoten repräsentiert
sind. Jedes Straßensegment
in der geografischen Region ist durch eine Straßensegmentdatenentität (d.h.
einen Datensatz) in der Kartendatenbank 40 repräsentiert.
Jeder Straßensegmentdatensatz
in der Kartendatenbank weist zwei Knoten auf, welche die Koordinatenpositionen
an jedem Ende des Straßensegments
repräsentieren,
das durch den Straßensegmentdatensatz
repräsentiert ist.
Die Information, welche in den Knoten- und Segmentdatenentitäten enthalten
ist, wird unter Bezugnahme auf die 2 und 3 erklärt. (Die
Begriffe "Knoten" und "Segmente" repräsentieren
nur eine Terminologie zur Beschreibung dieser physikalischen geografischen
Merkmale, und für
eine andere Terminologie dieser Merkmale ist es beabsichtigt, dass
sie innerhalb des Bereichs dieser Konzepte eingeschlossen ist.)
-
2 zeigt
eine Karte 110, die eine geografische Region 112 zeigt.
Mehrere Orte 114 sind gezeigt, die in der geografischen
Region 112 liegen. Jeder der Orte 114 repräsentiert
eine Stelle oder einen Punkt in dem geografischen Gebiet 112,
an dem ein Merkmal angeordnet ist, von dem es gewünscht ist, dass
Information in einer geografischen Datenbank enthalten ist. Jeder
dieser Orte 114 weist einen einzigen physikalischen Ort
(geografische Breite, geografische Länge und optional absolute oder
relative Höhe)
auf und jeder dieser Orte 114 kann eindeutig identifiziert
werden durch seine zweidimensionalen (oder dreidimensionalen) geografischen
Koordinaten (d.h. Breite, Länge
und optional Höhe).
Ein Ort 114 kann einer Kreuzung entsprechen, an der zwei
oder mehr Straßen
sich treffen, einem Punkt entlang einem Straßensegment, an dem sich die
Richtung der Straße ändert, einem
Punkt entlang dem Straßensegment,
an dem sich die Geschwindigkeitsbeschränkung ändert, einem Punkt, an dem
eine Straße eine
Sackgasse erreicht, usw. Der Ort 114 kann der Position
eines interessanten Punktes entsprechen, wie beispielsweise einem
Hotel oder einem Verwaltungszentrum, einer Grenze eines natürlichen
Merkmals, beispielsweise einem See, oder einer Position entlang
eines Eisenbahngleises oder einer Fähre. Die Orte 114 können irgendetwas
entsprechen, das physikalisch im geografischen Gebiet 112 angeordnet
ist.
-
3 zeigt
eine vergrößerte Ansicht
eines Teils 116 der Karte 110. Der Teil 116 in 3 stellt
einen Teil des Straßennetzwerks 120 in
der geografischen Region 112 dar. Das Straßennetzwerk 120 enthält unter
anderem Straßen
und Kreuzungen, welche in der geografischen Region 112 liegen.
Wie im in 3 gezeigten Teil 116 der
Karte 110 dargestellt, ist jede Straße in der geografischen Region 112 aus einem
oder mehreren Segmenten 122(1), 122(2) ... 122(n) zusammengesetzt.
In einer Ausführungsform repräsentiert
ein Straßensegment
einen Abschnitt der Straße.
In 3 ist gezeigt, dass jedes Straßensegment 122 zwei
ihm zugeordnete Knoten 123 aufweist: ein Knoten repräsentiert
den Punkt an einem Ende des Straßensegments und der andere
Knoten repräsentiert
den Punkt am anderen Ende des Straßensegments. Ein einzelnes
Straßensegment 122 und
seine zwei zugeordneten Knoten 123(a) und 123(b) sind
in 4 dargestellt. Der Knoten an beiden Enden eines
Straßensegments
kann einem Ort entsprechen, an dem die Straße eine andere Straße trifft,
beispielsweise eine Kreuzung, oder wo die Straße eine Sackgasse ist. (Eine
Kreuzung muss nicht notwendigerweise ein Platz sein, an dem Einbiegen von
einer Straße
auf eine andere erlaubt ist, sondern repräsentiert einen Ort, an dem
eine Straße
und eine andere Straße
die gleiche geografische Breite und geografische Länge aufweisen.)
-
Wenn
ferner das Straßensegment 122 nicht gerade
ist (z.B. biegt es sich, biegt ab, usw.), kann das Straßensegment 122 einen
oder mehrere Formpunkte 124 zwischen seinen Endpunkten 123 enthalten.
Formpunkte 124 stellen geografische Positionen (d.h. geografische
Breiten, geografische Längen,
und optional Höhen)
entlang der Länge
eines Straßensegments
bereit, um die wahre physikalische Lage des Straßensegments entlang seiner
Länge genau zu
repräsentieren.
Formpunkte 124 werden verwendet, um eine Fahrzeugpositionierung,
Kartenanzeige, usw. zu unterstützen.
-
Bei
einem Typ von geografischer Datenbank gibt es wenigstens einen Datenbankeintrag
(auch als "Entität" oder "Datensatz" bezeichnet) für jedes
in der geografischen Region repräsentierte
Straßensegment.
Dieser Straßensegmentdatensatz
kann zugeordnete Informationen aufweisen (wie beispielsweise "Attribute", "Felder", usw.), welche die
Identifikation der Knoten erlaubt, welche den Straßensegment- und/oder
den geografischen Positionen (zum Beispiel der Längen- und Breitenkoordinaten)
der zwei Knoten zugeordnet sind. Ferner kann der Straßensegmentdatensatz
zugeordnete Informationen aufweisen (z.B. mehr "Attribute", "Felder", usw.), welche die
Fahrgeschwindigkeit auf dem Straßenabschnitt spezifizieren,
der durch den Straßensegmentdatensatz
repräsentiert
ist, die Fahrtrichtung, welche auf dem Straßenabschnitt erlaubt ist, der
durch den Straßensegmentdatensatz
repräsentiert
ist, wenn vorhanden, welche Abbiegeeinschränkungen an jedem der Knoten
vorhanden sind, welcher Kreuzungen an den Enden des Straßenabschnitts
entsprechen, der durch den Straßensegmentdatensatz
repräsentiert ist,
der Straßenadressbereich
des Straßenabschnitts,
der durch den Straßensegmentdatensatz repräsentiert
ist, den Namen der Straße,
usw. Jede Segmentdatenentität,
welche ein nicht gerades Straßensegment
repräsentiert,
kann eines oder mehrere Formpunktdatenattribute aufweisen, die die
nicht gerade Form des Straßensegments
definieren. Die verschiedenen Attribute, welche einem Straßensegment zugeordnet
sind, können
in einem einzelnen Straßensegmentdatensatz
oder vorzugsweise in mehr als einem Typ von Straßensegmentdatensätzen enthalten
sein, welche untereinander mit Querverweisen versehen sind.
-
In
einer geografischen Datenbank, welche die Region 112 repräsentiert,
kann also ein Datenbankeintrag (Entität oder Datensatz) für jeden
Knoten in der geografischen Region vorhanden sein. Der Knotendatensatz
kann zugehörige
Information aufweisen (beispielsweise "Attribute", "Felder", etc.), welche die
Identifikation des/der Straßensegmente(s)
erlaubt, welche(s) mit ihm und/oder einer geografischen Position
(z.B. seine Breiten- und Längenkoordinaten)
verbunden ist/sind.
-
b) Getrennte Untermengen
von geografischen Daten
-
Wie
oben erwähnt,
liegt ein Weg, dass der Zugriff auf geografische Daten zum Durchführen verschiedener
Navigationsfunktionen verbessert werden kann, darin, getrennte Sammlungen
oder Untermengen von geografischen Daten bereitzustellen für die Verwendung
durch jede der getrennten Funktionen im Navigations-Applikationsprogramm. 5 zeigt
die geografische Datenbank 40, welche getrennte Streckenführungsdaten 136,
kartografische Daten 137 (für Kartenanzeige), Manöverdaten 138 (für Streckenführung) und
Daten über
interessante Punkte 139 umfasst. Eine geografische Datenbank kann
mit weniger oder mehr Untermengen als diese festgelegt sein und
andere Typen von Daten können definiert
und enthalten sein. Um es diesen Datenuntermengen zu erlauben, miteinander
zu arbeiten, sind Indexdateien 140 enthalten, welche Querverweise,
Suchbäume
oder andere Datenauffindungstechniken bereitstellen.
-
c) Schichtenbildung von
geografischen Daten
-
Eine
andere Art, die geografischen Daten organisieren zu können, um
deren Verwendung zu verbessern, liegt in der Bereitstellung der
Daten in Schichten. Einige der Navigationsfunktionen, wie beispielsweise
die Kartenanzeigefunktion und die Routenberechnungsfunktionen, können Daten
auf unterschiedlichen Detailebenen verwenden. Wenn beispielsweise
die Kartenanzeigefunktion verwendet wird, ist es manchmal erwünscht, Schwenken
und Zooming bereitzustellen. Zooming kann effizienter durchgeführt werden,
wenn die Daten in Schichten organisiert sind, mit größerem Detail
in den tieferen Schichten und weniger Detail in den höheren Schichten.
Wenn die Routenberechnungsfunktion verwendet wird, ist es ebenfalls
vorteilhaft, die Daten auf verschiedenen Detailebenen zu verwenden.
Wenn beispielsweise eine Route zwischen zwei Orten berechnet wird,
wäre es
ineffizient, alle möglichen
Straßensegmente
zu überprüfen, welche
von jeder Kreuzung entlang der Route abzweigen, einschließlich Nebenstraßen und
Gassen. Wenn stattdessen eine Route "auf' einer
Hauptstraße
oder Schnellstraße
ist, ist es im Allgemeinen bevorzugt auf Hauptstraßen oder Schnellstraßen zu bleiben,
bis es notwendig ist, auf Nebenstraßen zu fahren, wenn der Zielort
angenähert
wird. Wenn die Streckenführungsdaten
in Schichten angeordnet sind, können
höhere
Schichten, welche Nebenstraßen
unterdrücken,
wenn möglich
verwendet werden, um die beim Berechnen der Route zu untersuchenden
möglichen
Straßensegmente
zu minimieren. Daher sind die geografischen Daten innerhalb einiger
der Untermengen von Datentypen in getrennten Sammlungen oder Gruppen
angeordnet, welche getrennten Schichten entsprechen.
-
Um
Schichtbildung zu implementieren, identifiziert jeder Straßensegmentdatensatz
in der Kartendatenbank 40 auch den Rang des entsprechenden
Abschnitts der Straße,
den er repräsentiert.
Ein Rang eines Straßensegments
kann seiner funktionalen Klasse entsprechen. Straßensegmente
mit einem Rang von "4" können Straßen mit
kontrolliertem Zugang und hohem Aufkommen enthalten, wie beispielsweise
Schnellstraßen
und Autobahnen. Straßensegmente
mit einem Rang von "3" können Straßen mit
hohem Aufkommen mit wenig Geschwindigkeitsänderungen sein, sind aber nicht
notwendigerweise Straßen
mit kontrolliertem Zugang. Die Straßen mit tieferem Rang wickeln
entsprechend weniger Aufkommen ab und weisen im Allgemeinen mehr
Geschwindigkeitsänderungen
oder langsamere Geschwindigkeiten auf. Straßensegmente mit einem Rang
von "0" können die
geringsten Aufkommen abwickeln. Diese können beispielsweise Seitenstraßen, Gassen
usw. enthalten.
-
Der
Rang einer Straßensegmentdatenentität spezifiziert
auch die höchste
Datenschicht, in der eine Straßensegmententität enthalten
ist. Unter Bezugnahme auf 6 können die
Streckenführungstypendaten 136 fünf getrennte
Schichten der Daten R0, R1, R2, R3 und R4 enthalten, wobei jede Schicht
eine getrennte Sammlung von Streckenführungsdaten mit einer unterschiedlichen
Detailebene umfasst, welche durch die Routenberechnungsfunktion
verwendet werden kann. In den Streckenführungsdatentypen der geografischen
Datenbank enthält
die Schicht 0 ("R0") die Straßensegmentdatenentitäten (und
einige oder alle ihrer entsprechenden Streckenführungsdatenattribute), welche
einen Rang von "0" oder höher aufweisen.
Schicht 0 enthält
also Straßensegmentdatenentitäten entsprechend
allen Abschnitten von allen Straßen in der geografischen Region.
Schicht 1 der Streckenführungsdaten 137 umfasst
eine getrennte Untermenge (oder Sammlung) von Streckenführungsdaten
und enthält
nur die Streckenführungssegmentdatenentitäten (und
einige oder alle ihrer entsprechenden Streckenführungsdatenattribute), welche
einen Rang von "1" oder höher aufweisen.
Schicht 2 der Streckenführungsdaten
umfasst eine getrennte Untermenge der Streckenführungsdaten und enthält nur die
Streckenführungssegmentdatenentitäten (und
einige oder alle ihrer entsprechenden Navigationsdatenattribute),
welche einen Rang der Schicht 2 oder höher aufweisen, usw. Eine höchste bzw.
oberste Schicht (Schicht n) enthält nur
Datensätze,
welche einen Rang n aufweisen. In einer vorliegenden Ausführungsform
ist n gleich 4, auch wenn in anderen Ausführungsformen n jede Zahl größer als
0 sein kann. Jede höhere
Schicht enthält
weniger Datensätze,
wobei diese Datensätze
allerdings Straßen
repräsentieren,
auf denen das Fahren im Allgemeinen schneller ist.
-
In ähnlicher
Weise können
andere Datentypen, wie beispielsweise der kartografische Untermengentyp 137,
getrennte Sammlungen von Daten enthalten, von denen jede eine unterschiedliche
Detailebene aufweist, welche durch die Kartenanzeigefunktion verwendet
werden kann. Durch Verwenden dieser unterschiedlichen Schichten
von kartografischen Daten kann die Kartenanzeigefunktion schnelles
Schwenken und Zooming bereitstellen.
-
Obwohl
die Organisation von einigen der Daten in Schichten zu einiger Verdopplung
bzw. Vervielfältigung
der Daten führt,
gleicht die durch Schichtbildung bereitgestellte erhöhte Effizienz
im Allgemeinen alle Nachteile aus. Wie bei der Verwendung von unterschiedlichen
Typen von Daten oben erwähnt,
besteht der Bedarf, es diesen Schichten zu erlauben, zusammenzuarbeiten.
Die Indexdateien 140, welche Querverweise, Suchbäume oder
andere Auffindungstechniken enthalten, können zu diesem Zweck bereitgestellt
sein.
-
d) Räumlicher Zugriff auf geografische
Daten
-
Das
Organisieren der Daten in Untermengen oder Typen und das Schichtenbilden
der Daten von einigen der Typen stellen getrennte Sammlungen der Daten
in Größen bereit,
welche besser handhabbar durch jede der Navigationsfunktionen sind.
Unter Bezugnahme auf einige Untermengentypen und Schichten von diesen
Typen können
die Daten ferner organisiert werden, um räumlichen Zugriff zu vereinfachen.
-
Für einige
der in einem Navigationssystem bereitgestellten Navigationsfunktionen
kann räumlicher
Zugriff auf die geografischen Daten erforderlich sein. Eine Art,
wo dies auftritt, ist, dass eine Funktion in einem Navigations-Applikationsprogramm
das Auffinden eines Datenentitätsdatensatzes
in einer geografischen Datenbank fordert, wobei der physikalische
Ort, der durch die Datenentitäten
der geografischen Region repräsentiert
ist, gegeben ist. Die Datenentität
kann ein Straßensegmentdatensatz
sein, der einen Abschnitt einer Straße in der geografischen Region
repräsentiert,
und die Funktion kann das Auffinden des Straßensegmentdatensatzes fordern,
basierend auf dem physikalischen Ort in der geografischen Region
des Abschnitts der Straße,
welche durch den Straßensegmentdatensatz
repräsentiert ist.
Eine andere Art räumlichen
Zugriffs tritt auf, wenn eine Funktion in einem Navigations-Applikationsprogramm
das Auffinden einiger oder aller Datensätze des Typs fordert, welche
nahe einem Ort in der geografischen Region liegen oder innerhalb
eines definierten Gebiets in der geografischen Region. Eine Funktion
kann beispielsweise alle Straßensegmentdatensätze fordern,
welche Straßensegmente
repräsentieren,
die innerhalb eines Rechtecks umfasst sind, welches durch geografische
Koordinaten (x, x + n) geografische Breite und (y, y + m) geografische Länge definiert
ist.
-
Unter
der Annahme, dass alle die Datensätze für eine gegebene ganze geografische
Region nicht gleichzeitig in den Speicher geladen werden können aufgrund
beschränkter
Speicherresourcen des Navigationssystems, in dem das Navigations-Applikationsprogramm
läuft,
wäre es
wünschenswert,
nur diejenigen Daten in den Speicher zu laden, welche benötigt werden.
Da einige der Navigationsfunktionen räumlichen Datenzugriff erfordern, wäre es vorteilhaft,
Mittel bereitzustellen, um Daten in den Speicher zu laden, basierend
im Allgemeinen auf den physikalischen geografischen Orten der Merkmale,
welche die Daten repräsentieren
oder basierend auf der geografischen Nähe der Merkmale, welche die
Daten repräsentieren.
Dies kann bereitgestellt sein durch Organisieren der Daten derart,
dass sie in der Datenbank und/oder auf dem Medium basierend auf
den geografischen Orten oder den Merkmalen, welche durch die Daten
repräsentiert
sind, angeordnet sind. Verschiedene Techniken können verwendet werden, um räumlichen
Zugriff bereitzustellen. Eine Art von Technik, nämlich Bilden von Paketen, ist
nachfolgend beschrieben.
-
e) Bilden von Paketen
-
Bilden
von Paketen gehört
zu den Techniken, die verwendet werden können, um die Verwendung geografischer
Daten durch Navigationssysteme zu vereinfachen. Unter der Annahme,
dass alle Datensätze
für eine
gegebene gesamte geografische Region nicht gleichzeitig in den Speicher
des Navigationssystems geladen werden können aufgrund beschränkter Speicherressourcen
des Navigationssystems, in dem das Navigations-Applikationsprogramm läuft, wäre es wünschenswert,
nur diejenigen Daten in den Speicher zu laden, welche benötigt werden, um
eine gewünschte
Funktion auszuführen.
Um dies zu erreichen, sind Daten in der geografischen Datenbank 40 in
einer Art organisiert, welche die Anzahl von Malen minimiert, mit
der auf das Medium zugegriffen und gelesen werden muss, um eine
Navigationsfunktion auszuführen.
Um dies bereitzustellen, sind die Daten in Paketen organisiert.
Wenn Daten als Paketen gebildet sind, sind die Mehrzahl von Datensätzen, welche
zusammen die geografischen Daten umfassen, zusammen in getrennten
Gruppen oder Paketen gruppiert. Ein Paket von Daten wird gebildet,
damit es Daten enthält,
auf die immer zusammen zugegriffen wird. Dies kann einen Bezug haben auf
die Menge von Daten, auf die in einem einzelnen Datenzugriff zugegriffen
werden kann, obwohl dies einen Bezug zu anderen Faktoren haben kann.
Für einige
Typen von Medien, wie beispielsweise eine CD-ROM-Platte, kann ein Paket gebildet
sein als eine Datenmenge von 16 Kilobyte. (Andere Größen von
Daten können
verwendet werden, einschließlich 1
K, 2 K, 4 K, 8 K, 32 K usw. Die Teile der geografischen Datenbank
sind im Allgemeinen in Größen von 2n Kilobyte gebildet, wobei n ein ganzzahliger
Wert größer als
1 ist.)
-
Bildung
von Paketen kann verwendet werden in Verbindung mit räumlichem
Zugriff, um die Verwendung von Daten zu vereinfachen, damit die Leistungsfähigkeit
des Navigationssystems verbessert wird. Wenn geografische Daten
räumlich
organisiert sind, sind Merkmale, welche physikalisch in der geografischen
Region nahe beieinander sind, durch Datensätze repräsentiert, welche physikalisch
(oder logisch) nahe beieinander in der Datenbank sind. Geografische
Daten können
sowohl als Pakete gebildet als auch räumlich organisiert sein, um
die Vorteile beider dieser Techniken zu nutzen.
-
Zum
Zwecke der Paketbildung der Daten können die Daten zuerst getrennt
in unterschiedliche Typen organisiert sein, wie beispielsweise Streckenführung 136,
kartografische Daten 137, Manöver 138, interessante
Punkte 139 usw. Einige dieser Arten von Daten können räumlich als
Pakete gebildet werden, um die Verwendung der Daten durch die Navigationsfunktionen
zu vereinfachen, und andere dieser Arten von Daten können nicht
räumlich
als Pakete gebildet sein. Räumlich
als Pakete gebildete Daten sind derart angeordnet, dass Daten, welche
geografisch benachbarte Merkmale repräsentieren, logisch und/oder
physikalisch benachbart in der Datenbank 40 und/oder auf
dem Medium 32 angeordnet sind bzw. liegen. Für einige
der Navigations-Applikationssfunktionen stellt räumliche Paketbildung ihrer
jeweiligen Daten schnelleres Lesen eng beieinander liegender geografischer
Daten vom Medium bereit und Laden von benachbarten geografischen
Daten in den Speicher, wo sie verwendet werden können. Diese Art der Organisation
minimiert das Zugreifen auf das Speichermedium 32 und kann
den Betrieb dieser Navigationsfunktionen beschleunigen. Die Streckenführungsdaten 136 (in 5)
gehören
zu den Arten von Daten, die räumlich
organisiert sein können.
-
Es
gibt eine Anzahl verschiedener Prozeduren, die verwendet werden
können
zum Bilden von Paketen räumlich
organisierter geografischer Daten. Beispielsweise kann ein einfaches
Verfahren zur Bildung von Paketen das Trennen der geografischen Daten
in mehrere Pakete oder Gruppierungen bereitstellen, wobei die Daten
in jedem Paket Merkmale repräsentieren,
die innerhalb eines getrennten von mehreren Rechtecken regelmäßiger Größe umfasst sind,
die zusammen ein regelmäßiges, rechteckiges Gitter über die
geografische Region bilden. Ein anderes Verfahren zur Bildung von
Paketen liegt darin, die Daten in Pakete zu trennen, die innerhalb
rechteckiger Gebiete umfasst sind, wobei jedes der Rechtecke durch
eine Halbierung von Rechtecken gebildet ist, welche Teile der Region
umfassen, bis eine Paketgröße unterhalb
eines maximalen Schwellwerts erreicht ist. Ferner sind Prozeduren
des Bildens von Paketen in der anhängigen Anmeldung Nr. 08/740,295,
eingereicht am 25. Oktober 1996, offenbart, und Prozeduren der Bildung
von Paketen sind auch in der anhängigen
Patentanmeldung Nr. 08/935,809 beschrieben, welche am 5. September 1997
eingereicht wurde. Noch ein anderes Verfahren zur Bildung von Paketen,
auf welches der offenbarte Gegenstand angewendet werden kann, ist
im US-Patent Nr. 4,888,698 beschrieben.
-
Paketbildung
räumlich
organisierter Daten ist dargestellt mit Bezug auf die 7–9. 7 zeigt
die Karte 110 einer geografischen Region 112, welche
zuvor in der 2 dargestellt worden ist. Die Mehrzahl
von Positionen 114 (dargestellt durch Tüpfelchen oder Punkte) ist als
in der Karte 110 liegend dargestellt. In 7 überlagert
ein Gitter 217 die geografische Region 112, welche
durch die Karte 110 repräsentiert ist. Das Gitter 217 teilt
die geografische Region 112 in mehrere rechteckige Gebiete 219 auf. Die
Gitterlinien des Gitters 217 repräsentieren die Grenzen rechteckiger
Gebiete 219. Diese rechteckigen Gebiete 219 können alle
die gleiche Größe oder unterschiedliche
Größen aufweisen,
abhängig
von der zur Paketbildung verwendeten Prozedur. Die Orte der Grenzen
können
ebenso von der verwendeten Prozedur zur Paketbildung abhängen. Wenn
irgendeine der Prozeduren für
räumliche
Paketbildung verwendet wird, werden im Allgemeinen die Datensätze eines
speziellen Typs von Daten, welche Merkmale repräsentieren, die innerhalb jedes
rechteckigen Gebiets 219 umfasst sind, zusammen in einem getrennen
Datenpaket gruppiert. Unter Bezugnahme auf die 8 und 9 werden
die mehreren Datensätze,
wie beispielsweise Straßensegmentdatensätze 322 und
die Knotendatensätze 323,
die die geografische Datenbank 40 umfasst, in getrennten
Gruppierungen gesammelt, welche als Pakete 220 bezeichnet
sind. Unter Bezugnahme auf die räumlich organisierten
Daten enthält
jedes Paket 220 in den 8 und 9 einen
oder mehrere Datensätze 322, 323,
welche die geografischen Merkmale repräsentieren, die innerhalb eines
getrennten der Mehrzahl von Rechtecken 219 umfasst sind,
die in 7 dargestellt sind.
-
Wie
in den 8 und 9 dargestellt, sind die Pakete 220 zum
Bilden der Datenbank 40 gespeichert, so dass die Daten
in jedem Paket 220 logisch und/oder physikalisch zusammen
gruppiert sind. Ein Paket 220 kann die physikalische Datenmenge
repräsentieren,
auf die auf einmal durch das Navigationssystem zugegriffen werden
kann. Wenn auf ein Paket von Daten zugegriffen wird, werden alle
seine Datensätze 322, 323 vom
Medium in den Speicher des Navigationssystems gleichzeitig gelesen.
Unter Bezugnahme auf die Karte 110 der 7 bedeutet dies,
dass auf alle Datensätze,
wie beispielsweise die Segmentdatensätze 322 oder die Knotendatensätze 323,
eines räumlich
organisierten Typs von Daten, die innerhalb jedes Rechtecks 219 umfasst
sind, zusammen als eine Gruppe zugegriffen wird. Es ist verständlich,
dass es für
gewisse Arten von Navigationsfunktionen wünschenswert ist, im Speicher
gleichzeitig alle Datensätze
zu haben, welche Merkmale repräsentieren,
die in der geografischen Region physikalisch nahe beieinander liegen.
-
Da
die Pakete 220 für
diese Typen von Daten gebildet sind, sind die Pakete geordnet. Verschiedene
Ordnungstypen können
verwendet werden. Im Allgemeinen ist es bevorzugt, dass die Pakete
in einer Art geordnet sind, welche das Suchen nach Daten minimiert.
Eine Art, räumlich
organisierte Pakete zu ordnen, liegt darin, eine Tiefenordnung von
einem kd-Baum-Index innerhalb jedes Typs von Daten zu verwenden.
Dies stellt eine Ordnung ähnlich
einer Peano-Key-Ordnung bereit. Pakete können auf der Platte (d.h. dem
Medium 32 in 1) in dieser angenäherten Peano-Key-Ordnung
gespeichert werden. Einer oder mehrere Indizes, wie beispielsweise
ein kd-Baum, können verwendet
werden, um auf die Pakete räumlich
zuzugreifen. Dieser Index ist praktisch für die anfängliche Lage einer arbiträren Position, beispielsweise
wenn ein Programm in einem Navigationssystem anfänglich die Kartendaten lokalisiert, welche
einer aktuellen Fahrzeugposition entsprechen. Da die Pakete 220 geordnet
sind, kann auch jedem ein eindeutiger Paketidentifikator (z.B. eine "Paket-ID") zugeordnet sein.
Die Paket-ID kann verwendet werden, um das Paket und/oder seine
Lage auf dem Medium zu identifizieren.
-
(Wie
oben erwähnt,
sind einige Arten der Daten nicht räumlich organisiert. Nicht jedes
Paket von nicht räumlich
organisierten Daten muss notwendigerweise irgendeinem der rechteckigen
Gebiete 219 in 7 entsprechen. Beispielsweise
können
Daten, welche die Namen von Straßen repräsentieren, alphabetisch anstelle
von räumlich
organisiert sein.)
-
III. SEGMENTAGGREGATION
-
a) Überblick
-
In
einer vorliegenden Ausführungsform
enthält
die geografische Datenbank Datensätze, die Aggregationen von
Straßensegmenten
repräsentieren. Diese
Datensätze,
welche Aggregationen von Straßensegmenten
repräsentieren,
sind in der Datenbank enthalten, und zwar zusätzlich zu den Datensätzen (z.B. 322 in 9),
welche die separaten Straßensegmente
repräsentieren,
von denen die Aggregationen gebildet sind. Das Verwenden von Datensätzen, welche
Aggregationen von Straßen
repräsentieren,
weist das Potential auf, verschiedene Vorteile bereitzustellen.
Das Verwenden von Datensätzen,
welche Aggregationen von Straßensegmenten repräsentieren,
kann die Anzahl von Straßensegmenten
reduzieren, die während
der Routenberechnung untersucht werden müssen. Wenn Datensätze, welche
Straßensegmentaggregationen
repräsentieren,
verwendet werden, ist es auch möglich,
dass die Anzahl von Segmenten, die eine am Ende berechnete Route
ausmachen, reduziert sein können,
wodurch die Leistungsfähigkeit
des Navigationssystems verbessert wird. Ferner ist es auch möglich, wenn Datensätze, die
Straßensegmentaggregationen
repräsentieren,
verwendet werden, dass die Gesamtgröße der Datenbank reduziert
werden kann.
-
Eine
Art, Datensätze,
welche Aggregationen von Straßensegmenten
repräsentieren,
zu bilden, ist abgeleitet von der Bildung von mehreren Schichten von
Daten in der Datenbank. Wie oben erwähnt, enthält eine Straßensegmentdatenentität ein Rangattribut,
das einer funktionalen Klassifikation des repräsentierten Straßensegments
entspricht. In einer vorliegenden Ausführungsform wird das Rangattribut verwendet,
um Schichten der geografischen Datenbank zu bilden. Die Rangattribute
spezifizieren die höchste
Datenschicht, in der das Straßensegment repräsentiert
ist. Die tiefste Schicht, d.h. "R0", der Routenberechnungsdaten 136 enthält alle
Streckenführungsstraßensegmentdatensätze (d.h.
Straßensegmentdatensätze aller
Ränge).
In jeder folgenden höheren
Schicht werden die Straßensegmentdatensätze vom
niedrigsten Rang ausgelassen. Im Ergebnis enthalten diese höheren Schichten
eine Anzahl von "bivalenten" Knoten, d.h. Knoten,
an denen genau zwei Segmente sich treffen oder kreuzen. (Es ist auch
möglich,
bivalente Knoten unter anderen Umständen in der geografischen Datenbank
zu bilden, beispielsweise wenn ein Straßensegment eine Verwaltungsgrenze
kreuzt.) Wenn Attribute, die für
die Routenberechnung relevant sind, gleich sind für zwei Straßensegmentdatensätze, die
durch einen bivalenten Knoten verbunden sind, kann ein aggregierter Segmentdatensatz
gebildet werden, der den bivalenten Knoten unterdrückt oder
fallen lässt.
-
b) Physikalische Repräsentation
von aggregierten Segmenten
-
10A ist eine Darstellung mehrerer Straßensegmente 122,
welche durch Straßensegmentdatensätze in Schicht
0 der Streckenführungsdaten 136 repräsentiert
sind. Ein Knoten 123 ist jedem der Endpunkte von jedem
der Straßensegmente 122 zugeordnet.
In Schicht 0 sind alle Straßensegmente von
allen Rängen
durch Datenentitäten
repräsentiert. 10B zeigt die gleichen mehreren Segmente 122 und
Knoten 123, welche in 10B dargestellt
sind, außer
dass die Straßensegmente
mit einem Rang von "0" in gestrichelten
Linien dargestellt sind. 10C zeigt
diese fallengelassenen bzw. entfernten Straßensegmente von niedrigerem
Rang. (10B und 10C stellen
Zwischenstufen dar und sind nicht repräsentativ für eine Schicht.) 10C stellt die Segmente 122 und Knoten 123 in Schicht
1 dar. Wie in 10C dargestellt, führt die Elimination
von Straßensegmenten
mit einem Rang von 0 zu einigen übrig
bleibenden Knoten, welche nur zwei Straßensegmente verbinden. Es könnte möglich sein,
die Routenberechnung zu beschleunigen, wenn wenig oder keine Berechnung
durchgeführt wird,
wenn eine Route berechnet wird, welche diese Arten von Knoten durchquert.
Um den Vorteil dieser Anordnung auszunutzen, sind die Segmente 122 (bezeichnet
als S1, S4, S5, S6, S7, S9 und S11) durch einen aggregierten Segmentdatensatz
repräsentiert,
welcher in der geografischen Datenbank 40 gebildet und
gespeichert ist. Dieser aggregierte Segmentdatensatz repräsentiert
die mit AG12 bezeichnete Aggregation der getrennten Straßensegmente, wie
dies in 10D dargestellt ist.
-
c) Aggregationskriterien
-
10A–10D stellen die Bedingungen dar, unter denen es
möglich
ist, einen aggregierten Segmentdatensatz zu bilden. Entsprechend
einer alternativen Ausführungsform
werden aggregierte Segmentdatensätze
immer gebildet, wennimmer zwei oder nur zwei Straßensegmente
durch einen einzelnen Knoten verbunden sind. Unter gewissen Umständen kann
es allerdings bevorzugt sein, das Bilden eines aggregierten Segmentdatensatzes
unter diesen Bedingungen zu unterlassen. Wenn beispielsweise gewisse
Attribute von benachbarten Straßensegmenten
unterschiedlich sind, kann es bevorzugt sein, keinen aggregierten
Segmentdatensatz zu bilden, um sie in Aggregation zu repräsentieren, auch
wenn sie die einzigen Straßensegmente
sind, die durch einen einzelnen Knoten verbunden sind. Attribute
von benachbarten Straßensegmentdatensätzen werden
also gemäß einer
alternativen Ausführungsform
geprüft,
um zu bestimmen, ob die repräsentierten
Straßensegmente
genügend ähnlich sind,
um durch einen aggregierten Segmentdatensatz repräsentiert
zu werden. Um diese Bestimmung zu machen, müssen verschiedene Kriterien
angewendet werden. In einer alternativen Ausführungsform kann es beispielsweise
gefordert sein, dass alle Attribute in benachbarten Straßensegmenten
gleich sein müssen,
um einen aggregierten Segmentdatensatz zu bilden. In einer anderen
alternativen Ausführungsform
kann es gefordert sein, dass nur gewisse Attribute gleich sein müssen in
benachbarten Straßensegmenten,
um einen aggregierten Segmentdatensatz zu bilden. Bei dieser letzteren
Alternative kann es gewissen Attributen erlaubt sein, zwischen benachbarten
Straßensegmenten
unterschiedlich zu sein.
-
In
einer vorliegenden Ausführungsform
wird ein aggregierter Segmentdatensatz da gebildet, wo jedes aufeinander
folgende Paar von aneinander stoßenden Straßensegmenten den gleichen Namen, Rang,
Geschwindigkeitskategorie, Spurkategorie und Zugriffsmerkmale aufweist
unter anderen Merkmalen. Die Bildung eines aggregierten Straßensegments
ist allerdings nicht erlaubt, wenn die benachbarten Straßensegmente
ein eingeschränktes
Fahrmanöver,
eine Fahrzeugeinschränkung,
eine Fahrtrichtungseinschränkung,
ein Tor, eine Einschränkung für Viel-Insassen-Fahrzeuge, eine gabelförmige Straße, eine
Mautstation oder eine Beschilderung, unter anderen Einschränkungen
enthalten.
-
Die
oben genannten Kriterien repräsentieren nur
Beispiele der Arten von Attributen, welche ausgewertet werden können, um
zu bestimmen, ob ein aggregierter Segmentdatensatz gebildet wird
aus zwei oder mehr benachbarten Segmenten. Andere Kriterien können auch
geeignet sein.
-
d) Prozess zum Bilden
von aggregierten Segmenten
-
Wenn
aggregierte Segmentdatensätze
gebildet werden unter Verwendung in einer Ausführungsform, die eine Auswertung
erfordert, ob die benachbarten Straßensegmente gewisse Kriterien
erfüllen, liegt
der erste Schritt darin, mögliche
Endknoten für aggregierte
Straßensegmente
zu identifizieren. Diese Knoten können als "signifikant für ein aggregiertes Segment" bezeichnet werden.
Jeder Knoten in der geografischen Datenbank in jeder Schicht wird
ausgewertet, um zu bestimmen, ob es ein für ein aggregiertes Segment
signifikanter Knoten ist. Die Knoten werden gleichzeitig ausgewertet,
wobei in der höchsten
Schicht gestartet wird und nach unten durchgearbeitet wird. Ein
Knoten ist signifikant für
ein aggregiertes Segment in einer gegebenen Schicht, wenn nur ein
Straßensegment
oder mehr als zwei Straßensegmente
mit ihm verbunden sind. Wenn allerdings genau zwei Straßensegmente
mit einem Knoten verbunden sind, kann der Knoten nicht signifikant
für ein aggregiertes
Segment sein. Wenn ein Knoten als signifikant für ein aggregiertes Segment
in einer gegebenen Schicht bestimmt ist, ist er signifikant für ein aggregiertes
Segment in allen tieferen Schichten. Jedes Straßensegment in einer Schicht,
die einen für ein
aggregiertes Segment signifikanten Knoten an einem Ende und einen
nicht signifikanten Knoten an dem anderen Ende aufweist, ist ein
potentielles Startende für
ein aggregiertes Segment.
-
In 10C sind die Knoten N102 und N112 signifikant
für ein
aggregiertes Segment, da sie mit mehr als zwei Segmenten verbunden
sind. Die Knoten N104, N106, N107, N108, N109 und N113 können nicht-signifikant
sein, da sie mit zwei und nur zwei Segmenten verbunden sind. Segment
S1 ist als potentieller Startpunkt für ein aggregiertes Segment identifiziert,
da es einen Knoten N112 aufweist, welcher signifikant für ein aggregiertes
Segment ist, und den anderen Knoten N109 aufweist, der nicht-signifikant
sein kann. Sofern es nicht eine Bedingung, ein Zeichen oder eine
andere Attributänderung
bei S1 gibt, kann der Knoten N112 als Startpunkt für ein aggregiertes
Segment verwendet werden. Der Knoten N109 am anderen Ende des Segments
S1 wird gemäß den verwendbaren
Kriterien ausgewertet, um zu bestimmen, ob es ein signifikanter
Knoten ist. Wenn es kein signifikanter Knoten ist, ist der Knoten
N109 ein potentieller interner Knoten für ein aggregiertes Segment.
Es wird dann das andere mit dem Knoten N109 verbundene Segment,
d.h. S4 in 10C, ausgewertet (1), um zu
bestimmen, ob sein anderer Knoten N108 signifikant für ein aggregiertes
Segment ist, und (2) um zu prüfen,
ob die anderen Aggregationskriterien erfüllt sind. Dieser Prozess wird
fortgeführt, bis
ein für
ein aggregiertes Segment signifikanter Knoten erreicht ist oder
bis ein Knoten erreicht ist, der in anderer Weise nicht-signifikant
ist, aber welcher zwei Segmente verbindet, die unterschiedliche
Bedingungen aufweisen, welche sie vom Aggregieren ausschließen. Diese
Bedingungen sind oben beschrieben. Wenn ein Knoten, der sonst nicht-signifikant
wäre, zwei
Straßensegmente
verbindet, welche unterschiedliche Bedingungen aufweisen, die sie
von der Aggregation ausschließen,
wird der Knoten als ein für
ein aggregiertes Segment signifikanter Knoten für diesen Rang und niedriger
benannt.
-
Es
ist anzumerken, dass das obige Verfahren ein aggregiertes Segment
erzeugt, das für
ein aggregiertes Segment signifikante Knoten an seinen Enden aufweist
und wenigstens einen nicht-signifikanten Knoten zwischen den Enden.
Es sind allerdings nicht alle für
ein aggregiertes Segment signifikanten Knoten innerhalb einer Schicht
notwendigerweise an Endpunkten eines aggregierten Segments angeordnet.
-
e) Anordnung bzw. Lage
von aggregierten Segmentdatensätzen
-
Sobald
eine Folge von Straßensegmenten (zwischen
zwei für
ein aggregiertes Segment signifikanten Knoten) identifiziert ist,
wobei die Straßensegmente
untereinander durch nicht-signifikante Knoten verbunden sind, wird
ein aggregierter Segmentdatensatz erzeugt, um diese Aggregation
von Straßensegmenten
zu repräsentieren.
In Ausführungsformen
von geografischen Datenbanken, in denen die Daten nach Typ geordnet
sind, können
die aggregierten Segmentdatensätze
in den Streckenführungsdaten 136 enthalten
sein, wie dies in 5 dargestellt ist. In Ausführungsformen
der geografischen Datenbank, in denen die Daten in Schichten angeordnet
sind, sind die aggregierten Segmentdatensätze in Schichten über der
Schicht 0 (z.B. Schicht > 0)
aufzufinden, wie dies in 6 dargestellt ist. In Ausführungsformen
von geografischen Datenbanken, in denen die Daten räumlich organisiert
sind, können
aggregierte Segmentdatensätze
in den räumlich
organisierten Daten enthalten sein, wie beispielsweise in Paketen 220 der
Daten, wie dies in 8 dargestellt ist.
-
11 zeigt
aggregierte Segmentdatensätze 422,
welche in einem Paket 220(7) von Streckenführungsdaten 136 gespeichert
sind. Das Paket 220(7) liegt in einer Schicht, die höher ist
als die Schicht 0. Unter Bezugnahme auf die 11 repräsentiert
das dargestellte Paket 220(7) nur eines einer Mehrzahl
von Paketen innerhalb der Schicht > 0.
Ferner ist es klar, dass es eine oder mehrere Schichten größer als
Schicht 0 geben kann, wobei jede eine Mehrzahl von Paketen aufweist,
von denen jedes aggregierte Segmentdatensätze enthält. In einer vorliegenden Ausführungsform
gibt es drei Schichten, welche höher
sind als Schicht 0 (d.h. Schichten 1, 2 und 3), welche die Anordnung
von aggregierten Segmentdatensätzen
enthalten, wie dies in 11 dargestellt ist. In alternativen
Ausführungsformen
kann es mehr oder weniger als drei Schichten geben.
-
f) Die aggregierte Segmententität
-
In
einer Ausführungsform
enthält
die aggregierte Segmententität
oder der aggregierte Segmentdatensatz 422 die gleichen
Arten von Attributinformationen, welche in nicht-aggregierten Straßensegmentdatensätzen enthalten
sind (wie beispielsweise die Straßensegmentdatensätze 322,
welche in der 9 dargestellt sind). Alternativ
kann der aggregierte Segmentdatensatz 422 weniger Arten
von Attributinformation enthalten, welche in nicht aggregierten
Straßensegmentdatensätzen 322 enthalten
sind. In einer Ausführungsform
enthält
jeder aggregierte Segmentdatensatz 422 Attributinformationen,
welche denjenigen Merkmalen entsprechen, von denen die anwendbaren
Kriterien fordern, dass benachbarte Straßensegmente sie gemeinsam haben,
um den aggregierten Segmentdatensatz zu bilden. Die Attribute, von
denen nicht gefordert ist, dass sie benachbarte Segmente gemeinsam
haben, können
beim Prozess des Generierens eines einzelnen Satzes von aggregierten
Attributen für
den aggregierten Segmentdatensatz 422 kombiniert oder fallen
gelassen werden.
-
Die
Komponenten eines aggregierten Segmentdatensatzes 422 sind
in der 12 dargestellt. Der aggregierte
Segmentdatensatz 422 enthält einen Segmentidentifikator
(z.B. "ID") 423, der
ihn als ein aggregiertes Segment identifiziert. Der aggregierte Segmentdatensatz 422 enthält Daten,
welche seine Endknoten 424 und 425 identifizieren,
wobei die Endknoten signifikanten Knoten für ein aggregiertes Segment
entsprechen. (Beispielsweise unter Bezugnahme auf 10D ist anzumerken, dass das aggregierte Segment
AG12 die Knoten N102 und N112 enthält, welche den Endpunkten des
aggregierten Segments entsprechen.) Der aggregierte Segmentdatensatz 422 kann
auch Informationen speichern über
das aggregierte Segment, das er repräsentiert einschließlich seiner
Länge 430,
seiner durchschnittlichen Geschwindigkeit 432 und einer
Durchfahrzeit 434. Der aggregierte Segmentdatensatz 422 kann
auch zusätzliche
Informationen 436 speichern.
-
In
einer vorliegenden Ausführungsform
enthält
der aggregierte Segmentdatensatz 422 Daten, welche verwendet
werden können,
um die Segmentdatensätze
und Knotendatensätze
zu identifizieren, welche die Straßensegmente und Knoten zwischen den
Straßensegmenten
repräsentieren,
welche in Aggregation durch den aggregierten Segmentdatensatz repräsentiert
sind. Der aggregierte Segmentdatensatz 422 enthält wenigstens
einen Zeiger 426 auf einen Array 520, welcher
abgekürzte
Segmentdatensätze 522 und
abgekürzte
Knotendatensätze 523 enthält. In einer
vorliegenden Ausführungsform
sind die abgekürzten
Datensätze
sequentiell im Array 520 gespeichert, d.h. in der Reihenfolge
von einem Ende (z.B. von links) der Aggregation zum anderen Ende. In
einer Ausführungsform
verweist der Zeiger 426 auf den ersten Datensatz in dem
Array 520. In der in 12 dargestellten
Ausführungsform
ist der erste Datensatz in dem Array 520 ein abgekürzter Segmentdatensatz.
Der abgekürzte
Segmentdatensatz 422 kann auch Daten 435 enthalten,
welche eine Anzahl von Nummern von abgekürzten Segmentdatensätzen in
dem entsprechenden Array 520 von abgekürzten Segmenten und Knotendatensätzen anzeigt. Diese
abgekürzten
Datensätze 522 und 523 sind
also zugänglich
vermittels des aggregierten Segmentdatensatzes und vermittels des
Zeigers 426 auf den ersten abgekürzten Datensatz und die Zählung 435.
-
g) Abgekürzte Segmente
und abgekürzte
Knotendatensätze
-
Wenn
in einer vorliegenden Ausführungsform
ein aggregierter Segmentdatensatz gebildet wird, werden abgekürzte Datensätze gebildet, welche
die Segmente und Knoten innerhalb des aggregierten Segments repräsentieren.
Unter Bezugnahme auf die 11 und 12 enthalten
diese abgekürzten
Datensätze
abgekürzte
Segmentdatensätze 522 und
abgekürzte
Knotendatensätze 523.
Die abgekürzten
Segmentdatensätze 522 und
die abgekürzten
Knotendatensätze 523 sind
dem aggregierten Segmentdatensatz 422 zugeordnet und repräsentieren
die Knoten und Segmente, welche in Aggregation durch den aggregierten
Segmentdatensatz 422 repräsentiert sind. Diese abgekürzten Datensätze 522 und 523 werden
in der geografischen Datenbank zusätzlich zu nicht abgekürzten Segmentdatensätzen 322 gehalten,
welche sich auf die gleichen Straßensegmentmerkmale beziehen,
und zu nicht abgekürzten
Knotendatensätzen 323,
welche sich auf die gleichen Knotenmerkmale beziehen.
-
In
einer vorliegenden Ausführungsform
werden diese abgekürzten
Datensätze 522 und 523 relativ
nahe (physikalisch und/oder logisch) zum aggregierten Segmentdatensatz 422 gehalten,
welcher sich auf sie bezieht. Dies ermöglicht es dem aggregierten
Segmentdatensatz, relativ schnellen Zugriff auf die Information
zu haben, welche in den abgekürzten
Segmentdatensätzen 522 und
den abgekürzten
Knotendatensätzen 523 enthalten
ist. In einer Ausführungsform
sind die abgekürzten
Datensätze 522 und 523 in
der gleichen Datenschicht enthalten wie der aggregierte Segmentdatensatz,
welcher sich auf sie bezieht. Ferner sind in einer vorliegenden Ausführungsform
in Schichten über
Schicht 0, aber unter der höchsten
Schicht n, die abgekürzten
Segmentdatensätze 522 und
die abgekürzten
Knotendatensätze 523 im
gleichen Paket enthalten wie der aggregierte Segmentdatensatz 422,
der sich auf sie bezieht. Diese Anordnung ist in der 11 dargestellt, wobei
die abgekürzten
Segmente 522 und die abgekürzten Knoten 523 im
gleichen Paket 220(7) enthalten sind wie das aggregierte
Segment 422, welches sich auf sie bezieht. Innerhalb jedes
der Pakete über der
Schicht 0, wie beispielsweise des Pakets 220(7) können mehrere
aggregierte Segmentdatensätze 422 vorhanden
sein, von denen sich jeder auf mehrere abgekürzte Segmentdatensätze 522 und
abgekürzte
Knotendatensätze 523 bezieht.
-
Wenn
die abgekürzten
Segmente 522 und die abgekürzten Knoten 523 im
gleichen Datenpaket enthalten sind wie der aggregierte Segmentdatensatz 422,
welcher sich auf sie bezieht, zeigt die Referenz 426 im
aggregierten Segmentdatensatz 422 die Adresse oder Lage
der abgekürzten
Segmente 522 und der abgekürzten Knoten 523 innerhalb
des Pakets an. Diese Referenz oder dieser Zeiger 426 kann die
Form eines Versatzes von einer Startposition des Pakets zu den abgekürzten Segment-
und Knotendatensätzen
aufweisen. Alternativ können
andere geeignete Referenzmittel verwendet werden.
-
Wie
oben unter Bezugnahme auf 12 erwähnt, sind
in einer Ausführungsform
die abgekürzten
Segment- und Knotendatensätze
im Array 520 gespeichert. Innerhalb des Arrays 520 wechseln
sich abgekürzte
Segment- und Knotendatensätze
ab. Der erste Datensatz im Array, auf den der aggregierte Segmentdatensatz
zeigt, ist ein abgekürzter
Segmentdatensatz 522, welchem ein abgekürzter Knotendatensatz 523 folgt,
dem ein abgekürzter
Segmentdatensatz 522 folgt, usw., abwechselnd bis die zwei
letzten Datensätze
in der Liste erreicht sind, die ein abgekürzter Knotendatensatz 523,
gefolgt von einem abgekürzten
Segmentdatensatz 522 sind. Diese abwechselnde Anordnung
von abgekürzten
Segment- und Knotendatensätzen
entspricht der abwechselnden Anordnung von physikalischen Knoten und
Straßensegmenten,
welche in Aggregation durch den aggregierten Segmentdatensatz repräsentiert
sind. Der erste abgekürzte
Segmentdatensatz 522 im Array repräsentiert das erste Segment,
auf das man von einem Endpunkt eines aggregierten Segments stößt, wenn
die durch den aggregierten Segmentdatensatz repräsentierte Aggregation von einem
Endpunkt hiervon durchquert wird. Der nächste anzutreffende abgekürzte Datensatz
ist der erste von einem oder mehreren internen Knoten des aggregierten
Segments, wobei vom gleichen Endpunkt des aggregierten Segments
begonnen wird. Diese abgekürzten
Datensätze
wechseln sich ab, bis man auf das abgekürzte Segment trifft, welches unmittelbar
vor dem anderen Endpunkt des aggregierten Segments liegt.
-
Unter
Bezugnahme auf 13 enthält jeder abgekürzte Datensatz 522 einen
Segmentidentifikator 543 und Daten, welche eine Länge 544 und
eine Transitzeit 545 anzeigen. In einer vorliegenden Ausführungsform
werden die Länge 544 und
eine Transitzeit 545 des abgekürzten Segments 522 als
eine einzelne Fraktion der Länge 530 und
der Transitzeit 434 des aggregierten Segmentdatensatzes 422 gespeichert,
welcher sich auf sie bezieht. Der abgekürzte Segmentdatensatz 522 kann
auch zusätzliche
Information 548 enthalten, durch welche die gesamte (d.h.
nicht abgekürzte)
Version des Segmentdatensatzes (z.B. ein Segmentdatensatz 322)
gefunden werden kann. In einer Ausführungsform ist diese Information 548 ein
Datenflag, welches verwendet werden kann als Referenz auf eine Schicht-0-Paket-Identifikation, wie
dies oben beschrieben wurde. Der abgekürzte Segmentdatensatz 522 kann
auch zusätzliche
Information 549 enthalten, wie beispielsweise den Bezug
auf das Straßensegment,
welches durch das abgekürzte
Segment repräsentiert
ist, obwohl auf solche Information stattdessen vom referenzierten
Schicht-0-Datensatz 322 zugegriffen werden kann.
-
Unter
Bezugnahme auf die 14 enthält jeder abgekürzte Knotendatensatz 523 einen
abgekürzten
Knotenidentifikator ("ID") 553 und
Daten, welche seine Position 554 identifizieren. Der abgekürzte Knotendatensatz 523 kann
auch zusätzliche Informationen
enthalten, wie beispielsweise einen Zeiger oder eine Referenz 559,
durch welche die vollständige
(d.h. nicht abgekürzte)
Version des Knotendatensatzes 323 gefunden werden kann.
Der abgekürzte
Knotendatensatz 523 kann auch zusätzliche Information 555 enthalten.
-
Wie
oben erwähnt,
enthalten die abgekürzten
Segment- und Knotendatensätze
Referenzen auf die nicht abgekürzten
Versionen dieser Datensätze. Diese
Referenzen können
verwendet werden, um Informationen zu erhalten, die in den abgekürzten Segment-
und Knotendatensätzen
nicht verfügbar
sind, aber in den nicht abgekürzten
Versionen dieser Datensätze
enthalten sind. Die nicht abgekürzten
Versionen dieser Datensätze
werden beispielsweise verwendet, wenn die berechnete Route vollständig ist und
Querverweise auf andere Datentypen, wie beispielsweise den Kartenanzeigetyp
oder den Manövertyp
erforderlich sind. Im abgekürzten
Segmentdatensatz 522 ist die Referenz 548 ein
Datenflag, welches anzeigt, ob der abgekürzte Segmentdatensatz 522 einen
Paket-ID-Index enthält.
(Die Referenz 559 im abgekürzten Knotendatensatz 523 kann
ein ähnliches
Datenflag enthalten.) Wenn ein abgekürzter Segment- oder Knotendatensatz
ein Paket-ID-Indexfeld enthält,
weist dieser abgekürzte
Segment- oder Knotendatensatz die Paket-ID in der Schicht 0 auf. Wenn
allerdings ein abgekürzter
Segment- oder Knotendatensatz keinen Paket-ID-Index enthält, wird
angenommen, dass der Knoten die Schicht-0-Paket-ID des vorangehenden
abgekürzten
Knoten-(oder Segment)-Datensatzes aufweist, der ein Paket-ID-Feld enthalten
hat. Wenn die Schicht-0-Datenentitäten, welche durch aufeinander
folgende abgekürzte
Datensätze
referenziert sind, im gleichen Paket angeordnet sind, ist es auf
diese Weise nicht erforderlich, dass die Paket-ID-Nummer für aufeinander
folgende abgekürzte
Datensätze
wiederholt wird.
-
h) Aufwärtsreferenzierung
-
In
einer vorliegenden Ausführungsform
enthält
jeder der Segmentdatensätze 322 in
Schichten, die tiefer als Schicht n sind, Daten, welche jeden der aggregierten
Segmentdatensätze 422 in
jeder der höheren
Schichten identifiziert, der eine Aggregation von Straßensegmenten
repräsentiert,
welche das durch den Segmentdatensatz 322 repräsentierte Straßensegment
enthält.
Ein Diagramm, welches dieses Merkmal des Segmentdatensatzes 322 darstellt,
ist in der 15 enthalten. Wie in 15 gezeigt,
gibt es zusätzlich
zu den anderen Typen von Attributen, welche im Segmentdatensatz 322 enthalten
sind, eine Referenz 648 zu jedem der aggregierten Segmentdatensätze 422 in
höheren
Schichten, welche Aggregationen von Straßensegmenten repräsentiert,
die das Straßensegment
enthalten, welches durch den Segmentdatensatz repräsentiert
ist. In einer vorliegenden Ausführungsform
identifiziert die Referenz 648 im Segmentdatensatz 322 die
aggregierten Segmentdatensätze
durch die aggregierte Segment-ID 423 (in 12)
und die Schicht (d.h. 1 bis n), in der der aggregierte Segmentdatensatz
auftritt. Diese Information ist zusätzlich zu den anderen Informationen
im Segmentdatensatz 322 enthalten.
-
IV. AUSFÜHRUNGSFORMEN
MIT VERSCHACHTELUNGEN VON DATENTYPEN
-
a) Trennung von aggregierten
und abgekürzten
Datensätzen
-
In
einer vorliegenden Ausführungsform
werden für
einige Schichten von Streckenführungsdaten oberhalb
der Schicht 0 die abgekürzten
Segmentdatensätze 522 und
die abgekürzten
Knotendatensätze 523 im
gleichen Paket gespeichert, wie der aggregierte Segmentdatensatz 422,
der sich auf sie bezieht, wie dies oben beschrieben wurde. Gemäß einer
vorliegenden Ausführungsform
sind allerdings in wenigstens einer Schicht von Streckenführungsdaten
oberhalb der Schicht 0 die abgekürzten
Segmentdatensätze
und die abgekürzten
Knotendatensätze in
einem Paket gespeichert, welches getrennt vom Paket ist, das den
aggregierten Segmentdatensatz enthält, der sich auf sie bezieht.
Im Speziellen sind in einer vorliegenden Ausführungsform für die höchste Schicht
(d.h. Schicht n, wobei n = 4) die abgekürzten Segment- und abgekürzten Knotendatensätze in einem
Paket gespeichert, welches getrennt ist von dem Paket, welches den
aggregierten Segmentdatensatz aufweist, welcher sich auf sie bezieht.
Diese letzte Anordnung ist in 16 dargestellt.
Wie in 16 gezeigt, sind die abgekürzten Segmentdatensätze 522 und
die abgekürzten
Knotendatensätze 523 in
einem Paket 220(3) gespeichert, das von den Paketen 220(1), 220(2) ...
getrennt ist, welche die aggregierten Segmentdatensätze 422 enthalten,
die sich auf sie beziehen. In einer vorliegenden Ausführungsform enthält dieses
Paket 220(3) von abgekürzten Datensätzen abgekürzte Segmentdatensätze 522 und
abgekürzte
Knotendatensätze 523 (und
möglicherweise
einige zusätzliche
Informationen, wie beispielsweise Header-Informationen). Das Paket 220(3), welches
die abgekürzten
Datensätze
enthält,
enthält allerdings
keine Streckenführungsdaten.
Wie in 16 dargestellt, sind die abgekürzten Datensätze 522 und 523 in
der gleichen Schicht enthalten (d.h. Schicht n) wie die aggregierten
Segmentdatensätze 422,
welche sich auf sie beziehen. In einer alternativen Ausführungsform
können
die Pakete 220(3) der abgekürzten Segmentdatensätze 522 und
der abgekürzten
Knotendatensätze 523 in
einer anderen Schicht oder an einem anderen Ort in der Datenbank angeordnet
sein bzw. liegen.
-
Wie
bei den aggregierten Segmentdatensätzen, welche in den Schichten
unter Schicht n enthalten sind, enthält jeder aggregierte Segmentdatensatz einen
Zeiger oder eine andere Referenz zu den abgekürzten Segment- und Knotendatensätzen, welche die
in Aggregation durch den aggregierten Segmentdatensatz repräsentierten
Merkmale repräsentiert. 17 stellt
die Komponenten eines aggregierten Segmentdatensatzes dar und seiner
repräsentierten abgekürzten Segment-
und Knotendatensätze
gemäß der in 16 dargestellten
Ausführungsform. Der
aggregierte Segmentdatensatz 422 enthält wenigstens einen Zeiger 426 auf
einen Array 520, welcher abgekürzte Segmentdatensätze 522 und
abgekürzte
Knotendatensätze 523 enthält. In dieser
Ausführungsform
verweist der Zeiger 426 auf den ersten Datensatz im Array 520.
Weil die abgekürzten
Datensätze
in einem von den aggregierten Segmentdatensätzen, welche sich auf sie beziehen,
getrennten Paket gespeichert sind, enthält die Referenz 426 in
einem aggregierten Segmentdatensatz 422 zu seinen zugehörigen abgekürzten Segment-
und Knotendatensätzen 522, 523 eine
geeignete Identifikation des Pakets, in dem die abgekürzten Datensätze angeordnet
sind. Wie beim Array 520, welcher in Verbindung mit 12 beschrieben
ist, sind die abgekürzten
Datensätze
sequentiell im Array 520 gespeichert, und zwar in einer
Reihenfolge von einem Ende der repräsentierten Aggregation zum
anderen Ende. Anders als in der Ausführungsform der 12 sind
allerdings dann, wenn die abgekürzten
Datensätze
in einem Paket sind, das getrennt ist vom Paket, welches den aggregierten
Segmentdatensatz enthält,
der sich auf sie bezieht, der erste Datensatz im Array 520 ein abgekürzter Knotendatensatz 523,
gefolgt von einem abgekürzten
Segmentdatensatz 522 usw., abwechselnd, bis die letzten
zwei Datensätze
in der Liste erreicht sind, welche ein abgekürzter Segmentdatensatz 522 gefolgt
von einem abgekürzten
Knotendatensatz 523 sind. Wenn die abgekürzten Datensätze in einem
Paket sind, das getrennt ist von dem Paket, welches den aggregierten
Segmentdatensatz enthält,
welcher sich auf sie bezieht, ist der erste Datensatz im Array 520 ein
abgekürzter
Knotendatensatz 523, welcher einen der Endpunkte des referenzierenden
aggregierten Segmentdatensatzes repräsentiert, und der letzte Datensatz
im Array 520 ist ein abgekürzter Knotendatensatz 523,
welcher den anderen Endpunkt des referenzierenden aggregierten Segmentdatensatzes
repräsentiert.
Es ist nützlich,
diese aggregierten Knotendatensätze 523 zu
haben, welche die aggregierten Segmentendpunkte im Array 520 repräsentieren,
wenn die abgekürzten
Datensätze
in einem Paket angeordnet sind, welches vom aggregierten Segmentdatensatz 422,
der sich auf sie bezieht, getrennt ist, weil sonst keine Datensätze in dem
Paket sein könnten,
welches die abgekürzten Datensätze enthält, die
diese Endpunkte des aggregierten Segments repräsentieren. In anderer Hinsicht sind
die aggregierten Segmentdatensätze 422 und die
abgekürzten
Datentsätze 522, 523 in
Schicht n ähnlich
wie diejenigen in der zuvor beschriebenen Ausführungsform.
-
Die
abgekürzten
Segmentdatensätze 522 und
die abgekürzten
Knotendatensätze 523 im Schicht-n-Paket 220(3) enthalten
geeignete Referenzen auf entsprechende nicht abgekürzte Segment- und
Knotendatensätze,
welche in den Paketen 220(4) und 220(5) in Schicht
0 enthalten sind, welche die gleichen entsprechenden geografischen
Merkmale repräsentieren.
Wie in Verbindung mit der vorherigen Ausführungsform beschrieben, wenn
die in den nicht abgekürzten
Segment- oder Knotendatensätzen enthaltene
Information für
eine Navigationsfunktion benötigt
wird, können
die Referenzen, welche in den abgekürzten Segment- und Knotendatensätzen enthalten
sind, welche im Schicht-n-abgekürzten-Datensatzpaket 220(3) enthalten
ist, verwendet werden, um die entsprechenden nicht abgekürzten Segment-
und Knotendatensätze
in den Schicht-0-Paketen 220(4) und 220(5) zu
finden (dargestellt in 16).
-
Das
Trennen der abgekürzten
Segmente und der abgekürzten
Knotendatensätze
vom aggregierten Segmentdatensatz, welcher sich auf sie bezieht,
weist die Wirkung auf, dass den Streckenführungspaketen, welche die aggregierten
Segmentdatensätze
enthalten, erlaubt wird, mehr Streckenführungsdaten von anderen Daten
als dem gekürzten Segment- und Knotendatensatz
zu halten. Dies erlaubt es den Streckenführungsdatenpaketen, welche die
aggregierten Segmentdatensätze
enthalten, geografische Merkmale zu repräsentieren, welche innerhalb
größer festgelegten,
rechteckigen Gebieten umfasst sind. Es werden daher weniger solche
Streckenführungsdatenpakete
benötigt,
wenn eine Route durch das geografische Gebiet berechnet wird, wodurch
im Allgemeinen die Navigationssystem-Leistungsfähigkeiten für einige Typen von Funktionen, wie
beispielsweise Routenberechnung, verbessert werden.
-
(Gemäß dieser
alternativen Ausführungsform
sind die abgekürzten
Datensätze
nur in der höchsten
Schicht (d.h. in Schicht n, wobei n = 4 ist) von Daten von den aggregierten
Datensätzen,
die sich auf sie beziehen, getrennt. In einer anderen Version dieser
alternativen Ausführungsform
können
die abgekürzten
Datensätze
auch in anderen Schichten von den aggregierten Datensätzen getrennt
sein. Gemäß einer
weiteren anderen Version dieser alternativen Ausführungsform
können
die abgekürzten
Datensätze
in allen Datenschichten, in denen aggregierte Datensätze vorhanden
sind, von den aggregierten Datensätzen, welche sich auf sie beziehen,
getrennt sein.)
-
b) Arten von Verschachtelung
-
Wie
bereits erwähnt,
kann das Speichern der abgekürzten
Datensätze
getrennt von den Streckenführungsdaten,
welche die aggregierten Segmentdatensätze enthalten, welche sich
auf sie beziehen, gewisse Vorteile bereitstellen, welche die Navigationssystem-Leistungsfähigkeit
verbessern. Weitere Vorteile können
in einer Ausführungsform
erreicht werden, bei der die Streckenführungsdaten (welche die aggregierten
Segmentdatensätze
enthalten) verschachtelt sind mit den abgekürzten Datensätzen. Dies
kann die Such- und Zugriffszeiten für Daten reduzieren, wenn gewisse
Arten von Navigationsfunktionen durchgeführt werden, wodurch es möglich ist, die
Navigationssystem-Leistungsfähigkeit
weiter zu verbessern. Im Speziellen sind in dieser weiteren alternativen
Ausführungsform
die Pakete, welche die Streckenführungsdaten
enthalten, die aggregierten Segmentdatensätze enthalten, mit den Paketen
verschachtelt, welche die abgekürzten
Datensätze
enthalten, die durch die aggregierten Segmentdatensätze innerhalb
der gleichen Schicht referenziert sind.
-
18, 19 und 20 zeigen
drei verschiedene Arten, dass Pakete, die Streckenführungsdaten
enthalten (einschließlich
aggregierte Segmentdatensätze),
und Pakete, welche abgekürzte
Datensätze
enthalten (welche durch die aggregierten Segmentdatensätze referenziert
sind), innerhalb einer Schicht angeordnet sein können. Für Zwecke dieser Ausführungsform
wird das Verschachteln von abgekürzten
Datensätzen
mit Streckenführungsdaten
innerhalb einer Schicht beschrieben. Die Vorteile, welche sich aus
dem Verschachteln unterschiedlichen Datentypen ergeben, und im Speziellen
von Paketen unterschiedlicher Datentypen, sind nicht nur gerade
auf Streckenführungsdaten
und abgekürzte Datensätze beschränkt. Es
ist klar, dass die offenbarten Konzepte auch auf andere Typen und
Schichten von Daten ausgeweitet werden können, wie dies nachfolgend
beschrieben ist. Es können
daher verschiedene Navigationsfunktionen von den Leistungsfähigkeitsverbesserungen
profitieren, welche mit dem Verschachteln von Datentypen einhergehen.
-
18 zeigt
mehrere Pakete 220 innerhalb einer Schicht n von Streckenführungsdaten.
Diese Pakete enthalten Pakete, welche Streckenführungsdaten enthalten (gekennzeichnet
mit einem "R") und Pakete, welche
abgekürzte
Segment- und Knotendatensätze
(gekennzeichnet mit einem "A") enthalten. Die
Streckenführungspakete
enthalten aggregierte Segmentdatensätze, welche Referenzen auf
die abgekürzten
Segment- und Knotendatensätze
enthalten, welche individuell die Straßensegmente und Endpunkte von
diesen repräsentieren,
welche die aggregierten Segmentdatensätze in Aggregation repräsentieren.
Auch wenn in der Ausführungsform
gemäß 18 alle
Pakete, welche abgekürzte
Segment- und Knotendatensätze
enthalten, in der gleichen Schicht von Streckenführungsdaten als die Streckenführungspakete
angeordnet sind, welche die aggregierten Segmentdatensätze enthalten,
welche sich auf sie beziehen, sind alle Pakete, welche die abgekürzten Segment-
und Knotendatensätze enthalten,
entfernt von (d.h. vor oder nach) allen den Paketen, welche die
Schicht-n-Streckenführungspakete
enthalten, welche die aggregierten Segmentdatensätze enthalten, die sich auf
sie beziehen, angeordnet und gespeichert. Wie oben erwähnt, bietet
das Platzieren der Pakete, welche die abgekürzten Segment- und Knotendatensätze in der
gleichen Schicht enthalten wie die Pakete, welche die aggregierten Segmentdatensätze enthalten,
welche sich auf sie beziehen, den Vorteil, dass im Allgemeinen weniger Zeit
benötigt
wird, um auf die abgekürzten
Datensätze
zuzugreifen, wenn sie durch die aggregierten Segmentdatensätze referenziert
sind, was zu einer verbesserten Navigationssystem-Leistungsfähigkeit führt.
-
Obwohl
die in 18 dargestellte Ausführungsform
potentielle Leistungsfähigkeitsvorteile
bereitstellt, können
weitere Vorteile erreicht werden, wenn die Pakete, welche die abgekürzten Segmentdatensätze enthalten,
noch näher
bei den Paketen platziert sind, welche die aggregierte Segmentdatensätze enthalten,
welche sich auf sie beziehen. Die in 19 dargestellte
Ausführungsform
zeigt eine Anordnung von Paketen, welche diesen Vorteil bietet.
In der Ausführungsform
der 19 folgt jedem Paket von Streckenführungsdaten
ein Paket, welches abgekürzte
Datensätze
enthält.
Die abgekürzten
Datensätze
in jedem Paket von abgekürzten
Datensätzen sind
durch die aggregierten Segmentdatensätze im unmittelbar benachbarten
Paket referenziert. (In 19 ist
das Paket, welches die abgekürzten
Segment- und Knotendatensätze
enthält,
gleich nachfolgend an das Paket gezeigt, welches die Streckenführungsdatensätze enthält, die
die aggregierten Segmentdatensätze
enthalten, welche sich auf sie beziehen. In einer alternativen Ausführungsform
kann das Paket, welches die abgekürzten Segment- und Knotendatensätze enthält, dem
Paket unmittelbar vorangehen, welches die Streckenführungsdatensätze enthält, welche
die aggregierten Segmentdatensätze enthalten,
welche sich auf sie beziehen.)
-
Die
Anordnung gemäß 19 kann
für gewisse
Funktionen noch weitere Vorteile gegenüber der Ausführungsform
gemäß 18 bieten.
Weil das Paket, welches die abgekürzten Segment- und Knotendatensätze enthält, unmittelbar
benachbart zum Paket ist, welches die Streckenführungsdaten enthält, welche
die aggregierten Segmentdatensätze enthält, welche
sich auf sie beziehen, ist noch weniger Zeit erforderlich, um auf
die abgekürzten
Datensätze
zuzugreifen, wenn sie durch die aggregierten Segmentdatensätze referenziert
sind, was zu noch weiter verbesserter Navigationssystem-Leistungsfähigkeit
führt.
-
Ein
mit der in 19 dargestellten Anordnung verbundener
Nachteil liegt darin, dass die Menge von Daten, welche den abgekürzten Segment- und
Knotendatensätzen
zugeordnet ist, welche durch aggregierte Segmentdatensätze in einem
einzelnen Paket von Streckenführungsdaten
referenziert sind, nicht notwendigerweise einer idealen Paketgröße entspricht.
Wenn das Streckenführungspaket
relativ wenige aggregierte Segmentdatensätze oder aggregierte Segmentdatensätze enthält, welche
Aggregationen von relativ wenigen Segmenten repräsentiert, werden entsprechend
wenige abgekürzte
Datensätze
in den benachbarten Paketen der abgekürzten Datensätze sein.
Wenn die Streckenführungspakete relativ viele
aggregierte Segmentdatensätze
oder aggregierte Segmentdatensätze,
welche Aggregationen von relativ vielen Segmenten repräsentieren, enthalten,
gibt es entsprechend viele abgekürzte
Datensätze
in dem benachbarten Paket der abgekürzten Datensätze. In
der Ausführungsform
der 19 hängt
das Datengrößenerfordernis
für die
abgekürzten
Segment- und Knotendatensätze, welche
durch die aggregierte Segmentdatensätze in jedem einzelnen Paket
von Streckenführungsdaten
referenziert sind, von der Anzahl und Art von aggregierten Segmentdatensätzen im
Streckenführungsdatenpaket ab.
Die Anzahl und Art von aggregierten Segmentdatensätzen in
einem Streckenführungsdatenpaket hängt zu wenigstens
einem gewissen Grad vom referenzierten Straßennetzwerk ab. Da Straßennetzwerke
relativ unterschiedlich sein können,
können
die Datengrößenerfordernisse
für die
abgekürzten
Segment- und Knotendatensätze,
welche durch die aggregierten Segmentdatensätze in einem einzelnen Streckenführungsdatenpaket
referenziert sind, ebenfalls beträchtlich variieren.
-
Im
Allgemeinen erfordern die abgekürzten Segment-
und Knotendatensätze,
welche durch die aggregierten Segmentdatensätze in einem Paket referenziert
sind, weniger als und manchmal bedeutend weniger als eine ideale
Paketgröße. Dies
bedeutet, dass bei der in 19 dargestellten
Ausführungsform
substanzielles Auffüllen
erforderlich sein kann, damit die abgekürzten Datensatzdaten in einigen
Paketen von abgekürzten
Datensätzen
hinzugefügt
werden, um eine einheitliche Paketgröße unter den Paketen innerhalb
einer Schicht beizubehalten. Dies hat zum Ergebnis, dass die Pakete,
welche die abgekürzten
Datensätze
enthalten, einen geringeren Füllprozentsatz
aufweisen als gewünscht.
Wenn ein gewünschter
Paketfüllprozentsatz
80% beträgt,
können
einige der Pakete, welche abgekürzte
Segment- und Knotendatensätze
enthalten, weniger als 50% oder sogar weniger als 20% gefüllt sein.
Es ist im Allgemeinen unerwünscht,
Pakete im Wesentlichen weniger als voll zu haben. Ein Grund dafür, dass
weniger als volle Pakete unerwünscht
sind, liegt dann, dass Speicherplatz verschwendet wird, der sonst verwendet
werden könnte,
um Information zu speichern, die für den Endanwender von Wert
sein kann. Ein anderer unerwünschter
Effekt von Paketen, welche im Wesentlichen weniger als voll sind,
liegt in der erhöhten
Fragmentierung der Datenbank. Dies kann zu erhöhten Such- und Zugriffszeiten
führen,
was zu geringer Leistungsfähigkeit
führt.
-
Ein
anderer potentieller Nachteil der Ausführungsform der 19 liegt
unter gewissen Umständen
darin, dass Datenerfordernisse für
die abgekürzten
Segment- und Knotendatensätze,
welche durch die aggregierten Segmentdatensätze in einem einzelnen Streckenführungsdatenpaket
referenziert sind, die maximale Paketgröße übersteigen.
-
Unter
Bezugnahme auf die Ausführungsform der 19 ist
es möglich,
die Pakete, welche abgekürzte
Segment- und Knotendatensätze
enthalten, kleiner (oder größer) in
ihrer Größe zu machen,
als die unmittelbar benachbarten Pakete, welche die Streckenführungsdaten
enthalten, die die aggregierten Segmentdatensätze enthalten, welche sich
auf sie beziehen. Die Pakete, die die abgekürzten Segment- und Knotendatensätze enthalten,
allerdings dazu zu bringen, unterschiedliche Größen als die Pakete zu haben,
welche die Streckenführungsdaten aufweisen,
reduziert die Fragmentierung nicht. Da ferner die Faktoren, welche
verwendet werden, eine gewünschte
Paketgröße zu bestimmen,
spezifische Merkmale der Medien enthalten können, auf denen die Daten gespeichert
sind, gibt es relativ wenige verfügbare bevorzugte Größen, in
denen ein Paket bereitgestellt werden kann, um die gewünschten
Leistungsfähigkeitsmerkmale
zu erreichen.
-
Obwohl
die Verschachtelungsanordnung der 19 daher
Leistungsfähigkeitsvorteile
in Navigationssystemen für
einige Typen bereitstellen kann, kann sie für andere Datentypen nicht geeignet
sein. Unter Bezugnahme auf die Ausführungsform von verschachtelten
Datentypen, welche in 19 gezeigt ist, ist sie am besten
geeignet für
Typen von Daten, in denen die Paketgrößen der unterschiedlichen Datentypen
leicht ausgeglichen werden können.
-
20 zeigt
eine andere Anordnung zum Verschachteln von Paketen von abgekürzten Segment-
und Knotendatensätzen
mit Paketen, welche Streckenführungsdaten
enthalten, die die aggregierten Datensätze enthalten, welche abgekürzte Segment-
und Knotendatensätze
referenzieren. In 20 sind die Pakete, welche abgekürzte Segment-
und Knotendatensätze
enthalten, so gebildet, dass sie eine Größe aufweisen, welche einer
gewünschten
Paketgröße entspricht,
und sind so gebildet, dass sie einen im Allgemeinen hohen Füllprozentsatz
aufweisen. In einer Ausführungsform
können
die Pakete, welche die abgekürzten
Segment- und Knotendatensätze
enthalten, gleiche Größe haben
wie die Streckenführungsdatenpakete,
welche die aggregierten Segmentdatensätze enthalten, welche sich
auf sie beziehen. Wenn beispielsweise die Streckenführungsdatenpakete
in einer Größe von 16 K
bereitgestellt sind, können
die Pakete, welche die abgekürzten
Segment- und Knotendatensätze
enthalten, auch in Größen von
jeweils 16 K bereitgestellt sein. Andere Größen sind ebenfalls geeignet.
-
In 20 sind
die Pakete, welche die Streckenführungsdaten
enthalten, mit den Paketen, welche die abgekürzten Segment- und Knotendatensätze enthalten,
verschachtelt. In einer vorliegenden Ausführungsform ist jedes Paket,
welches abgekürzte
Segment- und Knotendatensätze
enthält,
zusammengruppiert mit dem einen oder mehreren Streckenführungspaketen,
welche die aggregierten Segmentdatensätze enthalten, auf die sich
sie beziehen. In einer Ausführungsform
sind die Pakete, welche die abgekürzten Segment- und Knotendatensätze enthalten,
welche durch aggregierte Segmentdatensätze referenziert sind, die
in einem oder mehreren Streckenführungspaketen
enthalten sind, unmittelbar nach diesen Streckenführungspaketen
angeordnet. In einer alternativen Ausführungsform können die Pakete,
die die abgekürzten
Segment- und Knotendatensätze
enthalten, welche durch aggregierte Segmentdatensätze referenziert
sind, welche in einem oder mehreren Streckenführungspaket enthalten sind,
unmittelbar vor diesen Streckenführungspaketen
angeordnet sein. In einer bevorzugten Ausführungsform hängt die
Platzierung der Pakete, welche die abgekürzten Datensätze enthalten,
von der räumlichen
Organisation der Daten innerhalb der Schicht ab, wie dies nachfolgend
beschrieben wird.
-
Bezugnehmend
auf 20 folgt vier Paketen der Schicht n, welche Streckenführungsdaten enthalten,
ein Paket, welches abgekürzte
Segment- und Knotendatensätze enthält. Das
eine Paket, welches die abgekürzten
Segment- und Knotendatensätze
enthält,
enthält
alle abgekürzten
Segment- und Knotendatensätze, welche
durch alle aggregierten Segmentdatensätze referenziert sind, welche
in den vier Streckenführungsdatenpaketen
enthalten sind, die ihm unmittelbar vorangehen. In 20 folgen dem
ersten abgekürzten
Datensatzpaket zwei weitere Streckenführungspakete, welche von einem
anderen Paket gefolgt werden, welches abgekürzte Datensätze enthält. Dieses zweite Paket von
abgekürzten
Datensätzen
enthält
die abgekürzten
Datensätze, welche
durch die aggregierten Segmentdatensätze referenziert sind, welche
in den zwei Streckenführungspaketen
enthalten sind, die ihm unmittelbar vorangehen. In der in 20 dargestellten
Ausführungsform
ist die Anzahl der Pakete von Streckenführungsdaten und die Anzahl
von Paketen von abgekürzten
Datensätzen
bestimmt, um (1) eine gewünschte
Paketgröße und einen
gewünschten
Füllprozentsatz
unter diesen Paketen in der Schicht beizubehalten, und (2) die räumlich in
Paketen angeordneten Streckenführungspakete
nahe den räumlich
in Paketen angeordneten abgekürzten
Datensatzpakete zu halten, welche die gleichen geografischen Merkmale
repräsentieren.
Die in 20 dargestellte Ausführungsform
kombiniert den Vorteil, dass die abgekürzten Segment- und Knotendatensätze relativ nahe
zu den aggregierten Segmentdatensätzen gespeichert sind, welche
sich auf sie beziehen, mit dem Vorteil, dass alle Pakete im Allgemeinen
einer gewünschten
Paketgröße und einem
gewünschten
Füllprozentsatz
entsprechen.
-
c) Prozess zum Bilden
von verschachtelten Daten
-
Wie
oben erwähnt,
werden die Streckenführungspakete
in einer bevorzugten Ausführungsform in
räumlichen
Paketen angeordnet und in ähnlicher Weise
werden die Pakete, welche die abgekürzten Segment- und Knotendatensätze enthalten,
räumlich in
Paketen angeordnet. In einer bevorzugten Ausführungsform werden die Pakete,
welche die abgekürzten
Segment- und Knotendatensätze
enthalten, gleichzeitig mit den Streckenführungspaketen in Paketen angeordnet,
mit denen sie verschachtelt werden. Ein Prozess zum Bilden der verschachtelten
Anordnung wird nachfolgend beschrieben.
-
Prozesse
zum Bilden einer geografischen Datenbank einschließlich geschichteter,
in Paketen angeordneter Streckenführungsdaten sind in den Anmeldungen
mit den Nummern 08/924,328, 08/935,809 und 08/740,295 offenbart.
Zusammenfassend ist ein Prozess zum Bilden einer geschichteten,
in Paketen angeordneten, geografischen Datenbank, welche wenigstens
einen verschachtelten Teil aufweist, in 21 dargestellt.
(In 21 sind die allgemeinen Schritte des Prozesses
an der linken Seite gezeigt und die entsprechenden Komponententeile,
welche in den Schritten verwendet werden, sind auf der rechten Seite
dargestellt.)
-
Ausgehend
von der geografischen Datenbank 900, welche in einem generalisierten
Datenformat bereitgestellt ist, werden verschiedene Zwischenformatdateien 902 für jeden
Datentyp und jede Schicht gebildet (bei Schritt A). Die geografische
Datenbank 900 mit generalisiertem Datenformat kann in einem
proprietären
Format oder in einem nicht proprietären Format sein. In der geografischen
Datenbankdatei 900 mit generalisiertem Datenformat können die
geografischen Daten bis auf Typ und Schicht undifferenziert sein.
Diese Zwischenformatdateien 902, welche aus der Datenbankdatei 900 mit
generalisiertem Datenformat gebildet sind, werden erzeugt, um jeden
der unterschiedlichen Typen von Daten abzuleiten, wie beispielsweise
Streckenführung,
Kartografie, interessante Punkte, Manöver, usw., wie dies in 5 dargestellt
ist, und ebenso, um jede der Schichten von einigen dieser Typen
abzuleiten, wie dies in 6 dargestellt ist.
-
Nachdem
jede von diesen getrennten Zwischenformatdateien 902 erzeugt
ist, wird jede dieser Zwischenformatdateien 902 in Pakete
angeordnet, um Pakete 906 von Datensätzen von jedem Datentyp für jede Schicht
zu bilden (bei Schritt B). Unterschiedliche Arten von Paketbildungsprozessen
können
verwendet werden, einschließlich
verschiedener Arten von Prozessen für räumliche Paketbildung, wie oben beschrieben.
Sobald die Pakete 906 für
jeden der getrennten Typen und Schichten gebildet sind, werden die
Pakete 906 jede Schicht und jeden Typ in einer einzelnen
Datei 910 aneinander gehängt (bei Schritt C). Unter
Bezugnahme auf einen Teil der aneinander gehängten Datei 910, in
welcher Pakete verschachtelt sind, werden die Pakete von den zwei
oder mehr in Paketen angeordneten Zwischendateien 906 gewählt und
verschachtelt (bei Schritt D), wie dies nachfolgend detaillierter
beschrieben wird.
-
Sobald
die getrennten Pakete 906 für jeden der separaten Typen
und jede der Schichten gebildet sind, werden Paketidentifikationen
zugewiesen. Nachdem alle getrennten Pakete 906 für jeden
der getrennten Typen und jede Schicht in einer einzelnen Datei 910 aneinander
gereiht sind und Paketidentifikationen zugewiesen sind, werden die
Paketreferenzen über
alle Datensätze
und -indizes aktualisiert, um die neu zugewiesenen Paketidentifikationen
einzubeziehen, um eine Endformatdatei 912 zu bilden (bei Schritt
E).
-
Diese
allgemeinen Schritte zum Bilden einer geografischen Datenbank repräsentieren
nur eine Art, wie eine geografische Datenbank gebildet werden kann,
und es ist klar, dass es auch andere Verfahren zum Bilden einer
geografischen Datenbank gibt, welche das Verschachteln von unterschiedlichen
Datentypen einschließt.
Eine detailliertere Beschreibung von Aspekten des Prozesses zum
Bilden einer geografischen Datenbank, welche einen verschachtelten
Teil aufweist, wird wie folgt beschrieben: Um eine geografische
Datenbank zu bilden, welche unterschiedliche Datentypen verschachtelt,
wird gemäß einer
Ausführungsform
eine getrennte Zwischendatei gebildet für jeden der unterschiedlichen Datentypen,
welche verschachtelt werden sollen. Um beispielsweise eine geografische
Datenbank zu bilden, welche Pakete enthält, die Streckenführungsdaten
enthalten, welche aggregierte Segmentdatensätze und getrenne Pakete, welche
abgekürzte
Segment- und Knotendatensätze
enthalten, die durch die aggregierten Segmentdatensätze referenziert
sind (wie in den 17–20 dargestellt),
bilden, werden getrennte Zwischenformatdateien gebildet für die Streckenführungsdaten
und für
die abgekürzten Segment-
und Knotendaten. Die getrennte Zwischenformatdatei für die abgekürzten Datensätze enthält die Teile
der geografischen Datenbankdatei mit generalisiertem Datenformat,
welche notwendig sind, um die abgekürzten Segment- und Knotendatensätze abzuleiten
(wie beispielsweise die Datensätze 522 und 523 in
den 13 bzw. 14).
-
Wenn
Pakete, welche abgekürzte
Datensätze
enthalten, mit Paketen verschachtelt werden sollen, welche Streckenführungsdaten
mehr als einer Schicht enthalten, werden getrennte Zwischenformatdateien
von abgekürzten
Segment- und Knotendatensätzen
für jede
getrennte Schicht gebildet. In einer vorliegenden Ausführungsform
werden die abgekürzten
Segment- und Knotendatensätze
in Paketen gespeichert, welche getrennt sind von den aggregierten
Segment- und Knotendatensätzen,
welche sich auf sie nur in der höchsten
Schicht der Streckenführungsdaten
beziehen (d.h. Schicht n, wobei n = 4). In alternativen Ausführungsformen
können
allerdings abgekürzte
Segment- und Knotendatensätze
in Paketen gespeichert werden, welche getrennt sind von den aggregierten
Segment- und Knotendatensätzen, welche
sich in irgendeiner Schicht auf sie beziehen, welche die aggregierten
Segmentdatensätze
enthält.
-
In
weiteren alternativen Ausführungsformen, wenn
Datentypen, die nicht Streckenführungsdaten und
nicht abgekürzte
Datensätze
sind, verschachtelt werden sollen, werden Zwischenformatdateien
dieser unterschiedlichen Datentypen nach Notwendigkeit gebildet.
-
Sobald
die Zwischenformatdteien für
jede Schicht von Streckenführungsdaten
und jede Schicht von abgekürzten
Segment- und Knotendatensätzen gebildet
sind, wird jede dieser Zwischenformatdateien in Paketen angeordnet.
In einer bevorzugten Ausführungsform
wird die Streckenführungsdatenschicht 0
zuerst in Paketen angeordnet. Alternativ können andere der Datentypen,
wie beispielsweise die kartografischen Daten oder die Manöverdaten,
zuerst in Paketen angeordnet werden. Beim In-Pakete-Anordnen der
Streckenführungsdaten
der Schicht 0 kann irgendein geeignetes Paketbildungsverfahren verwendet
werden, wie beispielsweise irgendeines der Paketbildungsverfahren,
die in den Anmeldungen mit den Nummern 08/924,328, 08/935,809 und 08/740,295
offenbart sind.
-
Nachdem
die Streckenführungsdaten
der Schicht 0 in Paketen angeordnet sind, werden die höheren Schichten
der Streckenführungsdaten
in Paketen angeordnet. In einer bevorzugten Ausführungsform werden die höheren Schichten
der Streckenführungsdaten
parallel zum Paketbildungsverfahren, welches für die Streckenführungsdaten
der Schicht 0 verwendet wurde, in Paketen angeordnet. Dies bedeutet,
dass, wenn Pakete für
eine höhere
Schicht von Streckenführungsdaten
gebildet werden, die gleichen Grenzen verwendet werden, welche im
Verfahren zum Bestimmen der rechteckigen Gebiete, welche der Streckenführungsschicht
0 zugeordnet sind, um die rechteckigen Gebiete zu definieren, welche
jedem Paket höherer
Schicht zugeordnet werden. Da selbstverständlich höhere Schichten von Daten weniger
Datensätze
enthalten, können
Pakete höherer
Schichten größeren rechteckigen
Gebieten zugeordnet werden. Wenn irgendein Paket höherer Schicht
einem größeren rechteckigen
Gebiet als einem Paket tieferer Schicht zugeordnet wird, werden die
rechteckigen Gebiete, welche den Paketen höherer Schicht zugeordnet sind,
exakt die kleineren rechteckigen Gebiete umfassen, welche mit einem oder
mehr Streckenführungsdatenpaketen
niedrigerer Schicht zugeordnet sind.
-
Nachdem
die Zwischenformatdatei, welche eine Schicht von Streckenführungsdaten
mit aggregierten Segmenten repräsentiert,
in Paketen angeordnet ist, wird die Zwischenformatdatei, die die
abgekürzten
Segment- und Knotendatensätze
für die gleiche
Schicht enthält,
in Paketen angeordnet. (Es ist anzumerken, dass die Zwischenformatdatei,
welche die abgekürzten
Segment- und Knotendatensätze
enthält,
sofort nachdem die Schicht von Streckenführungsdaten in Paketen angeordnet
ist, in Paketen angeordnet werden kann, oder alternativ kann die Zwischenformatdatei,
welche die abgekürzten
Segment- und Knotendatensätze
enthält,
in Paketen angeordnet werden, nachdem andere Typen von Schichten
von Daten in Paketen angeordnet sind.) In einer bevorzugten Ausführungsform
wird die Zwischenformatdatei, welche die abgekürzten Segment- und Knotendatensätze enthält, parallel
mit den Streckenführungsdaten
in Paketen angeordnet. Die parallele bzw. gleichzeitige Paketbildung
der Zwischenformatdatei, welche die abgekürzten Segment- und Knotendatensätze enthält, ist ähnlich zur
parallelen Paketbildung von Zwischenformatdateien höherer Schichten
von Streckenführungsdaten,
wie oben beschrieben. Es werden also die gleichen Grenzen, welche
für die
rechteckigen Gebiete definiert sind, die mit Streckenführungspaketen
der Schicht 0 zugeordnet sind, im nötigen Ausmaß verwendet, um rechteckige
Gebiete zu definieren, welche Paketen von abgekürzten Segment- und Knotendatensätzen zugeordnet
sind. Ein einem Paket von abgekürzten
Segment- und Knotendatensätzen
zugeordnetes rechteckiges Gebiet entspricht entweder exakt dem rechteckigen
Gebiet, welches dem Streckenführungsdatenpaket
zugeordnet ist, welches die aggregierten Segmentdatensätze enthält, welche
sich auf die abgekürzten
Segment- und Knotendatensätze
beziehen, oder entspricht exakt zwei oder mehr rechteckigen Gebieten,
welche zwei oder mehr Streckenführungsdatenpaketen
zugeordnet sind, welche die aggregierten Segmentdatensätze enthalten,
welche sich auf die abgekürzten
Segment- und Knotendatensätze beziehen.
Diese Anordnung ist grafisch in 22 dargestellt.
(Im Falle, dass die abgekürzten
Datensätze,
welche durch die aggregierten Segmentdatensätze einem Paket von Streckenführungsdaten
referenziert sind, eine wesentlich größere Datenmenge als das Streckenführungspaket
enthalten, trifft die umgekehrte Beziehung zu, d.h. die rechteckigen
Gebiete, welche zwei oder mehr abgekürzten Datensatzpaketen zugeordnet
sind, umfassen exakt die rechteckigen Gebiete, welche einem einzelnen
Streckenführungspaket
zugeordnet sind.)
-
22 zeigt
eine Karte 612 eines Teils einer geografischen Region.
Die Region ist mit mehreren Grenzlinien überlagert. Diese Grenzlinien
sind entsprechend einem Paketbildungsverfahren ausgewählt, um
mehrere rechteckige Gebiete zu bestimmen. Wie oben erwähnt, kann
irgendeine geeignete Paketbildungsmethode verwendet werden. Die
Grenzen, welche jedes der rechteckigen Gebiete bilden, sind so ausgewählt, dass
jedes rechteckige Gebiet geografische Merkmale umfasst, die durch
geografische Datensätze
repräsentiert
sind, welche innerhalb eines getrennten Pakets für eine gegebene Schicht und
gegebene Datentypen enthalten sind. In 22 definieren
die Grenzen die rechteckigen Gebiete, welche geografische Merkmale
umfassen, welche durch Streckenführungsdatensätze repräsentiert sind,
die in getrennen Paketen von Streckenführungsdaten der Schicht 0 enthalten
sind. (Es ist klar, dass 22 nur
einen Teil einer geografischen Region darstellt. In einer geografischen
Region, welche durch eine geografische Datenbank repräsentiert
ist, wie beispielsweise die geografische Datenbank 40, welche
mit einem Navigationssystem 10 in 1 verwendet
wird, können
Hunderte solcher rechteckiger Gebiete vorhanden sein, wobei jedes
einem getrennten Paket von Streckenführungsdaten der Schicht 0 zugeordnet
ist.)
-
Wenn
Pakete von abgekürzten
Segment- und Knotendatensätzen
gebildet werden, werden die zuvor für die Streckenführungsdaten
der Schicht 0 definierten Grenzlinien verwendet, um die rechteckigen
Gebiete zu definieren, welche die abgekürzten Segment- und Knotendatensätze umfassen,
welche in jedem Paket enthalten sein sollen. In einer vorliegenden
Ausführungsform
weisen diese abgekürzten Segment-
und Knotendatensätze
relativ kleinere Datengrößenanforderungen
auf, als die Streckenführungsdaten
für ein
entsprechendes Gebiet. Pakete, welche von abgekürzten Segment- und Knotendatensätzen gebildet
sind, können
daher größer bemessene
rechteckige Gebiete repräsentieren.
Da die beim Definieren eines einem Paket zugeordneten rechteckigen
Gebiets zu verwendenden Grenzlinien durch diejenigen bedingt sind,
welche zuvor für
Streckenführungsdaten
der Schicht 0 definiert worden sind, enthält ein rechteckiges Gebiet,
welches einem Paket von abgekürzten
Segment- und Knotendatensätzen
zugeordnet ist, ganze rechteckige Gebiete, welche Streckenführungsschichtpaketen
zugeordnet sind. Beispielsweise in 22, wenn
die abgekürzten
Segment- und Knotendatensätze,
welche die Merkmale repräsentieren,
die in den vier rechteckigen Gebieten 650(1), 650 (2), 650(3) und 650(4) enthalten
sind, kleiner sind als eine maximale Paketgröße, kann ein Paket mit all
diesen abgekürzten
Segment- und Knotendatensätzen
gebildet werden. In ähnlicher
Weise, wenn die abgekürzten
Segment- und Knotendatensätze,
welche die Merkmale repräsentieren,
die in den zwei rechteckigen Gebieten 650(5) und 650(6) enthalten
sind, kleiner sind als eine maximale Paketgröße, kann ein Paket dieser abgekürzten Segment-
und Knotendatensätze
gebildet werden.
-
Nach
der Paketbildung enthält
die Zwischenformatdatei die in Paketen angeordneten abgekürzten Segment-
und Knotendatensätze
in mehreren Paketen. Jedes Paket ist bis zu einer gewünschten Größe aufgefüllt. Die
Pakete sind in einer Reihenfolge angeordnet, welche die räumliche
Organisation der Daten widerspiegelt.
-
Wenn
die Zwischenformatdatei, welche die Streckenführungsdaten für Schicht
n enthält,
in Paketen angeordnet ist und die Zwischenformatdatei, welche die
abgekürzten
Segment- und Knotendaten für
Schicht n enthält,
in Paketen angeordnet ist, können
die Pakete der zwei Zwischenformatdateien unterschiedlicher Datentypen
verschachtelt werden. Die zu verschachtelnden Zwischenformatdateien werden
für einen
Compiler oder einen anderen Prozess gekennzeichnet, welcher die
Endformatgeografische-Datenbank-Datei bildet. Die gekennzeichneten
bzw. identifizierten Dateien sind Input für den Compiler oder ein anderes
Programm oder Prozess. (In einer vorliegenden Ausführungsform
empfängt der
Compiler als Input auch die Schichten und Datentypen, die nicht
verschachtelt werden.)
-
Wie
in 21 dargestellt, wird dann beim Bilden der geografischen
Datenbankdatei im Endformat der Teil der Datei, welcher verschachtelte
Pakete unterschiedlicher Datentypen enthält, unter anderen Teilen enthalten
sein, welche nicht verschachtelte Pakete enthalten, sofern vorhanden.
Beispielsweise kann der Compiler die nicht verschachtelten Pakete und
Streckenführungsdaten
der Schicht 0 speichern, gefolgt von nicht verschachtelten Paketen
von Streckenführungsschicht
1, usw. Wenn der Compiler zu einer verschachtelten Schicht gelangt
(z.B. Streckenführungsdaten
der Schicht n), sind sowohl die in Paketen angeordnete Zwischenformatdatei,
welche Streckenführungsdaten
der Schicht n enthält,
und die in Paketen angeordnete Zwischenformatdatei, welche die abgekürzten Datensätze der
Schicht 4 enthält,
vorhanden. Beim Bilden der geografischen Datenbankdatei im Endformat
wird die räumliche
Organisation der Streckenführungsdaten
und abgekürzten Datensätze in der
verschachtelten Schicht beibehalten. Um das Beibehalten der räumlichen
Organisation der Daten zu vereinfachen, wird während des Verschachtelungsprozesses
ein kd-Baum verwendet. 23 zeigt einen kd-Baum, welcher die
Pakete repräsentiert,
die aus den Daten gebildet sind, welche innerhalb der rechteckigen
Gebiete von 22 umfasst sind. In einer bevorzugten
Ausführungsform wird
ein kd-Baum während
der Paketbildung der Streckenführungsdaten
der Schicht 0 gebildet. Ein Eintrag oder Knoten im kd-Baum wird
jedem "Schnitt" zugeordnet (d.h.
Teilung) eines umfassenden rechteckigen Gebiets, welches gemacht
wird, wenn individuell kleinere rechteckige Gebiete gebildet werden, die
jedem der Pakete von Streckenführungsdaten der
Schicht 0 zugeordnet sind. Jeder Blattknoten (d.h. ein Knoten mit
keinem Kindknoten) des kd-Baums repräsentiert eines der Streckenführungspakete
der Schicht 0. Ein Paket der Schicht 0 kann daher unter Verwendung
dieses kd-Baums gefunden werden. (Eine Form des kd-Baums kann als
eine Datei gespeichert werden und als Suchwerkzeug verwendet werden,
um Daten räumlich
innerhalb der Pakete zu bilden, wie dies für den Fachmann bekannt ist.)
Jedes Paket (wie beispielsweise ein Paket höherer Schicht oder ein Paket
von abgekürzten
Datensätzen),
welches gebildet ist, ohne alle für die Pakete der Schicht 0
notwendigen Schnitte zu machen, ist durch einen der internen Knoten
des kd-Baums repräsentiert.
-
Der
beim Paketbilden der Streckenführungsdaten
der Schicht 0 gebildete kd-Baum
kann auch verwendet werden, wenn die Pakete von Streckenführungsdaten
und die Pakete von abgekürzten
Datensätzen
verschachtelt werden (wie in Schritt D in 21 dargestellt).
Die rechteckigen Gebiete, welche den Paketen von Streckenführungsdaten
der Schicht 4 zugeordnet sind und Pakete von abgekürzten Datensätzen müssen nicht
notwendigerweise exakt die gleichen Grenzen aufweisen (d.h. in 22) wie
die rechteckigen Gebiete, welche den Paketen von Streckenführungsdaten
der Schicht 0 zugeordnet sind, die verwendet werden, um den kd-Baum
zu bilden. Ferner müssen
die rechteckigen Gebiete, welche den Paketen von abgekürzten Datensätzen zugeordnet
sind, nicht notwendigerweise die exakt gleichen Grenzen aufweisen
wie die rechteckigen Gebiete, welche den Paketen von Streckenführungsdaten
der Schicht 4 zugeordnet sind. Die zum Bilden der Paketgrenzen der
Streckenführungsschicht
4 und zum Bilden der abgekürzten
Datensatzpaketgrenzen verwendeten Schnitte sind allerdings im kd-Baum
enthalten, da diese Schnitte beim Prozess des Bildens der Streckenführungspakete
der Schicht 0 erzeugt werden. Wenn diese unterschiedlichen Datentypen
verschachtelt werden, kann der kd-Baum entsprechend verwendet werden,
um die Pakete dieser unterschiedlichen Datentypen räumlich zu
organsieren. Die Knoten des kd-Baums werden in einer Reihenfolge
durchquert. Da in der Reihenfolge jeder der Knoten des kd-Baums
angetroffen wird, wenn ein Streckenführungspaket der Schicht 4 oder
ein abgekürztes
Datensatzpaket durch den Schnitt gebildet ist, welcher dem kd-Baumknoten
zugeordnet ist, wird das Paket (Streckenführung oder abgekürzter Datensatz
oder beides) dem Teil der Endformatdatei hinzugefügt, welcher
den Streckenführungsdaten
der Schicht 4 entspricht. Beim Durchqueren des kd-Baums in der Reihenfolge
können
die Streckenführungspakete
der Schicht 4 und abgekürzte
Datensatzpakete, welche den gleichen geografischen Merkmalen zugeordnet
sind, identifiziert und zusammengruppiert werden in dem Teil der
Endformatdatei, welcher der Streckenführungsschicht 4 entspricht. Da
die abgekürzten
Datensätze
die gleichen geografischen Merkmale wie die aggregierten Segmentdatensätze repräsentieren,
welche sich auf sie beziehen, können
auf diese Weise durch Verwenden der repräsentierten geografischen Merkmale
die abgekürzten
Segmentdatensätze
nahe bei den aggregierten Segmentdatensätzen platziert werden, welche sich
auf sie beziehen.
-
Nachdem
die Streckenführungsdatenpakete und
abgekürzten
Datensatzpakete verschachtelt sind, können sie mit den Paketen von
anderen Typen und Schichten in der Endformatdatei aneinander gereiht
werden. Paketidentifikationsnummern werden zugewiesen und Paketreferenzen
innerhalb jedes Pakets werden aktualisiert, sofern notwendig, um
die Endformatdatei 912 zu bilden (in Schritt E von 21).
-
d) Alternative verschachtelte
Ausführungsformen
-
Zum
Zweck der oben beschriebenen Ausführungsform ist offenbart worden,
dass Pakete, welche die abgekürzten
Datensätze
enthalten, in der gleichen Schicht verschachtelt werden können wie
Pakete, welche andere Arten von Daten enthalten, wie beispielsweise
Streckenführungsdaten
einschließlich aggregierter
Segmentdatensätze.
Verschachteln von unterschiedlichen Datentypen kann auf andere Datentypen
ausgeweitet werden. Irgendwelche zwei Arten von räumlich organisierten
Daten können
auf irgendeiner Ebene verschachtelt werden, um Vorteile für gewisse
Navigationsfunktionen bereitzustellen. Beispielsweise können kartografische
Daten mit Daten über interessante
Punkte verschachtelt werden. In ähnlicher
Weise können
kartografische Daten mit Streckenführungsdaten verschachtelt werden.
Ebenso können
nicht räumlich
organisierte Datentypen miteinander oder mit räumlich organisierten Datentypen
verschachtelt werden.
-
In
einer anderen Ausführungsform
können Indexdateien
gewisser Arten von Datentypen mit dem Datentyp verschachtelt werden,
welcher indexiert ist.
-
In
weiteren alternativen Ausführungsformen können Pakete
unterschiedlicher Typen gemäß einer maßgeschneiderten
Reihenfolge verschachtelt werden. Die maßgeschneiderte Reihenfolge
kann durch eine arbiträre
Funktion definiert sein, welche ein explizites Reihenfolge- bzw.
Anordnungsmuster spezifiziert. Während
der Bildung der Endformatdatei enthält der Compiler Instruktionen
zusammen mit der Identifikation von den zwei oder mehr Pakettypen, welche
verschachtelt werden sollen. Die Instruktionen spezifizieren das
Muster und/oder die Reihenfolge für jedes Paket von jedem Typ.
Der Compiler implementiert dann diese Reihenfolge, wenn die Pakete in
der Endformatdatei verschachtelt werden.
-
V. WEITERE ALTERNATIVE
AUSFÜHRUNGSFORMEN
-
Die
zuvor beschriebenen Ausführungsformen
repräsentieren
nur spezifische Implementierungen der hierin offenbarten Erfindungskonzepte.
Von verschiedenen anderen Implementierungen und alternativen Ausführungsformen
wird gedacht, dass sie innerhalb des Bereichs der vorliegenden Offenbarung
umfasst sind. In den offenbarten Ausführungsformen sind beispielsweise
aggregierte Segmentdatensätze
in höheren
Schichten gespeichert, welche physikalisch unterschiedlich von der
untersten Schicht von Daten sind (z.B. "Schicht 0"). In einer alternativen Ausführungsform
können
getrennte Schichten von Daten bereitgestellt werden, ohne physikalisch
getrennte Schichten zu speichern. Die getrennten Schichten können stattdessen
durch Unterdrücken
gewisser Ränge
von Daten während
der Laufzeit der Navigationsfunktionen bereitgestellt sein.
-
Beim
Verwenden der Unterdrückung
von Rängen
in dieser Art und Weise können
einige oder alle der getrennten Schichten kombiniert werden, und
Rangunterdrückung
kann falls benötigt
auch verwendet werden, um die Anzahl von Datensätzen zu reduzieren, welche
geprüft
werden sollen, anstelle des Bereitstellens getrennter Schichten.
-
In
anderen alternativen Ausführungsformen können aggregierte
Segmente und aggregierte Segmentdatensätze in verschiedener Art und
Weise gebildet sein. In den offenbarten Ausführungsformen repräsentiert
die Verwendung eines Rangattributs, welche getrennte Schichten definiert,
eine Art, wie aggregierte Segmentdatensätze gebildet werden können. In
alternativen Ausführungsformen
können
allerdings aggregierte Segmentdatensätze gebildet werden, ohne Rangattribute
zu verwenden. Beispielsweise können
aggregierte Segmente gebildet werden durch Berücksichtigung von Verkehrsmustern oder
Fahrzeugverwendung.
-
In
weiteren alternativen Ausführungsformen sollte
das Navigationssystem auch dahingehend verstanden werden, dass es
irgendein Computerbasiertes System enthält, welches Navigationsfunktionen für einen
Endanwender bereitstellt, unabhängig
von Hardwareplattform oder -architektur. Das Navigationssystem kann
beispielsweise irgendeine Art von tragbarem System enthalten, einschließich Handheld-Systeme,
Systeme, welche auf PDAs (Personal Digital Assistants) installiert
sind, oder auf Notebook-Computern. In alternativen Ausführungsformen kann
das Navigationssystem Navigationsapplikationssoftware enthalten,
welche auf einem Personal Computer installiert ist, wie beispielsweise
einem Desktop-Computer.
Ferner kann das Navigationssystem in verschiedenen unterschiedlichen
Umgebungen implementiert sein, einschließlich Netzwerkumgebungen und
Client-Server-Plattform-Umgebungen. Das Navigations-Applikationsprogramm
und die geografische Datenbank müssen
nicht am gleichen Ort angeordnet sein, sondern können über ein Netzwerk verbunden
sein. Die geografische Datenbank kann fern vom Endanwender angeordnet
sein, und die Daten können
zum Endanwender über
eine drahtlose Kommunikationsverbindung übertragen werden.
-
In
den oben beschriebenen Ausführungsformen
wurden geografische Daten als in Paketen angeordnet beschrieben.
Diese Datensätze
können entweder
komprimiert oder nicht komprimiert sein.
-
In
den zuvor beschriebenen Ausführungsformen
wurde eine gewisse Terminologie verwendet, um auf Komponenten, Datenstrukturen
usw. im Navigationssystem, der Applikation und der Datenbank zu
verweisen. Eine andere Terminologie kann verwendet werden, um diese
Arten von Entitäten
zu bezeichnen und es ist klar, dass es nicht beabsichtigt ist, dass
der hierin offenbarte Inhalt auf irgendeine spezielle Terminologie
beschränkt
ist, welche ähnliche
Konzepte ausdrückt.
-
Es
ist beabsichtigt, dass die vorangegangene detaillierte Beschreibung
eher illustrativ als einschränkend
betrachtet wird, und dass es verstanden wird, dass die folgenden
Ansprüche
einschließlich
aller Äquivalente
den Bereich der Erfindung definieren sollen.