DE69725677T2 - Vorrichtung und Verfahren zum Speichern von geographischen Daten auf einem physikalischen Speichermedium - Google Patents

Vorrichtung und Verfahren zum Speichern von geographischen Daten auf einem physikalischen Speichermedium Download PDF

Info

Publication number
DE69725677T2
DE69725677T2 DE69725677T DE69725677T DE69725677T2 DE 69725677 T2 DE69725677 T2 DE 69725677T2 DE 69725677 T DE69725677 T DE 69725677T DE 69725677 T DE69725677 T DE 69725677T DE 69725677 T2 DE69725677 T2 DE 69725677T2
Authority
DE
Germany
Prior art keywords
data
geographic
package
segment
records
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69725677T
Other languages
English (en)
Other versions
DE69725677D1 (de
Inventor
Vijaya S. Hoffman Estates Israni
Richard A. Hebron Ashby
Paul M. Chicago Bouzide
John C. Arlington Heights Jasper
Robert P. Wooddale Fernekes
Gregory M. Westmont Nyczak
Nicholas E. Oak Park Smith
David S. Highland Park Lampert
James A. Palatine Meek
Aaron I. Palatine Crane
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Here North America LLC
Original Assignee
Navigation Technologies Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Navigation Technologies Corp filed Critical Navigation Technologies Corp
Application granted granted Critical
Publication of DE69725677D1 publication Critical patent/DE69725677D1/de
Publication of DE69725677T2 publication Critical patent/DE69725677T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096805Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route
    • G08G1/096827Systems involving transmission of navigation instructions to the vehicle where the transmitted instructions are used to compute a route where the route is computed onboard
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/3867Geometry of map features, e.g. shape points, polygons or for simplified maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/0969Systems involving transmission of navigation instructions to the vehicle having a display in the form of a map
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids
    • G09B29/106Map spot or coordinate position indicators; Map reading aids using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Description

  • 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:
    Figure 00490001
  • 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.

Claims (17)

  1. Verfahren zum Speichern einer Mehrzahl von Datensätzen mit geographischen Daten (40) auf einem Speichermedium (22), wobei jeder Datensatz ein physisches Merkmal mit einer räumlichen Lage in einer geographischen Region (100) repräsentiert, dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte aufweist: Aufteilen der Mehrzahl von Datensätzen in eine erste und zweite Gruppe von Datensätzen, wobei die Datensätze in der ersten der Gruppen physische Merkmale repräsentieren, die geographische Lagen haben, die von einem ersten rechteckigen Unterbereich eingeschlossen werden, und die Datensätze in der zweiten der Gruppen physische Merkmale repräsentieren, die geographische Lagen haben, die in einem zweiten rechteckigen Unterbereich liegen, wobei der erste und der zweite rechteckige Unterbereich durch eine Unterteilung an einer Steile eines rechteckigen Bereiches ausgebildet werden, in dem die Lagen der physischen Merkmale gelegen sind, die durch die Mehrzahl der Datensätze in der ersten und zweiten Gruppe repräsentiert werden, und die Position der Unterteilung bestimmt wird durch Auswerten einer Mehrzahl von Versuchsunterteilungen des rechteckigen Bereiches und Auswählen einer der Mehrzahl von Versuchsunterteilungen, basierend auf den resultierenden Größen der ersten und zweiten Gruppe.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren weiterhin den folgenden Schritt aufweist: Vergleichen der resultierenden Größen der ersten und zweiten Gruppe, die aus der Auswertung der Mehrzahl von Versuchsunterteilungen abgeleitet werden, mit einem ersten Größenbereich, wobei der Teilungsschritt das Teilen der Mehrzahl von Datensätzen in eine erste und zweite Gruppe beinhaltet, und zwar basierend darauf, dass mindestens eine der Gruppen dem ersten Größenbereich entsprechend gebildet ist.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren weiterhin den folgenden Schritt aufweist: Vergleichen der resultierenden Größen der ersten und zweiten Gruppe, die aus der Auswertung der Mehrzahl von Versuchsunterteilungen abgeleitet werden, mit einem ersten Größenbereich, wobei der Teilungsschritt das Teilen der Mehrzahl von Datensätzen in eine erste und zweite Gruppe beinhaltet, und zwar basierend darauf, dass sowohl die erste als auch die zweite Gruppe dem ersten Größenbereich entsprechend gebildet wird.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der erste Größenbereich auf einem Füllungs-Prozentsatz, der zwischen 80% und 100% liegt, für ein Datenpaket basiert, das aus einer der Gruppen von Datensätzen gebildet ist.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren weiterhin den folgenden Schritt aufweist: Feststellen eines Seitenverhältnisses von mindestens einem Versuchsrechteck, dass bei jeder der Versuchsunterteilungen gebildet wird, wobei der Teilungsschritt darauf basiert, sowohl das Seitenverhältnis als auch die resultierenden Größen der Gruppen auszuwerten, die bei jeder der Versuchsunterteilungen gebildet werden.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Versuchsunterteilungen an einer Stelle m/2n an einer Seite des Rechteckes liegen, wobei n eine ganze Zahl zwischen und einschließlich 1 und 5 ist und m eine ganze Zahl zwischen und einschließlich 1 und (2n – 1) ist.
  7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren weiterhin den folgenden Schritt aufweist: Bilden eines Datenpakets aus einer von der ersten und zweiten Gruppe von Datensätzen nach der Auswertung, dass eine Größe der Gruppe eine vorgegebene, gewünschte maximale Datenpaketgröße nicht überschreitet.
  8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass nach dem Bestimmen, dass eine Größe von einer der ersten und zweiten Gruppe, die durch den Teilungsschritt gebildet worden sind, einen vorgegebenen Schwellenwert überschreitet, Aufteilen der einen Gruppe in eine weitere erste und zweite Gruppe durch Anwenden des gleichen Teilungsschrittes, der auf die Mehrzahl der Datensätze angewendet worden ist, auf die eine Gruppe.
  9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass nach dem Bestimmen, dass eine Größe einer der ersten und zweiten Gruppe, die durch den Teilungsschritt gebildet worden sind, einen vorgegebenen Schwellenwert überschreitet, Fortfahren darin, den Teilungsschritt auf die eine Gruppe und auf alle Gruppen anzuwenden, die aus dieser einen Gruppe gebildet worden sind, bis jede der Gruppen eine Größe hat, die eine vorgegebene, gewünschte maximale Datenpaketgröße nicht überschreitet.
  10. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Datensätze Straßenabschnitte in der geographischen Region (100) repräsentieren.
  11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass die Datensätze Streckenführungsdatensätze (48) sind, die Informationen über Fahrgeschwindigkeiten und Beschränkungen beim Wenden entlang jedes der Straßenabschnitte beinhalten.
  12. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass die Datensätze kartographische Datensätze (50) sind, die zum Anzeigen des Verlaufs der Straßenabschnitte auf einer Computeranzeige (27) verwendet werden.
  13. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren weiterhin den folgenden Schritt aufweist: Bilden eines Datenpakets aus einer der ersten und zweiten Gruppe von Datensätzen nach der Auswertung, dass eine Größe der Gruppe eine vorgegebene, gewünschte maximale Datenpaketgröße nicht überschreitet, wobei die Datenpaketgröße eine minimale Datenmenge repräsentiert, auf die von einem Navigationssystem (10) in einer einzelnen Zugriffsoperation zugegriffen werden kann.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass der Bildungsschritt weiterhin den folgenden Schritt aufweist: beim Bilden eines Datenpakets aus einer der ersten und zweiten Gruppe von Datensätzen Hinzufügen einer Menge von Füllzeichen zu der Gruppe von Datensätzen, so dass die Gruppe und die Füllzeichen zusammen die vorgegebene, gewünschte maximale Datenpaketgröße haben.
  15. Verfahren zum Erstellen einer geographischen Datenbasis (40) für eine geographische Region (100) zur Nutzung durch ein Navigations-Anwendungsprogramm (200), wobei die geographische Datenbasis (40) auf einem computer-lesbaren Medium (22) gespeichert ist, die geographische Datenbasis (40) eine Mehrzahl von Datensätzen aufweist, jeder Datensatz einem physischen Merkmal entspricht, das eine räumlich Lage in der geographischen Region (100) hat, und das Verfahren die folgenden Schritte aufweist: Anordnen der Datensätze mit geographischen Daten in Form einer Mehrzahl von Datenpaketen gemäß einem Verfahren, das in jedem Datenpaket Datensätze geographischer Daten speichert, die Merkmale repräsentieren, die räumliche Lagen benachbart zueinander aufweisen, wobei die in irgendeinem Datenpaket gespeicherten Datensätze Merkmale repräsentieren, deren Lagen in einem entsprechenden rechteckigen Bereich liegen, der dem Datenpaket zugeordnet ist und in der geographischen Region (100) liegt, dadurch gekennzeichnet, dass eine Größe und Lage jedes rechteckigen Bereiches, der einem Datenpaket zugeordnet ist, durch eine Reihe von Unterteilungen eines rechteckigen Bereiches bestimmt werden, in dem alle von der Mehrzahl von Datensätzen repräsentierten Merkmale liegen, wobei jede Unterteilung in der Reihe von Unterteilungen nach einer anfänglichen Unterteilung von einem rechteckigen Bereich ausgehend vorgenommen wird, der aus der vorangegangen Unterteilung herrührt, und jede Unterteilung eines rechteckigen Bereiches in weitere rechteckige Bereiche an einer Stelle des rechteckigen Bereiches vorgenommen wird, die auf einer Bewertung der Datenmengen basiert, die Merkmale repräsentieren, die in dem rechteckigen Bereich und jedem der weiteren rechteckigen Bereiche liegen, wobei die Bewertung auf einem Vergleich der Datenmengen mit einer Mehrzahl von Bereichen zulässiger Größen basiert, die von einem gewünschten Füllungs-Prozentsatz von Datenpaketen mit Daten abgeleitet werden.
  16. Einrichtung, die Mittel aufweist, die ausgebildet sind, um die Verfahrensschritte nach einem der Ansprüche 1 bis 15 auszuführen.
  17. Geographische Datenbasis, die auf einem computer-lesbaren Medium gespeichert ist, wobei die Datenbasis entsprechend der Vorgehensweise nach einem der Ansprüche 1 bis 15 formatiert ist.
DE69725677T 1996-10-25 1997-10-24 Vorrichtung und Verfahren zum Speichern von geographischen Daten auf einem physikalischen Speichermedium Expired - Lifetime DE69725677T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/740,295 US5968109A (en) 1996-10-25 1996-10-25 System and method for use and storage of geographic data on physical media
US740295 1996-10-25

Publications (2)

Publication Number Publication Date
DE69725677D1 DE69725677D1 (de) 2003-11-27
DE69725677T2 true DE69725677T2 (de) 2004-08-05

Family

ID=24975891

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69725677T Expired - Lifetime DE69725677T2 (de) 1996-10-25 1997-10-24 Vorrichtung und Verfahren zum Speichern von geographischen Daten auf einem physikalischen Speichermedium
DE69736082T Expired - Lifetime DE69736082T2 (de) 1996-10-25 1997-10-24 Vorrichtung und Verfahren zum Speichern von geographischen Daten auf einem physikalischen Speichermedium

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69736082T Expired - Lifetime DE69736082T2 (de) 1996-10-25 1997-10-24 Vorrichtung und Verfahren zum Speichern von geographischen Daten auf einem physikalischen Speichermedium

Country Status (6)

Country Link
US (2) US5968109A (de)
EP (2) EP0838663B1 (de)
JP (2) JP4079489B2 (de)
AT (2) ATE329230T1 (de)
CA (1) CA2219043C (de)
DE (2) DE69725677T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8803907B2 (en) 2007-11-27 2014-08-12 Mitsubishi Electric Corporation Map information processor and data structure of map information

Families Citing this family (337)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
US7629899B2 (en) * 1997-10-22 2009-12-08 Intelligent Technologies International, Inc. Vehicular communication arrangement and method
US20040139049A1 (en) 1996-08-22 2004-07-15 Wgrs Licensing Company, Llc Unified geographic database and method of creating, maintaining and using the same
US6272457B1 (en) * 1996-09-16 2001-08-07 Datria Systems, Inc. Spatial asset management system that time-tags and combines captured speech data and captured location data using a predifed reference grammar with a semantic relationship structure
US6047280A (en) * 1996-10-25 2000-04-04 Navigation Technologies Corporation Interface layer for navigation system
US5978730A (en) * 1997-02-20 1999-11-02 Sony Corporation Caching for pathfinding computation
US6512857B1 (en) * 1997-05-09 2003-01-28 Sarnoff Corporation Method and apparatus for performing geo-spatial registration
US6597818B2 (en) 1997-05-09 2003-07-22 Sarnoff Corporation Method and apparatus for performing geo-spatial registration of imagery
US6047234A (en) * 1997-10-16 2000-04-04 Navigation Technologies Corporation System and method for updating, enhancing or refining a geographic database using feedback
US20080154629A1 (en) * 1997-10-22 2008-06-26 Intelligent Technologies International, Inc. Vehicle Speed Control Method and Arrangement
US10358057B2 (en) * 1997-10-22 2019-07-23 American Vehicular Sciences Llc In-vehicle signage techniques
US8209120B2 (en) * 1997-10-22 2012-06-26 American Vehicular Sciences Llc Vehicular map database management techniques
JP3546680B2 (ja) * 1998-01-26 2004-07-28 トヨタ自動車株式会社 ナビゲーション装置
US7266560B2 (en) 1998-01-30 2007-09-04 Navteq North America, Llc Parcelized geographic data medium with internal spatial indices and method and system for use and formation thereof
JP3927304B2 (ja) 1998-02-13 2007-06-06 トヨタ自動車株式会社 ナビゲーション用地図データアクセス方法
US6144338A (en) * 1998-03-17 2000-11-07 Prc Public Sector. Inc. Predictive drop and load algorithm for an object-based geographical information system
US6370523B1 (en) * 1998-03-27 2002-04-09 Bellsouth Intellectual Property Corporation System and methods for determining a desired listing using an intersection of coverage areas and a search region
US6073076A (en) * 1998-03-27 2000-06-06 Navigation Technologies Corporation Memory management for navigation system
US6081624A (en) * 1998-06-01 2000-06-27 Autodesk, Inc. Spatial index compression through spatial subdivision encoding
WO1999058934A1 (en) * 1998-05-08 1999-11-18 Mannesmann Vdo Ag Method for producing a storage medium with a map
US6167394A (en) * 1998-05-11 2000-12-26 General Electric Company Information management system with remote access and display features
US6732120B1 (en) * 1998-09-03 2004-05-04 Geojet Information Solutions Inc. System and method for processing and display of geographical data
US6393149B2 (en) 1998-09-17 2002-05-21 Navigation Technologies Corp. Method and system for compressing data and a geographic database formed therewith and methods for use thereof in a navigation application program
US6438561B1 (en) * 1998-11-19 2002-08-20 Navigation Technologies Corp. Method and system for using real-time traffic broadcasts with navigation systems
US6212474B1 (en) 1998-11-19 2001-04-03 Navigation Technologies Corporation System and method for providing route guidance with a navigation application program
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US8630795B2 (en) 1999-03-11 2014-01-14 American Vehicular Sciences Llc Vehicle speed control method and arrangement
JP4559555B2 (ja) * 1999-03-16 2010-10-06 株式会社日立製作所 立体地図表示方法およびナビゲーション装置
FR2793935B1 (fr) * 1999-05-21 2001-08-17 Isweb Procede de visualisation de lieux geographiques
US6460046B1 (en) * 1999-06-01 2002-10-01 Navigation Technologies Corp. Method and system for forming, storing and using sets of data values
WO2001001370A1 (en) * 1999-06-24 2001-01-04 Telia Ab Map service
JP2001012957A (ja) * 1999-06-29 2001-01-19 Mitsubishi Electric Corp カーナビゲーション用地図更新システムおよびカーナビゲーション端末
US6587601B1 (en) 1999-06-29 2003-07-01 Sarnoff Corporation Method and apparatus for performing geo-spatial registration using a Euclidean representation
US6278935B1 (en) * 1999-07-23 2001-08-21 Navigation Technologies Corp. Method and system for providing instructions about tollways with a navigation system
US7107286B2 (en) 1999-07-26 2006-09-12 Geoqwest International Inc. Integrated information processing system for geospatial media
US6681231B1 (en) 1999-07-26 2004-01-20 The Real Estate Cable Network, Inc. Integrated information processing system for geospatial media
JP3944671B2 (ja) * 1999-08-06 2007-07-11 アイシン・エィ・ダブリュ株式会社 ナビゲーション装置
US6665784B2 (en) * 1999-09-03 2003-12-16 Roxio, Inc. Method for writing and reading data to and from a compact disc media
DE19944938A1 (de) * 1999-09-20 2001-03-22 Mannesmann Vdo Ag Navigationssystem mit erweiterter Anzeigefunktion
US7120638B1 (en) * 1999-09-21 2006-10-10 International Business Machines Corporation Method, system, program, and data structure for cleaning a database table
US6700574B1 (en) * 1999-10-29 2004-03-02 Siemens Transportation Systems, Inc. Spatial data object indexing engine
JP3494143B2 (ja) * 1999-11-18 2004-02-03 トヨタ自動車株式会社 経路案内情報提供システムおよび経路案内情報提供方法
JP2001159525A (ja) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp ナビゲーション装置および記録媒体
JP3621317B2 (ja) * 1999-11-30 2005-02-16 三菱電機株式会社 車載情報処理装置
US6826472B1 (en) * 1999-12-10 2004-11-30 Tele Atlas North America, Inc. Method and apparatus to generate driving guides
US6415226B1 (en) * 1999-12-20 2002-07-02 Navigation Technologies Corp. Method and system for providing safe routes using a navigation system
DE19963766A1 (de) * 1999-12-30 2001-07-05 Bosch Gmbh Robert Verfahren zum Betrieb eines Navigationssystems
DE19963765A1 (de) * 1999-12-30 2001-07-05 Bosch Gmbh Robert Verfahren zum Betrieb eines Navigationssystems
JP2001236717A (ja) * 2000-02-18 2001-08-31 Pioneer Electronic Corp 情報記録再生装置
WO2001063456A2 (en) * 2000-02-22 2001-08-30 Pointserve, Inc. Data formats and usage for massive point to point route calculation
US6324470B1 (en) 2000-03-07 2001-11-27 Navigation Technologies Corporation Method and system for representing restricted driving maneuvers
US6587787B1 (en) * 2000-03-15 2003-07-01 Alpine Electronics, Inc. Vehicle navigation system apparatus and method providing enhanced information regarding geographic entities
US6601073B1 (en) * 2000-03-22 2003-07-29 Navigation Technologies Corp. Deductive database architecture for geographic data
US7743074B1 (en) * 2000-04-05 2010-06-22 Microsoft Corporation Context aware systems and methods utilizing hierarchical tree structures
WO2001088742A1 (en) * 2000-05-12 2001-11-22 Braun Huon Starr Interactive system for processing and retrieving data relating to a particular destination via a communication device
US7043363B2 (en) * 2002-10-10 2006-05-09 Sirf Technology, Inc. Host based satellite positioning systems
US6829690B1 (en) * 2000-05-23 2004-12-07 Navteq North America, Llc Method and system for accessing spatially organized geographic data in blocks
US6381537B1 (en) 2000-06-02 2002-04-30 Navigation Technologies Corp. Method and system for obtaining geographic data using navigation systems
US8073565B2 (en) 2000-06-07 2011-12-06 Apple Inc. System and method for alerting a first mobile data processing system nearby a second mobile data processing system
US6456234B1 (en) 2000-06-07 2002-09-24 William J. Johnson System and method for proactive content delivery by situation location
US8060389B2 (en) 2000-06-07 2011-11-15 Apple Inc. System and method for anonymous location based services
US20010051973A1 (en) * 2000-06-08 2001-12-13 Poi Systems, Inc. System, method and computer program product for a locator service
AU2001213635A1 (en) * 2000-06-20 2002-01-02 Globexplorer, Inc. Method, system and computer program product for delivering spatially referenced information in a global computer network
DE10033193A1 (de) * 2000-07-07 2002-01-17 Bosch Gmbh Robert Verfahren und Anordnung zur Codierung, zur Decodierung und/oder zur Übertragung von Ortsinformationen
US6977630B1 (en) 2000-07-18 2005-12-20 University Of Minnesota Mobility assist device
US20050149251A1 (en) * 2000-07-18 2005-07-07 University Of Minnesota Real time high accuracy geospatial database for onboard intelligent vehicle applications
US7375728B2 (en) * 2001-10-01 2008-05-20 University Of Minnesota Virtual mirror
US6983203B1 (en) * 2000-07-28 2006-01-03 Alpine Electronics, Inc. POI icon display method and navigation system
US6591270B1 (en) * 2000-07-28 2003-07-08 Navigation Technologies Corporation Method for organizing map data
WO2002016874A1 (de) * 2000-08-24 2002-02-28 Siemens Aktiengesellschaft Verfahren zum gewinnen einer kartendarstellung und navigationsgerät
US6587781B2 (en) 2000-08-28 2003-07-01 Estimotion, Inc. Method and system for modeling and processing vehicular traffic data and information and applying thereof
US6741993B1 (en) * 2000-08-29 2004-05-25 Towers Perrin Forster & Crosby, Inc. Competitive rewards benchmarking system and method
US6912462B2 (en) * 2000-08-31 2005-06-28 Sony Corporation Information processing apparatus, information processing method and program storage media
US6703947B1 (en) 2000-09-22 2004-03-09 Tierravision, Inc. Method for organizing and compressing spatial data
US6895126B2 (en) * 2000-10-06 2005-05-17 Enrico Di Bernardo System and method for creating, storing, and utilizing composite images of a geographic location
US7890989B1 (en) * 2000-10-24 2011-02-15 Sony Corporation Automated context-sensitive updating on content in an audiovisual storage system
US6397143B1 (en) * 2000-10-26 2002-05-28 George Peschke Layout based method for map navigation
US7987186B1 (en) * 2000-11-06 2011-07-26 Navteq North America, Llc Method and system for wavelet-based representation and use of cartographic data
US7689621B1 (en) * 2000-11-06 2010-03-30 Navteq North America, Llc Multi-dimensional spatial index for a geographic database
DE10061646A1 (de) * 2000-12-11 2002-06-27 Nokia Mobile Phones Ltd Navigationssystem, sowie Bestendteile und Methode für ein solches Navigationssystem
WO2002052227A1 (es) * 2000-12-22 2002-07-04 Geofactory Technologies, S.A. Sistema de visualizacion de mapas digitales en internet
US7493565B2 (en) * 2000-12-22 2009-02-17 Microsoft Corporation Environment-interactive context-aware devices and methods
US8924506B2 (en) 2000-12-27 2014-12-30 Bradium Technologies Llc Optimized image delivery over limited bandwidth communication channels
US6385533B1 (en) * 2001-01-03 2002-05-07 Navigation Technologies Corp. Method and system using dynamic profiling in a mobile environment for collecting data for a geographic database
US6781599B2 (en) * 2001-01-04 2004-08-24 At&T System and method for visualizing massive multi-digraphs
US6526354B2 (en) * 2001-02-01 2003-02-25 Schlumberger Technology Corporation Sonic well logging for alteration detection
US7283987B2 (en) * 2001-03-05 2007-10-16 Sap Ag Compression scheme for improving cache behavior in database systems
EP1241447A1 (de) * 2001-03-13 2002-09-18 Matsushita Electric Industrial Co., Ltd. Informationsausgabegerät und System zur Bereitstellung von Kartographischen Informationen
US6427119B1 (en) * 2001-04-16 2002-07-30 General Motors Corporation Method and system for providing multiple entry points to a vehicle navigation route
US6691128B2 (en) 2001-04-19 2004-02-10 Navigation Technologies Corp. Navigation system with distributed computing architecture
US6725156B2 (en) 2001-05-10 2004-04-20 Navigation Technologies Corp. Method and system for providing backup driving instructions with a navigation system
DK1402457T3 (da) * 2001-06-22 2011-05-02 Caliper Corp System til trafikdatastyring og -simulering
US7080065B1 (en) * 2001-06-22 2006-07-18 Oracle International Corporation Query pruning using interior rectangles in an R-tree index
US7219108B2 (en) * 2001-06-22 2007-05-15 Oracle International Corporation Query prunning using exterior tiles in an R-tree index
US20030009371A1 (en) * 2001-07-03 2003-01-09 Ravi Gauba Interactive decision-making scenarios in an audio/video broadcast
US7552008B2 (en) * 2001-07-18 2009-06-23 Regents Of The University Of Minnesota Populating geospatial database for onboard intelligent vehicle applications
US20030028871A1 (en) * 2001-07-20 2003-02-06 Annie Wang Behavior profile system and method
US20030025720A1 (en) * 2001-08-03 2003-02-06 Clement Lau System and method for common interest analysis among multiple users
US6912549B2 (en) * 2001-09-05 2005-06-28 Siemens Medical Solutions Health Services Corporation System for processing and consolidating records
US7752266B2 (en) 2001-10-11 2010-07-06 Ebay Inc. System and method to facilitate translation of communications between entities over a network
US8392457B1 (en) 2001-10-12 2013-03-05 Navteq B.V. System and method for forming a map database with no-outlet and circular segments
US6609063B1 (en) * 2001-10-12 2003-08-19 Navigation Technologies Corp. System and method for using a map database with attributed no-outlet and circular segments
US20030074447A1 (en) * 2001-10-16 2003-04-17 Rafey Richter A. Intuitive mapping between explicit and implicit personalization
US20030115211A1 (en) * 2001-12-14 2003-06-19 Metaedge Corporation Spatial intelligence system and method
US6424912B1 (en) * 2001-11-09 2002-07-23 General Motors Corporation Method for providing vehicle navigation instructions
US6837427B2 (en) * 2001-11-21 2005-01-04 Goliath Solutions, Llc. Advertising compliance monitoring system
US7374096B2 (en) 2001-11-21 2008-05-20 Goliath Solutions, Llc Advertising compliance monitoring system
US6951305B2 (en) * 2001-11-21 2005-10-04 Goliath Solutions, Llc. Advertising compliance monitoring system
US20030112276A1 (en) * 2001-12-19 2003-06-19 Clement Lau User augmentation of content
US6581003B1 (en) * 2001-12-20 2003-06-17 Garmin Ltd. Systems and methods for a navigational device with forced layer switching based on memory constraints
US6545637B1 (en) 2001-12-20 2003-04-08 Garmin, Ltd. Systems and methods for a navigational device with improved route calculation capabilities
US7277794B1 (en) 2001-12-21 2007-10-02 Garmin Ltd. Guidance with feature accounting for insignificant roads
US6975940B1 (en) 2001-12-21 2005-12-13 Garmin Ltd. Systems, functional data, and methods for generating a route
US6847890B1 (en) 2001-12-21 2005-01-25 Garmin Ltd. Guidance with feature accounting for insignificant roads
US7246102B2 (en) * 2001-12-21 2007-07-17 Agere Systems Inc. Method of improving the lookup performance of three-type knowledge base searches
US6892135B1 (en) 2001-12-21 2005-05-10 Garmin Ltd. Navigation system, method and device with automatic next turn page
US6909965B1 (en) * 2001-12-28 2005-06-21 Garmin Ltd. System and method for creating and organizing node records for a cartographic data map
US20030135480A1 (en) * 2002-01-14 2003-07-17 Van Arsdale Robert S. System for updating a database
US7092957B2 (en) 2002-01-18 2006-08-15 Boundary Solutions Incorporated Computerized national online parcel-level map data portal
SE524109C2 (sv) * 2002-01-21 2004-06-29 Idevio Ab Anordning och bärare för tillhandahållande av kartinformationsdata
US6985903B2 (en) * 2002-01-25 2006-01-10 Qualcomm, Incorporated Method and system for storage and fast retrieval of digital terrain model elevations for use in positioning systems
US6622086B2 (en) 2002-02-11 2003-09-16 Horizon Navigation, Inc. Method of representing a location in a database for a vehicle navigation system
US20030158668A1 (en) * 2002-02-15 2003-08-21 Anderson James J. System and method of geospatially mapping topological regions and displaying their attributes
JP4004818B2 (ja) * 2002-02-28 2007-11-07 松下電器産業株式会社 位置情報伝達装置及び方法
US7209051B2 (en) * 2002-03-05 2007-04-24 University Of Minnesota Intersection assistance system and method
US6915310B2 (en) * 2002-03-28 2005-07-05 Harris Corporation Three-dimensional volumetric geo-spatial querying
US6937936B2 (en) * 2002-04-25 2005-08-30 Aisin Aw Co., Ltd. Navigation system
US7373353B2 (en) * 2002-05-10 2008-05-13 International Business Machines Corporation Reducing index size for multi-level grid indexes
US7383275B2 (en) * 2002-05-10 2008-06-03 International Business Machines Corporation Methods to improve indexing of multidimensional databases
US7143098B2 (en) * 2002-05-10 2006-11-28 International Business Machines Corporation Systems, methods, and computer program products to reduce computer processing in grid cell size determination for indexing of multidimensional databases
JP4400775B2 (ja) 2002-05-28 2010-01-20 パイオニア株式会社 ナビゲーション装置、この施設検索方法、このプログラム、および、このプログラムを記録する記録媒体
US6704648B1 (en) * 2002-05-29 2004-03-09 Navigation Technologies Corp. Bearing data for route guidance
JP2004020219A (ja) * 2002-06-12 2004-01-22 Denso Corp エリアの特定方法、エリアの特定装置、地図表示方法、地図表示装置および経路案内装置
US20090015595A1 (en) * 2002-06-27 2009-01-15 Tele Atlas North America, Inc. System and method for converting digital map information using displayable map information as an intermediary
US20090015596A1 (en) * 2002-06-27 2009-01-15 Tele Atlas North America, Inc. System and method for viewing and editing digital maps using a plug-in data abstraction layer for different digital map formats
US7082443B1 (en) 2002-07-23 2006-07-25 Navteq North America, Llc Method and system for updating geographic databases
EP1548686B1 (de) * 2002-07-30 2012-09-05 Xanavi Informatics Corporation Kartendatenprodukt und kartendatenprozessor
WO2004013739A2 (en) * 2002-08-05 2004-02-12 Metaedge Corporation Spatial intelligence system and method
US6847888B2 (en) * 2002-08-07 2005-01-25 Hrl Laboratories, Llc Method and apparatus for geographic shape preservation for identification
GB0220062D0 (en) * 2002-08-29 2002-10-09 Itis Holdings Plc Traffic scheduling system
AU2003259357B2 (en) * 2002-08-29 2009-08-13 Inrix Uk Limited Apparatus and method for providing traffic information
US6782319B1 (en) * 2002-11-26 2004-08-24 Navteq North America, Llc Method for organizing map data
JP2004198841A (ja) * 2002-12-19 2004-07-15 Pioneer Electronic Corp ナビゲーション装置及び方法、並びにコンピュータプログラム
US20040125114A1 (en) * 2002-12-31 2004-07-01 Hauke Schmidt Multiresolution image synthesis for navigation
US7305396B2 (en) * 2002-12-31 2007-12-04 Robert Bosch Gmbh Hierarchical system and method for on-demand loading of data in a navigation system
US6993538B2 (en) * 2003-01-28 2006-01-31 Microsoft Corporation System and process for identifying objects and/or points nearby a given object or point
US7099882B2 (en) * 2003-04-29 2006-08-29 Navteq North America, Llc Method and system for forming, updating, and using a geographic database
US8825356B2 (en) * 2003-05-09 2014-09-02 Dimitri Vorona System for transmitting, processing, receiving, and displaying traffic information
US7966301B2 (en) 2003-05-09 2011-06-21 Planeteye Company Ulc System and method for employing a grid index for location and precision encoding
US7475060B2 (en) * 2003-05-09 2009-01-06 Planeteye Company Ulc Browsing user interface for a geo-coded media database
US9286795B2 (en) * 2003-05-09 2016-03-15 Dimitri Vorona System for transmitting, processing, receiving, and displaying traffic information
JP2004362065A (ja) * 2003-06-02 2004-12-24 Denso Corp 地図情報検索装置、地図情報検索方法、及び地図情報検索プログラム
US7239989B2 (en) * 2003-07-18 2007-07-03 Oracle International Corporation Within-distance query pruning in an R-tree index
US7388519B1 (en) 2003-07-22 2008-06-17 Kreft Keith A Displaying points of interest with qualitative information
CA2436312C (en) * 2003-08-01 2011-04-05 Perry Peterson Close-packed, uniformly adjacent, multiresolutional, overlapping spatial data ordering
DE10335602A1 (de) * 2003-08-04 2005-03-03 Robert Bosch Gmbh Verfahren zur Aktualisierung von in einem navigablen Datenformat vorliegenden Kartendaten
DE10349263A1 (de) * 2003-10-20 2005-06-02 Siemens Ag Verfahren zur Zerlegung eines Straßennetzes aus Kanten und Knoten
US7031836B2 (en) * 2003-10-28 2006-04-18 Thales Navigation, Inc. Grid mapping utility for a GPS device
US7096117B1 (en) 2004-01-20 2006-08-22 Navteq North America, Llc Method and system of polyline generation for rendering a richly attributed representation of a geographic region
JP2005215729A (ja) * 2004-01-27 2005-08-11 Hitachi Global Storage Technologies Netherlands Bv データ伝送制御方法及び記憶装置
US7668845B1 (en) * 2004-02-18 2010-02-23 Microsoft Corporation C-tree for multi-attribute indexing
TWI344610B (en) * 2004-03-09 2011-07-01 Mitac Int Corp A method for auto-perform navigation software
US7539666B2 (en) * 2004-04-06 2009-05-26 International Business Machines Corporation Method, system and program for managing geographic data stored in a database
US7373244B2 (en) 2004-04-20 2008-05-13 Keith Kreft Information mapping approaches
US7743064B2 (en) * 2004-04-29 2010-06-22 Harris Corporation Media asset management system for managing video segments from fixed-area security cameras and associated methods
EP1752949A4 (de) * 2004-05-10 2010-07-07 Pioneer Corp Anzeigesteuereinrichtung, anzeigeverfahren, programm zur anzeigesteuerung, informationsaufzeichnungsmedium und aufzeichnungsmedium
JP2006010765A (ja) * 2004-06-22 2006-01-12 Mitsubishi Electric Corp 地図データ配信システム
GB0415072D0 (en) * 2004-07-05 2004-08-04 Whereonearth Ltd Geographical location indexing
US7620402B2 (en) 2004-07-09 2009-11-17 Itis Uk Limited System and method for geographically locating a mobile device
US7672778B1 (en) 2004-07-20 2010-03-02 Navteq North America, Llc Navigation system with downloaded map data
US20060033737A1 (en) * 2004-08-16 2006-02-16 Old William M Methods and system for visualizing data sets
US20060058953A1 (en) * 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060080032A1 (en) * 2004-09-07 2006-04-13 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060058951A1 (en) * 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060080031A1 (en) * 2004-09-07 2006-04-13 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060058952A1 (en) * 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US7606687B2 (en) * 2004-09-14 2009-10-20 Friendster, Inc. Proximity search methods using tiles to represent geographical zones
WO2008043172A1 (en) * 2006-10-13 2008-04-17 Peter Bandas Location-based information retrieval
JPWO2006046669A1 (ja) * 2004-10-28 2008-05-22 国立大学法人福井大学 データベース管理装置、方法、プログラム
US7389283B2 (en) * 2004-12-07 2008-06-17 International Business Machines Corporation Method for determining an optimal grid index specification for multidimensional data
US20060129919A1 (en) * 2004-12-15 2006-06-15 Kevin Edmundson Disparate GIS file format management system and method
US20060235856A1 (en) * 2004-12-16 2006-10-19 Halcrow Michael A Route generation for task completion by a location-aware device
KR100712966B1 (ko) * 2004-12-27 2007-05-02 주식회사 엔지스테크널러지 항법 서비스 방법 및 그에 따른 단말기
US7801897B2 (en) * 2004-12-30 2010-09-21 Google Inc. Indexing documents according to geographical relevance
DE102005042694A1 (de) * 2004-12-30 2006-07-20 Volkswagen Ag Navigationssystem für ein Kraftfahrzeug
US7894980B2 (en) * 2005-02-07 2011-02-22 International Business Machines Corporation Method and apparatus for estimating real-time travel times over a transportation network based on limited real-time data
JP4613075B2 (ja) * 2005-02-16 2011-01-12 クラリオン株式会社 地図処理装置、ナビゲーション装置及び地図表示方法
US7805317B2 (en) 2005-03-03 2010-09-28 Navteq North America, Llc Method of organizing map data for affinity relationships and application for use thereof
US7664597B2 (en) * 2005-03-31 2010-02-16 Alpine Electronics, Inc. Address input method and apparatus for navigation system
US7353034B2 (en) 2005-04-04 2008-04-01 X One, Inc. Location sharing and tracking using mobile phones or other wireless devices
US7991779B1 (en) * 2005-04-25 2011-08-02 Hewlett Packard Development Company, L.P. Method and apparatus for populating an index table
DE102005020154A1 (de) * 2005-04-29 2006-11-02 Volkswagen Ag Verfahren zum Steuern einer Kartenanzeige in einem Navigationssystem und Navigationssystem
EP1886239A1 (de) * 2005-05-31 2008-02-13 Siemens Medical Solutions USA, Inc. System und verfahren für datensensitive filterung bei der abfrage demografischer patientendaten
US20070016556A1 (en) * 2005-07-13 2007-01-18 Ann Seong W Destination searching system and method
KR100782822B1 (ko) * 2005-10-18 2007-12-06 삼성전자주식회사 위치 정보 제공 방법 및 장치, 위치 정보 처리 방법 및장치
EP1785696B1 (de) 2005-11-09 2011-10-05 Harman Becker Automotive Systems GmbH Bestimmung einer optimalen Route mit Karten-Kacheln
US20070218900A1 (en) 2006-03-17 2007-09-20 Raj Vasant Abhyanker Map based neighborhood search and community contribution
US8874489B2 (en) 2006-03-17 2014-10-28 Fatdoor, Inc. Short-term residential spaces in a geo-spatial environment
US9459622B2 (en) 2007-01-12 2016-10-04 Legalforce, Inc. Driverless vehicle commerce network and community
US7542846B2 (en) * 2006-02-07 2009-06-02 Alpine Electronics, Inc. Navigation system utilizing XML/SVG map data converted from geographic map data and layered structure of XML/SVG map data based on administrative regions
JP4878178B2 (ja) * 2006-02-28 2012-02-15 株式会社日立製作所 データ処理方法および装置並びにその処理プログラム
US7925320B2 (en) 2006-03-06 2011-04-12 Garmin Switzerland Gmbh Electronic device mount
US9064288B2 (en) 2006-03-17 2015-06-23 Fatdoor, Inc. Government structures and neighborhood leads in a geo-spatial environment
US8732091B1 (en) 2006-03-17 2014-05-20 Raj Abhyanker Security in a geo-spatial environment
US8738545B2 (en) 2006-11-22 2014-05-27 Raj Abhyanker Map based neighborhood search and community contribution
US9373149B2 (en) 2006-03-17 2016-06-21 Fatdoor, Inc. Autonomous neighborhood vehicle commerce network and community
US9098545B2 (en) 2007-07-10 2015-08-04 Raj Abhyanker Hot news neighborhood banter in a geo-spatial social network
US9070101B2 (en) 2007-01-12 2015-06-30 Fatdoor, Inc. Peer-to-peer neighborhood delivery multi-copter and method
US9002754B2 (en) 2006-03-17 2015-04-07 Fatdoor, Inc. Campaign in a geo-spatial environment
US9037516B2 (en) 2006-03-17 2015-05-19 Fatdoor, Inc. Direct mailing in a geo-spatial environment
US8965409B2 (en) 2006-03-17 2015-02-24 Fatdoor, Inc. User-generated community publication in an online neighborhood social network
US9071367B2 (en) 2006-03-17 2015-06-30 Fatdoor, Inc. Emergency including crime broadcast in a neighborhood social network
US7415448B2 (en) * 2006-03-20 2008-08-19 Microsoft Corporation Adaptive engine for processing geographic data
US20070236508A1 (en) * 2006-03-28 2007-10-11 Microsoft Corporation Management of gridded map data regions
US20070229538A1 (en) * 2006-03-31 2007-10-04 Research In Motion Limited Methods and apparatus for dynamically labeling map objects in visually displayed maps of mobile communication devices
KR100775769B1 (ko) * 2006-06-27 2007-11-12 포인트아이 주식회사 무선통신 환경에서 위치기반 경보 서비스 제공 방법 및시스템
US20080016066A1 (en) * 2006-06-30 2008-01-17 Tele Atlas North America, Inc. Adaptive index with variable compression
US7774133B2 (en) * 2006-07-05 2010-08-10 Sap Ag Method and apparatus for trip routing with configurable constraints
US8639782B2 (en) 2006-08-23 2014-01-28 Ebay, Inc. Method and system for sharing metadata between interfaces
US7310070B1 (en) 2006-08-23 2007-12-18 Goliath Solutions, Llc Radio frequency identification shelf antenna with a distributed pattern for localized tag detection
US20100114470A1 (en) * 2006-10-10 2010-05-06 Pioneer Corporation Route search apparatus, route search method, route search program and storage medium
ITRM20060552A1 (it) * 2006-10-13 2008-04-14 Andrea Carandini Procedimento e prodotto informatico per generare una mappa archeologica consultabile tramite navigazione
US7917292B1 (en) 2006-10-17 2011-03-29 Jpmorgan Chase Bank, N.A. Systems and methods for flood risk assessment
US8655595B1 (en) 2006-10-17 2014-02-18 Corelogic Solutions, Llc Systems and methods for quantifying flood risk
US8863245B1 (en) 2006-10-19 2014-10-14 Fatdoor, Inc. Nextdoor neighborhood social network method, apparatus, and system
US8065080B2 (en) * 2006-10-31 2011-11-22 At&T Intellectual Property I, Lp Location stamping and logging of electronic events and habitat generation
US8077927B1 (en) 2006-11-17 2011-12-13 Corelogic Real Estate Solutions, Llc Updating a database with determined change identifiers
US8542884B1 (en) 2006-11-17 2013-09-24 Corelogic Solutions, Llc Systems and methods for flood area change detection
US8649567B1 (en) 2006-11-17 2014-02-11 Corelogic Solutions, Llc Displaying a flood change map with change designators
DE102006057286A1 (de) * 2006-12-05 2008-06-12 Robert Bosch Gmbh Navigationseinrichtung
US7890509B1 (en) 2006-12-05 2011-02-15 First American Real Estate Solutions Llc Parcel data acquisition and processing
US20080235688A1 (en) * 2007-03-21 2008-09-25 Sapias, Inc. Enhanced Distance Calculation for Job Route Optimization
US20080281854A1 (en) * 2007-05-07 2008-11-13 Fatdoor, Inc. Opt-out community network based on preseeded data
US9292807B2 (en) * 2007-05-10 2016-03-22 Microsoft Technology Licensing, Llc Recommending actions based on context
US8290513B2 (en) 2007-06-28 2012-10-16 Apple Inc. Location-based services
US9109904B2 (en) 2007-06-28 2015-08-18 Apple Inc. Integration of map services and user applications in a mobile device
US8204684B2 (en) 2007-06-28 2012-06-19 Apple Inc. Adaptive mobile device navigation
US9066199B2 (en) 2007-06-28 2015-06-23 Apple Inc. Location-aware mobile device
US8332402B2 (en) 2007-06-28 2012-12-11 Apple Inc. Location based media items
US8385946B2 (en) 2007-06-28 2013-02-26 Apple Inc. Disfavored route progressions or locations
US8762056B2 (en) 2007-06-28 2014-06-24 Apple Inc. Route reference
US8774825B2 (en) 2007-06-28 2014-07-08 Apple Inc. Integration of map services with user applications in a mobile device
US8311526B2 (en) 2007-06-28 2012-11-13 Apple Inc. Location-based categorical information services
US8275352B2 (en) 2007-06-28 2012-09-25 Apple Inc. Location-based emergency information
US8108144B2 (en) 2007-06-28 2012-01-31 Apple Inc. Location based tracking
US8175802B2 (en) 2007-06-28 2012-05-08 Apple Inc. Adaptive route guidance based on preferences
US8554475B2 (en) 2007-10-01 2013-10-08 Mitac International Corporation Static and dynamic contours
US8977294B2 (en) 2007-10-10 2015-03-10 Apple Inc. Securely locating a device
US7996454B2 (en) * 2007-11-16 2011-08-09 Vns Portfolio Llc Method and apparatus for performing complex calculations in a multiprocessor array
US8355862B2 (en) 2008-01-06 2013-01-15 Apple Inc. Graphical user interface for presenting location information
US8401780B2 (en) * 2008-01-17 2013-03-19 Navteq B.V. Method of prioritizing similar names of locations for use by a navigation system
US8504945B2 (en) * 2008-02-01 2013-08-06 Gabriel Jakobson Method and system for associating content with map zoom function
US8490025B2 (en) * 2008-02-01 2013-07-16 Gabriel Jakobson Displaying content associated with electronic mapping systems
TWI361404B (en) 2008-02-18 2012-04-01 Ind Tech Res Inst Storage and search method for flag event on two-dimensional space
US9250092B2 (en) 2008-05-12 2016-02-02 Apple Inc. Map service with network-based query for search
US8644843B2 (en) 2008-05-16 2014-02-04 Apple Inc. Location determination
EP2159777A3 (de) 2008-05-30 2016-05-04 HERE Global B.V. Datenfilterung zur Identifizierung von Orten potentiell gefährlicher Bedingungen zum Fahrzeugbetrieb und deren Verwendung
JP5059191B2 (ja) * 2008-06-17 2012-10-24 パイオニア株式会社 データ作成装置、情報処理装置、データ作成方法、情報処理方法、データ作成プログラム、情報処理プログラム、および記録媒体
US8369867B2 (en) 2008-06-30 2013-02-05 Apple Inc. Location sharing
JP5275349B2 (ja) * 2008-07-07 2013-08-28 パイオニア株式会社 情報処理装置、情報作成装置、情報処理方法、情報作成方法、情報処理プログラム、情報作成プログラム、および記録媒体
US8595638B2 (en) * 2008-08-28 2013-11-26 Nokia Corporation User interface, device and method for displaying special locations on a map
US8359643B2 (en) 2008-09-18 2013-01-22 Apple Inc. Group formation using anonymous broadcast information
US20100082564A1 (en) * 2008-10-01 2010-04-01 Navteq North America, Llc Spatial Index for Locating Geographic Data Parcels Stored on Physical Storage Media
US9336695B2 (en) * 2008-10-13 2016-05-10 Yahoo! Inc. Method and system for providing customized regional maps
US8260320B2 (en) 2008-11-13 2012-09-04 Apple Inc. Location specific content
GB0822893D0 (en) * 2008-12-16 2009-01-21 Tele Atlas Bv Advanced speed profiles - Further updates
US8402058B2 (en) 2009-01-13 2013-03-19 Ensoco, Inc. Method and computer program product for geophysical and geologic data identification, geodetic classification, organization, updating, and extracting spatially referenced data records
GB0901588D0 (en) 2009-02-02 2009-03-11 Itis Holdings Plc Apparatus and methods for providing journey information
US8666367B2 (en) 2009-05-01 2014-03-04 Apple Inc. Remotely locating and commanding a mobile device
US8670748B2 (en) 2009-05-01 2014-03-11 Apple Inc. Remotely locating and commanding a mobile device
US8660530B2 (en) 2009-05-01 2014-02-25 Apple Inc. Remotely receiving and communicating commands to a mobile device for execution by the mobile device
US8255418B2 (en) * 2009-05-05 2012-08-28 Real Estate Portal Usa, Llc Networked computer system providing an integrated suite of web services and a geographic information system (GIS) for real property and land parcels
US20100321399A1 (en) * 2009-06-18 2010-12-23 Patrik Ellren Maps from Sparse Geospatial Data Tiles
US8725407B2 (en) * 2009-11-09 2014-05-13 United Parcel Service Of America, Inc. Enhanced location information for points of interest
US20110153266A1 (en) * 2009-12-23 2011-06-23 Regents Of The University Of Minnesota Augmented vehicle location system
US8301364B2 (en) * 2010-01-27 2012-10-30 Navteq B.V. Method of operating a navigation system to provide geographic location information
CN102859498A (zh) * 2010-04-16 2013-01-02 三菱电机株式会社 导航装置
JP5355784B2 (ja) * 2010-04-16 2013-11-27 三菱電機株式会社 データアクセス方法及びデータアクセス装置
US20120323492A1 (en) * 2010-04-16 2012-12-20 Takeo Sakairi Navigation system
US9355109B2 (en) * 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
DE102010017478A1 (de) * 2010-06-21 2011-12-22 Krauss-Maffei Wegmann Gmbh & Co. Kg Verfahren zur Extraktion von Daten aus einer Sichtdatenbank zum Aufbau einer Simulationsdatenbank
DE102010063330A1 (de) * 2010-12-17 2012-06-21 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zum Komprimieren von Routendaten
US8751449B2 (en) 2011-04-04 2014-06-10 Symantec Corporation Managing performance within an enterprise object store file system
GB2492369B (en) 2011-06-29 2014-04-02 Itis Holdings Plc Method and system for collecting traffic data
US8825392B2 (en) 2011-06-30 2014-09-02 Navteq B.V. Map view
US8718922B2 (en) 2011-07-28 2014-05-06 Navteq B.V. Variable density depthmap
RU2459242C1 (ru) * 2011-08-09 2012-08-20 Олег Александрович Серебренников Способ создания и использования рекурсивного индекса поисковых машин
US9002114B2 (en) * 2011-12-08 2015-04-07 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to measure geographical features using an image of a geographical location
EP2679957A1 (de) * 2011-12-20 2014-01-01 Technisat Digital Gmbh Navigationseinrichtung zum Ausgeben eines Geschwindigkeitswertes an einen Benutzer
JP5863494B2 (ja) * 2012-02-13 2016-02-16 キヤノン株式会社 情報処理装置、及びその制御方法、プログラム
US9378509B2 (en) 2012-05-09 2016-06-28 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to measure geographical features using an image of a geographical location
GB201219742D0 (en) * 2012-11-02 2012-12-12 Tom Tom Int Bv Methods and systems for generating a horizon for use in an advanced driver assistance system (adas)
US9311748B2 (en) 2013-02-20 2016-04-12 Google Inc. Method and system for generating and storing data objects for multi-resolution geometry in a three dimensional model
US9082014B2 (en) 2013-03-14 2015-07-14 The Nielsen Company (Us), Llc Methods and apparatus to estimate demography based on aerial images
JP2016513805A (ja) 2013-03-15 2016-05-16 キャリパー コーポレイション 車両ルート指定および交通管理のための車線レベル車両ナビゲーション
BR112015023617B1 (pt) * 2013-03-15 2022-05-31 Twitter, Inc Método e sistema para gerar um trie de geocódigo e facilitar buscas de geocódigo reverso
US9922062B2 (en) * 2013-07-16 2018-03-20 Clearag, Inc. High-performance gridded data storage, arrangement and extraction
US9558658B2 (en) 2013-09-27 2017-01-31 Here Global B.V. Method for transforming probe data across transportation modes
US9439367B2 (en) 2014-02-07 2016-09-13 Arthi Abhyanker Network enabled gardening with a remotely controllable positioning extension
US9457901B2 (en) 2014-04-22 2016-10-04 Fatdoor, Inc. Quadcopter with a printable payload extension system and method
US9004396B1 (en) 2014-04-24 2015-04-14 Fatdoor, Inc. Skyteboard quadcopter and method
US9022324B1 (en) 2014-05-05 2015-05-05 Fatdoor, Inc. Coordination of aerial vehicles through a central server
US10248731B1 (en) 2014-05-16 2019-04-02 Corelogic Solutions, Llc System and method for linking data records for parcels
US9441981B2 (en) 2014-06-20 2016-09-13 Fatdoor, Inc. Variable bus stops across a bus route in a regional transportation network
US9971985B2 (en) 2014-06-20 2018-05-15 Raj Abhyanker Train based community
US9451020B2 (en) 2014-07-18 2016-09-20 Legalforce, Inc. Distributed communication of independent autonomous vehicles to provide redundancy and performance
US10007677B1 (en) 2014-12-04 2018-06-26 Google Llc System and method for geospatial indexing
US11204946B2 (en) * 2015-02-26 2021-12-21 Red Hat, Inc. Finding objects in a key-based data structure by their approximate location
CN105183769B (zh) * 2015-07-31 2018-08-24 浙江工商大学 基于流数据立方体的轨迹数据原位可视化方法
US10885097B2 (en) 2015-09-25 2021-01-05 The Nielsen Company (Us), Llc Methods and apparatus to profile geographic areas of interest
US10593074B1 (en) * 2016-03-16 2020-03-17 Liberty Mutual Insurance Company Interactive user interface for displaying geographic boundaries
US10783173B2 (en) 2016-04-08 2020-09-22 Global Grid Systems Inc. Methods and systems for selecting and analyzing geospatial data on a discrete global grid system
US10730626B2 (en) 2016-04-29 2020-08-04 United Parcel Service Of America, Inc. Methods of photo matching and photo confirmation for parcel pickup and delivery
US9957048B2 (en) 2016-04-29 2018-05-01 United Parcel Service Of America, Inc. Unmanned aerial vehicle including a removable power source
DE112016007098T5 (de) * 2016-07-26 2019-04-18 Hewlett-Packard Development Company, L.P. Indexierung von voxeln für das 3d-drucken
DE102016216218A1 (de) * 2016-08-29 2018-03-01 Robert Bosch Gmbh Verfahren zur Ermittlung von Gewässerflächen aus OSM-Daten
DE102016217654A1 (de) 2016-09-15 2018-03-15 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Datenverarbeitungsanlage zur Erzeugung von Kartendaten einer digitalen Karte
CN110869981B (zh) * 2016-12-30 2023-12-01 辉达公司 用于自主车辆的高清晰度地图数据的向量数据编码
US11486717B1 (en) * 2017-03-13 2022-11-01 Mapbox, Inc. Generating navigation instructions based on digital map context
US11009886B2 (en) 2017-05-12 2021-05-18 Autonomy Squared Llc Robot pickup method
US10775792B2 (en) 2017-06-13 2020-09-15 United Parcel Service Of America, Inc. Autonomously delivering items to corresponding delivery locations proximate a delivery route
US20190188305A1 (en) * 2017-12-15 2019-06-20 Conduce, Inc. Spatial and temporal data storage and retrieval
US11561317B2 (en) * 2018-04-11 2023-01-24 SeeScan, Inc. Geographic map updating methods and systems
DE102018210681A1 (de) * 2018-06-29 2020-01-02 Audi Ag Verfahren zur Optimierung von Kartendaten
RU2720073C2 (ru) * 2018-07-04 2020-04-23 Общество С Ограниченной Ответственностью "Яндекс" Способ и электронное устройство для создания индекса сегментов многоугольников
WO2020045210A1 (ja) * 2018-08-28 2020-03-05 パイオニア株式会社 地図データ構造
US11366836B2 (en) * 2018-09-20 2022-06-21 Paper Crane, LLC Automated geospatial data analysis
US10948300B2 (en) 2018-12-27 2021-03-16 Beijing Voyager Technology Co., Ltd. Systems and methods for path determination
CN111380526B (zh) * 2018-12-27 2022-04-05 北京航迹科技有限公司 一种路径确定的系统和方法
CN112463804B (zh) * 2021-02-02 2021-06-15 湖南大学 一种基于KDTree的图像数据库数据处理方法
CN112945244B (zh) * 2021-02-03 2022-10-14 上海博汽智能科技有限公司 适用于复杂立交桥的快速导航系统及导航方法
CN113625264A (zh) * 2021-06-16 2021-11-09 中国铁道科学研究院集团有限公司铁道建筑研究所 一种并行处理铁路检测大数据的方法及系统
USD959552S1 (en) 2021-07-21 2022-08-02 Speedfind, Inc Display sign
EP4160146A1 (de) * 2021-10-01 2023-04-05 Argo AI, LLC Quadtree basiert datenstruktur zum speichern von informationen in bezug auf eine umgebung eines autonomen fahrzeugs und verfahren zur verwendung davon
GB202114684D0 (en) * 2021-10-14 2021-12-01 Five Ai Ltd Support tools for autonomous vehicles
CN114415492B (zh) * 2021-12-08 2023-12-08 深圳优美创新科技有限公司 离线状态下时间的获取方法、终端及存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4086632A (en) * 1976-09-27 1978-04-25 The Boeing Company Area navigation system including a map display unit for establishing and modifying navigation routes
JPS585611A (ja) * 1981-07-01 1983-01-13 Toyota Motor Corp 走行案内装置
JPS61250671A (ja) * 1985-04-27 1986-11-07 株式会社デンソー 地図表示装置
CA1277043C (en) * 1985-07-25 1990-11-27 Marvin S. White, Jr. Apparatus storing a representation of topological structures and methods of building and searching the representation
NL8602654A (nl) * 1986-10-23 1988-05-16 Philips Nv Werkwijze voor het in kavels verdelen en in een massageheugen bitsgewijs opslaan van een gegevensbestand, alsook voor het adresseren van een kavel, en inrichting voor het uitvoeren van de werkwijze.
NL8702014A (nl) * 1987-08-28 1989-03-16 Philips Nv Routebepalingseenheid.
US4972319A (en) * 1987-09-25 1990-11-20 Delorme David M Electronic global map generating system
DE3853719T2 (de) * 1987-12-28 1995-10-05 Aisin Aw Co Wegsuchverfahren für navigationssystem.
JPH023900A (ja) * 1988-06-16 1990-01-09 Nissan Motor Co Ltd 移動体用現在地表示装置
US5170353A (en) * 1988-11-17 1992-12-08 U.S. Philips Corporation Bucket-oriented route planning method, and navigation system comprising a route planner for carrying out such a method
US5029125A (en) * 1989-03-07 1991-07-02 Drexler Technology Corporation Method of reading and writing files on nonerasable storage media
US5036471A (en) * 1989-04-18 1991-07-30 Sanyo Electric Co., Ltd. Apparatus for road path searching applicable to car navigation system and operation method thereof
US5150295A (en) * 1990-05-22 1992-09-22 Teledyne Industries, Inc. Computerized system for joining individual maps into a single map product
US5295261A (en) * 1990-07-27 1994-03-15 Pacific Bell Corporation Hybrid database structure linking navigational fields having a hierarchial database structure to informational fields having a relational database structure
US5367671A (en) * 1990-09-25 1994-11-22 International Business Machines Corp. System for accessing extended object attribute (EA) data through file name or EA handle linkages in path tables
DE69131270T2 (de) * 1990-10-01 1999-12-02 Mannesmann Vdo Ag Verfahren zur Speicherung eines topologischen Netzwerkes und Verfahren und Geräte, um eine Reihe von 1-Zellen zu identifizieren
JP2570500B2 (ja) * 1990-12-19 1997-01-08 三菱電機株式会社 車載用ナビゲーション装置
US5285391A (en) * 1991-08-05 1994-02-08 Motorola, Inc. Multiple layer road memory storage device and route planning system
JP2848061B2 (ja) * 1991-11-06 1999-01-20 三菱電機株式会社 ナビゲーション装置
EP0775891B1 (de) * 1992-02-18 1999-05-12 Pioneer Electronic Corporation Navigationsvorrichtung mit verbesserter Positionsanzeigefunktion
EP0559975B1 (de) * 1992-03-10 1999-06-16 Hewlett-Packard Limited Datenspeichergerät
JP3248160B2 (ja) * 1993-03-17 2002-01-21 株式会社日立製作所 図面管理装置
JP2951822B2 (ja) * 1993-05-13 1999-09-20 三菱電機株式会社 データ管理装置及び図形データ管理方法
US5412573A (en) * 1993-05-20 1995-05-02 Motorola Inc. Multi-mode route guidance system and method therefor
EP0646882B1 (de) * 1993-10-04 2002-03-20 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum schnellen Zugriff auf Dateneinheiten einer sortierten Liste und Datenbankträger für dieses Verfahren und/oder diese Vorrichtung
JP3221183B2 (ja) * 1993-10-07 2001-10-22 住友電気工業株式会社 経路計算機能を備えるナビゲーション装置
JP3085054B2 (ja) * 1993-10-08 2000-09-04 住友電気工業株式会社 経路計算装置
JP2996074B2 (ja) * 1993-10-18 1999-12-27 住友電気工業株式会社 経路計算装置
JPH07113653A (ja) * 1993-10-19 1995-05-02 Sumitomo Electric Ind Ltd 経路計算装置
JP2856063B2 (ja) * 1994-03-30 1999-02-10 住友電気工業株式会社 復帰経路計算機能を備えるナビゲーション装置
EP0702208B1 (de) * 1994-09-08 2002-05-29 Matsushita Electric Industrial Co., Ltd. Verfahren und System zur Routenauswahl
JP2917825B2 (ja) * 1994-09-08 1999-07-12 松下電器産業株式会社 経路選出方法およびシステム
JPH0886660A (ja) * 1994-09-16 1996-04-02 Alpine Electron Inc 車載用ナビゲーション装置
JP3471459B2 (ja) * 1995-01-20 2003-12-02 三菱電機株式会社 車載用ナビゲーション装置
DE69617172T2 (de) * 1995-06-16 2002-07-25 Siemens Ag System zum verbinden von elementen mit komplizierten kreuzungen und einmündungen in einer strassennetzdarstellung für fahrzeuge

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8803907B2 (en) 2007-11-27 2014-08-12 Mitsubishi Electric Corporation Map information processor and data structure of map information
DE112008002657B4 (de) * 2007-11-27 2014-09-18 Mitsubishi Electric Corp. Karteninformationsprozessor und Datenstruktur von Karteninformationen

Also Published As

Publication number Publication date
JP4079489B2 (ja) 2008-04-23
DE69736082D1 (de) 2006-07-20
ATE252720T1 (de) 2003-11-15
EP0838663A3 (de) 2000-03-15
EP1365212B1 (de) 2006-06-07
EP0838663A2 (de) 1998-04-29
JPH10312153A (ja) 1998-11-24
US6308177B1 (en) 2001-10-23
ATE329230T1 (de) 2006-06-15
DE69725677D1 (de) 2003-11-27
CA2219043A1 (en) 1998-04-25
US5968109A (en) 1999-10-19
JP4447585B2 (ja) 2010-04-07
EP0838663B1 (de) 2003-10-22
DE69736082T2 (de) 2006-12-28
CA2219043C (en) 2003-02-18
EP1365212A1 (de) 2003-11-26
JP2007010678A (ja) 2007-01-18

Similar Documents

Publication Publication Date Title
DE69725677T2 (de) Vorrichtung und Verfahren zum Speichern von geographischen Daten auf einem physikalischen Speichermedium
US7197500B1 (en) System and method for use and storage of geographic data on physical media
DE60028143T2 (de) Verfahren zur Erzeugung einer durch ein Navigationssystem berechneten Vorschauroute
DE69926284T2 (de) Verschachtelung von Datentypen in einer geographischen Datenbank und ihr Verwendungsverfahren in einer Navigationsanwendung
DE69928484T2 (de) Verfahren und Vorrichtung zum Verwenden von Echtzeitverkehrsfunkmeldungen mit Navigationssystemen
DE69828339T2 (de) Programm zum Erzeugen von Manövern
DE69732755T2 (de) Zwischenebene für Navigationssystem
DE60215988T2 (de) Spracherkennung mit geographisch erzeugter Wortliste
DE69732015T2 (de) Karthographisches Datenbankgerät
Lang et al. The new metropolis: Rethinking megalopolis
DE69931622T2 (de) Navigationssystem zur kursanpassung mit positionsnetzwerk
DE69830124T2 (de) Verfahren und Vorrichtung zur Darstellung und Verwendung von Forminformation in geographischen Datenbanken
DE69633880T2 (de) Navigationssystem
DE69929639T2 (de) Kartendatenzugriffverfahren für Navigation und Navigationssystem
DE10290955B4 (de) Datenbanksuchsystem und Datenbanksuchverfahren das geographische Merkmale verwendet
DE4104351A1 (de) Im fahrzeug montiertes navigationssystem
DE19544921A1 (de) Apparat und Verfahren für navigierende mobile Körper, die eine aus der Vogelperspektive angezeigte Straßenkart benutzen
EP1159585B1 (de) Verfahren zum betrieb eines navigationssystems
DE69937116T2 (de) Abkürzungsgenerator
DE112004001740T5 (de) Fahrzeuginternes Informationsendgerät, Routeneigenschaften-Gewinnungsvorrichtung und Routeneigenschaften-Anzeigeverfahren
EP1281933B1 (de) Verfahren und System zum Auffinden eines Ortes in einer digitalen Karte
DE102009025039A1 (de) Verfahren und Vorrichtung zur Berechnung einer Navigationsroute zu zusammenhängenden Zielpunkten
EP1301756B1 (de) Verfahren und anordnung zur codierung, zur decodierung und/oder zur übertragung von ortsinformationen
EP0592524B1 (de) Elektronisches orientierungsgerät
EP1526358A1 (de) Verfahren zur Zerlegung eines Strassennetzes aus Kanten und Knoten

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: NAVTEQ NORTH AMERICA, LLC (N.D.GES.D. STAATES DELA

8364 No opposition during term of opposition