DE69933422T2 - System und Verfahren zur Routenführung mit einem Navigationsanwendungsprogram - Google Patents

System und Verfahren zur Routenführung mit einem Navigationsanwendungsprogram Download PDF

Info

Publication number
DE69933422T2
DE69933422T2 DE69933422T DE69933422T DE69933422T2 DE 69933422 T2 DE69933422 T2 DE 69933422T2 DE 69933422 T DE69933422 T DE 69933422T DE 69933422 T DE69933422 T DE 69933422T DE 69933422 T2 DE69933422 T2 DE 69933422T2
Authority
DE
Germany
Prior art keywords
data
maneuver
tokens
token
list
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
DE69933422T
Other languages
English (en)
Other versions
DE69933422D1 (de
Inventor
Andrew Chicago Fowler
Ankur Hoffman Estates Mittal
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
Navteq North America LLC
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 Navteq North America LLC filed Critical Navteq North America LLC
Application granted granted Critical
Publication of DE69933422D1 publication Critical patent/DE69933422D1/de
Publication of DE69933422T2 publication Critical patent/DE69933422T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3626Details of the output of route guidance instructions
    • 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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3626Details of the output of route guidance instructions
    • G01C21/3629Guidance using speech or audio output, e.g. text-to-speech

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf ein System und auf ein Verfahren zum Bereitstellen von Routenführungsinformationen für einen Endbenutzer eines Navigationsanwendungsprogramms.
  • Es stehen computergestützte Navigationsanwendungsprogramme zur Verfügung, die Endbenutzern verschiedene Navigationsfunktionen und Merkmale bieten. Einige computergestützte Navigationsanwendungsprogramme sind in Navigationssystemen enthalten, die in Fahrzeugen installiert sind, wie z. B. Automobilen, Lastwagen, Bussen und dergleichen. Diese fahrzeugeigenen Systeme können Endbenutzern, wie z. B. Fahrern der Fahrzeuge, in denen die Navigationssysteme installiert sind, verschiedene Navigationsfunktionen zur Verfügung stellen. Zum Beispiel sind einige Navigationsanwendungsprogramme fähig, eine optimale Route für die Fahrt über Straßen zwischen Orten in einem geographischen Gebiet zu bestimmen. Unter Verwendung einer Eingabe von einem Endbenutzer und optional von Ausrüstung, die einen physikalischen Ort bestimmen kann (wie z. B. ein GPS-System), kann ein Navigationsanwendungsprogramm verschiedene Routen zwischen zwei Orten untersuchen, um eine optimale Route für die Fahrt von einem Ausgangsort zu einem Zielort in einem geographischen Gebiet zu bestimmen. Das Navigationsanwendungsprogramm kann anschließend dem Endbenutzer Informationen über die optimale Route in Form von Anweisungen zur Verfügung stellen, die die Manöver identifizieren, die vom Endbenutzer ausgeführt werden müssen, um vom Ausgangsort zum Zielort zu gelangen. Die Anweisungen können die Form sichtbarer und/oder hörbarer Anweisungen annehmen, die längs des Weges zur Verfügung gestellt werden, wenn der Endbenutzer die Route abfährt. Einige Navigationsanwendungsprogramme sind fähig, detaillierte Karten auf Computeranzeigevorrichtungen anzuzeigen, die die Routen zu Zielen, die auszuführenden Manövertypen an verschiedenen Orten längs der Routen, Orte von bestimmten Typen von Merkmalen und dergleichen angeben.
  • Zusätzlich zu fahrzeugeigenen Navigationssystemen werden auch computergestützte Navigationsanwendungsprogramme auf verschiedenen anderen Arten von Computer-Hardwareplattformen und mit anderen Arten von Computerarchitekturen zur Verfügung gestellt. Zum Beispiel können Navigationsanwendungsprogramme auf Personalcomputern, einschließlich Schreibtischcomputern und tragbaren Computern, zur Verfügung gestellt werden. Computergestützte Navigationsanwendungsprogramme können auch auf Netzwerken, einschließlich drahtlosen Netzwerken und dem Internet, zur Verfügung gestellt werden. Computergestützte Navigationsanwendungsprogramme können ferner auf tragbaren Computergeräten enthalten sein, wie z. B. persönlichen digitalen Assistenten, Telephonen, Funkrufempfängern und dergleichen. Außerdem können computergestützte Navigationsanwendungsprogramme auf Spezial-Elektronikgeräten enthalten sein, wie z. B. persönlichen Navigationssystemen.
  • Um diese und andere Navigationsfunktionen zur Verfügung zu stellen, verwendet das Navigationsanwendungsprogramm geographische Daten. Die geographischen Daten können in Form einer oder mehrerer Datenbanken vorhanden sein, die Daten enthalten, die physikalische Merkmale in einem geographischen Gebiet repräsentieren. Die geographische Datenbank kann Daten enthalten, die die Straßen und Kreuzungen in einem geographischen Gebiet repräsentieren, und kann ferner Informationen bezüglich der repräsentierten Straßen und Kreuzungen im geographischen Gebiet enthalten, wie z. B. Abbiegebeschränkungen an Kreuzungen, Geschwindigkeitsbeschränkungen längs der Straßen, Straßennamen der verschiedenen Straßen, Adressbereiche längs der Straßen, und dergleichen.
  • Obwohl Navigationsanwendungsprogramme viele wichtige Merkmale zur Verfügung stellen, bleibt weiterhin Raum für Verbesserungen. Ein Bereich, in dem Raum für Verbesserungen ist, betrifft die Bereitstellung von sinnvollen Manöverinformationen für den Endbenutzer. Wenn z. B. ein Navigationsanwendungsprogramm Manöveranweisungen dem Endbenutzer zur Verfügung stellt, kann es nützlich sein, Informationen über die Namen der beim Manöver betroffenen Straßen zur Verfügung zu stellen (z. B. "bei der kommenden Kreuzung mit der Ersten Straße leicht rechts abbiegen, um auf der Hauptstraße zu bleiben"). Einige Straßen sind jedoch nicht benannt. Um dementsprechend aussagekräftigere Manöveranweisungen zur Verfügung zu stellen, die mehr Einzelheiten enthalten, ist es notwendig, die Verfügbarkeit, Qualität und den Typ von Informationen, die über die repräsentierten physikalischen geographischen Merkmale verfügbar sind, zu berücksichtigen.
  • Ein weiteres Beispiel eines Bereiches, in welchem Raum für Verbesserungen ist, betrifft die Bereitstellung von Manöveranweisungen in unterschiedlichen Sprachen. Zum Beispiel kann eine Person, die ein Mietautomobil mit einem Navigationssystem fährt, wünschen, hörbare Manöveranweisungen in Englisch zur Verfügung gestellt zu bekommen. Ein weiterer Fahrer des gleichen Mietautomobils kann wünschen, dass das Navigationssystem hörbare Manöveranweisungen in spanischer Sprache zur Verfügung stellt. Alternativ kann ein weiterer Fahrer des gleichen Mietautomobils wünschen, dass die Manöveranweisungen vom Navigationssystem als Text in englischer Sprache mit Graphik auf einem Anzeigebildschirm bereitgestellt wird. Es wäre daher vorteilhaft, die Vorlieben aller dieser verschiedenen Fahrer mit dem gleichen Navigationssystem im gleichen Automobil zu berücksichtigen, während weiterhin Manöveranweisungen zur Verfügung gestellt werden, die detailliert und aussagekräftig sind.
  • Eine weitere Betrachtung bezieht sich auf die Bereitstellung von Routenführungsmerkmalen auf einem Navigationsanwendungsprogramm, das auf einem Personalcomputer läuft. Wenn der Endbenutzer ein Navigationsanwendungsprogramm auf einem Personalcomputer laufen lässt, kann er wünschen, die Manöveranweisungen ausgedruckt oder für die spätere Verwendung auf einer Diskettendatei gespeichert zu bekommen. In dieser Situation müssen die Manöveranweisungen in geeigneter Weise für den Ausdruck bearbeitet und formatiert werden, oder in einem brauchbaren Dateiformat geliefert werden.
  • Andere Betrachtungen gelten, wenn das Navigationsanwendungsprogramm auf einem tragbaren Computergerät betrieben wird, wie z. B. einem persönlichen digitalen Assistenten. In dieser Situation kann der Endbenutzer wünschen, die Manöveranweisungen auf einem Anzeigebildschirm der Vorrichtung zur Verfügung gestellt zu bekommen. Wenn das Navigationsanwendungsprogramm über ein Telephon zur Verfügung gestellt wird, kann der Endbenutzer wünschen, die Manöveranweisungen hörbar als Sprachnachricht oder auf einem Anzeigebildschirm des Telephons zur Verfügung gestellt zu bekommen.
  • Da es verschiedene Möglichkeiten gibt, wie die Endbenutzer Manöveranweisungen zur Verfügung gestellt bekommen möchten, gibt es vorzugsweise verschiedene Möglichkeiten, die Manöveranweisungen wiederzugeben. Da jedoch diese verschiedenen Arten von Vorrichtungen unterschiedliche Fähigkeiten und Benutzerschnittstellen aufweisen, war es schwierig, ein Navigationsanwendungsprogramm zu schaffen, das aussagekräftige Routenführungsmerkmale zur Verfügung stellt, die alle diese verschiedenen Arten von Vorrichtungen berücksichtigen können.
  • Dementsprechend besteht Bedarf an einem Programm, das die Lieferung aussagekräftiger Informationen an einen Endbenutzer eines Navigationsanwendungsprogramms erleichtert.
  • Ein weiteres Gebiet, auf dem Bedarf an einer Verbesserung besteht, betrifft die Bereitstellung eines Universal-Routenführungsmoduls oder -werkzeugs, das leicht in einer Vielzahl unterschiedlicher Software- und Hardwareumgebungen und Plattformen verwendet werden kann, ohne die Notwendigkeit von extensiven Überarbeitungen und kundenspezifischen Anpassungen.
  • US 5808566 offenbart ein Verfahren und ein System, die Token (Kurzzeichen) zum Bereitstellen von Routenführungsinformationen von einer Basiseinheit für eine entfernte Einheit verwenden. Es wird eine Anfrage von der entfernten Einheit zur Basiseinheit gesendet. Die Basiseinheit berechnet die angeforderten Führungsinformationen und sendet diese zur entfernten Einheit zurück.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Gemäß der Erfindung wird ein Verfahren nach Anspruch 1 geschaffen.
  • Um die vorangehenden und anderen Aufgaben zu lösen, wurden ein Verfahren und ein System erfunden, die eine verbesserte Routenführung mit einem Navigationsanwendungsprogramm zur Verfügung stellen. Manöverdatenstrukturen werden gebildet, die Daten aus einer geographischen Datenbank für jeden Ort längs einer Route enthalten, bei denen eine Manöveranweisung zur Verfügung gestellt werden soll. Diese Manöverdatenstrukturen werden verwendet, um eine Liste von Token zu bilden. Ein Token kann entweder eine Zeichenkette oder ein Symbol sein, das sich auf ein weiteres Datenelement bezieht, welches entweder eine Zeichenkette, Audiodaten oder Graphikdaten umfassen kann. Manöveranweisungen werden bereitgestellt durch Erläutern der Token in der Liste der Token. Die Erläuterung der Token wird bewerkstelligt durch Bereitstellen aller Daten, die in den Token enthalten sind oder auf die von diesem Bezug genommen wird, in der in der Liste der Token in der spezifizierten Reihenfolge. Wenn das Token ein Symbol ist, enthält die Erläuterung die Bereitstellung der Daten, auf die das Symbol Bezug nimmt, was entweder eine Zeichenkette, Audiodaten oder Graphikdaten sein können. Die Liste der Token wird erstellt durch Kombinieren von Sequenzen von Token, die für jede Manöverdatenstruktur gebildet werden. Jede der Sequenzen von Token wird aus einer entsprechenden Ausgabeliste gebildet, die durch Anwendung eines Regelsatzes auf die Daten in der Manöverdatenstruktur gebildet wird. Die Inhalte einer Ausgabeliste für eine Manöverdatenstruktur können Symbole und Schlüssel enthalten. Symbole in einer Ausgabeliste werden verwendet, um Token zu bilden, die in der Sequenz der Token enthalten sind, die für diese Manöverdatenstruktur gebildet wird. Schlüssel in einer Ausgabeliste beziehen sich auf Daten in der entsprechenden Manöverdatenstruktur und werden erweitert, um Token zu bilden, die in der Sequenz der Token enthalten ist, die für diese Manöverdatenstruktur gebildet wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das ein Navigationssystem zeigt.
  • 2 ist ein Blockdiagramm, das Komponenten des Navigationsanwendungsprogramms der 1 zeigt.
  • 3 ist ein Diagramm, das die Komponenten des Routenberechnungsobjekts der 2 zeigt.
  • 4 ist ein Diagramm, das die Komponenten des Manövererzeugungswerkzeugs der 2 zeigt.
  • 5 ist ein Diagramm, das die Komponentenelemente einer der Manöverdatenstrukturen der 4 zeigt.
  • 6 ist ein Diagramm, das die Komponenten des Tokenerzeugungsobjekts der 2 zeigt.
  • 7 ist ein Diagramm, das Komponenten des Tokenerzeugung-Konfigurationsobjekts der 2 zeigt.
  • 8 ist ein Diagramm, das die Komponenten einer der Regeltabellen der 7 zeigt.
  • 9 ist ein Diagramm, das Komponenten eines der in 8 gezeigten Regelsätze zeigt.
  • 10 ist ein Diagramm, das die Erweiterung von Schlüsseln zu Token mittels der in 7 gezeigten Erweiterungsfunktion zeigt.
  • 11 ist ein Diagramm, das die Erläuterung der Token im Tokenerzeugungsobjekt mittels des in 2 gezeigten Erläuterungswerkzeugs zeigt.
  • GENAUE BESCHREIBUNG DER DERZEIT BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • I. BEISPIELHAFTE NAVIGATIONSSYSTEM-PLATTFORM/UMGEBUNG
  • In 1 ist ein Diagramm gezeigt, das eine beispielhafte Ausführungsform eines Navigationssystems 110 zeigt. Das Navigationssystem 110 ist eine Kombination aus Hardware- und Software-Komponenten. Die Hardwarekomponenten des Navigationssystems 110 können einen Prozessor 112, Speicher 120 und dergleichen enthalten.
  • Das Navigationssystem 110 kann stationär oder tragbar sein. In der in 1 gezeigten Ausführungsform ist das Navigationssystem 110 ein tragbares System, das in einem Fahrzeug 111, wie z. B. einem Automobil, einem Lastwagen oder einem Bus, angeordnet ist. In anderen Ausführungsformen kann das Navigationssystem 110 in anderen Plattformen installiert sein, wie im Folgenden erläutert wird.
  • In der Ausführungsform der 1 enthält das Navigationssystem 110 ferner ein Positionsbestimmungssystem 124, das die Position des Fahrzeugs 111, in der es installiert ist, bestimmt. Das Positionsbestimmungssystem 124 kann Sensoren 125 oder andere Komponenten enthalten, die die Geschwindigkeit, Orientierung, Richtung und dergleichen des Fahrzeugs 111 erfassen. Das Positionsbestimmungssystem 124 kann ferner ein GPS-System enthalten.
  • Das Navigationssystem 110 enthält ferner eine Benutzerschnittstelle 131. Die Benutzerschnittstelle 131 enthält geeignete Mittel 127 zum Empfangen von Anweisungen und/oder Eingaben von einem Endbenutzer des Navigationssystems. Zum Beispiel kann die Benutzerschnittstelle 131 eine Eingabekonsole, eine Tastatur, ein Mikrophon, eine Spracherkennungssoftware und dergleichen enthalten, über die der Endbenutzer Navigationsinformationen anfordern kann. Die Benutzerschnittstelle 131 enthält ferner geeignete Mittel 129 zum Bereitstellen von Informationen für den Endbenutzer. Die Benutzerschnittstelle 131 kann eine Anzeigevorrichtung oder Lautsprecher enthalten (einschließlich Sprachsynthese-Hardware und -Software), über die der Endbenutzer Informationen vom Navigationssystem 110 erhalten kann.
  • Alle obenbeschriebenen Komponenten können herkömmlich (oder anders als herkömmlich) sein, wobei die Herstellung und die Verwendung dieser Komponenten Fachleuten bekannt sind. Zum Beispiel kann der Prozessor 112 einem beliebigen Typ entsprechen, der in Navigationssystemen verwendet wird, wie z. B. 32-Bit-Prozessoren, die einen flachen Adressraum verwenden, wie z. B. ein Hitachi SH1, ein Intel 80386, ein Intel 960, ein Motorola 68020 (oder andere Prozessoren mit ähnlichem oder größerem Adressierungsraum). Andere Prozessortypen als diese, sowie Prozessoren, die in Zukunft entwickelt werden können, sind ebenfalls geeignet.
  • II. GEOGRAPHISCHE DATENBANK
  • Um einem Endbenutzer Navigationsmerkmale zur Verfügung zu stellen, verwendet das Navigationssystem 110 geographische Daten 140. Die geographischen Daten 140 können im Fahrzeug 111 gespeichert sein, oder alternativ können die geographischen Daten 140 entfernt gespeichert sein und dem Navigationssystem 110 im Fahrzeug 111 über ein drahtloses Kommunikationssystem verfügbar gemacht werden, das Teil des Navigationssystems 110 sein kann. In einer weiteren Alternative kann ein Teil der geographischen Daten 140 im Fahrzeug 111 gespeichert sein, und ein Teil der geographischen Daten 140 kann an einem entfernten Ort gespeichert sein und dem Navigationssystem 110 im Fahrzeug 111 über ein drahtloses Kommunikationssystem vom entfernten Ort zugänglich gemacht werden. In der in 1 gezeigten Ausführungsform sind einige oder alle geographische Daten 140 auf einem Medium 132 gespeichert, das sich im Fahrzeug 111 befindet. Dementsprechend enthält das Navigationssystem 110 ein Laufwerk 114 (oder eine andere geeignete Peripherievorrichtung), in der das Medium 132 installiert und darauf zugegriffen werden kann.
  • In einer Ausführungsform ist das Speichermedium 132 ein CD-ROM. In einer weiteren alternativen Ausführungsform kann das Speichermedium 132 eine PCMCIA-Karte sein, wobei in diesem Fall das Laufwerk 114 durch einen PCMCIA-Schlitz ersetzt würde. Verschiedene andere Speichermedien können verwendet werden, einschließlich fester oder harter Platten, DVD-Platten oder anderer derzeit verfügbarer Speichermedien, sowie Speicher medien, die in Zukunft entwickelt werden können.
  • Die geographischen Daten 140 können in Form einer oder mehrerer computerlesbarer Datendateien oder Datenbanken vorliegen. Die geographischen Daten 140 enthalten Informationen über die Straßen und Kreuzungen in oder in Bezug auf ein oder mehrere geographische Gebiete oder Abdeckbereiche. Die Informationen enthalten Daten, die die Positionen von Straßen im abgedeckten geographischen Gebiet spezifizieren, und enthalten ferner Daten über Merkmale in Bezug auf die Straßen, wie z. B. Beschränkungen der Fahrtrichtungen auf den Straßen (z. B. Einbahnstraßen), Abbiegebeschränkungen, Straßenadressen, Straßennamen, Geschwindigkeitsbeschränkungen und dergleichen. Die geographischen Daten 140 können ferner Informationen über interessante Punkte im geographischen Bereich enthalten, wie z. B. Hotels, Restaurants, Museen, Stadien, Ämter, Automobilhändler, Autowerkstätten und dergleichen. Die geographischen Daten 140 können ferner Informationen über Plätze enthalten, wie z. B. Städte, Großstädte oder andere Gemeinden. Die geographische Datenbank 140 kann andere Daten über das geographische Gebiet enthalten.
  • Die geographischen Daten 140 können eine Vielfalt von Formen annehmen. In einer Ausführungsform enthalten die geographischen Daten 140 eine Vielzahl von Straßensegment-Dateneinheiten. Jede Straßensegment-Dateneinheit repräsentiert einen Abschnitt (oder ein Segment) einer navigierbaren Straße im geographischen Gebiet. Jedes physikalische Straßensegment besitzt zwei ihm zugeordnete Knoten, einen an jedem der Endpunkte des Straßensegments. In dieser Ausführungsform enthalten die geographischen Daten 140 ferner eine Vielzahl von Dateneinheiten, die diese Knoten repräsentieren. Jede Knotendateneinheit identifiziert die Position (z. B. geographische Koordinaten) eines der Knoten am Ende eines Straßensegments. In einer Ausführungsform werden die geographischen Daten von Navigation Technologies Corporation aus Sunnyvale, Kalifornien, zur Verfügung gestellt, jedoch ist klar, dass Daten, die von anderen Einrichtungen entwickelt und bereitgestellt werden, ebenfalls für die Verwendung mit dem hier offenbarten Erfindungsgegenstand geeignet sind.
  • III. DIE NAVIGATIONSPROGRAMMIERUNG
  • A. Überblick über die Navigationsprogrammierung
  • Zusätzlich zu den Hardware-Komponenten und der geographischen Datenbank enthält oder verwendet das Navigationssystem 110 eine Navigationsprogrammierung 118. Die Navigationsprogrammierung 118 enthält die Software, die für die Funktionen und/oder Merkmale sorgt, die vom Navigationssystem 110 ausgeführt werden. Die Navigationsprogrammierung 118 verwendet die geographischen Daten 140 in Verbindung mit der Eingabe von der Benutzerschnittstelle 131, und möglicherweise in Verbindung mit Ausgaben vom Positionsbestimmungssystem 124, um verschiedene Merkmale und/oder Funktionen bereitzustellen.
  • Die Navigationsprogrammierung 118 kann auf einem nichtflüchtigen Speichermedium 116 im Navigationssystem 110 gespeichert sein. Alternativ können die Navigationsprogrammierung 118 und die geographischen Daten 140 gemeinsam auf einer einzigen Speichervorrichtung oder einem einzigen Speichermedium gespeichert sein. Alternativ kann die Navigationsprogrammierung 118 an einem entfernten Ort angeordnet sein und kann dem Navigationssystem 110 über ein Kommunikationssystem zur Verfügung gestellt und genutzt werden.
  • Die Navigationsprogrammierung 118 kann aus separaten Komponentenanwendungen gebildet sein (auch als Programme, Unterprogramme, Routinen oder Werkzeuge bezeichnet). Die Komponentenanwendungen der Navigationsprogrammierung 118 können über definierte Programmierschnittstellen zusammenarbeiten. 2 zeigt ein Blockdiagramm, das einige der Komponentenanwendungen für eine Ausführungsform der Navigationsprogrammierung 118 zeigt, die im Navigationssystem 110 der 1 enthalten ist. 2 zeigt nur einen Teil aller Komponentenanwendungen, die die Navigationsprogrammierung 118 bilden. Andere Komponentenanwendungen, Programme oder Werkzeuge können in der Navigationsprogrammierung 118 enthalten sein.
  • In der in 2 gezeigten Ausführungsform enthält die gezeigte Navigations programmierung 118 eine Navigationsanwendung 210 und ein oder mehrere Navigationswerkzeuge 212. Die Navigationsanwendung 210 ist ein Programm oder eine Routine, die für das Gesamtmanagement der Funktionen des Navigationssystems 110 sorgt. Die Navigationsanwendung 210 kann ferner Unterstützung für die Navigationssystem-Hardware und Schnittstellen zu dieser enthalten, wie z. B. dem Positionsbestimmungssystem 124 und der Benutzerschnittstelle 131. Zu diesem Zweck enthält die in 2 gezeigte Navigationsanwendung 210 Benutzerschnittstellenfunktionen 220. Die Benutzerschnittstellenfunktionen 220 können für die Präsentation eines Menüs für den Endbenutzer auf einem Anzeigebildschirm der Benutzerschnittstellen-Hardware 131, die Annahme von Eingaben vom Endbenutzer über die Benutzerschnittstellen-Hardware 131, die Anzeige von Ergebnissen für den Endbenutzer auf einem Anzeigebildschirm der Benutzerschnittstellen-Hardware 131 und dergleichen sorgen.
  • Die Navigationswerkzeuge 212 sind Programme, die für spezifische Navigationsfunktionen sorgen, die von der Navigationsprogrammierung 118 ausgeführt werden. In der Ausführungsform der 2 sind die Navigationswerkzeuge 212 Programme, die für Funktionen sorgen, die die geographischen Daten 140 verwenden. Die Merkmale oder Funktionen, die von den Navigationswerkzeugen 212 bereitgestellt werden, können eine Routenberechnung, eine Kartenanzeige, eine Routenführung und andere Merkmale enthalten. Die Navigationswerkzeuge 212 empfangen Anfragen für Navigationsinformationen von der Navigationsanwendung 210. Die Navigationswerkzeuge 212 fordern und erhalten Daten von der geographischen Datenbank 140 und verwenden die Daten, um die Anfragen nach Navigationsinformationen von der Navigationsanwendung 210 zu befriedigen. Die Navigationswerkzeuge 212 können die geographischen Daten direkt von der geographischen Datenbank 140 auf dem Medium 132 erhalten, oder die Navigationswerkzeuge 212 können alternativ die Daten über eine Schnittstellenschicht 213 und ein Betriebssystem 214 erhalten.
  • In einer bevorzugten Ausführungsform sind die Navigationswerkzeuge 212 als Module vorgesehen, die relativ portabel sind, und die in verschiedene Arten von Navigationsprogrammen, Systemen und/oder Plattformen eingebaut sein können. Jedes Navigationswerkzeug kann zusammen mit der Navigationsanwendung 210 und irgendwelchen anderen Navigationswerkzeugen kompiliert sein, um ein einziges ausführbares Programm zu bilden, das auf dem nichtflüchtigen Medium 116 gespeichert ist. Alternativ können die Navigationswerkzeuge als mehr oder weniger eigenständige Programme verwendet werden. In einer bevorzugten Ausführungsform verwenden die Navigationswerkzeuge einen objektorientierten Ansatz für ihre Programmierung unter Verwendung von Daten und einer Beziehung zur Navigationsanwendung 210. Jedes Navigationswerkzeug ist aus einem oder mehreren Objekten gebildet, die jeweils Eingabedaten empfangen und Ausgabedaten erzeugen, entsprechend einer vorgegebenen Funktion, wobei jedes jeweils Verfahren von anderen Objekten aufruft. In einer bevorzugten Ausführungsform weist jedes Objekt seinen eigenen privaten Speicher auf, der für andere Objekte undurchsichtig ist. In der offenbarten Ausführungsform kann ein Objekt verwendet werden, um Daten von einem Objekt zu einem weiteren Objekt zu befördern, oder kann verwendet werden, um als Eingabe empfangene Daten zu transformieren. In einer Ausführungsform sind die Navigationswerkzeuge 212 in der Programmiersprache C geschrieben, obwohl in alternativen Ausführungsformen andere Programmiersprachen verwendet werden können, wie z. B. C++, Java, Visual Basic, und dergleichen.
  • B. DAS ROUTENBERECHNUNGSWERKZEUG
  • In der Ausführungsform der 2 werden Routenberechnungsfunktionen vom Routenberechnungswerkzeug 300 ausgeführt. Das Routenberechnungswerkzeug 300 bestimmt eine Route zwischen spezifizierten Orten. Das Routenberechnungswerkzeug 300 empfängt eine Eingabe in Form von Daten, die wenigstens einen Ausgangspunkt und ein gewünschtes Fahrziel identifizieren. Das Routenberechnungswerkzeug 300 kann zusätzliche Eingabeinformationen empfangen, die die Berechnung der Route beeinflussen. Zum Beispiel kann die Eingabe in das Routenberechnungswerk 300 Daten enthalten, die Benutzervorlieben spezifizieren, wie z. B. das Vermeiden von Mautstraßen oder Schnellstraßen und dergleichen. Die Eingabe kann ferner Daten enthalten, die die Tageszeit angeben, zu der die Route begonnen wird, was die Routenberechnung beeinflussen kann.
  • In der Ausführungsform der 2 empfängt das Routenberechnungswerk zeug 300 seine Eingaben von der Navigationsanwendung 210. In der Navigationsanwendung 210 empfangen die Benutzerschnittstellenfunktionen 220 Eingaben von der Benutzerschnittstelle 131. Die Eingabe kann eine Anfrage vom Endbenutzer nach einer zu berechnenden Route zu einem gewünschten Fahrziel enthalten. Die Navigationsanwendung 210 kann ferner Informationen vom Positionsbestimmungssystem 124 empfangen, die eine Position des Fahrzeugs 111 anzeigen. Die Informationen vom Positionsbestimmungssystem 124 werden von der Navigationsanwendung 210 verwendet, um eine aktuelle Position des Fahrzeugs 111 zu bestimmen. Alternativ kann der Endbenutzer einen Ausgangsort für die Route spezifizieren. Unter Verwendung dieser Eingaben werden Daten bestimmt, die die Orte eines Ausgangspunktes und eines Fahrziels identifizieren. Diese Funktion kann mittels Programmierung bereitgestellt werden, die in der Navigationsanwendung 210 enthalten ist, welche dann diese Daten an das Routenberechnungswerkzeug 300 weiterleitet. Alternativ kann diese Funktion von einem weiteren Navigationswerkzeug bereitgestellt werden, wie z. B. einem Geo-Codierungswerkzeug, das mit der Navigationsanwendung 210 und dem Routenberechnungswerkzeug 300 kommuniziert.
  • Wenn die Daten gegeben sind, die die Positionen eines Ausgangspunkts und eines Fahrziels identifizieren, berechnet das Routenberechnungswerkzeug 300 eine Route zwischen dem Ausgangspunkt und dem Fahrziel. Das Routenberechnungswerkzeug 300 kann verschiedene Mittel oder Algorithmen für diesen Zweck verwenden. Verfahren für die Berechnung von Routen sind offenbart in der Patentanmeldung mit der laufenden Nr. 09/047.698, eingereicht am 25. März 1998, dessen gesamte Offenbarung hiermit durch Literaturhinweis eingefügt ist. (Die in der obenerwähnten offenbarten Verfahren repräsentieren nur einige der Möglichkeiten, wie Routen berechnet werden können, wobei der beanspruchte Erfindungsgegenstand des vorliegenden Patents auf kein bestimmtes Verfahren der Routenberechnung beschränkt ist. Jedes geeignete Routenberechnungsverfahren, das derzeit bekannt oder in Zukunft entwickelt wird, kann verwendet werden.) Das Routenberechnungswerkzeug 300 liefert eine Ausgabe. In der Ausführungsform der 2 weist die Ausgabe des Routenberechnungswerkzeugs 300 die Form eines Routenberechnungsobjekts 342 auf. 3 ist ein Diagramm, das die Komponenten des Routenberechnungsobjekts 342 darstellt. Das Routenberechnungsobjekt 342 enthält eine geordnete Liste 344, die mehrere Straßensegmentdateneinheiten (nämlich seg1, seg2, seg3 ... seg(n)) angibt. Die mehreren Dateneinheiten repräsentieren die Straßensegmente, die die zusammenhängende navigierbare Route zwischen dem Ausgangspunkt und dem Fahrziel bilden und vom Routenberechnungswerkzeug 300 berechnet worden sind. Da diese Segmente eine zusammenhängende Route bilden, teilt jedes Segment einen Knoten mit seinem Nachfolgersegment in der Liste. Wie z. B. in 3 gezeigt ist, weisen die Segmente "seg2" und "seg3" wie gezeigt einen gemeinsamen Knoten "N3" auf. Das Routenberechnungsobjekt 342 kann andere Informationen 346 zusätzlich zu der geordneten Liste von Straßensegmentdateneinheiten enthalten.
  • In einer vorliegenden Ausführungsform wird das Routenberechnungsobjekt 342, das vom Routenberechnungswerkzeug 300 erzeugt wird, als eine Eingabe in das Routenführungswerkzeug 400 verwendet. Das Routenführungswerkzeug 400 verwendet die Daten im Routenberechnungsobjekt 342 in Verbindung mit zusätzlichen Informationen von der geographischen Datenbank 140, um Navigationsinformationen an die Navigationsanwendung 210 zurückzugeben. Die vom Routenführungswerkzeug 400 an die Navigationsanwendung 210 zurückgegebenen Daten können für eine Präsentation für den Endbenutzer über die Benutzerschnittstellen-Hardware 131 direkt zu den Benutzerschnittstellenfunktionen 220 gesendet werden. Alternativ können die vom Routenführungswerkzeug 400 an die Navigationsanwendung 210 zurückgegebenen Daten von der Programmierung in der Navigationsanwendung 210 weiterverarbeitet werden. Die Präsentation von Informationen für den Endbenutzer über die Benutzerschnittstellen-Hardware 131 kann die Form hörbarer Anweisungen, sichtbarer Textanweisungen, sichtbarer Graphikanweisungen oder irgendeine Kombination von diesen oder andere Typen von Informationspräsentationen aufweisen.
  • C. ROUTENFÜHRUNGSWERKZEUG/MANÖVERERZEUGUNGSWERKZEUG
  • Wie in 2 gezeigt ist, umfasst das Routenführungswerkzeug 400 drei Navigationswerkzeuge: ein Manövererzeugungswerkzeug 500, ein Tokenge neratorwerkzeug 600 und ein Erläuterungswerkzeug 700. In einer bevorzugten Ausführungsform weisen diese Navigationswerkzeuge die Eigenschaften von Werkzeugen auf, wie oben beschrieben worden ist.
  • Das Manövererzeugungswerkzeug 500 verwendet als Eingabe das Routenberechnungsobjekt 342, das vom Routenberechnungswerkzeug 300 gebildet worden ist. (Verfahren zum Bereitstellen der Funktionen, die vom Manövererzeugungswerkzeug 500 ausgeführt werden, sind in der gleichzeitig anhängigen Patentanmeldung mit der laufenden Nr. 08/893.201, eingereicht am 15. Juli 1997, offenbart, deren gesamte Offenbarung hiermit durch Literaturhinweis eingefügt ist. Das hier beschriebene Manövererzeugungswerkzeug ist dem in der angegebenen Anmeldung offenbarten Erfindungsgegenstand ähnlich, mit folgenden Ausnahmen.)
  • Das Manövererzeugungswerkzeug 500 führt wenigstens zwei Funktionen aus. Das Manövererzeugungswerkzeug 500 verwendet die Informationen in der geordneten Liste von Segmentdateneinheiten 344 im Routenberechnungsobjekt 342, um zu bestimmen, welche Orte längs der berechneten Route dem Endbenutzer mit einer Manöver- oder Beratungsanweisung erläutert werden sollen. Außerdem sammelt das Manövererzeugungswerkzeug 500 für jeden der Orte, der als eine Erläuterung erforderlich bestimmt worden ist, Informationen, die notwendig sind, um eine Manöver- oder Beratungsanweisung für den bestimmten Ort zur Verfügung zu stellen.
  • Bei der Ausführung dieser Funktionen verwendet das Manöverwerkzeug 500 zwei Objekte. Wie in 4 gezeigt ist, enthält das Manöverwerkzeug 500 ein (Manövererzeugung)-Konfigurationsobjekt 530 und ein Manövererzeugungsobjekt 540. Das (Manövererzeugung)-Konfigurationsobjekt 530 enthält Manöverregeln 532. Diese Manöverregeln 532 werden unter Verwendung der Daten im Routenberechnungsobjekt 342 und von der geographischen Datenbank 140 angewendet. Diese Regeln bestimmen, wann ein Ort längs der berechneten Route mit einer Manöveranweisung erläutert werden sollte. Wie oben erwähnt worden ist, enthält das Routenberechnungsobjekt 342 die Liste 344 von Dateneinheiten, die Segmente der Straßen repräsentieren. Da diese Liste Straßensegmente repräsentiert, die eine zusammenhängende Route bilden, teilt jedes Straßensegment, dass durch eine Dateneinheit in der Liste 344 repräsentiert wird, einen Knoten (d. h. einen "Endpunkt") mit einem Straßensegment, das durch eine benachbarte Dateneinheit in der Liste repräsentiert wird. Die Manöverregeln 532 werden auf jeden dieser Knoten in der Liste 344 angewendet.
  • Bei der Anwendung der Manöverregeln 532 wird die Fahrtrichtung der berechneten Route berücksichtigt. Das Segment, mit dem die berechnete Route in den Knoten führt, der von den Manöverregeln 532 geprüft wird, wird somit als das Eintrittssegment identifiziert. Das Segment, mit dem die berechnete Route aus dem mittels der Manöverregeln 532 geprüften Knoten herausführt, wird als das Austrittssegment identifiziert. Außerdem werden alle anderen Straßensegmente, die nicht Teil der berechneten Route sind, jedoch diesen gleichen Knoten mit den Eintritts- und Austrittssegmenten teilen, identifiziert. Die Dateneinheiten, die alle diese Straßensegmente repräsentieren, werden von der Datenbank 140 erhalten.
  • Die Manöverregeln 532 werden in Form einer Tabelle 533 bereitgestellt. (Ein Beispiel einer Tabelle, die Manöverregeln enthält, ist in Tabelle 1 im Anhang enthaften.) Die Tabelle 533 definiert mehrere Manövertypen 534 und mehrere Manöverbedingungstests 535. Jeder dieser Manövertypen 534 charakterisiert eine bestimmte Art von Straßenkonfigurationsänderung, die an dem geprüften Knoten aus der berechneten Route auftreten kann. Jedem Manövertyp 534 ist ein eindeutiger Code oder eine eindeutige Nummer zugewiesen.
  • Jeder der Manöverbedingungstests 535 ist formuliert, um nur eine positive oder negative Antwort zu akzeptieren. Jeder Manövertyp 534, der in der Tabelle 533 definiert ist, ist einer eindeutigen Teilmenge der mehreren Manöverbedingungstests 535 zugeordnet. Jeder Manöverbedingungstest 535 verwendet die Daten in den Dateneinheiten, die von der Datenbank 140 erhalten worden sind (wie z. B. die Daten, die dem Eintrittssegment, dem Austrittssegment, den zugänglichen und den unzugänglichen Segmenten und dergleichen zugeordnet sind), um sicherzustellen, dass die im Manöverbedingungstest spezifizierte Bedingung erfüllt ist. Für jeden Knoten in der berechneten Route 344 ist eine Manöveranweisung für diesen Knotenort erforderlich, wenn alle Manöverbedingungstests, die einem Manövertyp 534 zugeordnet sind, erfüllt sind.
  • Für jeden der Orte, die durch das Manöverwerkzeug 500 als eine Erläuterung erfordernd bestimmt worden sind, bildet das Manöverwerkzeug 500 eine Manöverdatenstruktur 550 und fügt die Manöverdatenstruktur zum Manövererzeugungsobjekt 540 hinzu. Jede Manöverdatenstruktur 550, die vom Manövererzeugungswerkzeug 500 gebildet wird, enthält die Informationen, die notwendig sind, um eine Manöveranweisung dem Endbenutzer an dem Ort längs der Route zur Verfügung zu stellen, an dem bestimmungsgemäß dem Endbenutzer eine Erläuterung zur Verfügung zu stellen ist. Einige der Daten, die für die Manöverdatenstruktur benötigt werden, sind in den Segmentdateneinheiten enthalten oder werden aus diesen abgeleitet, die geprüft wurden, um zu bestimmen, ob eine Manöveranweisung an dem Ort des Knotens erforderlich ist. Es kann erforderlich sein, zusätzliche Daten zu erhalten oder aus der Datenbank 140 mittels des Manövererzeugungs-Konfigurationsobjekts herzuleiten.
  • 5 zeigt die Arten von Daten, die in jeder Manöverdatenstruktur 550 enthalten sind. In einer Ausführungsform wird die Manöverdatenstruktur 550 als eine C-Datenstruktur gebildet. Unter Verwendung von Daten von den Segmentdateneinheiten, die den dem Manöver zugeordneten Knoten teilen, sowie irgendwelcher zusätzlicher Daten, die von der geographischen Datenbank benötigt oder hergeleitet werden, sammelt das Manövergeneratorobjekt 540 Daten, die den verschiedenen Elementen der Manöverdatenstruktur 550 entsprechen. Die Daten werden bis zu dem Ausmaß gesammelt, in dem sie verfügbar sind. Elemente der Datenstrukturen können leergelassen werden, wenn keine Daten verfügbar sind (z. B. wenn eine der Straßen an einem Manöverort unbenannt ist).
  • In der Datenstruktur 550 ist ein Feld 550(1)(1) enthalten, das die Anzahl der Segmente identifiziert, die sich an dem Knoten treffen. Die Eintritts- und Austrittssegmente 550(1)(2), 550(1)(3) in den Knoten sind identifiziert. Außerdem sind irgendwelche zugänglichen Segmente 550(1)(4), die den Knoten teilen, identifiziert, sowie irgendwelche unzugänglichen Segmente 550(1)(5), die den Knoten teilen, sind identifiziert. Für jedes der Segmente (Eintrittssegment, Austrittssegment, zugängliches und unzugängliches Segment) sorgt die Datenstruktur 550 für die Identifizierung der Segmentdatenbank-Identifikation (eine DBID) 550(2)(1), der Namen der Segmente (falls vorhanden) 550(2)(2), der Vorzeichen der Segmente (falls vorhanden) 550(2)(3), des Rangs der Segmente 550(2)(4), der Segmentklassifizierung relativ zum Eintrittssegment (Austrittssegment, zugängliches, unzugängliches Segment) 550(2)(5), der Datenbankklassifizierung des Segments (z. B. kontrollierter Zugang, Straße, Rampe) 550(2)(6), und des Winkels des Segments relativ zum Eintrittssegment 550(2)(8). Außerdem enthält die Datenstruktur 550 auch ein Feld, das verwendet werden kann, um den Manövertyp (wie oben beschrieben) 550(4)(2), die Entfernung zum nächsten Manöver 550(4)(4) und die Tatsache, ob das Manöver in einem Mehrfachmanöver enthalten ist 550(4)(1), zu identifizieren. (Ein Mehrfachmanöver kann vom Manövergeneratorobjekt definiert werden, wenn ein Ort, an dem eine Manöveranweisung als erforderlich bestimmt worden ist, so nah an einem weiteren benachbarten Ort liegt, an dem eine Manöveranweisung als erforderlich bestimmt worden ist, das bevorzugt werden kann, die zwei oder mehr Manöveranweisungen dem Endbenutzer gleichzeitig zu präsentieren. Die Entfernung, bei der ein Mehrfachmanöver definiert wird, ist konfigurierbar und kann eine Funktion verschiedener Faktoren sein, einschließlich der Geschwindigkeitsbeschränkungen längs der Straßensegmente, der Entfernung, des Rangs und dergleichen.)
  • Die Datenstruktur kann ferner Felder zum Bereitstellen von Kontextinformationen 550(3) für die Austrittsstraße enthalten. Diese Art von Information kann nützlich sein, wenn die anderen Informationen in der Manöverstruktur nicht ausreichen, um den Ausgang vollständig zu beschreiben, wie z. B. dann, wenn das Austrittssegment unbenannt ist. Die Felder für die Kontextinformationen können eine Zielkette 550(3)(1) enthalten, die den Ausgang des Manövers in den Fällen beschreibt, in denen der Austrittssegmentname unzureichend ist (wie z. B., wenn es unbenannt ist). Die Kontextinformationen 550(3) können ferner ein Feld für einen "Ort" 550(3)(2) enthalten, der den Ort des Ausgangs relativ zu einer weiteren Straße angibt (z. B. vorher, nachher, voraus, rückwärtig, rechts oder links). Die Kontextinformationen 550(3) können ferner ein Feld für einen "Abbiegewinkel" 550(3)(3) enthalten, der den Winkel angibt, der zu nehmen ist, um auf die Austrittsstraße zu gelangen. Die Kontextinformationen können ferner ein Feld für eine "Fahrt richtung" 550(3)(5) enthalten, die während des Startmanövers verwendet werden kann und die anfängliche Fahrtrichtung angibt, die zu nehmen ist (z. B. Nord, Süd, West, Ost, Nordwest und dergleichen). Die Kontextinformationen 550(3) können ferner ein Feld für "relativ zu" 550(3)(4) enthalten. Das Feld "relativ zu" 550(3)(4) wird in einem Startmanöver verwendet. Das Feld "relativ zu" 550(3)(4) gibt eine anfängliche Kreuzung an, in deren Richtung gefahren werden soll. Es kann ferner in den Fällen verwendet werden, in denen das Austrittssegment unbenannt ist (z. B. "nach der Hauptstraße rechts abbiegen"). Die Kontextinformationen 550(3) können ferner ein Feld für "Anzahl von Ausgängen" 550(3)(6) enthalten, das für Kreisverkehrmanöver verwendet werden kann. Dieses Feld "Anzahl von Ausgängen" 550(3)(6) enthält die Anzahl der Ausgänge, die bei Durchfahrt eines Kreisverkehrs zu passieren sind, bevor der gewünschte Ausgang erreicht wird.
  • Zusätzlich zu den obenerwähnten Elementen kann die Manöverdatenstruktur 550 zusätzliche Elemente 550(5) enthalten.
  • Die Manöverdatenstruktur enthält ferner Informationen zur Bereitstellung von Ratschlägen. Ratschläge sind Typen von nützlichen Erläuterungsinformationen, die nicht unbedingt einem Manöver zugeordnet sind. Ratschläge können bereitgestellt werden, wenn eine Änderung des Straßennetzes vorliegt, jedoch ein spezifisches Fahrmanöver nicht erforderlich ist. Zum Beispiel kann ein Ratschlag bereitgestellt werden, wenn eine Brücke oder Tunnel befahren oder verlassen werden. Die Manöverdatenstruktur 550 enthält ein Feld, das eine Auflistung 550(4)(3) von einem oder mehreren Ratschlagtypen enthält. Wie in 4 gezeigt ist, enthält das Manöverkonfigurationsobjekt 530 zusätzlich zu den Manöverregeln 532, die verwendet werden, um zu bestimmen, ob ein Manöver an einem bestimmten Knoten zu erläutern ist, und die zum Bilden der Datenstrukturen 550 hiermit verwendet werden, ferner Ratschlagregeln 570. Die Ratschlagregeln 570 werden auf jeden der Knoten im Routenberechnungsobjekt 342 angewendet. Ähnlich den Manöverregeln 532 liegen die Ratschlagregeln 570 in Form einer Tabelle 572 vor. (Ein Beispiel einer Tabelle, die Ratschlagregeln enthält, ist in Tabelle 2 im Anhang enthalten). Die Ratschlagregeltabelle 572 enthält einen Satz von Ratschlagtypen 576 und einen Satz von Ratschlagbedingungstests 578. Jeder Ratschlagtyp 576 charakterisiert eine bestimmte Art von Ratschlag, die an einem Knoten bereitgestellt werden kann. Jedem Ratschlagtyp 576 ist ein eindeutiger Code oder eine eindeutige Nummer zugewiesen. Jeder der Ratschlagbedingungstests 578 ist so formuliert, dass er nur positive und negative Ergebnisse erlaubt. Eine eindeutige Teilmenge der Ratschlagbedingungstests 578 ist jedem unterschiedlichen Ratschlagtyp 576 zugeordnet. Wenn positive Ergebnisse für alle Ratschlagbedingungstests erhalten werden, die einem Ratschlagtyp 576 zugeordnet sind, wird dieser Ratschlagtyp 576 dem Manöver an diesem Ort zugeordnet.
  • Anders als die Regeln für Manöver erfordern die Regeln für Ratschläge kein eindeutiges Ergebnis. Für einen gegebenen Ort längs einer Route kann es daher einen Ratschlagtyp, mehrere Ratschlagtypen oder keinen Ratschlagtyp geben. Die Nummer oder der Code für jeden Ratschlagtyp 576 ist in der für diesen Ort gebildeten Datenstruktur 550 enthalten.
  • Die Anwendung der Ratschlagregeln ist unabhängig von der Anwendung der Manöverregeln. Somit kann die Anwendung der Ratschlagregeln erfordern, dass eine Ratschlaganweisung an einem Ort längs einer Route bereitgestellt wird, selbst wenn die Anwendung der Manöverregeln am gleichen Ort nicht erfordert, dass eine Manöveranweisung bereitgestellt wird. Wenn die Anwendung der Ratschlagregeln erfordert, dass eine Ratschlaganweisung an einem Ort bereitgestellt wird, jedoch die Anwendung der Manöverregeln am gleichen Ort nicht erfordert, dass eine Manöveranweisung bereitgestellt wird, wird eine Manöverdatenstruktur für diesen Ort gebildet, die die Daten für die Elemente der Datenstruktur bis zu dem Ausmaß, zu dem Daten verfügbar sind, enthält. Eine Manöverdatenstruktur, die für einen solchen Ort gebildet wird, würde einen Manövertyp "0" aufweisen.
  • Das Manövererzeugungs-Konfigurationsobjekt 540 durchläuft die Liste 344 von Dateneinheiten im Routenberechnungsobjekt 342, so dass jeder Knoten längs der berechneten Route mit dem Manöverregeln 532 geprüft wird. Eine Manöverdatenstruktur 550 mit Informationen für jedes der Felder, die oben angegeben sind (bis zu dem Ausmaß, zu dem solche Informationen verfügbar sind) wird für jeden Ort in der berechneten Route gebildet, an dem alle Manöverbedingungstests für irgendwelche der Manövertypen oder alle Ratschlagbedingungstests für irgendeinen der Ratschlagtypen erfüllt sind.
  • Die Manöverdatenstrukturen 550, die mit diesem Prozess gebildet werden, sind der Reihe nach im Manövererzeugungsobjekt 540 enthalten.
  • D. ROUTENFÜHRUNGSWERKZEUG/TOKEN-GENERATORWERKZEUG
  • (1) Überblick
  • Wie in 2 gezeigt ist, verwendet das Token-Generatorwerkzeug als seine Eingabe das Manövererzeugungsobjekt 540, das vom Manövererzeugungswerkzeug 500 gebildet worden ist. Das Token-Generatorwerkzeug 600 enthält ein (Tokengenerator)-Konfigurationsobjekt 620 und ein Tokengeneratorobjekt 650. Unter Verwendung der Informationen in der Liste der Datenstrukturen 550 im Manövererzeugungsobjekt 540 bildet das Tokengeneratorobjekt 650 eine Tokenliste. Das Tokengeneratorobjekt 650 wird vom Erläuterungswerkzeug 700 (oder einem oder mehreren der darin enthaltenen Werkzeuge) der Reihe nach verwendet, um Manöveranweisungen zu bilden, die an die Navigationsanwendung 210 zurückgegeben werden, um die vom Routenberechnungswerkzeug 300 berechnete Route dem Endbenutzer zu erläutern.
  • 6 ist ein Diagramm, das die Komponenten des Tokengeneratorobjekts 650 zeigt. Das Tokengeneratorobjekt 650 enthält eine Tokenliste 652. Die Tokenliste 652 umfasst eine geordnete Sequenz von Token 655. Ein Token 655 wird verwendet, um ein Fragment der Daten zu halten, aus denen die Manöveranweisung gebildet wird, die dem Endbenutzer zu erläutern ist. Token können unabhängig von der physikalischen Form (d. h. sichtbar oder hörbar) sein, in der die Manöveranweisungen bereitgestellt werden. Token können somit entweder in Zeichendaten oder in Graphikdaten (für die sichtbare Anzeige) oder in Audiodaten (für die hörbare Wiedergabe) konvertiert werden. Die Token repräsentieren somit Abstraktionen der für die Erläuterung verwendeten Dateneinheiten.
  • Token können zwei Typen von Daten enthalten: Symbole und Zeichenkettendaten. Symbole werden verwendet, um Wörter und Phrasen (oder Graphiken) darzustellen, die gewöhnlich verwendet werden, wenn Manöveranweisungen bereitgestellt werden, oder wenn aussagekräftige grammatika lische Konstruktionen als Teil von Manöveranweisungen erstellt werden. Zum Beispiel können Symbole für solche Wörter und Phrasen wie "KREUZUNG", "EINFÄDELN", "LINKS ABBIEGEN" und dergleichen verwendet werden. In einer Ausführungsform werden Nummern als Symbole verwendet, so dass die Nummer 00001 verwendet werden kann, um das Wort "KREUZUNG" darzustellen, die Nummer 00002 kann verwendet werden, um das Wort "EINFÄDELN" darzustellen, die Nummer 00003 kann verwendet werden, um die Phrase "LINKS ABBIEGEN" darzustellen, und dergleichen. (Beispiele von Symbolen und Wörtern oder Phrasen, denen diese entsprechen, sind in Tabelle 5 im Anhang enthalten. In Tabelle 5 enthält die zweite Spalte die Symbole und die erste Spalte enthält die Zeichentextketten, die den Symbolen entsprechen.)
  • Symbole können auf Audiodaten, Zeichentextkettendaten, Graphikdaten oder Kombinationen von Audio-, Zeichentextketten- und Graphikdaten abbilden. Die Erläuterungswerkzeuge 700, die im Folgenden beschrieben werden, verwenden diese Abbildungsfähigkeit, um Daten an die Navigationsanwendung 210 auszugeben. Wenn die Manöveranweisungen hörbar bereitgestellt werden sollen, werden die Audiodaten (Dateien oder Teile derselben), die von diesen Symbolen abgebildet werden, vom Erläuterungswerkzeug 700 an die Navigationsanwendung 210 zurückgegeben und von der Software in der Navigationsanwendung 210 und der Hardware in der Benutzerschnittstelle 133 wiedergegeben, so dass die Manöveranweisungen zu hören sind. Wenn die Manöveranweisungen auf einem Videobildschirm angezeigt werden sollen, werden die Zeichentextkettendaten (oder die Graphikdaten), die von diesen Symbolen abgebildet werden, vom Erläuterungswerkzeug 700 an die Navigationsanwendung 210 zurückgegeben und auf einem Videobildschirm der Benutzerschnittstelle 131 angezeigt, um die Manöveranweisungen sehen zu können. Alternativ kann das Erläuterungswerkzeug 700 Kombinationen von Audiodaten, Zeichenkettentextdaten und Graphikdaten zurückgeben, so dass die Manöveranweisungen sowohl hörbar als sichtbar bereitgestellt werden können. (In Tabelle 5 im Anhang enthält die dritte Spalte eine Textbeschreibung dessen, was zu hören ist, wenn die Audiodaten entsprechend dem Symbol in der zweiten Spalte wiedergegeben werden.)
  • Wie oben erwähnt worden ist, können Token auch Zeichenkettendaten anstelle von Symbolen enthalten. Zeichenkettendaten können in Token enthalten sein, um besser ausgearbeitete und/oder aussagekräftige Manöveranweisungen bereitzustellen. Zum Beispiel können Zeichenkettendaten verwendet werden, um die Namen geographischen Merkmalen (z. B. Straßennamen oder Namen interessanter Punkte) zu den Manöveranweisungen hinzuzufügen, um die Anweisungen aussagekräftiger zu machen. Für diese Art von Informationen werden Audiodaten (Dateien oder Teile derselben), in denen der geographische Name in Sprache dargestellt ist, möglicherweise nicht verfügbar sein. Ein Token für diese Art von Daten enthält daher eine Zeichenkette des Namens des geographischen Merkmals. Diese Zeichenkettendaten können aus der geographischen Datenbank 140 erhalten werden, die die Namen der geographischen Merkmale enthält. Zum Beispiel kann die Manöveranweisung "AN DER NÄCHSTEN KREUZUNG LINKS ABBIEGEN" aus Token unter Verwendung nur von Symbolen gebildet werden. Eine genauere Manöveranweisung könnte unter Verwendung des Namens des geographischen Merkmals, das am Manöver beteiligt ist, bereitgestellt werden: "AN DER NÄCHSTEN KREUZUNG IN DIE IRVING PARK ROAD ABBIEGEN." In der letzteren Manöveranweisung würden die Wörter "IRVING PARK ROAD" aus einem Token hergeleitet, das die Zeichenkette "IRVING PARK ROAD" enthält.
  • Token, die Zeichenkettendaten enthalten, können verwendet werden, um sowohl hörbare als auch sichtbare Manöveranweisungen bereitzustellen. Um Manöveranweisungen hörbar aus Token bereitzustellen, die Zeichenketten enthalten, kann eine Text-zu-Sprache-Software verwendet werden.
  • (2) Die Regeltabellen
  • Das Tokengenerator-Konfigurationsobjekt 620 enthält die Komponenten, die für die Erzeugung des Tokengeneratorobjekts 650 verwendet werden. Diese Komponenten enthalten Konfigurationsparameter und Tabellen, die zur Erzeugung einer Liste von Token notwendig sind. Wie in 7 gezeigt ist, enthält das Tokengenerator-Konfigurationsobjekt 620 ein oder mehrere Regeltabellen 630. Jede dieser Regeltabellen 630 kann Regeln enthalten, die auf eine spezifische Art der Erläuterung zugeschnitten sind. Zum Beispiel ist eine Art von Regeltabelle eine Sprachregeltabelle 630(V). Die Sprachre geltabelle 630(V) wird verwendet, um eine Ausgabe in Form eines Tokengeneratorobjekts 650 bereitzustellen, in welchem die Token dafür ausgelegt sind, aussagekräftige hörbare Manöveranweisungen bereitzustellen. Eine weitere Art von Regeltabelle ist eine Textregeltabelle 630(T). Die Textregeltabelle 630(T) wird verwendet, um eine Ausgabe in Form eines Tokengeneratorobjekts 650 bereitzustellen, in welchem die Token dafür ausgelegt sind, aussagekräftige Manöveranweisungen als Text auf einer Videoanzeigevorrichtung zur Verfügung zu stellen. (Im Anhang in Tabelle 3 ist ein Beispiel einer Regeltabelle zum Erzeugen von Token für die visuelle Anzeige gezeigt, während in Tabelle 4 ein Beispiel einer Regeltabelle für die Erzeugung von Token für die hörbare Wiedergabe gezeigt ist.)
  • Obwohl separate Regeltabellen verwendet werden können, um separate Tokengeneratorobjekte für Sprache und Text zu erzeugen, können in einer alternativen Ausführungsform sowohl Sprach- als auch Texterläuterungen vom gleichen Tokengeneratorobjekt bereitgestellt werden, das mittels einer generischen Regeltabelle erzeugt wird.
  • Regeltabellen können für die Erläuterung in unterschiedlichen Sprachen bereitgestellt werden. Regeltabellen werden in unterschiedlichen Sprachen bereitgestellt, um die grammatikalischen Unterschiede der verschiedenen Sprachen zu berücksichtigen. Die Regeltabelle für eine Sprache ordnet die Token im Tokengeneratorobjekt 650 (aus dem die Wörter und Phrasen in den Manöveranweisungen abgeleitet werden) in der richtigen Sequenz für die korrekten grammatikalischen Konstruktionen in der Sprache an, in der die Manöveranweisungen bereitgestellt werden. Zum Beispiel können separate Regeltabellen für Englisch, Französisch, Spanisch, Deutsch und dergleichen bereitgestellt werden.
  • Andere Regeltabellen können ebenfalls bereitgestellt werden. Diese anderen Regeltabellen können für die Erzeugung spezieller Arten von Tokengeneratorobjekten verwendet werden. Wenn z. B. das Navigationssystem beschränkte Videoanzeigefähigkeiten hat, kann eine alternative Regeltabelle verwendet werden, die ein Tokengeneratorobjekt erzeugt, in welchem die daraus hergeleiteten Manöveranweisungen in geeigneter Weise beschränkt sind.
  • Wie in den 8 und 9 (und in den Tabellen 3 und 4 im Anhang) gezeigt ist, enthält jede der Regeltabellen 630 strukturierte Listen von Fällen, einschließlich Tests, zugehörige Maßnahmen und Ausgaben, die auf jede der geordneten mehreren Manöverdatenstrukturen 550 im Manöverobjekt 540 angewendet werden. Für jede Manöverdatenstruktur 550 verwendet das Tokengeneratorobjekt 650 die Regeln in einer der Regeltabellen 630, um eine Ausgabeliste 631 zu bilden. Die Inhalte der Ausgabeliste 631 werden im Tokengeneratorobjekt 650 zu einer geordneten Tokensequenz 633 konvertiert. Die Tokensequenzen 633, die von allen Manöverdatenstrukturen 550 erzeugt werden, werden verwendet, um die Tokenliste 652 zu erstellen, die im Tokengeneratorobjekt 650 enthalten ist. Da jede Manöverdatenstruktur 550 aus dem Manövererzeugungsobjekt 540 verarbeitet wird, wird die für dieses Manöver gebildete Tokensequenz 633 zum Tokengeneratorobjekt 650 hinzugefügt. Genauer wird die Tokensequenz 633, die für jede Manöverdatenstruktur 550 gebildet wird, an das Ende der teilweise gebildeten Liste im Tokengeneratorobjekt 650 angehängt, das die Token enthält, falls vorhanden, die bereits von vorher verarbeiteten Manövern hinzugefügt worden sind. Sobald alle Manöverdatenstrukturen verarbeitet worden sind, bilden die Tokensequenzen 633, die aus allen Manövern 550 gebildet worden sind, die komplette Tokenliste 652 im Tokengeneratorobjekt 650.
  • Aus der Tokenliste 652 im Tokengeneratorobjekt 650 kann die mittels des Routenberechnungswerkzeugs 300 berechnete Route erläutert werden. Die Erläuterung wird durchgeführt, indem die Token im Tokengeneratorobjekt 650 in das geeignete Format konvertiert werden, das von der Navigationsanwendung 210 angefordert wird. Für Token, die Symbole sind, umfasst die Erläuterung das Erhalten der Audiodaten (Dateien oder Teile derselben), der Textzeichenketten oder der Graphikdaten (Dateien oder Teile derselben), auf die die Symbole abgebildet werden. Für Token, die Zeichenketten sind, umfasst die Erläuterung die Rückgabe der Zeichenketten für Textmanöveranweisungen oder das Durchführen einer Text-zu-Sprache-Umsetzung für hörbare Manöveranweisungen.
  • Im Tokengenerator-Konfigurationsobjekt 620 enthält jede der Regeltabellen 630 mehrere Regelsätze 632. Die Regeltabelle 630 enthält Regelsätze 632 für unterschiedliche Kombinationen von Manövertypen und Ratschlagtypen, die in irgendeiner der Manöverdatenstrukturen 550 zu finden sind. Wie oben erwähnt worden ist, enthält jede Manöverdatenstruktur 550 Elemente 550(4)(2) und 550(4)(3), die einen Manövertyp und möglicherweise einen oder mehrere Ratschlagtypen identifizieren. Die Regeltabelle 630 enthält einen Regelsatz 632 für jeden Manövertyp und jede Kombination von Manövertyp und Ratschlagtyp. Zum Beispiel ist in der in 8 gezeigten Regeltabelle 630 ein Regelsatz 632 MAN(0) für den Manövertyp "0" definiert, ein weiterer Regelsatz 632 MAN(1) für den Manövertyp "1" definiert, ein weiterer Regelsatz 632 MAN(2) für den Manövertyp "2" definiert, usw.
  • Wie in 9 gezeigt ist, enthält jeder Regelsatz 632 in der Regeltabelle 630 einen oder mehrere Fälle 634. Innerhalb jedes Regelsatzes ist jeder Fall eindeutig nummeriert, z. B. 1, 2, 3 ..., usw. Die Fälle 634 in jedem Regelsatz 632 berücksichtigen jede Situation, die in der Manöverdatenstruktur 550 auftreten kann, die diese spezifische Kombination von Manövertyp oder Ratschlagtyp aufweist. Die Fälle 634 in jedem Regelsatz 632 sind so geordnet, dass dann, wenn das Konfigurationsobjekt 620 den Regelsatz 632 auf eine Manöverdatenstruktur 550 mit einer spezifizierten Kombination von Manövertyp oder Ratschlagtyp anwendet, der im Regelsatz 632 gelistete erste Fall 634 zuerst angewendet wird.
  • Jede Manöverdatenstruktur 550 wird separat behandelt. Ferner wird jede Manöverdatenstruktur 550 in der Reihenfolge genommen, in der sie im Manövererzeugungsobjekt 540 enthalten ist. Nur die Regelsätze 632, die Fälle enthalten, die zum spezifischen Manövertyp und Ratschlagtyp in der Manöverdatenstruktur 550 passen, werden verwendet.
  • In der in 9 gezeigten Ausführungsform ist ein Regelsatz für einen Manövertyp gleich "–1" definiert. Wenn ein Regelsatz in seinem Manövertypfeld "–1" aufweist, wird er durch einen beliebigen Manövertyp befriedigt. Zum Beispiel wird ein Fall, der im Manövertypfeld eine "–1" aufweist und im Ratschlagtypfeld eine "8" aufweist, auf eine beliebige Manöverdatenstruktur angewendet, die einen Ratschlagtyp "8" aufweist. Die Manöverdatenstruktur kann irgendeinen Manövertyp in ihrem Manövertypfeld aufweisen.
  • Innerhalb eines Regelsatzes wird ein Fall, der im Ratschlagtypfeld "–1" aufweist, durch einen beliebigen Ratschlagtyp befriedigt. Wenn somit ein Fall im Manövertypfeld "4" aufweist und im Ratschlagtypfeld "–1" aufweist, wird er auf eine beliebige Manöverdatenstruktur angewendet, die einen Manövertyp "4" aufweist. Die Manöverdatenstruktur kann einen beliebigen Ratschlagtyp aufweisen. Auf diese Weise können Fälle für Ratschlagtypen für mehr als einen Manövertyp verwendet werden, und Fälle für Manövertypen können für mehr als einen Ratschlagtyp verwendet werden.
  • Wie in 9 gezeigt ist, ist jedem Fall 634 in jedem Regelsatz 632 ein Testfeld 636 zugeordnet. Das Testfeld 636 für jeden Fall 634 identifiziert einen oder mehrere Tests 637, oder das Testfeld 636 kann anzeigen, dass dem Fall keine Tests zugeordnet sind. (Zum Beispiel kann das Testfeld 636 durch Anwesenheit eines Codes, wie z. B. "–1", im Testfeld anzeigen, dass keine Tests erforderlich sind.) In einer Ausführungsform identifiziert das Testfeld 636 jeden Test 637 mittels einer Test-ID. Jeder Test 637 ist so gebildet, dass das Ergebnis des Tests entweder "bestanden" oder "fehlgeschlagen" ist. (In den in den Tabellen 3 und 4 im Anhang enthaltenen beispielhaften Tokenregeltabellen sind zum Zweck der Erläuterung die Namen der Tests anstelle der Test-IDs in den Testfeldern enthalten.)
  • Jeder Test 637 für jeden Fall 634 wird unter Verwendung der Daten in der zugehörigen Manöverdatenstruktur 550 durchgeführt. Zum Beispiel kann einer der Tests 637 die Anwesenheit eines Namens im Namen eines Austrittssegmentfeldes der Manöverdatenstruktur prüfen. Ein weiterer Test kann die Anwesenheit eines Namens im Fahrzielfeld der Manöverdatenstruktur prüfen. Das Tokengeneratorwerkzeug 600 enthält eine Anzahl von Vorgabetests im Tokengeneratorobjekt 650. Zusätzliche Tests können vom Navigationsanwendungsprogramm 210 definiert werden und eingeschlossen werden. (Die Tests 637 sind die Codebasis, die das Tokengeneratorobjekt 650 ausmacht, oder die Tests 637 können dort angeordnet sein, wenn Tests in der Navigationsanwendung 210 definiert sind. Diese Test-IDs, die die Regeln ausmachen, befinden sich im Tokengenerator-Konfigurationsobjekt 620.)
  • Ferner sind jeden Fall 634 ein Maßnahmenfeld 638, ein Erfolgspfadfeld 640, ein Fehlschlagpfadfeld 642 und eine Fallausgabe 643 zugeordnet. Die Inhalte der Fallausgabe 643 können eine Liste eines oder mehrerer Schlüs sel 656, Symbole 668 oder Ketten 674 oder Kombinationen hiervon enthalten, oder alternativ kann die Fallausgabe 643 leer sein. Schlüssel, Symbole und Ketten werden später erläutert. Die Schlüssel, Symbole und Ketten in der Ausgabeliste 631 sind in der Fallausgabe in einer Weise angeordnet, die eine aussagekräftige Erläuterung des gesamten Manövers oder eines Teils desselben bereitstellt, welches unter Berücksichtigung der Arten von Informationen bereitzustellen ist, die in der Manöverdatenstruktur enthalten sind, wie durch die Tests bestimmt wird, die für diesen Fall durchgeführt werden.
  • Das Maßnahmenfeld 638 eines Falls 634 ist so definiert, dass es einen von zwei Werten "ersetzen" oder "anhängen" aufweist. Wenn alle Tests 637, die im Testfeld 636 des Falls 634 spezifiziert sind, bestanden werden, wird die im Maßnahmenfeld 638 des Falls aufgelistete Maßnahme durchgeführt.
  • Wenn das Maßnahmenfeld 638 für einen Fall 634 "anhängen" anzeigt, werden alle Inhalte 645 in der Fallausgabe 643 des Falls hinzugefügt. Dies bedeutet, dass irgendwelche Schlüssel 656, Symbole 668 oder Ketten 674, die in der Fallausgabe 643 des erfolgreich durchlaufenen Falls aufgelistet sind, zu irgendwelchen Schlüsseln 656, Symbolen 668 oder Ketten 674 hinzugefügt werden, die bereits für das gleiche Manöver von einem im Voraus durchgeführten Fall, falls vorhanden, angefügt worden sind. Diese Sammlung von neu angehängten und bereits angehängten Schlüsseln 656, Symbolen 668 oder Ketten 674 wird vorübergehend als mögliche Ausgabeliste 631 für das Manöver gespeichert, während irgendwelche weiteren Fälle (die zusätzliche Tests enthalten können) für das gleiche Manöver durchgeführt werden. Wenn keine Schlüssel 656, Symbole 668 oder Ketten 674 von einem vorangehenden Fall für das gleiche Manöver vorliegen, werden die Inhalte 645 der Fallausgabe 643 des erfolgreichen Falles vorübergehend als eine mögliche Ausgabeliste 631 für das Manöver gespeichert, während irgendwelche Tests, die irgendwelchen weiteren Fällen zugeordnet sind, die dem gleichen Manöver zugeordnet sind, ausgeführt werden.
  • (In den beispielhaften Tokenregeltabellen, die in Tabelle 3 und Tabelle 4 im Anhang enthalten sind, weisen die Fallausgaben nicht die wirklichen numerischen Werte der Symbole auf. Stattdessen zeigen die Fallausgaben im Beispiel der Tabellen 3 und 4 die äquivalenten Testzeichenketten, die von den Symbolen repräsentiert werden. Dies dient Erläuterungszwecken.)
  • Wenn alle Tests 637, die in dem einen Fall 634 zugeordneten Testfeld 636 spezifiziert sind, durchlaufen sind und das Maßnahmenfeld 638 "ersetzen" anzeigt, werden irgendwelche Schlüssel 656, Symbole 668 oder Ketten 674, die bereits für das gleiche Manöver von einem vorangehend durchgeführten Fall angehängt worden sind, falls vorhanden, durch die Inhalte 654 des erfolgreich durchlaufenen neuen Falls ersetzt. Die Schlüssel 656, Symbole 668 oder Ketten 674 dieses erfolgreich durchlaufenen neuen Falls werden vorübergehend als eine mögliche Ausgabeliste 631 für das Manöver gespeichert, während irgendwelche Tests, die irgendwelchen weiteren Fällen zugeordnet sind, die dem gleichen Manöver zugeordnet sind, ausgeführt werden.
  • Wie oben erwähnt worden ist, kann das Testfeld 636 eines Falls 634 anzeigen, dass dem Fall keine Tests zugeordnet sind. Dies kann durch "–1" im Testfeld 636 angezeigt sein. Wenn im Testfeld 636 keine Tests angezeigt sind, wird das Testfeld als für den Fall befriedigt behandelt und die im Maßnahmenfeld 638 spezifizierte Maßnahme wird ausgeführt. Somit wird die Maßnahme, die in dem Maßnahmenfeld 638 eines Falls 634 ohne spezifizierte Tests immer ausgeführt, wenn dieser Fall für das Manöver herangezogen wird.
  • Für erfolgreiche Fälle (d. h. Fälle, in denen alle im Testfeld 636 identifizierten Tests 637 bestanden wurden) wird, nachdem die im Maßnahmenfeld 638 spezifizierte Maßnahme ergriffen worden ist, der nächste Schritt, der durchgeführt wird, der Schritt sein, der im Erfolgspfadfeld 640 des Falls spezifiziert ist. Das Erfolgspfadfeld 640 kann den nächsten Fall identifizieren, der für dieses Manöver durchzuführen ist (z. B. mittels Fallnummer), oder das Erfolgspfadfeld 640 kann anzeigen, dass keine weiteren Fälle für das Manöver durchgeführt werden müssen. Wenn das Erfolgspfadfeld 640 einen weiteren durchzuführenden Fall anzeigt, werden die Tests 637 ausgeführt, die in den Testfeld 636 des neuen Falls spezifiziert sind. Der Prozess wird auf diese Weise fortgesetzt, bis für dieses Manöver keine durchzuführenden Tests mehr angezeigt werden.
  • Für einen Fall, in dem irgendeiner der im Testfeld 636 spezifizierten Tests 637 nicht bestanden wird, wird der Fall als fehlgeschlagen behandelt. Die im Maßnahmenfeld 638 eines fehlgeschlagenen Falles spezifizierte Maßnahme wird nicht ausgeführt. Irgendwelche Dateneinheiten von irgendeinem vorher ausgeführten Fall für dieses gleiche Manöver, die vorübergehend als mögliche Fallausgabe 643 gespeichert worden sind, werden unberührt gelassen.
  • Für einen fehlgeschlagenen Fall ist der nächste durchzuführende Schritt die Maßnahme, die im Fehlschlagpfadfeld 642 spezifiziert ist. Ähnlich dem Erfolgspfadfeld 640 identifiziert das Fehlschlagpfadfeld 642 den nächsten für dieses Manöver durchzuführenden Fall, oder das Fehlschlagpfadfeld 642 kann anzeigen, dass für dieses Manöver keine weiteren Fälle durchzuführen sind.
  • (3) Erzeugung von Token
  • In dieser Phase, nachdem alle anwendbaren Fälle in den Regelsätzen für ein Manöver ausgeführt worden sind, enthalten die Inhalte der Ausgabeliste 631, die für das Manöver erstellt worden ist, die kombinierten Inhalte der Fallausgaben 643 aller erfolgreichen Fälle (mit Ausnahme derjenigen, die durch erfolgreich durchgeführte Fälle ersetzt worden sind, welche eine Ersetzung anstelle eines Anhängens erfordern). Wie oben erwähnt worden ist, können Fallausgaben 643 Schlüssel, Symbole, Ketten oder Kombinationen hiervon enthalten. Diese Schlüssel, Symbole und Ketten in der Ausgabeliste 631 werden vom Tokengeneratorobjekt 650 in Token konvertiert. Die Reihenfolge, in der die Symbole, Schlüssel und Ketten in der Ausgabeliste enthalten sind, die für jedes Manöver erzeugt wird, wird in der hieraus gebildeten geordneten Tokensequenz beibehalten.
  • Die 8 und 10 zeigen die Inhalte der Manöverausgabeliste 631, die aus Schlüsseln, Symbolen und Ketten besteht. Diese können alle durch geeignete Zeichen unterschieden werden. In der Ausführungsform der 10 werden Schlüssel von Winkelklammern (< >) umfasst, während Ketten von Anführungszeichen (" ") umfasst werden. Ein Eintrag in einer Ausgabeliste 631, der weder von Winkelklammern noch von Anführungszeichen umfasst ist, wird als Symbol aufgefasst. Jeder Schlüssel, jedes Symbol und jede Kette in der Ausgabeliste 631 bildet ein Token, das zum Tokengeneratorobjekt hinzugefügt wird.
  • a. Symbole
  • Symbole 688 werden verwendet, um diejenigen Abschnitte der Manöveranweisungen darzustellen, die dem Endbenutzer eine Aussage vermitteln. In der Manöveranweisung z. B., die den Text "RECHTS ABBIEGEN AUF MICHIGAN AVENUE" anzeigt, wären ein oder mehrere Symbole in der Ausgabeliste des Manövers enthalten, um die Phrase "RECHTS ABBIEGEN AUF" darzustellen. Ein Schlüssel würde in der Ausgabeliste des Manövers verwendet, um die Phrase "MICHIGAN AVENUE" darzustellen.
  • In diesem Beispiel wäre das Symbol in der Ausgabeliste 631 des Manövers in einer Fallausgabe 631 enthalten, die von einem der erfolgreichen Fälle hinzugefügt worden ist, die für das Manöver ausgeführt worden sind. Der Fall, der die Fallausgabe hinzugefügt hat, die dieses Symbol enthält, kann als ein Test in dessen Testfeld enthalten sein, der geprüft hat, ob der Name der Straße im Straßennamenfeld für die Segmentdateneinheit, die im Austrittssegment identifiziert ist, verschieden war von dem Namen der Straße im Straßennamenfeld für die Segmentdateneinheit, die im Austrittssegmentfeld identifiziert ist.
  • Beim Bilden der geordneten Tokensequenz 633 aus einer Manöverausgabeliste 631, werden Symbole dann, wenn sie herangezogen werden, zu Token geformt. Jedes Symbol in der Manöverausgabeliste wird in ein Token in der daraus gebildeten geordneten Tokensequenz umgeformt.
  • (In einer Entwicklungsausführungsform kann es einfacher sein, auf Symbole mittels Wörtern oder Phrasen Bezug zu nehmen, die die Symbole repräsentieren. Dementsprechend erlaubt das Tokengeneratorwerkzeug Entwicklern, die Wörter und Phrasen zu verwenden, die die Symbole repräsentieren, anstelle der wirklichen numerischen Symbole.)
  • b. Schlüssel
  • Schlüssel werden verwendet, um auf Daten Bezug zu nehmen, die in der Manöverdatenstruktur enthalten sind. Daher sind Schlüssel relativ dynamisch. Jede Manöverdatenstruktur im Manövererzeugungsobjekt kann unterschiedlich Daten enthalten, und daher können sich die Manöverdatenstrukturelemente, auf die sich die Schlüssel beziehen von einer Manöverdatenstruktur zur nächsten ändern. Wenn z. B. gewünscht ist, eine Manöveranweisung dem Endbenutzer bereitzustellen, die den Text "RECHTS ABBIEGEN AUF MICHIGAN AVENUE" anzeigt, würde ein Schlüssel in der Fallausgabeliste verwendet, um auf den Namen des Austrittssegments (d. h. "MICHIGAN AVENUE") Bezug zu nehmen. In diesem Beispiel könnte der Schlüssel die Form annehmen:
    <NAME_EXIT_SEGMENT>.
  • Bei der Ausbildung der geordneten Tokensequenz 633 aus dieser Manöverausgabeliste 631 wird dann, wenn ein Schlüssel herangezogen wird, die entsprechende Dateneinheit, die in der Manöverdatenstruktur enthalten ist, identifiziert. Diese Dateneinheit wird verwendet, um den Schlüssel zu bilden. Dieser Schlüssel wird anschließend zu einem Token erweitert, welches anschließend zur geordneten Tokensequenz 633 für dieses Manöver hinzugefügt wird.
  • In diesem Beispiel würde der Schlüssel in der Ausgabeliste 631 des Manövers in einer Fallausgabe 631 enthalten sein, die von einem der erfolgreichen Fälle hinzugefügt wird, die für das Manöver ausgeführt werden. Der Fall, der die Fallausgabe hinzugefügt hat, die diesen Schlüssel enthält, kann einen Test in seinem Testfeld enthalten, der prüft, ob die Manöverdatenstruktur 550 Daten im Straßennamenfeld (550(2)(2) in 5) für die Segmentdateneinheit enthält, die im Austrittssegmentfeld (550(1)(2) in 5) identifiziert ist.
  • Erweiterungsfunktion. Jeder Schlüssel weist eine zugehörige Erweiterungsfunktion 670 auf, die verwendet wird, um den Schlüssel zu einem Token zu erweitern, welches anschließend in die geordnete Tokensequenz 633 für das Manöver eingeschlossen wird. Eine Erweiterungsfunktion wird einem Schlüssel zugeordnet, wenn sie definiert wird. Die Erweiterungsfunktion 670 berücksichtigt irgendwelche Arten von Formatierung oder Stilbetrachtungen, die sich auf die Ausbildung einer benutzerfreundlichen Anweisung aus den Daten, aus denen der Schlüssel hergeleitet wurde, beziehen. (Ähnlich den Tests 637 ist der Code für die Erweiterungsfunktionen in der Codebasis des Tokengeneratorobjekts 650 angeordnet. Wenn Schlüssel erweitert werden, verwenden die Erweiterungsfunktionen Daten, wie z. B. Stile und Elementabbildungen, die im Folgenden beschrieben werden und im Tokengenerator-Konfigurationsobjekt 620 angeordnet sind).
  • Stile. Wenn bestimmte Arten von Schlüssel erweitert werden, gibt es verschiedene Möglichkeiten, wie die durch den Schlüssel repräsentierten Daten ausgedrückt werden können. Zum Beispiel kann eine Manöveranweisung eine Entfernung zum nächsten Manöver angeben. Ein Schlüssel würde für diesen Zweck verwendet. Der Schlüssel kann in der Fallausgabe eines Falles enthalten sein, der die Anwesenheit von Daten im Manöverdatenstrukturfeld für die Entfernung zum nächsten Manöver prüft (d. h. 550(4)(4) in 5). Wenn in diesen Feld Daten vorhanden sind, würde die Fallausgabe zu der Manöverausgabeliste 631 hinzugefügt. Die Dateneinheit, auf die vom Schlüssel Bezug genommen wird, wäre eine Zahl (z. B. 1.500), die die Entfernung zum nächsten Manöver in Metern angibt. Es gibt jedoch unterschiedliche Möglichkeiten, wie diese Informationen ausgedrückt werden können. Zum Beispiel kann eine Entfernung von "1.500 Metern" im Englischen auf die Folgenden unterschiedlichen Arten ausgedrückt werden: "1,5 km", "1 and a half km", "1500 m", "fifteen hundred meters", "1 km 500 m" und dergleichen. Einige dieser Möglichkeiten können bevorzugt werden, wenn das Manöver hörbar erläutert wird, während andere Möglichkeiten vorgezogen werden können, wenn das Manöver auf einer Videoanzeigevorrichtung erläutert wird. In jedem Fall wird vorgezogen, die Erläuterung des Manövers konsistent zu machen. Es gibt ähnliche Betrachtungen bezüglich der Ausdrucksweise der Daten, auf die vom Schlüssel Bezug genommen wird, in unterschiedlichen Sprachen.
  • Wenn ein Schlüssel erweitert wird, sorgt das Tokengeneratorwerkzeug für die Auswahl, wie bestimmte Arten von Schlüsseln ausgedrückt werden. Außerdem sorgt das Tokengeneratorwerkzeug für die Berücksichtigung von Ausnahmen, falls angemessen, um Spracheigenheiten zu berücksichtigen. Das Tokengeneratorwerkzeug sorgt dafür, dass ein Schlüssel einen Stilcode 692 aufweist, der diesem zugeordnet ist. Ein Stilcode wird im Schlüssel verwendet, um die Art zu definieren, in der der vom Schlüssel repräsentierte Wert ausgedrückt wird. Dieser Stilcode wird von der Erweiterungsfunktion verwendet, wenn der Schlüssel erweitert wird.
  • Das Tokengenerator-Konfigurationsobjekt 620 enthält ein oder mehrere Stile zum Ausdrücken unterschiedlicher Arten von Informationen, die in Schlüsseln enthalten sind, wie z. B. eine Entfernung, eine Zeit, Zahlen und dergleichen. Diese Stile sind durch Stil-IDs identifiziert, wie z. B. "1", "2" und dergleichen. Ein Stilcode kann an einen Schlüssel angeheftet sein und wird verwendet, um die Art zu bestimmen, in der der vom Schlüssel repräsentierte Wert ausgedrückt wird. Die Verwendung eines Stils ist im folgenden Beispiel dargestellt:
  • Beispiel 1
  • Ein Schlüssel ist in einer Fallausgabe als <DISTANCE_FROM_ORIGIN:1> definiert. Im Schlüssel ist der Wert "1", der dem Doppelpunkt folgt, der Stilcode.
  • Im Tokenkonfigurationsobjekt ist ein Stil mit einer ID gleich 1 definiert als dafür sorgend, dass der Schlüssel ausgedrückt wird als
    x meters
    wobei x der Wert im Schlüssel DISTANCE_FROM_ORIGIN ist. Wenn der Wert des entsprechenden Elements DISTANCE_FROM_ORIGIN der Manöverdatenstruktur gleich "7" ist, dann bildet die Erweiterungsfunktion 670 ein Token aus diesem Schlüssel, in dem die Zeichenkette "meters" an eine Zeichenkette angehängt wird, die aus dem Wert von DISTANCE_FROM_ORIGIN gebildet wird. Die resultierende Zeichenkette
    "7 meters"
    bildet die Inhalte eines Tokens, das an die geordnete Tokensequenz für dieses Manöver angehängt wird.
  • Beispiel 2
  • Der Stilcode, der am Schlüssel angehängt ist, ist gleich "2". Dieser Stil ist in einem Tokenkonfigurationsobjekt definiert als
    x*(1,61) miles
  • Wenn der Wert von DISTANCE_FROM_ORIGIN in der Manöverdatenstruktur gleich "7" ist, dann bildet die Erweiterungsfunktion 670 ein Token aus diesem Schlüssel, das die folgende Zeichenkette enthält:
    "11,27 miles"
  • Formatierer. Ein weiterer Faktor, der zu berücksichtigen ist, wenn bestimmte Arten von Schlüsseln erläutert werden, bezieht sich auf die Anzahl der Dezimalstellen, die in einer Zahl enthalten sein sollen, oder die Anzahl der Zeichen, die in einem Namen enthalten sein sollen. Wenn z. B. ein Schlüssel verwendet wird, um eine Entfernung zum nächsten Manöver auszudrücken, können das Navigationssystem und die geographische Datenbank eine Computerverarbeitungsfähigkeit und eine Genauigkeit aufweisen, um die Entfernung zum nächsten Manöver auf sieben Dezimalstellen zu bestimmen. Für einen Endbenutzer jedoch, der mit dem Fahren eines Automobils beschäftigt ist, wäre dieser Genauigkeitsgrad wahrscheinlich unnötig.
  • Die Erweiterungsfunktion 670 im Tokengeneratorwerkzeug 700 sorgt ferner für die Auswahl der Anzahl von Stellen, in der bestimmte Arten von Schlüsseln ausgedrückt werden. Außerdem sorgt das Tokengeneratorwerkzeug für die Berücksichtigung von Ausnahmen, falls angemessen, um Spracheigenheiten zu berücksichtigen. Das Tokengeneratorwerkzeug sorgt dafür, dass ein Schlüssel einen ihm zugeordneten Formatierer aufweisen kann. Ein Formatierercode 688 wird verwendet, um die Anzahl der Dezimalstellen zu definieren, die beim Ausdrücken bestimmter Token verwendet werden sollen, welche durch bestimmte Schlüssel repräsentiert werden. Die Verwendung eines Formatierercodes ist im folgenden Beispiel dargestellt:
    <DISTANCE_TO_NEXT_MANEUVER%2>
  • Der Wert nach dem Prozentzeichen ist der Formatierercode. Dieser Formatierercode wird verwendet, um den Schlüssel zu formatieren. Die Schlüsselerweiterungsfunktion verwendet diese Information im Formatierercode, wenn die Token erstellt werden. In diesem Beispiel ist die Entfernung zum nächsten Manöver auf nur zwei Dezimalstellen begrenzt.
  • Der Formatierercode kann verwendet werden, um Zeichennamen auf eine spezifische Anzahl von Zeichen zu stutzen. Der Formatierercode kann auf diese Weise verwendet werden, um die Anzeige bestimmter langer geographischer Namen zu erleichtern. Wenn er mit Schlüsseln verwendet wird, die Namen von Straßen, Städten oder interessanten Punkten repräsentieren, stutzt die Formatiererfunktion den Wert in den Schlüsseln auf die Anzahl von Zeichen, die im Formatierercode spezifiziert ist.
  • Elementwertabbildungen. Ein weiterer Faktor bezieht sich auf die Erweiterung anderer Arten von Schlüsseln. Bestimmte Arten von Schlüsseln werden verwendet, um Daten zu repräsentieren, die einer Übersetzung oder Abbildung unterliegen, wenn sie ausgehend von einem Wert in der Manöverdatenstruktur zu einem weiteren Wert im Token erweitert werden. Ein Beispiel eines Schlüssels dieser Art enthält die Fahrtrichtung. Es kann erwünscht sein, eine Manöveranweisung wie z. B. "FAHRTRICHTUNG NORDWEST AUF ROUTE 95" auf einem Anzeigebildschirm bereitzustellen. Das Wort "NORDWEST" in der Manöveranweisung wird aus einem Token hergeleitet, das ein Symbol enthält, welches seinerseits aus einem Schlüssel für die Fahrtrichtung für das Manöver in der Manöverdatenstruktur gebildet wurde. Ein Schlüssel für die Fahrtrichtung (z. B. <CONTEXT_HEADING>) bezieht sich auf das Fahrtrichtungselement in der Manöverdatenstruktur (550(3)(5) in 5). In der Manöverdatenstruktur kann die Fahrtrichtung als eine Zahl ausgedrückt sein. Diese Zahl kann z. B. in dem Bereich 0-255 liegen, wobei 0 Norden bezeichnet und jede der anderen Zahlen (1-255) ausgehend hiervon eine relative Gradzahl im Uhrzeigersinn bezeichnet. Die Erweiterungsfunktion sorgt für die Übersetzung der Form, in der die Fahrtrichtung im Schlüssel ausgedrückt ist (z. B. 223), in eine Form, die in einem Token enthalten ist, welches dann als Wort (z. B. "NORDWEST") in einer Manöveranweisung ausgedrückt werden kann.
  • Um diese Funktion zur Verfügung zu stellen, verwendet die Erweiterungsfunktion 670 eine Elementwertabbildung 680. In einer bevorzugten Ausführungsform ordnet die Elementwertabbildung 680 die Werte, die die Schlüssel annehmen können, nicht direkt den Zeichenketten zu. Stattdessen ordnet die Elementwertabbildung 680 die Werte der Schlüssel Symbolen zu. Diese Symbole werden anschließend in Token umgeformt. Diese Symbole werden in der gleichen Weise verwendet wie die Symbole, die zum Darstellen gewöhnlich verwendeter Manöveranweisungen verwendet werden. Genauer bilden diese Symbole entweder auf Zeichenketten für eine Texterläuterung oder auf Audiodaten für eine hörbare Erläuterung ab.
  • Um dieses Merkmal zur Verfügung zu stellen, weisen wenigstens einige Elemente der Manöverstruktur 550 eine Manöverdatenstrukturelement-ID auf. Ein Satz von Wert-zu-Token-Abbildungen ist jedem dieser Manöverstrukturelement-IDs zugeordnet. Die Elementwertabbildung 680 sorgt für die Zuordnung unterschiedlicher Symbole mit unterschiedlichen Werten in jedem Feld der Manöverstruktur. Wenn anschließend ein Schlüssel für dieses Element erweitert wird und dieses Element einen Elementwert aufweist, der für dieses in einer Elementwertabbildung definiert ist, wird ein Token erzeugt, das das zugeordnete Symbol enthält.
  • Zum Beispiel kann ein Satz von Elementwertabbildungen für das Manöverdatenstrukturelement <CONTEXT_HEADING> definiert sein. Der Satz kann acht Elementwerte für die Richtungen "Nord", "Süd", "Ost" oder "West", "Nordost" und dergleichen enthalten. Jedem dieser Elementwerte ist ein numerisches Symbol zugeordnet, wie z. B. 1, 2, 3, 4, 5 und dergleichen. Wenn der Schlüssel <CONTEXT_HEADING> erweitert wird, verwendet die Erweiterungsfunktion die Elementwertabbildung 680, um das Symbol für den Wert im Schlüssel nachzuschlagen und erzeugt das entsprechende Token, das das Symbol enthält.
  • Die Verwendung von Elementwertabbildungen für bestimmte Arten von Schlüsseln trägt dazu bei, das Tokengeneratorwerkzeug flexibel und sprachunabhängig zu machen. Durch Erweitern des Schlüssels auf ein Symbol anstelle einer Zeichenkette wird die Sprachunabhängigkeit und die Formatunabhängigkeit (Audio gegenüber Video) beibehalten. Das im Token enthalte ne Symbol kann mittels des Erläuterungswerkzeugs 700 auf eine Zeichenkette, Sprachdaten oder Graphikdaten in irgendeiner gewählter Sprache abgebildet werden.
  • c. Ketten
  • Wie oben erwähnt worden ist, kann die Manöverausgabeliste 631 ferner Ketten 674 enthalten. Ähnlich Symbolen und Schlüsseln treten Ketten in einer Ausgabeliste 631 auf, wenn ein erfolgreicher (und nicht ersetzter) Fall für dieses Manöver die Kette in seiner Fallausgabe enthält. Eine Kette 674 umfasst gewöhnliche Zeichendaten. Ketten können für eine textförmige Führung nützlich sein, wo die Inhalte der Kette visuell auf einem Anzeigebildschirm dem Endbenutzer angezeigt werden. Wenn Ketten zu Token konvertiert werden, bildet die Kette der Zeichendaten das Token, welches anschließend in der Tokenliste für dieses Manöver eingeschlossen wird. Ketten können auch verwendet werden, um Steuerzeichen zu enthalten, die für die Formatierung der Textausgabe verwendet werden. Zum Beispiel kann eine Kette, die aus einem einzelnen Leerzeichen besteht (z. B. " "), zwischen einem Symbol 668 und einem Schlüssel 656 in einer Ausgabeliste 631 platziert sein. Diese Kette wird in ein Token konvertiert, das ein einzelnes Leerzeichen repräsentiert. Wenn anschließend das Manöver dem Endbenutzer auf einem Anzeigebildschirm visuell angezeigt wird, erscheint zwischen dem Text, der aus dem das Symbol enthaltende Token hergeleitet wird, und dem Text, der in dem aus dem Schlüssel erweiterten Token enthalten ist, ein Leerzeichen.
  • Ketten können für andere Formatierungen verwendet werden, wie z. B. Tabellen, Zeilenrückläufe und dergleichen. Herkömmliche Steuerzeichen können zu diesem Zweck verwendet werden.
  • Ketten können auch für die Anzeige anderer Textdaten verwendet werden. Ketten können ferner zur Erläuterung von Sprachdaten unter Verwendung einer Text-zu-Sprache-Konversionssoftware verwendet werden.
  • (4) Kombinierte Manöver
  • Es gibt wenigstens einige Möglichkeiten, wie Manöveranweisungen über eine berechnete Route dem Endbenutzer eines Navigationsanwendungsprogramms zur Verfügung gestellt werden können. Eine Möglichkeit ist, alle Manöveranweisungen dem Endbenutzer gleichzeitig zur Verfügung zu stellen. Eine weitere Möglichkeit ist, Manöveranweisungen dem Endbenutzer zeitlich einzeln zur Verfügung zu stellen. Diese letztere Möglichkeit kann verwendet werden, wenn der Endbenutzer die berechnete Route fährt, so dass die Manöveranweisung dem Endbenutzer eine bestimmte Zeitspanne im Voraus bereitgestellt wird, wenn das Manöver erforderlich ist. Unabhängig von der Art, in der die Manöveranweisungen dem Endbenutzer bereitgestellt werden, können die Manöveranweisungen aussagekräftiger gemacht werden, wenn sie in Kollektionen oder Präsentationen organisiert sind. Wenn z. B. ein Fahrer einen einzigen Linksabbiegevorgang an einer nahenden Kreuzung durchzuführen hat und anschließend drei Meilen zu fahren hat, kann eine Manöveranweisung auf einem Anzeigebildschirm dem Fahrer präsentiert werden, die angibt: "BIEGE AN DER NÄCHSTEN KREUZUNG LINKS AB UND FAHRE 3 MEILEN." Wenn jedoch der Fahrer an einer nahenden Kreuzung links abbiegen soll und anschließend rechts auf eine Auffahrt 100 Fuß nach dem Linksabbiegevorgang rechts abbiegen soll, und anschließend 3 Meilen fahren soll, kann eine Manöveranweisung bereitgestellt werden, die angibt: "AN DER NÄCHSTEN KREUZUNG LINKS ABBIEGEN UND ANSCHLIESSEND UNMITTELBAR RECHTS AUF DIE AUFFAHRT ABBIEGEN, ANSCHLIESSEND DREI MEILEN FAHREN." Im letzteren Beispiel kann es, obwohl das Manövererzeugungswerkzeug separate Manöverdatenstrukturen für das Linksabbiegen an der Kreuzung und das Rechtsabbiegen auf die Rampe erzeugt haben könnte, vom Standpunkt des Endbenutzers her aussagekräftiger sein, über beide Manöver gleichzeitig informiert zu werden. Wenn daher Manöveranweisungen einem Endbenutzer bereitgestellt werden, kann es wünschenswert sein, mehr als ein Manöver zusammenzufassen, wenn diese dem Endbenutzer präsentiert werden. Diese Betrachtung gilt, egal ob die Manöver hörbar oder sichtbar präsentiert werden.
  • Bestimmte Arten von Regeln können in der Regeltabelle verwendet werden, um die Präsentation und die Gruppierung von Manövern zu berücksichtigen. Zum Beispiel kann ein Fall in einem Regelsatz das Feld Entfernung-zum-nächsten-Manöver der Manöverdatenstruktur prüfen, und dann, wenn es nicht leer ist, eine Fallausgabe enthalten, die Symbole für die Wörter oder Phrase "DIE ENTFERNUNG ZUM NÄCHSTEN MANÖVER IST" enthält, gefolgt von einem Schlüssel, der den Wert im Feld Entfernung-zum-nächsten-Manöver annimmt. Da dieser Fall für viele, wenn nicht die meisten, Manövertypen verwendet werden kann, kann er als ein Fall erstellt werden, der nach jedem Manöver durchgeführt wird. Auf diese Weise muss dieser Fall nicht in allen Regelsätzen für jeden Manövertyp wiederholt werden. Dieser Fall kann erstellt werden, um nach jedem Manöver ausgeführt zu werden, indem er einem Manövertyp (z. B. –3) zugeordnet wird, und dafür gesorgt wird, dass ein Fall mit dem Manövertyp –3 nach jedem Manöver ausgeführt wird.
  • Verschiedene Arten von Regeln können auf diese Weise erstellt werden. Für Formatierungszwecke kann es z. B. erwünscht sein, Zeilenumbrüche oder Seitenumbrüche nach einem angezeigten Manöver einzufügen. Regeln, die Fälle enthalten, können für diesen Zweck erstellt werden, wobei diese Fälle nach jedem angezeigten Manöver ausgeführt werden. Eine weitere Regel kann erstellt werden, um vor jedem Manöver ausgeführt zu werden, um z. B. das Manöver anhand der Nummer oder des Typs zu identifizieren.
  • Wenn die Fahrmanöver relativ dicht beieinander liegen, wie im obigen Beispiel, kann es wünschenswert sein, diese gemeinsam zu gruppieren, so dass sie dem Endbenutzer als eine kombinierte Manöveranweisung präsentiert werden. Eine Regel kann erstellt werden, um auf Mehrfachmanöver zu prüfen. Diese Regel würde einen Fall enthalten, der das Mehrfachmanöverkennzeichen 550(4)(1) der Manöverdatenstruktur (in 5) prüft, um zu bestimmen, ob ein Teil eines Mehrfachmanövers vorliegt. Trifft dies zu, wird die Formatierung, die ein Manöver vom nächsten trennt, nur nach dem Letzten einer Serie von Mehrfachmanövern verwendet. Auf diese Weise können Manöver, die in verschiedenen Manöverdatenstrukturen enthalten sind, dem Endbenutzer gleichzeitig als kombinierte Manöver präsentiert werden.
  • E. ROUTENFÜHRUNGSWERKSZEUG/ERLÄUTERUNGSWERKZEUGE
  • Nachdem das Tokengeneratorwerkzeug 600 die Liste der Token im Tokengeneratorobjekt 650 erstellt hat, verwendet das Erläuterungswerkzeug 700 das Tokengeneratorobjekt 650, um der Navigationsanwendung 210 Daten zurückzugeben, um die berechnete Route dem Endbenutzer zu erläutern. Die Art der vom Erläuterungswerkzeug 700 an die Navigationsanwendung 210 zurückgegebenen Daten kann so konfiguriert sein, dass sie den Hardware-Betriebsmitteln des Navigationssystems entspricht. Wenn somit das Navigationssystem nur Textanweisungen unterstützt, enthält die Art der vom Erläuterungswerkzeug 700 zurückgegebenen Daten Textdaten, jedoch keine Audio- oder Graphikdaten.
  • Wenn das Navigationssystem mehr als einen Typ von Routenführungserläuterungsformat unterstützt, kann die Navigationsanwendung 210 diese vom Erläuterungswerkzeug 700 zurückgegebenen Daten anfordern, die einer bestimmten oder mehreren dieser Arten entsprechen. Diese Anforderung von der Navigationsanwendung 210 kann zum Zeitpunkt einer Anfrage zur Routenberechnung und Führung vom Endbenutzer gestellt werden. Alternativ kann das Erläuterungswerkzeug 700 mit Vorgaben von der Navigationsanwendung 210 konfigurierbar sein, so dass die gleichen oder mehr Arten von Erläuterung (Text, Sprache oder beides) zurückgegeben werden.
  • Wie in den 2 und 11 gezeigt ist, kann das Erläuterungswerkzeug 700 ein oder mehrere Werkzeuge umfassen. In einer Ausführungsform enthält das Erläuterungswerkzeug 700 drei Werkzeuge: ein Sprachführungswerkzeug 800, ein Textführungswerkzeug 840 und ein Graphikführungswerkzeug 870. In alternativen Ausführungsformen kann das Erläuterungswerkzeug 700 zusätzliche Werkzeuge enthalten, oder alternativ kann das Erläuterungswerkzeug 700 weniger als diese drei Werkzeuge enthalten, wie z. B. nur einen oder zwei dieser Werkzeuge. Die Funktion dieser drei Erläuterungswerkzeuge wird im Folgenden beschrieben.
  • Wie in 11 gezeigt ist, wo zu erst auf das Sprachführungswerkzeug 800 Bezug genommen wird, empfängt das Sprachführungswerkzeug 800 die im Tokengeneratorobjekt 650 enthaltene Tokenliste vom Tokengeneratorwerk zeug 600. Das Sprachführungswerkzeug 800 wird in einer Ausführungsform verwendet, die Symbolaudiodatendateien 802 enthält. Diese Symbolaudiodatendateien 802 können in der geographischen Datenbank 140 enthalten sein, oder die Symbolaudiodatendateien 802 können alternativ in einer weiteren Datenbank oder auf einem anderen Medium enthalten sein, das für das Sprachführungswerkzeug 800 zugänglich ist. Jede dieser Symbolaudiodatendateien 802 enthält Daten, die in Schall konvertiert werden können. Genauer enthält jede dieser Symbolaudiodatendateien 802 Daten, die ein gesprochenes Wort oder eine Phrase ausdrücken, wenn sie unter Verwendung geeigneter Hardware und Software in Navigationssystem wiedergegeben werden. Zum Beispiel können Symbolaudiodatendateien 802 für die gesprochenen Wörter und Phrasen für "ABBIEGEN", "LINKS", "BLEIBE AUF", "KREUZUNG" und dergleichen bereitgestellt werden.
  • Wenn das Sprachführungswerkzeug 800 die Token verarbeitet, wird jedes Token in der Reihenfolge genommen, in der es im Tokenerzeugungsobjekt 650 enthalten ist. Wie oben erwähnt worden ist, können Token entweder Symbole oder Ketten sein. Jedes der Token, das ein Symbol ist, bildet auf ein oder mehrere Symbolaudiodatendateien 802 ab. Unter Verwendung eines Index 808 schlägt das Sprachführungswerkzeug 800 die geeignete Symbolaudiodatendatei, die dem Symbol zugeordnet ist, nach. Dieser Index 808 kann in der geographischen Datenbank 140 enthalten sein, oder alternativ kann der Index 808 in einer weiteren Datenbank oder auf einem anderen Medium enthalten sein, das dem Sprachführungswerkzeug 800 zugänglich ist. Das Sprachführungswerkzeug 800 greift auf die geeignete Symbolaudiodatei zu und gibt diese an die Navigationsanwendung zurück. Die Sprachregeln 630 (in 7), die die Token im Tokengeneratorobjekt 650 bilden, ordnen diese anschließend in der richtigen Sequenz für die Spracherläuterung an. Wenn daher das Sprachgeneratorwerkzeug 800 die Audiodatendateien 802, die von den Token repräsentiert werden, an die Navigationsanwendung 210 zurückgibt, behält das Sprachgeneratorwerkzeug 800 diese in der Reihenfolge, die den Token entspricht, aus denen diese hergeleitet wurden.
  • Wie oben erwähnt worden ist, können Token auch Ketten sein. Das Sprachführungswerkzeug 800 kann ferner Token verarbeiten, die Ketten sind.
  • Ketten können als Token verwendet werden, um die Namen von Straßen, Stadtbezirken, interessanten Punkten und dergleichen auszudrücken. Die Ketten, die Token bilden, können aus der geographischen Datenbank 140 hergeleitet werden, die Zeichenkettendaten für die Namen von Straßen, Stadtbezirken, interessanten Punkten und dergleichen enthält. Diese Ketten können aus Schlüsseln hergeleitet werden, die Elemente der Manöverdatenstruktur bezeichnen. Ketten, die Token bilden, können ferner in den Fallausgaben in den Regeltabellen im Tokengenerator-Konfigurationsobjekt 620 definiert sein. Token, die Ketten sind, weisen keine ihnen zugeordneten Symbolaudiodatendateien 802 auf. Es kann daher ein Text-zu-Sprache-Softwareprogramm 812 verwendet werden, um eine Audiodatendatei zum Ausdrücken der Kette der Daten im Token zu erzeugen. Das Text-zu-Sprache-Softwareprogramm 812 kann als Teil des Sprachführungswerkzeugs 800 enthalten sein, oder alternativ kann das Text-zu-Sprache-Softwareprogramm 812 als Teil der Navigationsanwendung enthalten sein. Wenn das Sprachführungswerkzeug 800 ein Token heranzieht, das eine Kette von Daten ist, erzeugt das Text-zu-Sprache-Softwareprogramm 812 eine Audiodatendatei aus der Kette der Zeichendaten, die im Token enthalten sind. Das Text-zu-Sprache-Softwareprogramm 812 kann Techniken verwenden, die im Stand der Technik zur Durchführung dieser Funktion bekannt sind. Das Sprachführungswerkzeug 800 ordnet die vom Text-zu-Sprache-Softwareprogramm 812 erzeugten Audiodatendateien mit den Audiodatendateien 802, die von der geographischen Datenbank erhalten werden, an, um die im Tokengeneratorobjekt für die Token spezifizierte Sequenz beizubehalten.
  • In einer alternativen Ausführungsform enthält das Sprachführungswerkzeug 800 kein Text-zu-Sprache-Softwareprogramm. Bei dieser Alternative ist das Tokengenerator-Konfigurationsobjekt 620 so konfiguriert, dass es einen Satz von Sprachregeln 630(V) verwendet, die ein Tokengeneratorobjekt 620 erzeugen, in welchem keines der Token eine Kette ist. Stattdessen erzeugen gemäß dieser Alternative die Sprachregeln 630(V) Fallausgaben, die in allen Token resultieren, die Symbole sind, die für Symbolaudiodateien 820 zur Erläuterung durch das Sprachführungswerkzeug 800 verfügbar sind.
  • Wie oben erwähnt worden ist, kann das Erläuterungswerkzeug 700 ferner das Textführungswerkzeug 840 enthalten. Das Textführungswerkzeug 814 arbeitet ähnlich wie das Sprachführungswerkzeug 800. Das Textführungswerkzeug 840 empfängt die Tokenliste, die im Tokengeneratorobjekt 650 enthalten ist. Das Textführungswerkzeug 840 wird in einer Ausführungsform verwendet, die Symboltextdaten 842 enthält. Die Symboltextdaten 842 können in der geographischen Datenbank 140 enthalten sein, oder alternativ können die Symboltextdatendateien 842 in einer weiteren Datenbank oder auf einem weiteren Medium enthalten sein, das dem Textführungswerkzeug 840 zugänglich ist. In der in 11 gezeigten Ausführungsform sind die Symboltextdaten 842 in einem Textführungs-Konfigurationsobjekt 847 enthalten, das Teil des Textführungswerkzeugs 840 ist. Die Symboltextdaten 842 enthalten Zeichentext, der als Text angezeigt werden kann, wie z. B. als Wort oder Phrase, unter Verwendung geeigneter Hardware und Software. Zum Beispiel können die Symboltextdaten 842 für die Wörter und Phrasen für "ABBIEGEN", "LINKS", "BLEIBEN AUF", "KREUZUNG" und dergleichen bereitgestellt werden.
  • Das Textführungswerkzeug 840 verarbeitet die Token in der Reihenfolge, in der sie im Tokenerzeugungsobjekt 650 enthalten sind. Wie oben erwähnt worden ist, können Token entweder Symbole oder Ketten sein. Jedes der Token, das ein Symbol ist, bildet auf ein oder mehrere Symboltextdaten 842 ab. Unter Verwendung eines Index 848 schlägt das Textführungswerkzeug 840 die geeigneten Symboltextdatendateien 842, die dem Symbol im Token zugeordnet sind, nach. Dieser Index 848 kann in der geographischen Datenbank 140 enthalten sein, oder alternativ kann der Index 848 in einer weiteren Datenbank oder auf einem weiteren Medium enthalten sein, das dem Textführungswerkzeug 840 zugänglich ist. In der in 11 gezeigten Ausführungsform ist der Index 848 im Textführungs-Konfigurationsobjekt 847 enthalten, das Teil des Textführungswerkzeugs 840 ist. Das Textführungswerkzeug 840 greift auf die Symboltextdaten 842 zu und gibt diese an die Navigationsanwendung zurück. Das Tokengeneratorwerkzeug 600 spezifiziert eine geeignete Reihenfolge für die Token im Tokengeneratorobjekt. Das Textführungswerkzeug 840 behält die Textdaten aus den Symboltextdaten 842 in dieser gleichen Reihenfolge bei.
  • Das Textführungswerkzeug 840 verarbeitet ferner Token, die Ketten sind.
  • Ketten werden verwendet, um Namen von Straßen, Stadtbezirken, interessanten Punkten und dergleichen auszudrücken. Diese Namen sind als Daten in der geographischen Datenbank 140 enthalten und können aus Schlüsseln hergeleitet werden, die Nummern der Manöverdatenstruktur 550 bezeichnen. Wenn das Textführungswerkzeug 840 ein Token heranzieht, das eine Kette von Daten ist, wird es mit dem Rest der Ketten, die aus dem Rest der Token hergeleitet werden, angeordnet. Die Reihenfolge, in der das Token im Tokengeneratorobjekt angeordnet worden ist, wird beibehalten. Die Textregeln, die die Token im Tokengeneratorobjekt 650 bilden, ordnen diese in der richtigen Sequenz für die Texterläuterung an. Das Textgeneratorwerkzeug 842 gibt somit die von den Token repräsentierten Textdaten in der Reihenfolge zurück, in der die Token im Tokengeneratorobjekt angeordnet sind.
  • Das Erläuterungswerkzeug 700 kann ferner das Graphikführungswerkzeug 870 enthalten. Das Graphikführungswerkzeug 870 arbeitet ähnlich wie das Sprachführungswerkzeug 800 und das Textführungswerkzeug 840. Das Graphikführungswerkzeug 870 empfängt die Tokenliste, die im Tokengeneratorobjekt 650 enthalten ist. Das Graphikführungswerkzeug 870 wird in einer Ausführungsform der geographischen Datenbank 140 verwendet, die Symbolgraphikdatendateien 872 enthält. Diese Symbolgraphikdatendateien 872 können in der geographischen Datenbank 140 enthalten sein, oder alternativ können die Symbolgraphikdatendateien 872 in einer weiteren Datenbank oder auf einem weiterem Medium enthalten sein, das den Graphikführungswerkzeug 870 zugänglich ist. Jede dieser Symbolgraphikdatendateien 872 enthält graphische Daten, die auf einer visuellen Computeranzeigevorrichtung angezeigt werden können. Zum Beispiel können diese Symbolgraphikdatendateien 872 eine Anzeige für eine Kreuzung, eine Einmündung, eine Wendeschleife, eine Eisenbahnkreuzung und dergleichen enthalten.
  • Das Graphikführungswerkzeug 870 verarbeitet die Token in der Reihenfolge, in der sie im Tokenerzeugungsobjekt 650 enthalten sind. Wie oben erwähnt worden ist, können Token entweder Symbole oder Ketten sein. Jedes der Token, das ein Symbol ist, bildet auf ein oder mehrere Symbolgraphikdatendateien 872 ab. Unter Verwendung eines Index 878 schlägt das Graphikführungswerkzeug 870 die geeigneten Symbolgraphikdatendateien 872, die dem Symbol im Token zugeordnet sind, nach. Dieser Index 878 kann in der geographischen Datenbank 140 enthalten sein, oder alternativ kann der Index 878 in einer weiteren Datenbank oder auf einem weiteren Medium enthalten sein, das dem Graphikführungswerkzeug 870 zugänglich ist. Das Graphikführungswerkzeug 870 greift auf die Symbolgraphikdatendateien 872 zu und gibt diese an die Navigationsanwendung 210 zurück. Das Tokenerzeugungswerkzeug 600 spezifiziert eine geeignete Reihenfolge für die Token im Tokengeneratorobjekt. Das Graphikführungswerkzeug 870 behält die Daten aus dem Symbolgraphikdatendateien 872 in dieser gleichen Reihenfolge bei.
  • Wie oben erwähnt worden ist, kann das Erläuterungswerkzeug 700 mehr als entweder das Sprachführungswerkzeug 800, das Textführungswerkzeug 840 oder das Graphikführungswerkzeug 870 enthalten. Wenn das Erläuterungswerkzeug 700 mehr als eines dieser Werkzeuge enthält, kann die vom Routenberechnungswerkzeug berechnete Route dem Endbenutzer in mehr als einem Format erläutert werden. Wenn z. B. die Erläuterungswerkzeuge 700 sowohl das Textführungswerkzeug 840 als auch das Sprachführungswerkzeug 800 enthalten, kann die vom Routenberechnungswerkzeug berechnete Route dem Endbenutzer sowohl mit hörbaren als auch mit sichtbaren Anweisungen erläutert werden. Die hörbaren Anweisungen können über geeignete Hardware in der Benutzerschnittstelle 131 bereitgestellt werden, wie z. B. einen Lautsprecher, während die sichtbaren Anweisungen mittels eines Anzeigebildschirms in der Benutzerschnittstelle 131 bereitgestellt werden können. Sowohl die sichtbaren Anweisungen als auch die hörbaren Anweisungen können vom Erläuterungswerkzeug unter Verwendung des gleichen Tokengeneratorobjekts bereitgestellt werden, das vom Tokengeneratorwerkzeug 600 erzeugt worden ist. Alternativ können die sichtbaren Anweisungen und die hörbaren Anweisungen vom Erläuterungswerkzeug unter Verwendung zweier separater Tokengeneratorobjekte bereitgestellt werden, die vom Tokengeneratorwerkzeug 600 erzeugt worden sind. In dieser letzteren Ausführungsform verwendet das Tokengeneratorwerkzeug einen Regelsatz zum Erzeugen eines ersten Tokengeneratorobjekts, der auf die sichtbare Präsentation zugeschnitten ist, und verwendet einen weiteren Regelsatz zum Erzeugen eines zweiten Tokengeneratorobjekts, der auf die hörbare Präsentation zugeschnitten ist. Das auf die sichtba re Präsentation zugeschnittene Tokengeneratorobjekt kann mehr Einzelheiten enthalten, wie z. B. Namen und dergleichen, da die Informationen, die zum Präsentieren dieser Informationen erforderlich sind, in der geographischen Datenbank leicht verfügbar sind. Das Tokengeneratorobjekt, das auf die hörbare Präsentation zugeschnitten ist, enthält weniger Einzelheiten und kann Token für Straßennamen und dergleichen weglassen, um somit die Notwendigkeit zur Bereitstellung der Text-zu-Sprache-Konversionssoftware zu vermeiden.
  • VI. Alternative Ausführungsformen
  • Konfigurierbarkeit Einer der Vorteile, die die flexible Auslegungsarchitektur des Tokengeneratorwerkzeugs bietet, ist, dass es von einem Benutzer modifiziert, verbessert, weiterentwickelt und erweitert werden kann. In diesem Zusammenhang ist der Benutzer nicht unbedingt der endgültige Endbenutzer, der ein Individuum sein kann, das wirklich das Navigationsanwendungsprogramm in einem Navigationssystem benutzt. Stattdessen kann der Benutzer ein Zwischenkunde sein, der das Tokengeneratorwerkzeug mit anderer Software kombiniert und seinerseits ein System oder ein Programm verkauft, dass das Tokengeneratorwerkzeug enthält, das in einer solchen anderen Software für den endgültigen Endbenutzer enthalten ist.
  • In der obenbeschriebenen Ausführungsform wurde die Navigationsanwendung als in einem Navigationssystem installiert beschrieben, das in einem Fahrzeug installiert war. In alternativen Ausführungsformen kann die Navigationsanwendung in anderen Arten von Plattformen installiert sein, einschließlich Personalcomputern, tragbaren Rechenvorrichtungen, Telephonen und dergleichen. Die Navigationsanwendung kann ferner auf einem Netzwerk installiert sein und einem Klienten im Netz verfügbar gemacht werden. In alternativen Ausführungsformen können einige Teile der Navigationsanwendung lokal angeordnet sein und andere Teile der Navigationsanwendung können entfernt angeordnet sein. Das Netzwerk kann ein drahtloses Netzwerk sein. Die Navigationsanwendung oder Teile derselben können über das Internet verfügbar gemacht werden.
  • Es kann eine andere Terminologie verwendet werden, um die physikalischen Merkmale oder die Daten zu beschreiben, die die physikalischen Merkmale repräsentieren. Es klar, dass der hier offenbarte Erfindungsgegenstand nicht auf irgendeine bestimmte Terminologie beschränkt ist, die ähnliche Konzepte ausdrückt.
  • Die vorangehende genaue Beschreibung soll als erläuternd und nicht als einschränkend betrachtet werden, wobei klar ist, dass die beigefügten Ansprüche den Umfang der Erfindung definieren sollen.
  • ANHANG
  • (Beispiel-Tabellen)
  • ©1998 NAVIGATION TECHNOLOGIES CORPORATION
  • TABELLE 1
  • BEISPIEL-MANÖVERREGELN FÜR MANÖVERGENERATOR
    Figure 00510001
  • Figure 00520001
  • TABELLE 2
  • BEISPIEL-RATSCHLAGREGELN FÜR MANÖVERGENERATOR
    Figure 00540001
  • TABELLE 3
  • BELSPIEL-REGELTABELLE FÜR TOKENGENERATOT
    Figure 00550001
  • Figure 00560001
  • Figure 00570001
  • Figure 00580001
  • Figure 00590001
  • Figure 00600001
  • Figure 00610001
  • Figure 00620001
  • Figure 00630001
  • Figure 00640001
  • Figure 00650001
  • TABELLE 4
  • BEISPIEL-(SPRACH)-REGELTABELLE FÜR TOKENGENERATOR
    Figure 00660001
  • Figure 00670001
  • Figure 00680001
  • TABELLE 5
  • (BEISPIEL)-SYMBOLTABELLE
    Figure 00690001
  • Figure 00700001
  • Figure 00710001
  • Figure 00720001
  • Figure 00730001
  • Figure 00740001

Claims (14)

  1. Verfahren der Bereitstellung einer Routenführung für einen Benutzer eines Navigationsanwendungsprogramms (118), das eine geographische Datenbank (140) nutzt, wobei eine Route zwischen einem Ausgangspunkt und einem Ziel durch eine geordnete Mehrzahl (344) von Dateneinheiten (seg1, seg2, seg3, ..., seg(n)) definiert wird, die in der geographischen Datenbank enthalten sind, wobei jede der geordneten Mehrzahl von Dateneinheiten ein Segment einer Straße repräsentiert, und wobei die geordnete Mehrzahl von Dateneinheiten Straßensegmente repräsentiert, die eine durchgehende navigierbare Route zwischen dem Ausgangspunkt und dem Ziel bilden, wobei das Verfahren die Schritte umfasst: Verwenden der geordneten Mehrzahl von Dateneinheiten, um eine geordnete Mehrzahl (540) von Datenstrukturen (550) bereitzustellen, wobei jede Datenstruktur Informationen enthält, die einem Ort längs der Route zugeordnet sind, an dem eine Manöveranweisung bereitzustellen ist; dadurch gekennzeichnet, dass das Verfahren die Schritte umfasst: Anwenden einer Regeltabelle (630), die mehrere Regeln enthält, auf jede der Mehrzahl von Datenstrukturen, um eine geordnete Mehrzahl (633) von Token (655) zu bilden, wobei die eine verwendete Regeltabelle eine Regeltabelle aus einer Mehrzahl von verfügbaren Regeltabellen (630) ist, wobei jede der verfügbaren Regeltabellen Regeln enthält, die einem spezifischen Ausgabeformat für die Routenführung entsprechen; Bereitstellen einer Token-Liste (652) aus der geordneten Mehrzahl von Datenstrukturen, wobei die Token-Liste aus der geordneten Mehrzahl von Token besteht, und wobei wenigstens einige der Token aus Symbolen bestehen, die Wörtern entsprechen, die in Manöveranweisungen verwendet werden; und Verknüpfen der Symbole mit Daten, aus denen die in Manöveranweisungen verwendeten Wörter erklärt werden können, gemäß einer Reihenfolge, die der geordneten Mehrzahl von Token entspricht.
  2. Verfahren nach Anspruch 1, bei dem die Mehrzahl der verfügbaren Regeltabellen eine Mehrzahl von Sprachregeltabellen enthält, die jeweils für eine unterschiedliche Sprache vorgesehen sind, um die grammatikalischen Unterschiede der verschiedenen Sprachen zu berücksichtigen, wobei die eine verwendete Regeltabelle eine Sprachregeltabelle ist.
  3. Verfahren nach Anspruch 1, bei dem die Mehrzahl der verfügbaren Regeltabellen eine Stimmenregeltabelle (630(v)) für ein Audioformat und eine Textregeltabelle (630(T)) für ein Videoformat enthält.
  4. Verfahren nach Anspruch 1, bei dem die mit den Symbolen verknüpften Daten Audiodaten umfassen.
  5. Verfahren nach Anspruch 4, bei dem wenigstens einige der Token aus Zeichenkettendaten bestehen, und wobei das Verfahren ferner den Schritt umfasst: Verwenden eines Text-zu-Sprache-Programms, um eine Audiodatendatei für jedes der Token bereitzustellen, der aus Zeichenkettendaten besteht; und Bereitstellen jeder Audiodatendatei, die vom Text-zu-Sprache-Programm bereitgestellt wird, zusammen mit den Audiodaten, die mit Symbolen verknüpft sind, gemäß der Reihenfolge, die der geordneten Mehrzahl der Token entspricht.
  6. Verfahren nach Anspruch 1, bei dem die mit den Symbolen verknüpften Daten Zeichentextketten enthalten.
  7. Verfahren nach Anspruch 1, bei dem die mit den Symbolen verknüpften Daten Zeichengraphikdaten enthalten.
  8. Verfahren nach Anspruch 1, bei dem das Ausbilden der geordneten Mehrzahl von Token ferner umfasst: Anwenden der einen Regeltabelle auf jede der geordneten Mehrzahl von Datenstrukturen; Ausbilden einer Ausgabeliste für jede der geordneten Mehrzahl von Datenstrukturen, wobei wenigstens einige der Ausgabelisten wenigstens ein Symbol enthalten; Ausbilden einer Token-Folge aus jeder Ausgabeliste; und Ausbilden der Token-Liste durch Kombinieren der Token-Folgen, die aus jeder Ausgabeliste gebildet worden sind.
  9. Verfahren nach Anspruch 8, bei dem wenigstens einige der Ausgabelisten Schlüssel enthalten, wobei jeder Schlüssel Daten von der entsprechenden Datenstruktur enthält, auf die die eine Regeltabelle angewendet worden ist, und wobei das Verfahren ferner den Schritt umfasst: Erweitern jedes der Schlüssel, um ein Token zu bilden; und Einschließen des durch die Erweiterung gebildeten Tokens in die aus der Ausgabeliste gebildete Token-Folge.
  10. Verfahren nach Anspruch 9, wobei der Erweiterungsschritt umfasst: Verwenden einer Elementwertabbildung, die einen Wert im Schlüssel mit einem Symbol verknüpft, und Einschließen des Symbols in das aus dem Schlüssel gebildete Token.
  11. Verfahren nach Anspruch 9, bei dem der Erweiterungsschritt umfasst: Identifizieren eines Stilcodes, der dem Schlüssel zugeordnet ist; Auswählen eines Stilformats aus einer Mehrzahl von verfügbaren Stilformaten, wobei das eine Stilformat dem im Schlüssel identifizierten Stilcode entspricht; Ausbilden einer Zeichenkette gemäß dem einen Stilformat; und Einschließen der Zeichenkette in das aus dem Schlüssel gebildete Token.
  12. Verfahren nach Anspruch 9, bei dem der Erweiterungsschritt umfasst: Identifizieren eines dem Schlüssel zugeordneten Formatierercodes; Ausbilden einer auf den Formatierercode gestutzten Zeichenkette; und Einschließen der Zeichenkette in das aus dem Schlüssel gebildete Token.
  13. Navigationsvorrichtung, die Mittel aufweist, die dafür ausgelegt sind, das Verfahren gemäß irgendeinem der vorangehenden Ansprüche auszuführen.
  14. Computerprogramm, dass dann, wenn es von einem Computer ausgeführt wird, ein Verfahren gemäß irgendeinem der Ansprüche 1 bis 12 ausführt.
DE69933422T 1998-11-19 1999-08-25 System und Verfahren zur Routenführung mit einem Navigationsanwendungsprogram Expired - Lifetime DE69933422T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/196,279 US6212474B1 (en) 1998-11-19 1998-11-19 System and method for providing route guidance with a navigation application program
US196279 1998-11-19

Publications (2)

Publication Number Publication Date
DE69933422D1 DE69933422D1 (de) 2006-11-16
DE69933422T2 true DE69933422T2 (de) 2007-05-03

Family

ID=22724734

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69933422T Expired - Lifetime DE69933422T2 (de) 1998-11-19 1999-08-25 System und Verfahren zur Routenführung mit einem Navigationsanwendungsprogram

Country Status (5)

Country Link
US (1) US6212474B1 (de)
EP (1) EP1003016B1 (de)
JP (1) JP4268713B2 (de)
AT (1) ATE341748T1 (de)
DE (1) DE69933422T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009059575A1 (de) * 2007-11-06 2009-05-14 Navigon Ag Verfahren zum betrieb eines navigationssystems

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038559A (en) * 1998-03-16 2000-03-14 Navigation Technologies Corporation Segment aggregation in a geographic database and methods for use thereof in a navigation application
US6473770B1 (en) 1998-03-16 2002-10-29 Navigation Technologies Corp. Segment aggregation and interleaving of data types in a geographic database and methods for use thereof in a navigation application
JPH11311538A (ja) * 1998-04-28 1999-11-09 Honda Motor Co Ltd 車両共用システム
US6292743B1 (en) 1999-01-06 2001-09-18 Infogation Corporation Mobile navigation system
US6460046B1 (en) 1999-06-01 2002-10-01 Navigation Technologies Corp. Method and system for forming, storing and using sets of data values
JP2001159525A (ja) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp ナビゲーション装置および記録媒体
AUPQ724600A0 (en) * 2000-05-02 2000-05-25 Rojone Pty Limited Personal monitoring system
US7043363B2 (en) * 2002-10-10 2006-05-09 Sirf Technology, Inc. Host based satellite positioning systems
US7375728B2 (en) * 2001-10-01 2008-05-20 University Of Minnesota Virtual mirror
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
US7065446B2 (en) * 2000-08-18 2006-06-20 Geospatial Technologies, Inc. Real-time smart mobile device for location information processing
US6363320B1 (en) * 2000-08-18 2002-03-26 Geospatial Technologies Inc. Thin-client real-time interpretive object tracking system
US6385542B1 (en) * 2000-10-18 2002-05-07 Magellan Dis, Inc. Multiple configurations for a vehicle navigation system
US6487494B2 (en) * 2001-03-29 2002-11-26 Wingcast, Llc System and method for reducing the amount of repetitive data sent by a server to a client for vehicle navigation
US6691128B2 (en) * 2001-04-19 2004-02-10 Navigation Technologies Corp. Navigation system with distributed computing architecture
WO2002095438A2 (en) * 2001-05-22 2002-11-28 Geospatial Technologies, Inc. A durable global asset-tracking device and a method of using the same
US6839072B2 (en) 2001-06-15 2005-01-04 Koninklijke Philips Electronics N.V. Method and system and article of manufacture for display of option recommendations through time-by-score
US7552008B2 (en) * 2001-07-18 2009-06-23 Regents Of The University Of Minnesota Populating geospatial database for onboard intelligent vehicle applications
US8977284B2 (en) 2001-10-04 2015-03-10 Traxcell Technologies, LLC Machine for providing a dynamic data base of geographic location information for a plurality of wireless devices and process for making same
JP2003208508A (ja) * 2002-01-17 2003-07-25 Fujitsu Ltd 移動可能範囲演算方法およびマーケティング支援方法
US7209051B2 (en) * 2002-03-05 2007-04-24 University Of Minnesota Intersection assistance system and method
US7202801B2 (en) * 2002-12-11 2007-04-10 Geospatial Technologies, Inc. Method and apparatus for an automated location-based, dynamic notification system (ALDNS)
US7474960B1 (en) * 2002-12-30 2009-01-06 Mapquest, Inc. Presenting a travel route
US7620494B1 (en) * 2003-07-17 2009-11-17 Mapquest, Inc. Using routing symbols to describe a driving maneuver
US7480567B2 (en) * 2004-09-24 2009-01-20 Nokia Corporation Displaying a map having a close known location
US20060129313A1 (en) * 2004-12-14 2006-06-15 Becker Craig H System and method for driving directions based on non-map criteria
JP5140580B2 (ja) 2005-06-13 2013-02-06 インテリジェント メカトロニック システムズ インコーポレイテッド 車両没入型通信システム
US7698061B2 (en) 2005-09-23 2010-04-13 Scenera Technologies, Llc System and method for selecting and presenting a route to a user
US7590490B2 (en) * 2006-01-09 2009-09-15 Mitac International Corporation Smart detour
US7702456B2 (en) 2006-04-14 2010-04-20 Scenera Technologies, Llc System and method for presenting a computed route
US20070250515A1 (en) * 2006-04-21 2007-10-25 Lea David H Method and system of securing content and destination of digital download via the internet
US9976865B2 (en) * 2006-07-28 2018-05-22 Ridetones, Inc. Vehicle communication system with navigation
US7945386B2 (en) * 2006-08-25 2011-05-17 Mitac International Corporation Rerouting in vehicle navigation systems
US20080139181A1 (en) * 2006-12-08 2008-06-12 Magellan Navigation, Inc. Methods and apparatus for measuring the effectiveness of advertisements presented on a mobile navigation device
WO2008079889A2 (en) * 2006-12-20 2008-07-03 Johnson Controls Technology Company System and method for providing route calculation and information to a vehicle
ATE543691T1 (de) 2006-12-20 2012-02-15 Johnson Controls Tech Co Fernanzeige-wiedergabesystem und -verfahren
US20080172175A1 (en) * 2007-01-16 2008-07-17 Manju Chexal Funny/humorous/abusive GPS system or navigation system
WO2008091727A1 (en) * 2007-01-23 2008-07-31 Johnson Controls Technology Company Mobile device gateway systems and methods
US7692655B2 (en) * 2007-02-16 2010-04-06 Mitac International Corporation Apparatus and method of generating curved baseline for map labeling
US7783417B2 (en) * 2007-03-09 2010-08-24 Mitac International Corporation Methods and apparatus for determining a route having an estimated minimum fuel usage for a vehicle
US8078641B2 (en) * 2007-04-25 2011-12-13 Mitac International Corporation Adjusting spatial operations based on map density
US7882102B2 (en) * 2007-09-10 2011-02-01 Mitac International Corporation Nearest-neighbor geographic search
US8554475B2 (en) 2007-10-01 2013-10-08 Mitac International Corporation Static and dynamic contours
US20090138190A1 (en) * 2007-11-26 2009-05-28 Magellan Navigation, Inc. System and Method of Providing Traffic Data to a Mobile Device
US9324230B2 (en) 2008-12-04 2016-04-26 Gentex Corporation System and method for configuring a wireless control system of a vehicle using induction field communication
JP5623287B2 (ja) 2007-12-05 2014-11-12 ジョンソン コントロールズテクノロジーカンパニーJohnson Controls Technology Company 車両ユーザインターフェースシステム及び方法
US20090171584A1 (en) * 2007-12-31 2009-07-02 Magellan Navigation, Inc. System and Method for Accessing a Navigation System
US20090182498A1 (en) * 2008-01-11 2009-07-16 Magellan Navigation, Inc. Systems and Methods to Provide Navigational Assistance Using an Online Social Network
US8290703B2 (en) * 2008-01-18 2012-10-16 Mitac International Corporation Method and apparatus for access point recording using a position device
US8700314B2 (en) * 2008-01-18 2014-04-15 Mitac International Corporation Method and apparatus to search for local parking
US8498808B2 (en) * 2008-01-18 2013-07-30 Mitac International Corp. Method and apparatus for hybrid routing using breadcrumb paths
CA2719301C (en) 2008-03-25 2016-10-04 E-Lane Systems Inc. Multi-participant, mixed-initiative voice interaction system
DE102008019967A1 (de) * 2008-04-21 2009-11-26 Navigon Ag Verfahren zum Betrieb eines elektronischen Assistenzsystems
US8838075B2 (en) * 2008-06-19 2014-09-16 Intelligent Mechatronic Systems Inc. Communication system with voice mail access and call by spelling functionality
US9652023B2 (en) * 2008-07-24 2017-05-16 Intelligent Mechatronic Systems Inc. Power management system
US20100035631A1 (en) * 2008-08-07 2010-02-11 Magellan Navigation, Inc. Systems and Methods to Record and Present a Trip
US8249804B2 (en) * 2008-08-20 2012-08-21 Mitac International Corporation Systems and methods for smart city search
US8219317B2 (en) * 2008-09-22 2012-07-10 Mitac International Corporation Route navigation via a proximity point
EP2172745B1 (de) 2008-10-02 2014-06-11 Vodafone Holding GmbH Bereitstellung von Informationen in einem Kommunikationsnetzwerk
US20120047087A1 (en) 2009-03-25 2012-02-23 Waldeck Technology Llc Smart encounters
EP2436224A4 (de) * 2009-05-28 2012-12-05 Intelligent Mechatronic Sys Kommunikationssystem mit verwaltung persönlicher informationen und entfernter fahrzeugüberwachung und steuerungsfunktionen
US9667726B2 (en) * 2009-06-27 2017-05-30 Ridetones, Inc. Vehicle internet radio interface
US9978272B2 (en) * 2009-11-25 2018-05-22 Ridetones, Inc Vehicle to vehicle chatting and communication system
US20110153266A1 (en) * 2009-12-23 2011-06-23 Regents Of The University Of Minnesota Augmented vehicle location system
US8374791B2 (en) * 2010-01-27 2013-02-12 Navteq B.V. Method of operating a navigation system to provide route guidance
US9014960B2 (en) * 2010-03-29 2015-04-21 Here Global B.V. Method of operating a navigation system
US9069738B2 (en) * 2012-08-10 2015-06-30 Nokia Technologies Oy Method and apparatus for determining representations of abbreviated terms for conveying navigation information
DE102012019185B4 (de) * 2012-09-28 2015-02-12 Audi Ag Verfahren und System zum Ermitteln einer Mobilfunknetzqualität und Laden von Mobilfunkdaten
DE102012021431A1 (de) * 2012-10-30 2014-04-30 Elektrobit Automotive Gmbh Technik zum akustischen Signalisieren eines Navigationsmanövers
US10801853B2 (en) 2016-07-25 2020-10-13 Ford Global Technologies, Llc Method and apparatus for upcoming turn identification and assistance
US10175060B2 (en) 2016-09-06 2019-01-08 Microsoft Technology Licensing, Llc Translation of verbal directions into a list of maneuvers
US11486717B1 (en) * 2017-03-13 2022-11-01 Mapbox, Inc. Generating navigation instructions based on digital map context
US20190113350A1 (en) * 2017-10-12 2019-04-18 Mitac International Corp. Route-planning method and navigational system of converting route description into machine-readable predefined route
KR20210013726A (ko) * 2018-11-02 2021-02-05 구글 엘엘씨 컨텍스트 인식 내비게이션 음성 어시스턴트

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5177685A (en) * 1990-08-09 1993-01-05 Massachusetts Institute Of Technology Automobile navigation system using real time spoken driving instructions
US5283575A (en) * 1991-11-08 1994-02-01 Zexel Corporation System and method for locating a travelling vehicle
US5181250A (en) 1991-11-27 1993-01-19 Motorola, Inc. Natural language generation system for producing natural language instructions
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
US5543789A (en) * 1994-06-24 1996-08-06 Shields Enterprises, Inc. Computerized navigation system
JPH08159801A (ja) * 1994-12-08 1996-06-21 Toshiba Corp ナビゲーションシステム
US5612882A (en) * 1995-02-01 1997-03-18 Lefebvre; Rebecca K. Method and apparatus for providing navigation guidance
US5806035A (en) 1995-05-17 1998-09-08 U.S. Philips Corporation Traffic information apparatus synthesizing voice messages by interpreting spoken element code type identifiers and codes in message representation
DE19527187A1 (de) 1995-07-26 1997-01-30 Philips Patentverwaltung RDS-TMC-Rundfunkempfänger
JPH0944791A (ja) * 1995-07-31 1997-02-14 Honda Motor Co Ltd 車載用ナビゲーション装置
US5968109A (en) 1996-10-25 1999-10-19 Navigation Technologies Corporation System and method for use and storage of geographic data on physical media

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009059575A1 (de) * 2007-11-06 2009-05-14 Navigon Ag Verfahren zum betrieb eines navigationssystems
US8457884B2 (en) 2007-11-06 2013-06-04 Garmin Würzburg GmbH Method for the operation of a navigation system

Also Published As

Publication number Publication date
JP4268713B2 (ja) 2009-05-27
ATE341748T1 (de) 2006-10-15
EP1003016A2 (de) 2000-05-24
EP1003016B1 (de) 2006-10-04
US6212474B1 (en) 2001-04-03
EP1003016A3 (de) 2004-05-12
JP2000221041A (ja) 2000-08-11
DE69933422D1 (de) 2006-11-16

Similar Documents

Publication Publication Date Title
DE69933422T2 (de) System und Verfahren zur Routenführung mit einem Navigationsanwendungsprogram
DE60109979T2 (de) Navigationssystem
DE60020008T2 (de) Verfahren zum Datensammeln mittels Sprachbefehlen für eine geographische Datenbank sowie System dafür
DE69514298T2 (de) Navigationsvorrichtung eines sich bewegenden Objektes
DE60215988T2 (de) Spracherkennung mit geographisch erzeugter Wortliste
DE60130054T2 (de) Verfahren und Vorrichtung zur Routenführung
DE69632242T2 (de) Fahrzeugnavigationssystem und Verfahren zur Eingabe und Speicherung von Kursänderungspunkten
DE69731860T2 (de) Navigationsgerät für Landfahrzeuge mit beschränkter Anzeige für die Zielführung zur Verbesserung der Lesbarkeit
DE60318430T2 (de) Computergestütztes System und Verfahren zur Informationsausgabe an einen Fahrer eines Fahrzeuges
DE69929639T2 (de) Kartendatenzugriffverfahren für Navigation und Navigationssystem
DE69422449T2 (de) Navigationssystem
DE69229946T2 (de) Navigationsvorrichtung für fahrzeuge
DE69628904T2 (de) Navigationssystem für Fahrzeuge
EP1113410A2 (de) Verfahren, Bedienteil, Navigationssystem und Schnittstelle zur Darstellung von Ausschnitten einer digitalen Kartenbasis
DE19919139A1 (de) Fahrzeugnavigationssystem
EP1405039B1 (de) Verfahren zum betrieb eines navigationssystems für ein fahrzeug und navigationssystem
EP1360458B1 (de) Verfahren zum austauschen von navigationsinformationen
EP1176395A1 (de) Verfahren zur Auswahl einer Ortsbezeichnung in einem Navigationssystem durch Spracheingabe
DE102021112020A1 (de) Umgebungswahrnehmungssystem zum Erfahren einer Umgebung durch Musik
DE102004025599A1 (de) Auffinden von Karteninformationen
DE19600700B4 (de) Navigationsgerät
DE112013002441T5 (de) Kartenanzeigevorrichtung und Navigationssystem
DE102005061701B4 (de) Verfahren zur Erinnerung an eine Wegweisung für eine Zielroute
EP2156142B1 (de) Verfahren und anordnung zur ausgabe von zielführungshinweisen
DE102008011599A1 (de) Verfahren zur Bestimmung einer Fahrtroute für ein Fahrzeug

Legal Events

Date Code Title Description
8364 No opposition during term of opposition