DE102004041934A1 - Iterative logische Erneuerung von navigierbaren Kartendatenbanken - Google Patents

Iterative logische Erneuerung von navigierbaren Kartendatenbanken Download PDF

Info

Publication number
DE102004041934A1
DE102004041934A1 DE102004041934A DE102004041934A DE102004041934A1 DE 102004041934 A1 DE102004041934 A1 DE 102004041934A1 DE 102004041934 A DE102004041934 A DE 102004041934A DE 102004041934 A DE102004041934 A DE 102004041934A DE 102004041934 A1 DE102004041934 A1 DE 102004041934A1
Authority
DE
Germany
Prior art keywords
road
database
tree
navigation database
intersection
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.)
Ceased
Application number
DE102004041934A
Other languages
English (en)
Inventor
Jason F. Kariya Hunzinger
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.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE102004041934A1 publication Critical patent/DE102004041934A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Abstract

Ein verbessertes Verfahren (100) zum Identifizieren von Straßenabschnitten in einer Navigationsdatenbank wird zur Verfügung gestellt. Das Verfahren weist auf: Empfangen eines Datenbank-Update, das mindestens eine Straßenkreuzung (103) identifiziert; Konstruieren einer logischen Darstellung (10) der Straßentopologie um die mindestens eine Straßenkreuzung (104, 106, 124); und Identifizieren der mindestens einen Straßenkreuzung in der Navigationsdatenbank durch Vergleichen der logischen Darstellung mit einer logischen Darstellung der Navigationsdatenbank (104, 106, 126, 127).

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Navigationssysteme und insbesondere ein Verfahren zur Erneuerung einer Navigations-Kartendatenbank unter Verwendung von iterativem logischen Graph-Patching.
  • HINTERGRUND DER ERFINDUNG
  • Navigationssysteme wenden Navigations-Kartendatenbanken an, um Anwendern Routenberechnung, Führung, Suche nach Orten von Interesse, und andere Navigationsfunktionen zur Verfügung zu stellen. Navigations-Kartendatenbanken umfassen typischerweise Daten, die Straßennetze und Attribute darstellen, wie etwa in dem durch das KIWI-Format beschriebenen Format, veröffentlicht vom KIWI-W Consortium, Version 1.22, Mai 2000, auf das hiermit vollinhaltlich Bezug genommen wird. Die Leistungsfähigkeit eines Navigationssystems beruht auf gültigen Daten, weshalb es wichtig ist, die Navigations-Kartendatenbank zu aktualisieren bzw. zu erneuern, wenn sich Straßennetze oder deren Elemente beispielsweise durch Straßenbau bedeutsam ändern. Die Erneuerung einer Navigations-Kartendatenbank kann bewerkstelligt werden durch: (i) Ersetzen der Datenbank, (ii) Modifizieren der Datenbank, oder (iii) Patchen bzw. Korrigieren der Datenbank. Das große Volumen einer Großbereichs-Navigationskartendatenbank führt dazu, daß das Modifizieren oder Korrigieren von Teilen der Datenbank ein bevorzugtes Verfahren für die Erneuerung mittels drahtloser Kommunikation ist. Einige Navigations-Kartendatenbanken sind auf Nur-Lese-Medien wie etwa CD-ROMs oder DVD-ROMs gespeichert. Dies beinhaltet die zusätzliche Beschränkung, daß die ursprüngliche Kartendatenbank nicht modifiziert werden kann, und stellt besondere Herausforderungen für eine Korrektur dar. Während das Korrelieren von Aktualisierungsinformationen mit der ursprünglichen Datenbank unabhängig von der Art des Mediums eine allgemeine Herausforderung darstellt, kann das Erstellen von gepatchten bzw. korrigier ten Daten nach mehrfachen Erneuerungen eine Erneuerung weiter komplizieren. Da des weiteren ein Patch separat von ursprünglichen Daten beibehalten werden kann, besteht auch ein Bedarf nach einem Verfahren zur effizienten Erneuerung und nach einem nahtlosen und stabilen Zugriff durch Anwendungen.
  • Voneinander verschiedene Versionen von Navigations-Kartendatenbanken und verschiedene Quellen von Daten für Navigations-Kartendatenbanken tragen zu einer großen Vielfalt bei detaillierten Dateninhalten in Navigationssystem-Datenbanken bei und machen aufgrund ihrer Versionsabhängigkeit eine Identifizierung der geänderten Teile eines Straßennetzes problematisch. Darüber hinaus können einige Anwender Updates versäumen oder auslassen oder ihre Datenbank teilweise mit jeweiligen Bereichen von Interesse aktualisieren, wodurch sie noch weiter zu der Anzahl von verschiedenen, in Verwendung befindlichen Datenbankversionen beitragen. Beispielsweise können zwischen Datenbanken bedeutsame Unterschiede in der geographischen Lage und den Attributen von Straßenstrukturen bestehen, die einer Straßenstruktur zugeteilte Identifizierung kann unterschiedlich oder sogar gewissermaßen zufällig sein, und die Straßennetzstrukturen, die zur Darstellung eines Straßennetzabschnitts verwendet werden, können sich voneinander unterscheiden. Es ist beispielsweise nicht ungewöhnlich, daß Straßen keinen Namen tragen. Das Zurückverfolgen aller Versionen und das Versenden von Updates, die auf konkrete Navigationssysteme zugeschnitten sind, ist jedoch nicht robust genug und ist sowohl beim Speichern als beim Einsatz der Kommunikationsbandbreite unflexibel und ineffizient. Es besteht daher ein Bedarf nach einem Verfahren zum Identifizieren eines zu aktualisierenden Straßennetzelementes, das flexibel genug ist, um mit mehreren Datenbankversionen zu funktionieren und auf vorausgehend ganz oder teilweise modifizierten Datenbankversionen zu funktionieren.
  • Die vorliegende Erfindung befaßt sich mit der Lösung dieser Probleme mit Hilfe einer Erneuerungsoperation, die modifizierte Straßennetzelemente unabhängig von für Datenbankversionen spezifischen Informationen identifiziert und nicht notwendigerweise die Modifikation einer ursprünglichen Datenbank erfordert.
  • DARSTELLUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird ein verbessertes Verfahren zum Identifizieren eines Straßenelementes in einer Navigationsdatenbank zur Verfügung gestellt. Das Verfahren weist auf: Empfangen eines Datenbank-Update, welches mindestens eine Straßenkreuzung identifiziert; Konstruieren einer logischen Darstellung der Straßentopologie um die mindestens eine Straßenkreuzung; und Identifizieren der mindestens einen Straßenkreuzung in der Navigationsdatenbank durch Vergleichen der logischen Darstellung mit einer logischen Darstellung der Navigationsdatenbank.
  • Bei einer weiteren Ausführungsweise der vorliegenden Erfindung wird ein verbessertes Verfahren zum Aktualisieren einer Navigationsdatenbank zur Verfügung gestellt. Das Verfahren weist auf: Empfangen eines Aktualisierungsbefehls, der zwei Knoten und einen Verbindungsabschnitt bezeichnet, wobei die Knoten für Straßenkreuzungen stehen, und der Verbindungsabschnitt für ein Straßensegment steht, welches die zwei Knoten miteinander verbindet; Identifizieren eines bestehenden Knotens in der Navigationsdatenbank, der mindestens einem der angegebenen Knoten entspricht, unter Verwendung einer logischen Musterabgleich ("pattern matching")-Operation; Klassifizieren eines jeden der angegebenen Knoten basierend auf seiner Beziehung zu mindestens einem von einem vorhandenen Knoten oder einem vorhandenen Verbindungsabschnitt in der Navigationsdatenbank; und Anwenden des Aktualisierungsbefehls gemäß einem geordneten Satz von Operationsregeln.
  • Weitere Anwendungsbereiche der vorliegenden Erfindung ergeben sich aus der nachstehend gegebenen ausführlichen Beschreibung. Es wird angemerkt, daß die ausführliche Beschreibung und die konkreten Beispiele zwar die bevorzugte Ausführungsform der Erfindung angeben, jedoch einzig veranschaulichend gedacht sind und den Schutzbereich der Erfindung nicht einschränken sollen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt eine erweiterte Navigationsdatenbank-Architektur gemäß der vorliegenden Erfindung dar;
  • 2 veranschaulicht eine beispielhafte logische Darstellung der Straßentopologie gemäß der vorliegenden Erfindung;
  • 3A veranschaulicht eine beispielhafte Minimalbaum ("Minimum Spanning Tree"; MST)-Struktur für Vertex c gemäß der vorliegenden Erfindung, wobei Vertex c in der Navigationssystem-Kartendatenbank resident ist;
  • 3B veranschaulicht eine logische Darstellung, die für einen Aktualisierungsbefehl gemäß der vorliegenden Erfindung konstruiert ist;
  • 4 veranschaulicht eine beispielhafte Gesamtbaum ("All Spanning Tree"; MST)-Struktur für Vertex c gemäß der vorliegenden Erfindung;
  • 5 stellt die Wahrscheinlichkeit einer Muster-Fehlzuordnung für verschiedene Straßennetzsymmetrie-Szenarios dar;
  • 6 stellt ein Ablaufdiagramm dar, das zeigt, wie die Baumtiefe zu bestimmen ist, die für den Erhalt einer gewünschten Übereinstimmungswahrscheinlichkeit erforderlich ist;
  • 7A-7C veranschaulichen ein ursprüngliches örtliches Graphmuster, ein Patch-Graphmuster, bzw. ein korrigiertes örtliches Graphmuster;
  • 8 stellt einen Mehrschrittabschnitt eines Patch-Update gemäß den Patch-Ordnungsregeln der vorliegenden Erfindung dar;
  • 9 veranschaulicht einen beispielhaften Inhalt einer Erneuerung einer Navigations-Kartendatenbank;
  • 10 stellt ein Ablaufdiagramm dar, das eine beispielhafte Prozedur für die Anwendung auf ein Update einer Navigationsdatenbank gemäß der vorliegenden Erfindung zeigt; und
  • 11 stellt eine beispielhafte Prozedur für Musterabgleich und Klassifizierung dar.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Eine Kartendatenbank kann als gerichteter Graph dargestellt werden, in dem eine oder mehrere gerichtete Kanten (Verbindungsabschnitte) jedes Straßensegment darstellen, und angrenzende Kanten an Vertices (Knoten) angeschlossen sind, die Kreuzungen oder Straßensegmentverbindungen darstellen. Typische Navigations-Kartendatenbankformate wie etwa KIWI umfassen Listen von Verbindungsabschnitten mit Attributen, wie auf diesem Fachgebiet allgemein bekannt ist. Ein Kartendatenbank-Update kann aus einem geordneten Satz von Operationen an Verbindungsabschnitten bestehen, in dem Verbindungsabschnitte zugeordnete Attribute aufweisen. Die Bedeutsamkeit des Ordnens wird im nachfolgenden aufgezeigt. Jeder Verbindungsabschnitt ist als eine gerichtete Kante und zwei Vertices dargestellt. Vertices werden als Teil einer Operation an einer Kante aktualisiert, mit der sie verbunden sind. Die vorliegende Erfindung umfaßt die schrittweise Erneuerung durch auf Verbindungsabschnitten basierende Operationen, die durch Identifizieren eines Verbindungsabschnitts zum Aktualisieren durch den Abgleich von Update-Daten mit ursprünglichen Daten und darauffolgendes Modifizieren oder Korrigieren der ursprünglichen Daten angewendet werden können.
  • Gemäß dem vorliegend dargestellten Verfahren werden zwei unterschiedliche, jedoch voneinander abhängige Funktionen beschrieben: (1) die Anwendung eines Patch oder einer Modifikation auf eine ursprüngliche oder vorausgehend erweiterte Datenbank; und (2) Zurverfügungstellen von Anwendungen mit einer integrierten abstrakten Schnittstelle für die erweiterte Datenbank. Aus der Anwendungsperspektive ist es wünschenswert, eine einzige Schnittstelle für den Zugriff auf die Datenbank zu haben, als ob es sich um eine einzige integrierte Datenbank handelte, die alle früheren Patches oder Modifikationen umfaßt. Eine Erneuerung kann als eine Modifikation der Datenbank oder als Patch angewendet werden. Die Patch-Wartungsoperation wendet alle empfangenen Patches auf eine Patch-Datenbank an, ohne die ursprüngliche Datenbank zu modifizieren. Anwendungen brauchen jedoch nicht davon Kenntnis zu haben oder auf eine verschiedene Weise vorzugehen.
  • Das Problem der Patch-Anwendung kann iterativ angegangen werden, d. h. indem jeweils ein Verbindungsabschnitt nach dem anderen oder abschnittsweise hinzugefügt wird. Bei einer bevorzugten Ausführungsform wird ein komplettes Update Verbindungsabschnitt um Verbindungsabschnitt angewendet. In diesem Zusammenhang beinhaltet ein Verbindungsabschnitt zwangsläufig zwei Vertices (d. h. einen Anfang und ein Ende bezüglich der gerichteten Kante). Ein Graph kann unabhängig von Anwendungen so korrigiert werden, daß er ein einzelnes Verbindungsabschnitt-Update beinhaltet, indem er eine Anfrage erfaßt, welche diesen Verbindungsabschnitt nach Ort, Identifikation oder anderweitig betrifft, und basierend auf dem Patch eine modifizierte Rückkopplung zur Verfügung stellt. Bei einer anderen Ausführungsform wird ein komplettes Update in einer Abfolge von Identifikationen und Änderungen an Subnetzen (d. h. Sätzen von zueinander in Beziehung stehenden Verbindungsabschnitten und Knoten) angewendet.
  • Die Antwort auf eine Anfrage nach einem Graph, wie etwa zum Abfragen von Daten, die für eine Routenberechnung, eine Führung, oder eine Suche nach Orten von Interesse benötigt werden, kann unter Verwendung eines Patch-Speichers gesteuert werden, der separat von einem nicht modifizierten ursprünglichen Graph ist, damit sie mit einer Antwort auf der Grundlage eines aktualisierten Graphs identisch ist. Die Antwort auf eine Anfrage nach einem unmodifizierten ursprünglichen Graph kann so modifiziert werden, daß sie mit einem aktualisierten Graph im Einklang ist, obgleich der Graph unverändert war. Dies kann unter Verwendung eines separaten Patch-Speichers vorgenommen werden. Somit greift eine Anwendung wie etwa eine Routenberechnung auf eine einzige Datenbankschnittstelle zu und greift nicht direkt auf den Patch-Speicher oder die ursprüngliche Datenbank zu. Stattdessen stellt die Schnittstelle einen abstrakten Zugriff zur Verfügung und versteckt die Details der Implementierung. Eine Anwendung könnte den am nächsten zu einem gegebenen Ort gelegenen Knoten anfordern und dabei nicht wissen, ob das Ergebnis aus der ursprünglichen Datenbank stammt oder korrigiert war, oder sogar, ob die Datenbank überhaupt korrigiert war. Eine beispielhafte Architektur ist in 1 gezeigt.
  • Bei einer Ausführungsform wird jeder neue Verbindungsabschnitt unter Verwendung des zuletzt korrigierten Graphs hinzugefügt. Wenn somit ein zweiter neuer Verbindungsabschnitt nach einem ersten neuen Verbindungsabschnitt hinzugefügt wird und die beiden an einem neuen Knoten verbunden sind, wird der zweite neue Verbindungsabschnitt hinzugefügt, als ob es sich dabei um die erste Hinzufügung zu einem ursprünglichen Graph handelte (außer wenn es sich um das Original mit allen vorausgegangenen Patches handelt). Ein Verfahren, dies zu bewerkstelligen, ist es, geschachtelte Patches, d. h. Patches für Patches, zuzulassen. Im wesentlichen betrachtet die Patch-Management- bzw. -Wartungssoftware die Datenbank unter Verwendung der gleichen abstrakten Betrachtung wie Anwendungen. Bei einer bevorzugten Ausführungsform werden Operationen entweder in Sätzen durchgeführt, wobei den durch den Satz beschriebenen Änderungen eine Identifikation aller Elemente vorausgeht, oder die Identifikation von Elementen eine Version der ursprünglichen Datenbank anwendet, bevor etwaige Änderung des Satzes angewendet werden.
  • Es gibt drei mögliche Graph-Updates auf einer Verbindungsabschnitt-um-Verbindungsabschnitt-Basis: (1) Löschen eines Verbindungsabschnitts; (2) Hinzufügen eines neuen Verbindungsabschnitts; und (3) Modifizieren eines bestehenden Verbindungsabschnitts. Löschen eines Verbindungsabschnitts kann bewerkstelligt werden durch Verwerfen eines Antwortelements, welches den betreffenden Verbindungsabschnitt beinhaltet. Anders ausgedrückt, die Patch-Maske markiert einen Verbindungsabschnitt oder Knoten als "korrigiert" und sieht den neuen Eintrag nach, der den Eintrag einfach als nicht mehr vorhanden (gelöscht) etikettieren oder markieren kann.
  • Das Modifizieren eines bestehenden Verbindungsabschnitts kann auf die allgemeinere Operation des Löschens des alten Verbindungsabschnitts und Ersetzen des Verbindungsabschnitts durch einen neu hinzugefügten Verbindungsabschnitt reduziert werden. Es gibt eine Anzahl möglicher Fälle für die Hinzufügung von Verbindungsabschnitten in Abhängigkeit von der Korrelation der Vertices eines neuen Verbindungsabschnitts mit bestehenden Vertices. Entweder sind die Vertices bereits vorhanden, oder sie entsprechen Punkten auf bestehenden Kanten, oder sie sind völlig neu.
  • Es wird zuerst der Fall betrachtet, in dem beide Vertices eines Verbindungsabschnitts bereits in der Datenbank vorhanden sind. Wenn die beiden Vertices, die mit einer neuen Kante verbunden sind, mit zwei bestehenden Vertices korrelieren (die vorliegend als Klasse 1-Vertices bezeichnet sind), dann können die zwei bestehenden Vertices durch die entsprechenden neuen Vertices ersetzt werden, und eine neue verbundene Kante kann hinzugefügt werden. Im wesentlichen werden in diesem Fall zwei alte Vertices durch zwei neue Vertices ersetzt, die zusätzlich mit einer ebenfalls hinzugefügten neuen Kante verbunden sind. Die gesamten neuen Informationen sind in der Patch-Datenbank gespeichert. Der Umstand, daß sie im Patch gespeichert sind, beinhaltet, daß die ursprünglichen Datenbankeinträge ignoriert werden sollen. Anders ausgedrückt, zwei modifizierte Vertices im Patch-Speicher ersetzen die beiden Vertices in der ursprünglichen Datenbank. Die Vertices der ursprünglichen Datenbank werden nicht gelöscht oder modifiziert, sondern stattdessen ignoriert die Patch-Schnittstelle sie, weil Ersatzeinträge im Patch-Speicher vorliegen.
  • Patch-Datenbankeinträge können dazu verwendet werden, Löschungen oder Hinzufügungen zu identifizieren. Eine Patch-Datenbank kann eine Löschung unter Verwendung einer Liste von gelöschten Vertices und/oder Kanten identifizieren, die der Anwendung nicht verfügbar gemacht wird. Eine Liste von Hinzufügungen wird mit der ursprünglichen Datenbank korreliert und auf eine geeignete Anfrage hin der Anwendung zur Verfügung gestellt. Wenn ein Vertex jedoch keinem Vertex in der ursprünglichen Datenbank entspricht (als Klasse 2-Vertex bezeichnet), dann wird ein alternatives Verfahren zur Vertex-Korrelierung verwendet.
  • Ein Beispiel für einen Klasse 2-Vertex ist ein neuer Vertex, der einem Punkt auf einer bestehenden Kante entspricht. Wenn der neue Vertex einer Stelle an einer bestehenden Kante entspricht (als Klasse 2a-Vertex bezeichnet), dann kann diese Kante durch zwei neue angrenzende Kanten ersetzt werden, die mit dem neuen Vertex verbunden sind. Tatsächlich ist in diesem Fall die geeignete Operation, die alte Kante zu löschen und zwei neue Kanten hinzuzufügen, wobei ein neuer Vertex sie verbindet. Die Vertices in der ursprünglichen Datenbank sind unverändert, werden jedoch von der Patch-Schnittstelle ignoriert, da nun zwei Ersatz-Vertices im Patch-Speicher existie ren. Die alte Kante wird ignoriert, weil sie im Patch als gelöscht aufgeführt ist. Die korrigierten Vertices sind nicht mehr direkt miteinander verbunden, sondern stattdessen über einen dritten neuen Knoten verbunden, der zuvor einem Punkt auf der alten Kante entsprach.
  • Der dritte Fall eines einzelnen Vertex ist der, in dem der neue Vertex keinem Punkt auf einer bestehenden Kante entspricht (vorliegend als Klasse 2b-Vertex bezeichnet). Falls ein neuer Verbindungsabschnitt aus zwei Klasse 2b-Vertices besteht, wird der resultierende aktualisierte Graph nicht vollständig angeschlossen. In diesem Fall ist das Update nur eine Ergänzung der Datenbank. Falls ein neuer Verbindungsabschnitt aus nur einem Klasse 2b-Vertex besteht, wird der aktualisierte Graph verbunden. Somit liegen ein neuer Vertex und eine neue Kante vor.
  • Bei einer Ausführungsform der vorliegenden Erfindung wird ein Verbindungsabschnitt mit zwei neuen Vertices erst dann zu der Patch-Datenbank hinzugefügt, wenn mindestens einer der Vertices einem bestehenden Vertex oder einem Punkt auf einer bestehenden Kante entspricht (d. h. auf dem Wege einer anderen Änderung). Ein Verbindungsabschnitt, der vollständig von dem bestehenden Graph abgekoppelt ist, wird nicht hinzugefügt. Er wird entweder übergangen, indem Verbindungsabschnitte auf geeignete Weise in einem Update geordnet oder zwischengespeichert werden, bis er verbunden werden kann (d. h. mindestens einer der Vertices ist Klasse 1 oder Klasse 2a). Sobald er verbunden werden kann, verbindet der Klasse 1- oder Klasse 2a-Vertex die Kante und einen anderen Vertex mit dem Graph. Ein abgekoppelter Verbindungsabschnitt ist der ursprünglichen Datenbank nicht direkt zugeordnet. Er kann aber dennoch von Anwendungen in Betracht gezogen werden, da die Patch-Schnittstelle zwischengespeicherte abgekoppelte Verbindungsabschnitte bei Suchen in der vergrößerten Datenbank einbeziehen kann. Diese Gegenmaßnahme überwindet die Trennung zwischen dem Zwischenspeicherinhalt und der vergrößerten Datenbank. Vereinzelte Kanten, d. h. Kanten, die mit dem Hauptgraph nicht verbunden sind, sind typischerweise nur für trivial kurze Routenberechnungen von Nutzen, so daß es, wenn überhaupt, wenige negative Konsequenzen der Durchsetzung dieser Patch-Ordnungsregel gibt. Diese Regel wird als die Erste Patch-Ordnungsregel bezeichnet.
  • Da ein Vertex einer von drei verschiedenen Klassen (1, 2a, oder 2b) angehören kann, und ein Verbindungsabschnitt zwei Vertices aufweist, gibt es sechs Kombinationen von Klassen für einen Verbindungsabschnitt: (i) beide sind Klasse 1, (ii) beide sind Klasse 2a, (iii) beide sind Klasse 2b, (iv) einer ist Klasse 1 und der andere ist Klasse 2a, (v) einer ist Klasse 1 und der andere ist Klasse 2b, (vi) einer ist Klasse 2a und einer ist Klasse 2b. Durch Erstellen einer Patch-Operation für jeden dieser Fälle ist es möglich, die Patch-Iterationsoperation insgesamt zu betrachten. Da alle Fälle aufgezählt wurden und jeder Fall von einer Patch-Operation abgedeckt wird, wird eine komplette Patch-Iterationsprozedur spezifiziert, die es zuläßt, daß die Patch-Management- oder -Wartungssoftware jeglichen erhaltenen Patch anwendet, der Ordnungsregeln entspricht. Es ist jedoch anzumerken, daß die Klasse eines Vertex möglicherweise im voraus unbekannt ist. Daher sollen die ersten Schritte bei der Patch-Iteration an einem Verbindungsabschnitt die zwei Vertices definieren und die Klasse eines jeden der zwei Vertices bestimmen. Ein Lösungsansatz ist es, jeden Vertex separat zu betrachten, und zu versuchen, ihn zu klassifizieren. Ein weiterer Lösungsansatz ist es, zu versuchen, beide Vertices zur gleichen Zeit zu klassifizieren. Die vereinzelte Vertex-Identifikation ist eine bevorzugte Ausführungsform, da nach erfolgter Identifizierung jeder von ihnen verwendet werden kann, um die Möglichkeiten des anderen einzuengen oder die Identifizierung zu validieren. Jeder Vertex kann klassifiziert werden, indem zuerst nach Kandidaten-Vertices in einem gegebenen Bereich eines gegebenen Ortes des Vertex gesucht wird, und dann versucht wird, den Vertex nacheinander mit jedem Kandidaten abzugleichen.
  • Es gibt eine Vielfalt von Alternativen zum Korrelieren eines gegebenen Vertex mit einem anderen Vertex, der in der Kartendatenbank resident ist. Mögliche Alternativen beinhalten einen genauen Ortsabgleich, Identifikationsabgleich, und geographischen Musterabgleich. Die vorliegende Erfindung schlägt eine verbesserte Vorgehensweise für den logischen Musterabgleich vor, welche die Beschränkungen der oben erwähnten Lösungsansätze überwindet.
  • Eine logische Musterabgleichoperation besteht aus dem Abgleichen der logischen Beziehungen zwischen Verbindungsabschnitten in einem örtlichen Gebiet. Ein logisches Muster wird in einem Update für einen einzelnen Verbindungsabschnitt oder Vertex geliefert und könnte aus einem Satz von Beziehungen mit anderen Verbindungsabschnitten (bzw. Vertices und Kanten) innerhalb einer vorausgehend definierten Strecke (bzw. "Sprüngen" über Vertices) bestehen. Die Bandbreitenanforderungen sind verringert, da nur begrenzte Informationen übertragen werden müssen, und der Musterabgleich ist effizienter, weil Abgleichvorgänge auf den logischen Graphbeziehungen basieren, die mit einfachen logischen und rudimentären vergleichenden mathematischen Operationen (beispielsweise "ist der Grad von Vertex c gleich dem Grad von Vertex x?") verglichen werden können. Ferner können logische Graphbeziehungen in viel stärkerem Maße invariant sein als Identifikatoren, Orte, Straßenforminformation und andere geographische Daten. Beispielsweise ändert sich ein logisches Muster nicht unbedingt, auch wenn eine signifikante geometrische oder physische Änderung an Straßen oder Kreuzungen auftritt. Logische Muster, die Straßennetze darstellen, können invariant sein, mit Änderungen in der Position einer Kreuzung oder Straße, Attributen, und anderen Parametern. Wenn beispielsweise zwei Datenbanken oder zwei Versionen einer Datenbank sich nur im physischen Ort von Straßen und Kreuzungen unterscheiden, kann ein einziges logisches Muster beide korrekt repräsentieren.
  • Bei einer Ausführungsform können Attribute des Musterbereichs in dem logischen Muster für einen Abgleichvorgang mit enthalten sein. Straßenattribute wie Straßenklassifizierung, Straßennamen, Lichtinformationen, Fahrspurinformationen, Straßenbreite, und verschiedene weitere Straßenattribute können verwendet werden, um das Muster zu erweitern. Bei Patches für Grenzgebiete oder neue Gebiete oder Änderungen an Straßennetzbereichen mit geringer Symmetrie wie etwa Autobahnausfahrten oder -auffahrten oder ländliche Straßen ist eine solche Erweiterung durch Attribute unnötig.
  • Der logische Musterabgleich wendet eine logische Musterstruktur zum Vergleichen von logischen Mustern von Vertices oder Kanten an, um Über einstimmungen zu identifizieren. Kantennachbarschaftsgraphen sind ein Beispiel für solche logische Muster. 2 stellt ein Beispiel 10 für örtliche (d. h. 1 Sprung) logische Beziehungen für einen neuen Verbindungsabschnitt mit der neuen Kante 'ch' (d. h. derjenigen Kante, die Vertices h und c verbindet) dar. Die fett dargestellten Vertices befinden sich innerhalb eines "Sprungs" zu der neuen Kante benachbarten Vertices. Es ist jedoch beabsichtigt, daß andere Arten von logischen Musterstrukturen ebenfalls im Schutzbereich der vorliegenden Erfindung liegen. Das folgende sind Beispiele für Beziehungen, die einige Varianten für diese Arten von Musterstrukturen aufzeigen: der Grad eines Vertex (d. h. die Anzahl von mit dem Vertex verbundenen eindeutigen Kanten); der richtungsmäßig eindeutige Grad eines Vertex (d. h., die Anzahl von eindeutigen verbundenen gerichteten Kanten, die in einer bestimmten Orientierung gerichtet sind); ein Baummuster von benachbarten Kanten bis zu einer vorgegebenen Tiefe (Abstand oder Sprünge zwischen Kreuzungen); und die Kombination aus einem benachbarten Kantenbaummuster und Blattvertex.
  • Bei einer bevorzugten Ausführungsform wird eine Baumstruktur zum Durchführen der logischen Musterabgleichoperation verwendet. 3A veranschaulicht ein Beispiel 11 für eine Minimalbaum (MST)-Struktur für Vertex c. Dieser Baumgraph kann durch Patch-Management-Software auf einer örtlichen Vorrichtung aus der die Grundlage bildenden Kartendatenbank und den Patch-Daten erzeugt werden. Um den Verbindungsabschnitt 'ch' hinzuzufügen, wird der in 3B gezeigte Minimalbaum konstruiert und als logische Identifikation des Verbindungsabschnitts x als Teil eines Satzes von Erneuerungsanweisungen übertragen. Ein Vergleich des Graphs (logisches Muster) mit einem aus der Datenbank des Navigationssystems für den gleichen Vertex konstruierten Graph zeigt, daß sie logisch gleich sind, während sie von Graphen anderer nahegelegener Vertices verschieden sind. Der Vertex x ist somit klar und eindeutig als Vertex c identifiziert. Obgleich ein Minimalbaum das Gesamtgewicht von den Blättern zur Wurzel minimiert, kann jeder eindeutige Graphbaum verwendet werden, ob er nun redundant oder nicht redundant, minimal oder nicht minimal ist. Bei einer bevorzugten Ausführungsform ist die Ordnung der Blätter nicht wichtig. Bei einer anderen Ausführungsform reflektiert beispielsweise die Ordnung der Blätter eine Ordnung von Straßen (Kanten) im Uhrzeigersinn bei Betrachtung von oben.
  • Ein ähnliches Verfahren wird für Vertex h verwendet. Sobald die beiden Vertices eindeutig bestimmt sind, kann die Patch-Datenbank (bzw. die ursprüngliche Datenbank, falls diese modifizierbar ist) aktualisiert werden, so daß sie die zusätzliche Kante 'ch' beinhaltet. Es ist zu beachten, daß die Baumtiefe variiert werden kann und zwischen Vertices oder Patch-Iterationen verschieden sein kann. Ein Baum mit einer geringeren Tiefe kann für den Vergleich verwendet werden, wenn einfachere Beziehungen für die Eindeutigkeit ausreichend sind, und die Tiefe des Baumes je nach Bedarf für Eindeutigkeit ausgewählt werden kann.
  • Bei einer alternativen Ausführungsform kann der Minimalbaum für Vertex c in Form einer Tabelle oder geschachtelten Liste dargestellt werden und beinhaltet Grade von Vertices für den logischen Musterabgleich wie folgt:
    Figure 00130001
  • Es ist zu beachten, daß die Identifizierung der Knoten, d. h. die oben genannten Identifikatoren E, F, G usw., bei einer bevorzugten Ausführungsform nicht in dem Muster enthalten sind (sie sind obenstehend zu Veranschaulichungszwecken aufgenommen). Solche Bäume lassen sich in einer schnellen und leichten logischen Operation vergleichen, die von 1 Sprung bis n Sprünge ab dem Vertex fortschreitet, bis die angestrebte Gewißheit erreicht ist.
  • Bei einer Ausführungsform kann ein Baummuster Stellvertreterzeichen enthalten, die zu jeglichem Vertexgrad oder einem Grad innerhalb eines Bereichs passen. Beispielsweise kann ein Stellvertreterzeichen zu einer 2- Richtungs-, 3-Richtungs- oder 4-Richtungs-Kreuzung passen. Als Alternative kann ein Vergleichsalgorithmus für einen besten Abgleich verwendet werden, um ein Baummuster mit dem am nächsten passenden Muster in der Datenbank abzugleichen. Das am engsten übereinstimmende Muster kann so definiert sein, daß es z.B. die geringste Anzahl von verschiedenen Vertexgraden oder den geringsten Unterschied zwischen Vertexgraden aufweist. Zahlreiche alternative Definitionen von "engst" sind möglich. Solche Verfahren der besten oder engsten Übereinstimmung ermöglichen Flexibilität zum Abgleichen von Straßenstrukturen, die bei unterschiedlichen Datenbankversionen verschieden sein können.
  • Obgleich eindeutige Minimalbäume erzielbar sind, ist eine Erzeugung solcher Bäume nicht nötig. Eine Gesamtbaum (AST)-Struktur ist ein Beispiel für eine weitere gangbare Alternative. Die Gesamtbaumstruktur ist ein Baum mit redundanten Vertices, so daß entweder alle Blätter oder keine Blätter für eine gegebene Kante beinhaltet sind. 4 veranschaulicht eine beispielhafte Gesamtbaumstruktur 12. Hierbei wird angenommen, daß Gesamtbäume viel schneller als Minimalbäume wachsen können, aber sehr leicht zu erzeugen sind. Des weiteren bleibt der erforderliche Speicherraum für jeden Vertex der gleiche wie für einen Minimalbaum, so daß der Gesamtspeicher sehr klein bleibt. Jeder Baumknoten läßt sich durch lediglich eine Liste der Anzahl von Blattknoten (Grad) darstellen. Ein Beispiel für eine kompakte Darstellung einer Gesamtbaumstruktur der Tiefe 3 für c (in 4 gezeigt) ist die Sequenz von ganzen Zahlen: 4 (3 (3, 4, 3), 4 (4, 6, 3, 3), 2 (4, 3), 6 (3, 4, 4, 3, 4, 2)) oder einfach: 4, 3, 3, 4, 3, 4, 4, 6, 3, 3, 2, 4, 3, 6, 3, 4, 4, 3, 4, 2. Hierbei ist anzumerken, daß diese kompakte Form einen Baum einzig unter Verwendung von Blattgraden definiert. Die erste Zahl ist der Grad des Wurzelknotens c. Die zweite Zahl (3) ist der Grad des ersten Blattes e von c, gefolgt von den Graden jedes der 3 Blätter von e (3, 4, 3). Die nächste Gruppe ist der Grad des zweiten Blattes f von c, gefolgt von den Graden jedes der 4 Blätter von f, und so weiter. Bei der bevorzugten Ausführungsform ist die Ordnung der Blätter nicht wichtig.
  • Für praktische Ausführungen ist es sinnvoll, die Liste von potentiellen Übereinstimmungen vorausgehend durch Verwenden eines Fehlerradius um den ungefähren Ort eines Knotens einzuengen. Wenn beispielsweise die Anforderung zum Hinzufügen eines Verbindungsabschnitts 'xy' (d. h. 'ch') von der logischen Darstellung für x und y sowie den ungefähren Orten von x und y begleitet ist, dann können Kandidaten-Übereinstimmungen für x und y auf bestehende Vertices in dem ungefähren Gebiet, das diese vorgesehenen Orte umgibt, eingeengt werden. Der Bereich kann entweder vorgegeben sein, oder die Implementierung kann die N Vertices auswählen, die dem in der Patch-Anfrage vorgesehenen Ort am nächsten sind. Sobald eine Anzahl von vorhandenen Kandidaten-Vertices identifiziert ist, werden die logischen Muster (z.B. Bäume) erzeugt und logisch mit den in der Patch-Anfrage zur Verfügung gestellten logischen Mustern verglichen.
  • Wie oben beschrieben wurde, sind Baumstrukturen für einen logischen Musterabgleich wirkungsvoll. Die inhärente Struktur eines Baumes beschreibt ein Straßennetzmuster um den Wurzelvertex. Die Baumstruktur umfaßt notwendigerweise den Grad eines jeden Vertex in dem Baum und kann daher auf eindeutige Weise einen Vertex identifizieren, der zum Wurzelvertex des Baumes paßt (und daneben andere Knoten in dem Baum identifizieren). Stark symmetrische Straßennetze können eine Herausforderung für den Musterabgleich darstellen, und Bäume mit einer größeren Tiefe können erforderlich sein, um Vertices eindeutig abzugleichen. Vertex-Fehlzuordnungen können resultieren, wenn der Baum einen Vertex nicht eindeutig identifiziert (d. h. zwei oder mehr Vertices mit dem Muster übereinstimmen). Ein Baum wird im allgemeinen so angegeben, daß er mit dem gewünschten Vertex übereinstimmt, kann aber zufällig mit einem oder mehr zusätzlichen Vertices übereinstimmen, wenn Fehlzuordnungen nicht in Betracht gezogen werden. Wenn die Erzeugung von Bäumen eine Fehlzuordnung nicht in Betracht zieht, kann eine Gegenmaßnahme wie eine statistische Analyse verwendet werden.
  • Ein Lösungsansatz zum Messen der Möglichkeiten einer Fehlzuordnung ist es, Statistiken über Baummuster aus einer Kartendatenbank zu sammeln. Es gibt nur so viele Bäume, wie Vertices zu zählen sind, obgleich die Tiefe der Bäume bestimmt, wie viele Musterkombinationen es gibt. Das Sammeln von Statistiken für große Tiefen oder für viele Tiefenvariationen kann zeitraubend sein und kann von beschränktem Wert sein, wenn die Karte um auch nur einen Vertex geändert wird, der die Verbindbarkeit des Graphnetzes wesentlich beeinflußt. Als Alternative können zu erwartende Musterwahrscheinlichkeiten aus Vertexgradstatistiken berechnet werden.
  • Man betrachte eine probabilistische Sicht eines Straßennetzes, in dem jeder Vertex eine zugeordnete Wahrscheinlichkeit besitzt, daß er einen bestimmten Auswärtsgrad aufweist (d. h. Kanten, denen zum Verlassen des betreffenden Vertex gefolgt werden kann, einschließlich Kehren oder Schleifen). Die Wahrscheinlichkeitsverteilung des Auswärtsgrades d, als P(d) bezeichnet, kann je nach dem Ort variieren. Ein Innenstadtbereich könnte einen hohen Anteil von Einbahnstraßen und weniger Auswärtskanten-Wahlmöglichkeiten für einen Fahrer an jeder Kreuzung aufweisen. Die Wahrscheinlichkeitsdichtefunktion (pdf) für einen Innenstadtbereich könnte daher stärker auf geringere d-Werte hin gewichtet werden als eine Wahrscheinlichkeitsdichtefunktion, die einem ländlichen oder städtischen Gebiet entspricht.
  • Die Wahrscheinlichkeit, daß ein Knoten, der einen gleichen Auswärtsgrad wie ein anderer Knoten besitzt, bezeichnet als p0, kann als die Summe der Wahrscheinlichkeiten geschrieben werden, daß sie jeweils den gleichen Grad aufweisen:
    Figure 00160001
  • Der Wert von p0 ist die Wahrscheinlichkeit, daß ein Baum der Tiefe 0 mit einem Vertex übereinstimmt, und hängt nur von der Wahrscheinlichkeitsverteilung P ab. Ein Baum der Tiefe 1 besitzt eine Wahrscheinlichkeit p1 der Übereinstimmung mit einem Vertex, die durch Berücksichtigung der Übereinstimmungswahrscheinlichkeit in Abhängigkeit von seinem Grad bestimmt werden kann. p1(d) sei die Wahrscheinlichkeit, daß ein Baum der Tiefe 1 für einen Wurzelvertex mit Grad d übereinstimmt. Um die Blätter zu korrelieren, sei ohne Verzicht auf Allgemeingültigkeit angenommen, daß die Blätter nach ihrem Grad geordnet sind und, wenn eine Übereinstimmung vorliegt, alle mit dem entsprechenden Blatt übereinstimmen würden. Somit müssen d Blätter Bäume mit einer Übereinstimmungstiefe 0 haben; p1(d) = P(d)p0 d(2)
  • Da die Möglichkeit, daß ein Baum der Tiefe 1 einen Grad d aufweist, P(d) ist, läßt sich die Gesamtwahrscheinlichkeit p1 ausdrücken als:
    Figure 00170001
    und ein Baum der Tiefe n hat die folgende Wahrscheinlichkeit pn, daß er mit einem Vertex übereinstimmt:
    Figure 00170002
  • Die Wahrscheinlichkeit, daß zwei abstrakte Bäume übereinstimmen, ist die Wahrscheinlichkeit, daß der Grad der Wurzeln übereinstimmt und daß jedes Blatt ebenfalls übereinstimmt. Diese rekursive Darstellung ist hilfreich für eine Berechnung des Nutzens einer Vergrößerung der Tiefe des Baumes von n-1 zu n.
  • Obgleich verschiedene Karten und verschiedene Kartenabschnitte stark variierende Gradstatistiken aufweisen können, können Vertexgradstatistiken P(d) für eine bestimmte Karte gesammelt werden. Tabelle 1 listet 5 beispielhafte Szenarios auf für P(d), wenn d = 1 bis 4. In diesen Szenarios sind P(0) und P(d>4) gleich Null. Tabelle 1: Szenarios für Kreuzungs-Auswärtsgrad
    Figure 00170003
    Figure 00180001
  • Szenario 1 soll die Konfiguration eines innerstädtischen Straßennetzes grob darstellen, bei dem Einbahnstraßen und Wendebeschränkungen nicht ungewöhnlich sind. Infolgedessen ist der 2-Richtungen-Auswärtsgrad stark gewichtet. Szenario 2 stellt eine ländliche Konfiguration dar, bei der Kreuzungen mit 3 und 4 Richtungen (wenden gestattet) nicht ungewöhnlich sind. Szenarios 3 bis 5 sind insofern vereinfacht, als nur zwei pdf-Werte ungleich Null sind, und sind dazu nützlich, eine umfassende Analyse der Wahrscheinlichkeit einer Fehlzuordnung über einen Bereich von pdf-Gewichtungen darzustellen. Da die Szenarios 3 und 4 den gleichen Satz von Wahrscheinlichkeiten besitzen, obgleich sie verschiedenen Graden zugeordnet sind, besitzen die zwei Szenarios die gleiche Wahrscheinlichkeit einer Fehlzuordnung. Allgemein gesprochen sind nur die Wahrscheinlichkeiten in der pdf von Wichtigkeit beim Berechnen der Abgleichmöglichkeit.
  • 5 ist ein Diagramm der Wahrscheinlichkeit für eine Zufallsübereinstimmung über der Baumtiefe für einen Bereich von Szenarios von Szenario 3 bis Szenario 5 und beinhaltet auch die Szenarios 1 und 2 für einen Vergleich. Aus dieser Figur geht hervor, daß eine ausgeglichenere pdf von P(d) in einer besseren (niedrigeren) Fehlzuordnungswahrscheinlichkeit resultiert. Eine Fehlzuordnungswahrscheinlichkeit von nahezu 1 zu einer Milliarde Vertices (weniger als 1 in einer Million Vertices) ist bei einer Tiefe von 4 und einer pdf von 50:50 zu erwarten (für Szenarios 3, 4, A in 5). Es ist auch zu beachten, daß ein weiteres Auffächern der pdf, wie durch die Szenarios 1 und 2 gezeigt wird, in einer noch besseren (niedrigeren) Fehlzuordnungswahrscheinlichkeit resultiert.
  • 5 zeigt ebenfalls, wie unausgeglichenere pdfs (in einem Wert stark gewichtet) eine größere Auswirkung auf die Wahrscheinlichkeit einer Zufallsübereinstimmung besitzen. Dies ergibt sich aus der weiten Trennung in den Kurven auf der rechten Seite gegenüber der engen, kaum erkennbaren Trennung in den Kurven auf der linken Seite, da alle benachbarten Kurven den gleichen Unterschied der pdf-Werte von 1 % aufweisen (d. h. die Kurve ganz rechts ist [0,99 0,01], und die dazu benachbarte Kurve ist [0,98 0,02]).
  • Selbst im Fall einer sehr hohen Symmetrie, in dem nur 1 % der Vertices (im Hinblick auf den Grad) vom üblichsten Vertextyp verschieden sind (was durch Szenario 5 gezeigt wird), ist eine sehr geringe Übereinstimmungswahrscheinlichkeit zu erwarten, wenn ein vergleichsweise einfacher Baum verwendet wird. Eine Baumtiefe von 9 resultiert beispielsweise in einer Wahrscheinlichkeit von annähernd 1 zur einer Million einer zufälligen (unerwarteten) Übereinstimmung. Wenn des weiteren der häufigste Grad d ist, dann ist die zu erwartende maximale Baumgröße etwa:
    Figure 00190001
    wobei D die Baumtiefe ist, und N die maximale Zahl von möglichen Knoten in einem Baum für eine Karte ist, bei der der maximale Vertexgrad d ist. Als Alternative ist N definiert als eine Schätzung der Anzahl von möglichen Knoten in einer Karte, in welcher der bei weitem häufigste Vertexgrad d ist.
  • Beispielsweise die Verwendung einer Baumtiefe von 4 resultiert in einer maximalen Baumgröße von etwa 120 Vertices, die für eine eindeutige Darstellung 30 Bytes erfordern würde (da ein Baum durch eine einfache zweidimensionale Listendarstellung von Vertexgraden eindeutig repräsentiert werden kann, würde dies jeweils N Vertexgradwerte mit 2 Bits für einen Gradwert von 0 bis 3 erfordern). Aus 4 ist ersichtlich, daß eine Baumtiefe von 4 eine sehr geringe Erwartung für eine Zufallsübereinstimmung außer für die symmetrischsten Szenarios ergibt. Selbst für ein Szenario von [0,90 0,10] liegt die Wahrscheinlichkeit einer Zufallsübereinstimmung in der Größenordnung von 1 in 1000. Eine Erwartung von etwa 1 in 10 Millionen oder noch viel weniger wäre jedoch typisch in allen außer den symmetrischsten Fällen.
  • In allen außer den symmetrischsten Fällen reicht gemäß den obenstehenden Angaben eine Baumtiefe von 3 bis 5 typischerweise aus, um weniger als 1 in einer Million oder 10 Millionen Zufallsübereinstimmungen zu erzielen.
  • Aus dieser Analyse geht auch hervor, daß Bäume mit einer Tiefe von mehr als einem bestimmten Betrag eine abnehmende Verstärkung zur Verfügung stellen. Dies stellt einen Anreiz dar, Baummuster mit Vertex- oder Kantenattributen zu erweitern.
  • Eine breite Vielfalt von Attributen wird für verschiedene Anwendungen wie etwa Routenberechnung, Führung, Kartenabgleich, und Geo-Codierung oder umgekehrte Geo-Codierung verwendet. Diese Attribute können variierende Grade der Eindeutigkeit bzw. Nützlichkeit für Musterabgleichzwecke besitzen. Tabelle 2 ist eine repräsentative Liste von Vertex- und Kantenattributen aus dem navigierbaren KIWI-Kartendatenbankformat. Tabelle 2: Relativwert von Attributen für Musterabgleich
    Figure 00200001
    Figure 00210001
  • Attribute, die einen großen und stark variierenden Wertebereich aufweisen oder hohe Eindeutigkeitsraten besitzen, sind stark geschätzt, während redundante (inhärente), geringe Anwendbarkeits-, seltene oder stark nicht-eindeutige Attribute weniger stark geschätzt sind. Attribute, die für ihre Darstellung bedeutend mehr Speicher erfordern, sind ebenfalls weniger geschätzt als kompakte Werte. Es gibt eine Kompromißbeziehung zwischen Eindeutigkeit und Speichergrößeerfordernissen, obgleich diese Kompromißbeziehung nur bei kleinen Speichergrößen relevant ist, da n-Bitwerte have 2n Kombinationen besitzen.
  • Zusätzlich zum Mitteilen eines Baumes für Knoten in einem Update können Attributinformationen bei der Musterabgleichsoperation behilflich sein. Fraglos sind einige Attributinformationen notwendigerweise Teil von Updates, wie etwa Attribute neuer Vertices und Kanten. Attribute vorhandener Vertices, die in der gegenwärtigen Datenbank mit Attributen bestehender Vertices abgeglichen werden sollen, können jedoch ebenfalls mitgeteilt werden. Diese Vertices oder Kanten, die nicht korrigiert werden, werden im nachfolgenden als externe Vertices oder externe Kanten bezeichnet.
  • Allgemein gesprochen sollte die Größe von Attributinformationen zusätzlich zu dem Wert des Attributtyps berücksichtigt werden. Ein Straßen- oder Kreuzungsname könnte beispielsweise höchst wertvoll sein, aber mehr Speicher oder Übertragungsbandbreite als die Anzahl von Fahrspuren erfor dern. Darüber hinaus weisen einige Attribute wie etwa Text-Strings oder Namen beträchtliche Speicherbedürfnisse auf. Diese Größen können je nach der Speicherbelastung von Alternativen wie etwa zunehmender Baumtiefe relevant sein oder auch nicht. Eine zunehmende Baumtiefe kann vorzuziehen sein, wenn sie die Möglichkeit einer Fehlzuordnung mit weniger Speicher als zusätzliche Attribute verringert.
  • Die Einbeziehung von Attributen externer Vertices oder Kanten, d. h. von solchen, die vorligend nicht korrigiert werden, erhebt auch die Frage, wie viele Attribute von Vertices einbezogen werden sollen. Sowohl Speicher als auch Flexibilität des Patch-Formats können in Betracht gezogen werden. Ein Patch-Format, das flexibel genug ist, um variierende Typen von Attributen und variierende Beträge von Attributen, wie etwa Attributen für Vertices mit variierender Tiefe in Bäumen zu unterstützen, könnte einen beträchtlichen Overhead einfach nur dazu erfordern, die Beschreibung davon, welche Informationen in dem Patch enthalten sind, darzustellen. Dies würde des weiteren eine zusätzliche Komplexität für die Patch-Anwendung und Patch-Erzeugungssoftware bedeuten. Bei einer Ausführungsform werden externe Attribute von allen außer den kleinsten Feldgrößen zugunsten tieferer Bäume vermieden.
  • Optimale Inhalte eines Patch, d.h. Muster und Attribute, können entweder statistisch oder deterministisch bestimmt werden. Statistische Ansätze umfassen die Bestimmung von Statistiken für Karten oder Kartengebiete oder dynamische Statistiken je nach dem Bereich, der korrigiert werden soll (was ein variables Patch-Format erfordert). Eine Verwendung beider Ansätze zum Konfigurieren von Patch-Formaten und/oder -Inhalten wäre vorstellbar. Ein deterministischer Ansatz würde den geeigneten Patch-Inhalt für eine bestimmte Patch-Operation bestimmen.
  • Statistische Ansätze erfordern die Erstellung einer gewünschten oder Soll-Wahrscheinlichkeit einer Fehlzuordnung. Es werden dann probabilistische Verfahren unter Verwendung des Sollwertes und gesammelter Statistiken auf die Patch-Erzeugung oder die Angabe des Patch-Formats angewendet. Ein grundlegender probabilistischer Ansatz könnte eine statistisch bestimmte pdf P(d) als Grundlage für die Bestimmung der Baumtiefe n verwenden, so daß pn weniger als oder gleich die gewünschte Wahrscheinlichkeit einer Fehlzuordnung ist. Dieses Verfahren impliziert eine bestimmte zu erwartende Wahrscheinlichkeit einer Fehlzuordnung pf. 6 ist ein Ablaufdiagramm 80 (81 bis 88), das zeigt, wie die Baumtiefe bestimmt wird, die zum Erzielen der angestrebten pf erforderlich ist. Der grundlegende probabilistische Ansatz kann auch auf die Einbeziehung von Attributen durch das Sammeln von Statistiken über die Eindeutigkeit von Attributen erstreckt werden. Das Sammeln von Statistiken könnte beispielsweise eine Bestimmung der Wahrscheinlichkeit beinhalten, daß eine Straße L Fahrspuren aufweist oder den Namen "Hauptstraße" trägt. Selbst ein eindeutiger Straßenname ohne ein Baummuster kann eine beträchtliche, nicht Null betragende Möglichkeit einer Fehlzuordnung besitzen, da es mehrfache Vertices auf dem gleichen Straßensegment geben kann, oder sogar mehrfache Vertices, die eine Kreuzung darstellen. Sobald Statistiken gesammelt sind, können sie zusammen mit der pdf P(d) P(d) dazu verwendet werden, die erforderlichen Baumtiefe- und Attributinhalte ähnlich wie in 6 gezeigt zu berechnen.
  • Ein alternativer Ansatz ist die Verwendung eines adaptiven Verfahrens für die Selektion von Update-Parametern. Die Bestimmung von Update-Parametern wie etwa das Auswählen einer Baumtiefe, und ob bestimmte Attribute einbezogen werden sollen, findet zum Zeitpunkt der Erzeugung des Update statt und könnte beispielsweise von der Eindeutigkeit der betreffenden Vertices oder Kanten abhängen, die aktualisiert werden.
  • Bei einer Ausführungsform ist die zeitliche Anwendbarkeit von Patches definiert, so daß – obgleich der Inhalt individueller Patch-Anweisungen für eine Anwendung zu einem gegebenen Zeitpunkt ausreichend wäre – eine bestimmte Zeit definiert ist, um die Stimmigkeit sicherzustellen und zu gewährleisten, daß Musterabgleiche wie vorgesehen stattfinden. Ein Patch kann das Muster verändern, das er gewissermaßen zuzuordnen versucht.
  • 7 stellt dar: (a) eine bestehende navigierbare Kartendatenbank, (b) eine neue Autobahn mit Auf- bzw. Abfahrten, die korrigiert werden sollen, und (c) die korrigierte navigierbare Kartendatenbank. Gemäß dem Satz von Patch-Ordnungsregeln werden Verbindungsabschnitte in einer Ordnung hinzugefügt, die mit Verbindungsabschnitten beginnt, welche mit den vorhande nen Datenbank-Vertices verbunden sind. Eine Auf- bzw. Abfahrt wird daher vor einem Autobahnabschnitt hinzugefügt. Es wird z.B. die Kante 'd' hinzugefügt, gefolgt von der Kante 'e' und dann der Kante 'f, usw. Des weiteren wird gemäß den Regeln, da Vertex 7 nicht vorhanden ist, Kante 'a' zuerst durch zwei neue Kanten ersetzt, die Vertex 1 mit 3 über einen dazwischenliegenden neuen Vertex 7 verbinden.
  • 8 stellt einen Mehrschrittabschnitt des Patch-Update zum Bewirken des kumulativen Effektes des Hinzufügens der Autobahnauffahrtkante 'd' von 6 an einer Stelle entlang einer bestehenden Kante 'a' dar. Dieser 4-Schritt-Prozeß beinhaltet das Löschen der ursprünglichen Kante, das Hinzufügen zweier Kanten, die sich so ergänzen, daß sie die gelöschte Kante ersetzen, und das Hinzufügen der neuen Kante, welche die Auf- bzw. Abfahrt repräsentiert. Es ist anzumerken, daß die Auf- bzw. Abfahrt nicht unmittelbar hinzugefügt wurde, da gemäß der 2. Patch-Ordnungsregel Klasse 2a-Vertices wie etwa z als Klasse 2b-Vertices durch die Kantenersetzungsschritte hinzugefügt werden, um Konfusion und Musterabgleichkomplikationen hinsichtlich Klasse 2a-Abgleich zu vermeiden.
  • Mustergraphen (Bäume) für x1 und x2 sind verschieden, weil dadurch, daß x1 als Vertex 1 erkannt wurde, Kante a (i) gelöscht wird und Vertex 1 dann nicht mehr mit Vertex 3 verbunden ist. Anders ausgedrückt, Schritt 1 ändert die bestehende Datenbank so, daß Knoten 1 (Vertex 1) einen verschiedenen Grad und Baum besitzt. Falls ein neuer Musterabgleich erforderlich wäre, um x2 mit Vertex 1 abzugleichen, wäre ein gültiger Baum für x2 erforderlich, der mit dem neuesten Baum für Vertex 1 übereinstimmt (d. h. der Baum von x2 würde keine Kante zu Vertex 3 beinhalten). Glücklicherweise ist dies bei der vorliegenden Erfindung nicht nötig.
  • Ein zweiter, verschiedener Baum für x2 ist deshalb nicht erforderlich, weil die Patch-Anwendung x1 bereits mit Vertex 1 abgeglichen hat. Daher braucht der Aktualisierungsschritt 2 nur anzugeben, daß x2 einfach x1 ist. Identifikatoren oder Zeiger/offsets können verwendet werden, um eine solche specification zu bewerkstelligen. Die Patch-Anwendung wiederum sieht nach, welchen Knoten sie mit x1 abgeglichen hat, und stellt für x2 eine Übereinstimmung mit dem gleichen Knoten fest. Daher ist es bei einer bevorzugten Ausführungsform nicht nötig, für irgendeinen Vertex mehr als einen Baum zu übertragen, selbst wenn sich der Baum des Vertex einmal oder mehrmals ändert.
  • Das Update von 8 könnte daher den in der nachfolgenden Tabelle gezeigten Inhalt haben. Es ist auch zu beachten, daß Feststellungen von Vertex-Äquivalenten für nicht unmittelbar in Beziehung stehende Schritte ebenfalls gültig sind. Z.B. das Hinzufügen einer neuen Straße, die von Vertex 3 abgeht, könnte Teil des gleichen Update sein und würde nicht einen Baum für einen Vertexabgleich mit Vertex 3 beinhalten, sondern eine Feststellung, daß der Wurzelknoten der gleiche wie y1 ist. Tabelle: Beispiel für Inhalte von Mehrschrittabschnitten
    Figure 00250001
  • Die Aktualisierungsschritte in der obenstehenden Tabelle sind als i bis 1 etikettiert, um anzuzeigen, daß diese Teil einer größeren Liste von Patch-Anweisungen sein können und nicht unbedingt zusammen verkapselt zu sein brauchen. In der Tat brauchen sie nicht einmal in einer Gruppe zusammengefaßt oder sequentiell zu sein, obgleich die angegebene Ordnung wichtig ist, falls die Feststellungen eine Ordnung wiedergeben. Der Befehlsabschnitt eines Patch kann durch eine geordnete Liste solcher Anweisungen und ihre zugeordneten Parameter oder Zeiger auf ihre zugeordneten Parameter dargestellt sein. Beispielsweise können die Bäume in einem separaten Abschnitt des Patch gespeichert sein.
  • Das Motiv für das Formulieren von Updates, die solche Feststellungen verwenden, ist nicht in erster Linie Kompression oder Bandbreitenerfordernisse (obgleich es in hochkompakten Updates resultiert), sondern stattdessen, zeitliche und kausale Komplikationen zu vermeiden. Ein Update-Schritt kann die Attribute oder die Struktur des Graphs so modifizieren, daß das gleiche Muster nicht mehr übereinstimmt. Darüber hinaus können darauffolgende Versuche, nahegelegene Vertices miteinander abzugleichen, wegen struktureller Änderungen ebenfalls scheitern.
  • Das zeitliche Ordnen von Graph-Aktualisierungsschritten in einem Patch-Anwendungsprozeß resultiert in spezifischen und potentiell verschiedenen Dynamiken in der Gesamtstruktur eines Graphs und örtlichen Graphmustern während dieses Prozesses. Die Erkennung dieses Problems ist die Grundlage der Feststellungsregel von Kartendatenbank-Update-Inhalten, d. h. der Patch-Erzeugung, und für die Identifikations-Prioritätsregel für die Patch-Anwendung. Zeitliches Ordnen impliziert, daß ein Graphmuster wie etwa ein MST nur zu einer bestimmten Zeit gültig sein kann.
  • Eine Feststellungsregel ist so definiert, daß ein jeglicher Graph-Aktualisierungsschritt, der einen Abgleich eines Vertex X erfordert – wobei für einen vorausgehenden Schritt ein dem gleichen Knoten (Vertex) entsprechender Vertex Y abgeglichen werden mußte – die Äquivalenz dieses Vertex X mit dem entsprechenden Vertex Y im vorausgegangenen Update feststellt (statt ein Graphmuster für diesen Vertex X zu beinhalten). Selbst wenn ein Vertex in einem früheren Schritt nicht modifiziert wurde, kann jedoch ein Vertex in der Nachbarschaft wesentlich modifiziert worden sein, um das örtliche Graphmuster zu verändern. Hierbei bezieht sich 'örtlich' auf das Graphmuster um den unmodifizierten Vertex, und 'Nachbarschaft' bezieht sich auf die Erstreckung eines örtlichen Graphmusters, wie sie durch die Tiefe eines MST bestimmt ist. Ein örtliches Graphmuster ist wesentlich modifiziert, wenn ein übereinstimmendes Muster für den Vertex, das in einem Patch-Update enthalten sein könnte, weder mit dem unmodifizierten noch dem modifizierten örtlichen Graphmuster übereinstimmt. Im wesentlichen besitzt ein Muster eine bestimmte Anwendbarkeitszeit (bzw. Gültigkeitszeit). Bei einer Ausführungsform ist die Anwendbarkeitszeit als vor der Anwendung des Patch liegend definiert, was die Grundlage für die Identifikations-Prioritätsregel darstellt.
  • Die Identifikations-Prioritätsregel legt die Zeit für den Musterabgleich eines Vertex folgendermaßen fest: (i) für Klasse 1-Vertices vor der Anwendung jeglicher Schritte des Patch; und (ii) für Klasse 2-Vertices sollte kein Musterabgleich erforderlich sein, sondern gemäß der Feststellungsregel wird die Äquivalenz aller darauffolgenden Bezugnahmen auf den gleichen Vertex festgestellt. Als Ergebnis der Identifikations-Prioritätsregel brauchen Graphmusterinformationen für jeden Vertex nur einmal für jeden Patch mitgeteilt zu werden, und alle Klasse 1-Vertices (die einzigen abzugleichenden Vertices) können abgeglichen werden, bevor in einer Phase, die man als Identifikations- oder Musterabgleichstufe der Patch-Anwendung bezeichnen könnte, irgendwelche Änderungen vorgenommen werden.
  • Das Patch-Management könnte verständlicherweise sehr komplex werden, falls eine Datenbank mehr als einmal korrigiert wird. Bei einer Ausführungsform kann die Kompatibilität zwischen Patches dadurch aufrechterhalten werden, daß stets nur die ursprüngliche Datenbank für einen Musterabgleich verwendet wird, und Identifikationen neuer Vertices beibehalten werden. Bei einer anderen Ausführungsform werden darauffolgende Patches unter Musterabgleich mit der vergrößerten Datenbank angewendet, bevor der nächste Patch angewendet wird.
  • 9 veranschaulicht einen beispielhaften Inhalt einer Erneuerung einer Navigations-Kartendatenbank. Die Erneuerung 90 besteht aus drei Sätzen von Informationen: (i) logischen Mustern 92, die für das Abgleichen verwendet werden, (ii) Anweisungen 94 für das Hinzufügen oder Löschen von Verbindungsabschnitten einschließlich tatsächlicher oder implizierter Äquivalenzfeststellungen, und (iii) neue oder Ersatz (Erneuerungs)-Daten 96, die in der modifizierten oder korrigierten Datenbank abzulegen sind. Jede Anweisung kann einen Index oder Identifikator 97 für das Muster enthalten, der für den Abgleich von sowohl Start- als auch Endknoten verwendet wird, einen Anweisungstyp (Hinzufügen oder Löschen) 98 und einen Zeiger oder Index 99 für neue oder Ersatzdaten, falls anwendbar. Die Änderungen an der Navigationsdatenbank sind schrittweise beschrieben. Jeder Schritt (Anweisung) beschreibt eine einzelne Hinzufügungs- oder Löschungsoperation an einem Verbindungsabschnitt (Straßenabschnitt) zwischen zwei Kreuzungen (Knoten). Die Änderungen sind den logischen Mustern zugeordnet, die zum Identifizieren der betroffenen Straßen und/oder Kreuzungen erforderlich sind. Die logischen Muster umfassen beispielsweise Baummuster und können gegebenenfalls mit einem oder mehr Attributmustern mit hoher Nützlichkeit vervollständigt werden, um eine Identifikation zu unterstützen. Es ist ersichtlich, daß weitere Prozeduren und Formate angewendet werden können, die mit den oben genannten Grundsätzen und Patch-Regeln übereinstimmen.
  • 10 stellt eine beispielhafte Prozedur 100 (102 bis 119) für die Anwendung eines Update auf eine Navigationsdatenbank gemäß den oben dargestellten Grundsätzen und Patch-Regeln dar. 10 stellt eine Schleife dar, die jede Anweisung in dem Patch durchläuft. Bei einer Ausführungsform sind alle Muster vorausgehend gemäß den obenstehend beschriebenen Zeitregeln und Grundsätzen abgeglichen worden. Bei einer anderen Ausführungsform wird der Musterabgleich, falls nötig, für sowohl Start- als auch Endknoten einer Anweisung durchgeführt, wie in Schritt 104 dargestellt ist. Bei der bevorzugten Ausführungsform vergleicht jedoch der Musterabgleich das empfangene logische Muster mit der Datenbank zu einem bestimmten Zeitpunkt, wie etwa vor der Anwendung irgendwelcher der Anweisungen aus diesem Patch. Nach erfolger Identifizierung und Klassifizierung des Start- und Endknotens wird die Patch-Operation bestimmt (nicht unbedingt durchgeführt, da eine Durchführung bis zum Abschluß aller Musterabgleiche aufgeschoben werden kann). Klasse 2a-Knoten werden durch Einfügungsoperationen gehandhabt, um sie in Klasse 1-Knoten zu ändern, wie in Schritt 110 gezeigt ist. Es ist anzumerken, daß bei Hinzufügen, d. h. der tatsächlichen Durchführung einer Patch-Operation, jeder Klasse 2 (a oder b)-Knoten zu einem Klasse 1-Knoten wird. Gemäß den Patch-Ordnungsregeln wird ein Hinzufügen vereinzelter Verbindungsabschnitte (d. h. solcher mit Start- und Endknoten, die jeweils Klasse 2b sind) aufgeschoben, bis mindestens einer kein Klasse 2b-Knoten mehr ist, wie in Schritt 118 gezeigt ist. Es ist ersichtlich, daß weitere Prozeduren angewendet werden können, die mit den obenstehend dargestellten Grundsätzen und Patch-Regeln konform sind.
  • 11 stellt eine beispielhafte Prozedur 120 (122 bis 132) für Musterabgleich und Klassifizierung dar. Die Musterabgleichoperation sammelt zuerst aus der vorhandenen Datenbank Vertices, die sich in genereller Nachbarschaft des zu erneuernden Vertex befinden, wie in Schritt 122 gezeigt ist. Dies kann beispielsweise eine Suche nach Vertices innerhalb eines physischen Bereiches eines ungefähren Ortes, der für den zu erneuernden Vertex angegeben ist, beinhalten. Die Prozedur kann diese gegebenenfalls nach ihrer Nähe zu dem ungefähren Ort sortieren. Anschließend wird in Schritt 124 für jeden Kandidaten-Vertex ein logisches Muster aus der bestehenden Datenbank aufgebaut und in Schritt 126 mit dem in der Erneuerung gelieferten Muster verglichen. Falls eine Übereinstimmung gefunden wird, wird der Vertex als Klasse 1-Vertex klassifiziert. Andernfalls, wenn keiner der Vertices in dem Bereich übereinstimmt, wird in Schritt 132 bestimmt, daß es sich bei dem Knoten um einen Klasse 2-Vertex handelt. Mögliche Ausführungsformen des Abgleichs umfassen den ersten "exakt" übereinstimmenden Baum oder den am besten übereinstimmenden Baum. Verschiedene Alternativen sind möglich, wie vorausgehend beschrieben wurde. Zusätzlich wird eine weitere Klassifizierung eines Klasse 2-Vertex als entweder Klasse 2a oder 2b durch Gebäudemuster bewerkstelligt, als ob ein Vertex zwischen dem Start- und Endpunkt auf jedem Verbindungsabschnitt innerhalb der Nachbarschaft vorhanden wäre. Wenn ein Abgleich mit einem solchen "virtuellen" Vertex stattfindet, wird der Erneuerungsvertex als Klasse 2a klassifiziert. Es ist ersichtlich, daß weitere Prozeduren und Formate angewendet werden können, die mit den obenstehend dargestellten Grundsätzen und Patch-Regeln konform sind.
  • Die Verfahren für Musterabgleich und Klassifizierung der vorliegenden Erfindung können auch dazu verwendet werden, Ausgaben von Datenbankversionen und die Anwendbarkeit von Erneuerungsversionen zu erfassen. Anweisung, die offensichtlich (gemäß den Patch-Ordnungsregeln) nicht in Ordnung sind, können anzeigen, daß das Navigationssystem eine frühere Erneuerung versäumt hat. Anweisungen zum Löschen bereits nicht mehr vorhandener Verbindungsabschnitte oder zum Hinzufügen bereits vorhandener Verbindungsabschnitte können Indikatoren dafür sein, daß die Datenbankversion die Erneuerung bereits beinhaltet. Ferner können die Verfahren der vorliegenden Erfindung auf mehrfache Formen der Navigations-Karten datenbankspeicherung angewendet werden. Navigations-Kartendatenbanken können mehrfache Darstellungen eines Straßennetzes aufweisen, die für bestimmte Anwendungen zugeschnitten sind, wie etwa die Parcel (Führungs)- und Region (Routenberechnungs)-Sektionen von KIWI-Datenbanken. In diesem Fall können alternative Darstellungen verwendet werden, um Musterabgleiche (Identifikation) und Klassifizierungen eines Knotens (oder Verbindungsabschnittes) zu bestätigen, oder als Sicherungs- oder Rückgriffquelle für die Erzeugung von Mustern.
  • Bei einer alternativen Ausführungsform kann ein Direktzugriffsspeicher verwendet werden, um die Navigations-Kartendatenbank oder einen Abschnitt der Navigations-Kartendatenbank zu speichern, und die Erneuerung kann direkt auf die Datenbank angewendet werden, anstatt einen separaten Patch-Speicher beizubehalten.
  • Die Beschreibung der Erfindung ist nur beispielhaft gedacht, und Variationen, die nicht vom Kerngedanken der Erfindung abweichen, sollen ebenfalls durch den Schutzbereich der Erfindung abgedeckt sein. Solche Variationen werden nicht als außerhalb des Grundgedankens und Schutzbereiches der Erfindung liegend betrachtet.

Claims (26)

  1. Verfahren (100) zum Identifizieren von Straßenabschnitten in einer Navigationsdatenbank, welches aufweist: Empfangen eines Datenbank-Update, welches mindestens eine Straßenkreuzung (103) identifiziert; Konstruieren einer logischen Darstellung (10) der Straßentopologie um die mindestens eine Straßenkreuzung (104, 106, 124); und Identifizieren der mindestens einen Straßenkreuzung in der Navigationsdatenbank durch Vergleichen der logischen Darstellung mit einer logischen Darstellung der Navigationsdatenbank (104, 106, 126, 127).
  2. Verfahren nach Anspruch 1, wobei der Schritt des Konstruierens einer logischen Darstellung weiterhin das Aufbauen eines Graphs (10) aufweist, welcher die Straßentopologie in der Nachbarschaft der mindestens einen Straßenkreuzung (124) darstellt, wobei Knoten des Graphs für Straßenkreuzungen stehen, und Verbindungsabschnitte des Graphs für Straßensegmente stehen.
  3. Verfahren nach Anspruch 1, wobei das Datenbank-Update des weiteren ein Attribut aufweist, das der mindestens einen Straßenkreuzung zugeordnet ist, und Verwenden des Attributs zum Identifizieren der mindestens einen Straßenkreuzung in der Navigationsdatenbank.
  4. Verfahren nach Anspruch 1, wobei das Datenbank-Update des weiteren mindestens ein Straßensegment identifiziert, das ein Attribut aufweist, und Verwenden des Attributs des mindestens einen Straßensegments zum Identifizieren der mindestens einen Straßenkreuzung in der Navigationsdatenbank.
  5. Verfahren nach Anspruch 1, wobei the Schritt des Konstruierens einer logischen Darstellung weiterhin das Aufbauen eines Baumgraphs (10) zum Darstellen der Straßentopologie um die mindestens eine Straßenkreuzung (124) aufweist, wobei Knoten des Baumgraphs für Straßenkreuzungen stehen, und Verbindungsabschnitte des Baumgraphs für Straßensegmente stehen.
  6. Verfahren nach Anspruch 5, wobei die mindestens eine Straßenkreuzung als Wurzelknoten für den Baumgraph dient.
  7. Verfahren nach Anspruch 5, wobei der Schritt des Identifizierens der mindestens einen Straßenkreuzung weiterhin die Anwendung einer Minimalbaum (11)-Abgleichoperation aufweist.
  8. Verfahren nach Anspruch 5, wobei der Schritt des Identifizierens der mindestens einen Straßenkreuzung weiterhin die Anwendung einer Gesamtbaum (12)-Abgleichoperation aufweist.
  9. Verfahren nach Anspruch 5, welches weiterhin das Auswählen von Kandidaten-Straßenkreuzungen in der Navigationsdatenbank basierend auf der annähernden Lage der mindestens einen Straßenkreuzung (122) vor dem Vergleichen der logischen Darstellung mit einer logischen Darstellung der Navigationsdatenbank aufweist.
  10. Verfahren nach Anspruch 5, wobei die Tiefe des Baumgraphs auf einer Wahrscheinlichkeit basiert, daß eine Anzahl von Straßensegmenten an einer oder mehr von dem Baumgraph (80) repräsentierten Straßenkreuzung zusammentreffen.
  11. Verfahren nach Anspruch 5, wobei eine Tiefe des Baumgraphs als eine minimale Tiefe bestimmt wird, damit der Baumgraph die mindestens eine Straßenkreuzung (80) eindeutig identifiziert.
  12. Verfahren nach Anspruch 1, welches weiterhin das Anwenden des Datenbank-Update auf die identifizierte Straßenkreuzung in der Navigationsdatenbank (110, 114, 115, 117) aufweist.
  13. Verfahren nach Anspruch 1, welches weiterhin das Formulieren eines Patch aufweist, welches das Datenbank-Update in Beziehung zur Navigationsdatenbank (100) angibt.
  14. Verfahren (100) zum Anwenden eines Update auf eine Navigationsdatenbank, welches aufweist: Empfangen eines Aktualisierungsbefehls, der zwei Knoten und einen Verbindungsabschnitt bezeichnet, wobei die Knoten für Straßenkreuzungen stehen, und der Verbindungsabschnitt für ein Straßensegment steht, welches die zwei Knoten (103) miteinander verbindet; Identifizieren eines bestehenden Knotens in der Navigationsdatenbank, der mindestens einem der angegebenen Knoten entspricht, unter Verwendung einer logischen Musterabgleichoperation (104, 106, 124, 126); Klassifizieren eines jeden der angegebenen Knoten basierend auf seiner Beziehung zu mindestens einem von einem vorhandenen Knoten oder einem vorhandenen Verbindungsabschnitt in der Navigationsdatenbank (105, 107, 128, 132); und Anwenden des Aktualisierungsbefehls gemäß einem geordneten Satz von Operationsregeln (108 bis 118).
  15. Verfahren nach Anspruch 14, wobei der Schritt des Identifizierens eines bestehenden Knoten weiterhin aufweist: Konstruieren einer logischen Darstellung (10) der Straßentopologie in der Nähe von mindestens einem der angegebenen Knoten (124); und Vergleichen der logischen Darstellung mit einer logischen Darstellung der Navigationsdatenbank (126, 127).
  16. Verfahren nach Anspruch 14, wobei der Schritt des Vergleichens der logischen Darstellung weiterhin die Durchführung einer Minimalbaum-Abgleichoperation (11) aufweist, wobei die logische Darstellung als Baumgraph definiert ist, und der mindestens eine angegebene Knoten als Wurzelknoten für den Baumgraph dient.
  17. Verfahren nach Anspruch 14, wobei der Schritt des Vergleichens der logischen Darstellung weiterhin die Durchführung einer Gesamtbaum-Abgleichoperation (12) aufweist, wobei die logische Darstellung als Baumgraph definiert ist, und der mindestens eine angegebene Knoten als Wurzelknoten für den Baumgraph dient.
  18. Verfahren nach Anspruch 14, wobei der Schritt des Klassifizierens jedes der angegebenen Knoten weiterhin das Kategorisieren eines angegebenen Knotens als einen der Gruppe aufweist, welche besteht aus (105, 107): einem Knoten (128), der einem bestehenden Knoten in der Navigationsdatenbank entspricht, einem point (132) auf einem bestehenden Verbindungsabschnitt in der Navigationsdatenbank, einem noch nicht bestehenden Element (132) in der Navigationsdatenbank.
  19. Verfahren nach Anspruch 14, wobei der geordnete Satz von Operationsregeln angibt, daß ein Verbindungsabschnitt mit zwei Knoten, die mit bestehenden Knoten in der Navigationsdatenbank korrelieren, zu der Navigationsdatenbank (114, 115) hinzugefügt werden kann.
  20. Verfahren nach Anspruch 14, wobei der geordnete Satz von Operationsregeln angibt, daß ein Verbindungsabschnitt mit einem Knoten, der ein Punkt auf einem bestehenden Verbindungsabschnitt in der Navigationsdatenbank ist, hinzugefügt wird durch Löschen des bestehenden Verbindungsabschnitts und Hinzufügen von zwei Verbindungsabschnitten, welche den Knoten mit anderen bestehenden Knoten in der Navigationsdatenbank (110) verbinden.
  21. Verfahren nach Anspruch 14, wobei der geordnete Satz von Operationsregeln angibt, daß ein Verbindungsabschnitt mit zwei Knoten, von denen keiner mit einem bestehenden Knoten in den Navigationsdaten korreliert, nicht zu der Navigationsdatenbank (118) hinzugefügt wird.
  22. Verfahren nach Anspruch 14, wobei die Anwendung des Aktualisierungsbefehls gemäß dem geordneten Satz von Operationsregeln verzögert wird, bis ein darauffolgender Aktualisierungsbefehl auf die Navigationsdatenbank (118) angewendet wird.
  23. Verfahren (100) zum Erzeugen einer Datenbankerneuerung für eine Navigationsdatenbank, welches aufweist: Zurverfügungstellen einer Liste von zu aktualisierenden Verbindungsabschnitten in der Navigationsdatenbank (102), in der jeder Verbindungsabschnitt als zwei durch ein Straßensegment verbundene Straßenkreuzungen dargestellt ist; Konstruieren einer logischen Darstellung (10) für jede in der Liste von Verbindungsabschnitten (124) eindeutig angegebene Straßenkreuzung, so daß die logische Darstellung die Straßentopologie in der Nachbarschaft der angegebenen Straßenkreuzung angibt; und Formulieren eines geordneten Satzes von Aktualisierungsbefehlen für die Liste von Verbindungsabschnitten (100), so daß jeder Aktualisierungsbefehl auf mindestens eine logische Darstellung Bezug nimmt.
  24. Verfahren nach Anspruch 23, welches weiterhin das Zusammenstellen jeder der logischen Darstellungen und des geordneten Satzens von Aktualisierungsbefehlen zum Bilden einer Datenbankerneuerung (90) aufweist.
  25. Verfahren nach Anspruch 23, welches weiterhin aufweist: Identifizieren von Attributdaten, die jedem bzw. jeder der in der Liste von Verbindungsabschnitten angegebenen Straßensegmente oder Straßenkreuzungen zugeordnet sind, und Formulieren des geordneten Satzes von Aktualisierungsbefehlen, so daß mindestens ein Aktualisierungsbefehl auf die Attributdaten Bezug nimmt.
  26. Verfahren nach Anspruch 23, wobei der Schritt des Konstruierens einer logischen Darstellung weiterhin aufweist: Aufbauen eines Graphs (10), welcher die Straßentopologie in der Nachbarschaft der mindestens einen Straßenkreuzung (124) darstellt, wobei Knoten des Graphs für Straßenkreuzungen stehen, und Verbindungsabschnitte des Graphs für Straßensegmente stehen
DE102004041934A 2003-08-29 2004-08-30 Iterative logische Erneuerung von navigierbaren Kartendatenbanken Ceased DE102004041934A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/652,329 2003-08-29
US10/652,329 US7079946B2 (en) 2003-08-29 2003-08-29 Iterative logical renewal of navigable map database

Publications (1)

Publication Number Publication Date
DE102004041934A1 true DE102004041934A1 (de) 2005-03-24

Family

ID=34217614

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004041934A Ceased DE102004041934A1 (de) 2003-08-29 2004-08-30 Iterative logische Erneuerung von navigierbaren Kartendatenbanken

Country Status (4)

Country Link
US (1) US7079946B2 (de)
JP (1) JP2005078066A (de)
CN (1) CN100529668C (de)
DE (1) DE102004041934A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775569B2 (en) 2008-11-27 2014-07-08 GM Global Technology Operations LLC Method for updating the data of a navigation system
DE102005041123B4 (de) 2005-08-30 2019-05-16 Robert Bosch Gmbh Verfahren zur Lokalisierung eines Streckenabschnitts in einer Karte

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4416996B2 (ja) * 2002-11-01 2010-02-17 三菱電機株式会社 地図情報処理装置および地図情報提供装置
US8775412B2 (en) * 2004-01-08 2014-07-08 International Business Machines Corporation Method and system for a self-healing query access plan
JP4130441B2 (ja) * 2004-07-16 2008-08-06 三菱電機株式会社 地図情報処理装置
JP5265077B2 (ja) * 2005-01-18 2013-08-14 パイオニア株式会社 地図配信装置、地図取得装置、地図処理システム、地図配信方法、地図取得方法、地図配信プログラム、地図取得プログラム、および記録媒体
US20060247844A1 (en) * 2005-04-27 2006-11-02 Irving Wang Intelligent traffic monitoring and guidance system
US20070136326A1 (en) * 2005-12-14 2007-06-14 Business Objects Apparatus and method for defining relationships between component objects in a business intelligence system
JP4732972B2 (ja) * 2006-06-30 2011-07-27 株式会社エヌ・ティ・ティ・ドコモ アドホックネットワーク、ノード、経路制御方法、及び経路制御プログラム
DE102006034407A1 (de) 2006-07-25 2008-01-31 Robert Bosch Gmbh Aktualisierungsverfahren für Datenbasen, insbesondere Navigationsdatenbasen
GB2440958A (en) * 2006-08-15 2008-02-20 Tomtom Bv Method of correcting map data for use in navigation systems
US8103448B2 (en) * 2006-10-25 2012-01-24 Denso Corporation Information storage apparatus for storing new road, program for the same, and system for the same
KR101376088B1 (ko) 2006-11-22 2014-03-19 로베르트 보쉬 게엠베하 지도에서 구간의 위치 측정 방법
JP4454648B2 (ja) * 2007-03-29 2010-04-21 三洋電機株式会社 ナビゲーション装置
DE102007016002A1 (de) * 2007-04-03 2008-10-09 Robert Bosch Gmbh Verfahren zum Erstellen eines Verzeichnisses von Straßenabschnitten, Verfahren zum Ermitteln aller Straßenabschnitte innerhalb eines Suchgebiets und Computerprogramm
CN101078633B (zh) * 2007-06-12 2010-05-19 江苏华科导航科技有限公司 导航装置的地图数据更新方法
US20130131980A1 (en) * 2007-09-07 2013-05-23 On Time Systems, Inc. Resolving gps ambiguity in electronic maps
US9852624B2 (en) 2007-09-07 2017-12-26 Connected Signals, Inc. Network security system with application for driver safety system
US10083607B2 (en) 2007-09-07 2018-09-25 Green Driver, Inc. Driver safety enhancement using intelligent traffic signals and GPS
US9043138B2 (en) 2007-09-07 2015-05-26 Green Driver, Inc. System and method for automated updating of map information
JP5315353B2 (ja) 2007-10-26 2013-10-16 トムトム インターナショナル ベスローテン フエンノートシャップ 位置決定データを処理する方法、位置決定データを処理するように構成された機械、及び記憶媒体
RU2490714C2 (ru) * 2008-06-30 2013-08-20 Томтом Интернэшнл Б.В. Способ определения местоположения из кодированных данных, представляющих его
JP2012505449A (ja) * 2008-10-08 2012-03-01 トムトム インターナショナル ベスローテン フエンノートシャップ 車両搭載型のナビゲーション装置に関する改善
US9811893B2 (en) 2008-11-04 2017-11-07 The United States Of America, As Represented By The Secretary Of The Navy Composable situational awareness visualization system
JP4905483B2 (ja) * 2009-03-05 2012-03-28 株式会社デンソー 地図データ更新装置および地図データ更新用プログラム
US8953838B2 (en) * 2009-06-24 2015-02-10 Here Global B.V. Detecting ground geographic features in images based on invariant components
US10198942B2 (en) 2009-08-11 2019-02-05 Connected Signals, Inc. Traffic routing display system with multiple signal lookahead
US8340894B2 (en) * 2009-10-08 2012-12-25 Honda Motor Co., Ltd. Method of dynamic intersection mapping
JP5469432B2 (ja) * 2009-10-28 2014-04-16 株式会社ゼンリン 経路案内装置および道路ネットワークのデータ構造
US8818641B2 (en) 2009-12-18 2014-08-26 Honda Motor Co., Ltd. Method of intersection estimation for a vehicle safety system
CN102128631B (zh) * 2010-01-14 2013-09-25 歌乐株式会社 路径搜索方法、导航服务器和导航仪
US8823556B2 (en) 2010-09-02 2014-09-02 Honda Motor Co., Ltd. Method of estimating intersection control
US8618951B2 (en) 2010-09-17 2013-12-31 Honda Motor Co., Ltd. Traffic control database and distribution system
GB201018815D0 (en) 2010-11-08 2010-12-22 Tomtom Int Bv High-definition weather for improved routing and navigation systems
US8618952B2 (en) 2011-01-21 2013-12-31 Honda Motor Co., Ltd. Method of intersection identification for collision warning system
CN102155942B (zh) * 2011-02-26 2012-12-05 山东大学 大范围环境下基于模糊拓扑地图的全局路径规划方法
CN102183259B (zh) * 2011-03-17 2014-07-23 武汉光庭信息技术有限公司 基于电子地图道路特征识别的导航方法
JP5686088B2 (ja) * 2011-11-14 2015-03-18 アイシン・エィ・ダブリュ株式会社 道路データ作成装置、道路データ作成方法及びプログラム
US9595209B2 (en) * 2011-12-13 2017-03-14 Telenav, Inc. Navigation system with map matching mechanism and method of operation thereof
CN102819581B (zh) * 2012-07-26 2014-07-02 中南大学 一种地理信息系统拓扑集中的多边形链生成方法
DE102013201018A1 (de) * 2013-01-23 2014-07-24 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Verarbeiten von Navigationsdaten einer Navigationsvorrichtung
GB201307550D0 (en) 2013-04-26 2013-06-12 Tomtom Dev Germany Gmbh Methods and systems of providing information indicative of a recommended navigable stretch
US10296844B2 (en) * 2014-09-24 2019-05-21 Nec Corporation Automatic discovery of message ordering invariants in heterogeneous logs
CN104567906B (zh) * 2015-01-14 2017-06-23 合肥革绿信息科技有限公司 一种基于北斗的城市路网车辆路径规划方法及装置
CN104575075B (zh) * 2015-01-14 2016-09-28 合肥革绿信息科技有限公司 一种基于北斗的城市路网车辆坐标校正方法及装置
CN105512212B (zh) * 2015-11-27 2019-11-22 武汉光庭信息技术股份有限公司 一种导航数字地图道路数据元素的唯一编码生成方法
CN108286974B (zh) * 2017-01-09 2020-10-30 北京四维图新科技股份有限公司 外业采集数据的智能处理方法和装置、以及混合导航系统
CN110110019B (zh) * 2018-01-31 2021-10-29 北京四维图新科技股份有限公司 一种道路网拓扑数据更新的方法及装置
CN109145171B (zh) * 2018-07-23 2020-09-08 广州市城市规划勘测设计研究院 一种多尺度地图数据更新方法
CN109902134B (zh) * 2019-02-18 2021-10-22 北京市天元网络技术股份有限公司 工程道路中故障路段的精确呈现方法、装置与电子设备
WO2022021218A1 (zh) * 2020-07-30 2022-02-03 深圳元戎启行科技有限公司 电子地图更新方法、装置、计算机设备和存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2237905A (en) * 1989-10-13 1991-05-15 Plessey Co Plc Road network navigation systems
US5893113A (en) * 1996-04-25 1999-04-06 Navigation Technologies Corporation Update transactions and method and programming for use thereof for incrementally updating a geographic database
US5953722A (en) * 1996-10-25 1999-09-14 Navigation Technologies Corporation Method and system for forming and using geographic data
US6047234A (en) * 1997-10-16 2000-04-04 Navigation Technologies Corporation System and method for updating, enhancing or refining a geographic database using feedback
US7266560B2 (en) * 1998-01-30 2007-09-04 Navteq North America, Llc Parcelized geographic data medium with internal spatial indices and method and system for use and formation thereof
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
US6192314B1 (en) * 1998-03-25 2001-02-20 Navigation Technologies Corp. Method and system for route calculation in a navigation application
KR100443495B1 (ko) * 1998-11-24 2004-08-09 마쯔시다덴기산교 가부시키가이샤 디지털 지도파일의 데이터구조
JP2001012957A (ja) * 1999-06-29 2001-01-19 Mitsubishi Electric Corp カーナビゲーション用地図更新システムおよびカーナビゲーション端末
US7058941B1 (en) * 2000-11-14 2006-06-06 Microsoft Corporation Minimum delta generator for program binaries
JP4348503B2 (ja) * 2000-12-21 2009-10-21 三菱電機株式会社 ナビゲーション装置
JP4566413B2 (ja) * 2001-01-10 2010-10-20 三菱電機株式会社 地図情報処理装置
JP4663136B2 (ja) * 2001-01-29 2011-03-30 パナソニック株式会社 デジタル地図の位置情報伝達方法と装置
JP2002319029A (ja) * 2001-04-20 2002-10-31 Alpine Electronics Inc 地図データ処理装置
JP2003044992A (ja) * 2001-07-31 2003-02-14 Pioneer Electronic Corp 通信ナビゲーションシステムにおける地図データの更新方法およびサーバ装置、記録媒体、通信ナビゲーション端末装置
US6937936B2 (en) * 2002-04-25 2005-08-30 Aisin Aw Co., Ltd. Navigation system
JP4040391B2 (ja) * 2002-08-21 2008-01-30 三菱電機株式会社 地図情報処理装置および地図情報配信センター

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005041123B4 (de) 2005-08-30 2019-05-16 Robert Bosch Gmbh Verfahren zur Lokalisierung eines Streckenabschnitts in einer Karte
US8775569B2 (en) 2008-11-27 2014-07-08 GM Global Technology Operations LLC Method for updating the data of a navigation system

Also Published As

Publication number Publication date
CN100529668C (zh) 2009-08-19
US7079946B2 (en) 2006-07-18
JP2005078066A (ja) 2005-03-24
CN1590964A (zh) 2005-03-09
US20050049783A1 (en) 2005-03-03

Similar Documents

Publication Publication Date Title
DE102004041934A1 (de) Iterative logische Erneuerung von navigierbaren Kartendatenbanken
EP2191233B1 (de) Vorrichtung und verfahren zum aktualisieren von kartendaten
DE60211086T2 (de) Verfahren zur Bestimmung von Überschneidungen
DE69934301T2 (de) Wegesuchsystem
WO1988009974A1 (en) Process and device for determining an itinerary between a starting and a destination point
EP2507589B1 (de) Verfahren zur vereinfachung einer beschreibung einer fahrtroute
DE10318179A1 (de) Karteninformationsverarbeitungsvorrichtung und Karteninformationsübertragungszentrale
DE10040987B4 (de) Verfahren und Vorrichtung für übereinstimmende Aktualisierungen von redundanten Daten in relationalen Datenbanken
DE102013003944A1 (de) Verfahren und Vorrichtung zum Bereitstellen von Fahrerassistenzfunktionalität
DE112012004916T5 (de) Verbesserte Datenbankabfrage und Aufwandsschätzung
EP2047386A1 (de) Aktualisierungsverfahren für datenbasen, insbesondere navigationsdatenbasen
WO2009149704A1 (de) Verfahren und vorrichtung zur berechnung einer navigationsroute zu zusammenhängenden zielpunkten
EP1166228B1 (de) Verfahren zur nutzung von fraktalen semantischen netzen für alle arten von datenbank-anwendungen
EP2057538B1 (de) Verfahren zur erzeugung eines grössenoptimierten delta-files
DE102005025401A1 (de) Datentransformationssystem
DE112014006841B4 (de) Datenaktualisierungssystem für eine mobile Navigationsvorrichtung zum Erzeugen von Differentialdaten und Speichervorrichtung hierfür
DE202021102300U1 (de) Durchführen von Joins mit georäumlicher Funktion unter Verwendung von einzelnen Intervall-Joins
EP1526358B1 (de) Verfahren zur Zerlegung eines Strassennetzes aus Kanten und Knoten
WO2001086359A2 (de) Fuzzy-steuerung mit reinforcement-lernverfahren
DE102007053582B4 (de) Verfahren zum Betrieb eines Navigationssystems
DE102017010484A1 (de) Verfahren zur konsistenten Aktualisierung von Teilen einer Straßenkarte
DE112020007664T5 (de) Kartendaten-Aktualisierungsvorrichtung und Kartendaten-Aktualisierungsverfahren
DE102016211045A1 (de) Aktualisierung einer digitalen Karte
DE112010005494T5 (de) Navigationssystem
EP1064808B1 (de) Verfahren zum automatischen entwurf zellularer mobilifunknetze

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R082 Change of representative

Representative=s name: WINTER, BRANDL, FUERNISS, HUEBNER, ROESS, KAIS, DE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final