DE202015009169U1 - Routing mit Dantenversionszusammenfügung - Google Patents

Routing mit Dantenversionszusammenfügung Download PDF

Info

Publication number
DE202015009169U1
DE202015009169U1 DE202015009169.5U DE202015009169U DE202015009169U1 DE 202015009169 U1 DE202015009169 U1 DE 202015009169U1 DE 202015009169 U DE202015009169 U DE 202015009169U DE 202015009169 U1 DE202015009169 U1 DE 202015009169U1
Authority
DE
Germany
Prior art keywords
graph data
contraction
graph
data
range
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.)
Active
Application number
DE202015009169.5U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google 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 Google LLC filed Critical Google LLC
Publication of DE202015009169U1 publication Critical patent/DE202015009169U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3446Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
    • 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/20Instruments for performing navigational calculations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Navigation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Computersystem, das Folgendes umfasst: einen oder mehrere Prozessoren; eine oder mehrere Speichervorrichtungen, wobei die eine oder mehreren Speichervorrichtungen computerlesbare Anweisungen speichern, die bei Ausführung durch die eine oder mehreren Speichervorrichtungen die eine oder mehreren Speichervorrichtungen zum Ausführen von Vorgängen veranlassen, wobei die Vorgänge Folgendes umfassen: Zugreifen auf unkontrahierte Graphdaten, die ein Fahrtsegmentnetzwerk modellieren; progressives Kontrahieren der unkontrahierten Graphdaten für eine Vielzahl von Kontraktionsphasen, um eine Vielzahl von Kontraktionskernen zu erzeugen, die einer Vielzahl von unterschiedlichen Reichweitenniveaus entsprechen, wobei jede Kontraktionsphase mindestens teilweise basierend auf einem Reichweitenwert implementiert wird, der mit dem Reichweitenniveau verbunden ist, das der Kontraktionsphase entspricht; Erzeugen einer Vielzahl von Basiskacheldatenobjekten für die vollständigen Graphdaten; Erzeugen einer Vielzahl von ersten Kacheldatenobjekten entsprechend einem ersten Kontraktionskern der Vielzahl von Kontraktionskernen, wobei die ersten Kontraktionskerne mit einem ersten Reichweitenwert verbunden sind; und Erzeugen einer Vielzahl von zweiten Kacheldatenobjekten entsprechend einem zweiten Kontraktionskern der Vielzahl von Kontraktionskernen, wobei die zweiten Kontraktionskerne mit einem zweiten Reichweitenwert verbunden sind; worin der zweite Reichweitenwert größer als der erste Reichweitenwert ist.

Description

  • PRIORITÄTSANSPRUCH
  • Die vorliegende Anmeldung basiert auf, und beansprucht Priorität der U.S.-Patentanmeldung, Seriennr. 14/714,742 mit Anmeldedatum vom 18. Mai 2015 und der vorläufigen U.S.-Patentanmeldung, Seriennr. 62/001,191 mit Anmeldedatum vom 21. Mai 2014, die beide durch Bezugnahme für alle Zwecke integriert sind.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft im Allgemeinen Navigationssysteme und insbesondere Datenversionszusammenfügung zum Bestimmen von Routen in Navigationssystemen. Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • HINTERGRUND
  • Bei Navigationssystemen können Routingalgorithmen zum Bestimmen einer Route von einem Ursprung zu einem Ziel verwendet werden. Routingalgorithmen können zum Abbilden von Daten zum Bestimmen einer gewünschten Route von einem Ursprung zu einem Ziel verwendet werden. Die Kartendaten können Informationen in Bezug auf die Orte von Fahrtsegmenten (z. B. Straßen, Transitrouten oder andere überquerbare Wege), Verbindungen zwischen den Segmenten und Kosten zum Wechseln zwischen den Segmenten beinhalten. Die Kartendaten können unter Verwendung eines Graphmodells modelliert werden, bei dem jeder Scheitel oder Knoten in dem Graphmodell ein Fahrtsegment darstellt, und jeder Bogen oder jede Kante zwischen den Eckpunkten einen Übergang zwischen Fahrtsegmenten darstellt.
  • Routingalgorithmen können Wege durch das Graphmodell berechnen (z. B. unter Verwendung des Dijkstra Algorithmus), um eine Route vom Ursprung zum Ziel basierend auf Metrik zu berechnen (z. B. Distanz, Zeit usw.). Beispielhafte Routingalgorithmen können unterschiedliche Techniken zum Erleichtern des Bestimmens eines Wegs in dem Graphmodell verwenden. So kann beispielsweise ein Kontraktionshierarchieprozess zum Beschleunigen der Routenberechnung durch Vorberechnen einer Hierarchiereihenfolge von Eckpunkten und Beschränken der Routensuche auf zunehmend bedeutendere Eckpunkte in Richtung der Mitte der Route verwendet werden. Andere exemplarische Routingalgorithmen können die Routenberechnung unter Verwendung z. B. von Scheitelpunktreichweite beschleunigen.
  • KURZDARSTELLUNG
  • Aspekte und Vorteile von Ausführungsformen der vorliegenden Erfindung werden teilweise in der folgenden Beschreibung dargelegt werden oder können aus der Beschreibung erlernt werden oder können durch die Praxis der Ausführungsformen erlernt werden.
  • Ein exemplarischer Aspekt der vorliegenden Offenbarung betrifft ein computerimplementiertes Verfahren zum Bestimmen von Routen in geografischen Bereichen. Das Verfahren beinhaltet das Erhalten von Daten, die eine Anforderung einer Route von einem Ursprung zu einem Ziel durch eines oder mehrere Computergeräte angeben. Das eine oder die mehreren Computergeräte beinhalten einen oder mehrere Prozessoren. Das Verfahren beinhaltet weiterhin den Zugriff auf erste Graphdaten, die ein Fahrtsegmentnetzwerk für einen ersten geografischen Bereich modellieren, durch das eine oder die mehreren Computergeräte, und Zugriff auf zweite Graphdaten, die ein Fahrtsegmentnetzwerk für einen zweiten geografischen Bereich modellieren, durch das eine oder die mehreren Computergeräte. Das Verfahren beinhaltet weiterhin das Identifizieren eines kürzesten Wegs von den ersten Graphdaten und den zweiten Graphdaten durch das eine oder die mehreren Computergeräte durch Besuchen eines oder mehrerer Knoten, die mit Grenzsegmenten in den ersten Graphdaten und den zweiten Graphdaten verbunden sind. Die Knoten, die mit Grenzsegmenten verbunden sind, werden in den Graphdaten mindestens teilweise basierend auf einem Reichweitenwert aufrechterhalten, der mit jedem Grenzsegment verbunden ist. Das Verfahren beinhaltet weiterhin das Bestimmen einer Route von dem Ursprung zu dem Ziel mindestens teilweise basierend auf dem kürzesten Weg durch das eine oder die mehreren Computergeräte.
  • Weitere exemplarische Aspekte der vorliegenden Offenbarung betreffen Systeme, Vorrichtungen, greifbare, nicht flüchtige computerlesbare Medien, Benutzeroberflächen, Speichervorrichtungen und elektronische Vorrichtungen zum Bestimmen von Routen von Ursprüngen zu Zielen in geografischen Bereichen.
  • Diese und andere Merkmale, Aspekte und Vorteile verschiedener Ausführungsformen werden besser in Bezug auf die folgende Beschreibung und angefügten Ansprüche verstanden werden. Die beigefügten Zeichnungen, die in diese Beschreibung einbezogen sind und einen Teil dieser darstellen, illustrieren Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung dazu, die damit verbundenen Prinzipien zu erklären.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Eine ausführliche Erörterung der Ausführungsformen, die auf Fachleute auf dem Gebiet gerichtet sind, wird in der Beschreibung dargelegt, die Bezug auf die beigefügten Figuren nimmt, in denen:
  • 1 stellt einen exemplarischen geografischen Bereich mit einem Ursprung und einem Ziel dar;
  • 2 stellt einen Teil einer exemplarischen Graphmodellierung eines Fahrtsegmentnetzwerks dar;
  • 3 stellt einen geografischen Bereich mit einem Basisbereich und einer Vielzahl von Polsterungsringen gemäß exemplarischer Aspekte der vorliegenden Offenbarung dar;
  • 4 stellt die exemplarische Erzeugung von kontrahierten Graphdaten gemäß exemplarischer Aspekte der vorliegenden Offenbarung dar;
  • 5 stellt eine Darstellung einer exemplarischen Datenstruktur gemäß exemplarischer Aspekte der vorliegenden Offenbarung dar;
  • 6 stellt eine exemplarische Naht zwischen geografischen Bereichen gemäß exemplarischer Aspekte der vorliegenden Offenbarung dar;
  • 7 stellt ein exemplarisches Ablaufdiagramm eines Verfahrens zum Bestimmen von Routen in geografischen Bereichen gemäß exemplarischer Aspekte der vorliegenden Offenbarung dar; und
  • 8 stellt ein exemplarisches Computersystem zum Bestimmen von Routen in geografischen Bereichen gemäß exemplarischer Aspekte der vorliegenden Offenbarung dar.
  • DETAILLIERTE BESCHREIBUNG
  • Bezug wird nun im Detail auf Ausführungsformen genommen werden, von denen ein oder mehrere Beispiele in den Zeichnungen dargestellt sind. Jedes Beispiel wird zur Erläuterung der Ausführungsformen bereitgestellt, nicht zur Beschränkung der vorliegenden Offenbarung. Tatsächlich ist für Fachleute ersichtlich, dass diverse Modifikationen und Variationen an den Ausführungsformen durchgeführt werden können, ohne vom Umfang oder Geist der vorliegenden Offenbarung abzuweichen. Zum Beispiel können Merkmale, die als Teil einer Ausführungsform veranschaulicht oder beschrieben werden, mit einer anderen Ausführungsform verwendet werden, um eine noch weitere Ausführungsform zu erreichen. Deshalb ist beabsichtigt, dass Aspekte der vorliegenden Offenbarung solche Modifikationen und Variationen abdecken.
  • Überblick
  • Im Allgemeinen betreffen exemplarische Aspekte der vorliegenden Offenbarung Systeme und Verfahren zum Bestimmen von Routen zwischen Ursprüngen und Zielen unter Verwendung von Graphdatenmodellierung eines Fahrtsegmentnetzwerks. Computergeräte können Fahrtsegmentnetzwerkdaten (z. B. Kacheldatenobjekte, die Graphdaten enthalten, die das Segmentnetzwerk modellieren) für unterschiedliche geografische interessierende Bereiche erhalten, z. B. von einer entfernten Vorrichtung (z. B. ein Webserver) über ein Netzwerk (z. B. das Internet). In einigen Fällen können die für unterschiedliche geografische Bereiche erhaltenen Daten mit unterschiedlichen Datenversionen oder unterschiedlichen Daten-Builds verbunden sein. Dies kann zu Schwierigkeiten bei der Offline-Bestimmung von Routen unter Verwendung der für die unterschiedlichen geografischen Bereiche erhaltenen Daten führen.
  • So kann beispielsweise ein Benutzer erste Fahrtsegmentnetzwerkdaten für einen ersten geografischen Bereich an einem ersten Datum heruntergeladen haben, und kann zweite Fahrtsegmentnetzwerkdaten an einem zweiten Datum heruntergeladen haben. Die ersten Fahrtsegmentnetzwerkdaten können mit einer ersten Datenversion verbunden sein und die zweiten Fahrtsegmentnetzwerkdaten können mit einer zweiten Datenversion verbunden sein. Die erste Datenversion kann mit anderen Kartendaten als die zweite Datenversion verbunden sein, was möglicherweise eine inkompatible Vorverarbeitung der Fahrtsegmentnetzwerkdaten für schnelle Suche (z. B. inkompatible Kontraktionsreihenfolgen) zum Ergebnis hat. Folglich kann die Offlineberechnung von Routen unter Verwendung von schnellen Routenberechnungstechniken (z. B. Kontraktionshierarchien-Routingalgorithmus) basierend auf den unterschiedlichen Datenversionen schwierig sein.
  • Gemäß exemplarischen Aspekten der vorliegenden Offenbarung werden Systeme und Verfahren zum Bestimmen von Routen, z. B. von Fahrtsegmentnetzwerkdaten, bereitgestellt, die mit unterschiedlichen Datenversionen verbunden sind. Genauer ausgedrückt kann eine Anforderung für eine Route von einem Ursprung zu einem Ziel empfangen werden. Es kann auf erste Graphdaten, die ein Fahrtsegmentnetzwerk für einen geografischen Bereich modellieren, der mit dem Ursprung verbunden ist, und zweite Graphdaten, die ein Fahrtsegmentnetzwerk für einen geografischen Bereich modellieren, der mit dem Ziel verbunden ist, zugegriffen werden. Die ersten Graphdaten und die zweiten Graphdaten können zum Ausführen einer Suche (z. B. eine Kontraktionshierarchien-Style-Suche) nach einem kürzesten Weg durch die Graphdaten verwendet werden. Beispielhafte Aspekte der vorliegenden Offenbarung betreffen das Sicherstellen, dass Knoten, die Fahrtsegmente darstellen, die eine Grenze überqueren, die mit einem geografischen Bereich („Grenzsegmente”) verbunden sind, während einer Suche besucht werden um sicherzustellen, dass der kürzeste Weg in der Suche entdeckt wird.
  • Genauer ausgedrückt beinhalten Graphdaten, die für die geografischen Bereiche erhalten werden, die mit dem Ursprung und dem Ziel verbunden sind, genügend Daten um sicherzustellen, dass Grenzsegmente während einer Suche besucht werden, wie z. B. eine bidirektionale Kontraktionshierarchiesuche nach einem kürzesten Weg durch die Graphdaten. Knoten, die mit Grenzsegmenten in den ersten Graphdaten verbunden sind, können mit Knoten abgestimmt und zusammengefügt werden, die mit denselben Grenzsegmenten in den zweiten Graphdaten verbunden sind, selbst wenn diese Knoten mit anderen Datenversionen oder inkompatiblen Kontraktionsreihenfolgen verbunden sind. Eine beschleunigte bidirektionale Graphsuche (z. B. eine Kontraktionshierarchiesuche) kann in dem zusammengefügten Graph ausgeführt werden, sodass die Suche jeweils innerhalb der ersten und zweiten Graphdaten ausgeführt wird, um alle relevanten Grenzknoten zu besuchen (z. B. indem sie in einem unkontrahierten Kern in der Kontraktionshierarchievorverarbeitung zurückgehalten werden). Auf diese Weise können Routen von unterschiedlichen Datenversionen von Fahrtsegmentnetzwerkdaten unter Verwendung von beschleunigten Routingalgorithmen berechnet werden, ohne dass Netzwerkkonnektivität erforderlich ist, um einmal aktualisierte Fahrtnetzwerkdaten für das gesamte Netzwerk zu erhalten, das durchsucht wird.
  • Zum Reduzieren der Anzahl von Grenzsegmenten, die wärend einer Suche zu besuchen sind, kann der Begriff der Reichweite eingeführt werden. Genauer ausgedrückt kann der Reichweitenwert von Grenzsegmenten beim Identifizieren von Grenzsegmenten berücksichtigt werden, die während einer Suche eines kürzesten Wegs zu besuchen sind. Der Reichweitenwert eines Segments ist ein Wert, der mit dem Segment verbunden ist, der auf den Wert des Segments basierend auf dem Segment hinweist, das in der Mitte eines langen kürzesten Wegs auftritt. Die Einführung von Reichweite ermöglicht das schnellere Berechnen von Routen, weil sie die Identifizierung einer reduzierten Anzahl von Knoten erfordert, die mit Grenzsegmenten verbunden sind, die während einer bidirektionalen Suche in dem zusammengefügten Graph zu besuchen sind.
  • Zum Erweitern der Offlineberechnung von Routen gemäß exemplarischen Aspekten der vorliegenden Offenbarung können Graphdaten z. B. bei einem Server vorverarbeitet werden, der ein geografisches Informationssystem hostet. Die vorverarbeiteten Graphdaten können zu einem Client-Gerät heruntergeladen werden, um Routen in Übereinstimmung mit exemplarischen Aspekten der vorliegenden Offenbarung zu bestimmen. Die Graphdaten können vorverarbeitet werden um sicherzustellen, dass angemessene Grenzsegmente erhalten, und während einer Suche nach einem kürzesten Weg zwischen Graphdaten besucht werden, die mit unterschiedlichen Datenversionen verbunden sind.
  • In einer bestimmten exemplarischen Implementierung können Graphdaten, die ein Straßensegmentnetzwerk modellieren, in eine Vielzahl von annähernd quadratischen Zellen geteilt werden. Jede Zelle kann mit einem annähernd quadratischen geografischen Bereich verbunden werden. Graphdaten können für jede Zelle erzeugt werden, einschließlich kontrahierter Graphdaten mit einem oder mehreren Kontraktionskernen. Die vollständigen Graphdaten können mit dem vollständigen Fahrtsegmentnetzwerk für den Graphen verbunden werden, und können Knoten und Kanten beinhalten, die jeweils Fahrtsegmente in der Zelle darstellen. Die Kontraktionskerne können jeweils eine komprimierte Version des vollständigen Fahrtsegmentnetzwerkgraphen beinhalten und können geeignete Knoten zum Zusammenfügen eingeben, um das Besuchen von Knoten während einer Suche nach einem kürzesten Weg durch den Graphen sicherzustellen, die mit angemessenen Grenzsegmenten verbunden sind. So kann beispielsweise ein Kontraktionskern Knoten aufrechterhalten, die mit Grenzsegmenten verbunden sind, die eine Grenze der Zelle schneiden. In besonderen Implementierungen kann der Kontraktionskern Knoten aufrechterhalten, die mit Grenzsegmenten verbunden sind, die ein bestimmtes Reichweitenniveau aufweisen, um die Anzahl von Knoten zu reduzieren, die zum Besuchen beim Implementieren eines Algorithmus eines kürzesten Wegs erforderlich sind.
  • Gemäß besonderer exemplarischer Aspekte der vorliegenden Offenbarung können die Kontraktionskerne unter Verwendung eines Kontraktionshierarchieverfahrens erzeugt werden, indem progressiv Graphdaten kontrahiert werden, die ein Fahrtsegmentnetzwerk für eine oder mehrere Kontraktionsphasen modellieren, um den einen oder die mehreren Kontraktionskerne zu erzeugen. Jede Kontraktionsphase kann Knoten basierend auf einem Reichweitenniveau als unkontrahierbar in den Graphdaten identifizieren, das mit der Kontraktionsphase verbunden ist. So können beispielsweise Knoten, die mit Grenzsegmenten verbunden sind (z. B. Segmente, die eine Zellgrenze schneiden), die einen Reichweitenwert von größer als oder gleich dem Reichweitenniveau aufweisen, das mit der Kontraktionsphase verbunden ist, als unkontrahierbar für die Kontraktionsphase markiert werden. Die Kontraktionsphase kann dann unter Verwendung geeigneter Anordnungsheuristik für die kontrahierbaren Knoten durchgeführt werden, um den Kontraktionskern zu erzeugen. Jeder Kontraktionskern kann mit progressiv höheren Reichweitenniveau verbunden werden und kann weniger Knoten beinhalten. Jeder Kontraktionskern erhält jedoch Knoten, die mit Grenzsegmenten verbunden sind, die jeweils eine Reichweite von größer als oder gleich dem Reichweitenniveau aufweisen, das mit der Kontraktionsphase verbunden ist.
  • Sobald der eine oder die mehreren Kontraktionskerne erzeugt wurden, können die vollständigen Graphdaten einschließlich Kontraktionskernen in eine Vielzahl von gekachelten Datenobjekten gekachelt werden. Die Kacheldatenobjekte können in einer Hierarchiedatenstruktur angeordnet sein, die eine Vielzahl von Hierarchieniveaus aufweisen. Jedes Hierarchieniveau in der Datenstruktur kann mit Kacheldatenobjekten verbunden werden, die Graphdaten aufweisen, die mit einem bestimmten Kontraktionskern verbunden sind. So können beispielsweise die Kacheldatenobjekte, die mit dem höchsten Niveau in der Kacheldatenstruktur verbunden sind, Graphdaten beinhalten, die mit dem Kontraktionskern verbunden sind, der mit dem höchsten Reichweitenniveau verbunden ist. Die Kacheldatenobjekte des nächsthöchsten Niveaus können zusätzliche Graphdaten beinhalten, die mit dem nächsthöchsten Kontraktionskern verbunden sind. Kacheldatenobjekte des dritthöchsten Niveaus können zusätzliche Graphdaten beinhalten, die mit dem dritthöchsten Kontraktionskern verbunden sind. Kacheldatenobjekte, die mit dem Basisniveau verbunden sind, können mit den zusätzlichen Daten des vollständigen Graphen verbunden sein.
  • Beim Erhalten von Graphdaten für einen geografischen Bereich zum Verwenden beim Bestimmen von Routen kann der geografische Bereich in einen Basisbereich und in einen Polsterungsbereich unterteilt werden. Der Polsterungsbereich kann einen oder mehrere Polsterungsringe beinhalten. Der Basisbereich kann ein Rechteck von Zellen einer spezifizierten Größe sein. Der eine oder die mehreren Polsterungsringe können den Basisbereich umgeben. Jeder Polsterungsring kann mit einem anderen Reichweitenniveau verbunden sein. Jede Zelle in einem bestimmten Polsterungsring kann Graphdaten zum Verbinden von Grenzsegmenten beinhalten (z. B. Segmente, die eine Zellgrenze überqueren), die mit dem Reichweitenniveau für den Polsterungsring verbunden sind. So können beispielsweise bei einer bestimmten Implementierung Kacheldatenobjekte, die mit dem Basisniveau verbunden sind, und jedes Hierarchieniveau für den Basisbereich erhalten werden. Für einen Polsterungsring, der mit einem bestimmten Reichweitenwert verbunden ist, können Kacheldatenobjekte, die Graphdaten enthalten, die mit Kontraktionskernen des entsprechenden Reichweitenwerts oder höher verbunden sind, erhalten werden.
  • Es könnten Suchen ausgeführt werden, indem Grenzsegmente in den Graphdaten besucht, und Grenzsegmente miteinander, und/oder mit einem spärlichen Graphen zusammengefügt werden, der ein Autobahnnetzwerk modelliert. So können beispielsweise für eine Suche nach einer Route von einem Ursprung zu einem Ziel, das mit zwei getrennten geografischen Bereichen verbunden ist, Grenzsegmente, die mit einem äußersten Polsterungsring von jedem geografischen Bereich verbunden sind, besucht, und mit einem spärlichen Graphen zusammengefügt werden, der mit einem Autobahnnetzwerk verbunden ist. Für eine Suche nach einer Route von einem Ursprung zu einem Ziel in demselben geografischen Bereich können Grenzsegmente, die mit dem äußersten Polsterungsring verbunden sind, besucht und mit dem spärlichen Graphen zusammengefügt werden, falls der kürzeste Weg einen langen Umweg über Fahrtsegmente erfordern kann, die durch den spärlichen Graphen modelliert sind. Für eine Suche nach einer Route von einem Ursprung zu einem Ziel in überlappenden geografischen Bereichen kann eine Naht zwischen den geografischen Bereichen identifiziert, und Grenzsegmenten können besucht und an der Naht zusammengefügt werden.
  • In einem Beispiel kann ein Benutzer von einem entfernten Server erste Graphdaten zu einem Benutzergerät herunterladen, die mit einem ersten geografischen Bereich ein erstes Mal verbunden sind. Die ersten Graphdaten können eine Vielzahl von Kacheldatenobjekten für einen Basisbereich beinhalten, der mit dem ersten geografischen Bereich verbunden ist, und Kacheldatenobjekte für einen Kontraktionskern für einen oder mehrere Polsterungsringe. Die ersten Graphdaten können auf Anfrage durch den Benutzer zu einem Benutzergerät heruntergeladen werden, wenn der Benutzer nach einem bestimmten geografischen Bereich sucht, wenn ein Benutzer einen bestimmten geografischen Bereich besucht, oder bei Auftreten eines anderen geeigneten Auslösers.
  • Bei einem zweiten Mal kann ein Benutzer von dem entfernten Server Graphdaten zu dem Benutzergerät herunterladen, die mit dem zweiten geografischen Bereich verbunden sind. Die zweiten Graphdaten können eine Vielzahl von Kacheldatenobjekten für einen Basisbereich beinhalten, der mit dem ersten geografischen Bereich verbunden ist, und Kacheldatenobjekte für einen Kontraktionskern für einen oder mehrere Polsterungsringe. Die zweiten Graphdaten können auf Anforderung durch den Benutzer zu einem Benutzergerät heruntergeladen werden, wenn der Benutzer nach einem bestimmten geografischen Bereich sucht, wenn ein Benutzer einen bestimmten geografischen Bereich besucht, oder bei Auftreten eines anderen geeigneten Auslösers. Die zweiten Graphdaten können mit einer anderen Datenversion als die ersten Graphdaten verbunden werden. So können beispielsweise die zweiten Graphdaten auf anderen Kartendaten im Verhältnis zu den ersten Graphdaten basieren. Die zweiten Graphdaten und die ersten Graphdaten können inkompatible Kontraktionsreihenfolgen aufweisen.
  • Zu einem späteren Zeitpunkt, wenn das Benutzergerät nicht länger mit dem entfernten Server verbunden oder in Kommunikation damit ist, kann der Benutzer über eine Navigationsanwendung oder andere geeignete Auslöser eine Route von einem Ursprung zu einem Ziel anfordern. Eine Suche kann für eine Route unter Verwendung der unterschiedlichen Datenversionen ausgeführt werden, ohne dass Netzwerkkonnektivität zu dem Server erforderlich ist, um aktualisierte Graphdaten zu erhalten. Genauer ausgedrückt erhalten die Kontraktionskerne gemäß exemplarischen Ausführungsformen der vorliegenden Offenbarung angemessene Grenzsegmente zum Besuchen während einer Kontraktionshierarchien-Style-Suche, um die Identifizierung eines kürzesten Wegs sicherzustellen. Die in den Kontraktionskernen erhaltenen Grenzsegmente können mit einem bestimmten Reichweitenniveau verbunden werden, sodass eine reduzierte Anzahl von Grenzsegmenten während der Suche besucht werden kann. Auf diese Weise kann ein Algorithmus eines kürzesten Wegs mit erhöhter Effizienz (z. B. Kontraktionshierarchien-Style-Suche mit einem Algorithmus eines kürzesten Wegs) zum Identifizieren eines kürzesten Wegs durch den Graphen selbst zwischen geografischen Bereichen verwendet werden, die mit unterschiedlichen Datenversionen des Graphs verbunden sind.
  • Beispielhafte Graphdaten für geografische Bereiche
  • 1 stellt einen exemplarischen geografischen Bereich 100 dar. Ein Benutzer eines Navigationssystems, das beispielsweise auf einem Computergerät implementiert ist (z. B. Smartphone, Tablet, intelligente Uhr, tragbares Computergerät usw.) kann Fahrrichtungen von einem Ursprung 102 zu einem Ziel 104 anfordern. Der Ursprung 102 kann in einem ersten geografischen Bereich 112 positioniert sein, und das Ziel kann in einem zweiten geografischen Bereich 114 positioniert sein.
  • Graphdaten, die das Fahrtsegmentnetzwerk modellieren, können verwendet werden, um eine Route von den Ursprung 102 zu dem Ziel 104 zu berechnen. Ein Teil eines exemplarischen Fahrtsegmentnetzwerkgraphs 120 ist dargestellt in 2. Der Graph 120 beinhaltet eine Vielzahl von Eckpunkten (Knoten) 122 und Bögen (Kanten) 124, die die Eckpunkte 122 miteinander verbinden. Jeder Eckpunkt 122 kann mit einem bestimmten Fahrtsegment verbunden sein, wie z. B. eine Straße, Autobahn, Transitroute, Weg oder ein anderer überquerbarer Weg. Die Bögen 124 können den Übergang zwischen Fahrtsegmenten darstellen. Eine Route kann unter Verwendung des Graphs 120 durch Berechnen eines kürzesten Wegs durch den Graphen 120 unter Verwendung eines Algorithmus eines kürzesten Wegs berechnet werden.
  • Beispielhafte Aspekte der vorliegenden Offenbarung nehmen Bezug auf einen Reichweitenwert, der mit einem Fahrtsegment verbunden ist. Der Reichweitenwert eines Fahrtsegments ist ein Wert, der auf den Wert des Segments basierend auf dem Segment hinweist, das in der Mitte eines langen kürzesten Wegs auftritt. Genauer ausgedrückt kann ein kürzester Weg als ein optimaler Weg in einem Fahrtsegmentgraphen in einigen anwendungsspezifischen Kostenmodellen definiert werden (z. B. Fahrzeit). Der Grad, bis zu dem ein kürzester Weg „lang” ist, wird in Bezug auf seine eigentliche geografische Länge (z. B. km) entlang des Wegs gemessen. Der Reichweitenwert für ein Fahrtsegment kann wie folgt definiert werden. Lassen wir s und t zwei Punkte in einem Fahrtsegmentnetzwerk, P einen kürzesten Weg zwischen s und t, und x einen Punkt auf P sein. Die Reichweite von x hinsichtlich P ist die kleinere der geografischen Länge der zwei Teile von P von s nach x und von x nach t. Die Reichweite von Punkt x in dem Fahrtsegmentnetzwerk ist das Maximum seiner Reichweite hinsichtlich einem der kürzesten Wege durch x. Die Reichweite von jedem Fahrtsegment S in dem Fahrtsegmentnetzwerk ist das Maximum der Reichweite von jedem Punkt x auf S.
  • Fahrtsegmente können basierend auf ihren Reichweitenwerten in unterschiedliche Reichweitenniveaus klassifiziert werden. Beispielhafte Aspekte der vorliegenden Offenbarung verwenden eine Vielzahl von getrennten Reichweitenniveaus. Wie hierin verwendet, ist ein Segment Rx, wenn es einen Reichweitenwert von mindestens x Kilometer aufweist. Eine exemplarische Klassifikation von Reichweitenwerten kann fünf Reichweitenniveaus beinhalten: R0, R5, R10, R20 und R40. Weitere geeignete Klassifikationen von Reichweitenwerten in variierende Niveaus können verwendet werden, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen.
  • Beim Bestimmen einer Route von dem Ursprung 102 zu dem Ziel 104 von 1 kann ein Computergerät, das ein Navigationssystem implementiert, unterschiedliche Datenversionen des Fahrtsegmentnetzwerkgraphen für den ersten geografischen Bereich 112 und den zweiten geografischen Bereich 114 heruntergeladen haben. Dies kann unterschiedliche Vorverarbeitungsergebnisse (z. B. Kontraktionsreihenfolgen) für die unterschiedlichen Datenversionen zum Ergebnis haben, wodurch es schwierig wird, eine Route von dem Ursprung 102 zu dem Ziel 104 unter Verwendung von Routingalgorithmen mit erhöhter Effizienz zu berechnen (z. B. einen Kontraktionshierarchien-Routingalgorithmus), ohne dass Netzwerkkonnektivität erforderlich ist, um aktualisierte Graphdaten zu erhalten. Gemäß exemplarischen Aspekten der vorliegenden Offenbarung können die Graphdaten, die das Fahrtsegmentnetzwerk modellieren, strukturiert sein, um die Identifikation von kürzesten Wegen unter Verwendung von Routingalgorithmen mit erhöhter Effizienz zu erhalten, wie z. B. einen Kontraktionshierarchien-Routingalgorithmus.
  • Genauer ausgedrückt kann ein geografischer Bereich (z. B. die Welt) in ein Gitter aus Zellen partitioniert werden. Jede Zelle kann annähernd quadratisch sein. So kann beispielsweise in einer Implementierung jede Zelle ein Quadrat von 5 km × 5 km sein. Für jeden geografischen Bereich kann ein Computersystem, das ein Navigationssystem implementiert, Graphdaten herunterladen, die mit einem Basisbereich für einen geografischen Bereich verbunden sind, sowie einen oder mehrere Polsterungsringe. Der Begriff geografischer Bereich betrifft einen Basisbereich plus den einen oder die mehreren Polsterungsringe, die den Basisbereich umgeben.
  • 3 stellt einen exemplarischen geografischen Bereich 200 dar, der einen Basisbereich 210 aufweist. Der Basisbereich 210 kann ein Rechteck von Zellen sein, die einen benutzerspezifizierten Bereich Interessensbereich (z. B. einen Ursprung oder ein Ziel) enthält. Der Basisbereich 210 weist eine äußere Grenze B0 auf. Die Größe des Basisbereichs 210 kann z. B. 20 km × 20 km, 40 km × 40 km oder eine andere geeignete Größe betragen. Der geografische Bereich 200 beinhaltet eine Vielzahl von Polsterungsringen P0, P5, P10 und P20. Der geografische Bereich 200 ist mit vier Polsterungsringen zum Zwecke von Veranschaulichung und Abhandlung dargestellt. Gewöhnliche Fachleute auf dem Gebiet werden unter Verwendung der hierin bereitgestellten Offenbarungen verstehen, dass mehr oder weniger Polsterungsringe verwendet werden können, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen.
  • In einer besonderen Implementierung kann der Polsterungsring PO eine Zellenbreite zwischen seiner inneren Grenze B0 und einer äußeren Grenze B5 sein. Der Polsterungsring P5 kann eine Zellenbreite zwischen seiner inneren Grenze B5 und einer äußeren Grenze B10 sein. Der Polsterungsring P10 kann zwei Zellenbreiten zwischen seiner inneren Grenze B10 und einer äußeren Grenze B20 sein. Der Polsterungsring P20 kann vier Zellenbreiten zwischen seiner inneren Grenze B20 und einer äußeren Grenze B40 sein.
  • Auf genügend Graphdaten, die mit jeder Zelle in dem Basisbereich und dem Polsterungsring verbunden sind, kann zugegriffen werden um sicherzustellen, dass Knoten, die mit Grenzsegmenten verbunden sind, während einer Suche nach einem kürzesten Weg zwischen einem Ursprung und einem Ziel unter Verwendung eines Algorithmus eines kürzesten Wegs besucht werden, wie z. B. ein bidirektionaler Kontraktionshierarchien-Suchalgorithmus. Gemäß Aspekten der vorliegenden Offenbarung können vollständige Graphdaten für den Basisbereich erhalten werden, während Graphdaten, die mit Kontraktionskernen verbunden sind, für jeden der Polsterungsringe aufrechterhalten werden können. Genauer ausgedrückt kann der Basisbereich vollständige Graphdaten aufweisen, die das gesamte Fahrtsegmentnetzwerk für die Zellen in dem Basisbereich modellieren. Die Polsterungsringe können Graphdaten aufweisen, die Knoten für Konnektivität zwischen Grenzen aufrechterhalten. Genauer ausgedrückt kann auf genügend Graphdaten für jede Zelle in einem Polsterungsring zugegriffen werden, um kürzeste Wege zwischen beliebigen zwei Grenzsegmenten zu finden. Grenzsegmente sind Fahrtsegmente, die die Zellgrenze schneiden. Graphdaten, die mit anderen Fahrtsegmenten verbunden sind (z. B. lokale Straßen im Inneren der Zelle) können ausgelassen werden.
  • In besonderen Ausführungsformen können die Graphdaten für jeden Polsterungsring basierend auf einem Reichweitenniveau erzeugt und/oder identifiziert werden, der mit dem Polsterungsring verbunden ist. Genauer ausgedrückt kann jeder Polsterungsring kann mit einem anderen Reichweitenniveau verbunden sein. So kann beispielsweise in dem Beispiel von 3 der Polsterungsring P0 mit einem Reichweitenniveau von R0 verbunden sein. Der Polsterungsring P5 kann mit einem Reichweitenniveau von R5 verbunden sein. Der Polsterungsring P10 kann mit einem Reichweitenniveau von R10 verbunden sein. Der Polsterungsring P20 kann mit einem Reichweitenniveau von R20 verbunden sein.
  • Die Graphdaten für jeden Polsterungsring können Daten beinhalten, die Grenzsegmente aufrechterhalten, die einen Reichweitenwert von mindestens dem Reichweitenwert aufweisen, der mit dem Polsterungsring verbunden ist. So können beispielsweise die kontrahierten Graphdaten, die mit jedem Polsterungsring PO verbunden sind, Grenzsegmente aufrechterhalten, die einen Reichweitenwert von 0 km oder größer aufweisen (d. h. als R0 klassifizierte Segmente). Die kontrahierten Graphdaten, die mit Polsterungsring P5 verbunden sind, können Grenzsegmente aufrechterhalten, die einen Reichweitenwert von 5 km oder größer aufweisen (d. h. als R5 klassifizierte Segmente). Die kontrahierten Graphdaten, die mit jedem Polsterungsring P10 verbunden sind, können Grenzsegmente aufrechterhalten, die einen Reichweitenwert von 10 km oder größer aufweisen (d. h. als R10 klassifizierte Segmente). Die kontrahierten Graphdaten, die mit Polsterungsring P20 verbunden sind, können Grenzsegmente aufrechterhalten, die einen Reichweitenwert von 20 km oder größer aufweisen (d. h. als R20 klassifizierte Segmente).
  • Die vorliegende Offenbarung wird unter Bezugnahme auf Polsterungsringe abgehandelt, die Reichweitenniveaus aufweisen, die Reichweitenwerten von 0 km, 5 km, 10 km und 20 km zum Zwecke von Veranschaulichung und Abhandlung entsprechen. Jede geeignete Klassifikation von Reichweitenwerten kann für die Polsterungsringe verwendet werden, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen. Aufgrund der Verbindung der äußeren Polsterungsringe mit höheren Reichweitenniveaus werden die kontrahierten Graphdaten für die Polsterungsringe fortschreitend spärlicher, während sie sich von einem inneren Polsterungsring in der Nähe des Basisbereichs zu einem äußeren Polsterungsring bewegen.
  • Beispielhafte Aspekte der vorliegenden Offenbarung können auch einen spärlichen Graphen verwenden. Ein spärlicher Graph beinhaltet Graphdaten, die Fahrtsegmente modellieren, die einen Reichweitenwert aufweisen, der mindestens so groß wie ein zuvor festgelegter Reichweitenwert-Schwellenwert ist. Der spärliche Graph ist vorzugsweise sehr spärlich (z. B. 5%) im Verhältnis zu dem vollständigen Graphen, der das Fahrtsegmentnetzwerk für einen geografischen Bereich modelliert. In einer besonderen Implementierung modelliert der spärliche Graph ein Netzwerk von einen Fahrtsegmenten, die einen Reichweitenwert von mindestens 40 km aufweisen (d. h. als R40 klassifizierte Segmente). Der spärliche Graph kann ein Autobahnnetzwerk für einen großen geografischen Bereich modellieren.
  • Gemäß Aspekten der vorliegenden Offenbarung können Graphdaten, die mit den geografischen Bereichen verbunden sind, an Grenzen miteinander und/oder mit dem spärlichen Graphen zusammengefügt werden, um ein zusammengefügtes Graphmodell zu bestimmen. So können beispielsweise Knoten, die mit Grenzsegmenten in einem äußersten Polsterungsring eines geografischen Bereichs verbunden sind, während einer Suche nach einem kürzesten Weg besucht, und mit dem spärlichen Graphen zusammengefügt werden. Eine Route kann dann von einem Ursprung zu einem Ziel basierend auf der Suche bestimmt werden. Beispielhaftes Zusammenfügen und Berechnung von Routen werden nachfolgend abgehandelt.
  • Beispielhafte Erzeugung von kontrahierten Graphdaten
  • Kontraktionshierarchien können verwendet werden, um die Graphdaten für den einen oder die mehreren Polsterungsringe in einem interessierenden geografischen Bereich zu erzeugen. Genauer ausgedrückt werden mehrere Kontraktionsphasen von teilweiser Kontraktion verwendet, um zunehmend spärliche Kontraktionskerne für die Polsterungsringe zu erzeugen. Jede Kontraktionsphase kann mindestens teilweise basierend auf einem Reichweitenniveau implementiert werden, das mit der Kontraktionsphase verbunden ist. So kann beispielsweise eine Kontraktionsphase Knoten als unkontrahierbar markieren, die mit Grenzsegmenten verbunden sind, die ein besonderes Reichweitenniveau aufweisen.
  • 4 stellt eine Übersicht der exemplarischen Erzeugung von Kontraktionskernen gemäß exemplarischer Aspekte der vorliegenden Offenbarung dar. Zuerst wird auf unkontrahierte Graphdaten 310 zugegriffen. Die unkontrahierten Graphdaten 310 können Knoten beinhalten, die alle Fahrtsegmente in einem geografischen Bereich modellieren. Die unkontrahierten Graphdaten 310 können während einer ersten Kontraktionsphase 312 kontrahiert werden, indem verbundene Segmente, die eine Zellgrenze schneiden, als unkontrahierbare Knoten markiert werden. Knotenkontraktion wird dann unter Verwendung einer Anordnungsheuristik ausgeführt, solange Knoten kostengünstig kontrahierbar sind. Abkürzungsbögen werden als Ergebnis der Knotenkontraktion erzeugt. Das, was nach den ersten Kontraktionsphasen unkontrahiert bleibt, wird als C0-Kern 314 bezeichnet. Folglich wird die erste Kontraktionsphase 312 als C0-Phase bezeichnet.
  • Wie in 4 dargestellt, fährt die Kontraktion mit einer zweiten Kontraktionsphase 314 fort, die als C5-Kontraktionsphase bezeichnet wird. Während der C5-Kontraktionsphase 314 werden Knoten nur dann als unkontrahierbar bezeichnet, wenn sie mit Grenzsegmenten verbunden sind, die eine Zellgrenze schneiden, und werden basierend auf Reichweitenwerten als R5 klassifiziert. Die unkontrahierbaren C5-Knoten sind eine Untergruppe der unkontrahierbaren C0-Knoten. Das, was nach den C5-Kontraktionsphase bleibt, ist der C5-Kern 318. Wie weiter in 4 gezeigt, wird dieser fortschreitende Kontraktionsprozess auf dieselbe Art bei einer dritten Kontraktionsphase 320, einer vierten Kontraktionsphase 324 und einer fünften Kontraktionsphase 328 fortgesetzt, um jeweils den C10-Kern 322, den C20-Kern 326 und den C40-Kern 330 zu erzeugen.
  • Für x > y sind die Knoten in dem Cx-Kern eine Untergruppe von Knoten in dem Cy-Kern. Cx-Knoten sind nicht notwendigerweise eine Untergruppe oder eine Übergruppe von Rx-Knoten. So können beispielsweise Fahrtsegmente, die keine Kachelgrenzen schneiden, früh während des fortschreitenden Kontraktionsprozesses kontrahiert werden, und möglicherweise nicht einmal den C0-Kern erreichen, selbst wenn die Segmente einen hohen Reichweitenwert aufweisen. Zusätzlich können zwei Knoten mit hoher Reichweite auf einer Zellgrenze durch einen Knoten mit niedriger Reichweite verbunden werden, der für mehrere Kontraktionsphasen unkontrahiert bleibt, weil er ein lokaler „Hub” in den teilweise kontrahierten Graphdaten ist.
  • Datenobjekte (z. B. Kacheldatenobjekte) für die Graphdaten können für jede Zelle in dem geografischen Bereich erzeugt werden. Gemäß bestimmten Aspekten der vorliegenden Offenbarung sind die Datenobjekte in einer Kacheldatenstruktur angeordnet, die ein Basisniveau für Basiskacheldatenobjekte aufweist, die mit vollständigen Graphdaten verbunden sind, und eine Vielzahl von Hierarchieniveaus von kontrahierten Datenobjekten, die mit den Kontraktionskernen verbunden sind. Die Anzahl von Niveaus in der Kacheldatenstruktur kann der Anzahl von Kontraktionskernen von Graphdaten entsprechen, die durch progressive Kontraktion der unkontrahierten Graphdaten für den geografischen Bereich erzeugt werden. So können beispielsweise in einer Ausführungsform Kacheldatenobjekte für ein Basisniveau TB und Hierarchieniveaus T0, T5, T10 und T20 erzeugt werden. Knoten und Bögen können mit den unterschiedlichen Niveaus wie folgt verbunden werden: (1) Wenn sich ein Knoten in dem Cx-Kern befindet, ist der Knoten mit einem Niveau von mindestens Tx verbunden; und (2) wenn sich ein Abkürzungsbogen in dem Cx-Kern befindet, sind die Knoten der vollständigen Erweiterung des Bogens mit einem Niveau von mindestens Tx verbunden. In einer alternativen Ausführungsform kann die Menge von Daten in höheren Kacheln durch das Ersetzen von (2) durch die Regel (2') reduziert werden. Wenn sich ein Knoten von Reichweitenniveau Ry auf einem Abkürzungsbogen in dem Cx-Kern befindet, wird der Knoten mit seinen auftreffenden Bögen auf Niveau Tz mit z ≥ min {x, y} gespeichert. Implementierungen können z im Verhältnis zu allen Abkürzungsbögen, die einen Knoten enthalten, so klein wie möglich wählen.
  • Die Berechnung von Reichweitenwerten für jedes Segment in einem Fahrtsegmentnetzwerk kann rechnerisch kostspielig sein. Gemäß bestimmten Aspekten der vorliegenden Offenbarung kann die Berechnung von Reichweitenwerten aufgeschoben werden, bis der C0-Kern berechnet ist, und dann nur auf dem C0-Kern durchgeführt werden. Dabei bleiben die Längen von kürzesten Wegen vor dem ersten Grenzknoten und nach dem letzten Grenzknoten unbeachtet (wovon beide in C0 enthalten sind), doch die so erhaltenen modifizierten Reichweitenwerte bleiben ausreichend, um relevante Grenzsegmente zu identifizieren. Darüber hinaus können bestimmte Ausführungsformen weitere Berechnungszeit einsparen, indem eine weitere Obergrenze dieser modifizierten Reichweite anstatt dieser modifizierten Reichweite selbst berechnet wird.
  • 5 veranschaulicht eine Darstellung einer exemplarischen Datenstruktur 350, die eine Vielzahl von Niveaus einschließlich eines Basisniveaus und von Hierarchieniveaus T0, T5, T10 und T20 aufweist. Kontrahierte Graphdaten für den C20-Kern können mit Kacheldatenobjekten in Niveau T20 in der Kacheldatenstruktur verbunden werden. Kontrahierte Graphdaten, die mit dem C10-Kern verbunden sind, können mit Kacheldatenobjekten in den Niveaus T10 und T20 in der Kacheldatenstruktur verbunden werden. Kontrahierte Graphdaten, die mit dem C5-Kern verbunden sind, können mit Kacheldatenobjekten in den Niveaus T5, T10 und T20 der Kacheldatenstruktur verbunden werden. Kontrahierte Graphdaten, die mit dem C0-Kern verbunden sind, können mit Kacheldatenobjekten in den Niveaus T0, T5, T10 und T20 der Kacheldatenstruktur verbunden werden. Die vollständigen Graphdaten können mit Kacheldatenobjekten in den Niveaus TB, T0, T5, T10 und T20 der Kacheldatenstruktur verbunden werden.
  • Gemäß bestimmter Aspekte der vorliegenden Offenbarung wird ein Knoten (einschließlich aller Daten des Fahrtsegments, das er darstellt) nur auf den Kacheldatenobjekten seines Niveaus für alle die Zellen gespeichert, die von dem Segment geschnitten werden. Genauer ausgedrückt wird ein Knoten für ein Segment, das vollständig innerhalb einer Zelle liegt, mit allen Auftreffbögen in der einen Kachel für diese Zelle und das Niveau das Knotens gespeichert. Ein Knoten für ein Segment, das in k >; 1 Zellen liegt, wird in der einen Kachel seines Niveaus für jede der k Zellen gespeichert, wobei die ausgehenden Bögen an der Endzelle des Segments gespeichert werden und die eingehenden Bögen an der Startzelle des Segments gespeichert werden. Alle Zellen in den k Zellen können eine Referenz zu dem Start- und Endexemplar des Knotens speichern.
  • Ein Computergerät, das ein Navigationssystem implementiert, kann Kacheldatenobjekte für Zellen in interessierenden geografischen Bereichen (z. B. geografische Bereiche, die mit Ursprung und Ziel verbunden sind) herunterladen und/oder darauf zugreifen. Genauer ausgedrückt kann das Computergerät auf Kacheldatenobjekte aller Niveaus (z. B. das Basisniveau und die hierarchischen Niveaus) in der Kacheldatenstruktur für Zellen in dem Basisbereich eines geografischen Bereichs zugreifen. Das Computergerät kann auf Kacheln von Niveau Ty, y ≥ x für Zellen in Polsterungsring Px zugreifen. Zum Beispiel, auf 5 kann das Computergerät auf Kacheln von Niveau T20 für Zellen in Polsterungsring P20 zugreifen. Das Computergerät kann auf Kacheln von Niveaus T20 und T10 für Zellen in Polsterungsring P10 zugreifen. Das Computergerät kann auf Kacheln von Niveaus T20, T10 und T5 für Zellen in Polsterungsring P5 zugreifen. Das Computergerät kann auf Kacheln von Niveaus T20, T10, T5 und T0 für Zellen in Polsterungsring P0 zugreifen. Das Computergerät kann auf Kacheln von Niveaus T20, T10, T5, T0 und TB für Zellen in dem Basisbereich zugreifen. Bögen, die auf Knoten weisen, auf die nicht zugegriffen werden kann, können entfernt werden. Abkürzungsbögen, auf deren vollständige Erweiterungen nicht zugegriffen werden kann, können auch entfernt werden. Die Graphdaten können verwendet werden, um einen kürzesten Weg in Übereinstimmung mit exemplarischen Aspekten der vorliegenden Offenbarung zu bestimmen.
  • Beispielhafte Suche nach einem kürzesten Weg und Zusammenfügen von Graphdaten
  • Für eine Suche zwischen einer Quelle s in einem ersten geografischen Bereich und einem Ziel t in einem zweiten geografischen Bereich, sodass der erste und zweite geografische Bereich weit genug voneinander entfernt sind, dass sich ihre jeweiligen Polsterungsringe nicht überlappen, weisen der erste geografische Bereich und der zweite geografische Bereich kontrahierte Graphdaten auf, die mit einer Grenze eines äußersten Polsterungsrings verbunden sind, der mit dem spärlichen Graphen zusammengefügt ist. Beispielsweise unter Bezugnahme auf die exemplarischen Graphdaten für den geografischen Bereich 200 von 3 kann die Grenze B40 des Polsterungsrings P20 mit dem spärlichen Graphen zusammengefügt werden, der ein Autobahnnetzwerk modelliert, um das zusammengefügte Graphmodell zu erzeugen. Für eine Suche zwischen einer Quelle s und einem Ziel t in demselben Bereich können die mit einer Grenze des äußersten Polsterungsrings verbundenen Graphdaten mit dem spärlichen Graphen zusammengefügt werden, da ein kürzester Weg einen langen Umweg durch den spärlichen Graphen benötigen kann, um das zusammengefügte Graphmodell zu erzeugen.
  • Suchen können in das zusammengefügte Graphmodell bei jedem Knoten mit zu ganz gleich welchen anwendbaren Anfangskosten eintreten. Sobald das zusammengefügte Graphmodell erzeugt ist, wird eine Route von dem Ursprung zu dem Ziel mindestens teilweise basierend auf dem zusammengefügten Graphmodell bestimmt. So kann beispielsweise eine bidirektionale (z. B. Vorwärts- und Rückwärts-)Kontraktionshierarchien-Style-Suche durchgeführt werden, um einen kürzesten Weg durch das zusammengefügte Graphmodell von dem Ursprung zu dem Ziel zu bestimmen.
  • Für eine Suche zwischen geografischen Bereichen, die überlappende Polsterungsringe aufweisen, können die Graphdaten an variierenden Kontraktionskernen zusammengefügt werden, und mit dem spärlichen Graphen an der Grenze des äußersten Polsterungsrings zusammengefügt werden. Genauer ausgedrückt kann eine Naht zwischen dem ersten geografischen Bereich und dem zweiten geografischen Bereich bestimmt werden, und Graphdaten, die mit den geografischen Bereichen verbunden sind, werden an einer Grenze der Naht zusammengefügt. Zum Beispiel zeigt FIG. Beispielsweise stellt 6 einen ersten geografischen Bereich 360 und einen zweiten geografischen Bereich 370 mit überlappenden Polsterungsringen dar. Eine Naht 380 kann zwischen dem ersten geografischen Bereich 360 und dem zweiten geografischen Bereich 370 bestimmt werden. Graphdaten, die mit dem ersten geografischen Bereich 360 und dem zweiten geografischen Bereich 370 verbunden sind, können an der Naht 380 zusammengefügt werden.
  • Die Naht zwischen einem ersten geografischen Bereich und einem zweiten geografischen Bereich wird durch Teilen einer Vielzahl von Zellen zwischen dem ersten geografischen Bereich und dem zweiten geografischen Bereich bestimmt. In einer besonderen exemplarischen Implementierung kann das Teilen von Zellen durch die folgenden Regeln ausgeführt werden. Eine Zelle, die durch nur einen von den zwei Bereichen abgedeckt ist, wird dem Bereich zugeordnet. Eine Zelle, die durch einen Polsterungsring Px des ersten geografischen Bereichs abgedeckt ist und ein Polsterungsring Py des zweiten geografischen Bereichs wird dem Bereich mit dem kleineren Wert von x und y zugeordnet, da er detailliertere Daten aufweist. Eine Verknüpfung (x = y) wird auf konsistente Art gebrochen, wie z. B. zugunsten des Bereichs mit neueren Daten. Für Zellen, die keiner der beiden Regionen zugeordnet sind, kann der spärliche Graph verwendet werden. Der Satz von Zellenkanten, an dem sich die unterschiedlichen Bereiche berühren, kann die Naht zwischen den Bereichen sein. Jede Nahtkante e benötigt Zusammenfügen auf einem bestimmten Reichweitenniveau. Zusammenfügen auf Niveau Rx ist zulässig, wenn e auf der Außenseite der Grenze Bx von beiden Bereichen liegt. Bei einer Implementierung kann das größte von diesem zulässigen Niveau Rx ausgewählt werden, um die Anzahl von zu verarbeitenden Segmenten zu minimieren.
  • Das Ergebnis des Zusammenfügens des ersten geografischen Bereichs und des zweiten geografischen Bereichs an der Naht und an dem spärlichen Graphen hat ein zusammengefügtes Graphmodell zum Ergebnis, das für die Vorwärts- und Rückwärtssuche nach einem kürzesten Weg verwendet wird (z. B. Kontraktionshierarchien-Style-Suche). Der kürzeste Weg kann mehrere Male über die Naht im Zickzack zwischen den Bereichen, und in den spärlichen Graphen hinein verlaufen. In bestimmten exemplarischen Implementierungen kann sich die Suche in dem zusammengefügten Graphmodell in Abhängigkeit davon dynamisch anpassen, welche kontrahierte Form des Graphen durch unterschiedliche Suchstatus genutzt wird. So kann beispielsweise jeder Suchstatus ein Zielkernniveau Cx speichern. Der Anfangsstatus wird mit dem Mindestreichweitenniveau von jeder Nahtkante erzeugt. Insbesondere, wenn Zusammenfügen nur bei der Grenze B40 auftritt, kann der Anfangsstatus für das Maximalkernniveau C40 sofort erzeugt werden. Wenn ein Bogen entspannt wird und ein Status für ein Kernniveau Cx mit x < 40 in einer Zelle endet, die von einem Polsterungsring Py von einem Bereich gerollt war, dann kann der untergeordnete Status die kontrahierte Form des Graphen verwenden, die dem Kernniveau Cz entspricht, wobei z = max {x, y}. Auf ähnliche Weise verwendet der untergeordnete Status das höchste Kernniveau C40, wenn die Zelle außerhalb von jedem Polsterungsring war und von dem spärlichen Netzwerk gefüllt wurde. Folglich besucht die Suche alle Grenzknoten eines Reichweitenniveuas, das hoch genug ist, um für den kürzesten Weg relevant zu sein, neigt jedoch dazu, das Besuchen weit entfernter Grenzknoten mit niedriger Reichweite zu vermeiden.
  • Prozessablaufdiagramm von exemplarischen Verfahren zum Bestimmen von Routen in geografischen Bereichen
  • 7 stellt ein Prozessablaufdiagramm eines exemplarischen Verfahrens (400) zum Bestimmen von Routen in geografischen Bereichen gemäß exemplarischer Aspekte der vorliegenden Offenbarung dar. Das Verfahren (400) kann durch eines oder mehrere Computergeräte implementiert sein, wie z. B. durch eines oder mehrere der Computergeräte, die dargestellt sind in 8. Zusätzlich zeigt 7 Schritte dar, die in einer bestimmten Reihenfolge zu Zwecken der Veranschaulichung und Abhandlung ausgeführt werden. Normale Fachleute auf dem Gebiet werden unter Verwendung der hierin bereitgestellten Offenbarungen verstehen, dass die Schritte von jedem der hierin offenbarten Verfahren modifiziert, angepasst, weggelassen, neu angeordnet oder auf unterschiedliche Arten erweitert werden können, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen.
  • In (402) beinhaltet das Verfahren das Erhalten von Daten die eine Anforderung einer Route von einem Ursprung zu einem Ziel angeben. So kann beispielsweise ein Benutzer eines Navigationssystems, das beispielsweise auf einem Computergerät implementiert ist (z. B. Smartphone, Navigationssystem, Tablet, tragbares Computergerät, Laptop usw.), Fahrtanweisungen von einem Ursprung zu einem Ziel anfordern.
  • In (404) beinhaltet das Verfahren den Zugriff auf erste Graphdaten für einen ersten geografischen Bereich. Der erste geografische Bereich kann ein geografischer Bereich sein, der mit dem Ursprung verbunden ist. Die ersten Graphdaten können ein Fahrtsegmentnetzwerk für den ersten geografischen Bereich modellieren. Die ersten Graphdaten können erste vollständige Graphdaten für einen ersten Basisbereich des ersten geografischen Bereichs und einen oder mehrere Kontraktionskerne für einen Polsterungsbereich beinhalten, der einen oder mehrere Polsterungsringe beinhalten kann. Wie oben abgehandelt können die Graphdaten für jeden Polsterungsring Knoten aufrechterhalten, die mit Grenzsegmenten verbunden sind, die basierend auf einem Reichweitenniveau identifiziert werden, das mit dem Polsterungsring verbunden ist.
  • In einer besonderen Implementierung beinhalten die ersten Graphdaten eine Vielzahl von Kacheldatenobjekten, die in einer Kacheldatenstruktur konfiguriert sind. Die Kacheldatenstruktur kann ein Basisniveau von Basiskacheldatenobjekten und eines oder mehrere Hierarchieniveaus von kontrahierten Kachelobjekten beinhalten. So kann beispielsweise die Kacheldatenstruktur Niveaus T20, T10, T5, T0 und TB beinhalten. Wie oben abgehandelt, kann ein C20-Kern mit Niveau T20 verbunden sein. Ein C10-Kern kann mit Niveaus T10 und T20 verbunden sein. Ein C5-Kern kann mit Niveaus T5, T10 und T20 usw. verbunden sein. Die kontrahierten Kacheldatenobjekte für jedes Hierarchieniveau kann mit einem Reichweitenniveau entsprechend dem Hierarchieniveau verbunden werden. Für jede Zelle in dem ersten Basisbereich können die ersten Graphdaten ein Basiskacheldatenobjekt beinhalten, das mit dem Basisniveau in der Kacheldatenstruktur verbunden ist, sowie die kontrahierten Kacheldaten, die mit jedem Hierarchieniveau in der Kacheldatenstruktur über dem Basisniveau verbunden sind, um vollständige Graphdaten bereitzustellen. Für jede Zelle in dem einen oder den mehreren Polsterungsringen können die ersten Graphdaten kontrahierte Kacheldatenobjekte für jedes Hierarchieniveau beinhalten, das einem Niveau entspricht, das größer als oder gleich dem Niveau ist, das mit dem Polsterungsring verbunden ist, um kontrahierte Graphdaten bereitzustellen, die mit einem Kontraktionskern für den Polsterungsring verbunden sind.
  • In (406) kann das Verfahren den Zugriff auf zweite Graphdaten für einen zweiten geografischen Bereich beinhalten. Die zweiten Graphdaten können mit einer anderen Datenversion oder Daten-Build als die ersten Graphdaten verbunden werden. Der zweite geografische Bereich kann ein geografischer Bereich sein, der mit dem Ziel verbunden ist. Die zweiten Graphdaten können ein Fahrtsegmentnetzwerk für den zweiten geografischen Bereich modellieren. Die zweiten Graphdaten können zweite vollständige Graphdaten für einen zweiten Basisbereich des zweiten geografischen Bereichs und einen oder mehrere Kontraktionskerne für einen oder mehrere Polsterungsringe beinhalten. Wie oben abgehandelt können die Graphdaten für jeden Polsterungsring Knoten aufrechterhalten, die mit Grenzsegmenten verbunden sind, die basierend auf einem Reichweitenniveau identifiziert werden, das mit dem Polsterungsring verbunden ist.
  • In einer besonderen Implementierung beinhalten die zweiten Graphdaten eine Vielzahl von Kacheldatenobjekten, die in einer Kacheldatenstruktur konfiguriert sind. Die Kacheldatenstruktur kann ein Basisniveau von Basiskacheldatenobjekten und eines oder mehrere Hierarchieniveaus von kontrahierten Kachelobjekten beinhalten. So kann beispielsweise die Kacheldatenstruktur Niveaus T20, T10, T5, T0 und TB beinhalten. Wie oben abgehandelt, kann ein C20-Kern mit Niveau T20 verbunden sein. Ein C10-Kern kann mit Niveaus T10 und T20 verbunden sein. Ein C5-Kern kann mit Niveaus T5, T10 und T20 usw. verbunden sein. Die kontrahierten Kacheldatenobjekte für jedes Hierarchieniveau kann mit einem Reichweitenniveau entsprechend dem Hierarchieniveau verbunden werden. Für jede Zelle in dem zweiten Basisbereich können zweite Graphdaten ein Basiskacheldatenobjekt beinhalten, das mit dem Basisniveau in der Kacheldatenstruktur verbunden ist, sowie die kontrahierten Kacheldaten, die mit jedem Hierarchieniveau in der Kacheldatenstruktur über dem Basisniveau verbunden sind, um vollständige Graphdaten bereitzustellen. Für jede Zelle in dem einen oder den mehreren Polsterungsringen können die zweiten Graphdaten kontrahierte Kacheldatenobjekte für jedes Hierarchieniveau beinhalten, das einem Niveau entspricht, das größer als oder gleich dem Niveau ist, das mit dem Polsterungsring verbunden ist, um kontrahierte Graphdaten bereitzustellen, die mit einem Kontraktionskern für den Polsterungsring verbunden sind.
  • In (408) kann das Verfahren den Zugriff auf einen spärlichen Graphen beinhalten, der z. B. ein Autobahnnetzwerk modelliert. Der spärliche Graph kann Graphdaten beinhalten, die Fahrtsegmente modellieren, die einen Reichweitenwert aufweisen, der mindestens so groß wie ein zuvor festgelegter Reichweitenwert-Schwellenwert ist. Der spärliche Graph ist vorzugsweise sehr spärlich (z. B. 5%) im Verhältnis zu einem vollständigen Graphen, der das Fahrtsegmentnetzwerk für einen geografischen Bereich modelliert. In einer besonderen Implementierung modelliert der spärliche Graph ein Netzwerk von einen Fahrtsegmenten, die einen Reichweitenwert von mindestens 40 km aufweisen (d. h. als R40 klassifizierte Segmente).
  • In (410) beinhaltet das Verfahren das Zusammenführen der ersten Graphdaten mit den zweiten Graphdaten und/oder mit dem spärlichen Graphen, um ein zusammengefügtes Graphmodell zu erzeugen. So können beispielsweise die Grenzsegmente, die mit einem äußersten Polsterungsring des ersten geografischen Bereichs verbunden sind, mit dem spärlichen Graphen an einer Grenze zusammengefügt werden, die mit dem Polsterungsring verbunden ist. Die Grenzsegmente, die mit einem äußersten Polsterungsring des zweiten geografischen Bereichs verbunden sind, können mit dem spärlichen Graphen an einer Grenze zusammengefügt werden, die mit dem Polsterungsring verbunden ist. In Fällen, in denen einer oder mehrere Polsterungsringe des ersten geografischen Bereichs einen oder mehrere Polsterungsringe des zweiten geografischen Bereichs überlappen, kann Zusammenfügen der ersten Graphdaten und/oder der zweiten Graphdaten das Bestimmen einer Naht zwischen dem ersten geografischen Bereich und dem zweiten geografischen Bereich und Zusammenfügen von Grenzsegmenten an einer Grenze beinhalten, die mit der Naht verbunden ist.
  • In (412) kann das Verfahren Identifizieren eines kürzesten Wegs von den ersten Graphdaten und den zweiten Graphdaten durch Besuchen von einem oder mehreren Knoten beinhalten, die mit Grenzsegmenten in den ersten Graphdaten und den zweiten Graphdaten verbunden sind. So kann beispielsweise ein Algorithmus eines kürzesten Wegs verwendet werden, um einen kürzesten Weg durch das Graphmodell zu finden. Die Segmente in dem kürzesten Weg können zum Identifizieren der Route von dem Ursprung zu dem Ziel verwendet werden. Jeder geeignete Algorithmus eines kürzesten Wegs kann zum Identifizieren der Route verwendet werden, ohne von dem Umfang der vorliegenden Offenbarung abzuweichen. So kann beispielsweise ein bidirektionaler Kontraktionshierarchien-Style-Suchalgorithmus verwendet werden, um die Route von dem Ursprung zu dem Ziel unter Verwendung des zusammengefügten Graphmodells zu bestimmen. Da die Kontraktionskerne Knoten mindestens teilweise basierend auf einem Reichweitenwert aufrechterhalten, der mit jedem Grenzsegment verbunden ist, kann ein kürzester Weg unter Verwendung einer Kontraktionshierarchien-Style-Suche herausgefunden werden.
  • In (414) beinhaltet das Verfahren das Bestimmen einer Route von einem Ziel basierend auf dem identifizierten kürzesten Weg. So kann beispielsweise die Route Fahrtsegmente beinhalten, die mit Knoten in dem identifizierten kürzesten Weg durch die Graphdaten verbunden sind.
  • Beispielhaftes Computersystem zum Bestimmen von Routen in geografischen Bereichen
  • 8 stellt ein Computersystem 500 dar, das zum Implementieren der Verfahren und Systeme verwendet werden kann, um Routen in geografischen Bereichen gemäß exemplarischen Ausführungsformen der vorliegenden Offenbarung zu bestimmen. Das System 500 kann unter Verwendung einer Client-Server-Architektur implementiert werden, die ein Computergerät 510 beinhaltet, das mit einem oder mehreren Servern 530 (z. B. Webservern) über ein Netzwerk 540 kommunizieren kann. Das System 500 kann mit anderen geeigneten Architekturen implementiert sein, zum Beispiel einem einzelnen Computergerät.
  • Das System kann ein Computergerät 510 beinhalten. Das Computergerät 510 kann jede geeignete Art von Computergerät, wie z. B. ein Universalcomputer, Spezialcomputer, Navigationssystem (z. B. ein Automobilnavigationssytsem, Laptop, Desktop, mobile Vorrichtung, Smartphone, Tablet, tragbares Computergerät, eine Anzeige mit einem oder mehreren Prozessoren oder anderes geeignetes Computergerät sein. Das Computergerät 510 kann einen oder mehrere Prozessor(en) 512 und eine oder mehrere Speichervorrichtungen 514 beinhalten.
  • Der eine oder die mehreren Prozessor(en) 512 können jede geeignete Verarbeitungsvorrichtung, wie z. B. einen Mikroprozessor, Mikrocontroller, eine integrierte Schaltung, eine Logikvorrichtung, eine oder mehrere Zentralprozessoren (CPUs), Grafikprozessen (GPUs), die zweckbestimmt sind, um effizient Bilder wiederzugeben oder andere spezialisierte Berechnungen auszuführen, und/oder andere Verarbeitungsvorrichtungen. Die eine oder die mehreren Speichervorrichtungen 514 können ein oder mehrere computerlesbare Speichermedien beinhalten, einschließlich, aber nicht beschränkt auf nicht flüchtige computerlesbare Medien, RAM, ROM, Festplatten, USB-Sticks oder andere Speichervorrichtungen.
  • Die eine oder die mehreren Speichervorrichtungen 514 speichern Informationen, auf durch einen oder mehrere Prozessoren 512 zugegriffen werden kann, einschließlich Anweisungen 516, auf die durch den einen oder die mehreren Prozessoren 512 zugegriffen werden kann. So kann beispielsweise die Speichervorrichtung 514 Anweisungen 516 zum Implementieren eines Navigationsmoduls 520 speichern, die konfiguriert sind, um Routen in geografischen Bereichen gemäß exemplarischer Ausführungsformen der vorliegenden Offenbarung zu bestimmen. Die eine oder die mehreren Speichervorrichtungen 514 können auch Daten 518 beinhalten, auf die durch den einen oder die mehreren Prozessoren 512 zugegriffen, davon manipuliert, erzeugt oder gespeichert werden können. Die Daten 518 können beispielsweise Graphdaten (z. B. Basiskacheldatenobjekte und kontrahierte Kacheldatenobjekte) für unterschiedliche geografische Bereiche sowie einen spärlichen Graphen beinhalten, der ein Autobahnnetzwerk für einen geografischen Bereich modelliert.
  • Es versteht sich von selbst, dass der Begriff „Modul” sich auf eine Computerlogik bezieht, die verwendet wird, um die erwünschte Funktionalität bereitzustellen. Somit kann ein Modul in Hardware, anwendungsspezifischen Schaltungen, Firmware und/oder Software implementiert werden, mittels der denen ein Allzweckprozessor gesteuert wird. In einer Ausführungsform sind die Module Programmcodedateien, die auf der Speichervorrichtung gespeichert sind, in eine oder mehrere Speichervorrichtungen geladen und durch einen oder mehrere Prozessoren ausgeführt werden, oder von Computerprogrammprodukten bereitgestellt werden können, z. B. computerausführbare Anweisungen, die in einem greifbaren computerlesbaren Speichermedium, wie z. B. RAM, USB-Stick, Festplatte oder optischen oder magnetischen Medien, gespeichert sind. Wenn Software verwendet wird, kann eine beliebige geeignete Programmiersprache oder Plattform verwendet werden, um das Modul zu implementieren.
  • Das Computergerät 510 kann unterschiedliche Eingabe-/Ausgabevorrichtungen zum Bereitstellen und Empfangen von Informationen von einem Benutzer, wie z. B. einen Touchscreen, Touchpad, Dateneingabetasten, Lautsprecher und/oder ein Mikrofon, beinhalten, das zur Spracherkennung geeignet ist. So kann beispielsweise das Computergerät 510 eine Anzeige 524 aufweisen, um einem Benutzer Navigationsinformationen bereitzustellen.
  • Das Computergerät 510 kann weiterhin ein Positionierungssystem beinhalten. Das Positionssystem kann ein oder mehrere Geräte oder Verschaltung zum Bestimmen der Position eines Client-Geräts beinhalten. Das Positionierungsgerät kann zum Beispiel eine tatsächliche oder relative Position durch Verwendung eines Satellitennavigations-Positionierungssystems (z. B. eines GPS-Systems, eines Galileo-Positionierungssystems, des GLObalen Navigations-Satellitensystems (GLONASS), des BeiDou-Satelliten-Navigations- und Positionierungssystems), eines Inertialnavigationssystems, eines Koppelnavigationssystems, auf Basis von IP-Adressen, durch Verwendung von Triangulation und/oder von Nähe zu Mobilfunkmasten oder WLAN-Hotspots oder Nahbereichsfunkfeuer (z. B. BLE) und Ähnliches und/oder andere geeignete Techniken zur Positionsbestimmung bestimmen.
  • Unterschiedliche, hierin abgehandelte Ausführungsformen können auf persönliche Informationen von Benutzern zugreifen und diese analysieren oder persönliche Informationen wie z. B. Positionsinformationen nutzen. In manchen Ausführungsformen muss der Benutzer möglicherweise die Anwendung installieren oder eine Einstellung auswählen, um die Vorteile der hierin beschriebenen Techniken zu erhalten. In manchen Ausführungsformen können gewisse Informationen oder Daten auf eine oder mehrere Wege behandelt werden, bevor sie gespeichert oder verwendet werden, sodass personenbezogene Informationen entfernt werden. Eine Identität eines Benutzers kann zum Beispiel so behandelt werden, dass keine personenbezogenen Informationen für den Benutzer bestimmt werden können.
  • Das Computergerät 510 kann auch eine Netzwerkschnittstelle beinhalten, die zum Kommunizieren mit einem oder mehreren entfernten Computergeräten (z. B. Server 530) über das Netzwerk 540 verwendet wird. Die Netzwerkschnittstelle kann beliebige geeignete Komponenten zum Ankoppeln an ein oder mehrere Netzwerke beinhalten, die zum Beispiel Sender, Empfänger, Anschlüsse, Controller, Antennen oder andere geeignete Komponenten beinhalten.
  • Das System 500 beinhaltet einen Server 530, wie z. B. einen Webserver. Der Server 530 kann ein geografisches Informationssystem beherbergen oder damit in Kommunikation stehen, das Graphdaten speichert, die Fahrtsegmentnetzwerke in einem geografischen Bereich modellieren. Der Server 530 kann unter Verwendung von geeigneten Computergerät(en) implementiert werden. Der Server 530 kann einen oder mehrere Prozessoren und einen Speicher aufweisen. Der Server 530 kann auch eine Netzwerkschnittstelle beinhalten, die zum Kommunizieren mit einem Computergerät 510 über das Netzwerk 540 verwendet wird. Die Netzwerkschnittstelle kann beliebige geeignete Komponenten zum Ankoppeln an ein oder mehrere Netzwerke beinhalten, die zum Beispiel Sender, Empfänger, Anschlüsse, Controller, Antennen oder andere geeignete Komponenten beinhalten.
  • Das Netzwerk 540 kann jede Art von Kommunikationsnetzwerk sein, zum Beispiel ein Local Area Network (z. B. Intranet), eine Wide Area Network (z. B. Internet), ein Mobilfunknetzwerk oder eine Kombination daraus. Das Netzwerk 540 kann auch eine direkte Verbindung zwischen einem Computergerät 510 und dem Server 530 beinhalten. Im Allgemeinen kann Kommunikation zwischen dem Server 530 und einem Computergerät 510 über die Netzwerkschnittstelle unter Verwendung eines beliebigen Typs von verdrahteter und/oder drahtloser Verbindung unter Verwendung einer Vielfalt von Kommunikationsprotokollen (z. B. TCP/IP, HTTP, SMTP, FTP), Codierungen oder Formaten (z. B. HTML, XML) und oder Schutzschemen (z. B. VPN, sicheres HTTP, SSL) ausgeführt werden.
  • Die hier besprochene Technologie nimmt Bezug auf Server, Datenbanken, Softwareanwendungen, und sonstige computergestützte Systeme, sowie auch unternommene Handlungen und die an und von derartigen Systemen und gesendeten Informationen. Der Durchschnittsfachmann auf diesem Gebiet wird erkennen, dass die naturgemäße Flexibilität computergestützter Systeme eine große Vielfalt an möglichen Konfigurationen, Kombinationen und der Aufteilung von Aufgaben und Funktionalitäten zwischen und unter den Komponenten ermöglicht. Die hierin diskutierten Serverprozesse können beispielsweise unter Verwendung eines einzelnen Servers oder mehrerer in Kombination betriebener Server umgesetzt werden. Datenbanken und Anwendungen können auf einem einzigen System oder auf mehrere Systeme verteilt, implementiert werden. Verteilte Komponenten können sequenziell oder parallel betrieben werden.
  • Während der vorliegende Gegenstand im Detail unter Bezugnahme auf spezifische Ausführungsbeispiele beschrieben wurde, versteht es sich, dass Fachleute auf dem Gebiet nach Erlangen eines Verständnisses des Vorstehenden leicht Veränderungen an, Variationen von und Äquivalente zu solchen Ausführungsformen anfertigen können. Demgemäß ist der Umfang der vorliegenden Offenlegung nur exemplarisch und nicht begrenzend, und die betroffene Offenbarung schließt die Einbeziehung solcher Modifizierungen, Varianten und/oder Hinzufügungen des vorliegenden Gegenstands nicht aus, die für Fachleute problemlos offensichtlich sind.

Claims (5)

  1. Computersystem, das Folgendes umfasst: einen oder mehrere Prozessoren; eine oder mehrere Speichervorrichtungen, wobei die eine oder mehreren Speichervorrichtungen computerlesbare Anweisungen speichern, die bei Ausführung durch die eine oder mehreren Speichervorrichtungen die eine oder mehreren Speichervorrichtungen zum Ausführen von Vorgängen veranlassen, wobei die Vorgänge Folgendes umfassen: Zugreifen auf unkontrahierte Graphdaten, die ein Fahrtsegmentnetzwerk modellieren; progressives Kontrahieren der unkontrahierten Graphdaten für eine Vielzahl von Kontraktionsphasen, um eine Vielzahl von Kontraktionskernen zu erzeugen, die einer Vielzahl von unterschiedlichen Reichweitenniveaus entsprechen, wobei jede Kontraktionsphase mindestens teilweise basierend auf einem Reichweitenwert implementiert wird, der mit dem Reichweitenniveau verbunden ist, das der Kontraktionsphase entspricht; Erzeugen einer Vielzahl von Basiskacheldatenobjekten für die vollständigen Graphdaten; Erzeugen einer Vielzahl von ersten Kacheldatenobjekten entsprechend einem ersten Kontraktionskern der Vielzahl von Kontraktionskernen, wobei die ersten Kontraktionskerne mit einem ersten Reichweitenwert verbunden sind; und Erzeugen einer Vielzahl von zweiten Kacheldatenobjekten entsprechend einem zweiten Kontraktionskern der Vielzahl von Kontraktionskernen, wobei die zweiten Kontraktionskerne mit einem zweiten Reichweitenwert verbunden sind; worin der zweite Reichweitenwert größer als der erste Reichweitenwert ist.
  2. Computersystem nach Anspruch 1, worin jede Kontraktionsphase das Markieren eines Knotens als unkontrahierbar für die Kontraktionsphase umfasst, der mit einem Grenzsegment verbunden ist, das einen Reichweitenwert von größer als oder gleich dem Reichweitenwert aufweist, der mit der Kontraktionsphase verbunden ist.
  3. Greifbares nicht-transitorisches computerlesbares Medium oder mehrere greifbare nicht-transitorische computerlesbare Medien, das bzw. die computerlesbare Anweisungen speichert bzw. speichern, die bewirken, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, dass der eine oder die mehreren Prozessoren Vorgänge durchführt, wobei die Vorgänge Folgendes umfassen: Zugriff auf erste Graphdaten, die mit einem ersten geografischen Bereich verbunden sind, der einen ersten Basisbereich, einen ersten inneren Polsterungsring und einen ersten äußeren Polsterungsring aufweist, worin der erste innere Polsterungsring mit einem ersten Reichweitenniveau, und der erste äußere Polsterungsring mit einem zweiten Reichweitenniveau verbunden ist, wobei das zweite Reichweitenniveau größer als das erste Reichweitenniveau ist, wobei die ersten Graphdaten erste vollständige Graphdaten für jede von einer Vielzahl von Zellen in den ersten Basisdaten umfassen, die ersten Graphdaten weiterhin erste kontrahierte Graphdaten umfassen, die mit dem ersten Reichweitenniveau für jede von einer Vielzahl von Zellen in dem ersten inneren Polsterungsring verbunden sind, die ersten Graphdaten weiterhin zweite kontrahierte Graphdaten umfassen, die mit dem zweiten Reichweitenniveau für jede von einer Vielzahl von Zellen in dem ersten äußeren Polsterungsring verbunden sind; Zugriff auf zweite Graphdaten, die mit einem zweiten geografischen Bereich verbunden sind, der einen zweiten Basisbereich, einen zweiten inneren Polsterungsring und einen zweiten äußeren Polsterungsring aufweist, worin der zweite innere Polsterungsring mit dem ersten Reichweitenniveau, und der zweite äußere Polsterungsring mit dem zweiten Reichweitenniveau verbunden ist, wobei die zweiten Graphdaten zweite vollständige Graphdaten für jede von einer Vielzahl von Zellen in dem zweiten Basisbereich umfassen, die zweiten Graphdaten weiterhin dritte kontrahierte Graphdaten umfassen, die mit dem ersten Reichweitenniveau für jede von einer Vielzahl von Zellen in dem zweiten inneren Polsterungsring verbunden sind, die zweiten Graphdaten weiterhin vierte kontrahierte Graphdaten umfassen, die mit dem zweiten Reichweitenniveau für jede von einer Vielzahl von Zellen in dem zweiten äußeren Polsterungsring verbunden sind; Bestimmen einer Naht zwischen dem ersten geografischen Bereich und dem zweiten geografischen Bereich durch das eine oder die mehreren Computergeräte; Zusammenfügen der ersten kontrahierten Graphdaten, die mit dem ersten inneren Polsterungsring verbunden sind, mit den dritten kontrahierten Graphdaten, die mit dem zweiten inneren Polsterungsring verbunden sind, an einer Grenze, die mit der Naht verbunden ist, um ein zusammengefügtes Graphmodell zu erzeugen; Zusammenfügen der zweiten kontrahierten Graphdaten, die mit dem ersten äußeren Polsterungsring verbunden sind, mit den vierten kontrahierten Graphdaten, die mit dem zweiten äußeren Polsterungsring verbunden sind, an einer Grenze, die mit der Naht verbunden ist, um das zusammengefügte Graphmodell zu erzeugen; und Bestimmen einer Route von einem Ursprung in dem ersten geografischen Bereich zu einem Ziel in dem zweiten geografischen Bereich mindestens basierend auf dem zusammengefügten Graphmodell unter Verwendung eines Kontraktionshierarchien-Suchalgorithmus.
  4. Das eine oder die mehreren greifbaren, nicht flüchtigen computerlesbaren Medien nach Anspruch 3, worin der Zugriff auf die ersten Graphdaten und die zweiten Graphdaten ohne Netzwerkkonnektivität erfolgt.
  5. Das eine oder die mehreren greifbaren, nicht flüchtigen computerlesbaren Medien nach Anspruch 4, worin die ersten Graphdaten mit einer anderen Datenversion als die zweiten Graphdaten verbunden sind.
DE202015009169.5U 2014-05-21 2015-05-18 Routing mit Dantenversionszusammenfügung Active DE202015009169U1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462001191P 2014-05-21 2014-05-21
US62/001,191 2014-05-21
US14/714,742 US9435658B2 (en) 2014-05-21 2015-05-18 Routing with data version stitching
US14/714,742 2015-05-18

Publications (1)

Publication Number Publication Date
DE202015009169U1 true DE202015009169U1 (de) 2016-11-07

Family

ID=54554585

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202015009169.5U Active DE202015009169U1 (de) 2014-05-21 2015-05-18 Routing mit Dantenversionszusammenfügung

Country Status (3)

Country Link
US (3) US9435658B2 (de)
DE (1) DE202015009169U1 (de)
WO (1) WO2015179289A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10572847B2 (en) 2014-10-10 2020-02-25 Conduent Business Services, Llc Dynamic space-time diagram for visualization of transportation schedule adherence
US9536210B2 (en) * 2014-12-11 2017-01-03 Xerox Corporation Origin-destination estimation system for a transportation system
US9591442B2 (en) * 2015-04-04 2017-03-07 John Culver Heed Method and system for implementing navigation using bounded geographic regions
US10593074B1 (en) * 2016-03-16 2020-03-17 Liberty Mutual Insurance Company Interactive user interface for displaying geographic boundaries
US11562300B2 (en) 2016-06-10 2023-01-24 Conduent Business Services, Llc System and method for optimal automated booking of on-demand transportation in multi-modal journeys
KR101850884B1 (ko) * 2016-07-11 2018-04-20 주식회사 삼진엘앤디 계층적 그래프 기반의 경로 탐색 방법 및 이를 이용한 사물 인터넷 환경에서의 경로 탐색 방법
CN111121750B (zh) * 2019-12-26 2022-04-22 广东博智林机器人有限公司 室内的路径获取方法和装置
US10891412B1 (en) * 2020-02-13 2021-01-12 International Business Machines Corporation Offline analysis of hierarchical electronic design automation derived data
CN113204348B (zh) * 2021-04-30 2021-11-26 北京连山科技股份有限公司 一种基于Contraction Hierarchies的国内路网数据编译方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043361B1 (en) * 2003-11-26 2006-05-09 Northrop Grumman Corporation Method and apparatus for calculating geometry of a moving haven
US20060047421A1 (en) * 2004-08-25 2006-03-02 Microsoft Corporation Computing point-to-point shortest paths from external memory
US9175977B2 (en) 2005-12-20 2015-11-03 General Motors Llc Method for arbitrating between multiple vehicle navigation systems
US9076332B2 (en) * 2006-10-19 2015-07-07 Makor Issues And Rights Ltd. Multi-objective optimization for real time traffic light control and navigation systems for urban saturated networks
US8150620B2 (en) * 2009-04-14 2012-04-03 Alpine Electronics, Inc. Route search method and apparatus for navigation system utilizing map data of XML format
EP2375364A1 (de) 2010-04-12 2011-10-12 Karlsruher Institut für Technologie Verfahren und System für zeitabhängiges Routing
US8583363B2 (en) 2010-05-26 2013-11-12 Microsoft Corporation Determining alternative routes
WO2012078755A2 (en) 2010-12-07 2012-06-14 Google Inc. Method and apparatus of route guidance
US20130144524A1 (en) 2011-03-31 2013-06-06 Microsoft Corporation Double-hub indexing in location services
US8660789B2 (en) * 2011-05-03 2014-02-25 University Of Southern California Hierarchical and exact fastest path computation in time-dependent spatial networks
US8566030B1 (en) * 2011-05-03 2013-10-22 University Of Southern California Efficient K-nearest neighbor search in time-dependent spatial networks
US9958280B2 (en) * 2011-08-16 2018-05-01 Inrix, Inc. Assessing inter-modal passenger travel options
US20130132369A1 (en) * 2011-11-17 2013-05-23 Microsoft Corporation Batched shortest path computation
US8688717B2 (en) * 2012-02-16 2014-04-01 Accenture Global Service Limited Method and apparatus for generating and using an interest graph
US8824337B1 (en) * 2012-03-14 2014-09-02 Google Inc. Alternate directions in hierarchical road networks
EP2757504B1 (de) * 2013-01-17 2022-06-01 Google LLC Routenplanung
US9958288B2 (en) * 2013-03-14 2018-05-01 Microsoft Technology Licensing, Llc Planning under destination uncertainty
FR3022423B1 (fr) * 2014-06-16 2017-09-29 Bull Sas Methode de routage de donnee et commutateur dans un reseau

Also Published As

Publication number Publication date
US9435658B2 (en) 2016-09-06
WO2015179289A1 (en) 2015-11-26
US9778052B2 (en) 2017-10-03
US10288437B2 (en) 2019-05-14
US20160341560A1 (en) 2016-11-24
US20180045523A1 (en) 2018-02-15
US20150338224A1 (en) 2015-11-26

Similar Documents

Publication Publication Date Title
DE202015009169U1 (de) Routing mit Dantenversionszusammenfügung
DE102020118004A1 (de) Verfahren und vorrichtungen zum kachelförmigen durchlaufen eines tensors für faltungsoperationen
DE102019005423A1 (de) Raum-Zeit-Speicher- bzw. Ablagenetzwerk zum Lokalisieren eines Zielobjektes in Videocontent
DE202015009184U1 (de) Wegbeschreibung zwischen automatisch bestimmten Ausgangspunkten und ausgewählten Zielen
DE102017209346A1 (de) Verfahren und Vorrichtung zur Erstellung einer fahrspurgenauen Straßenkarte
DE102018101465A1 (de) Trainieren eines automatischen ampelerkennungsmoduls unter verwendung simulierter bilder
DE102018130752A1 (de) Sitzempfehlungssysteme und -verfahren für gemeinsam genutzte fahrzeuge
WO2017016799A1 (de) Bestimmung einer anordnungsinformation für ein fahrzeug
DE102015122825A1 (de) Techniken zum Gruppieren von Zielelementen für eine Objektfusion
DE202015009120U1 (de) Integration von Online-Navigationsdaten mit gecachten Navigationsdaten während der aktiven Navigation
DE112014004794T5 (de) Zuteilen von Kartenabgleichaufgaben durch Cluster-Server im Internet der Fahrzeuge
DE112020001400T5 (de) Iterative erzeugung räumlicher graphen
DE202014010949U1 (de) Vorrichtung zur Unterbreitung von Vorschlägen anhand von Favoriten in der Nähe
DE112018002572T5 (de) Verfahren, systeme und vorrichtungen zur optimierung der pipeline-ausführung
DE112018004214T5 (de) Skalierbare Zusammenführung von Raum-Zeit-Dichtedaten
DE202015009117U1 (de) Integration von Online-Navigationsdaten mit gecachten Navigationsdaten während der aktiven Navigation
DE102020108343B4 (de) Anzeigesystem und Head-up Display
DE102018129999A1 (de) Verkehrssteuerung für autonome fahrzeuge
DE102020103906B4 (de) Verfahren und Prozessorschaltung zum Aktualisieren einer digitalen Straßenkarte
DE102016124474A1 (de) Navigations-anwendungsprogrammierungsschnittstelle zum unterbringen einer mehrfachwegpunkte-führung
DE102011003165A1 (de) Kartendatensatz, Navigationsvorrichtung mit Kartendatensatz und Verfahren zum Erzeugen eines Kartendatensatzes
DE202015009139U1 (de) Bildmodifikation
DE102021104454A1 (de) Systeme und verfahren zum bewerten eines mikrotransitdienstes
DE202014010884U1 (de) Anpassen von Abbiegesymbolen im Hinblick auf Straßengeometrie
DE202016008228U1 (de) Navigations-Anwendungsprogrammierungsschnittstelle

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE, INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years