-
HINWEIS AUF
VERWANDTE ANMELDUNGEN
-
Die vorliegende Erfindung ist verwandt
mit der US-Anmeldung Nr. 08/740 298, "INTERFACE LAYER FOR NAVIGATION SYSTEM", angemeldet am 25.
Oktober 1996 und auf die Erwerberin der vorliegenden Anmeldung übertragen.
-
HINTERGRUND
DER Erfindung
-
Die vorliegende Erfindung betrifft
Verfahren und Vorrichtungen zum Speichern von geografischen Informationen
auf physischen Speichermedien, und insbesondere betrifft die vorliegende
Erfindung Verfahren und Vorrichtungen zum Bereitstellen von geografischen
Daten auf einem physischen Speichermedium zum Gebrauch in einem
computer-basierten Navigationssystem.
-
Computer-basierte Navigationssysteme
zum Gebrauch an Land sind in vielen verschiedenen Formen verfügbar und
stellen viele verschiedene nützliche
Merkmale bereit. Ein beispielhafter Typ von Navigationssystem verwendet
(1) einen detaillierten Datensatz (oder eine Karte) eines geografischen
Bereichs oder einer Region, (2) ein Navigationsanwendungsprogramm,
(3) geeignete Computerhardware wie einen Mikroprozessor und einen
Speicher und fakultativ (4) ein Positioniersystem. Der detaillierte
geografische Datensatzbereich des Navigationssystems kann Informationen über die
Positionen von Straßen
und Kreuzungen in einem oder in bezug auf ein bestimmtes geografisches
Gebiet aufweisen und kann ferner auch Informationen über Attribute
wie etwa Einbahnstraßen
und Abbiegebeschränkungen
sowie über
Postanschriften, alternative Routen, Hotels, Restaurants, Museen,
Sportstadien, Büros,
Kraftfahrzeughändler,
Reparaturwerkstätten
usw. enthalten.
-
Das Positioniersystem kann eine von
mehreren wohlbekannten Technologien verwenden, um den physischen
Ort einer Person in einem geografischen Gebiet zu bestimmen oder
näherungsweise
zu bestimmen. Beispielsweise kann das Positioniersystem ein System
vom GPS-Typ (Global Positioning System), ein System vom Koppelnavigationstyp
oder Kombinationen davon oder andere Systeme verwenden, die sämtlich auf
dem Gebiet wohlbekannt sind.
-
Der Navigationsanwendungsprogrammbereich
des Navigationssystems ist ein Softwareprogramm, das den detaillierten
geografischen Datensatz und das Positioniersystem (falls verwendet)
nutzt. Das Navigationsanwendungsprogramm kann dem Anwender eine
grafische Anzeige (z. B. eine "Karte") seines spezifischen
Orts in dem geografischen Bereich bieten. Außerdem kann das Navigationsanwendungsprogramm
dem Anwender auch bestimmte Richtungsanweisungen zu Positionen in
dem geografischen Bereich liefern, und zwar ausgehend von seinem
jeweiligen Standort.
-
Manche Navigationssysteme kombinieren
das Navigationsanwendungsprogramm, den geografischen Datensatz und
fakultativ das Positioniersystem in einer einzigen Einheit. Solche
Einzeleinheitssysteme können in
Fahrzeugen installiert oder von Personen getragen werden. Alternativ
können
Navigationsanwendungsprogramme und geografische Datensätze als
Softwareprodukte bereitgestellt werden, die an Anwender verkauft oder
in Lizenz vergeben werden und die sie auf ihre eigenen PCs laden
können.
PC-basierte Systeme können entweder
Einzelsysteme sein oder eine Nachrichtenverbindung zu einem zentralen
oder regionalen System nutzen. Alternativ kann das Navigationssystem
zentral oder regional vorgesehen und für eine Vielzahl von Anwendern
auf "Bedarfsbasis" oder alternativ
online über
eine Nachrichtenverbindung zugänglich
sein. Navigationssysteme können
auch von Betreibern von Fahrzeugflotten wie etwa Transportunternehmen,
Paketzustelldiensten usw. genutzt werden. Navigationssysteme können auch
von Einheiten genutzt werden, die mit der Verkehrslenkung und -überwachung
zu tun haben. In Fahrzeuge eingebaute Navigationssysteme können eine drahtlose
Nachrichtenverbindung nutzen. Außerdem können Anwender auf ein zentrales
Navigationssystem über
einen Onlinedienst wie das Internet oder über private Wähldienste
wie CompuServe, Prodigy und America Online zugreifen.
-
Computerbasierte Navigationssysteme
versprechen Anwendern ein hohes Maß an Navigationshilfen. Navigationssysteme
können
genaue Anweisungen für
die Reise zu bestimmten Zielen bieten und dadurch die Reisezeit
und Reisekosten reduzieren. Navigationssysteme können außerdem erweiterte Navigations-Features bieten,
etwa Reisenden helfen, durch Baumaßnahmen bedingte Verzögerungen
zu vermeiden und die schnellste Route zu gewünschten Zielen zu finden. Navigationssysteme
können
auch genutzt werden, um Echtzeit-Verkehrsinformationen
einzubinden.
-
Ein potentielles Hindernis bei der
Bereitstellung von erweiterten Features in einem Navigationssystem ist
die Notwendigkeit, die geografischen Informationen auf einem computerlesbaren
Speichermedium auf effiziente, vielseitige, kostengünstige und
flexible Weise bereitzustellen. Außerdem sollten die geografischen
Informationen auf dem Speichermedium auf eine Weise gesichert sein,
die den Zugriff und die Nutzung durch den Navigationsanwendungsprogrammbereich
des Navigationssystems erleichtert. Es besteht also der Wunsch nach
einem verbesserten computerlesbaren Speichermedium, auf dem geografische
Daten zur Nutzung in Navigationssystemen gespeichert sind.
-
EP 0280795 A1 zeigt ein Verfahren zum Speichern
einer digitalen Datenbank durch Aufteilen derselben in Pakete. Die
Datenbank ist in Hauptzellen und dann in Basiszellen aufgeteilt.
Benachbarte Basiszellen sind nach Bedarf zu Gruppen zusammengefaßt, um die
Speicherpakete so vollständig
wie möglich
zu besetzen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die Erfindung stellt folgendes bereit:
ein Verfahren zum Speichern einer Mehrzahl von Datensätzen von
geografischen Daten auf einem Speichermedium gemäß dem Anspruch 1, ein Verfahren
zum Erstellen einer geografischen Datenbank gemäß dem Anspruch 15, eine Vorrichtung
zur Durchführung
dieser Verfahren und eine mit diesen Methoden formatierte geografische
Datenbank, die auf einem computerlesbaren Medium gespeichert ist.
-
Die geografischen Daten sind auf
eine Weise gespeichert, die die Nutzung von und den Zugriff auf
Daten durch verschiedene Navigationsanwendungsfunktionen in Navigationssystemen,
die diese Daten nutzen, erleichtert und erweitert.
-
Ausführungsformen sehen ein Paketbildungsverfahren
vor, um die geografischen Daten in einzelne Pakete aufzuteilen.
Das Paketbildungsverfahren ergibt Pakete mit Dateninhalten, die
kleiner als ein bestimmter maximaler Dateninhalt sind, jedoch einen
gewünschten
Füllprozentsatz
haben. Das Paketbildungsverfahren ergibt ferner eine Aufteilungsanordnung,
die die Adressierung und Erkennung der Pakete erleichtert.
-
Ausführungsformen sehen ferner einen
gemeinsamen Satz von Grenzen vor, die dazu dienen, alle räumlichen
Datenpakete (einschließlich
der Typen wie unabhängig
in Pakete aufgeteilte Datensätze)
zu definieren, so daß von
jeweils zwei räumlichen
Paketen jedes Typs ein Paket vollständig im anderen Paket enthalten
ist. Dadurch wird die Datenmenge reduziert, die notwendig ist, um
räumliche
Paketgrenzen in einem globalen kd-Baum-Index zu repräsentieren.
-
Ausführungsformen sehen ferner vor,
daß die
auf einem physischen Speichermedium gespeicherten geografischen
Daten spezielle Knotenentitäten
aufweisen. Jede spezielle Knotenentität repräsentiert eine ausgewählte Mehrzahl
von regulären
Knotenentitäten
in den geografischen Daten. Die ausgewählte Mehrzahl von regulären Knotenentitäten ist
als auf komplexe Kreuzungen von vielfachen Straßensegmenten wie Kreisverkehren,
Kleeblatt-Kreuzungen und Kreuzungen von Straßen mit Richtungstrennstreifen
bezogen identifiziert. In den geografischen Daten sind Straßensegment-Datenentitäten den
speziellen Knotenentitäten
zugeordnet und nicht den regulären
Knotenentitäten,
die durch die speziellen Knotenentitäten repräsentiert sind. Dann werden
in einem Routenberechnungsprogramm die speziellen Knotenentitäten anstelle
der regulären
Knotenentitäten
genutzt. Die speziellen Knotenentitäten schrumpfen Kreuzungen von
Vielfachstraßensegmenten
und regulären
Knotenentitäten
zu einfacheren Datendarstellungen, wodurch die Routenberechnung
vereinfacht wird.
-
Ausführungsformen sehen ferner ein
physisches Speichermedium vor, auf dem geografische Daten gespeichert
sind, die mindestens eine normalisierte Attributanordnung aufweisen.
Die normalisierte Attributanordnung ist als gesonderte Tabelle auf
dem Speichermedium vorhanden. Die normalisierte Attributanordnung umfaßt wiederkehrende
Kombinationen von bestimmten ausgewählten Attributen innerhalb
der geografischen Daten. In Entitäts-Datensätzen in den geografischen Daten
sind Indexe anstelle von Daten vorgesehen, die den ausgewählten Attributen
entsprechen. Die Indexe beziehen sich auf Einträge in der normalisierten Attributanordnung.
Wenn ein Navigationsanwendungsprogramm auf eine Daten-Entität zugreift,
wird der Eintrag in der normalisierten Attributtabelle, auf die
der Index in der Datenentität
weist, genutzt, um den gesamten Datensatz einschließlich der
bestimmten Kombination von Attributen, auf die der Index weist,
aufzubauen. Durch die Einbindung von Kombinationen von geografischen
Datenattributen in eine normalisierte Attributanordnung kann Speicherplatz
auf dem Medium eingespart und der Zugriff auf die Daten verbessert
werden.
-
Ausführungsformen sehen ferner ein
Kompilierungsverfahren vor, um Daten in einem Format bereitzustellen,
das den Zugriff auf die Daten auf einem physischen Medium vereinfacht.
Gemäß dem Kompilierungsverfahren
werden Dateien, die auf dem Medium zu speichern sind, in Datenpaketen
organisiert. Die Datensätze
innerhalb der Dateien werden durch das Datenpaket, in dem sie sich
befinden, identifiziert. Eine Anordnung sämtlicher Dateien auf dem Medium
wird festgelegt, und jedem Datenpaket wird eine Paketkennung zugeordnet,
die auf das Speichermedium bezogen ist. Querverweise zwischen Datensätzen werden
aktualisiert, um die zugeordneten Paketkennungen zu enthalten. Die
Dateien werden verkettet, während
gleichzeitig die Datenpakete erhalten bleiben, und die Verkettung
wird auf dem Medium gespeichert.
-
Zusammengesetzte Segmentdaten können in
manchen Schichten bestimmter Arten von geografischen Daten wie etwa
Daten, die zur Streckenführung
dienen, vorgesehen sein. Diese zusammengesetzten Segmente werden
genutzt, um eine Mehrzahl von Straßensegmenten darzustellen,
und enthalten ausreichende Informationen über Kreuzungen innerhalb der
Endpunkte der zusammengefaßten
Segmente, um es einem Streckenberechnungsprogramm zu ermöglichen,
auf ein zusammengesetztes Segment innerhalb seiner Endpunkte zuzugreifen.
-
Ausführungsformen sehen ferner vor,
daß für Datenentitäten, die
Segmente von Straßen
darstellen, Formpunkte erzeugt werden. Beim Sammeln geografischer
Daten zur Nutzung in Navigationssystemen werden Formpunkte für Segmente
von Straßen
festgelegt, die eine Biegung oder Kurve beschreiben, so daß die Lage
von Punkten entlang dem Straßensegment
exakt bestimmt werden kann. Wenn Straßensegmente gerade sind, werden
Formpunkte im allgemeinen nicht eingebunden. Bei Verwendung in einem
Navigationssystem kann dieser Mangel an Formpunkten bei langen geraden
Abschnitten eines Straßensegments
dazu führen, daß es schwierig
ist, das Straßensegment
beim Anzeigen der Karte oder bei räumlichen Suchoperationen einer
bestimmten Stelle zuzuordnen. Bei diesem Aspekt des angegebenen
Systems werden Formpunktdaten in Abständen entlang geraden Straßensegmenten
erzeugt und dem jeweiligen Straßensegment
zugeordnet, wodurch eine Möglichkeit
geboten wird, das Straßensegment
innerhalb der Standorte entlang seinen geraden Abschnitten zu lokalisieren.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
schematisch ein Navigationssystem mit einem Speichermedium, auf
dem geografische Daten und fakultativ andere Daten gespeichert sind;
-
2 zeigt
schematisch die Softwarekomponenten in dem Navigationssystem von 1;
-
3 zeigt
die Arten von Navigationsdatendateien, die auf der Speichereinrichtung
von 1 gespeichert sind;
-
4A bis 4D zeigen den Paketbildungsvorgang
zur Organisation der Navigationsdaten auf der Speichereinrichtung
von 1;
-
5A bis 5E zeigen den Vorgang der
Einbindung von Verweisen auf verwandte Daten in Datenpaketen, die
einige der Navigationsdaten auf der Speichereinrichtung von 1 aufweisen;
-
6A bis 6F zeigen den Vorgang, bei
dem Verweise auf Superknoten anstelle der Mehrzahl von regulären Knoten
in einem geografischen Datensatz zur Streckenberechnung gemäß 3 verwendet werden;
-
7A und 7B sind Diagramme, die die
Verwendung von normalisierten Attributanordnungen zur Darstellung
bestimmter Datenattribute in bestimmten Dateneinträgen in dem
geografischen Datensatz gemäß 3 zeigen;
-
8A bis 8D sind Diagramme, die einen
Segmentzusammenfassungsvorgang zur Verwendung in einem zur Streckenberechnung
dienenden geografischen Datensatz gemäß 3 zeigen;
-
8E ist
ein Diagramm, das die Beziehung des zusammengefaßten Segments in 8D zu anderen Daten, denen
es zugeordnet ist, zeigt;
-
9A, 9B und 9C sind Ablaufdiagramme, die die Komponenten
einer Ausführungsform
eines geografischen Datensatzkompilierers zum Erzeugen einer geografischen
Datenbank für
die Speicherung auf einem Speichermedium zeigen, das in dem Navigationssystem
von 1 verwendet wird;
-
10A und 10B zeigen generierte Formpunkte,
die in einem Prozeß in
dem in den 9A bis 9C gezeigten Kompilierer
erzeugt werden; und
-
11A, 11B und 11C zeigen die Unterteilung von kartografischen
Daten in einem Prozeß in
dem in den 9A bis 9C gezeigten Kompilierer.
-
GENAUE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
I. Übersicht
-
1 ist
ein Schema, das eine beispielhafte Konfiguration eines Navigationssystems 10 zeigt.
Das Navigationssystem 10 ist eine Kombination aus Hardware-
und Softwarekomponenten. Bei einer Ausführungsform weist das Navigationssystem 10 auf:
einen Prozessor 12, ein Laufwerk 14, das mit dem
Prozessor 12 verbunden ist, und eine Speichereinrichtung 16 wie
etwa einen ROM zur Speicherung eines Navigationsanwendungsprogramms 18.
Das Navigationsanwendungsprogramm 18 wird von dem ROM 16 in
einen dem Prozessor 12 zugeordneten Speicher 20 geladen,
um das Navigationssystem zu betreiben. Ein Speichermedium 22 ist
in dem Laufwerk installiert. Bei einer derzeitigen Ausführungsform
ist das Speichermedium 22 eine CD-ROM. Bei einer anderen,
alternativen derzeitigen Ausführungsform
ist das Speichermedium 22 eine PCMCIA-Karte, und in diesem
Fall ist das Laufwerk 14 durch einen PCMCIA-Steckplatz ersetzt.
Verschiedene andere Speichermedien können verwendet werden, einschließlich Festplatten,
Hartplatten, DVD sowie Speichermedien, die erst noch entwickelt
werden. Das Speichermedium 22 weist geografische Daten
auf, wie noch im einzelnen beschrieben wird.
-
Das Navigationssystem 10 kann
ferner ein Positioniersystem 24 aufweisen. Das Positioniersystem 24 kann
die GPS-Technologie, ein Koppelnavigationssystem oder Kombinationen
von diesen oder anderen System aufweisen, die sämtlich bekannt sind. Das Positioniersystem 24 gibt
ein Signal 26 an den Prozessor 12 ab. Das Signal 26 kann
von dem Navigationsanwendungsprogramm 18, das auf dem Prozessor 12 läuft, dazu genutzt
werden, Standort, Richtung, Geschwindigkeit usw. des Navigationssystems 10 zu
bestimmen. Das Navigationssystem 10 nutzt die auf dem Speichermedium 22 gespeicherten
geografischen Daten, eventuell in Verbindung mit dem Ausgangssignal
von dem Positioniersystem 24, um verschiedene Navigationsanwendungsmerkmale
bereitzustellen. Diese Navigationsanwendungsmerkmale können beispielsweise umfassen: Streckenberechnung,
Kartenanzeige, Fahrzeugposition (z. B. Übereinstimmung mit der Karte)
und Fortbewegungs- bzw. Fahrerzeugung (wobei detaillierte Richtungsanweisungen
gegeben werden, um ein gewünschtes Ziel
zu erreichen). Diese Navigationsanwendungsmerkmale werden von Navigationsanwendungsprogrammen (d.
h. Unterprogrammen oder Funktionen) bereitgestellt, die Teil der
Navigationsanwendung 18 sind. Die Navigationsmerkmale werden
dem Anwender (z. B. dem Fahrzeugführer) über ein Display 27,
Lautsprecher 29 oder andere Einrichtungen zur Verfügung gestellt.
-
Gemäß 2 ist das Navigationsanwendungsprogramm 18 typischerweise
ein Softwareprogramm, das getrennte Funktionen (oder Unterprogramme)
aufweist wie beispielsweise eine Streckenberechnungsfunktion 28,
eine Kartenanzeigefunktion 30 und eine Fahrerzeugungsfunktion 32.
Das Navigationsanwendungsprogramm 18 kann andere Funktionen
oder Unterprogramme 34 zusätzlich zu den genannten aufweisen.
Diese Navigationsanwendungsunterprogramme sind zwar als separate
Funktionen oder Anwendungen innerhalb des Navigationsanwendungsprogramms 18 dargestellt,
diese Funktionen können
aber auch kombiniert oder anderweitig bereitgestellt werden.
-
In 2 hat
das gezeigte Speichermedium 22 darauf gespeicherte geografische
Daten 40. Die geografischen Daten 40 sind in Form
von einer oder mehreren computerlesbaren Datendateien oder Datenbanken.
Die geografischen Daten 40 können Informationen über die
Positionen von Straßen
und Kreuzungen in einem bestimmten geografischen regionalen Bereich
oder darauf bezogene Informationen aufweisen und können ferner
Informationen über
die Attribute der Straßen
und Kreuzungen wie etwa Einbahnstraßen und Abbiegeverbote sowie
andere Informationen wie Postanschriften, alternative Routen, Hotels,
Restaurants, Museen, Sportstadien, Büros, Kraftfahrzeughändler, Autoreparaturwerkstätten usw.
aufweisen. Der regionale Bereich kann einen Stadtbereich wie Chicago
und seine Vororte, New York und seine Vororte, Los Angeles und seine Vororte
oder alternativ einen ganzen Staat wie Kalifornien, ein ganzes Land
wie die Vereinigten Staaten oder Kombinationen davon aufweisen.
Auf einem Speichermedium kann mehr als eine Region gespeichert sein.
-
Die verschiedenen Funktionen 28, 30, 32 und 34 des
Navigationsanwendungsprogramms 18 nutzen Teile der geografischen
Daten 40 von dem Medium 22, um dem Anwender des
Navigationssystems 10 brauchbare Navigationsmerkmale zu
liefern. Für
die vorliegenden Ausführungsformen
ist es zwar nicht notwendig, es wird jedoch bevorzugt, daß das Navigationssystem
eine Schnittstellenschicht 41 aufweist, die zwischen den verschiedenen
Anwendungsfunktionen 28, 30, 32 und 34 und
den geografischen Datendateien 40 liegt. Die Schnittstellenschicht 41 erleichtert
den Anwendungsprogrammen den Zugriff und das Auslesen der geografischen
Daten 40. Bei einer Ausführungsform ist die Schnittstellenschicht 41 eine
Sammlung von Softwarebibliotheksfunktionen, die die Navigationsanwendungsfunktionen
von den Details der geografischen Daten 40 trennen. Die
Schnittstellenschicht 41 ist im einzelnen in der gleichzeitig
anhängigen
Anmeldung mit dem Titel "INTERFACE
LAYER FOR NAVIGATION SYSTEM" beschrieben,
Anwaltsakte Nr. 7117-15, angemeldet am gleichen Tag wie die vorliegende
Anmeldung; der gesamte Inhalt dieser Anmeldung wird hier summarisch
eingeführt.
-
II. Arten von geografischen
Daten
-
Wie oben gesagt wird, umfassen die
geografischen Daten 40 genaue Informationen über Straßen, Kreuzungen,
Geschwindigkeitsbeschränkungen,
Straßennamen,
Standordnamen, Abbiegeverbote, Postanschriften, alternative Strecken,
Hotels, Restaurants, Museen, Sportstadien, Büros, Kraftfahrzeughändler, Autoreparaturwerkstätten usw.
Diese Daten können
auf mehrere verschiedene Weisen dargestellt werden. Einige Möglichkeiten
können
firmenspezifisch sein, während
andere in Form von Industrie- oder De-facto-Standards sein können.
-
Ein für geografische Daten verwendetes
Formal ist das GDF-Format (GDF = Geografische Datendatei). Andere
Formate sind verfügbar
und sollen von der vorliegenden Ausführungsform mit umfaßt sein.
Das GDF-Format 3.0 ist in einem Dokument beschrieben, das von CEN
(European Committee for Standardization) am 12. Oktober 1995 ausgegeben
wurde und hier summarisch eingeführt
wird. Die Annahme des GDF-Formats wird auch außerhalb Europas durch die ISO
(International Standards Organization) in Betracht gezogen. Das
GDF-Format ist ein Austauschformat für geografische Datenbanken.
Das GDF-Format eignet sich besonders zur Übertragung von geografischen
Datensätzen
aus einem anderen Format oder in ein anderes Format. Zur Nutzung
eines geografischen Datensatzes in einem Navigationssystem kann
es notwendig sein, den geografischen Datensatz aus dem GDF-Format
in ein spezielleres Format umzuwandeln. Dieser Umwandlungsprozeß wird nachstehend
im einzelnen erörtert.
-
Für
die Zwecke der Erörterung
der vorliegenden Ausführungsbeispiele
wird die nachstehende Terminologie verwendet. Es versteht sich,
daß eine
andere Terminologie verwendet werden kann, ohne vom Umfang der vorliegenden
Erfindung abzuweichen.
-
Für
die Zwecke der vorliegenden Ausführungsform
können
die Ausdrücke "Feature", "Attribut" und "Beziehung" in bezug auf einen
geografischen Datensatz die Definitionen haben, die in dem oben
angegebenen CEN GDF-Standard
angegeben sind. Dabei kann sich der Ausdruck "Feature" auf eine Datenbankdarstellung eines
Objekts der realen Welt beziehen, "Attribut" kann sich auf eine Eigenschaft eines
Features beziehen, das von anderen Features unabhängig ist,
und der Ausdruck "Beziehung" kann sich auf eine
Eigenschaft eines Features unter Einschluß anderer Features beziehen.
Bei anderen Datenmodellen können
andere Ausdrücke
verwendet werden, aber die gleichartigen Konzepte werden auf gleiche
Weise angewandt.
-
In dem geografischen Datensatz sind
Knoten und Segmente Features.
-
Ein Knoten ist ein Punkt, der die
Kreuzung von zwei oder mehr Straßen, das Ende einer Straße oder einen
Punkt entlang einer Straße,
an dem sich die Straßenattribute ändern, darstellt.
-
Ein Segment ist eine Darstellung
eines Abschnitts einer navigationsfähigen Straße. Ein Segment hat an jedem
Ende einen Knoten und kann entlang seiner Länge einen oder mehrere Formpunkte
haben.
-
Die folgenden Attribute sind einem
Segment zugeordnet:
- (1) Ein Formpunkt ist ein
Punkt entlang einem Segment, an dem das Segment eine Biegung oder
Kurve beschreibt oder an dem die Segmente einander auf verschiedenen
Niveaus kreuzen.
- (2) Eine Landmarke ist die Kreuzung eines Segments mit einem
kartografischen Feature, das als für Erläuterungszwecke signifikant
angesehen wird, etwa ein Fluß oder
Eisenbahnschienen.
- (3) Ein Rang bezeichnet die höchste Streckenführungsdatenschicht,
in der das Segment erscheint, und kann außerdem einer funktionellen
Klasse des Segments entsprechen.
- (4) Die Geschwindigkeitskategorie klassifiziert das Segment
auf der Basis einer mittleren Geschwindigkeit.
- (5) Die Fahrspurkategorie klassifiziert das Segment auf der
Basis der Zahl von Fahrspuren, die für die Fahrt in einer einzigen
Richtung verfügbar
sind.
- (6) Der Streckentyp bezeichnet die Art von Strecke, beispielsweise
europäisch,
Autobahn, Bundesstraßen, Landstraßen oder
Kreisstraßen
in Deutschland oder Federal, Interstate, State oder County in den
USA.
- (7) Die Zugangscharakteristiken bezeichnen Beschränkungen
hinsichtlich der Arten von Verkehr, die das Segment befahren dürfen.
-
Ein POI (point-of-interest = interessierender
Punkt) ist ein Feature wie etwa ein Hotel, Restaurant, Museum usw.
Ein Anlagentyp ist ein Attribut eines POI und bezeichnet die funktionelle
Kategorie eines POI wie etwa eines Hotels, Restaurants, Museums
usw.
-
Ein kartografischer Punkt ist eine
Darstellung jedes Punktfeatures wie etwa einer Landmarke.
-
Ein Polygon ist die Grenze eines
zweidimensionalen Bereichs oder kartografischen Features wie etwa eines
Sees.
-
Ein Vieleck ist eine Darstellung
eines linearen kartografischen Features, das entweder nicht navigationsfähig oder
navigationsfähig
ist.
-
Ein Verwaltungsbereich ist die Region
einer offiziellen Einheit wie etwa einer Stadt oder eines Landkreises.
-
Eine Zone ist die Region eines inoffiziellen
Namens für
einen Bereich wie etwa eine Gegend oder ein nicht inkorporiertes
Dorf.
-
Ein Ort kann ein Verwaltungsbereich
oder eine -zone sein.
-
Daten von Dritten (TPD) sind Informationen über zusätzliche
interessierende Punkte. Diese zusätzlichen interessierenden Punkte
können
von einem Händler
mit Daten von Dritten oder anderweitig auf solche Weise zur Verfügung gestellt
werden, daß sie
mit dem Rest der geografischen Daten nicht vollständig integriert sind.
-
Zusätzlich zu den oben beschriebenen
Informationsarten können
weitere Datenarten auf dem Speichermedium vorgesehen sein. Beispielsweise
können Daten
vom Soundex-Typ vorhanden sein. Diese Art von Daten ermöglicht die
Erkennung von Einheiten mittels Wörtern oder Sätzen, die ähnlich wie
ein angefordertes Objekt lauten oder ähnliche Konstruktion haben.
Die Daten können
an den Endanwender in Form einer Liste möglicher Übereinstimmungen für ein angefordertes
Objekt zurückgegeben
werden.
-
III. Organisation von
geografischen Daten
-
Es wird erneut auf 2 Bezug genommen. Die geografischen
Daten 40 sind auf eine Weise organisiert und angeordnet,
die das Leistungsvermögen
der verschiedenen Navigationsanwendungsfunktionen 28, 30, 32 und 34 vereinfacht
und/oder steigert. Einige der Aspekte der Organisation und Anordnung
der geografischen Daten 40 sind für das spezielle verwendete
physische Speichermedium spezifisch, aber andere Aspekte vereinfachen
und steigern das Leistungsvermögen
der Navigationsfunktionen unabhängig
von dem und ohne Rücksicht
auf das jeweilige Speichermedium. Die Aspekte der Organisation der
geografischen Daten, die die Navigationsfunktionen vereinfachen,
umfassen die Paketbildung und die Paketerkennung der geografischen
Daten sowie die Einbindung von normalisierten Attributen, Superknoten
und die Segmentzusammenfassung in den geografischen Daten. Jeder
dieser Aspekte wird nachstehend im einzelnen beschrieben.
-
Jede Navigationsfunktionsanwendung
bzw. jedes Unterprogramm 28, 30, 32 und 34 verwendet
charakteristisch nur eine bestimmte Teilmenge der gesamten geografischen
Daten 40. Wenn sich die Teilmengen überlappen, können die
verschiedenen Anwendungen, die die gleichen Daten nutzen, auf diese
auf unterschiedlichen Pfaden, in unterschiedlicher Reihenfolge zugreifen
oder können
andere Leistungsanforderungen haben.
-
Unter Bezugnahme auf 3 sind bei einer bevorzugten Ausführungsform
die geografischen Daten 40 als separate Gruppen oder Teilmengen
der geografischen Daten organisiert. Jede der Gruppen weist verschiedene
Anteile oder Sammlungen der Daten auf. Der Anteil der Daten, der
in jeder der Gruppen der geografischen Daten enthalten ist, steht
in Beziehung zu der Navigationsanwendungsfunktion, die die spezifische Sammlung
der Daten nutzt. Im allgemeinen hat jede der Funktionen 28, 30, 32 und 34 ihre
eigene Teilmenge oder Sammlung des gesamten geografischen Datensatzes.
Eine Anordnung der Daten auf diese Weise kann in einer gewissen
Duplizierung von Anteilen der gesamten Sammlung geografischer Daten
resultieren. Die Navigationsanwendungsfunktionen laufen jedoch im
allgemeinen schneller, wenn jede Navigationsanwendungsfunktion nur
auf eine Teilmenge der gesamten geografischen Daten zugreift und
wenn diese Teilmenge nur denjenigen Anteil des gesamten geografischen
Datensatzes aufweist, den die jeweilige Anwendung benötigt. Im
allgemeinen ist der Anteil der Daten, der von einer Funktion genutzt
und ihr zugeordnet ist, separat von den Anteilen der Daten gruppiert,
die den anderen Funktionen zugeordnet sind und von ihnen genutzt
werden. Außerdem
sind im allgemeinen die von jeder einzelnen der Funktionen genutzten
Daten in physischer Nähe
gemeinsam gesammelt. Gleichzeitig können die Teilmengen von Daten
Gesamtpaketisierungsgrenzen und andere organisatorische Strukturen
gemeinsam nutzen, wobei diese strukturellen Ähnlichkeiten die Effizienz
und das Leistungsvermögen
der Anwendungsprogramme weiter steigern.
-
Jede der Gruppen von geografischen
Daten, die von jeder der Funktionen genutzt werden, ist in Datenpaketen
organisiert, wie nachstehend im einzelnen erläutert wird. Pakete sind Zusammenstellungen
oder Gruppierungen von Daten in ähnlichen
oder regelmäßig bemessenen
(allerdings nicht unbedingt gleichen) Mengen. Wenn sie auf einem
Speichermedium gespeichert sind, können Pakete physisch ausgeprägten Stellen
entsprechen, die auf dem Speichermedium vorhanden sind. Bei einer
derzeitigen Ausführungsform
repräsentiert
ein Paket auch die kleinste Datenmenge, die von dem Speichermedium
abgerufen wird.
-
Die Größe von Datenpaketen (d. h.
die maximale Datenmenge, die in einem Paket enthalten sein darf) ist
unter Berücksichtigung
mehrerer Faktoren vorbestimmt. Ein Faktor, der zur Bestimmung der
Paketgröße dient,
umfaßt
die Zugangscharakteristiken des Speichermediums, auf dem die Daten
gespeichert werden. Diese Zugangscharakteristiken umfassen die Übertragungsgeschwindigkeit
und die Reaktionsgeschwindigkeiten. Im Fall von indexierten Daten
gibt es ein Gleichgewicht zwischen der durchschnittlichen Anzahl
von Indexpaketaufrufen, die erforderlich sind, um nach einem bestimmten
Datensatz zu suchen, und der durchschnittlichen Größe der Indexpakete.
Zur Minimierung der durchschnittlichen Suchdauer nach einem bestimmten
Datensatz können
Einfachgeschwindigkeits-CD-ROM-Charakteristiken eine optimale Paketgröße von 4–16 Sektoren (8–32 kByte)
bestimmen und können
ferner festlegen, daß ein
Indexpaket eine Datenmenge enthalten sollte, die gleich dem Durchschnitt
der Dateninhalte der Pakete ist, die es indiziert. Indexe können kd-Bäume für räumliche
Daten und B-Bäume
für geordnete
(z. B. alphanumerische) Daten aufweisen.
-
Ein weiterer Faktor, der zur Festlegung
der Größe von Paketen
genutzt wird, betrifft räumliche
Arten von geometrischen Daten (wie etwa Streckenführungs- und kartografische
Daten). Für
diese Datenarten können
spezielle Überlegungen
wie etwa spezielle Datenarten erforderlich sein, um Paketgrenzen
zu berücksichtigen.
Daher bedeutet ein kleinerer Paketdateninhalt eine größere spezielle
Paketgrenzdaten-Gesamtmenge, was in einem größeren Datenbank-Gesamtdateninhalt
und potentiell weniger effizientem Zugriff resultiert.
-
Ein weiterer Faktor, der zur Festlegung
der Paketgröße angewandt
wird, umfaßt
die Speicherbeschränkungen
des Navigationssystems, das die Daten nutzen wird. Viele Navigationssysteme
haben einen begrenzten Speicher oder einen Speicher, der für den Gebrauch
mit Datenblöcken
bestimmter Größe optimiert ist.
Daher werden bei der Festlegung der Größe eines Datenpakets diese
Arten von Hardware-Anforderungen ebenfalls so weit wie möglich berücksichtigt.
-
Die geografischen Daten 40 weisen
auf: eine separate Gruppe 48 von Paketen von Daten, die
von der Streckenberechnungsfunktion 28 genutzt werden,
eine weitere separate Gruppe 50 von Paketen von Daten für die kartografische
Funktion (d. h. die Anzeige einer Karte) 30, noch eine
weitere separate Gruppe 52 von Paketen von Daten für die Fahrfunktion 32,
eine andere Gruppe 53 von Daten für kartografische Querverweise, noch
eine andere separate Gruppe 54 von Paketen von Daten für geografische
Daten, die interessierende Punkte betreffen. Bei einer vorliegenden
Ausführungsform
sind all diese Gruppen von Paketen in einer Datei, obwohl es auch
mehr als eine Datei geben kann.
-
Die Untermengen von geografischen
Daten für
jede der Funktionen sind mit Querverweisen versehen (und können Zeiger
aufweisen), um Funktionsunfähigkeit
zwischen den Funktionen vorzusehen. Die in 3 dargestellte physische Organisation
ist von dem verwendeten Typ des Speichermediums unabhängig, und
es ist ersichtlich, daß die
Implementierung der in 3 dargestellten
Organisation die speziellen Merkmale berücksichtigt, die verschiedenen
Arten von physischen Speichermedien wie CD-ROM, PC-Karte usw. zugeordnet
sind.
-
Einige der Untermengen von geografischen
Daten sind räumlich
organisiert. Räumlich
organisierte Daten sind so angeordnet, daß die Daten, die geografisch
proximale Merkmale darstellen, physisch proximal in der Datenmenge 40 und
auf dem Medium 22 positioniert sind. Bei manchen der Navigationsanwendungsfunktionen
ermöglich
die räumliche
Organisation ihrer jeweiligen Daten das raschere Lesen von nahe
verwandten geografischen Daten von dem Medium und das raschere Laden
von verwandten geografischen Daten in den Speicher dort, wo sie
genutzt werden können.
Diese Art von Organisation minimiert den Zugriff auf das Speichermedium 22 und
beschleunigt die Operation bestimmter Navigationsfunktionen.
-
Die Untermengen der geografischen
Daten, die räumlich
organisiert sind, umfassen die Streckenberechnungsdaten 48,
die kartografischen Daten (Kartenanzeige) 50, die Fahrdaten 52,
die kartografischen Querverweisdaten 53, die POI-Daten 54.
Andere Daten sind nicht-räumlich
organisiert, und der Zugriff erfolgt nicht-räumlich. Die nicht-räumlich organisierten
Daten 60 umfassen navigationsfähige Features 62 (z.
B. Straßennamen),
Orte 63 (z. B. Verwaltungsbereiche und -zonen), Postleitzahlen 64,
Kreuzungen/Einmündungen 65 und
kartografische Features 66. Daten 61 von Dritten
sind nicht räumlich organisiert.
Jeder Datensatz der Daten 61 von Dritten ist einem Datensatz
in den POI-Daten 54 zugewiesen. Da POI-Daten 54 räumlich organisiert
sind, kann der räumliche
Zugriff auf Drittdaten 61 über ihre zugeordneten POI-Daten 54 erfolgen.
-
Bei einer bevorzugten Ausführungsform
sind sowohl der Streckenberechnungsanteil 48 der Daten
als auch der kartografische Anteil 50 der Daten geschichtet.
Jede Schicht innerhalb jedes Datentyps erstreckt sich so, daß sie den
gleichen geografischen Bereich abdeckt. Höhere Schichten eines Datentyps
enthalten jedoch weniger Einheiten als untere Schichten. Beispielsweise
ist die Schicht 0 des Streckenberechnungsteils der Daten im allgemeinen
die Schicht mit den meisten Einzelheiten und umfaßt sämtliche
Straßen
und Kreuzungen in dem geografischen Bereich, dem die geografische
Datenmenge 40 entspricht. In der Schicht 1 der Streckenberechnungsdaten
entfallen im allgemeinen die langsameren oder weniger wichtigen
Straßen
in der geografischen Region, in Schicht 2 entfallen im allgemeinen
die nächstlangsameren
oder weniger wichtigen Straßen usw.
(Die Einbindung von Straßen
in gegebenen Schichten kann durch das Rangattribut definiert werden. Wenn
man beispielsweise annimmt, daß die
Straßensegmente
einen Rang von I bis IV in Abhängigkeit
vom Straßentyp
(z. B. Gasse oder Interstate) erhalten, kann die Schicht 0 so definiert
sein, daß sie
sämtliche
Ränge I–IV aufweist,
Schicht 1 kann so definiert sein, daß sie nur die Ränge II–IV (unter
Weglassung von Straßen
mit Rang I) definiert, usw.) Die Streckenberechnungsfunktion kann
unter Nutzung von Kombinationen der Schichten erfolgen, wobei die
höheren
Schichten so weit wie möglich
genutzt werden.
-
Die Kartenanzeigefunktion 30 zieht
auch Vorteil daraus, daß ihre
Untermenge 50 der geografischen Daten so organisiert ist,
daß rasches
Schwenken und Skalieren erleichtert wird. Beispielsweise kann das
Skalieren effizienter durchgeführt
werden, wenn die Untermenge 50 von geografischen Daten
in Schichten organisiert ist, wobei mehr Einzelheiten in den unteren
Schichten und weniger Einzelheiten in den höheren Schichten vorhanden sind.
Wenn ferner in der Untermenge 50 von geografischen Daten,
die von der Kartenanzeigefunktion
30 genutzt werden, jedes
der Datenpakete einen Index seiner benachbarten Pakete auf derselben Schicht
sowie auf Schichten darüber
und darunter enthält,
können
Schwenken und Skalieren effizienter von der Kartendisplayfunktion 30 durchgeführt werden,
ohne daß weiter
in einer separaten Indexdatei nachgeschlagen zu werden braucht.
Der interne Index der Paketnachbarn auf denselben und anderen Schichten
kann effizient erzeugt werden, wenn Paketgrenzen ausgebildet werden,
indem die nachstehend beschriebene Paketbildungsmethode angewandt
wird.
-
Die Streckenberechnungsfunktion 28 ist
dadurch begünstigt,
daß ihr
Bereich 48 der geografischen Daten 40 so organisiert
ist, daß Suchvorgänge nach
einer optimalen Strecke zwischen zwei Punkten erleichtert werden.
Ferner kann die Streckenberechnungsfunktion 28 rascher
ablaufen, wenn möglichst
viele der geografischen Suchdaten in dem Speicher 20 gehalten
werden, und zwar besonders dann, wenn der Zugriff auf das Speichermedium 22 relativ
langsam ist, wie etwa bei einer CD-ROM. Daher ist die Untermenge 48 der
geografischen Daten 40, die von der Streckenberechnungsfunktion
genutzt wird, bevorzugt so organisiert, daß jedes Paket einen maximal
möglichen
physischen geografischen Bereich abdeckt (innerhalb der Begrenzungen
einer unveränderlichen
Puffergröße oder
einer begrenzten Zahl von Puffergrößen). Dieses Ziel kann erreicht werden,
indem die Daten oder Informationen in den Streckenberechnungs-Datenpaketen
nur auf diejenige Information beschränkt sind, die für die Streckenberechnung
relevant sind, und möglichst
wenig irrelevante Information aufweisen. Beispielsweise können in
der Untermenge 48 der geografischen Daten, die für die Streckenberechnung
genutzt werden, die Straßennamen
weggelassen werden.
-
Informationen wie etwa Straßennamen
werden statt dessen von der Fahrfunktion genutzt, um Richtungsanweisungen
für einen
Endanwender zur Streckenführung
zu erzeugen. Daher sind Straßennamen
und Zusatzinformation, die für
die Fahrfunktion 32 genutzt werden, in separaten räumlichen
und nichträumlichen Datenpaketen 52 enthalten.
Die Straßennameninformation
ist jedoch in der Streckenberechnungs-Untermenge 48 oder
der kartografischen Untermenge 50 nicht enthalten.
-
Die geografischen POI-Daten 54 sind
räumlich
paketisiert und können
mit den kartografischen Daten verschachtelt sein, um sowohl die
Anzeige von interessierenden Punkten auf dem Bildschirm als auch
die Zeige-und-Klick-Auswahl
von interessierenden Punkten durch Anwender zu erleichtern, und
zwar hauptsächlich, um
interessierende Punkte "in
der Nähe" des Fahrzeugs oder
der Strecke zu gewinnen.
-
Um den Zugriff auf alle Arten von
Kartendaten in allen Kontexten zu erleichtern enthalten die verschiedenen
Arten von räumlich
organisierten Paketen (Streckenberechnung, Kartografie, Fahren,
POI und kartografische Querverweise), wie bereits erwähnt wurde,
jeweils Zeiger zu den anderen Arten von Paketen, die den gleichen
geografischen Bereich abdecken. Beispielsweise enthält ein Streckenberechnungspaket
Zeiger zu kartografischen Paketen mit Daten, die koextensive oder überlappte
Abdeckbereiche betreffen. Außerdem
ermöglicht
eine Reihe von Indexen oder Querverweisen bei wichtigen Schlüsseln oder
Attributen den Zugriff auf Kartendaten über verschiedene Pfade. Beispielsweise
könnte
ein interessierender Punkt durch seinen "Namen", durch seinen "Einrichtungstyp" (Typ des interessierenden Punkts) oder
durch seine Ketten-ID (z. B. "McDonald's"-Restaurants) lokalisiert werden. Diese
Lage könnte
weiter als innerhalb einer Stadt oder innerhalb einer bestimmten
Entfernung vom momentanen Standort liegend eingeengt werden. Ein
Ziel könnte
als eine Kreuzung, eine Hausnummer oder als POI-Name bezeichnet
werden und eventuell als innerhalb einer bestimmten Stadt oder Gemeinde
liegend oder durch einen anderen geografischen Indikator bezeichnet
werden.
-
IV. Format des physischen
Speichers
-
A. Paketbildung
-
1. Überblick
-
Wie oben gesagt wird, werden die
Daten 40 auf dem Speichermedium 22 paketisiert,
d. h. die meisten oder sämtliche
Daten werden in kleineren Mengen organisiert, wobei jedes Paket
eine Mehrzahl von Datensätzen
und anderen Informationen aufweist. Die Pakete korrelieren auch
mit physischen Unterteilungen für
die Speicherung der Daten auf dem Speichermedium. Im allgemeinen
ist die gesamte Datensammlung, die eine ganze geografische Region
betrifft, zu groß,
um auf einmal in den Speicher geladen zu werden. Daher werden die
Daten in kleineren Gruppen oder Paketen organisiert, Für manche
Kartendaten sind die Pakete räumlich organisiert,
d. h. jedes Paket stellt geografische Daten dar, die mit einem geografischen
rechteckigen Bereich (der quadratische Bereiche aufweist) der physischen
Region eingeschlossen sind.
-
Die Gruppierungen von Daten zu Paketen
erfolgen für
mehrere Zwecke. Erstens werden Daten zu Paketen organisiert, um
zu versuchen, in einem Paket oder in so wenig Paketen wie möglich die
meisten oder sämtliche
Daten zu gruppieren, die von einer der Navigationsfunktionen verlangt
werden können,
um eine Operation für
den Anwender auszuführen.
Wenn der Anwender eine Karte seines Standorts anzeigen möchte, wäre zu bevorzugen,
daß die
Daten, die den geografischen Bereich unmittelbar um den Anwender
herum betreffen, so organisiert sind, daß der Zugriff auf sämtliche
notwendigen Daten erfolgen und diese rasch in den Speicher geladen
werden können.
Die Pakete, die sämtliche
Daten aufweisen, die notwendig sind, um eine Karte des Anwenderbereichs
anzuzeigen, sollten daher in einem Paket oder in möglichst
wenigen Paketen gemeinsam gruppiert sein. Im allgemeinen gilt, daß es um
so besser ist, je größer das
Paket ist. Jedes Paket sollte im Idealfall einen möglichst
großen
geografischen Bereich abdecken, damit viele diesen geografischen Bereich
betreffende Operationen abgewickelt werden können. Ein weiterer Grund dafür, daß Daten
paketisiert werden, liegt darin, daß dann Daten zu Paketen gruppiert
sind, wobei jedes Paket eine Größe hat,
die von den Navigationssystemanwendungen ohne weiteres genutzt werden
kann. Diese Größen betreffen
Hardware- und Speicherbeschränkungen
und können
beispielsweise regelmäßige Vielfache
von 2 kBytes, 4 kBytes, 8 kBytes oder 16 kBytes sein.
-
Bei einer bevorzugten Ausführungsform
werden Pakete für
alle Datentypen unter Anwendung des gleichen Verfahrens ausgebildet.
Wie oben gesagt wird, ist es erwünscht,
daß jedes
Paket möglichst
viele Daten enthält.
Wenn beispielsweise ein Rechteck, das den gesamten geografischen
Bereich umschließt,
nur immer wieder halbiert werden würden, bis alle daraus gebildeten
kleineren Rechtecke nicht mehr als eine gewünschte maximale Datenmenge
enthalten, besteht die Wahrscheinlichkeit, daß viele aus solchen Rechtecken
gebildeten Pakete erheblich weniger als voll wären. Das resultiert aus der
Tatsache, daß ein
geografischer Bereich typischerweise keine gleichmäßige Dichte
von geografischen Daten hat. Das Vorhandensein eines erheblichen
Anteils von Paketen, die erheblich weniger als voll sind, führt zu Vergeudung
von Platz und schlechterem Betriebsverhalten. Die Paketbildungsmethode,
die nachstehend beschrieben wird, ermöglicht die Maximierung der
Zahl von Paketen, die relativ voll sind. Die nachstehend beschriebene
Methode ermöglicht
auch eine Paketbildungsanordnung, durch die die Erkennung und der
Abruf der Pakete beschleunigt werden.
-
Wie oben gesagt wird, ist jede Navigationsfunktion
mit einer Untermenge der gesamten geografischen Datenmenge, die
für diese
Funktion geeignet ist, versehen. Ausgehend von einer Version der
gesamten geografischen Datenmenge werden somit separate Untermengen
der gesamten geografischen Datenmenge für jede der separaten Funktionen
erzeugt. Beispielsweise werden aus der gesamten geografischen Datenmenge, die
alle geografischen Daten für
eine bestimmte geografische Region aufweist, separate Untermengen
der geografischen Daten erzeugt, die eine Streckenberechnungs-Datenuntermenge,
eine kartografische Datenuntermenge, eine Fahrdatenmenge, eine POI-Datenmenge, eine
Datenmenge für
kartografische Features, eine Datenuntermenge für navigationsfähige Features,
eine Kreuzungs- /Einmündungs-Datenuntermenge,
eine Drittdatenuntermenge, eine Platz-Datenuntermenge, eine Postzustellzone-Datenuntermenge
usw. aufweisen. Nach der Erzeugung der separaten Untermengen oder
als Teil dieser Erzeugung erfolgt die Paketbildung jeder der Untermengen.
Die Untermengen können
in jeder Reihenfolge paketisiert werden, aber bei einer bevorzugten
Ausführungsform
wird für
die räumlich
organisierten Daten (d. h. Streckenführung, Kartographie, Fahren usw.)
der Datentyp, von dem im allgemeinen erwartet wird, daß er die
Datenmenge mit der größten Dichte
ist, d. h. die Datenuntermenge, von der zu erwarten ist, daß sie in
die größte Anzahl
von Paketen unterteilt wird, zuerst in Pakete unterteilt, um einen
globalen kd-Tree
zu erzeugen. Beispielsweise können
die Streckenberechnungsdaten diejenigen mit der höchsten Dichte
sein, und somit wird zuerst die Paketbildung an dieser Untermenge
der geografischen Daten durchgeführt.
-
2. Bestimmung von anfänglichen
Paketgrenzen
-
Es ist zwar möglich, eine anfängliche
Paketgrenze an jedem beliegen Ort zu etablieren, aber bei einer bevorzugten
Ausführungsform
wird die anfängliche
Plazierung von Paketgrenzen wie folgt gewählt. Zuerst werden die geografischen
Daten geprüft,
um ihre äußeren geografischen
Grenzen zu bestimmen. 4A zeigt eine
Karte eines geografischen Bereichs 100. Die auf dem Speichermedium 22 zu
speichernden geografischen Daten 40 betreffen den geografischen
Bereich 100. Auf der Karte des geografischen Bereichs 100 liegt eine
Vielzahl von Punkten 101. Wie oben erwähnt wird, wird die Paketbildung
zuerst an einer der Datenuntermengen durchgeführt, beispielsweise an der
Streckenberechnungs-Untermenge.
In der Streckenberechnungs-Datenuntermenge sind einzelne Datensätze enthalten,
die Knoten identifizieren. Die Knotendatensätze entsprechen bestimmten
physischen Orten in dem geografischen Bereich 100. Jeder
Knoten hat eine bestimmte geografische Breite, geografische Länge und
relativ Höhe
("Z-Niveau"). Die Streckenberechnungs-Datenuntermenge
enthält
ferner Datensätze,
die Segmente identifizieren. Die Segmentdatensätze entsprechen physischen
Features, die eine Länge
haben, etwa Abschnitten von Straßen in dem geografischen Bereich.
Jeder Segmentdatensatz bezieht sich auf und kann identifiziert werden
von Knoten, die sich an den Endpunkten des Segments befinden. Außerdem kann
ein Segment einen oder mehrere Formpunkte zwischen seinen Endpunkten
aufweisen, die dazu dienen, eine Krümmung bzw. Biegung (oder eine
physische Position) in dem Segment zu identifizieren. Daher können sämtliche
der räumlich
in Beziehung stehenden geografischen Daten durch Knoten identifiziert
werden, die eine ganz bestimmte geografische Breite und Länge in dem geografischen
Bereich 100 haben. Die Punkte 101 in 4A entsprechen den Knoten
in dem geografischen Datensatz. Jeder der Punkte 101 ist
auf der Karte des geografischen Bereichs 100 an dem Ort
gezeigt, der der geografischen Breite und Länge des Knotens entspricht,
dem er in der Streckenberechnungs-Untermenge der geografischen Datenmenge
entspricht. 4A dient
nur der Veranschaulichung, und bei einer bevorzugten Ausführungsform
werden die hier beschriebenen Paketbildungsvorgänge von einem Computerprogramm
ausgeführt,
das an der entsprechenden Untermenge der Daten Operationen ausführt.
-
Gemäß 4A werden die äußersten Knoten identifiziert.
Beispielsweise ist der Knoten 102W der Knoten in dem Streckenberechnungsteil
der geografischen Datenmenge, der die maximale geografische Länge hat,
Knoten 102E ist der Knoten in dem Streckenberechnungsteil
der geografischen Datenmenge, der die kleinste geografische Länge hat,
Knoten 1025 ist der Knoten in dem Streckenberechnungsteil
der geografischen Datenmenge, der die kleinste geografische Breite
hat, und Knoten 102N ist der Knoten in dem Streckenberechnungsteil
der geografischen Datenmenge, der die maximale geografische Breite
hat. Die Knoten 102N, 1025, 102E und 102W definieren
ein kleinstes begrenzendes Rechteck ("MBR") 106,
das in 4B in Strichlinien
dargestellt ist. Ein kleinstes begrenzendes Rechteck ist das kleinste
Rechteck, das sämtliche
geografischen Daten enthält.
-
Bei einer bevorzugten Ausführungsform
sind die Dimensionen der geografischen Breite und Länge in Navigationsmaßeinheiten
gleich 1/100.000 eines Grads ausgedrückt. Ebenso wie Grade können Navigationseinheiten
absolut sein oder können
auf eine Koordinatenposition auf der Erdoberfläche bezogen sein. Bei einer bevorzugten
Ausführungsform
sind die Dimensionseinheiten ferner ganze Zahlen. Somit ist die
kleinste Maßeinheit "1", was 1/100.000 eines Grads bezeichnet.
Bei alternativen Ausführungsformen
können
von Gradwerten verschiedene Werte als Einheiten für die Darstellung
von Dimensionen gewählt werden,
und die Maßeinheiten
können
so gewählt
werden, daß sie
Bruchteile aufweisen.
-
Bei einer bevorzugten Ausführungsform
wird das kleinste begrenzende Rechteck nach außen an seinem östlichen
und nördlichen
Rand durch eine zusätzliche
Dimensionseinheit von denjenigen, die durch die Knoten 102N und 102E definiert
sind, eingestellt. Wenn beispielsweise 102N eine geografische
Breite von 282 hatte, dann ist die nördliche Seite des kleinsten
begrenzenden Rechtecks auf der geografischen Breite 283,
d. h. 282 + 1. Wenn 102E eine geografische Länge von
90.000 hatte, dann ist gleichermaßen die östliche Seite des kleinsten
begrenzenden Rechtecks auf der geografischen Länge 90.001. Dies ist in 4C veranschaulicht.
-
Der Datensatz, der durch ein solches
eingestelltes kleinstes begrenzendes Rechteck definiert ist, kann als
sämtliche
Daten aufweisend angesehen werden, die in dem kleinsten begrenzenden
Rechteck eingeschlossen sind, sowie alle Daten, die den westlichen
und südlichen
Rand (jedoch nicht den nördlichen
und östlichen
Rand) des kleinsten begrenzenden Rechtecks überschneiden. Der Vorteil der
Anwendung eines solchen eingestellten kleinsten begrenzenden Rechtecks
ist, daß jedes
kleinste begrenzende Rechteck infolgedessen einen speziellen Datensatz
einschließt.
Anders ausgedrückt,
wird ein Knoten in nur einem kleinsten begrenzenden Rechteck gefunden.
Dies gilt auch dann, wenn die geografische Länge des östlichen Rands eines gegebenen
kleinsten begrenzenden Rechtecks (gleich der geografischen Länge + 1
von 102E) gleich wie die geografische Länge des westlichen Rands des
kleinsten begrenzenden Rechtecks unmittelbar östlich ist.
-
Das erstere kleinste begrenzende
Rechteck weist nur Daten auf, die von einem solchen gemeinsamen Rand
eingeschlossen sind (jedoch nicht Daten, die den gemeinsamen Rand überschneiden),
wogegen das letztgenannte kleinste begrenzende Rechteck Daten aufweisen
kann, die den gemeinsamen Rand überschneiden.
-
Bei einer bevorzugten Ausführungsform
wird ein kleinstes umschließendes
unterteilbares Vieleck 107 bestimmt, das das kleinste begrenzende
Rechteck 106 einschließt.
Ein unterteilbares regelmäßiges Vieleck bzw.
Tile ("di-tile") bezieht sich auf
eine Fläche
mit den Dimensionen 2I × 2J,
die alle Kartendaten zwischen den geografischen Breiten M × 2I Navigationseinheiten und (M + 1)× 2I Navigationseinheiten und zwischen den geografischen
Längen
N × 2J Navigationseinheiten und (N + 1) × 2J Navigationseinheiten aufweist, wobei M
und N ganze Zahlen und I und J positive ganze Zahlen sind.
-
Eine Möglichkeit zur Festlegung eines
kleinsten umschließenden
unterteilbaren Vielecks besteht darin, akzeptable Intervalle zu
definieren und zu fordern, daß das
kleinste umschließende
unterteilbare Vieleck als Seiten nur akzeptable Intervalle hat.
Akzeptable Intervalle sind in beiden Richtungen von geografischer Breite
und Länge
definiert. (Es kann jeder beliebige Ausgangspunkt gewählt werden,
aber bei einer bevorzugten Ausführungsform
entsprechen akzeptable Intervalle herkömmlichen geografischen Breiten-
und Längen-Ausgangspunkten,
d. h. dem Äquator
und Greenwich.) Akzeptable Intervalle können so definiert werden, daß sie nur
Potenzen von 2 aufweisen, beispielsweise 0–1, 2–3, 4–5, 6–7, ..., 0–3, 4–7, 8–11, 12–15, ..., 0–7, 8–15, 16–23, 24–31, ..., 0–15, 16–31, 32–47, 48–63, ... usw. (in Navigationseinheiten).
-
In 4D sind
Beispiele von akzeptablen Intervallen dargestellt. In 4D kann "0" entweder Greenwich oder Äquator darstellen.
Die Einheiten 1, 2, ... usw. können
Navigationseinheiten darstellen, die gleich 1/100.000 eines Grads
sind. Ausgehend von Greenwich (geografische Länge 0) umfassen also akzeptable
Intervalle alle diejenigen, die in der Figur durch Gerade dargestellt
sind. Wenn beispielsweise das kleinste begrenzende Rechteck eine
Westkoordinate von 5 und eine Ostkoordinate von 12 hat, wäre das akzeptable
Intervall das Intervall I (0,16). Eine gleichartige Menge von akzeptablen
Intervallen relativ zum Äquator
wird für Nord-Süd-Koordinaten
definiert.
-
Wie oben gesagt wird, müssen bei
einer derzeitigen bevorzugten Ausführungsform die Seiten des kleinsten
umschließenden
unterteilbaren Vielecks für
das kleinste umschließende
Rechteck akzeptable Invertalle sein. Bei einer vorliegenden Ausführungsform
sind somit die Ost-West-Koordinaten des ursprünglichen unterteilbaren Vielecks
Vielfache von 2I Einheiten, und die Nord-Süd-Koordinaten des ursprünglichen
unterteilbaren Vielecks sind Vielfache von 2J Einheiten.
(I und J sind ganze Zahlen, so daß z. B. die Ost-West-Länge des
ursprünglichen
unterteilbaren Vielecks eine Dimension in Einheiten von 1, 2, 4,
8, 16, 32, 64, 128, 256, 512 oder 1024 usw. haben kann, und die
Nord-Süd-Länge des ursprünglichen
unterteilbaren Vielecks eine Dimension in Einheiten von 1, 2, 4,
8, 16, 32, 64, 128, 256, 512 oder 1024 usw. haben kann.) Ein Vorteil
der Bildung des kleinsten umschließenden unterteilbaren Vielecks
auf diese Weise ist, daß unterteilbare
Vielecke für verschiedene
Karteüberdeckungsbereiche
leichter miteinander verschmolzen werden können, weil die Grenzen für verschiedene
Kartenüberdeckungsbereiche
unter Anwendung derselben Vorgehensweise gebildet sind.
-
Es versteht sich, daß in Kartenüberdeckungsbereichen,
die sowohl negative als auch positive Navigationseinheiten aufweisen
(d. h. Überdeckungsbereiche,
in denen das kleinste begrenzende Rechteck entweder den Äquator oder
Greenwich aufweist), zusätzliche
akzeptable Intervalle erforderlich sind, und daher sind Intervalle
der Länge
218, beginnend an Koordinaten, die Vielfache
von 217 sind, Intervalle der Länge 219, beginnend an Koordinaten, die Vielfache
von 218 sind, usw. akzeptabel; einige dieser
Intervalle überlappen
0! geografische Länge
(Greenwich) und 0° geografische
Breite (den Äquator).
-
3. Bilden
von ursprünglichen
Paketgrößen
-
Nachdem das kleinste umschließende unterteilbare
Vieleck gebildet ist, können
die Daten paketisiert werden. Bei einer Alternative kann der Paketisierungsvorgang
beginnen, indem der nachstehend beschriebene regelmäßige Unterteilungsprozeß auf das
kleinste umschließende
unterteilbare Vieleck 107 angewandt wird. Bei einer bevorzugten
Ausführungsform
jedoch werden die Daten in dem Abdeckungsbereich zuerst geprüft auf der
Basis einer Organisation der Daten in einem regelmäßigen Gitter
von Rechtecken, die aus dem kleinsten umschließenden unterteilbaren Vieleck
gebildet sind. Dies ist äquivalent
einer Halbierung des kleinsten umschließenden unterteilbaren Vielecks
und dann der daraus gebildeten Rechtecke (oder Quadrate) für eine Anzahl
von Malen, bis ein regelmäßiges Gitter
von Rechtecken resultiert. Jedes der Rechtecke in diesem Gitter
kann als ein "ursprüngliches
Vieleck" bezeichnet
werden. Die ursprüngliche
Vieleckgröße wird
als der größte geografische
Bereich bezeichnet, der von einem Paket in jeder Schicht jeder der
Arten von Daten in dem geografischen Datensatz dargestellt werden
darf. Bei einer Ausführungsform
wird eine feste ursprüngliche
Vieleckgröße für alle Regionen
im ganzen Land definiert, so daß Regionen
leichter miteinander vereinigt werden können. Bei einer vorliegenden
bevorzugten Ausführungsform
hat jedes der ursprünglichen
Vielecke eine feste, vorbestimmte Größe von 217 Navigationseinheiten
mal 217 Navigationseinheiten.
-
Solche ursprünglichen Vielecke sind als
das Gitter 108 in 4B gezeigt.
Die ursprünglichen
Vielecke können
alternativ dadurch definiert sein, daß einfach ein regelmäßiges Gitter
mit der gleichen Struktur wie das Gitter 108 über den
geografischen Bereich 100 gelegt wird. In beiden Fällen besteht
das Gitter 108 aus ursprünglichen rechteckigen Vielecken
(z. B. Vielecken 110a,b , Vieleck 110a+1,b , ... Vieleck 110m,n ).
-
Die Plazierung der Grenzen des Gitters 108 wird
festgelegt, um das kleinste begrenzende Rechteck 106 zu
umschließen
(d. h. die kleinste geografische Länge (entsprechend dem Knoten 102E),
die kleinste geografische Breite (entsprechend dem Knoten 102S),
die größte geografische
Breite (entsprechend dem Knoten 102N) und die größte geografische
Länge (entsprechend
dem Knoten 102W)). Die Gittergrenzen sind so definiert,
daß dann,
wenn das Gitter über
die Region 100 gelegt ist, wie 4B zeigt, alle räumlichen Daten umschlossen
sind und die ursprünglichen
Vielecke eine Größe haben,
wie sie oben beschrieben wurde. Bei einer bevorzugten Ausführungsform
entspricht die Plazierung der Gittergrenzen auch den akzeptablen
Intervallen, die oben beschrieben wurden.
-
Beispiel
-
Ein Beispiel der Implementierung
des obigen Prozesses zur Festlegung der Gittergrenzen ist wie folgt:
- 1. Man beginnt mit dem Setzen von MinLat, MaxLat,
MinLong und MaxLong auf die kleinsten und größten geografischen Breiten
und Längen
des kleinsten begrenzenden Rechtecks 106. Diese Werte sind
in Einheiten von 1/100.000 eines Grads, so daß sie in dem Bereich von –18000000
bis 18000000 für
die Längen und
von –9000000
bis 9000000 für
die Breiten liegen.
- 2. Für
K = 1 bis 25 in Inkrementen von 1:
- (a) Dividieren von MaxLat durch 2K.
- (b) Multiplizieren von MaxLat mit 2K.
Da MaxLat eine ganze Zahl ist, haben diese zwei Operationen den Effekt
des Abbrechens der K niedrigstwertigen Binärziffern von MaxLat. Tatsächlich erfolgt
dies durch Rechtsverschieben und Linksverschieben von MaxLat, was
effizienter als Division und Multiplikation ist.
- (c) Wenn die größte geografische
Breite des kleinsten begrenzenden Rechtecks größer als MaxLat ist, wird 2K zu MaxLat addiert.
- (d) Dividieren von MinLat durch 2K.
- (e) Multiplizieren von MinLat mit 2K.
- (f) Wenn die kleinste geografische Breite des kleinsten begrenzenden
Rechtecks kleiner als MinLat ist, wird 2K von
MinLat subtrahiert.
- (g) Stoppen, wenn MinLat + 2K gleich
MaxLat ist. Andernfalls bei Schritt (a) für den nächsthöheren Wert von K wiederholen.
- 3. Die Operationen von Schritt 2 an MinLong und MaxLong ausführen.
-
An diesem Punkt definieren MinLat,
MaxLat, MinLong und MaxLong die Grenzen des Gitters 108,
d. h. des unterteilbaren Vielecks, die das kleinste begrenzende
Rechteck 106 umschließen.
-
4. Pakete
bilden
-
Wie oben gesagt wird, besteht ein
Zweck der Paketisierung von Daten darin, in jedem Paket eine Datenmenge
unterzubringen, die so nah wie möglich
an einer vorbestimmten maximalen Paketmenge, jedoch nicht darüber, liegt.
Beispielsweise kann die vorbestimmte maximale Menge 16 kByte sein.
-
Jedes der ursprünglichen Vielecke in dem Gitter 108 von 4B wird als ein "Versuchspaket" geprüft, um festzustellen,
ob die darin befindliche Datenmenge in ein einzelnes Paket paßt. Wenn
die Daten in dem "Versuchspaket" einschließlich aller
Paketkopfdaten (wie Indexinformation und Kopfdaten) kleiner oder
gleich der maximalen Paketmenge wäre, wird ein Paket mit diesem
ursprünglichen
Vieleck gebildet, und es wird keine Unterteilung dieses ursprünglichen
Vielecks für
diesen speziellen Datentyp ausgeführt. Andererseits wird ein "Versuchspaket", das eine Datenmenge
aufweist, die die vorbestimmte maximale Paketmenge überschreitet,
unterteilt unter Anwendung von einer der beiden folgenden Vorgehensweisen
als eine Funktion der Menge, um die die Daten in dem "Versuchspaket" die gewünschte maximale
Menge überschreiten.
(Bei einer bevorzugten Ausführungsform
wird eine nachstehend beschriebene Schätztechnik zur Bestimmung von
Versuchspaketen angewandt. Die Schätztechnik berücksichtigt
Paketkopfdaten und Kompression, ohne daß alle zur Bildung eines Pakets
erforderlichen Schritt tatsächlich
ausgeführt
werden.) Regelmäßiger Unterteilungsprozeß Wenn die
Datenmenge in einem "Versuchspaket" die maximale Paketmenge
um ein vorbestimmtes Vielfaches überschreitet,
wird das "Versuchspaket" in zwei Rechtecke
unterteilt. Bei einer bevorzugten Ausführungsform erfolgt die Unterteilung
des "Versuchspakets" in zwei Rechtecke,
indem zuerst das kleinste umschließende unterteilbare Vieleck
für das
Versuchspaket bestimmt wird (auf die vorstehend beschriebene Weise
mit dem ursprünglichen
Vieleck), das umschließende
unterteilbare Vieleck halbiert wird und dann das "Versuchspaket" dort unterteilt
wird, wo die Halbierungslinie des unterteilten Vielecks das Versuchspaket
schneidet. Alternativ kann das "Versuchspaket" selbst einfach halbiert
werden. (Es ist zu beachten, daß eine
Halbierung des umschließenden
unterteilbaren Vielecks nicht in jedem Fall das Versuchspaket halbiert,
sondern das Versuchspaket statt dessen an einer außermittigen
Stelle unterteilen kann. Eine solche Unterteilung des Versuchspakets
wird hier jedoch trotzdem als "Halbierung" bezeichnet.) Ein
jedem Fall verläuft
die Halbierungslinie des unterteilbaren Vielecks entweder in der
Längs-
oder der Breitenrichtung. Bei einer vorliegenden bevorzugten Ausführungsform
wird das unterteilbare Vieleck in derjenigen von der Längs- oder Breitenunterteilung
halbiert, in der das maximale Seitenverhältnis (≥ 1) der beiden resultierenden
Rechtecke des Versuchspakets minimiert wird. Jedes dieser resultierenden
Rechtecke wird dann als ein "Versuchspaket" wie oben beschrieben
untersucht und halbiert, wenn die darin enthaltenen Daten das vorbestimmte
Vielfache der maximalen Paketmenge überschreiten. Jedes dieser
Unter-Rechtecke wird dann ebenfalls als ein "Versuchspaket" untersucht, wie oben beschrieben, und
der Prozeß wird
fortgesetzt, bis die Datenmenge in einem Rechteck oder Unter-Rechteck
kleiner als das vorbestimmte Vielfache der maximalen Paketmenge
ist. Bei einer vorliegenden Ausführungsform
ist die maximale Paketmenge mit 16 kByte von Daten vorbestimmt,
und daher ist das vorbestimmte Vielfache 3.2. (Bei alternativen
Ausführungsformen
kann die maximale Menge so vorbestimmt sein, daß sie eine andere Menge größer oder
kleiner als 16 k, beispielsweise 8 k oder 32 k oder auch eine größere Menge als
diese ist.) Somit werden "Versuchspakete" entsprechend dem
aktuellen Prozeß halbiert,
wenn ihr Dateninhalt 51,2 kByte überschreitet.
Das vorbestimmte Vielfache wird auf der Basis eines gewünschten
kleinsten Füllprozentsatzes
für jedes
Paket gewählt.
Bei der vorliegenden Ausführungsform
ist der gewünschte
kleinste Füllprozentsatz
80%. Wenn die Datenmenge in einem Versuchspaket kleiner als die
vorbestimmte Menge ist, folgen weitere Unterteilungen des Versuchspakets
dem nachstehend beschriebenen "gewöhnlichen
Unterteilungsprozeß".
-
Normaler Unterteilungsprozeß: Wenn
die Datenmenge in einem "Versuchspaket" zwar die maximale Paketmenge überschreitet,
aber kleiner als das vorbestimmte Vielfache der maximalen Paketmenge
(z. B. 16 kb < × 51,2 kb)
ist, wird das nachstehende normale Unterteilungsverfahren angewandt:
Weitere Unterteilungen des "Versuchspakets" sind nicht notwendigerweise
Halbierungen, sondern erfolgen statt dessen auf eine Weise, die
dazu führt,
daß die
Zahl der geschaffenen Pakete minimiert wird. Das hat die Auswirkung,
daß sowohl der
zum Speichern der Pakete benötigte
Platz als auch Platzvergeudung innerhalb der Pakete minimiert wird.
-
Wenn man beispielsweise ein Versuchspaket
betrachtet, das Daten enthält,
die gleich dem 3,6fachen der maximalen Paketgröße oder -menge sind, dann sollte
es möglich
sein, diese Daten in vier Paketen unterzubringen. Eine Halbierung
des Versuchspakets kann es jedoch in zwei Rechtecke von dem 1,2fachen
der maximalen Paketgröße bzw.
dem 2,4fachen der maximalen Paketgröße unterteilen, was schließlich zu
einem Minimum von fünf
Paketen führen
würde,
wenn zur Unterteilung jedes der Rechtecke die Halbierung angewandt werden
würde.
Daher erfolgen Unterteilungen des Rechtecks in dieser Stufe mit
dem Ziel der Minimierung der Anzahl von geschaffenen Paketen, aber
mit der Einschränkung,
daß die
Unterteilungslinie nicht beliebig sein darf. Wenn dabei ein "Versuchspaket" einen Dateninhalt
hat, der größer als
die maximale Paketgröße, aber nicht
größer als
das vorbestimmte Vielfache davon ist, wird das "Versuchspaket" mit einer Teilung von 2–X entlang
einer seiner Dimensionen unterteilt. Bei einer derzeit bevorzugten
Ausführungsform
ist X = {1, 2, 3, 4, 5}. Somit wird das Versuchspaket bei 1/2 oder
1/4 oder 1/3 oder 1/16 oder 1/32 Unterteilungen seiner Breite unterteilt.
Beispielsweise kann ein Versuchspaket in zwei Rechtecke mit Breiten
unterteilt werden, die gleich 5/8 bzw. 3/8 der Breite des Versuchspakets
sind. Diese übliche
Teilung kann direkt auf die Dimensionen des Versuchspakets angewandt
werden, oder sie kann bei einer derzeit bevorzugten Ausführungsform
auf die Dimensionen eines kleinsten umschließenden unterteilbaren Vielecks
des Versuchspakets angewandt werden. Im letzteren Fall wird das
Versuchspaket dort unterteilt, wo die Teilungslinie des unterteilbaren
Vielecks das Versuchspaket schneidet. In beiden Fällen liegt
die Teilungslinie entweder in der Längs- oder der Breitenrichtung.
-
In Frage kommende Teilungslinien
werden wie folgt untersucht: Erstens werden Unterteilungen an jeder
der bezeichneten 2–X Teilungen entlang
der Breite des Versuchspakets sowohl in der geografischen Längs- als
auch der geografischen Breitenrichtung vorgenommen. Für jede solche
Unterteilung werden die Seitenverhältnisse (definiert als das
Verhältnis
der größeren Dimension
zu der kleineren Dimension) jedes der zwei resultierenden Rechtecke
bestimmt, und das größere der
beiden wird identifiziert. Die größte Seitenverhältnisse, die
für jede
der in Frage kommenden Teilungslinien identifiziert werden, werden
dann verglichen, und die in Frage kommenden Teilungslinien werden
vom kleinsten bis zum größten dieser
Seitenverhältnisse
geordnet. Die von den in Frage kommenden Teilungslinien resultierenden
Rechtecke werden dann, beginnend mit der ersten in Frage kommenden
Linie in der geordneten Liste, geprüft. Die in Frage kommende Teilungslinie,
die zur Teilung des Versuchspakets gewählt wird, ist die erste in
der Liste, die angetroffen wird, wenn die Datenmenge in einem ihrer
zwei resultierenden Rechtecke größer als
die maximale Paketgröße, aber
kleiner oder gleich einem Vielfachen (etwa dem Zweifachen) eines
kleinsten Füllprozentsatzes,
mal der maximalen Paketmenge und der maximalen Paketmenge, ist.
Beispielsweise wird die Teilungslinie so gewählt, daß sie in einem der resultierenden
Rechtecke eine Menge zwischen dem 1,6- und 2,0fachen der maximalen
Paketmenge aufweist. Das sollte die Durchführung einer weiteren Unterteilung
des Rechtecks ermöglichen,
um zwei weitere Unter-Rechtecke
zu bilden, die jeweils einen Füllprozentsatz
von größer als
80% (0,8) der maximalen Paketmenge haben. Jedes dieser resultierenden
Unter-Rechtecke mit einem Füllprozentsatz
zwischen 80% und 100% der maximalen Paketmenge wird zu Paketen geformt.
Wenn keine in Frage kommende Teilungslinie dieses Kriterium erfüllt, wird
die erste in Frage kommende Teilungslinie (d. h. diejenige mit dem
kleinsten maximalen Seitenverhältnis)
verwendet, um das gegebene Rechteck zu unterteilen.
-
Beispiel
-
Nachstehend wird beschrieben, wie
während
der Paketbildung bestimmt wird, wann die Halbierung von Versuchspaketen
zu beenden ist und der Normalprozeß der Bewertung von in Frage
kommenden Teilungen von 1/32, 3/32, 1/8, 5/32, 3/16, 7/32, 1/4,
9/32, 5/16, 11/32, 3/8, 13/32, 7/16, 15/32, 17/32, 9/16, 19/32, 2/32,
11/16, 23/32, 3/4, 25/32, 13/16, 27/32, 7/8, 29/32, 15/16 und 31/32
entlang den Breiten des Versuchspakets sowohl in geografischer Länge als
auch geografischer Breite zu beginnen hat.
-
Es wird ein Soll-Paketfüllprozentsatz
F gewählt.
Nur beispielhaft soll F 0,8 (80%) sein. Wie oben erwähnt, wird
auch eine maximale Paketgröße P bestimmt.
P wird in Bytes ausgedrückt
und ist die maximale Datenmenge, die in ein Paket eingebracht werden
kann. Im optimalen Fall ist es daher erwünscht, Pakete in dem Bereich
von F × P
Bytes und einer Größe von P
Bytes zu bilden.
-
Wenn ein Versuchspaket, das eine
Datengröße D hat,
im Bereich P < D < 1,6 × P liegt,
dann ist es nicht möglich,
daraus Pakete zu bilden, deren Datengrößen in den Sollbereich fallen.
Wenn das Versuchspaket unterteilt wird, so daß das eine resultierende Rechteck
eine Datengröße hat,
die größer oder
gleich 0,8 × P
ist, dann hat das andere eine Datengröße von weniger als 0,8 × P.
-
Dieser Prozeß kann erweitert werden, so
daß die
folgende Liste von inakzeptablen Datengrößen erhalten wird:
-
Inakzeptable Datengrößen D:
-
- 0 < D < 0,8 × P
- P < D < 1,6 × P
- 2 × P < D < 2,4 × P
- 3 × P < D < 3,2 × P
-
Die Liste endet hier, weil der nächste Eintrag
4 × P < D < 4 × P
wäre.
-
Aus der obigen Liste kann eine komplementäre Liste
von akzeptablen Datengrößen erzeugt
werden:
-
Akzeptable Datengrößen D:
-
- 0,8 × P < D < P
- 1,6 × P < D < 2 × P
- 2,4 × P < D < 3 × P
- 3,2 × P < D
-
Die obige Liste entspricht einem
Füllprozentsatz
F gleich 0,8. Andere Füllprozentsätze erzeugen
davon verschiedene Listen von akzeptablen oder inakzeptablen Datengrößen. Im
allgemeinen hat die Liste von inakzeptablen Datengrößen die
nachstehende Form:
-
Inakzeptable Datenarößen D:
-
- 0 < D < F × P
- P < D < 2 × F × P
- ...
- n × P < D(n + 1) × F × P
- ...
- weiter, bis ein leerer Bereich erreicht ist.
-
Das Vorstehende wird wie folgt in
dem Normalprozeß zum
Formen der Pakete angewandt. Die Datengrößen von jedem der zwei Rechtecke,
die aus einer Versuchspaketunterteilung resultieren, sollten in
einen der akzeptablen Bereiche fallen (wann immer das möglich ist).
In der Praxis bedeutet das, daß,
solange die Datengröße in einem
Rechteck etwas größer als
das hohe Ende des höchsten
inakzeptablen Bereichs (in dem Beispiel 3,2 × P) ist, das Rechteck entsprechend dem
oben beschriebenen Halbierungsprozeß unterteilt werden kann. Sobald
die Annäherung
an das hohe Ende des höchsten
unakzeptablen Bereichs erfolgt, werden normale Unterteilungen (d.
h. Unterteilungen von 1/32, 1/16, 3/32, 1/8 usw. bei diesem Beispiel)
in Betracht gezogen.
-
In Frage kommende Teilungslinien
werden untersucht und auf die oben beschriebene Weise verglichen,
und die für
die Teilung ausgewählte
ist diejenige, bei der das folgende Kriterium erfüllt ist:
Die Datenmenge, die in jedes der beiden Unter-Rechtecke des Versuchspakets
fällt,
hat solche Größe, daß es theoretisch wiederum
in Rechtecke unterteilt werden kann, die im Durchschnitt einen bestimmten
kleinsten Paketdatenfüllprozentsatz
erreichen. Es mag Fälle
geben, bei denen das obige Kriterium nicht erfüllt werden kann.
-
Die Daten werden an der Teilungslinie
geteilt, die in dem normalen Teilungsprozeß gewählt wurde, und für jedes
der zwei erzeugten Unter-Rechtecke
wird der normale Teilungsprozeß nach
Erfordernis wiederholt. Wie oben erwähnt, kann der Halbierungs-
und der normale Teilungsprozeß entweder
direkt bei dem Versuchspaket oder dem kleinsten umschließenden unterteilungsfähigen Vieleck
des Versuchspakets angewandt werden, wobei allerdings letzteres
bevorzugt wird. Es ist zu beachten, daß in einigen Fällen die
kleinsten umschließenden
unterteilungsfähigen
Vielecke exakt gleich den Versuchspaketgrenzen sind. Dies kann insbesondere in
Bezug auf die ursprünglichen
Vielecke 108 der Fall sein. Der Nutzen des Definierens
der Unterteilungen als kleinste umschließende Vielecke besteht darin,
daß ein
Vieleck wiederholt gleichmäßig halbiert
werden kann, wogegen das bei einem Versuchspaket-Rechteck mit beliebigen
Dimensionen nicht möglich
ist. Ein weiterer Vorteil besteht darin, daß dieser Prozeß die Verarbeitung
an Begrenzungen zwischen verschiedenen Datenbanken erleichtert.
Die normale Unterteilung eines Versuchspakets an einer 2–X Teilung
der Seite des Vielecks ist gleich einer Sequenz von 1 bis X Halbierungen.
Infolgedessen können
die Teilungslinien und somit die resultierenden Unter-Rechtecke
in einer kleinsten Zahl von Bits dargestellt werden (5 Bits für 1/32-Teilungen
gegenüber
acht oder sechzehn Bytes, um ein beliebiges Rechteck zu definieren).
-
(Bei der Prüfung von Datenmengen, die in
Rechtecken enthalten sind, gibt es eine Übereinkunft, daß jede Dateneinheit,
die exakt auf einer Teilungslinie liegt, zu den Daten in dem Rechteck "rechts" ("östlich") der Linie gehört, wenn die Teilungslinie
eine Nord-Süd-Linie
ist, und zu den Daten "über" ("nördlich") der Linie gehört, wenn die Teilungslinie
eine Ost-West-Linie ist.)
-
Der obige Prozeß wird an allen ursprünglichen
Vielecken 110 (und erforderlichenfalls an allen resultierenden
Rechtecken) in dem Gitter 108 ausgeführt.
-
5. Folgende
Paketbildungen
-
Wie oben gesagt wird, wird jede Untermenge
oder jeder Typ von geografischen Daten separat von Untermengen anderer
Typen aufrechterhalten. Beispielsweise sind Streckenberechnungsdaten
separat von kartografischen Daten angeordnet. Innerhalb einer einzelnen
Untermenge von Daten können
die Daten weiter in Schichten getrennt werden.
-
Nachdem der Paketbildungsprozeß, der oben
beschrieben wird, an einer Schicht eines Typs von geografischen
Daten ausgeführt
wurde (d. h. der Schicht und dem Typ, die als am dichtesten geschätzt wurden, etwa
Schicht 0 der Streckenberechnungsdaten), wird die Paketbildung der
anderen Schichten vom gleichen Datentyp und anderen Datentypen durchgeführt. Diese
anderen Paketbildungen (d. h. Paketbildungen anderer Schichten vom
gleichen Datentyp und von anderen Datentypen) beginnen mit genau
dem gleichen ursprünglichen
Vieleckunterteilungsgitter 108, das bei der ursprünglichen
Paketbildung verwendet wurde. Bei jeder rekursiven Ebene jeder folgenden
Paketbildung von verschiedenen Datentypen muß, wenn die Unterteilung eines
Rechtecks erforderlich ist, diese an exakt der gleichen Teilungslinie
ausgeführt
werden (wobei es keine Rolle spielt, ob dies durch Halbierung oder
normale Teilung geschieht), die während der Paketbildung des
ursprünglichen
Datentyps (oder jeder vorhergehenden Paketbildung) verwendet wurde.
-
Da höhere Schichten geringere Dichte
haben, ist es eventuell nicht erforderlich, die Daten in ebenso viele
Pakete zu teilen, damit jedes Paket innerhalb der maximalen Paketgröße liegt.
Bei höheren
Schichten eines bestimmten Datentyps kann es somit weniger Pakete
geben, und einige der Pakete können
einen größeren geografischen
Bereich als die unteren Schichten darstellen. Wie oben gesagt wurde,
erfolgen jedoch die Teilungen der Daten der höheren Ebenen entlang denselben
Teilungslinien, die in den unteren Ebenen erfolgten, und Unterteilungen
in den höheren
Ebenen werden soweit erforderlich vorgenommen, bis eine Datenmenge
erreicht ist, die nicht größer als
die maximale Paketgröße ist.
-
Während
einer folgenden Paketbildung kann es notwendig sein, daß der Teilungsprozeß weiter
als bei einer vorhergehenden Paketbildung läuft. Dies ist der Fall, wenn
die Daten des folgenden Datentyps, die in einem der ursprünglichen
Vielecke oder der daraus gebildeten Rechtecke liegen, dichter als
der Datentyp sind, der während
einer vorhergehenden Paketbildung verwendet wurde. In diesem Fall
hat die ursprüngliche
Paketbildung eventuell das ursprüngliche
Vieleck nicht in hinreichend kleine Unter-Rechtecke unterteilt,
so daß jedes
weniger als die maximale Paketdatenmenge des folgenden Datentyps
enthält.
In diesem Fall wird eine Teilungslinie ebenso bestimmt, wie das
bei dem ursprünglichen
Paketbildungsprozeß geschehen
wäre. Dieses Erfordernis
bedeutet, daß es
im Fall von Paketen A und B verschiedener Schichten oder Typen immer
so ist, daß entweder
der von Paket A abgedeckte geografische Bereich in dem von Pakete
B abgedeckten Bereich enthalten ist, oder daß der von Paket B abgedeckte
geografische Bereich in dem von Paket A abgedeckten Bereich enthalten
ist.
-
Anders ausgedrückt heißt das, nachdem der Datentyp
mit der größten erwarteten
Datendichte (z. B. die Schicht 0 der Streckenberechnungsdaten) paketisiert
worden ist, werden andere Schichten des gleichen Datentyps (z. B.
die Schicht 1 der Streckenberechnungsdaten) oder von anderen Datentypen (z.
B. die Schicht 0 der kartografischen Daten) parallel mit der ursprünglichen
Paketbildung wie folgt in Pakete unterteilt:
- 1.
Die Unterteilung von Daten in ursprüngliche Rechtecke beginnt mit
genau dem gleichen Satz von Vielecken.
- 2. Immer dann, wenn Daten in einem bestimmten Rechteck die maximale
Paketgröße überschreiten
und daher unterteilt werden müssen,
wird einer von zwei Prozessen angewandt. (1) Wenn dieses Rechteck
bei der ursprünglichen
Paketbildung oder bei irgendeiner vorhergehenden Paketbildung unterteilt
wurde, dann wird exakt die gleiche Teilungslinie verwendet, die
bei der früheren
Paketbildung verwendet wurde. (2) Wenn das Rechteck vorher nicht
unterteilt wurde, wird seine Teilungslinie auf die oben in bezug
auf die ursprüngliche
Paketbildung beschriebene Weise bestimmt.
-
Vorteile
-
Das Paketbildungsverfahren und die
Organisation, die oben beschrieben wurden, bieten mehrere Vorteile
einschließlich
der Minimierung der Erzeugung von Paketen, die weniger als optimal
gefüllt
sind, wodurch die Speicherungseffizient auf dem Speichermedium maximiert
wird. Dadurch können
mehr Daten gleichzeitig in Speicherpuffern gehalten werden, wenn
Puffer einer Größe oder
mit einigen wenigen unveränderlichen
Größen vorhanden
sind. Außerdem
wird es durch das Paketbildungsverfahren und die Organisation einfach,
zwischen benachbarten Paketen gleicher Art und der gleichen Schicht
zu navigieren, ohne daß die
begrenzenden Rechtecke dieser Nachbarpakete in jedem Paket enthalten
sein müssen
oder ohne daß man
einen separaten räumlichen
Index auslesen muß.
Wegen der Regelmäßigkeit
der Methode des Definierens von Paketgrenzen kann in jedem Paket
ein räumlicher
Index minimaler Größe von in
der Nähe
befindlichen Paketen enthalten sein. Da außerdem verschiedene Schichten
und verschiedene Pakettypen parallel paketisiert werden, macht es
dieses Verfahren einfach, zwischen Paketen verschiedener Typen oder
in verschiedenen Schichten, die den gleichen oder überlappende
geografische Bereiche abdecken, zu navigieren. Die Verwendung von
unterteilbaren Vielecken für
die Unterteilung von Paketen erleichtert ferner das Navigieren zwischen
aneinandergrenzenden, aber separat gespeicherten geografischen Datenbankregionen.
-
6. Ordnen
von Paketen
-
Nachdem sämtliche Pakete für alle Datentypen
gebildet sind, werden die Pakete geordnet, um das schließliche Schreiben
der Pakete auf eine Platte zu erleichtern. Um die Suchzeit beim
Lesen von Daten aus einer Speichereinrichtung wie etwa einer CD-ROM
zu minimieren, ist jede räumliche
Menge von Paketen in der Reihenfolge "Tiefe zuerst" in bezug auf den globalen kd-Baum-Index
organisiert (d. h. so, daß für jede Teilungslinie
alle Pakete, die in dem Unter-Rechteck enthalten sind, dessen Koordinaten
geringer als die Teilungskoordinate sind, allen Paketen vorhergehen,
die in dem Unter-Rechteck enthalten sind, dessen Koordinaten größer als
die Teilungskoordinate sind), so daß die Wahrscheinlichkeit größer ist,
daß geografisch
benachbarte Pakete auf einer Platte näher beieinander liegen. Die
linearen oder räumlichen
Indexe, bei denen die Wahrscheinlichkeit am größten ist, daß sie zum
Zugriff auf einen bestimmten Datentyp benutzt werden, werden in
der Nähe
dieser Daten und ihnen vorangehend plaziert. Da der "globale kd-Baum" alle räumlichen Pakettypen
indexiert, kann es sein, daß er
an verschiedenen Stellen auf dem Medium redundant repliziert wird (d.
h. nahe jedem Datensatz von räumlichen
Paketen und diesem vorangehend).
-
Pakete werden auf der Platte ungefähr entsprechend
der Peano-Schlüsselanordnung
gespeichert. Die tatsächliche
Anordnung der Pakete basiert auf dem zweidimensionalen kd-Baum (der
die gesamte Datenbankregion darstellt), der während der Paketbildung erzeugt
wird, wenn das ursprüngliche
unterteilbare Vieleck rekursiv in Unter-Rechtecke und schließlich in
Pakete geteilt wird. Das Ordnen der Pakete wird durch Abfahren dieses
kd-Baums von der Tiefe ausgehend erzeugt. Aufgrund des (oben beschriebenen)
Verfahrens, nach dem das ursprüngliche
umschließende
unterteilbare Vieleck der Region gewählt wird und nach dem jede
Teilungslinie während
der Paketbildung gewählt wird,
ist dieses Ordnen identisch mit der Peano-Schlüsselanordnung, wobei die Teilungslinie
jedes Rechtecks dieses Rechteck genau halbiert, jedoch von der Peano-Schlüsselanordnung
auf der niedrigsten Ebene des kd-Baums immer dann geringfügig abweicht,
wenn Teilungslinien keine Halbierungslinien sind. Dieses Ordnen ähnlich einer
exakten Peano-Schlüsselanordnung
erhöht
die Wahrscheinlichkeit, daß geografisch
benachbarte Pakete auf der Platte nahe beieinander gespeichert werden. Ein
Vorteil dieses Ordnens über
eine exakte Peano-Schlüsselanordnung
besteht darin, daß es
automatisch durch den Paketbildungsprozeß erzeugt wird, so daß ein zusätzliches
Sortieren nicht erforderlich ist. Ein Index, der aus einem zweidimensionalen
kd-Baum besteht (nachstehend im einzelnen erläutert), kann verwendet werden,
um auf Streckenberechnungspakete räumlich zuzugreifen (die zwei
Dimensionen sind die geografischen Breiten und Längen der Teilungslinien, die
während
der Paketerzeugung verwendet wurden). Diese Art von Indexierung
ist nützlich
für die
anfängliche
Lokalisierung einer beliebigen Position, wenn etwa eine Streckenführungsanwendung
erstmals die Kartendaten lokalisiert, die der aktuellen Position
eines Fahrzeugs entsprechen. Wenn einmal eine Ausgangsposition bekannt
ist, kann allerdings die gesamte Information über nahe liegende Kartendaten
in Indexen gefunden werden, die paketintern sind.
-
7. Indexbaum-Paketbildung
und das physische Speicherformat
-
In dem physischen Speicherformat
werden verschiedene Indexbäume
verwendet. Diese umfassen den 2d "Nachbarpaket-kd-Baum", der in jedem Streckenberechnungs-,
kartografischen und POI-Paket gespeichert ist. Die Streckenberechnungs-
und Kartografiedatenpakete weisen außerdem einen 2d "internen kd-Baum" auf.
-
Ferner werden verschiedene globale
Index-Bäume
(pro Datenbankregion) benutzt. Im allgemeinen ist es möglich, daß nicht
jeder dieser Bäume
in ein einziges Indexpaket paßt.
Ein Indexpaket kann einen vollständigen
oder teilweisen Baum (einen globalen Baum oder Unter-Baum) enthalten
oder es kann mehr als einen vollständigen Baum speichern (Unter-Bäume eines
globalen Baums). Theoretische Überlegungen
zeigen, daß Indexpäkete eine
Größe gleich
der (durchschnittlichen) Größe der Datensatzpakete,
die sie indexieren, haben sollten, um Suchzeiten zu minimieren.
-
Die Paketerzeugung des globalen Baums
läuft wie
folgt ab. Knoten werden in der Reihenfolge "Breite zuerst" gespeichert (um Suchzeiten auszugleichen).
Wenn ein Paket so gefüllt
worden ist, daß ein
weiterer Knoten nicht darin gespeichert werden kann, wird ein neues
Paket erzeugt, und ein ungespeicherter Knoten wird als Stammknoten
für das
neue Paket ausgewählt
und rekursiv in der Reihenfolge "Breite
zuerst" gespeichert.
Ein Indexpaket kann mehr als einen Stamm nur dann enthalten, wenn
die vollständigen
Unter-Bäume an
diesen Stämmen
in das Paket passen; wenn also ein vollständiger Unter-Baum in in einem
Indexpaket paketisiert worden ist, dann kann ein anderer nicht gespeicherter
Knotender höchsten
Ebene nur dann als weiterer Stamm in diesem Indexpaket gespeichert
werden, wenn sein vollständiger
Unter-Baum in das Paket paßt; dadurch
werden unnötige
Indexsuchvorgänge
quer durch Pakete vermieden.
-
Die Stämme werden sequentiell numeriert,
beginnend mit 0 in jedem Indexpaket. Somit erfolgt eine Inter-Paketverweis
zu einem Knoten durch die Paket-ID (minus Regionsspezifikator) plus
Baum-ID. Der Intea-Paketverweis zu einem Knoten erfolgt durch Byteversetzung
(ebenso wie bei dem "Nachbarpaket-kd-Baum" und dem "internen kd-Baum"). Indexbäume werden
in den Indexpaketen unkomprimiert gespeichert.
-
Das Indexpaket hat die folgende Struktur.
Die erste Information in dem Paket ist der IdxPcIHdr_t-Kopf (bytegepackt).
Auf den Kopf folgt die Versetzungsanordnung zu den Stämmen in
dem Paket, indexiert durch die Baum-ID:
Ushort 16 root_offset[]; /*root
offset array*/
-
Die Bäume folgen auf die Versetzungsanordnung.
-
8. Globaler räumlicher
Paketisierungsbaum
-
Für
jede Region gibt es einen 2D kd-globalen räumlichen Paketisierungsindexbaum.
Die Struktur dieses Baums entspricht der Paketisierung, die eine
Verfeinerung aller Paketisierungen für alle räumlich paketisierten Datentypen
ist (die definiert wird, weil die Paketisierung parallel mit vorhergehenden
Paketisierungen für
andere Datentypen abläuft).
Dieser Baum wird für
mindestens zwei verschiedene Sucharten verwendet. Erstens wird der
Baum benutzt, um festzustellen, welches Paket einen Punkt enthalten
würde,
wenn die Breiten- und Längenkoordinaten
dieses Punkts bekannt sind. Eine andere Art von Suche wird angewandt,
um das eine oder die mehreren Pakete zu bestimmen, die sich mit
einem Rechteck überschneiden,
wenn die Grenzkoordinaten des Rechtecks bekannt sind. Diese beiden
Sucharten können
in verschiedenen Funktionen angewandt werden, was Abfragen, Kartenanzeige,
Streckenberechnung usw. umfaßt.
Ein Knoten in diesem kd-Baum verweist über seine rechte (bzw. linke)
Deskriptor/Identifiziererpaarliste auf ein Datenpaket, wenn das
Rechteck, das dem rechten (bzw. linken) Sohn des Knotens entspricht,
das begrenzende Rechteck für
dieses Datenpaket ist; er kann auf ein Datenpaket irgendeines Typs
verweisen (z. B. die Schicht 1 der Streckenberechnung) und kann
auch absteigende Knoten haben, die auf Datenpakete eines anderes
Typs (z. B. Schicht 0, Kartographie) verweisen.
-
Jeder "Nachbarpaket-kd-Baum" repräsentiert einen Unter-Baum des
globalen Baums (mit Ausnahme der Knoten, die Pakete repräsentieren,
die regions-extern sind); es ist zu beachten, daß ein Knoten in dem globalen
Baum einen Sohn haben kann, der in einem anderen Indexpaket gespeichert
ist, während
der entsprechende Knoten in einem "Nachbar-kd-Baum" und der entsprechende Sohn in demselben
Paket gespeichert sind. Die Datenstruktur für den globalen Baum gleich
derjenigen des "Nachbarpaket-kd-Baums" mit den nachstehend
angegebenen Unterschieden. Erstens bedeutet der Wert 01 für die Steuerbits
8– 9 oder
die Steuerbits 10–11,
daß der
beschnittene Sohn als Stamm in einem anderen Indexpaket erscheint;
in diesem Fall ist die Sohnversetzung 4 Bytes, und die ersten 2
Bytes der Versetzung (zwischen den Indexpaketen, in denen der Stamm
und der Sohn gespeichert sind: alle Indexpakete in dem globalen Baum
haben identische Größe und Redundanzinformation,
so daß die
ID des Sohnpakets während
der Laufzeit aus diesem Paket-ID-Versatz konstruiert werden kann)
und die zweiten 2 Bytes des Versatzes ergeben die Baum-ID. Ferner
muß sowohl
ein linker als auch en rechter Sohnversatz die gleiche Größe haben
(ein 4-Byte-Versatz für
einen nicht-beschnittenen Sohn verwendet die am weitesten rechts
befindlichen, d. h. niedrigstwertigen Bytes). Zweitens speichert die
Deskriptorliste keine Tabellenindexe für Paket-Ids, sondern speichert
statt dessen Paket-Ids direkt, weil es in dem Indexpaket keinen
weiteren Verweis auf die Paket-ID gibt; diese Paket-Ids sind jedoch
im Speicher nicht unbedingt ausgerichtet. Schließlich wird die gesamte Deskriptor-/Identifiziererpaar-Liste
auf eine Gesamtlänge eines
2-Byte-Vielfachen gerundet, weil ein Sohnversatz in Einheiten von
2 Bytes vorkommt.
-
9. Interne
Struktur eines Streckenberechnungspakets
-
Die Informationen in Datensätzen können in
komprimierter Form vorgesehen sein. Nach dem Dekomprimieren sind
die Daten immer noch in einer gepackten Form vorhanden, in der es
keine Füllbytes
und im allgemeinen keine ungenutzten Felder gibt. Jeder dekomprimierte
Datensatz ist daher in Form einer längenveränderlichen Zeichenanordnung.
Diese dekomprimierten, jedoch gepackten Daten sind die Quelle, aus
der logische Aufzeichnungen, die von der Schnittstellenschicht 41 (2) zu der Navigationsanwendungsprogramm-Software geleitet
werden, konstruiert werden.
-
Für
die meisten Datensätze
(wobei besonders Knoten und Segmente über der untersten Schicht ausgenommen
sind) wird eine Versatztabelle verwendet, um den Beginn jedes Blocks
von 2K-Datenstzen zu bestimmen. Dadurch
wird die Zahl der längenveränderlichen
Datensätze
reduziert, die geprüft
werden müssen (mit
einer sequentiellen Suche nach dem gewünschten Datensatz verglichen
werden müssen).
-
Daten im Paketkopf werden von dem
Navigationsanwendungsprogramm (speziell der Schnittstellenschicht 41)
genutzt, um innerhalb des Paket zu navigieren.
-
Diese Daten sind daher in einer Form
vorhanden, die unmittelbar genutzt werden kann. Beispielsweise sind
Daten in Paketköpfen
in Feldern gespeichert, die als ganze Zahlen von zwei Bytes oder
vier Bytes, eventuell mit oder ohne Vorzeichen, definiert sind,
und nicht in Zeichenanordnungsfeldern wie die Datensätze gespeichert.
-
Innerhalb eines Pakets an der untersten
Schicht sind Datensätze
in der Peano-Schlüsselordnung
auf der Basis von geografischer Breite und Länge gespeichert, und Segmentdatensätze sind
in Peano-Schlüsselordnung
auf der Basis der geografischen Breite und Länge des "linken" Knotens des Segments gespeichert. Dieser
Peano-Anordnung wird bis zur Ebene eines Gitters vorbestimmter Größe gefolgt,
und innerhalb des Gitters wird einer Breiten-Längen-Ordnung gefolgt. Einheits-IDs
innerhalb eines Pakets der unteren Schicht werden dann konsekutiv
innerhalb eines Pakets zugeordnet. Auf höheren Schichten werden Segment-
und Knoten-Datensätze
einfach in der Reihenfolge der Einheitsidentifizierer innerhalb
des Pakets gespeichert.
-
Bedingungs-Datensätze werden verwendet, um Information über Beschränkungen
oder zusätzliche Attribute
zu speichern, die einem Segment zugeordnet sind, z. B. "für LKW verboten". Tageszeit-Datensätze enthalten
Information, die einer Bedingung zugeordnet ist, die zeigt, wann
Bedingungen wirksam sind, z. B. "von
16:00 bis 18:00 Linksabbiegen verboten". Bedingungs- und Tageszeit-Datensätze werden
in Peano-Schlüsselordnung
auf der Basis des Peano-Schlüssels
des linken Knotens des primären
Segments gespeichert. Die Speicherung von Datensätzen in Peano-Schlüsselordnung
reduziert den Zeitaufwand beim Suchen nach Datensätzen innerhalb
eines Pakets, da Einheiten in räumlicher
Nähe häufig durch
Datensätze
in einem Paket, die nahe beieinander liegen, dargestellt werden.
-
10. Interne Struktur von
Kartografie-, POI- und Fahrpaketen
-
Mit der unten angegebenen Ausnahme
können
die Kartografie-, POI- und Fahrpakete die gleiche oder eine ähnliche
interne Struktur wie die Streckenberechnungspakete haben. Die Kartografie-
und POI-Daten können
innerhalb jeder Schicht verschachtelt sein. Dies basiert auf der
Erwartung, daß auf
Kartografiedaten und zugehörige
POI-Daten häufig
gemeinsam zugegriffen wird. Eine Verschachtelung wird bei höheren CD-ROM-Drehgeschwindigkeiten
noch nutzbringender, weil die Rotationsverzögerung vor dem Erreichen der gewünschten
Daten bei höheren
Geschwindigkeiten proportional geringer wird im Vergleich mit der
Zeit, die erforderlich ist, um den Lesekopf im Fall einer Nichtverschachtelung
zum Lesen der Daten zu bewegen. Dies gilt insbesondere mit zunehmendem
Datenvolumen, weil die Strecke, um die sich der Kopf bewegen muß (und die
Zeit, die er benötigt),
um die unverschachtelten Daten zu erreichen, als eine Funktion des
Datenvolumens größer werden
würde.
-
Die Streckenberechnungs- und Fahrdaten
brauchen nicht verschachtelt zu sein, obwohl die Daten auf die gleiche
Weise paketisiert sind und für
einige Funktionen gemeinsam genutzt werden. Der Grund dafür ist, daß es möglich gemacht
wird, die Geschwindigkeit des Streckenberechnungsprozesses zu steigern.
Eine Verschachtelung der Fahrdaten und der Streckenberechnungsdaten
würde diesem
Zweck in gewissem Umfang zuwiderlaufen, da hierdurch der Zugriff
auf Streckenberechnungsdaten verlangsamt werden könnte.
-
B. Redundante Daten – Nachbarpaketinformation
-
In jedem Paket ist Information über bestimmte
andere interessierende Pakete gespeichert, und zwar entweder solche,
die geografisch dem Paket benachbart sind (Pakete des gleichen Typs
und in derselben Schicht), oder solche die denselben geografischen
Bereich überlappen
(Pakete verschiedener Typen oder in verschiedenen Schichten). Innerhalb
eines bestimmten Pakettyps sind einige, jedoch nicht alle Pakete
anderer Typen von Interesse. Beispielsweise gibt es innerhalb eines
Streckenberechnungspakets Verweise auf überlappende Fahrpakete, jedoch
keinen Verweis auf überlappende
POI-Pakete. Alle interessierenden Pakete sind gemeinsam in einer
einzigen kd-Baumstruktur gespeichert. Diese Struktur enthält indirekte
Begrenzungsrechteckinformation für jedes
Paket – indirekt
deshalb, weil das obige Paketisierungsschema Paketgrenzen erzeugt,
die mit wenigen Bits (5 Bits pro Teilung) codiert werden können. Jeder
Eintrag (d. h. jeder interne Knoten oder Astknoten in dem kd-Baum) enthält außerdem die
Paketidentifizierer aller Pakete, die dem Unter-Rechteck entsprechen, das durch die
Teilungslinie an dem Eintrag definiert ist.
-
Das in 5A gezeigte Beispiel umfaßt nur einen
Pakettyp (z. B. Streckenberechnungspakete) und nur vier Schichten,
so daß die
Zeichnung vereinfacht sein kann. Das Beispiel von 5A zeigt die Vater-, Nachbar- und Sohn-Paketinformation
für Pakete
A1.
-
Die 5B und 5C zeigen die Struktur eines
Eintrags in den kd-Baum, der den ein Paket umgebenden geografischen
Bereich beschreibt. Im allgemeinen ist jede Unterteilung in einem
Rechteck mit einem kd-Baumeintrag von zwei oder mehr Bytes beschrieben:
zwei Bytes Steuerinformation und 0 bis 4 Bytes zur Darstellung von
Versatz zu den linken und rechten Söhnen (8 oder 16 Bits pro Versatz).
Der Schnitt kann sich an jeder 1/32-Teilung eines kleinsten umschließenden Vielecks
eines Rechtecks befinden, und daher sind 5 Bits der Steuerinformation
für den
Ort der Linie bestimmt, die das Vater-Rechteck in linke und rechte
Unter-Rechtecke trennt. Immer, wenn ein kd-Baum-(intern oder Astknoten
einem Paket entspricht, ist in dem kd-Baum ein Paket-Deskriptor
(ein Byte) vorhanden, der Typ und Schicht des Pakets und andere
Informationen enthält.
Auf einen Paket-Deskriptor folgt entweder ein Ein-Byte- oder Drei-Byte-Index in die Paket-Identifizierertabelle;
es wird erwartet, daß in
den meisten Fällen
ein Byte genügt,
wenn sich aber mehr als 254 Paket-IDs in der Tabelle befinden, wird
der Index erweitert. Die Paket-Identifizierertabelle enthält Vier-Byte-Einträge; der
Regionsbezeichner von einem Byte ist nicht enthalten. Wenn der Regionsbezeichner
von demjenigen des Pakets, das die Paket-Identifizierertabelle enthält, verschieden
ist, dann wird das höchstwertige
Bit des Vier-Byte-Paketidentifizierers in der Tabelle auf 1 gesetzt,
um anzuzeigen, daß der
vollständige
Paketidentifizierer in einer separaten Tabelle von externen Paketidentifizierern
nachgeschlagen werden soll.
-
Beispiel
-
In den 5D und 5E ist
ein Beispiel der Struktur einer kd-Baumtabelle und Paket-Identifizierertabelle gezeigt.
Der Einfachheit halber enthält
dieses Beispiel nur einen einzigen Pakettyp und eine einzige Schicht. Wenn
in diesem kd-Baum eine Mehrzahl von Pakettypen und Schichten enthalten
wären,
könnte
jeder (interne oder Ast-) Knoten in dem kd-Baum einer Mehrzahl von
Paketidentifizierern entsprechen. Das würde bedeuten, daß auf einen
gegebenen kd-Baumeintrag mehr als ein einzelner linker Paketdeskriptor
und rechter Paketdeskriptor folgen könnte. Bei diesem Beispiel sind
sowohl der kd-Baum als auch die Paket-ID ausreichend klein, so daß der gesamte
Versatz und alle Indexe in einem Byte enthalten sein können.
-
C. Kompression
-
Es wird erneut auf die 1 und 2 Bezug genommen. Bei einer derzeitigen
Ausführungsform
werden die Pakete in ihrer komprimierten Form im Speicher 20 gehalten,
nachdem sie von der Platte 22 gelesen wurden, und Einheiten
innerhalb eines Pakets werden so dekomprimiert, wie sie von den
Navigationsanwendungsfunktionen 28, 30, 32 und 34 angefordert
werden. Bei einer derzeitigen Ausführungsform werden die Pakete
in ihrer komprimierten Form in der Schnittstellenschicht 41 gehalten,
die in Verbindung mit 2 erwähnt wurde.
Dadurch ergibt sich eine reduzierte Speichernutzung. Wenn vollständig dekomprimierte
Pakete in einem Cache-Speicher gehalten würden, wäre mehr Cache-Speicher erforderlich,
und zwar insbesondere, weil dekomprimierte Paketdatensätze unterschiedliche
Länge haben.
Beispielsweise greift die Streckenberechnungsfunktion 28 jedesmal,
wenn das Paket von der Platte ausgelesen wird, häufig nur auf einen kleinen Bruchteil
der Datensätze
innerhalb eines Pakets zu. Die Anwendung dieser Vorgehensweise reduziert
somit die Verarbeitungszeit für
die Dekompression. Da komprimierte Datensätze normalerweise veränderliche
Längen
haben, kann auch dann, wenn die dekomprimierten Datensätze eine
unveränderliche
Länge haben,
die folgende Vorgehensweise angewandt werden, um einen gegebenen
Datensatz innerhalb der komprimierten Daten zu lokalisieren.
-
Ausrichtungs-Überlegungen:
-
Komprimierte Datensätze sowie
die (gepackte) Zwischenform, bei der Datensätze unmittelbar nach der Dekomprimierung
existieren, sind in Form von Zeichenarrays (d. h. binären Bytearrays
und nicht ASCII-Zeichenarrays). Daher sind Ausrichtungsüberlegungen
nicht anwendbar. Daten im Kopfbereich jedes Pakets, die zur Beschreibung
des Pakets und zum Navigieren darin dienen, enthalten Daten, die
häufig
am zweckmäßigsten
in Form von langen ganzen Zahlen, kurzen ganzen Zahlen, Strukturen
oder Vereinigungsmengen in C-Sprache
gespeichert sind. Länge
und Ausrichtung dieser Datentypen kann auf unterschiedlichen Plattformen
verschieden sein. Da die geografischen Daten 40 so ausgebildet
sind, daß sie
auf vielen verschiedenen Plattformen verwendet werden können, ist
es sinnvoll, Konventionen für
Ausrichtung und Länge
zu definieren. Diese Konventionen gelten für Daten auf dem Medium, das
die Kartendaten enthält
(z. B. der CD-ROM-Platte); logische Aufzeichnungsformat-Standards für Ausrichtungs-
und Längenregeln
für die
Hardwareplattform, auf der die Schnittstellenschicht-Software 41 ausgeführt wird.
Es ist zu beachten, daß die
oben erwähnte
(gepackte) Zwischenform in allen physischen Speicherformaten die
gleiche sein sollte, da sie für
generische unabhängige
Komponenten von Navigationsanwendungen zugänglich ist.
-
Die folgenden Konventionen werden
für Datentypen
in den Kartendaten-Paketköpfen verwendet:
-
Bytes in Kartendaten sind in Big
Endian-Form (höchstwertiges
Bit zuerst), und sowohl kurze ganze Zahlen als auch lange ganze
Zahlen in den Kartendaten sind in Big Endian-Form (höchstwertiges
Bit zuerst).
-
D. Intra-Paket-Datensatzzugriff
via Entitätsidentifizierer
-
Wenn jeder Datensatz eines bestimmten
Typs innerhalb eines Pakets einen speziellen Entitätsidentifizierer
hat, kann eine der beiden nachstehend beschriebenen Methoden zur
Lokalisierung eines solchen Datensatzes angewandt werden. Die erste
Methode wird angewandt, um Datensätze zu lokalisieren, wenn Entitätsidentifizierer
Datensätzen
eines gegebenen Typs konsekutiv innerhalb des Pakets zugeordnet
sind. Beispielsweise hat der erste Datensatz innerhalb des Pakets
den Entitätsidentifizierer
0, der zweite 1 usw. ohne Lücken.
Die zweite Methode wird angewandt, um Datensätze zu lokalisieren, in denen
Lücken
zwar vorhanden sind, wobei jedoch die Datensätze trotzdem nach Entitätsidentifizierer
geordnet gespeichert sind. Die zweite Methode wird angewandt, um
auf Segmentdatensätze
und Knotendatensätze
in Streckenberechnungspaketen über
der untersten Schicht zuzugreifen, wogegen die erste Methode angewandt
wird, um auf die meisten anderen Datensatztypen in allen Paketen
zuzugreifen.
-
Methode 1
-
Diese Methode des Zugriffs auf Datensätze kann
angewandt werden, um Datensätze
zu lokalisieren, für
die Entitätsidentifizierer
konsekutiv innerhalb des Pakets zugeordnet sind.
- (1)
Der Paketkopf enthält
die folgenden Informationen über
einen Entitätstyp
innerhalb des Pakets:
- – Versatz:
Versatz zu den Daten ab dem Beginn des Pakets
- – Zählstand:
Datensatz-Zählstand
- - Numblks: Anzahl von Blöcken
von komprimierten Datensätzen
- – Blkcnt:
Anzahl von komprimierten Datensätzen
je Block (in Exponentenform geführt,
wobei k 2K Datensätze bedeutet)
- – Für diejenigen
Entitätstypen,
deren Identifizierer innerhalb des Pakets konsekutiv sind, jedoch
nicht bei null beginnen, wird der erste Entitätsidentifizierer in dem Paket
geführt.
Dies gilt für
Knoten- und Segmentdatensätze
der untersten Schicht in den Streckenberechnungspaketen.
- (2) Versatz zeigt auf eine Tabelle von Numblks + 1 Tabelleneinträgen (von
jeweils 16 Bits), wobei der Tabelleneintrag N auf einen Block von
Blkcnt-Datensätzen weist,
deren erster der Datensatz mit der Entitäts-ID gleich (N – 1)*Blkcnt
ist.
- (3) Das erste Byte jedes Datensatzblocks ist der Beginn eines
längenveränderlichen
vorzeichenlosen Werts Typ 1, der ein Versatz zu dem ersten Datensatz
innerhalb dieses Blocks ist. Diesem Feld folgen mehr 2K Felder
vom längenveränderlichen
vorzeichenlosen Wert Typ 1, von denen jedes die Länge eines
komprimierten Datensatzes in dem Block ist. Die Verwendung dieser
Längenfelder
erlaubt die rasche Navigation durch die Datensätze innerhalb eines Blocks
wie in dem nachstehenden Beispiel:
-
Beispiel
-
Blöcke bestehen jeweils aus 32
Datensätzen,
und die Länge
jedes Datensatzes in dem Block ist ausreichend klein, um durch ein
Byte repräsentiert
zu werden. Weiter enthält
das erste Byte des Blocks ein Ein-Byte-Feld, das den Wert 33 enthält, welches
der Versatz ab dem Beginn des Blocks zu dem Beginn des ersten komprimierten
Datensatzes in dem Block ist. Das zweite Byte in dem Block enthält die Länge des
ersten komprimierten Datensatzes in dem Block. Das dritte Byte enthält die Länge des
zweiten komprimierten Datensatzes in dem Block usw. Das dreiunddreißigste Byte
in dem Block enthält
die Länge
des zweiunddreißigsten komprimierten
Datensatzes in dem Block. Um den Beginn des siebten Datensatzes
in dem Block zu finden, werden miteinander addiert: die Adresse
des Beginns des Blocks, der Versatz vom Beginn des Blocks bis zu dem
ersten komprimierten Datensatz in dem Block, und die Längen der
ersten sechs Datensätze.
Bei diesem Beispiel werden die ersten sieben Bytes des Blocks zu
der Adresse des Blocks addiert.
-
Wenn in einem Paket beispielsweise
1500 Datensätze
eines gegebenen Entitätstyps
vorhanden sind und Blkcnt 32 ist, dann wird eine Tabelle von 47
16-Bit-Versätzen erzeugt
(d. h. Numblks = 46), von denen der erste auf einen Block von komprimierten
Datensätzen
mit IDs 0 bis 31 weist, der zweite auf einen Block weist, der Datensätze mit
IDs 32–63
enthält,
usw. Um den Datensatz mit ID 100 zu finden, wird dann 100 durch
32 dividiert (oder um 100 mal 5 nach rechts verschoben). Dies resultiert
in 3, welches der (0-basierte) Index des Blocks ist, der den Datensatz
100 enthält.
Für andere
Entitätstypen
könnte
der beste Wert von Numblks durch die Datensatzgröße, den Datensatzzählwert,
den Prozentsatz des durch Komprimierung gesparten Platzes oder andere
Faktoren beeinflußt
sein und braucht nicht in jedem Paket gleich zu sein.
-
Methode 2
-
Diese Methode des Zugriffs auf Datensätze wird
angewandt, um Datensätze
zu lokalisieren, die entsprechend ihren speziellen Entitätsidentifizierern
geordnet gespeichert sind, bei denen aber die Entitätsidentifizierer
im allgemeinen nicht mit 0 beginnen und die nicht konsekutiv (ohne
Lücken)
innerhalb des Paket zugeordnet sind.
- (1) Der
Paketkopf enthält
die folgenden Informationen über
einen Entitätstyp
innerhalb des Pakets:
- – Versatz:
Versatz bzw. Offset zu den Daten vom Beginn des Pakets
- – Zählwert:
Datensatzzählwert
- (2) Versatz weist auf eine Tabelle von Zählwert + 1 Tabelleneinträgen (jeweils
von 16 Bits plus 24 Bits). Vierundzwanzig Bits jedes Eintrags ist
der Entitätsidentifizierer
eines Datensatzes, und die übrigen
16 Bits des Eintrags sind der Versatz ab dem Beginn des Pakets bis
zu dem komprimierten Datensatz, der dem Entitätsidentifizierer dieses Tabelleneintrags
entspricht. Der letzte Tabelleneintrag weist nicht auf einen Datensatz;
er zeigt auf das erste Byte, das dem letzten Datensatz folgt.
- (3) Die Länge
eines komprimierten Datensatzes ist gleich der Differenz zwischen
dem Versatz in seinem Tabelleneintrag und dem Versatz in dem nächsten konsekutiven
Tabelleneintrag, dessen Versatz-Bit höher Ordnung nicht gleich 1
ist. Ein Tabelleneintrag mit einem Versatz, dessen Bit hoher Ordnung
gleich 1 ist, ist ein spezieller Eintrag, der nicht auf einen Datensatz
weist.
-
Die dekomprimierten Datensätze sind
längenveränderlich
und in gepackter Form. Die Größe dieses gepackten
Datensatzes kann wie folgt minimiert werden: (1) Es können in
diesem Format keine Füllbytes
vorhanden sein, weil es in Form eines Byte-Arrays und nicht einer
C-Struktur ist; (2) einige Felder, die eine begrenzte Zahl von Bits
benötigen,
können
zu einem Byte zusammengefaßt
werden; (3) schließlich
können
Zeichenfolgedaten wie etwa Straßennamen
auf der Datenfeldebene komprimiert werden unter Anwendung einer herkömmlichen
textorientierten Komprimierungsmethode.
-
Das logische Format eines Datensatzes
(das Format, das von der Schnittstellenschicht 41 zurück zu Anwendungssoftwareprogrammen 28, 30, 32 und 34 geleitet
wird, wird aus dem obigen dekomprimierten, gepackten Datensatz konstruiert.
-
E. Superknoten
-
Bei der vorliegenden Ausführungsform
wird die nachfolgende Vorgehensweise mit der Streckenberechnungs-Untermenge 48 (von 3) der geografischen Daten
angewandt.
-
Die Streckenberechnungs-Untermenge
von geografischen Daten weist Feature-Entitäten für Knoten, Bedingungen und Segmente
auf. Die Knoten-Features sind in Form von Knotenentitäten. Manche
Knotenentitäten
werden verwendet, um Positionsinformation (d. h. geografische Breite
und Länge) über die
Endpunkte eines Segments zu speichern. (Es kann auch Knotenentitäten geben,
die auf andere Positionsinformation als die Endpunkte von Segmenten
bezogen sind.) Die auf jeden Knoten bezogene Positionsinformation
ist in Form einer geografischen Länge, Breite und einer relativen
Höhe gespeichert.
Diese Knotenentität
kann außerdem Attribute
enthalten, die zusätzliche
Information über
den Knoten liefern.
-
Wie oben gesagt wird, ergibt die
Paketisierungsmethode, die für
die Streckenberechnungs-Untermenge der Daten angewandt wird, eine
Maximierung der Menge an relevanter Streckenberechnungsinformation, die
auf einmal im Speicher gehalten werden kann, wodurch zeitaufwendige
Speicheroperationen während Streckenberechnungen
minimiert werden. Gemäß diesem
Aspekt der vorliegenden Ausführungsform
kann die Streckenberechnungsfunktion 28 (in 2) dadurch beschleunigt
werden, daß einzelne
kollabierte Knoten (als "Superknoten" bezeichnet) in die
Streckenberechnungsdatenmenge eingebunden sind. Jeder dieser kollabierten
Knoten oder Superknoten repräsentiert
eine Mehrzahl von nahe beabstandeten oder verwandten regulären Knoten
und Segmenten. Überall
dort, wo ein Superknoten verwendet wird, um eine Mehrzahl von regulären Knoten
zu repräsentieren,
sind die Segmente, die einem der Mehrzahl von durch den Superknoten repräsentierten
regulären
Knoten zugeordnet sind, dem Superknoten anstatt den regulären Knoten
zugeordnet. Wenn dann das Streckenberechnungs-Anwendungsprogramm
auf eines der Segmente zugreift, um eine Strecke zu berechnen, wird
anstelle der Mehrzahl von regulären
Knoten der Superknoten genutzt. Die Einbindung der Superknoten hat
die Wirkung, daß bestimmte
komplexe Kreuzungen in der Streckenberechnungs-Untermenge des geografischen
Datensatzes durch vereinfachte Kreuzungen ersetzt werden. Der Ersatz
bestimmter komplexer Kreuzungen durch vereinfachte Kreuzungen reduziert
die Zeit und die Daten, die ein Streckenberechnungs-Anwendungsprogramm
benötigt,
um durch diese Kreuzungen zu navigieren.
-
Beispielsweise zeigt 6A eine Karte, die einen Kreisverkehr 608 darstellt.
In dem Streckenberechnungsdatensatz ist der Kreisverkehr 608 aus
Segmenten 612, 614, 616 und 618 sowie
Knoten 622, 624, 628 und 632 gebildet.
Bei der vorliegenden Ausführungsform
werden die den Kreisverkehr 608 bildenden Knoten und Segmente
zu einer einzigen Superknotenentität kollabiert, die durch den
Superknoten 640 in 6B dargestellt
ist. Die Superknotendatenentität
wird während
der Kompilierung des Streckenberechnungsdatensatzes automatisch
erzeugt. Die Segmentdatensätze
für die
Segmente 611, 613, 615 und 617 zeigen,
daß sie
mit dem Superknoten 640 anstatt mit den tatsächlichen
Knoten 622, 624, 628 und 632 verbunden
sind. Die Geometrie der Segmente 611, 613, 615 und 617 scheint
zwar in der Superknotendarstellung von 6B verschieden zu sein, aber sämtliche
Attribute einschließlich
der Länge
der Segmente bleiben die gleichen, wie das bei vollständiger Darstellung
der Kreuzung der Fall wäre.
-
Der Zweck des Superknotens besteht
darin, eine vereinfachte Darstellung des Straßennetzes zu liefern, die dazu
beitragen kann, die Streckenberechnung zu beschleunigen. Wenn beispielsweise
das Streckenberechnungsprogramm 28 versucht, eine Strecke
durch den Kreisverkehr 608 von dem Knoten 626 zu 630 zu berechnen,
müßte es ohne
die Superknotendarstellung die Fahrt von Knoten 626 zu
Knoten 624, von Knoten 624 zu Knoten 628 sowie
von Knoten 628 zu Knoten 630 bearbeiten. Mit der
Superknotendarstellung braucht das Streckenberechnungsprogramm nur
die Strecke von Knoten 626 zu Knoten 640 und von
Knoten 640 zu Knoten 630 zu bearbeiten.
-
Auch wenn bei einer bevorzugten Ausführungsform
Superknoten auf einer gegebenen Ebene des Streckenberechnungsdatensatzes
verwendet werden, umfaßt
der Datensatz auf dieser Ebene auch die Mehrzahl von regulären Knoten,
die von einem Superknoten repräsentiert
sind. Dadurch ist es möglich,
daß Informationen,
die den regulären
Knoten zugeordnet sind, erforderlichenfalls auch für das Navigationsanwendungsprogramm
zur Verfügung
stehen. Um beispielsweise eine Karte einer berechneten Strecke anzuzeigen, wäre es notwendig,
die von dem Superknoten repräsentierten
regulären
Knoten zu erhalten, damit sämtliche Straßensegmente
gezeigt werden können.
Dies kann dadurch bestimmt werden, daß jeder der Superknoten einen
Rückverweis
zu seinen ihn bildenden Knoten liefert.
-
Im Fall von einfachen Kreuzungen
aus zwei oder wenigen Segmenten oder Sackgassen werden Superknoten
nicht benutzt; statt dessen umfaßt der Streckenberechnungsdatensatz
reguläre
Knoten, weil es wenig vorteilhaft wäre, Superknoten zur Darstellung
dieser relativ einfachen Knotenarten zu verwenden.
-
Da eine exakte Lage nicht notwendig
ist, erhält
ein Superknoten eine geografische Lage ungefähr in der Mitte der Gruppe
von Knoten, die er repräsentiert.
Ein Superknoten und die Knoten, die er repräsentiert, werden bei der Paketbildung
als eine Einheit behandelt, so daß reguläre Knoten, die von einem Superknoten repräsentiert
werden, gemeinsam in demselben Paket plaziert werden.
-
Es ist außerdem zu beachten, daß dann,
wenn die Daten in Schichten organisiert sind, was etwa in der Streckenberechnungs-Untermenge
von Daten oder der kartografischen Untermenge von Daten der Fall ist,
alle regulären
Knoten der unteren Schicht, die einen Superknoten bilden, in Schichten über der
unteren Schicht weggelassen sind (d. h. Superknoten sind mindestens
in der Schicht über
der unteren Schicht vorgesehen, jedoch nicht die ihnen untergeordneten
regulären
Knoten). Ferner können
Superknoten in jeder Schicht definiert sein.
-
Ein Funktionsaufruf in dem Streckenberechnungsprogramm
der Navigationsanwendung kann dazu genutzt werden, einen Superknoten
in die von ihm repräsentierten
regulären
Knoten und Segmente zurück
zu übertragen.
Ein anderer Funktionsaufruf kann genutzt werden, um eine geordnete
Liste der Segmente innerhalb des Superknotens aufzurufen, die abgefahren
werden müssen,
um von einem mit dem Superknoten verbundenen Segment zu einem anderen
zu gelangen. Bei einer vorliegenden Ausführungsform können die
obigen Funktionsaufrufe in der Schnittstellenschicht 41 von 2 anstatt in der Streckenberechnungsfunktion 28 der
Navigationsanwendung enthalten sein.
-
Ein Funktionsaufruf kann verwendet
werden, um die relativen Durchlaufkosten (oder den "Scheinwiderstand") des Superknotens
zu erhalten. Die relativen Kosten eines Superknotens (oder eines
regulären
Knotens) sind ein Hinweis darauf, wie viel Zeit erforderlich ist,
um den Knoten zu durchlaufen. Die relativen Durchlaufkosten eines
Superknotens können
als ein Attribut der Superknotenentität eingebunden sein, oder bevorzugt
können
die Durchlaufkosten eines Superknotens auf der Länge und/oder Durchlaufgeschwindigkeit
der Segmente innerhalb des Superknotens basieren, die durchlaufen
werden müssen,
um von einem mit dem Superknoten verbundenen Segment zu einem anderen
der Segmente zu gelangen. Bei dem Beispiel der 6A und 6B basieren
die relativen Durchlaufkosten, um von Segment 611 zu Segment 615 zu
gelangen, auf der Länge
der Segmente 612 und 614 sowie den beiden erforderlichen
Rechtsabbiegevorgängen,
um von Segment 611 zu Segment 615 zu gelangen.
Bei einer derzeitigen Ausführungsform
kann der vorstehende Funktionsaufruf in der Schnittstellenschicht 41 von 2 oder in der Streckenberechnungsfunktion 28 der
Navigationsanwendung enthalten sein.
-
Superknoten können verwendet werden, um irgendeine
Kreuzung darzustellen, und sind besonders nützlich, wenn komplexe Kreuzungen
dargestellt werden, die mehr als zwei Straßen aufweisen. Beispielsweise kann
eine Superknotendarstellung 642 für geteilte Fernstraßen 644 (wie
die 6C und 6D zeigen) verwendet werden,
und eine Superknotendarstellung 648 kann für Kleeblattkreuzungen 650 (6E und 6F) verwendet werden.
-
Bei einer derzeitigen Ausführungsform
erfolgt die Festlegung, wann ein Superknoten als Darstellung von
mehreren regulären
Knoten eingebunden wird, zum Kompilierungszeitpunkt, wie nachstehend
erörtert wird.
Bei einer Ausführungsform
werden Superknoten automatisch im Kompilierer auf der Basis einer
vorbestimmten Menge von Regeln erzeugt. Beispielsweise wird ein
in Frage kommender Superknoten erstellt und geprüft, um festzustellen, ob er
dem vorbestimmten Satz von Bedingungen entspricht. Um beispielsweise
Superknoten für
geteilte Fernstraßen
zu bilden, werden die Streckenführungsdaten
geprüft, um
alle Ereignisse zu finden, bei denen vielfach digitalisierte Straßen einander
kreuzen. (Vielfach digitalisierte Straßen sind Straßen, bei
denen separate Segmente verwendet werden, um den Verkehr in jeder
Richtung darzustellen.) Die Kreuzungen dieser vielfach digitalisierten
Straßen
werden geprüft,
um festzustellen, ob es genau vier interne Knoten an der Kreuzung
gibt, ob es genau vier Segmente innerhalb der Kreuzung gibt und
ob jedes der internen Segmente an zwei – und nur zwei – andere
interne Segmente mittels internen Knoten angeschlossen ist. Wenn
alle diese Bedingungen erfüllt
sind, wird eine Superknotenentität
gebildet und in der Schicht der Streckenführungsdaten gespeichert.
-
Ebenso können Superknoten automatisch
für Kreisverkehre
erzeugt werden. Die Regeln zur Bildung eines Kreisverkehrs umfassen
keine Beschränkung
dahingehend, wie viele interne Knoten und Segmente innerhalb des
Kreisverkehrs vorhanden sind. Ebenso wie im Fall der vielfach digitalisierten
Straßen
wird ein in Frage kommender Superknoten aus einer Gruppe von Knoten
und Segmenten gebildet. Die Knoten und Segmente, die zur Bildung
des in Frage kommenden Superknotens verwendet werden, umfassen solche,
die Displaycharakteristik haben, um anzuzeigen, daß sie ein
Teil eines Kreisverkehrs sind. (Die GDF-Daten können diese Art von Information
mit Segmenten und Knoten aufweisen.) Nachdem der in Frage kommende
Superknoten gebildet ist, wird der Superknoten erzeugt unter Verwendung
der Segmente und Knoten, die als einem Kreisverkehr zugeordnet erkannt
sind.
-
F. Normalisierte Attribute
-
Eine Möglichkeit zur Beschleunigung
der Operation von einigen der Navigationsanwendungen, die die auf
dem Speichermedium gespeicherten geografischen Daten nutzen, besteht
in der Verringerung der Datenmenge, die auf dem Speichermedium gespeichert
ist, um dadurch den schnelleren Zugriff auf die Informationen zu
ermöglichen.
Eine andere Möglichkeit
zur Beschleunigung der Operation von einigen der Navigationsanwendungen
besteht darin, häufig
verwendete Daten in einem Speicher zu speichern. Beide Möglichkeiten der
Beschleunigung von Anwendungen können
angewandt werden, indem bestimmte der geografischen Daten auf dem
Speichermedium mit normalisierten Attributanordnungen (nachstehend
erläutert)
gespeichert werden und einige oder alle normalisierten Attributanordnungen
in einen Speicher eingelesen werden.
-
Beispielsweise enthalten die Segmentdaten-Entitäten in dem
geografischen Datensatz Information, die jedes Segment aller Straßen in einer
geografischen Region identifiziert. Jede dieser Segmentdaten-Entitäten enthält Attributinformation über die
Charakteristiken des Segments. Beispielsweise hat in dem geografischen
Datensatz jede Segmententität
ein Segment-ID-Feld sowie Attribute, die den Ort des Segments, den Rang
des Segments, den Routentyp, die Fahrbahnkategorie (d. h. die Zahl
von Fahrbahnen), die Geschwindigkeitskategorie, Geschwindigkeitsbegrenzung,
Zugangscharakteristiken usw. identifizieren.
-
Bei der derzeitigen Ausführungsform
enthält
der Segmentdatensatz für
bestimmte der Attribute einen einzelnen Indexverweis auf eine Datensatztabelle,
anstatt separate Einträge
für jedes
dieser Attributfelder in dem Datensatz für jedes Segment zu enthalten.
Auf diese Datensatztabelle wird als globale normalisierte Attributanordnung
verwiesen. Das ermöglicht
es, daß der
Segmentdatensatz einen einzigen Index trägt anstatt sämtliche
zugehörigen
Attributwerte. Die Verwendung dieser normalisierten Attributanordnung
basiet auf der Erkenntnis, daß Attributwerte
für eine
bestimmte Gruppe von Attributen nicht vollständig unabhängig voneinander sind. Wenn
beispielsweise das Routentypattribut eines Segments zeigen würde, daß das Segment
eine innerstädtische
Schnellstraße
ist, dann würde
das Geschwindigkeitskategorieattribut für das Segment normalerweise
das Segment als Hochgeschwindigkeitskategorie bezeichnen. Es ist
festgelegt worden, daß die
Anzahl von tatsächlichen
verschiedenen Kombinationen bestimmter Gruppen dieser Attribute,
die sich in der geografischen Datenmenge finden, hinreichend klein
ist, so daß Plattenspeicherplatz
gespart wird, indem diese Kombinationen in einer Tabelle (als "normalisierte Attributanordnung" bezeichnet) gespeichert
und ein Index in diese Tabelle in dem Segmententitäts-Datensatz
anstelle der eigentlichen separaten einzelnen Attributeinträge gespeichert
wird.
-
Bei einer bevorzugten Ausführungsform
umfaßt
die normalisierte Attributanordnung die häufigsten Kombinationen von
Attributen für
eine bestimmte Entität
in einem bestimmten Datensatz. Bei einer derzeitigen Ausführungsform
umfaßt
die globale normalisierte Anordnung die 256 häufigsten Attributkombinationen.
Diese Kombinationen von Attributen können in verschiedenen geografischen
Regionen unterschiedlich sein.
-
7A zeigt
eine Darstellung der geografischen Daten 40, die auf dem
Speichermedium gespeichert sind, einschließlich der verschiedenen Typen
oder Untermengen von Daten, die in 3 dargestellt
sind. Diese Arten oder Untermengen von Daten umfassen die Streckenberechnungsdaten 48,
die kartografischen Daten 50, die Fahrdaten 52 und
die POI-Daten 54. Jede dieser verschiedenen Untermengen
der geografischen Daten 40 ist in Paketen organisiert,
und jede dieser Untermengen enthält
Datensätze,
die vordefinierte Strukturen haben.
-
Bei der gezeigten Ausführungsform
umfassen die Streckenberechnungsdaten 48 eine Segmentstruktur 812,
und die kartografischen Daten 806 umfassen eine Polylinienstruktur 814.
Diese Datenstrukturen sind teilweise von normalisierten Anordnungen
von Attributen abgeleitet. Dabei ist die Streckendatensegmentstruktur 812 teilweise
von der normalisierten Attributanordnung 816 für die Streckenberechnung
abgeleitet. Ebenso ist die Polylinienstruktur 814 für die kartografischen
Daten teilweise von der kartografischen normalisierten Attributanordnung 818 abgeleitet.
Die Segmentstruktur 812 enthält Datenattributfelder u. a.
für die
nachfolgenden Datentypen: Geschwindigkeitskategorie, Fahrbahnkategorie,
Rang usw. Somit ist es möglich,
diese separaten Datenfelder – und
die in ihnen enthaltenen Daten – fon
jedem der Streckendatensegment-Datensätze zu entnehmen und sie in
der normalisierten Anordnung 816 zu plazieren. Eine ähnliche
Beziehung findet man in der Polylinienstruktur der kartografischen
Daten. In jeder Struktur ersetzt ein Index die Kombination von Attributen,
die entnommen werden. Der Index weist auf einen Eintrag in der normalisierten
Attributanordnung, die die spezielle Kombination von Attributen
enthält,
die ersetzt worden ist.
-
In einer geografischen Datenmenge,
bei der bestimmte der Attribute durch Indexe auf eine globale normalisierte
Attributanordnung ersetzt sind, ist es möglich, daß einige der Datensätze nicht
zu der Anordnung indexiert werden können. Diese Datensätze umfassen
diejenigen, in denen die Kombination von Attributen ungewöhnlich ist
und die daher nicht durch die üblichsten
(z. B. die 256 üblichsten)
Ereignisse der speziellen Kombinationen von Attributen dargestellt
werden, die in der globalen normalisierten Attributanordnung enthalten
sind. Da die Attribute für
diese Datensätze
nicht in der globalen normalisierten Anordnung enthalten sind, enthalten
diese Datensätze
keinen Index auf die globale normalisierte Attributanordnung. Für Datensätze, die weniger übliche Attributkombinationen
haben, wird eine separate Anordnung eingebunden. Diese separate Anordnung
ist als eine lokale normalisierte Attributanordnung enthalten. Die
lokale normalisierte Attributanordnung ist innerhalb des Pakets
enthalten, in dem sich der ungewöhnliche
Datensatz befindet. Die lokale Anordnung kann wie die globale Anordnung
organisiert sein. Wenn eine Vielzahl von Datensätzen in dem Paket die gleiche
ungewöhnliche
Kombination von Attributen haben, die sich in der globalen normalisierten
Attributanordnung nicht finden, weist der Index in jedem der Datensätze, die
diese spezielle ungewöhnliche
Kombination von Attributen haben, auf die gleiche Kombination von
Attributen in der lokalen Anordnung hin. Bei einer derzeitigen Ausführungsform
enthalten sämtliche
Datensätze
in dem Paket einen Index entweder zu der globalen normalisierten
Attributanordnung oder zu der lokalen normalisierten Attributanordnung.
Dieses Feature erkennt, daß manche
ungewöhnlichen
Kombinationen von Attributen sehr lokal bedingt sind und es daher
nicht effizient ist, diese ungewöhnlichen
Kombinationen in einen Speicher zu laden, es sei denn, sie werden
von der Navigationsanwendung benötigt,
wenn das sie enthaltende spezielle Paket genutzt wird.
-
Beispielsweise ist in 7B zu sehen, daß die Streckenberechnungsfunktion 28 Zugriff
auf eines der Pakete 820 der Streckenberechnungsdaten 48 genommen
hat. Die Segmententitäten
sind aus den Segmentdatensatzdaten in den Streckenberechnungsdaten,
die im Paket 820 gespeichert sind, aufgebaut unter Nutzung
eines Index in jedem der Segmenteinträge entweder zu einem Eintrag
in der globalen normalisierten Attributanordnung 816 oder
einer lokalen normalisierten Attributanordnung 822. Bei
einer bevorzugten Ausführungsform
wird die Substitution der normalisierten Attributanordnungsdaten
entweder von der globalen Anordnung 816 oder der lokalen 822 in
die entsprechen Datenfelder der jeweiligen Datensätze durch
die Schnittstellenschicht 41, die oben erwähnt wurde,
vorgenommen. Um die Verarbeitung zu beschleunigen, kann die globale
normalisierte Attributanordnung 816 im Speicher gehalten
werden. Diese globale normalisierte Attributanordnung kann dann
(vollständig
oder teilweise) aus dem Speichermedium in dem Speicher gelesen und
während
der Operation der Navigationsanwendung im Speicher gehalten werden.
-
G. Segmentzusammensetzung
-
1. Übersicht
-
Wie oben erwähnt wird, umfaßt ein navigationsfähiges Segment
ein Rangattribut, das die höchste Streckenführungsdatenschicht
bezeichnet, in dem das Segment erscheint. Die niedrigste Schicht
der Streckenberechnungsdaten 48 umfaßt alle navigationsfähigen Segmente
(d. h. Segmente aller Ränge).
In jeder folgenden höheren
Schicht fallen die Segmente der den niedrigsten Rang aufweisenden
verbleibenden Klasse von Segmente heraus. Dies resultiert im allgemeinen
in der Erzeugung einer Reihe von zweiwertigen Knoten, d. h. Kreuzungsknoten
zwischen genau zwei Segmenten. Wenn alle Attribute für diese
zwei Segmente, die für die
Navigation relevant sind, gleich sind, dann ist es möglich sowie
vorteilhaft, den zweiwertigen Knoten entfallen zu lassen. Dadurch
wird die Größe der Daten
verringert, die Zahl der Segmente, die während der Streckenberechnung
untersucht werden müssen,
wird verringert, und die Zahl der Segmente, die die letztlich berechnete
Strecke bilden, wird verringert. Auf diese Weise gebildete Segmente
werden als zusammengesetzte Segmente bezeichnete. Bei einer bevorzugten
Ausführungsform
sind zusammengesetzte Segmente in Schichten über der untersten Schicht enthalten.
-
Nachstehend wird das Zusammensetzen
von Segmenten in höheren
Schichten beschrieben. Dabei wird zuerst die physische Darstellung
des zusammengesetzten Segments beschrienen. Zweitens werden die Kriterien
für das
Zusammensetzen von Segmenten angegeben. Drittens wird der Prozeß der Bildung
von zusammengesetzten Segmenten beschrieben.
-
2. Physische
Speicherung von zusammengesetzten Segmenten
-
Wenn ein Zusammensetzen stattfindet,
werden interne Segmentdatensätze
und interne Knotendatensätze
des zusammengesetzten Segments in der gegebenen Schicht in abgekürzter Form
behalten. Jedes abgekürzte
Segment enthält
den Segmentidentifizierer, Segmentlänge, Segmentdurchlaufzeit und
die Segmentpeilung. Jeder abgekürzte
Knoten enthält
den Knotenidentifizierer und die Position. Diese abgekürzten Datensätze sind
durch den zusammengesetzten Segmentdatensatz zugänglich, der die den abgekürzten Segmenten
gemeinsamen Attribute enthält.
Der zusammengesetzte Segmentdatensatz enthält sowohl einen linken Segmentidentifizierer
als auch einen rechten Segmentidentifizierer, weil dieses Segment
während
der Verarbeitung der Streckenberechnung von jedem Ende her eingeführt werden
könnte.
-
8A ist
eine Darstellung einer Vielzahl von Segmenten in der Schicht 0.
Ein Knoten ist den beiden Endpunkten jedes der Segmente zugeordnet.
In der Schicht 0 sind sämtliche
Segmente sämtlicher
Ränge dargestellt. 8B zeigt die gleiche Vielzahl
von Segmenten und Knoten, die in 8A gezeigt
sind, wobei jedoch die Segmente, die den niedrigsten Rang in der
Schicht haben, in Strichlinien dargestellt sind. In 8C sind die Segmente mit dem niedrigsten
Rang entfernt. (Die 8B und 8C zeigen Zwischenstufen
und sind nicht repräsentativ
für eine
Schicht.) 8D zeigt
die Segmente und Knoten in Schicht 1. In 8D sind die Segmente S4, S5, S6, S9
und S11 zu einem zusammengefaßten
Segment AG12 zusammengefaßt
worden. Es ist zu beachten, daß das
zusammengefaßte
Segment AG12 Knoten N109 und N104 aufweist, die den Endpunkten des
zusammengefaßten
Segments entsprechen. Außerdem
umfaßt
das zusammengefaßte
Segment auch die Knoten N106, N107, N108 und N113, die interne Knoten
des zusammengefaßten
Segments AG12 sind. Diese internen Knoten bieten einen Vorteil bei
der Streckensuche, indem sie einem Streckenberechnungsprogramm ermöglichen,
sich von einer Schicht zu einer anderen Schicht an jedem Knoten
zu bewegen, selbst wenn diese Knoten interne Knoten der Endpunkte
eines zusammengefaßten
Segments sind. Das bedeutet, daß das
Streckenberechnungsprogramm rascher auf höhere Schichten zugreifen kann,
was potentiell schnellere Streckenberechnungen ermöglicht.
-
8E ist
eine Darstellung der Beziehung zwischen dem zusammengefaßten Segmentdatensatz
von 8D und den anderen
Datenentitäten
in der Schicht 1.
-
3. Kriterien für die Zusammenfassung
-
Bei einer derzeitigen Ausführungsform
ist die Zusammenfassung jeder Anzahl von aufeinanderfolgenden Segmenten
zulässig,
wenn jedes konsekutive Paar von benachbarten Segmenten den folgenden
Kriterien genügt:
- 1. Innerhalb der betrachteten Schicht treffen
exakt zwei Segmente an dem Schnittpunkt (Knoten) zusammen.
- 2. Die beiden Segmente sind nicht Teil irgendeiner der folgenden
Bedingungen:
- (i) ein begrenztes Fahrmanöver,
das sich über
den kreuzenden Knoten erstreckt;
- (ii) eine Fahrzeugeinschränkung;
- (iii) eine Einschränkung
der Fahrtrichtung;
- (iv) ein Tor;
- (v) eine Einschränkung
für Fahrzeuge
mit hoher Fahrgastzahl;
- (vi) eine verzweigte Straße;
- (vii) eine Mautstation; oder
- (viii) Verkehrszeichen.
- 3. Die beiden Segmente haben genau den gleichen Satz von navigationsfähigen Feature-Bezeichnungen (ausgenommen
kartografische Featurebezeichnungen).
- 4. Die folgenden Attribute sind für beide Segmente gleich:
- (i) Rang,
- (ii) Geschwindigkeitskategorie,
- (iii) Fahrbahnkategorie
- (v) Zugangscharakteristiken, und
die folgenden Segmentattribute:
- (a) Segment unterteilt,
- (b) Fahrtrichtung – links,
- (c) Fahrtrichtung – rechts,
privat,
Rampe,
Mautstraße,
gesteuerter
Zugang,
Eisenbahnfähre,
Schiffsfähre.
-
Es ist zu beachten, daß die restlichen
Attribute zwischen zwei zusammengefaßten benachbarten Segmenten
verschieden sein dürfen.
Allgemein gesagt, werden diese Attribute im Verlauf der Erzeugung
eines einzelnen Satzes von zusammengefaßten Attributen für das zusammengefaßte Segment
entweder kombiniert oder fallengelassen. Die oben angeführten Kriterien
sind nur beispielhaft. Sie werden zwar derzeit bevorzugt, aber es
können
andere Kriterien oder Untergruppen der obigen Kriterien verwendet
werden.
-
4. Prozeß zur Bildung
von zusammengefaßten
Segmenten
-
Der erste Schritt bei der Bildung
zusammengefaßter
Segmente besteht darin, mögliche
Endknoten für zusammengefaßte Segmente
zu identifizieren. Diese sind als für ein zusammengefaßtes Segment
signifikante Knoten bekannt. Jeder Knoten in der geografischen Datenbank
in jeder der Schichten wird bewertet, um festzustellen, ob er "für ein zusammengefaßtes Segment
signifikant" ist.
Die Knoten werden einzeln nacheinander bewertet, beginnend bei der
höchsten
Schicht und weiter nach unten gehend. Ein Knoten ist in einer gegebenen
Schicht "für ein zusammengefaßtes Segment
signifikant", wenn
nur ein Segment oder mehr als zwei Segmente damit verbunden sind.
Wenn jedoch genau zwei Segmente mit einem Knoten verbunden sind,
ist der Knoten nicht "für ein zusammengefaßtes Segment
signifikant". Wenn
bestimmt wird, daß ein
Knoten in einer gegebenen Schicht "für
ein zusammengefaßtes
Segment signifikant" ist,
ist er in allen niedrigeren Schichten "für
ein zusammengefaßtes
Segment signifikant".
Jedes Segment in einer Schicht hat an einem Ende einen "für ein zusammengefaßtes Segment
signifikanten" Knoten,
und ein nichtsignifikanter Knoten am anderen Ende ist ein potentielles
Startende für
ein zusammengefaßtes
Segment.
-
In 8C sind
die Knoten N102 und N12 "für ein zusammengefaßtes Segment
signifikant", da
sie mit mehr als zwei Segmenten verbunden sind. Die Knoten N106,
N107, N108, N109 und N113 sind nichtsignifikant, weil sie mit zwei
und nur zwei Segmenten verbunden sind. Segment S1 ist als ein potentieller
Startpunkt für
ein zusammengefaßtes
Segment identifiziert, weil es einen Knoten N112 hat, der "für ein zusammengefaßtes Segment
signifikant" ist,
und den anderen Knoten N109 hat, der nichtsignifikant ist. Der nichtsignifikante Knoten
N109 ist als ein potentieller Startpunkt zur Bildung eines zusammengefaßten Segmente
gewählt.
Das andere mit dem Knoten N109 verbundene Segment S4 in 8C wird bewertet, indem
(1) bestimmt wird, ob sein anderer Knoten N108 "für
ein zusammengefaßtes
Segment signifikant" ist,
und (2) geprüft
wird, ob die übrigen
Zusammenfassungskriterien (die oben beschrieben sind) erfüllt sind.
Wenn er nichtsignifikant ist, wird das andere mit N108 verbundene
Segment (d. h. S5) auf die gleiche Weise bewertet, usw. Dieser Prozeß wird fortgesetzt,
bis ein "für ein zusammengefaßtes Segment
signifikanter" Knoten
erreicht wird oder bis ein nichtsignifikanter Knoten erreicht wird,
der mit zwei Segmenten verbunden ist, die unterschiedliche Bedingungen haben,
die sie von einer Zusammenfassung ausschließen. Diese Bedingungen sind
oben beschrieben. Wenn ein nichtsignifikanter Knoten zwei Segmente
verbindet, die unterschiedliche Bedingungen haben, die sie von einer
Zusammenfassung ausschließen,
wird der Knoten als ein "für ein zusammengefaßtes Segment
signifikant" für diesen
Rang und darunter benannt.
-
Nachdem eine Folge von Segmenten
(zwischen zwei "für ein zusammengefaßtes Segment
signifikanten" Knoten)
identifiziert sind, die über
nichtsignifikante Knoten miteinander verbunden sind, wird ein zusammengefaßter Segmentdatensatz
erzeugt, um diese Segmente darzustellen. Der zusammengefaßte Segmentdatensatz
wird mit einer Segment-ID versehen, die ihn als ein zusammengefaßtes Segment
identifiziert. Die Endknoten des zusammengefaßten Segments sind die "für ein zusammengefaßtes Segment
signifikanten" Knoten.
Der zusammengefaßte
Segmentdatensatz weist Zeiger zu den abgekürzten Knoten- und Segmentdatensätzen für den (die)
Knoten und Segmente auf, die durch das zusammengefaßte Segment
dargestellt sind. Diese abgekürzten
Datensätze
werden in jeder Schicht des zusammengefaßten Segments gehalten.
-
Der zusammengefaßte Segmentdatensatz enthält ferner
zusätzliche
Information über
das zusammengefaßte
Segment einschließlich
Länge,
durchschnittliche Geschwindigkeit und Durchlaufzeit in der "legalen Richtung" des zusammengefaßten Segments
(was alle Durchlaufkosten oder Scheinwiderstände für den Durchlauf durch das zusammengefaßte Segment
einschließlich
der Knotenkosten umfaßt). "Legale Richtung" bedeutet, daß für jedes
gegebene zusammengefaßte
Segment der Durchlauf in nur einer Richtung legal sein kann. Die
legale Durchlaufrichtung wird zuerst in einer Richtung, beispielsweise
von links nach rechts, bewertet. Wenn sie akzeptabel ist, wird die
Durchlaufzeit berechnet und als gleich für die entgegengesetzte Durchlaufrichtung
angenommen, wenn der Durchlauf in dieser Richtung ebenfalls legal
ist. Das gilt nicht notwendigerweise, wenn keine Bedingungen für die Zusammenfassung auferlegt
würden.
Wenn die Richtung von links nach rechts eine nichtakzeptable Durchlaufrichtung
ist, wird die Durchlaufzeit von rechts nach links bestimmt.
-
Es ist zu beachten, daß das vorstehende
Verfahren ein zusammengefaßtes
Segment ergibt, das "für ein zusammengefaßtes Segment
signifikante" Knoten
an seinen Enden und mindestens einen nichtsignifikanten Knoten zwischen
den Enden hat. Jedoch liegen nicht alle "für
ein zusammengefaßtes
Segment signifikanten" Knoten
innerhalb einer Schicht notwendigerweise an Endpunkten eines zusammengefaßten Segments.
-
Die obige Vorgehensweise kann angewandt
werden, um Segmente zusammenzufassen, die zwischen Knoten verlaufen,
die "für ein zusammengefaßtes Segment
signifikant" sind,
oder die alternativ nur zwischen den nichtsignifikanten Knoten der
am weitesten links und am weitesten rechts befindlichen Segmente
zwischen den "für ein zusammengefaßtes Segment
signifikanten" Knoten
liegen (wie 8C zeigt).
Der Vorteil im erstgenannten Fall ist, daß ein Streckensuchprogramm
weniger Schritte ausführen
muß, um
eine Strecke zu bestimmen (ein Schritt anstatt drei Schritte zum
Durchlaufen von Segmenten zwischen Knoten, die "für
ein zusammengefaßtes
Segment signifikant" sind).
Der Vorteil im letztgenannten Fall ist, daß unter der Annahme, daß die Bedingungen
für die
Qualifizierung von Segmenten für
die Zusammenfassung nicht anderweitig Segmente disqualifizieren,
die bestimmte Einschränkungen
(wie etwa kein Linksabbiegen) haben, das Streckensuchprogramm rascher
(d. h. mit weniger Schritten) bestimmen kann, ob das zusammengefaßte Segment
einen Teil der berechneten Strecke bilden kann. In jedem Fall bietet
die Verwendung von zusammengefaßten Segmenten,
wie sie hier beschrieben ist, den erheblichen Vorteil, daß ein Streckensuchprogramm
Schichten an jedem Knoten überspringen
kann, und zwar auch an einem, der einen Teil eines zusammengefaßten Segments
bildet.
-
Ein weiterer deutlicher Vorteil,
der sich durch die zusammengefaßten
Segmente einstellt, ist, daß die Verwendung
von Bedingungen für
die Feststellung, ob Segmente zusammengefaßt werden sollte, die Möglichkeit
reduziert, daß zusammengefaßte Segmente
erzeugt werden, die auf legale Weise nicht passiert werden können.
-
V. KOMPILIERUNGSPROZESS
ZUR BILDUNG EINER PHYSISCHEN SPEICHERFORMATDATEI
-
A Kompilierer – Übersicht
-
Vorstehend werden verschiedene Aspekte
der Bereitstellung einer geografischen Datenbank auf einem physischen
Medium zum leichteren Gebrauch und Zugriff auf die geografische
Datenbank mit einem Navigationsanwendungsprogramm in einem Navigationssystem
beschrieben. Wie oben gesagt wird, sind die geografischen Daten
vor ihrer Organisation in einem Format, das zur Speicherung auf
dem Speichermedium für den
Gebrauch und Zugriff in einem Anwender-Navigationssystem geeignet
ist, wahrscheinlich in einem anderen, unterschiedlichen Format vorgesehen
und organisiert. Beispielsweise können die geografischen Daten
ursprünglich
in einem Datenaustauschformat wie etwa dem GDF-Format oder einem
anderen Format organisiert sein. Ein Datenaustauschformat kann den
Austausch der Daten erleichtern oder das Sammeln und Aktualisieren
der Daten ermöglichen.
Zum Speichern der geografischen Daten auf einem Speichermedium auf
eine Weise, die den Gebrauch der Daten vereinfacht, werden die Daten
ausgehend von diesem ursprünglichen
oder Datenaustauschformat umgewandelt. Dieser Umwandlungsvorgang
kann durch einen geografischen Datensatzkompilierer ausgeführt werden,
wie hier beschrieben wird. Bei einer derzeitigen Ausführungsform
ist der Kompilierer in der C-Programmiersprache geschrieben, wobei
jedoch bei alternativen Ausführungsformen
jede geeignete Programmiersprache verwendet werden kann.
-
9A zeigt
ein Ablaufdiagramm eines geografischen Datensatzkompilierers 900.
Der Kompilierer 900 akzeptiert mehrere verschiedene Datenarten 901.
Beispielsweise können
die Daten 901 die Kartenreichweitedaten 902, übliche Zusatzdaten 903 und
zugehörige
Dritt-Daten (TPD) 904 aufweisen. Die Kartenreichweitedaten 902 können in
dem GDF-Datenaustauschformat, das oben erwähnt wird, vorhanden sein, und
die anderen Datenarten können
in irgendeinem geeigneten Format vorhanden sein. Dritt-Daten können ebenfalls im
GDF-Format vorhanden sein. Die Zusatzdaten können erläuternde Daten, Sprachdaten
oder Piktogrammdaten sein. Bei einer derzeitigen Ausführungsform
akzeptiert der Kompilierer 900 die Kartenreichweitedaten 902 in
der Spezifikation für
GDF 3.0, aber bei alternativen Ausführungsformen kann er eventuell
auch andere Datenbankformate akzeptieren.
-
Der geografische Datensatzkompilierer 900 erzeugt
eine Ausgabe 905, die einen geografischen Datensatz aufweist
und die in einem komprimierten optimierten Format ist, das zur Speicherung
auf Speichermedien wie etwa dem Speichermedium 22 in 1 geeignet ist, um in Navigationssystemen
verwendet zu werden. Wenn die Ausgabe 905 auf dem Speichermedium 22 gespeichert
ist, weist sie die Datenbank 40 von 2 auf. Bei der Vorbereitung der organisierten
Ausgabe 905 berücksichtigt
der Kompilierer 900 des geografischen Datensatzes das Layout
der Datenbank 40 so, wie es im System des Endanwenders
verwendet wird, etwa bei einem in ein Fahrzeug eingebauten System,
einschließlich
der Charakteristiken des spezifischen bordeigenen Speichermediums
im Fahrzeug. Die Änderungen
der Charakteristiken der Medien können jeweils verschiedene Layoutstrukturen
oder Formate erforderlich machen. Die Ausgabe 905, die
die Datenbank aufweist und von dem Kompilierer 900 des
geografischen Datensatzes erzeugt wird, entspricht dem jeweiligen physischen
Speicherformat für
ein gegebenes Speichermedium. Das wird dadurch erreicht, daß medienabhängige Aspekte
von der Kernfunktionalität
des Kompilierers 900 des geografischen Datensatzes getrennt werden.
-
Bei einer derzeitigen Ausführungsform
läuft der
Kompilierer 900 für
den geografischen Datensatz auf einem IBM Modell RS6000 Computer
mit 128 MB RAM und 1 GB Seitenspeicher. Der RS6000 arbeitet mit
AIX 4.1 OS, und die Entwicklungsumgebung ist C Set++ Version 3.1
von IBM. ANSI C– und
C++ Kompilierer enthalten xlc bzw. xlC, und das Testhilfeprogramm
ist xldb. Andere Computer, Betriebssysteme und Entwicklungswerkzeuge
während
ebenfalls geeignet.
-
Der Kompilierer 900 für den geografischen
Datensatz umfaßt
eine Sequenz von Prozessen, die fortlaufend die Daten 901 aus
dem GDF-Format (das primär
ein ASCII Datenaustauschformat ist) in ein optimiertes und komprimiertes
binäres
Format in der Datenbank 905 umwandeln. Um diese Umwandlung
zu erzielen, bietet der Kompilierer 900 für den geografischen
Datensatz ein Rahmenwerk von Routinen für diesen Prozeß.
-
Der Kompilierer 900 für den geografischen
Datensatz umfaßt
allgemein drei Schichten: eine Datenumwandlungsschicht 910,
eine Serviceschicht 912 und eine Trennschicht 914 für das physische
Format. Diese Schichten ermöglichen
gemeinsam die Kompilierung der Eingangsdaten 901 zu der
Ausgabe 905 in dem medienspezifischen Format, das zum Schreiben
auf das gewünschte
physische Medium geeignet ist.
-
B. Serviceschicht des
Kompilierers
-
Die Kompiliererserviceschicht 912 enthält eine
Bibliothek von Routinen, die für
Prozesse innerhalb des geografischen Datensatzkompilierers 900 verfügbar sind
und angewandt werden. Die Bibliothek von Routinen enthält Mengen
von Grundelementen für
gemeinsam genutzte Funktionen innerhalb des Datensatzkompilierers
einschließlich
spezialisierter Funktionen, die speziell für die Handhabung der geografischen
Daten entwickelt wurden. Beispielsweise umfaßt die Serviceschicht Funktionen
zur Handhabung von E/A-, Datei- und Tabellenmanagement, Fehlerhandhabung,
Speichermanagement und Pufferung, Testen und Datenmanipulation. Die
Serviceschicht 912 kann auch Routinen für andere Funktionen aufweisen.
-
Bei einer bevorzugten Ausführungsform
implementiert die Serviceschicht 912 ein gemeinsames Speichermodell,
um die Verarbeitung und Umwandlung der Daten zu verbessern. Herkömmliche
gemeinsame Speichertechniken sehen die gemeinsame Speichernutzung
zwischen gleichzeitig ablaufenden Prozessen vor. Die Serviceschicht 912 implementiert
gemeinsame Speicher über
nichtgleichzeitige Prozesse. Das bietet Vorteile bei den verschiedenen
Datenumwandlungsprozessen, etwa der Entwicklung des globalen kd-Baums (der
oben unter Bezugnahme auf die Datenpaketbildung erläutert wurde).
Der Prozeß zur
Entwicklung des globalen kd-Baums verwendet einige der gleichen
Daten, die in anderen Umwandlungsprozessen verwendet werden, läuft nicht
unbedingt gleichzeitig mit den anderen Prozessen ab. Durch Verwendung
eines nichtgleichzeitig gemeinsam genutzten Speichermodells erlaubt
die Serviceschicht die gemeinsame Nutzung von Daten zwischen dem
Prozeß,
der für
die Entwicklung des globalen kd-Baums sorgt, und den anderen Prozessen.
-
C. Datenumwandlungsschσcht des Kompilierers
-
1. Übersicht
-
Gemäß 9B wandelt die Datenumwandlungsschicht 910 des
geografischen Datensatzkompilierers 900 die geografischen
Kartenreichweitedaten 901 von einem allgemeinen Datenaustauschformat
in einen Zwischenausgabe um. Die Datenumwandlungsschicht 910 weist
zwei Hauptstufen oder -phasen auf: In einer ersten Stufe 923,
beginnend mit den Daten in einem Datenaustauschformat, wandelt die
Datenumwandlungsschicht 910 die Daten 901 zu Dateien 925 in
einem Übertragungsdateiformat
um. In einem üblichen
Szenario werden die Daten 901 dem Kompilierer in einem
verallgemeinerten Datenaustauschformat wie etwa GDF geliefert. Ein
Datenaustauschformat wie GDF organisiert die Daten auf eine Weise,
aus der eine direkte Umwandlung in das Format des physischen Speichert,
das auf dem Speichermedium eines Navigationssystems verwendet wird,
schwierig wäre.
Beispielsweise ist ein Grund, weshalb es schwierig ist, GDF direkt
in das physische Speicherformat umzuwandeln, ist, daß sehr viel
Speicherplatz in dem Kompilierer notwendig wäre, um alle notwendigen Bereiche
der GDF-Datei zu speichern, um die Ausgabedatei im physischen Speicherformat zu
produzieren. Bei einer bevorzugten Ausführungsform werden deshalb die
geografischen Daten zuerst in das Übertragungsdateiformat umgewandelt,
aus dem heraus die weitere Verarbeitung der Daten vereinfacht ist.
-
Nach der Umwandlung der Daten in
das Übertragungsdateiformat
verarbeitet eine zweite Stufe 928 der Datenumwandlungsschicht 910 die
Dateien 925 in das Übertragungsdateiformat,
um separate Zwischendatendateien 927 zu erzeugen. Bei der
Erzeugung dieser separaten Zwischendatendateien 927 erzeugt
dieser zweite Prozeß 928 die
separaten Sammlungen (z. B. die Mengen 931, 933 usw.)
der Daten, die schließlich
von den verschiedenen separaten Navigationsanwendungsfunktionen
genutzt werden. Wie oben erwähnt,
nutzt jede Navigationsanwendungsfunktion typischerweise nur bestimmte
Bereiche der gesamten geografischen Datenbank. Um also die Operation
jeder Navigationsanwendungsfunktion zu erleichtern, stellt das physische Speicherformat
jeder der Navigationsfunktionen ihre eigene separate Sammlung geografischer
Daten zur Verfügung,
die nur eine Untermenge der gesamten geografischen Datenbank sind.
Jede Untermenge schließt
bevorzugt diejenigen Anteile der Datenbank aus, die von ihrer Navigationsfunktion
normalerweise nicht genutzt wird. In dieser Datenumwandlungsstufe
erstellt der Datenumwandlungsprozeß diese separaten Sammlungen der
geografischen Daten als eigentliche separate Dateien, z. B. Dateien 941, 943 und 945 (hier
als "Zwischendatendateien" oder "Datendateieinheiten" bezeichnet). Jede
dieser Zwischendatendateien umfaßt nur einen Anteil oder eine
Ansicht der gesamten Datenbank.
-
Als weiterer Aspekt dieses Datenumwandlungsschichtprozesses,
als Teil des Prozesses zur Erzeugung dieser Zwischendatendateien,
werden aus den Daten in dem Übertragungsdateiformat
bestimmte neue Datenelemente wie etwa Superknoten, zusammengesetzte
Segmente, und erzeugte Formpunkte konstruiert. Diese neuen Datenelemente
sind zwar von den Daten in dem Übertragungsdateiformat
abgeleitet, sie haben jedoch keine direkten Gegenstücke in der
GDF-Eingangsdatei. Während
diese Zwischendatendateien erzeugt werden, werden ferner die Daten
in jeder dieser Zwischendateien zu Paketen innerhalb jeder Zwischendatendatei
gruppiert. Anschließend
an die Prozesse der Datenumwandlungsschicht bleibt die Paketorganisation
der Daten erhalten, wenn die separaten Datendateien später wieder
zu einer einzigen größeren Datei
in dem Trennschichtprozeß vereinigt
werden, wie noch beschrieben wird. Wenn Daten von Dritten bzw. Drittdaten
in das physische Speicherformat eingefügt werden sollen, werden sie
in den Datenumwandlungsprozeß eingebunden.
-
Die Prozesse in der Datenumwandlungsschicht 910 werden
nachstehend im einzelnen beschrieben.
-
2. Überführungsdateiformat
-
Der Kompilierer 900 kann
die geografischen Daten in vielen verschiedenen Formaten empfangen.
Bei einer derzeitigen Ausführungsform
empfängt
der Kompilierer 900 die geografischen Daten in einem Datenaustauschformat,
insbesondere GDF 3.0. Wenn die Daten ursprünglich in einem Format wie
etwa GDF bereitgestellt werden, wird es, wie bereits gesagt, bevorzugt,
die die Daten zuerst von dem Datenaustauschformat in ein Überführungsdateiformat
umzuwandeln, bevor die Daten weiter verarbeitet werden. Diese Umwandlung
erfolgt, weil das GDF-Format die Daten nicht auf eine Weise organisiert,
die die Handhabung von Anteilen der Daten zur Erzeugung des physischen
Speicherformats vereinfacht. Dieser Umwandlungsprozeß zu dem Überführungsdateiformat
kann bei Kartenreichweitedaten sowie, falls vorhanden, Drittdaten
angewandt werden.
-
Vor dem Beginn des Kompiliererprozesses
wird eine Bestimmung durchgeführt,
um den auf dem Speichermedium darzustellenden Kartenreichweitebereich(en)
zu definieren. Der auf dem Speichermedium darzustellende Kartenreichweitebereich
kann ein Stadtgebiet, einen Staat, aneinandergrenzende Staaten,
ein gesamtes Land oder andere Regionen oder Kombinationen von Regionen
aufweisen. Ein Teil dieses Prozesses kann die Art und Weise berücksichtigen,
wie die GDF-Dateien organisiert worden sind. Separate GDF-Datenaustauschdateien
können
für verschiedene
geografische Bereiche eines Landes existieren. Der gewünschte Kartenreichweitebereich,
der auf dem Speichermedium gespeichert werden soll, ist eventuell
nicht unbedingt in Übereinstimmung
mit den Begrenzungen einer einzigen GDF-Datei. Somit kann die Eingabe
in den Kompiliererprozeß mehr
als eine GDF-Datei aufweisen, d. h. die GDF-Eingabe kann physisch
in eine Vielzahl von Dateien unterteilt sein. Eine GDF-Datei kann
außerdem
logisch unterteilt sein, d. h. unterschiedliche Reichweitebereiche
können
separat in einer einzigen Datei vorgesehen sein. Nachdem eine Wahl
hinsichtlich des Kartenreichweitebereichs, der auf dem Medium darzustellen
ist, getroffen ist, werden die ein oder mehr GDF-Dateien, die dem
gewählten
Kartenreichweitebereich entsprechen, als Eingaben für den Kompiliererprozeß verwendet.
-
Der Überführungsdateierzeugungsprozeß ergibt
einen Ausgang in Form einer Sammlung von mehreren logischen Überführungsdateien 925.
Die Anzahl und die Arten von bestimmten Überführungsdateien können auf
der Basis der speziellen Informationsarten bestimmt werden, die
man in die physische Speicherformatdatei einbinden möchte. Bei
einer Ausführungsform
werden die nachstehenden verschiedenen Arten von Überführungsdateien
erzeugt. Diese Überführungsdateien
repräsentieren
verschiedene Arten von geografischen Entitäten: Namen, Sprachen, Verwaltungsbereiche,
Postleitzahlen, lineare karografische Features (Polylinien) und
polygonale kartografische Features (Polygone), Knoten, Segmente,
Ergänzungen,
POI, Arten von POI sowie Ketten von POI. Außerdem können mehrere Querverweis-Überführungsdateien
geschaffen werden. Diese Querverweisdateien erleichtern die Zuordnung
von einigen der verschiedenen Entitäten in den anderen Dateien
zueinander. Bei einer derzeitigen Ausführungsform können diese
Querverweisdateien einen Postleitzahl- und Verwaltungsbereich-Querverweis
sowie einen Zonen- und Verwaltungsentitäts-Querverweis aufweisen. Außerdem kann
eine Kontrolldatei erstellt werden, die Information über die
Erzeugung dieser Überführungsdateien
sichert. Diese Überführungsdateien
können
binäre
Dateien oder ASCII-Dateien sein. Bei einer Ausführungsform sind die Namens-,
Verwaltungsentitäts-
und Sprachüberführungsdateien
ASCII-Dateien, und der Rest besteht aus binären Dateien. Methoden zur Erzeugung
jeder dieser Überführungsdateien
aus der GDF-Datei werden weiter unten vorgestellt. Das Sammeln von
Daten in diese speziellen Dateien stellt eine beispielhafte Ausführungsform
in einem Teil des Prozesses dar, um eine physische Speicherformatdatei
zu erzeugen, und es können
andere Datensammlungen und andere Prozesse angewandt werden.
-
Die Namensüberführungsdatei und die Sprachüberführungsdatei
werden erstellt unter Verwendung der Daten aus den Namens- bzw.
Attributdatensätzen
in der GDF-Datei. Die Namensüberführungsdatei
umfaßt
die Namen von physischen Merkmalen (z. B. die Namen von Straßen, Plätzen usw.),
und die Sprachüberführungsdatei
umfaßt
die Sprache der Namen der Merkmale (z. B. Französisch, Englisch usw.).
-
Die Verwaltungsbereichs-Überführungsdatei
wird in Form einer Tabelle erstellt, die die Hierarchie von politischen
Teilungen in der Kartenreichweiteregion (z. B. Staat, Bezirk, Städte) darstellt.
Die Verwaltungsbereich-Überführungsdatei
wird aus den GDF-Datensätzen
Beziehungen, Name, Attribut, Bereich und komplexe Merkmale erzeugt.
Unter Anwendung eben dieser GDF-Datensätze wird eine Postleitzahlen-Überführungsdatei
erstellt, die die Postleitzahlen in dem Kartenreichweitebereich
aufweist. Außerdem
kann aus eben diesen GDF-Datensätzen eine
Zonenüberführungsdatei
erstellt werden. Die Zonenüberführungsdatei
enthält
Daten, die Nachbarschaften in dem Kartenreichweitebereich identifizieren.
-
Eine Querverweis-Überführungsdatei wird geschaffen,
die die Einträge
in der Verwaltungsbereich-Überführungsdatei,
der Postleitzahlen-Überführungsdatei
und der Zonenüberführungsdatei
(falls vorhanden) miteinander in Beziehung setzt. Diese Querverweis-Überführungsdatei
wird unter Verwendung der GDF-Beziehungsdatensätze erstellt,
die Verwaltungsbereiche, Postleitzahlen und Zonen betreffen.
-
Die Polygonüberführungsdatei wird aus den Bereichs-,
Flächen-,
Rand-, Namens-, Attribut-, XYZ- und Knotendatensätzen in der GDF-Datei erzeugt.
-
Polygonentitäten bezeichnen Bereiche in
der Kartenreichweiteregion wie etwa Parks, Seen usw. Diese Datei
hat die Form einer Tabelle.
-
Die Knotenüberführungsdatei wird aus den Punktfeature-,
Knotendatensätzen,
XYZ-Datensätzen
und Attributdatensätzen
in der GDF-Datei erzeugt.
-
Die Segmentüberführungsdatei und die Erweiterungsüberführungsdatei
werden aus den GDF-Linienfeaturedatensätzen, Randdatensätzen, XYZ-Datensätzen, Attributdatensätzen, Punktfeaturedatensätzen und der
vorher erstellten Verwaltungsbereichsüberführungsdatei erstellt. (Entitäten in der
Erweiterungsüberführungsdatei
umfassen Verkehrsschilder, Bedingungen, Formpunkte, Blöcke, Adressenbereiche, Überführungsinformation
usw.)
-
Die Polylinienüberführungsdatei wird aus den GDF-Liniendatensätzen, Featuredatensätzen, Randdatensätzen, XYZ-Datensätzen, Knotendatensätzen, Attributdatensätzen und
Namensdatensätzen
erstellt. Polylinienentitäten
umfassen sowohl navigierbare als auch nichtnavigierbare lineare
Merkmale wie etwa Straßen, Bäche und
Eisenbahngleise. Nachdem sämtliche
Polyliniendatensätze
erstellt sind, werden die Polygon- und Polyliniendatensätze in eine
kartografische Datenüberführungsdatei
eingebracht.
-
Die POI-Überführungsdatei und POI-Typüberführungsdateien
werden aus den GDF-Beziehungsdatensätzen, Punktmerkmalsdatensätzen, Attributdatensätzen, Namensdatensätzen und
der vorher erstellten Verwaltungsbereichsüberführungsdatei erzeugt.
-
Außerdem können andere Überführungsdateien
wie etwa die POI-Kettenüberführungsdatei
erzeugt werden. Diese Überführungsdatei
kann die Namen von POI-Ketten wie etwa McDonald's Restaurants, Marriott Hotels usw.
enthalten.
-
Beim Erstellen jeder der Überführungsdateien
wird auf GDF-Attributdefinitions- und
Attributwertdatensätze
Bezug genommen, um komplette Informationen über die Attribute der zu erstellenden
Entitäten
zu erhalten. Außerdem
wird bei der Erstellung jeder der Überführungsdateien auf GDF-externe
Aktualisierungsdatensätze
Bezug genommen, um die Identifikationsnummern für die Überführungsdateientitäten zu erhalten.
-
Als Teil dieses Prozesses können Zählwerte
der verschiedenen Datensatztypen erzeugt und in der Kontrolldatei
gehalten werden.
-
Wenn Drittdaten zusätzlich zu
Kartenreichweitedaten in dem physischen Speicherformat vorgesehen sein
sollen, können
die Drittdaten zu diesem Zeitpunkt in eine oder mehrere Überführungsdateien
umgewandelt werden. Die Drittdaten können speziell erzeugte Daten
aufweisen, die bestimmte Interessen betreffen, oder sie können zusätzliche
allgemeine Information dahingehend betreffen, ob die zusätzlichen
Daten von einer anderen Partei erzeugt wurden. Diese Drittdaten
können
in zusätzlichen,
erwerberspezifischen Datenformaten vorgesehen sein. Die Kartenreichweitedatendatei
kann Zeiger zu diesen Drittdaten als zusätzliche Daten von POI-Typ zusätzlich zu
den reguläten
POI-Daten haben,
die oben erwähnt
werden. Diese Zeiger zwischen der Hauptdatendatei 902 und
den Drittdaten 904 bleiben weiter in den Überführungsdateien,
die erzeugt werden.
-
3. Produktion
von Zwischendatendateien und Zusatzdateien
-
Nach der Umwandlung der geografischen
Daten 902 und aller Drittdaten 904 in die Überführungsdateien 925 werden
die Daten nunmehr in dem Überführungsdateiformat
genutzt, um die verschiedenen spezialisierten Zwischendatendateien 927 zu
erzeugen, die die Daten aufweisen, die letztlich von den verschiedenen Navigationsanwendungsprogrammen
verwendet werden. Diese Zwischendatendateien für die verschiedenen Typen der
Navigationsfunktionen können
im allgemeinen in jeder Reihenfolge erzeugt werden, wobei es nur eine
Ausnahme gibt, wenn die Erzeugung eines Typs von Zwischendatendatei
die vorhergehende Erzeugung eines anderen der Typen von Zwischendatendateien
erfordert.
-
Diese Zwischendatendateien können auf
jede geeignete und zweckmäßige Weise
benannt werden. Beispielsweise können
Streckendaten der Ebene 0 für
einen Reichweitenbereich, der den Stadtbereich von Chicago umfaßt, mit
chicago.rt0 und für
die Schicht 1 mit chicago.rt1 bezeichnet werden. Während diese
Zwischendateien erzeugt werden, werden sie auch zu Paketen organisiert.
Zusatzdateien 949 (beispielsweise die Dateien 951, 953, 955)
werden erzeugt, und zwar eine Zusatzdatei für jede Zwischendatendatei.
Die Zusatzdatei weist Versatz bzw. Offsets auf, die die Startstellen
jedes der Pakete in der Zwischendatendatei, dem es zugeordnet ist,
identifizieren. Diese Zusatzdateien können jeden geeigneten Namen
erhalten, etwa chicago.rf0 für
die Zusatzdatei für
die Steckendatendatei der Schicht 0, chicago.rt0, usw. Die Information
in den Zusatzdateien wird in dem Isolationsschichtprozeß genutzt,
der nachstehend beschrieben wird.
-
4. Strecken-Zwischendatendateien
-
Ein Datenumwandlungsschichtprozeß erzeugt
eine Mehrzahl von Strecken-Zwischendatendateien 931.
Die Daten in jeder dieser Strecken-Zwischendatendateien sind räumlich organisiert,
um schließlich
von der Streckennavigationsanwendung genutzt zu werden. Als Teil
dieses Prozesses werden separate Schichten der Streckendaten erzeugt.
In dieser Phase wird jede der separaten Schichten als eine separate
Zwischendatendatei erzeugt und gespeichert. Außerdem werden als Teil dieses
Prozesses Superknoten und zusammengesetzte Segmente, die oben beschrieben
wurden, erzeugt. Ferner werden in jeder separaten Strecken-Zwischendatendatei,
die jeder separaten Schicht der Streckendaten entspricht, die Daten
in Paketen organisiert, wie beschrieben wurde. In jeder gegebenen
Schicht der Streckendaten enthält
ein Paket Segmente, Knoten und zugehörige navigationsfähige Attribute
wie etwa Bedingungen, Zugangscharakteristiken, Tageszeitmodifikatoren
("DTM") usw.
-
Die Strecken-Zwischendatendateien 931 werden
aus den oben beschriebenen Segment-, Knoten- und Erweiterungsüberführungsdateien
erzeugt. Die relevanten Daten in diesen Überführungsdateien werden in den
Speicher geladen, und Zeiger werden gebildet, um die Beziehungen
zwischen den verschiedenen Entitäten
darzustellen. Beispielsweise hat ein Segmententitätsdatensatz
einen Zeiger zu den Knotenentitätsdatensätzen für die Knoten
an den Endpunkten des Segments.
-
Erzeugte Formpunkte
-
Als Teil des Datenumwandlungsschichtprozesses
werden spezielle Formpunkte (die als "generierte" oder "künstliche" Formpunkte bezeichnet
sind) geschaffen und als Attribute von bestimmten Segmententitäten in die
Strecken-Zwischendatendateien
eingefügt.
Somit werden diese generierten Formpunkte erzeugt und als Attribute
bestimmter Segmententitäten
als Teil des Prozesses der Erstellung der Strecken-Zwischendatendateien
eingebunden.
-
Wie oben beschrieben, kann eine Segmentdatenentität eines
oder mehrere Formpunktattribute entlang seiner Länge aufweisen. Wenn das Straßensegment
nicht gerade ist, bilden die Formpunktattribute geografische Positionen
(geografische Breiten, Längen)
entlang der Segmentlänge,
um die wahren physischen Orte entlang dem Segment exakt darzustellen
und die Fahrzeugpositionierung usw. zu unterstützen. 10A zeigt ein gerades Segment S20 und
ein Segment S21 mit Formpunkten SP1, SP2 und SP3.
-
Auch wenn ein Segment gerade ist
und daher eigentlich keine Formpunkte benötigen würde, die entlang seiner Länge vorgesehen
sind, werden bei einer bevorzugten Ausführungsform generierte Formpunkte gebildet
und der Segmententität
als Formpunktattribute zugeordnet, wenn irgendein Abschnitt des
Segments einen vorbestimmten Längengrenzwert überschreitet.
Als Teil des Kompiliererprozesses zum Aufbau der Streckenschicht-Zwischendatendateien
wird daher jedes Segment daraufhin geprüft, ob es irgendeinen Bereich aufweist,
der einen vorbestimmten Längengrenzwert
ohne einen Formpunkt überschreitet.
Wenn das der Fall ist, wird ein generierter Formpunkt erstellt und
dem Segment dort zugeordnet, wo sich ein Längenabschnitt in dem Segment befindet,
der den vorbestimmten Grenzwert ohne einen Formpunkt überschreitet.
Bei einer Ausführungsform
ist der vorbestimmte Grenzwert 512 Navigationseinheiten (512/100.000
von 1 Grad) in einer Ost-West- oder Nord-Süd-Richtung.
Ebenso wie jeder andere Formpunkt repräsentieren diese generierten Formpunkte
wahre Positionen (geografische Breite, Länge) entlang dem Segment. Die
Positionen dieser generierten Formpunkte können relaiv einfach abgeleitet
werden, weil der Abschnitt des Segments, für den ein generierter Formpunkt
eingebunden wird, gerade ist. Die Einbindung von generierten Formpunkten
stellt sicher, daß es
keine Bereiche eines Segments gibt, die größer als 512 Navigationseinheiten
ohne einen Formpunkt sind. Die Einbindung von generierten Formpunkten,
die dem Segment S20 zugeordnet sind, ist in 10B bei GSP1, GSP2 gezeigt.
-
Dieses Merkmal bietet den Vorteil
einer erhöhten
Wahrscheinlichkeit, daß ein
Segment sämtlichen
Paketen zugeordnet ist, durch die es verläuft, und zwar auch dann, wenn
das Segment im übrigen
seine Endpunkte oder irgendwelche regulären Formpunkte nicht innerhalb
der Pakete hat, durch die es verläuft. Beispielsweise kann ein
gerader Abschnitt eines Segments durch eine Ecke eine Pakets, z.
B. des Pakets P34 in 10A,
verlaufen. Da die Endpunkte des Segments S20 (und eventuell vorhandene
reguläre
Formpunkte) außerhalb
des Pakets liegen würden,
wären sonst
keine Daten vorhanden, die das Segment S20 mit dem Paket in Verbindung
bringen. Das könnte
dazu führen,
daß das
Segment nicht als in dem Paket liegend dargestellt wird, obwohl
ein Bereich davon durch das Paket verläuft. Die Einbindung von generierten
Formpunkten in regelmäßigen Intervallen
entlang einem im übrigen
geraden Segment bietet eine Möglichkeit
der Lokalisierung von Punkten des Segments in Paketen, die andernfalls
nicht mit dem Segment verknüpft
wären,
wie 10B zeigt.
-
Bei einer bevorzugten Ausführungsform
kann ein generierter Formpunkt auch berechnet und in ein Segment
immer dann eingefügt
werden, wenn irgendein Abschnitt eines Segments einen Bereich eines
Pakets kreuzt und das Segment im übrigen keine Formpunkte oder
Endpunkte (Knoten) in dem Paket hat, und zwar ohne Rücksicht
darauf, ob der Abschnitt des Segments, der das Paket kreuzt, mindestens
512 Navigationseinheiten beträgt.
Eine Liste aller Pakete, die ein Segment kreuzt, kann generiert
und mit einer Liste der Pakete verglichen werden, die sämtlichen
Knoten und Formpunkten des Segments zugeordnet sind. Auf der Basis
dieses Vergleichs kann festgestellt werden, ob die Hinzufügung eines
generierten Formpunkts zu irgendeinem Abschnitt des Segments notwendig
ist, um das Segment einem bestimmten Paket zuzuordnen. Der Ort des generierten
Formpunkts kann irgendwo innerhalb des Pakets liegen und liegt nicht
unbedingt auf der Paketgrenze.
-
Strecken-Zwischendatendateien
(Fortsetzung)
-
Die Peilattribute für Segmententitäten werden
aus den Formpunkten der Segmententität berechnet. Zwei Peilungen
werden für
jedes Segment berechnet, und zwar eine für jedes Ende des Segments.
Das Peilattribut repräsentiert
die Richtung, die "in
das Segment geht".
Die Peilung wird als ein Winkel der Verschiebung relativ zur geografischen
Nordrichtung berechnet. Um eine Peilung für jedes Ende eines Segments
zu berechnen, werden ein oder mehr Formpunkte innerhalb eines Segments
verwendet. Diese Formpunkte umfassen diejenigen, die jedem der Knoten
an den Endpunkten des Segments benachbart sind oder innerhalb von
ungefähr
100 Navigationseinheiten (oder ungefähr 100 m) davon liegen. Eine
gedachte Linie wird unter Nutzung der Knoten an den Endpunkten und
den ihnen benachbarten Formpunkten generiert. Die Richtung dieser
gedachten Linie wird relativ zu der geografischen Nordrichtung verglichen,
um einen Wert für
die Peilung zu berechnen. Bei einer bevorzugten Ausführungsform
wird die berechnete Peilung auf einen Wert zwischen 0 und 255 normalisiert,
um die Speicherung zu vereinfachen. Die Peilwerte werden als Attribute
für jede Segmententität gespeichert.
-
Ränge
von Knotenentitäten
werden definiert, und zusammengefaßte Segmente und Superknoten
werden auf die bereits beschriebene Weise konstruiert. In Verbindung
mit der Bestimmung von zusammengefaßten Segmenten enthalten Knotenentitäten in allen
Schichten ein Attribut, das zeigt, ob der Knoten "für ein zusammengefaßtes Segment
signifikant" ist,
d. h. ob der Knoten ein Endknoten eines zusammengefaßten Segments
für diese
Schicht ist. Außerdem
erhalten in dieser Phase Segmententitäten, die Kombinationen von
Attributen aufweisen, die Einträgen
in der normalisierten Attributtabelle entsprechen, Zeiger zu der
normalisierten Attributtabellezugewiesen. Die Positionsdaten für die Knoten
und Formpunkte (einschließlich
der generierten Formpunkte) werden genutzt, um eine Peano-Schlüsselanordnung
aufzubauen.
-
Die Daten in jeder der Schichten
werden in der bereits beschriebenen Weise paketisiert, beginnend mit
der untersten Schicht (größte Dichte).
Bei einer bevorzugten Ausführungsform
erfolgt bei der Bildung der Pakete ein Schätzung der Endgröße des Pakets.
-
Schätzverfahren
-
Bei dem oben beschriebenen Paketbildungsvorgang
gibt es zahlreiche Fälle,
in denen Datenmengen bewertet werden. Während des oben beschriebenen
regulären
Teilungsprozesses werden beispielsweise Datenmengen bewertet zum
Zweck der Bestimmung, ob die Daten weiterhin in Abschnitte unterteilt
werden sollen, die kleinere Rechteckbereiche darstellen. Bei dem
oben beschriebenen normalen Teilungsprozeß werden Datenmengen zum Zweck
der Bestimmung der gewünschten
Teilungslinie für
die Bildung von Paketen bewertet. In diesen Fällen berücksichtigen diese Bewertungen
die Tatsache, daß die
Endgröße eines
Pakets, das aus einer Menge von geografischen Daten gebildet ist,
von mehreren Faktoren beeinflußt
werden kann. Beispielsweise enthalten die meisten oder sogar alle
Pakete zusätzlich
zu den geografischen Daten Kopfdaten wie etwa eine Paketkopf und
Indexinformation wie etwa kd-Bäume.
Einige dieser zusätzlichen
Informationsarten, die in Paketen enthalten sind, haben eine unveränderliche
Größe, und
andere können
mit der Menge oder dem Inhalt der Daten veränderlich sein. Diese Arten
von Kopfdaten nehmen Raum innerhalb eines Pakets ein, so daß es bei
der Bewertung, ob eine gegebene Datenmenge zu einem Paket geformt
werden kann, erforderlich ist, diese zusätzlichen Informationselemente
zu berücksichtigen.
Andererseits können
Kompressionsverfahren angewandt werden, um die Größe bestimmter Datentypen
zu reduzieren. Es ist auch erforderlich, diese Kompressionstechniken
zu berücksichtigen,
wenn ermittelt wird, ob eine gegebene Datenmenge zu einem Paket
mit einem gewünschten
Füllprozentsatz
geformt werden kann.
-
Eine Möglichkeit der Durchführung dieser
Bewertungen besteht darin, sämtliche
Schritte der Bildung eines Pakets aus einer Datenmenge immer dann
auszuführen,
wenn eine Bewertung erforderlich ist. Dieser Prozeß liefert
zwar die notwendigen Informationen, um die Bewertung auszuführen, er
ist jedoch rechnerisch intensiv und relativ ineffizient, weil er
die Erzeugung vieler Versuchspaketresultate (die letztlich verworfen
werden) verlangt, um eine Feststellung gewünschter Paketbegrenzungen zu
erreichen. Statt dessen wird bei einer bevorzugten Ausführungsform
ein Schätzverfahren
angewandt.
-
Das Schätzverfahren identifiziert die
Variablen, die in einem Typ einer geografischen Information existieren.
Die Variablen werden als die Quantitäten jedes der verschiedenen
Typen von Entitäten
in einem Typ von geografischen Daten identifiziert. In den Streckendaten
werden die Variablen beispielsweise als die Quantitäten von
jeder von den Knoten-, den Segment-, den Bedingungs- und den Formentitäten identifiziert,
die in einer gegebenen Menge von geografischen Daten existieren.
Die Quantitäten
von Superknoten und zusammengefaßten Segmenten werden ebenfalls
separat identifiziert. Das Schätzverfahren
wendet Konstanten auf jede dieser Variablen an, um die ungefähre Größe eines
aus einer gegebenen Datenmenge gebildeten Pakets zu schätzen. Die
Konstanten, die bei jeder dieser Variablen anzuwenden sind, werden
durch einen Versuchsprozeß abgeleitet,
bei dem jede dieser Variablen veranlaßt wird, sich in einem relativ
weiten Bereich (und relativ zu jeder der anderen Variablen) zu ändern, und
die resultierenden Paketgrößen werden
berechnet.
-
Echte Pakete werden für eine repräsentative
Datenprobe erzeugt. Die Schätzkonstanten
erhalten Anfangswerte, und die resultierenden Paketgrößenschätzwerte
werden mit den tatsächlichen
Paketgrößen verglichen.
Es wird eine Konstante ausgewählt,
und ihr Wert wird um kleine Beträge
in der Richtung verändert, die
den Schätzwert
verbessert. Wenn durch weitere Änderungen
der ausgewählten
Konstanten keine weitere Verbesserung erzielt wird, wird der Vorgang
für eine
zweite ausgewählte
Konstante wiederholt und wird anschließend für alle verbleibenden Schätzkonstanten
wiederholt. Dieser Prozeß wird
dann einmal oder mehrfach für
alle Schätzkonstanten
wiederholt, bis die Schätzwerte
in einem akzeptablen Bereich liegen oder keine weiteren Verbesserungen
erzielt werden können.
-
Der Schätzvorgang erlaubt die Schätzung des
resultierenden Pakets bis auf ungefähr 2%. Das Schätzverfahren
wird im Zusammenhang mit einer Soll-Paketgröße (wie etwa 95%) angewandt,
was es dem Schätzverfahren
erlaubt, eine Schätzung
zu liefern, die nahezu immer innerhalb der zulässigen Größe liegt.
-
Das Schätzverfahren kann auf alle Datentypen
angewandt werden, was kartografische, Fahr-, POI-Daten usw. einschließt. Da jeder
Datentyp verschiedene Entitäten
hat, hat jeder Datentyp seine eigenen Variablen und Konstanten.
Die Konstanten werden jedoch auf ähnliche Weise abgeleitet.
-
Strecken-Zwischendatendateien
(Fortsetzung)
-
Für
jede Schicht wird ein zweidimensionaler kd-Baum unter Nutzung der "für ein zusammengefaßtes Segment
signifikanten" Knoten
(wie oben beschrieben) für
diese Schicht gebildet. Die Schicht 0 hat natürlich keine "für ein zusammengefaßtes Segment
signifikante" Knoten,
und somit werden die regulären
Knoten verwendet, um einen kd-Baum für die Schicht 0 zu bilden.
-
Da jedes Streckenpaket in der Strecken-Zwischendatendatei
für die
Schicht null definiert ist, wird das Paket weiter in Zellen unterteilt,
die Untermengen der Paketdaten enthalten. Diese Zellen sind so definiert,
daß sie
eine vorbestimmte Größe, etwa
512 Navigationseinheiten (512/100.000 von 1 Grad) haben. Die Zellen
sind in Peano-Schlüsselordnung
organisiert. Die Positionsdaten innerhalb jeder Zelle sind nach
geografischer Breite und Länge
in aufsteigender Ordnung organisiert. Diese Zellen können später genutzt
werden, um räumliche Suchvorgänge nach
den Daten innerhalb des Pakets zu erleichtern.
-
Während
die Pakete erzeugt werden, werden temporäre Paketidentifizierer zugeordnet
(als "Paketreferenznummern" oder "PRN" bezeichnet). Die
Pakete werden in jeder Datei in Tiefe-zuerst-Ordnung von dem globalen
kd-Baum gespeichert (was angenähert
Peano-Schlüsselordnung
ist).
-
Es ist zu beachten, daß sämtlichen
Entitäten
in den paketierten Streckendaten neue Identifikationsnummern relativ
zu denjenigen, die in den Überführungsdateien
verwendet werden, zugeordnet werden. Es ist ferner zu beachten,
daß immer,
wenn Entitäten
erstmals aus den Überführungsdateien
erzeugt werden, ihnen diese neuen Identifikationsnummern zugeordnet
werden. In diesen Fällen
wird eine Querverweistabelle zwischen den alten und neuen Identifikationsnummern
erzeugt. Immer, wenn irgendwelche folgenden Schritte sich auf Entitäten beziehen,
denen bereits neue Identifikationsnummern zugewiesen wurden, können die
Entitäten
unter Verwendung dieser Querverweistabellen aus den Überführungsdateien
erhalten werden (wo sie immer noch ihre alten Identifikationsnummern
haben).
-
5. Kartografische
Zwischendatendateien
-
Nachdem die Strecken-Zwischendatendateien
erzeugt sind, werden die kartografischen Zwischendatendateien erzeugt.
Die kartografischen Zwischendatendateien enthalten Polylinien und
Polygone. Polylinien sind Datenentitäten in dem kartografischen
Bereich der geografischen Datenbank, die lineare Merkmale darstellen.
Polygone sind Datenentitäten
in dem kartografischen Bereich der geografischen Datenbank, die
Bereichsmerkmale darstellen. Polylinien und Polygone werden von
der Kartenanzeigefunktion des Navigationssystems genutzt, um ein
Bild auf einer Sichtanzeige in dem Navigationssystem zu erzeugen.
-
Ein Datenumwandlungsschichtprozeß erzeugt
Polylinien sowohl für
navigationsfähige
als auch nicht-navigationsfähige
Merkmale. Separate Polylinien werden für jede Schicht von kartografischen
Daten erzeugt. Im allgemeinen sollten Polylinien durch die längstmöglichen "Strang" jedes der Merkmale
dargestellt werden, und zwar in Übereinstimmung
mit bestimmten Einschränkungen
wie etwa den Grenzen eines Pakets oder der Unterteilung eines Pakets,
wie nachstehend erläutert
wird.
-
Unter Verwendung der Polylinienüberführungsdatei
werden die Knotenentitäten
für jede
nichtnavigationsfähige
Polylinie linear in Folge geordnet. Die Länge und das kleinste begrenzende
Rechteck jeder Polylinienentität
werden berechnet. Diese berechnete Länge kann gemeinsam mit anderen
Informationen verwendet werden, um zu bestimmen, ob die Polylinienentität in eine
gegebene kartografische Generalisierungsschicht eingebunden werden
sollte.
-
Die Knoten, Formpunkte und Segmente
aus den Segment-, Knoten- und Erweiterungsüberführungsdateien werden genutzt,
um navigationsfähige
Polylinienentitäten
(d. h. Straßen)
zu bilden. Navigationsfähige Polylinienentitäten werden
konstruiert durch Vereinigen mehrerer Segmente, um längere Stränge von
Segmenten zu bilden. Für
navigationsfähige
Polylinienentitäten
werden Segmente kombiniert, um Polylinien zu konstruieren, die möglichst
lang sind unter der Voraussetzung, daß bestimmte Attribute entlang
der Polylinie unverändert
bleiben. Beispielsweise können
Segmente kombiniert werden zur Bildung einer Polylinie unter der Voraussetzung,
daß die – Segmente
eines oder mehrerer der gleichen Attribute haben wie etwa Fahrzeugzufahrt,
Durchschnittsgeschwindigkeit, Anzahl Fahrbahnen, Fahrtrichtung,
Rang oder Typ der Straße
(z. B. befestigt, Zufahrt, Mautstraße). Nach Bildung einer Polylinie
werden Länge
und kleinstes begrenzendes Rechteck der navigationsfähigen Polylinienentität berechnet.
Ebenso wie bei nichtnavigationsfähigen
Polylinien kann der Längenwert
genutzt werden, um zu bestimmen, ob die Polylinie in eine gegebene
kartografische Generalisierungsschicht einbezogen werden sollte.
Das kleinste begrenzende Rechteck einer navigationsfähigen Polylinie
wird verwendet, um zu bestimmen, ob die Polylinie die Grenze einer
Unterteilung eines Pakets schneidet, wie weiter unten erläutert wird.
-
Unter Verwendung der Polygonüberführungsdatei
werden die Knotenentitäten
für jedes
Polygon nacheinander so organisiert, daß die jedem Polygon zugeordneten
Knotenentitäten
im Gegenuhrzeigersinn geordnet werden. Umkreis, Fläche und
kleinstes begrenzendes Rechteck jeder Polygonentität werden
berechnet und gespeichert. Diese berechneten Werte können gemeinsam
mit anderen Informationen dazu dienen, die Priorität für die Überlagerung
von Grafiken in einer gegebenen kartografischen Schicht zu bestimmen
und festzulegen, ob die Entität
in eine gegebene kartografische Generalisierungsschicht einbezogen
werden sollte.
-
Die geordneten Polygone und nichtnavigationsfähigen Polylinien
sowie auch die navigationsfähigen Polylinien
werden dann in Vielfachschichten organisiert. Eine Polygondatei
und eine Polyliniendatei werden für jede Schicht erstellt. Die
Anzahl Schichten der kartografischen Daten kann so gewählt werden,
daß sie
der Anzahl Schichten der Streckendaten entspricht. Wenn es beispielsweise
fünf Schichten
von Streckendaten gibt, können
auch fünf
Schichten von kartografischen Daten gebildet werden. Die unterste
Schicht (mit der größten Dichte)
der kartografischen Daten wird zuerst gebildet. (Die Anzahl Schichten
von kartografischen Daten kann auch der Anzahl der verschiedenen
Ränge von
Segmenten entsprechen.)
-
Ebenso wie im Fall der Streckendaten
können
normalisierte Attributtabellen konstruiert werden, die häufig auftretende
Kombinationen von ausgewählten
Attributen der kartografischen Daten aufweisen. Wenn normalisierte
Attributtabellen verwendet werden, werden Zeiger in ausgewählten kartografischen
Datenentitäten
vorgesehen, die auf die kartografische normalisierte Attributtabelle
weisen.
-
Während
jede Schicht von kartografischen Daten gebildet wird, werden die
kartografischen Daten innerhalb der Schicht paketisiert. Zuerst
werden die Positionsdaten (z. B. geografische Breite, Länge) für jede Schicht
entweder nach den geografischen Längen oder Breiten der Positionen
organisiert. Beispielsweise können
für jede
Position Schlüssel
erzeugt werden mit einem Zeiger auf die Position und einem Zeiger
auf die Entität,
welcher die Position entspricht. Die Schlüssel werden gemäß der geografischen
Länge der
Positionen, auf die sie weisen, in aufsteigender Reihenfolge (von
links nach rechts) organisiert.
-
Alternativ kann dies auch nach der
geografischen Breite erfolgen. Zusätzlich werden Zeiger auf die Schlüssel generiert,
wobei die Zeiger nach der geografischen Breite in aufsteigender
Folge organisiert werden. Diese Positionsdaten werden bei dem Schätzverfahren
für die
Paketbildung wie oben beschrieben verwendet.
-
Wenn die Streckendaten (oder andere
räumlich
organisierte Daten) nicht bereits paketisiert worden sind, kann
jede Schicht der kartografischen Daten auf die oben beschriebene
Weise paketisiert werden. Wenn bei der Paketbildung der Strecken-
oder sonstigen räumlichen
Daten bereits ein globaler kd-Baum erzeugt worden ist, werden die
gleichen Grenzen, die vorher erzeugt wurden, zur Paketisierung der
kartografischen Daten verwendet. Die kartografischen Daten für einen
Kartenreichweitebereich sollten in Paketen enthalten sein, die die
größten Bereiche
abdecken, die mit der Forderung in Übereinstimmung sind, daß die Datenmenge
innerhalb eines Pakets eine maximale Paketmenge nicht überschreiten
darf. Daher haben kartografische Datenpakete nicht notwendigerweise
die gleichen geografischen Begrenzungen wie die Streckendatenpakete,
die vorher erzeugt wurden. Wenn beispielsweise die kartografischen
Daten weniger dicht sind, brauchen die kartografischen Daten eventuell
nicht so stark wie die Streckendaten unterteilt zu werden. Bei der
Unterteilung der kartografischen Daten zur Bildung von Paketen werden
jedoch die gleichen Teilungslinien verwendet, die bei der Paketbildung
der Streckendaten erzeugt wurden. Das bedeutet, daß eine Vielzahl
von Streckendatenpaketen dem gleichen geografischen Bereich wie
ein kartografisches Paket entsprechen kann (und umgekehrt in Gebieten,
in denen die kartografischen Daten dichter als die Streckendaten
sind). Wenn die kartografischen Daten in einer gegebenen Schicht
dichter als die Streckendaten sind, kann es erforderlich sein, weitere
Unterteilungen der kartografischen Daten über die Unterteilungen hinaus
vorzunehmen, die bereits bei der Paketisierung der Streckendaten
definiert wurden. Solche weiteren Unterteilungen der kartografischen
Daten können auf
die vorher beschriebene Weise vorgenommen werden.
-
Unterteilungen
von kartografischen Paketen
-
Bei kartografischen Daten wird, während jedes
Paket in einer gegebenen Schicht definiert wird, das Paket weiter
in Zellen unterteilt, die Untermengen der Daten in dem Paket enthalten.
Die Zellen können
durch ein regelmäßiger Gittermuster
definiert sein, das auf das Paket gelegt wird. Ein Kopf wird in
dem Paket geschaffen, um die Paketzellenstruktur zu identifizieren.
-
Die Zellen repräsentieren relativ große nichtüberlappte
geografische Rechtecke innerhalb des Reichweitebereichs des Pakets.
Das erleichtert die Extraktion von Daten, die einem Suchrechteck
entsprechen, das den Reichweitebereich des Pakets überlappt.
Die Zellen werden zusätzlich
für die
Handhabung von Zooming und Verschieben eines geografischen Bereichs,
der durch die kartografischen Daten in dem Paket dargestellt ist,
durch eine Kartenanzeige-Navigationsanwendungsfunktion
verwendet. Obwohl eine bevorzugte Ausführungsform des Navigationssystems
Daten vielleicht nur in ganzen Paketen aus dem Medium liest, werden
die Daten komprimiert. Daher braucht unter Verwendung einer Zellenstruktur
nur eine Untermenge der Daten in dem Paket, d. h. der Zellinhalt,
erweitert und zu der Navigationsanwendung gesendet werden, um eine
Kartenstelle mit einer gegebenen Skalierung anzuzeigen. Ohne eine
solche Unterteilung wäre
es notwendig, ein gesamtes Paket zu erweitern und zu prüfen, um
Daten innerhalb des Suchrechtecks zu lokalisieren. Benachbarte Untermengen
oder Zellen der Daten können
verwendet werden, wenn die Karte nach außen erweitert oder nach links,
rechts, oben oder unten verschoben wird.
-
Beispielsweise schneidet in 11A der für die Kartenanzeige
benötigte
Bereich einen kleinen Teil eines kartografischen Pakets. Da die
Daten innerhalb des Pakets in Zellen organisiert sind, brauchen
nur die in den beiden Zellen, die den Kartenanzeigebereich schneiden,
enthaltenen Daten geprüft
zu werden. Die ein gegebenes Rechteck überlappenden Zellen können gefunden
werden, indem ein interner kd-Baum des kartografischen Pakets, dessen
Blattknoten jeweils eine Zelle darstellen, abgesucht wird. Die Datensätze eines
gegebenen Typs innerhalb einer Zelle sind aneinander anschließend gespeichert,
so daß jede
Zelle ein benachbartes Intervall von Polyliniendatensätzen, ein
benachbartes Intervall von Polygondatensätzen und ein benachbartes Intervall
von Punktdatensätzen
aufweist.
-
11B zeigt
einen internen kd-Baumeintrag für
ein kartografisches Paket. Schnitte für den kd-Baum sind, wie vorher
beschrieben, an jeder 1/32 Teilung eines kleinsten unterteilbaren
21 × 21 Vielecks eines Rechtecks definiert. Jeder
Blattknoten in dem kd-Baum repräsentiert
eine Zelle und entspricht einem Satz von Intervallen von kartografischen
Entitätsdatensätzen.
-
Die Unterteilung von Paketen unterbricht
auch große
Polygone und lange Polylinien an Zellgrenzen. In Verbindung mit
dem Definieren dieser Paketzellen können Polygone und Polylinien,
die die Zellgrenzen schneiden, so beschnitten werden, daß sie an
die Zellgrenzen angepaßt
sind. Wenn beispielsweise eine Polygonentität PG10 einen See darstellt,
der Bereiche von sechs verschiedenen Zellen C1 bis C6 einnimmt,
wie in 11C gezeigt
ist, wird die den See repräsentierende
Polygonentität
durch sechs separate Polygonentitäten (als PG11 bis PG16 gezeigt)
ersetzt, die die Bereiche des Sees darstellen, die sich in jeder
der Zellen C1 bis C6 befinden. Jede dieser neuen Polygonentitäten erhält eine
neue Entitätsidentifikationsnummer
innerhalb der Zellen, so daß die
richtigen Daten für
die Kartenanzeige ausgelesen werden können. Bei einer derzeitigen Ausführungsform
enthalten die Polygonentitäten
keine Informationen, die zeigen, in welcher Zelle sie liegen.
-
6. Querverweis-Zwischendatendateien
-
Nach der Paketisierung der Strecken-
und kartografischen Daten können
Querverweisdateien erzeugt werden, die Entitäten in jedem der Pakete in
jeder Schicht von kartografischen Daten mit den Streckenentitäten in den
Paketen der Streckendaten korrelieren. Bei einer Ausführungsform
werden die kartografischen Entitäten nur
mit den Streckendatenentitäten
in der Schicht null der Streckendaten korreliert. Diese Querverweisdateien können beispielsweise
von einem Navigationsanwendungsprogramm genutzt werden; um die geeigneten
kartografischen Daten zu finden um eine Strecke anzuzeigen und hervorzuheben,
die den Segmententitäten
in den Streckendaten entspricht, die eine von einer Streckenberechnungsanwendung
berechnete Strecke bilden. Umgekehrt kann die Querverweisdatei genutzt
werden, um eine Streckensegmententität zu finden, die auf einer
Zeige-und-Klick-Position auf der Kartenanzeige basiert.
-
7. Orts-Zwischendatendatei
und Ortsindexe
-
Ortsdaten betreffen Verwaltungsbereiche
und -zonen, z. B. Ortschaften, Bezirke, Gegenden usw. Ein Datenumwandlungsschichtprozeß erzeugt
eine Orts-Zwischendatendatei
und Indexe unter Nutzung der Verwaltungsbereichs-, Segmentknoten-
und Ergänzungsüberführungsdateien.
Diese Überführungsdateien
werden in den Speicher geladen, und die Orts werden in hierarchischer
Folge organisiert, z. B. Land, Staat, Bezirk, Stadt usw. Im allgemeinen
werden in jeder Hierarchieebene Orte mit demselben verwaltungstechnischen
hierarchischen Stammort gemeinsam angeordnet und alphabetisch geordnet.
Wenn jedoch der unmittelbare hierarchische verwaltungstechnische
Stamm eines Orts als nicht "adressensignifikant" festgestellt wird,
dann wird der Ort gemeinsam mit anderen Orten angeordnet, die denselben
hierarchischen verwaltungstechnischen Stammort haben, und wird alphabetisch
auf der Basis des Stamms auf der nächsthöheren Ebene in der Hierarchie
angeordnet, die als adressensignifikant bestimmt wird. Ein Ort wird
als nicht "adressensignifikant" festgelegt, wenn
er nicht normalerweise zur Definition von Adressen verwendet wird.
Beispielsweise umfaßt
die Adresseninformation in den USA typischerweise eine Ortschaft
(z. B. eine Großstadt,
Stadt, ein Dorf), und der unmittelbare verwaltungstechnische hierarchische
Stamm einer Ortschaft ist ein Bezirk. Bezirke sind jedoch in den
USA nicht adressensignifikant, weil Bezirke normalerweise nicht
in Adressen verwendet werden. Somit wird der nächsthöhere hierarchische verwaltungstechnische
Stamm, d. h. ein Staat, verwendet, weil Staaten verwendet werden,
um Adressen zu definieren, und somit adressensignifikant sind. In
diesem Fall werden sowohl Städte
als auch Bezirke nach dem Staat organisiert, in dem sie sich befinden.
-
Zeiger werden zwischen verwandten
Orten auf verschiedenen Ebenen der Hierarchie erzeugt (z. B. weist
eine Großstadt
auf den Bezirk, in dem sie liegt, und der Bezirk weist auf den Staat,
in dem er liegt, und umgekehrt). Ferner kann für jeden Ort ein kleinstes begrenzendes
Rechteck berechnet werden. Das kleinste begrenzende Rechteck für jeden
Ort kann auf der Basis der Segmente berechnet werden, die den Ort
bilden. Das kleinste begrenzende Rechteck für jeden Ort einer höheren Ebene
in der Hierarchie kann berechnet werden durch Verknüpfen der
kleinsten begrenzenden Rechtecke für die Orte der niedrigeren
Ebene, die innerhalb dieses Orts enthalten sind, und anschließendes Erzeugen
eines kleinsten begrenzenden Rechtecks für diese verknüpften Rechtecke.
Die kleinsten begrenzenden Rechtecke, die Orten zugehörig sind,
werden genutzt, um räumliche
Suchvorgänge
durch das Navigationsanwendungsprogramm zu vereinfachen.
-
B-Baum-Indexdateien können für die Namen
von Orten erzeugt werden. Diese Indexe enthalten die Namen von Orten
in der Reihenfolge der Identifikationsnummern für die Orte. Jeder Eintrag in
der Indexdatei hat einen Zeiger zu dem Datensatz des Orts in dem
zugehörigen
Paket. Ortsdaten können
unter Verwendung der Huffman-Codierung oder von anderen wohlbekannten
Komprimierungsverfahren komprimiert werden.
-
Die Ortsdaten werden in einer Orts-Zwischendatendatei
gespeichert. Ebenso wie die anderen Zwischendatendateien wird die
Ortsdatendatei während
ihrer Erzeugung paketisiert. Anders als die räumlich organisierten Daten
werden jedoch die Ortsdaten nicht räumlich paketisiert. Statt dessen
werden die Ortsdaten nur auf der Basis der Größe paketisiert (in der Reihenfolge,
in der die Ortsentitäten
angeordnet sind), so daß Pakete
der Orts-Zwischendatendatei mengenmäßig nahe bei, jedoch unterhalb
einer maximalen Paketmenge sind.
-
8. Postleitzahl-Zwischendatendatei
und Postleitzahlindexe
-
Ein Datenumwandlungsschichtprozeß erzeugt
Postleitzahl-Zwischendatendateien und -indexe unter Nutzung von
Postleitzahldaten aus den Postleitzahl- und Segmentüberführungsdateien.
Diese Dateien werden in den Speichergeladen, und die Postleitzahlen
werden in alphanumerischer Folge organisiert. Für jede Postleitzahl wird ein
kleinstes begrenzendes Rechteck auf der Basis der Segmente berechnet,
die die Postleitzahl haben. Kleinste begrenzende Rechtecke für Postleitzahlen
können
von den Navigationsanwendungsprogrammen genutzt werden, um räumliche
Suchvorgänge
auf der Basis von Postleitzahlen zu erleichtern.
-
B-Baum-Indexdateien können für Postleitzahlen
geschaffen werden und enthalten Zeiger zu dem einer Postleitzahl
zugeordneten Paket. Postleitzahldaten können mittels Huffman-Codierung
oder mit anderen wohlbekannten Komprimierungsverfahren komprimiert
werden.
-
Die Postleitzahldaten werden in einer
Postleitzahl-Zwischendatendatei gespeichert. Ebenso wie die Orts-Zwischendatendatei
wird die Postleitzahl-Zwischendatendatei
auf der Basis der Datenmengen paketisiert.
-
9. Zwischendatendatei
und Indexe für
navigationsfähige
Merkmalnamen
-
Ein Datenumwandlungsschichtprozeß erzeugt
eine Zwischendatendatei und Indexe für navigationsfähige Merkmalnamen
unter Nutzung der navigationsfähigen
Merkmalnamendaten aus der Namenüberführungsdatei
und der Ergänzungsüberführungsdatei.
Diese Dateien werden in den Speicher geladen, und die Namen werden
alphabetisch geordnet. B-Baum-Indexdateien können für navigationsfähige Merkmalnamen erzeugt
werden. Diese Indexdateien enthalten die Namensdatensätze, die
jeweils einen Zeiger zu dem dem Namen zugeordneten Paket enthalten.
Navigationsfähige
Merkmalnamensdaten können
mittels Huffman-Codierung oder mit anderen wohlbekannten Komprimierungsverfahren
komprimiert werden.
-
Die navigationsfähigen Merkmalnamensdaten werden
nach dem Basisnamen des navigationsfähigen Merkmalnamens in alphabetischer
Reihenfolge sortiert. Die sortierten navigationsfähigen Merkmalnamensdaten
werden paketisiert und in einer Zwischendatendatei gespeichert.
-
10. Zwischendatendatei
für navigationsfähige Merkmale
(nach Ort geordnet)
-
Navigationsfähige Merkmalsidentifikationsnummern
werden ebenfalls für
jeden Ort auf der niedrigsten Ebene der Ortshierarchie organisiert.
Der Ort oder die Orts, denen jedes navigationsfähige Merkmal zugeordnet ist,
wird aus den Segmenten bestimmt, die das navigationsfähige Merkmal
aufweisen. Dabei kann für
jedes derartige Segment der Verwaltungsbereich, in dem sich das
Segment befindet, aus der Segmentüberführungsdatei bestimmt werden,
und der Straßenname
für das
Segment kann aus der Ergänzungsüberführungsdatei bestimmt
werden. Somit kann ein Verwaltungsbereich mit dem Straßennamen
für ein
navigationsfähiges
Merkmal korreliert werden. Die Orte werden nach ihren Identifikationsnummern
organisiert. Die Identifikationsnummern von navigationsfähigen Merkmalen
für jeden
Ort werden innerhalb dieser Orte in aufsteigender Reihenfolge organisiert.
Außerdem
enthält
jeder Identifikationsnummerndatensatz von navigationsfähigen Merkmalen
auch die Identifikationsnummer(n) der Manövrierpakete, in denen das navigationsfähige Merkmal
in dem zugehörigen
Ort gefunden werden kann.
-
Diese Daten können von dem Navigationsanwendungsprogramm
genutzt werden, um Listen von nach Orten organisierten Straßen zu generieren
und die Segmente zu identifizieren, die einer Straßen-/Ort-Kombination
zugeordnet sind.
-
Mindestens zwei B-Baum-Indexdateien
können
für navigationsfähige Merkmale,
die ortweise geordnet sind, erzeugt werden. Die eine Indexdatei
nutzt die Ortsidentifikation als primären Schlüssel und den Basisnamen des
navigationsfähigen
Merkmals als einen sekundären
Schlüssel.
Diese Indexdatei kann dazu genutzt werden, navigationsfähige Merkmale
zu lokalisieren, die mit einem Basisnamen innerhalb eines Orts übereinstimmen.
Die andere Indexdatei nutzt die ID des navigationsfähigen Merkmals
als primären
Schlüssel.
Diese Indexdatei wird verwendet, wenn die ID des navigationsfähigen Merkmals
bereits bekannt ist (beispielsweise von einer früheren Suche) und zusätzliche
Informationen über
das navigationsfähige
Merkmal wie etwa seinen Ort gewünscht
werden.
-
11. Fahr-Zwischendatendatei
-
Fahrdaten umfassen Segmente und ihre
Adressenbereiche, Identifikationsnummern von navigationsfähigen Merkmalen,
Verkehrszeicheninformation sowie Querverweise zwischen Entitäten wie
beispielsweise zwischen Segmenten und navigationsfähigen Merkmalen
und umgekehrt.
-
Ein Datenumwandlungsschichtprozeß erzeugt
eine Fahr-Zwischendatendatei und -indexe unter Verwendung der Segment-,
Knoten- und Erweiterungsüberführungsdateien.
Zeiger werden konstruiert, um Beziehungen zwischen den verschiedenen
Entitäten
herzustellen. Beispielsweise stellen Zeiger Beziehungen zwischen
den Segmenten in den Streckendaten und den Namen von Orten in den
Ortsdaten her. Bei einem anderen Beispiel hat ein Segment Zeiger
zu den Datensätzen
der Knoten an den Endpunkten der Segmententität.
-
Generierte Formpunkte können berechnet
und mit den Fahrsegmenten gespeichert werden, oder alternativ können die
während
der Erzeugung der Strecken-Zwischendatendatei generierten Formpunkte
genutzt werden.
-
Die Positionsdaten für Knoten,
Formpunkte und künstliche
Formpunkte (die sich nun im Speicher befinden) werden genutzt, um
eine Peano-Schlüssel-Anordnung
aufzubauen. Alternativ kann die für die Strecken-Zwischendatendatei
erzeugte Peano-Schlüssel-Anordnung
genutzt werden.
-
Einigen der aus den Überführungsdateien
erhaltenen Daten zum Erzeugen der Fahrdatenpakete (wie etwa Namen
und Orte von navigationsfähigen
Merkmalen) können
eventuell bereits neue Identifikationsnummer im Zusammenhang mit
der vorhergehenden Erzeugung von Zwischendateien für andere
Datentypen erhalten haben. Daher werden die alten Identifikationsnummern
für diese
Entitäten
in die neuen umgewandelt unter Nutzung von Querverweistabellen,
die während
der Erstellung jeder Zwischendatei erzeugt werden.
-
Die Fahrdaten werden paketisiert
unter Verwendung des vorher erzeugten globalen kd-Baums. Die Fahrdaten
sollten so paketisiert sein, daß dem
kleinsten gewünschten
Füllprozentsatz
für jedes
Paket genügt ist.
Die Fahrdaten für
einen gegebenen geografischen Bereich sollten in dem Paket enthalten
sein, das den größten Bereich
abdeckt, in welchem dem kleinsten gewünschten Füllprozentsatz genügt ist.
Wenn die Fahrdaten, die in einem rechteckigen geografischen Bereich
umschlossen sind, der einem vorher definierten Paket entspricht,
die maximale Paketmenge überschreiten,
können
weitere Unterteilungen dieser Daten zu Gruppen, die kleineren rechteckigen
Bereichen entsprechen, auf die vorher beschriebene Weise vorgenommen
werden, um die gewünschte
Paketmenge zu erhalten.
-
Für
Fahrdaten können
während
des Definierens jedes Pakets Segmente einem Zellenindex zugeordnet
werden, der paketintern ist. Der Zellenindex kann eine Kombination
von geografischer Breite und Länge sein.
Ein Paket wird als in Zellen unterteilt dargestellt, wobei jede
Zelle als ein geografischer Bereich regelmäßiger Größe definiert ist wie etwa 256/100.000
von 1 Grad. Ein kleinstes begrenzendes Rechteck wird für jedes Segment
in dem Paket berechnet, und die Zellen, bei denen die Nordost- und
Südwestecken
des kleinsten begrenzenden Rechtecks des Segments liegen, werden
identifiziert. Diese Zellen werden dann dem Segment zugeordnet.
(Es ist möglich,
daß sowohl
die Nordost- als auch die Südwestecke
des kleinsten begrenzenden Rechtecks eines Segments in derselben
Zelle liegen, und in diesem Fall wird diese Information dem Segment entsprechend
zugeordnet.) Diese Anordnung von Segmentdaten vereinfacht die räumliche
Suche nach den Daten innerhalb des Pakets, indem eine schnelle Prüfung der
Zellen ermöglicht
wird, die ein Segment überspannt.
-
12. POI- und
Dritt-Zwischendatendateien
-
Unter Verwendung der POI-Überführungsdatei 930 liest
ein weiterer Datenumwandlungsschichtprozeß diese Daten und erzeugt eine
POI-Zwischendatendatei.
Bei der Erzeugung dieser Zwischendatei organisiert der Prozeß die POI-Daten
räumlich
in Pakete, die die gleichen Begrenzungen wie die Pakete von kartografischen
Daten in der kartografischen Zwischendatendatei haben. Wenn in dieser
Phase Drittdaten in dem Überführungsdatenformat
enthalten sind, werden diese Daten ebenfalls in einer Zwischendatei
und zugehörigen
Indexen organisiert. Bei der Erzeugung der Dritt-Zwischendatendatei werden die Daten
in Paketen organisiert, deren Begrenzungen die gleichen wie diejenigen
der kartografischen und POI-Pakete sind, die oben beschrieben werden.
-
13. Nachbar-kd-Baum-Zwischendatendatei
-
Nachdem sämtliche räumlichen Daten (Strecken-,
kartografische, Fahr- und kartografische Querverweisdaten) paketisiert
sind, speichert ein Umwandlungsschichtprozeß benachbarte kd-Bäume innerhalb
jedes Pakets für
jeden Typ von räumlichen
Daten. Ein Nachbar-kd-Baum innerhalb eines Pakets identifiziert
das Paket, den Stamm (die Stämme)
des Pakets (falls vorhanden), die Kinder (falls vorhanden) des Pakets
und die dem Paket benachbarten Pakete (falls vorhanden). Diese Nachbar-kd-Bäume können von
dem Navigationsanwendungsprogramm für räumliche Suchvorgänge und
für den
Zugriff auf ein Paket ausgehend von einem anderen genutzt werden.
-
14. Globaler-kd-Baum-Zwischendatendatei
-
Nachdem die Nachbar-kd-Bäume für jedes
der räumlich
organisierten Pakete definiert und gespeichert sind, wird der globale
kd-Baum in komprimierte Form umgewandelt und in einer Zwischendatei
gespeichert.
-
D. Isolationsschicht für physisches
Speicherformat
-
1. Überblick
-
Wie bereits gesagt wurde, liefert
der geografische Datensatzkompilierer 900 einen Ausgang 905.
Die Komponente des Kompilierers 900, die diesen Ausgang 905 erzeugt,
ist die Isolationsschicht 914 des physischen Speicherformats
(kurz: physische Speicherformatisolationsschicht). Die physische
Speicherformatisolationsschicht 914 erzeugt den Ausgang 905 aus
den Zwischendatendateien 927, die von der Datenübertragungsschicht 910 erzeugt
wurden. Die Isolationsschicht 914 bildet ein medienspezifisches
Format aus den Zwischendatendateien 927 entsprechend dem
oben beschriebenen Plazierungsschema.
-
Einer der Vorteile, die die physische
Speicherformatisolationsschicht 914 bietet, ist, daß sie den
Rest der geografischen Datensatzkompiliererprozesse wie etwa die
Datenumwandlungsschichtprozesse von den Details und Charakteristiken
bestimmter verschiedener Medientypen isoliert. Verschiedene Medientypen
können
aus unterschiedlichen Plazierungs- und Redundanzstrategien für die verschiedenen
Datenkomponenten Nutzen ziehen. Beispielsweise sind auf einer CD-ROM
die Daten, auf die ein Zugriff am häufigsten erwartet wird oder
die die schnellste Zugriffszeit erfordern, näher an der inneren Spur plaziert.
-
Gemäß 9C weist der von der physischen Speicherformatisolationsschicht 914 erzeugte
Ausgang 905 mindestens eine geografische Speichermediumdatendatei 1001 auf.
Die geografische Speichermediumdatendatei 1001 enthält alle
einzelnen Pakete, die in den von der Datenumwandlungsschicht 910 erzeugten Zwischendateien 927 enthalten
sind. In der Isolationsschicht 914 sind diese individuellen
paketisierten Zwischendateien 927 zu einer einzigen Datei
verkettet, um die Speichermediumdatei 1001 zu bilden.
-
In der Isolationsschicht 914 können mehr
als ein Kartendatenreichweitenbereich (DCA) zu einer einzigen geografischen
Speichermediumdatendatei 1001 vereinigt sein. Jeder Kartendatenreichweitenbereich bezieht
sich auf eine spezielle geografische Region wie etwa die Region 100 in 4A. Wenn eine Vielzahl von
Kartendatenreichweitenbereichen in einer einzigen geografischen
Datendatei 1001 enthalten ist, weist jeder Kartendatenreichweitenbereich
seine eigene Kartendatendateikennung auf. (Die Kartendatendateikennung
enthält
globale Daten, die auf ihren speziellen Datenreichweitenbereich
anwendbar sind, wie nachstehend erläutert wird.) Beispielsweise
enthält
die Datei 1001 zwei Kartendatenreichweitenbereiche und
weist somit zwei Kennungen 1004 und 1005 auf.
Eine Kartendatendateikennung wird in der geografischen Speichermediumdatendatei
unmittelbar vor den Datenpaketen plaziert, auf die sie bezogen ist.
-
Als Teil des Ausgangs 905 der
Isolationsschicht 914 ist eine Mediendatei oder -komponente 1009 vorgesehen.
Die Mediendatei/-komponente 1009 kann als separate Datei
gebildet sein, oder die Mediendatei 1009 kann bevorzugt
als eine paketisierte Komponente (d. h. eine "Medienkomponente") der geografischen Speichermediumdatendatei 1001 gebildet
sein. Die Medienkomponente 1009 enthält globale Daten, die das Speichermedium
insgesamt betreffen.
-
Die Plazierung von Daten innerhalb
der Datei 1001 erfolgt durch die Verkettung der verschiedenen Zwischendatendateien
in eine einzige Datei und die Erzeugung von Offsets (als "Paket-IDs") für jedes
Paket innerhalb jeder Zwischendatendatei. Die Paket-ID ist eine
Kombination aus Paketgröße, Redundanz
und Versatz bzw. Offset in bezug auf den Beginn der Datei 1001.
Daher ist die Paket-ID inhärent
von den Charakteristiken des Mediums abhängig. Die Paket-ID ermöglicht nicht
nur die rasche Lokalisierung eines bestimmten Pakets auf dem Medium,
sondern ermöglicht
dadurch, daß sie
Informationen trägt,
die die Paketgröße kennzeichnen,
auch jedem Navigationsanwendungsprogramm die richtige Zuweisung
von ausreichend Speicherplatz zum Laden des Pakets. Im Fall einer
CD-ROM bedeutet die Paket-ID
bevorzugt die Sektornummer. Bei einer PCMCIA-Karte bedeutet die
Paket-ID einen Byteversatz beispielsweise in Einheiten von 256 Bytes.
Ein Bit der Paket-ID wird genutzt, um die Anwesenheit von zusätzlichen
(redundanten) Kopien des Pakets zu bezeichnen. Die Orte der Kopien,
falls vorhanden, können
dann aus einer im Speicher vorhandenen Tabelle durch die Navigationsanwendung
bestimmt werden. Im Fall von Medien wie etwa einer CD-ROM reduziert
die Möglichkeit, unter
verschiedenen auf dem Medium gespeicherten Kopien wählen zu
können,
die Datenabrufzeiten, weil die dem CD-Lesekopf am nächsten befindliche
redundante Kopie gewählt
werden kann. Bei einer alternativen Ausführungsform können redundante
Kopien von Daten für
Indexinformation wie etwa den "globalen
kd-Baum" genutzt
werden.
-
Da sämtliche Daten in den Zwischendatendateien
paketisiert sind (mit der möglichen
Ausnahme von einigen globalen Daten), werden die Pakete zuerst in
einer bestimmten Sequenz besucht, bevor Paketverweise durch Paket-IDs
ersetzt werden können.
Zu diesem Zweck ist Paketplatzhalterinformation vorgesehen. Diese
Information ist in Form der vorher erzeugten Paketreferenznummer
(PRN) oder des Paketindex, der zu einem Byteversatz übertragen
werden kann. Der Paketindex (0–n)
ist ein grober sequentieller Index, der von jedem der Prozesse in
der Datenumwandlungsschicht 910, der Zwischendatendateien
erzeugt, generiert wird. Somit lädt
die Isolationsschicht 914 zuerst Pakete aus den Zwischendatendateien
und gibt die Pakete in einer vorbestimmten Folge gerundet an die
nächstliegenden
Begrenzungseinheiten. Dann werden die Paketreferenznummern durch
die neu generierten Paket-IDs ersetzt. Dieser zweite Schritt verlangt
die Kenntnis der speziellen betroffenen Datenstrukturen. Es gibt
zwei Arten von Paketen, die von diesem zweiten Schritt gehandhabt werden.
Paketreferenznummern, die für
Datenpakete lokal sind, erfordern, daß die entsprechende Paketkennung
für diesen
Pakettyp eingelesen wird und daß der
Zugriff auf die Pakettabellen, die die Paketreferenznummern enthalten,
durch die Kennung erfolgt. Die Paketreferenznummern, die in Indexpaketen
enthalten sind, erfordern, daß das
spezielle Indexdateipaket eingelesen wird und der Indexbaum durchlaufen
wird, um die Paketreferenznummern auf entsprechende Paket-IDs zu
aktualisieren. Da es räumliche
und nicht-räumliche
Indexe gibt, nutzt dieser Schritt die Informationen, die bei der
Schaffung der Indexbäume
entwickelt wurden.
-
Eine alternative Vorgehensweise für die Durchführung dieses
Prozesses sieht die Einrichtung einer Zusatzdatei vor, die einen
Versatz für
jede Paketreferenznummer enthält.
Die Aktualisierung der Indexbaum-Paketreferenznummern
würde einen
Zugriff auf den speziellen Ort entsprechend den Offsets und dann die
Nutzung der Paketreferenznummer an diesem Ort als Hinweis in eine
vorhandene Tabelle, die tatsächliche Paketoffsets
enthält,
bedeuten.
-
Eine andere alternative Vorgehensweise
besteht darin, daß der
Prozeß in
der Datenumwandlungsschicht, die die Zwischendatendatei erzeugt,
auch eine Funktion aufweist, die hinunter zu den Orten von Paketreferenznummern
navigiert, um der physischen Speicherformatisolationsschicht 914 zu
ermöglichen,
die Ersetzung von Paketreferenznummern durch Paket-IDs auszuführen. Die
nachstehend umrissene Methode basiert auf dieser letztgenannten
Vorgehensweise.
-
Zwei nützliche Nebenprodukte der Operation
der physischen Speicherformatisolationsschicht 914 sind
die Erstellung der Paketredundanztabellen und der Indexwurzelpaket-IDs.
-
Es ist zu beachten, daß für alle verschiedenen
Typen von Speichermedium die Ausgangsdateien einschließlich der
geografischen Datenausgangsdatei 1001 zuerst auf einer
Festplatte erzeugt werden. Die Übertragung
der Ausgangsdateien auf die eigentliche Speichereinrichtung 22 wie
etwa eine CD-ROM
ist die Funktion eines Mastering-Verfahrens, das im Stand der Technik
wohlbekannt ist.
-
2. Komponenten der physischen
-
Speicherformatisolationsschicht
-
Die Isolationsschicht 914 verwendet
als Eingänge
die Zwischendatendateien 927, die von der Datenumwandlungsschicht 910 erzeugt
wurden, und die Zusatzdateien 949, die von der Datenumwandlungsschicht 910 für jede der
Zwischendatendateien erzeugt wurden. Die Isolationsschicht kann
so konfigurierbar sein (entweder durch manuelle Eingabeaufforderungen
oder von einer Konfigurationsdatei), daß sie Eingänge akzeptiert, die einen oder
mehrere Datenreichweitebereichsnamen, den Typ des verwendeten Speichermediums und
ein Starteinheit (oder Positionseinheit) auf dem Speichermedium
kennzeichnen. Die Isolationsschicht verwendet außerdem eine Nachschlagedatei 1020 (als "data_map Datei" bezeichnet), die
die bevorzugte Datenplazierungsreihenfolge und Redundanzinformation
enthält.
Die Redundanz ist durch das wiederholte Auftreten von verschiedenen
Datendateieinheiten gekennzeichnet.
-
Wie oben gesagt wird, wird für jede Zwischendatendatei
eine Zusatzdatei (als "offset
descriptor Datei" (=
Offsetdeskriptor-Datei) bezeichnet) erzeugt. Die offset descriptor
Datei enthält
Paketoffsets und Paketgrößen für jedes
Paket in jeder Zwischendatendatei. Beispielsweise umfaßt die Zwischendatendatei 943 Datenpakete 943A, 943B, 943C ...,
und der Zwischendatendatei 943 ist eine Zusatzdatei 953 zugeordnet,
die die Paketoffsets und -größen für die Zwischendatendatei 943 enthält. Der
Paketoffset spiegelt den Byteoffset des Pakets ab dem Beginn der
Datei. Bei einer bevorzugten Ausführungsform existiert für jeden
Typ von Zwischendatendatei für
jede Schicht eine offset descriptor Datei. Beispielsweise ist den
Zwischendatendateien für
die Dateien der Streckenschichten 0 bis 4 jeweils eine eigene offset
descriptor Datei zugeordnet, die eine Tabelle von Byteoffsets enthält, die
implizit von der Paketreferenznummer innerhalb der Datei indexiert
werden. Bei einer bevorzugten Ausführungsform hat jede der Zwischendatendateien
einschließlich
der Index- und relevanten globalen Datendateien eine Dateikennung
unveränderlicher
Größe, die
die Gesamtzahl von Paketen bezeichnet, die in der Datei enthalten
sind.
-
Die Isolationsschicht verwendet ferner
eine Datei 1030 (als "fileinfo
descriptor Datei" ("Dateiinfo-Deskriptor-Datei") bezeichnet), die
Informationen enthält,
die für
jede Zwischendatendatei Dateierweiterungen und Suffixe sowohl für die Datendateieinheit
als auch für
die zugehörigen
offset descriptor Dateien auf der Platte identifizieren. Für jede Zwischendatendatei
enthält
die fileinfo descriptor Datei 1030 auch Informationen,
die zeigen, ob eine bestimmte Zwischendatendatei irgendwelche Paketreferenznummern
enthält
oder nicht.
-
3. Operation der physischen
Speicherformatisolationsschicht
-
In der Isolationsschicht wird jedes
Paket, bevor es nacheinander ausgelesen wird, untersucht, um festzustellen,
um wieviel die Größe des Pakets
vergrößert werden
sollte, so daß es
gleichmäßig der
Größe der Grenzeinheit
entspricht, die dem Speichermedium zugeordnet ist, auf das die Daten
geschrieben werden. Unterschiedliche Speichermedien können unterschiedliche
Größen von
Grenzeinheiten haben. Bei einer CD-ROM zum Beispiel ist die Grenzeinheit
2048 Bytes, und bei einer PCMCIA-Karte ist die Grenzeinheit 256 Bytes.
Wenn ein Paket nicht eine Größe hat,
die einem Vielfachen einer Grenzeinheit des Mediums exakt entspricht,
wird das Paket vergrößert durch
Hinzufügen
einer Füllmenge
(auch als "Rundungsjustierung" bezeichnet), um
das Paket auf eine Größe "aufzurunden", die dem nächstgrößten Vielfachen
einer Grenzeinheit entspricht. Da jedes Paket in den Zwischendatendateien
eine jeweils verschiedene Datenmenge haben kann, wird die Füllmenge
für jedes
Paket in jeder Zwischendatei separat berechnet.
-
Das Auffüllen eines Pakets, so daß seine
Größe dem nächstgrößeren Vielfachen
der Grenzeinheit auf dem Medium entspricht, macht es notwendig,
zuerst die Größe des Pakets
in Form der physischen Grenzeinheiten festzustellen. In Abhängigkeit
von dem Typ des Speichermediums bedeutet dies die Anwendung einer von
zwei Formeln: Bei einer CD-ROM, deren Grenzeinheiten 2*K sind (wobei
K = 1024 Bytes), sit die Rundungsjustierung gleich (parcel_size%2*K),
gerundet auf die nächste
2K-Einheit, wo parcel_size
gleich der Größe des Pakets
ist, wie es in der Zwischendatendatei existiert.
-
Bei einer PCMCIA-Karte, deren Grenzeinheiten
256 Bytes sind, ist die Rundungsjustierung gleich (parcel_size%256),
gerundet auf die nächste
256-Einheit, wo
parcel_size gleich der Größe des Pakets
ist, wie es in der Zwischendatendatei existiert.
-
Wenn andere Speichermedien als CD-ROM
oder PCMCIA-Karten verwendet werden, können andere Grenzeinheiten
mit anderer Größe vorliegen,
und die Rundungsjustierungen werden entsprechend modifiziert.
-
Die Isolationsschicht 914 wird
mit den geeigneten Parametern initialisiert, die den Typ des Speichermediums,
den Kartenreichweitenbereich usw. bezeichnen. Außerdem wird die Nachschlagedatei 1020 (d.
h. die data_map Datei) geladen, die die Reihenfolge und Redundanz
bezeichnet. Ein erster Durchlauf durch die Nachschlagedatei 1020 erfolgt
im Speicher, um die Gesamtzahl von Zwischendatendateien und die
Redundanzen zu ermitteln. Wenn eine bestimmte Datei für den Datenreichweitenbereich
nicht vorhanden ist, geht der Isolationsschichtprozeß zur nächsten Datei,
solange die fehlende Datei nicht Teil des Minimalsatzes ist. Der
Minimalsatz kann beispielsweise die globalen Daten, mindestens einen
Satz von Indexen und Zwischendatendateien aufweisen.
-
Unter Nutzung der Zusatzdatei (d.
h. der offset_descriptor Datei), die Größe und Ort jedes Pakets in der
ersten Zwischendatendatei bezeichnet, wird das Paket in den Speicher
gelesen und in die Speicherformatdatei 1001 auf der Platte
zurückgeschrieben,
nachdem es zur nächstgrößeren Grenzeinheit
gerundet wurde. Nach dem Einschreiben des Pakets unter Nutzung der
Zusatzdatei geht der Prozeß weiter
zum nächsten
Paket in der ersten Zwischendatendatei. Eine Rundungsjustierung
wird wiederum berechnet, und das Paket einschließlich der Rundungsjustierung
wird auf die Platte geschrieben. Der Prozeß wird fortgesetzt, bis sämtliche Pakete
in der ersten Zwischendatendatei aufgefüllt und auf Platte geschrieben
sind. Während
die Pakete auf die Platte geschrieben werden, wird jedem der Pakete
eine Paket-ID zugeordnet. Jedes Paket erhält eine eindeutige ID, und
bei einer bevorzugten Ausführungsform
repräsentiert
die Paket-ID eine Kombination des Offsets vom Beginn der physischen
Speicherformatdatendatei 1001 plus die Größe des Pakets
(unter Berücksichtigung
der Rundungsjustierung) plus Redundanzinformation.
-
Nachdem die Pakete aus der ersten
Zwischendatendatei aufgefüllt
sind, ihnen Paket-IDs zugeordnet sind und sie auf die Platte geschrieben
sind, wird die nächste
Zwischendatendatei (z. B. 945) in den Speicher geladen, und ihre
Pakete werden auf die gleiche Weise wie bei der ersten Zwischendatendatei
aufgefüllt,
mit Paket-IDs versehen und auf die Platte-geschrieben. Wie oben
erwähnt,
ist die Sequenz, in der die Zwischendatendateien gehandhabt werden,
durch Bezugnahme auf die Nachschlagedatei 1020 (data_map)
bestimmt. Während
die zweite und die folgenden Zwischendatendateien verarbeitet werden,
werden die Pakete in diesen Zwischendatendateien in die gleiche
Speicherformatdatendatei 1001 geschrieben. Somit werden
den Paketen in der zweiten und den folgenden Zwischendatendateien
Paket-IDs zugeordnet, die Offsets (plus Paketgrößen) von dem Beginn derselben
Speicherformatdatei 1001 sind, die bereits die Pakete enthält, die
von der ersten Zwischendatendatei eingeschrieben wurden. Für die eventuell
vorhandenen redundanten Pakete wird der gleiche Prozeß angewandt,
der so erweitert ist, daß er
neue Sätze
von Paket IDs akzeptieren kann. Am Ende dieses Prozesses sind Paket-IDs
für alle
Datentypen erzeugt worden, die in der data_map Datei existieren
und auf dem Speichermedium verfügbar
sind. Bei einer bevorzugten Ausführungsform
sind alle Pakete von all den verschiedenen Zwischendatendateien
für eine
Datenbankregion in einer einzigen Datendatei in einem nach Regionen
gegliederten Speicherformat enthalten (d. h. alle Zwischendatendateien
sind in einem Prozeß vom Verkettungstyp
verschmolzen worden).
-
Nachdem sämtliche Pakete von den Zwischendatendateien
in der Speicherformatdatendatei verkettet worden sind, aktualisiert
ein Isolationsschichtprozeß sämtliche
Paketreferenznummern in den Datenpaketen, die auf die Platte geschrieben
wurden. Viele der Daten einschließlich der Indexdateien enthalten
Verweise auf andere Daten entweder innerhalb desselben Pakets oder
in anderen Paketen. Um die Operation der Navigationsanwendungsfunktionen
zu verbessern, werden diese Verweise auf andere Daten aktualisiert,
so daß sie die
zugeordnete Paket-ID enthalten. Da der vorhergehende Isolationsschichtprozeß allen
Paketen neue Paket-ID zugewiesen hat, müssen sämtliche paketinternen Paketverweise
(die vorher zugewiesenen Paketreferenznummern) unter Nutzung der
neu zugewiesenen Paket-IDs aktualisiert werden. Bei einer bevorzugten Ausführungsform
enthält
die Nachschlagedatei (data_map) Informationen, die die Arten von
Zwischendatendateien identifizieren, die Pakete enthalten, die Paketreferenznummern
haben, die aktualisiert werden müssen.
Ein Prozeß in
der Isolationsschicht bildet eine Tabelle, die für jedes auf die Platte geschriebene
Paket die Paket-ID und die Paketreferenznummer, die dem Paket vorher
zugewiesen war, verfolgt. Für
diejenigen Zwischendatendateien, die Pakete enthalten, die eine
Aktualisierung benötigen,
nutzt der Isolationsschichtprozeß die Nachschlagedatei, um
Offsets zu Paketreferenznummern in den Paketen zu identifizieren.
Alle Paketreferenznummern in sämtlichen
Paketen werden lokalisiert und durch die geeignete Paket-ID ersetzt.
-
Wie oben gesagt wird, kann in der
physischen Speicherformatdatendatei 1001 mehr als ein Kartenreichweitenbereich
(d. h. Datenbankregion) enthalten sein. Im Fall von weiteren Kartenreichweitenbereichen, die
in derselben physischen Speicherformatdatendatei 1001 enthalten
sind, folgt man dann dem obigen Prozeß. Alternativ können zusätzliche
Kartenreichweitenbereiche in separaten physischen Speicherformatdatendateien
enthalten sein.
-
Diese physische Speicherformatdatendatei 1001 wird
in einem Mastering-Prozeß 917 verwendet,
in dem die Datei 1001 auf das Speichermedium geschrieben wird.
Wenn die Ausgangsdatei auf das Speichermedium geschrieben wird,
behält
sie die in 9C gezeigte
Organisation. Wenn die Ausgangsdatei 1001 auf dem physischen
Speichermedium wie etwa einer CD-ROM gespeichert ist, erlaubt die
Paket-ID-Information eine rasche Lokalisierung der Daten auf dem
Medium, weil die Paket-ID-Verweise in den Daten direkt den Orten
auf dem Speichermedium entsprechen. Bei der oben beschriebenen Ausführungsform
repräsentiert
also die Paket-ID einen Versatz (plus Paketgröße) vom Start der einzigen
auf dem Medium gespeicherten Kartendatendatei. Diese Information
kann genutzt werden, um die Position auf dem Medium, wo Daten gespeichert sind,
direkt zu lokalisieren. Dadurch erhält man das Potential für die Steigerung
der Geschwindigkeit und Operation der Navigationsanwendungsfunktionen,
die die geografischen Daten auf dem Speichermedium nutzen.
-
VI. ALTERNATIVE AUSFÜHRUNGSFORMEN
-
Bei weiteren alternativen Ausführungsformen
kann das Navigationssystem eine drahtlose Nachrichtenverbindung
enthalten, um einige oder sämtliche
Daten, die es nutzt, von entfernten oder zentralen Stellen zu erhalten.
Bei solchen alternativen Ausführungsformen
können
die geografischen Daten von einer entfernten oder zentralen Stelle
bereitgestellt werden, oder alternativ kann ein Teil oder die gesamte
Information über Funkverbindungen
verfügbar
sein. Beispielsweise können
Aktualisierungen oder Echtzeit-Verkehrsinformationen über drahtlose
Nachrichtenverbindungen geliefert werden, um eine geografische Datenbank,
die in einem bordeigenen Navigationssystem eines Fahrzeugs angebracht
ist, zu ergänzen.
-
Die vorstehende genaue Beschreibung
ist nur als beispielhaft und nicht einschränkend zu betrachten, und es
versteht sich, daß die
nachfolgenden Patentansprüche
den Umfang der Erfindung definieren sollen.