-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung bezieht sich auf Systeme zur Kartenwiedergabe, wie beispielsweise Systeme zur elektronischen Kartenanzeige, und insbesondere auf ein Verfahren und System zum Vorabruf von Kartendaten aus einer entfernten Datenbank.
-
Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind, 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
-
Mit der weit verbreiteten Verwendung von Mobilgeräten, zum Beispiel Mobiltelefonen, PDAs, Tablets usw. ist die Nachfrage der Verbraucher nach schnellen Zugang zu verschiedenen Typen von Daten stark angestiegen. Diese Geräte werden zum Senden, Empfangen und Speichern von Text, Sprache, Bildern und Videodaten verwendet. Verbraucher möchten oft eine große Anzahl von Anwendungen auf diesen Geräten speichern, sodass diese Geräte oftmals mehr wegen der Anzahl an verfügbaren Anwendungen als wegen der internen Prozessorgeschwindigkeit angepriesen werden. Während Verbraucher mittlerweile schnellen Zugang zu Daten wünschen, macht die bloße Menge der zur Ausführung dieser Anwendung erforderlichen Daten die Datenverwaltung zu einem erstrangigen Faktor, der sich sowohl auf der Geräteebene als auch auf der Netzwerkebene bemerkbar macht. Dieser Faktor kann die Effektivität von Anwendungen wie Kartenanwendungen, die normalerweise vergleichsweise große Mengen an Netzwerkdaten erfordern (z. B. für Systeme, die Kartendaten aus einer entfernten Datenbank abrufen) begrenzen
-
Kartenanwendungen finden sich in einer Vielzahl von Mobilgeräten, darunter in Fahrzeugnavigationssystemen, GPS-Handgeräten, Mobiltelefonen und tragbaren Computer. Diese Anwendungen gehören zu den am meisten verwendeten Anwendungen und werden von manchen als notwendig für die persönliche Sicherheit erachtet. Obwohl die zugrunde liegenden digitalen Karten aus Benutzersicht leicht anzuwenden sind, ist das Erstellen einer digitalen Karte ein datenintensiver Prozess. Jede digitale Karte beginnt mit einem Satz von Rohdaten, die Millionen von Straßen und Kreuzungen entsprechen. Diese Rohdatenkarte wird aus einer Vielzahl von Quellen bezogen, von denen jede verschiedene Mengen und Arten von Informationen liefert. Um einen Standort effektiv auf einer Karte zu verzeichnen, eine Fahrstrecke zwischen eine einem Ausgangsort und einem Zielort zu finden, Interessenschwerpunkte zu erkennen usw. sind beträchtliche Mengen von Daten erforderlich. Weiterhin erfordern viele Kartenanwendungen eine Anzeige von verschiedenen Kartendaten auf verschiedenen Zoomstufen, d. h. in verschiedenen Maßstäben, wobei sich Detailumfang und die Art der Details auf jeder Zoomstufe verändern. Zum Beispiel können Kartendaten auf der niedrigsten Zoomstufe, die die am weitesten vom Zielort entfernte Umgebung zeigt, die Grenzen von Kontinenten, Ozeanen und großen Landmassen enthalten. Auf nachfolgenden Zoomstufen können die Kartendaten Länder, Staaten, Siedlungsgebiete, Protektorate und andere wesentliche geographische Regionen zeigen. Auf noch weiter nachfolgenden Zoomstufen können die Kartendaten wichtige Straßen, Städte, Ortschaften enthalten, bis die Kartendaten schließlich kleinere Straßen, Gebäude, ja selbst Gehwege und Wanderwege nach Region zeigen. Der Detailumfang wird von den Informationsquellen bestimmt die zum Aufbau der Kartendaten auf den einzelnen Zoomstufen verwendet wurden. Aber unabhängig von der Zoomstufe ist die Datenmenge riesig und kann in ihrer Gesamtheit allgemein zu groß für das Speichern auf Mobilgeräten und zu groß für ein kontinuierliches Herunterladen über ein drahtloses Kommunikationsnetz sein.
-
Im Betrieb laden Kartenanwendungen Kartendaten normalerweise über ein drahtloses Kommunikationsnetz als Antwort darauf in das Mobilgerät herunter, dass ein Benutzer einen interessierenden Ort eingibt, und/oder auf der Grundlage des aktuellen Standorts des Mobilgeräts, wie zum Beispiel der aktuellen GPS-Daten oder der aktuellen Zellennetz-Standortdaten für das Gerät. Ein herkömmliches Verfahren für das herunterladen von Kartendaten besteht darin, dass das Mobilgerät seine Stand Daten an einen entfernten Prozessor im drahtlosen Kommunikationsnetz mitteilt, der als Antwort alle Kartendaten in das Mobilgerät oder die angeforderten Kartendaten zur Anzeige für den Benutzer herunterlädt.
-
Kartendaten können allgemein in Blöcken, die als Kartendatenkacheln bekannt sind, gespeichert werden, wobei die Anzahl von Kartendatenkacheln mit der Zoomstufe ansteigt. Der entfernte Prozessor liefert eine Teilmenge der verfügbaren Kartendatenkacheln für einen bestimmten Ort oder eine Region zur Speicherung und Anzeige zu einem bestimmten Zeitpunkt über eine Kartenanzeigeanwendung an das Mobilgerät. Durch das Bereitstellen großer Zahlen von Kartendatenkacheln kann das mobile Gerät die Kartendaten zur Anzeige für den Verbraucher zwischen speichern, während der Verbraucher über ein Gebiet scrollt und nach angrenzenden oder anderen Kartenorten sucht. Je größer die Anzahl an Kartendatenkacheln zu einem gegebenen Zeitpunkt ist, desto länger ist die Herunterladezeit und desto höher die Nutzung des Pufferspeichers, während der Benutzer die Kartenanzeigeanwendung verwendet.
-
Kartendatenkacheln können auf uneffektive Weise heruntergeladen und im Cache gespeichert werden, indem kein Ansichtskontext genutzt wird, um Kartendaten höherer Priorität im Vergleich zu solchen mit geringerer Priorität effektiv abzurufen. Ein solcher Ansichtskontext bezieht sich auf Kartendaten in Bezug auf den Vorabruf von Kartendaten für verschiedene Teile einer Route. Der Vorabruf von Daten für die spätere Verwendung ist wichtig in Mobilgeräten, wo eine Verbindung zu einer Kartendatenbank (z. B. über einen Kartendatenbank-Server) bestenfalls in Intervallen möglich sein kann. Da mobile Computergeräte weiterhin im Allgemeinen größere Beschränkungen von Bandbreite und Prozessor aufweisen als zum Beispiel ein Desktop-Computer, ist die Effektivität des Abrufs und der Verarbeitung von Kartendaten in mobilen Anwendungen sogar noch entscheidender. Infolgedessen besteht Bedarf an intelligenteren Mechanismen für das Abrufen (z. B. Herunterladen) und/oder verarbeiten von Kartendaten, insbesondere von Kartendatenkacheln, um die visuellen Anforderungen bei einem in seiner Leistung begrenzten Computer zu erfüllen, ohne Bandbreite und Verarbeitungsleistungen zu vergeuden.
-
ZUSAMMENFASSUNG
-
Ein computerimplementiertes Verfahren für den Vorabruf von Kartendaten für eine Kartenanwendung umfasst das Empfangen von Informationen zu einer Route mit einem Ausgangsort, einem Zielort und einer Menge von Wegen, die Ausgangs- und Zielort miteinander verbinden, und das Festlegen eines ersten, mit dem Ausgangsort verbundenen Kachelradius, eines zweiten, mit dem Zielort verbundenen Kachelradius und eines ersten Satzes von Kartenkachelradien, die mit einer Menge von Punkten entlang der Route zwischen dem Ausgangsort und dem Zielort verbunden sind. Die Menge von Wegen oder Straßen können eine Abfolge haben. Der erste Kachelradius, der zweite Kachelradius und die erste Menge von Kachelradien entsprechen jeweils einem ersten, einem zweiten und einem dritten Satz von Vorabruf-Kartendatenkacheln. Der erste, zweite und dritte Satz von Vorabruf-Kartendaten Kacheln entspricht jeweils Kartenoberflächenbereichen um den Ausgangsort, den Zielort und die Route herum. Das Verfahren greift von einer Kartendatenbank auf die erste, den zweite und die dritte Vorabruf-Kartendatenkachel zu. Die Kartendatenbank speichert die Kartendaten in Form einer Vielzahl von Kartendatenkacheln, wobei die ersten, zweiten und die dritten Vorabruf-Kartendatenkacheln eine Teilmenge der Vielzahl von Kartendatenkacheln darstellen. Das Verfahren speichert weiterhin Vorabruf-Kartendatenkacheln in einem lokalen Speicher auf einem Clientgerät.
-
Ein Computer kann eine Kommunikationsnetzschnittstelle, einen oder mehrere Prozessoren, einen oder mehrere an den einen oder die mehreren Prozessoren gekoppelte(n) Speicher, und eine an den einen oder die mehreren Prozessoren gekoppelte Anzeigevorrichtung umfassen. Der eine oder die mehreren Speicher können darin gespeicherte computerausführbare Anweisungen beinhalten, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu veranlassen, über eine Computerprogrammanwendung Informationen zu einer Route mit einem Ausgangsort, einem Zielort und einer Menge von Wegen, die Ausgangs- und Zielort miteinander verbinden, zu empfangen. Die Anweisungen können einen Prozessor weiterhin dazu veranlassen, einen ersten Satz von Kartenkachelradien, der mit einer Menge von Punkten entlang der Route mit Ausgangs- und Zielort verbunden ist, festzulegen, wobei der erste Satz von Kartenkachelradien einen ersten Satz von Vorabruf-Kartendatenkacheln definiert, die Kartenoberflächenbereichen entlang der Route und die Route einschließend entsprechen. Die Anweisungen können einen Prozessor weiterhin dazu veranlassen, von einer Kartendatenbank aus auf den ersten Satz von der Route entsprechenden Vorabruf-Kartendatenkacheln zuzugreifen. Die Kartendatenbank speichert die Kartendaten als eine Vielzahl von Kartendatenkacheln, wobei der erste Satz von Vorabruf-Kartendatenkacheln eine Teilmenge der Vielzahl von Kartendatenkacheln darstellen kann. Die Anweisungen können einen Prozessor dann dazu veranlassen, den ersten Satz von Vorabruf-Kartendatenkacheln in einem lokalen Speicher auf einem Clientgerät zu speichern.
-
Ein Computer kann eine Kommunikationsnetzschnittstelle, einen oder mehrere Prozessoren, einen oder mehrere an den einen oder die mehreren Prozessoren gekoppelte(n) Speicher, und eine an den einen oder die mehreren Prozessoren gekoppelte Anzeigevorrichtung umfassen. Der eine oder die mehreren Speicher können darin gespeicherte computerausführbare Anweisungen beinhalten, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu veranlassen, über eine Computerprogrammanwendung Informationen zu einer Route mit einem Ausgangsort, einem Zielort und einer Menge von Wegen, die Ausgangs- und Zielort miteinander verbinden, zu empfangen. Die Anweisungen können einen Prozessor weiterhin dazu veranlassen, einen ersten, zweiten und dritten Satz von Vorabruf-Kartendatenkacheln zu bestimmen. Der erste Satz kann Kartenoberflächenbereichen um den Ausgangsort und den Ausgangsort einschließend entsprechen. Der zweite Satz von Vorab-Kartendatenkacheln kann Kartenoberflächenbereichen um den Zielort und den Zielort einschließend entsprechen. Der dritte Satz von Vorab-Kartendatenkacheln kann Kartenoberflächenbereichen um die Route zwischen Ausgangs- und Zielort herum entsprechen. Die Anweisungen können einen Prozessor weiterhin dazu veranlassen, von einer Kartendatenbank aus auf ersten Satz, den zweiten Satz und den dritten Satz von der Route entsprechenden Vorabruf-Kartendatenkacheln zuzugreifen, wobei die Kartendatenbank die Kartendaten als eine Vielzahl von Kartendatenkacheln speichert und der erste Satz von Vorab-Kartendatenkacheln eine Teilmenge der Vielzahl von Kartendatenkacheln umfasst. Die Anweisungen können einen Prozessor dazu veranlassen, den ersten Satz, den zweiten Satz den dritten Satz von Vorabruf-Kartendatenkacheln in einem lokalen Speicher auf einem Clientgerät zu speichern.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Highlevel-Blockdiagramm eines Kartenbildgebungssystems, das Kommunikation zwischen einer in einem Server gespeicherten Kartendatenbank und einem oder mehreren Kartenbildwiedergabegeräten implementiert.
-
2 ist ein Highlevel-Blockschaubild einer Bildwiedergabemaschine, die zum Wiedergeben von Kartenbildern unter Verwendung von Kartenvektordaten verwendet wird.
-
3 zeigt einen Teil der Datenstruktur, die in der Kartendatenbank von 1 verwendet werden kann.
-
4A, 4B und 4C zeigen Beispiele für Wiedergaben von Kartendaten auf jeweils drei verschiedenen Zoomstufen.
-
5 zeigt ein Ansichtsfenster, das eine Route anzeigt.
-
6 zeigt eine Route mit diskreten Bereichen um die Route herum, die Kartendatenkacheln entsprechen.
-
7 zeigt Kartendatenkacheln einschließlich erkannter Vorabruf-Kartendatenkacheln, die einem Kartenkachelradius entsprechen.
-
8 zeigt zwei Punkte 802, 804 entlang einem Routensegment 810 (z. B. einem Straßensegment) mit entsprechenden Kachelradien 810.
-
9 zeigt einen Prozessablauf für das Bestimmen von Vorabruf-Kartendatenkacheln mit Kachelradien.
-
10 zeigt einen Kartendaten entsprechenden Bereich, der eine bestimmte Route umgibt.
-
11A zeigt eine Kartenanzeige einer Route, die einen speziellen Interessenschwerpunkt auf der Route zwischen einem Ausgangsort und einem Zielort aufweist.
-
11B zeigt eine Kartenanzeige einer Route mit einem versetzt zur Route liegenden Interessenschwerpunkt.
-
12 zeigt Kartendatenkacheln einschließlich erkannter Vorabruf-Kartendatenkacheln für zwei verschiedene Zoomstufen.
-
13 zeigt einen Prozessablauf zum Bestimmen einer Abfolge des Zugriffs auf Sätze von Kartendatenkacheln, die vorab abgerufen sein können.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die vorliegende Anwendung betrifft allgemein das Vorabrufen von Kartendaten aus einer Kartendatenbank. Das Vorabrufen von Kartendaten kann sich auf den Zugriff auf/Abruf von Kartendaten durch eine Anwendung oder ein Gerät, bevor die Kartendaten für den unmittelbaren Gebrauch erforderlich sind, beziehen. In einer Ausführungsform können Kartendaten vor der Aktivierung einer Funktion, die die vorab abgerufenen Daten verwendet, vorab abgerufen werden. Zum Beispiel kann ein Computer auf Kartendaten aus einer Kartendatenbank zugreifen und/oder diese abrufen, bevor ein Benutzer eine Funktion aktiviert oder ausführt (z. B. eine Anzeige- oder Wiedergabefunktion), um diese Kartendaten zu nutzen. Ein Vorteil des Vorabrufs der Kartendaten liegt darin, dass in Zeiträumen, in denen eine Kartendaten Bank nicht verfügbar ist (z. B. wenn ein mobiles Computergerät offline ist) die vorab abgerufenen Kartendaten für eine Kartenanwendung oder ein Computergerät zur Bereitstellung von Diensten oder Funktionen wie dem Anzeigen einer vorab abgerufenen Route zur Verfügung stehen. Allgemein umfasst eine Route zwei Endpunkte (z. B. Ausgangs- und Zielort) und eine Menge von Wegen oder Straßen, die die beiden Endpunkte verbinden. Die Menge von Wegen oder Straßen können eine Abfolge haben. Die Abfolge kann auch einer Fahrtrichtung entsprechen. Routen und Routentypen werden unten ausführlicher beschrieben.
-
Genauer gesagt beschreibt die vorliegende Anwendung Methoden zum Anholen von Kartendaten als ausgewählte Teilmenge der gesamten verfügbaren Kartendaten, indem Kartendatenkacheln entsprechend einem die Route umgebenden Gebiet ausgewählt werden. Die Menge der Kartendaten, auf die zugegriffen wird, kann anhand einer Priorität von Punkten entlang der Route angepasst werden. In einer beispielhaften Implementierung können größere Mengen von Kartendaten für Endpunkte der Route (die Ausgangs- und Zielort darstellen) eingeholt oder abgerufen werden als für Punkte in der Mitte der Route Um zu bestimmen, welche Kartendaten einem Bereich um die Route herum entsprechen, kann ein Satz von Kartenkachelradien zur Bezeichnung von zu berücksichtigenden Kartendatenkacheln verwendet werden, die Bereichen einer Kartenoberfläche entlang der Route entsprechen.
-
In Bezug auf 1 umfasst ein kartenbezogenes Bildgebungssystem 10 gemäß einer Ausführungsform eine in einem Speicher 14 oder in mehreren Servern, beispielsweise an einem zentralen Ort oder an mehreren unterschiedlichen voneinander beabstandeten Orten vorhandenen Servern, gespeicherte Kartendatenbank 12 und des Weiteren mehrere Karten-Clientgeräte 16, 18, 20 und 22, von denen jedes ein Kartenwiedergabegerät oder eine Kartenwiedergabemaschine speichert und implementiert. Die Karten-Clientgeräte 16–22 können über ein beliebiges verdrahtetes oder drahtloses Datenübertragungsnetz 25, unter anderem beispielsweise einem verdrahteten oder drahtlosen lokalen Netz (LAN), Metropolitan Area Network (MAN) oder Weitverkehrsnetz (WAN), dem Internet oder einer beliebigen Kombination davon, mit einem Server 14 verbunden sein. Bei den Karten-Clientgeräten 16–22 kann es sich beispielsweise um Mobiltelefongeräte (18), Computer wie beispielsweise ein Laptop, Desktop oder andere Arten von Computer (16, 20) oder Komponenten von anderen Bildgebungssystemen wie beispielsweise Komponenten von Automobilnavigationssystemen (22) usw. handeln. Des Weiteren können die Clientgeräte 16–22 kommunikativ mittels eines geeigneten Kommunikationssystems wie beispielsweise einem beliebigen öffentlich verfügbaren und/oder in Privatbesitz befindlichen Kommunikationsnetz, unter anderem jene, die eine fest verdrahtete Kommunikationsstruktur wie beispielsweise Telefon und Kabel-Hardware und/oder eine drahtlose Kommunikationsstruktur, wie beispielsweise drahtlose Kommunikationsnetze, unter anderem beispielsweise drahtlose LANs und WANs, Satelliten- und Mobiltelefonkommunikationssysteme usw. verwenden, mit dem Server 14 verbunden sein.
-
Die Kartendatenbank 12 kann beliebige gewünschte Typen oder Arten von Kartendaten, unter anderem Rasterbildkartendaten und Vektorbildkartendaten speichern. Die hierin beschriebenen Bildwiedergabesysteme können jedoch in manchen Ausführungsformen für die Verwendung mit Vektorbilddaten optimiert sein, die eine Reihe von Vertices oder Vertexdatenpunkten für jedes einer Vielzahl von Sätzen von Bildobjekten, Elementen oder Primitiven innerhalb eines anzuzeigenden Bildes definieren oder beinhalten. Allgemein weist jedes der von den Vektordaten definierten Bildobjekte eine Vielzahl von zu ihnen gehörenden Vertices auf, und diese Vertices werden zum Anzeigen eines kartenbezogenen Bildobjektes für einen Benutzer über eines oder mehrere der Clientgeräte 16–22 verwendet.
-
Es versteht sich auch, dass jedes der Clientgeräte 16–22 eine Bildwiedergabemaschine mit einem oder mehreren Prozessoren 30, einem oder mehreren Speichern 32, einem Anzeigegerät 34 und oftmals einer Rastereinrichtung oder Grafikkarte 36, die allgemein auf bekannte Weisen programmiert und miteinander verbunden sind, umfasst, um Grafiken (Bilder) auf dem zugehörigen Anzeigegerät 34 zu implementieren oder wiederzugeben. Beim Anzeigegerät 34 kann es sich für ein beliebiges bestimmtes Clientgerät 16–22 um einen beliebigen Typ von elektronischem Anzeigegerät, wie beispielsweise eine Flüssigkeitskristallanzeige (LCD), eine Leuchtdiodenanzeige (LED), eine Plasmaanzeige, eine Kathodenstrahlröhren-Anzeige (CRT), oder einen beliebigen anderen Typ einer bekannten oder geeigneten elektronischen Anzeige handeln.
-
Allgemein ist das kartenbezogene Bildgebungssystem 10 von 1 so eingerichtet, dass ein Benutzer an einem der Clientgeräte 16–22 eine Kartenanwendung (in 1 nicht dargestellt) öffnet oder ausführt, die so eingerichtet ist, dass sie mit der Kartendatenbank 12 über den Server 14 kommuniziert und Karteninformationen oder kartenbezogene Daten von ihr bezieht und anschließend ein Kartenbild auf der Grundlage der empfangenen Kartendaten anzeigt oder wiedergibt. Mit der Kartenanwendung kann der Benutzer verschiedene geographische Abschnitte der in der Kartendatenbank 12 gespeicherten Kartendaten anzeigen, einen bestimmten geographischen Ort vergrößern oder verkleinern, den zwei- oder dreidimensionalen Betrachtungswinkel der angezeigten Karten drehen, herumdrehen oder ändern usw. Insbesondere lädt beim Wiedergeben eines Kartenbildes auf einem Anzeigegerät oder einem Anzeigebildschirm 34 unter Verwendung des nachstehend beschriebenen Systems jedes der Clientgeräte 16–22 Kartendaten in Form von Vektordaten aus der Kartendatenbank 12 herunter und verarbeitet diese Vektordaten unter Verwendung von einem oder mehreren Bild-Shadern, um ein Bild auf einem zugehörigen Anzeigegerät 34 wiederzugeben.
-
Unter jetziger Bezugnahme auf 2 wird ein Bilderzeugungs- oder Bildwiedergabegerät 40, das mit einem der Clientgeräte 16–22 assoziiert ist oder von ihm implementiert wird, genauer dargestellt. Das Bildwiedergabesystem 40 von 2 umfasst zwei Prozessoren 30a und 30b, zwei Speicher 32a und 32b, eine Benutzerschnittstelle 34 und eine Rastereinrichtung 36. In diesem Fall sind der Prozessor 30b, der Speicher 32b und die Rastereinrichtung 36 auf einer separaten Grafikkarte (unterhalb der horizontalen Linie dargestellt) angeordnet, obgleich dies nicht in allen Ausführungsformen der Fall sein muss. So kann beispielsweise in anderen Ausführungsformen ein einzelner Prozessor verwendet werden. Das Bildwiedergabesystem 40 kann des Weiteren eine Netzwerkschnittstelle 42, eine Kommunikations- und Speicherroutine 43 und eine oder mehrere Kartenanwendungen 48 mit einer darin auf dem Speicher 32a gespeicherten Kartenanzeigelogik, die auf dem Prozessor 30a ausgeführt werden kann, umfassen. Auf gleiche Weise werden ein oder mehrere Bild-Shader, beispielsweise in Form von Vertex-Shadern 44 und Fragment-Shadern 46, auf dem Speicher 32b gespeichert und auf dem Prozessor 30b ausgeführt. Die Speicher 32a und 32b können einen flüchtigen und/oder einen nichtflüchtigen Speichers umfassen, und die Routinen und Shader werden auf den Prozessoren 30a und 30b ausgeführt, um die nachstehend beschriebene Funktionalität bereitzustellen. Die Netzwerkschnittstelle 42 kann beliebige gut bekannte Software- und/oder Hardwarekomponenten umfassen, die eingerichtet sind, um mit beispielsweise dem Server 14 von 1 über ein verdrahtetes oder drahtloses Kommunikationsnetzwerk zu kommunizieren, um Bilddaten in Form von Vektordaten zur Verwendung beim Erzeugen einer Bildanzeige auf der Benutzerschnittstelle oder dem Anzeigegerät 34 zu beziehen. Das Bildwiedergabegerät 40 kann auch einen Datenspeicher 49 umfassen, bei dem es sich zum Beispiel um einen Pufferspeicher oder einen flüchtigen Speicher handeln kann, der die von der Kartendatenbank 12 erhaltenen Vektordaten speichert, welche eine beliebige Anzahl an Vertex-Datenpunkten und eine oder mehrere Nachschlagetabellen umfassen, wie noch genauer beschrieben wird.
-
Während des Betriebs kann die Kartenlogik der Kartenanwendung 48 auf dem Prozessor 30 ausgeführt werden, um die bestimmten Bilddaten zu bestimmen, die zum Anzeigen über das Anzeigegerät 34 für einen Benutzer beispielsweise unter Verwendung von Benutzereingabe, GPS-Signalen, einer vorab gespeicherten Logik oder Programmierung usw. benötigt werden. Die Anzeige oder Kartenlogik der Anwendung 48 interagiert mit der Kartendatenbank 12 mithilfe der Kommunikationsroutine 43, durch Kommunikation mit dem Server 14 über die Netzwerkschnittstelle 42, um Kartendaten, vorzugsweise in Form von Vektordaten oder komprimierten Vektordaten von der Kartendatenbank 12 zu beziehen. Diese Vektordaten können über die Netzwerkschnittstelle 42 zurückgeführt und von der Routine 43 dekomprimiert und im Datenspeicher 49 gespeichert werden. Insbesondere kann es sich bei den von der Kartendatenbank 12 heruntergeladenen Daten um eine kompakte, strukturierte oder anderweitig optimierte Version der zuletzt zu verwendenden Vektordaten handeln, und die Kartenanwendung 48 kann so eingerichtet sein, dass sie die heruntergeladenen Vektordaten unter Verwendung des Prozessors 30a in spezielle Vertexdatenpunkte umwandelt. In einer Ausführungsform können die vom Server 14 gesendeten Vektordaten allgemeine Definitionsdaten für jede mit einer Anzahl von verschiedenen auf dem Bildschirm 34 anzuzeigenden Bildelementen oder Bildobjekten assoziierte Menge von Vertices und möglicherweise eine oder mehrere Nachschlagetabellen umfassen. Wenn gewünscht, können die Nachschlagetabellen von der Kartenanwendung 48 in Form von Vektortexturkarten, die bekannte Datendateitypen zur Definition einer bzw. eines bestimmten, als Teil eines mit Vektorgrafik erzeugten Bildes anzuzeigenden Textur oder Farbfeldes (Pixelwerte) sind, gesendet oder decodiert oder generiert werden. Insbesondere können die Vektordaten für jedes Bildelement oder Bildobjekt eine Vielzahl von Vertices umfassen, die zu einem oder mehreren Dreiecken gehören, die das bestimmte Element oder Objekt eines Bildes bilden. Jedes solche Dreieck umfasst drei Vertices (durch Vertexdatenpunkte definiert), und jeder Vertexdatenpunkt weist zu ihm gehörende Vertexdaten auf. In einer Ausführungsform umfasst jeder Vertex-Datenpunkt Standortdaten, die eine(n) zweidimensionale(n) oder eine(n) dreidimensionale(n) Position oder Standort des Vertex in einem Bezug oder virtuellen Raum sowie einen Attributbezug definieren. Jeder Vertexdatenpunkt kann zusätzlich weitere Informationen, wie beispielsweise eine Objekttypkennung, umfassen, die den Typ von Bildobjekt identifiziert, zum der Vertexdatenpunkt gehört. Der Attributbezug, der hierin als Stilbezug oder Merkmalsbezug bezeichnet wird, bezieht sich oder weist auf einen Standort oder eine Menge von Standorten in einer oder mehreren in den Datenspeicher 43 heruntergeladenen und dort gespeicherten Nachschlagetabellen.
-
Im Allgemeinen können Kartendaten in der Kartendatenbank 12 für eine bestimmte geographische Region in unterschiedlichen Zoomstufen gespeichert werden, wobei jede Zoomstufe aus einer Vielzahl von Kartendatenblöcken besteht, die als Kartendatenkacheln bezeichnet werden und die in einer Ausführungsform dazu verwendet werden können, eine visuelle Anzeige der Karte oder Kartenoberfläche in verschiedenen Detaillierungsgraden zu konstruieren. 3 zeigt eine beispielhafte Datenstruktur 200, die in der Kartendatenbank 12 verwendet werden kann. Die Kartendaten für eine bestimmte geographische Region können in zahlreichen (n) verschiedenen Zoomstufen-Datenstrukturen (von denen nur drei dargestellt sind) 202A, 202B und 202C gespeichert werden, wobei jede Datenstruktur durch eine Vielzahl von Kartendatenkacheln gebildet wird. Die Datenstruktur 202B, die die einzige für Erklärungszwecke nummerierte Struktur ist, zeigt die Kartendaten für die bestimmte oder feste geographische Region auf Zoomstufe z = 2, die aus 18 Kartendatenkacheln 204A bis 204R gebildet wird. Die Kartendatenkacheln können die Grundbausteine für den Aufbau einer Kartenanzeige darstellen. Jede Kartendatenkachel kann notwendige Kartendaten für den Aufbau eines Teils der Kartenanzeige (z. B. eine Kartenoberfläche) enthalten, darunter Daten, die verschiedene Kartenobjekte oder Kartenmerkmale wie Straßen, Gebäude und geographische Grenzen wie Wasserlinien, Bezirksgrenzen, Stadtgrenzen, Grenzen von Bundesstaaten, Berge, Parks usw. angeben. Die Kartendaten für eine geographische Region können in einer beliebigen Anzahl von verschiedenen Zoomstufen-Datenstrukturen gespeichert werden, um unterschiedliche Detaillierungsgrade für die jeweilige geographische Region anzubieten. In einer Ausführungsform können neunzehn Zoomstufen insgesamt in der Kartendatenbank 12 gespeichert werden.
-
Die Anzahl an Kacheln für eine feste geographische Region in den einzelnen Zoomstufen kann sich mit steigender Zoomstufenzahl z. B. linear, quadratisch, exponentiell oder auf andere Weise erhöhen. Die Zoomstufen in dem dargestellten Beispiel (z = 1, 2 und 5) haben jeweils 6, 18 und 60 Kartendatenkacheln, die die gleiche geographische Fläche oder Region abdecken. Da sich die Anzahl an Kartendatenkacheln für das gleiche Gebiet mit steigender Zoomstufe erhöhen kann, kann die Zoomstufe als Dichte von Kartendaten, die einer Anzahl an Kacheln pro Flächeneinheit entspricht, eingesehen werden. Höhere Zoomstufen erfordern allgemein mehr Kacheln pro Flächeneinheit und bieten damit eine höhere Kartendaten Dichte gegenüber niedrigeren Zoomstufen.
-
In der dargestellten Ausführungsform werden alle Kartendaten in Kartendatenkacheln gespeichert, und jede Kartendatenkachel in einer Zoomstufen-Datenstruktur kann der gleichen oder einer ähnlichen Speicherzuordnungsgröße zugewiesen werden. Zum Beispiel kann jede Kachel 204A bis 204R ein Bitmap-Bild mit einer Größe von 10 kB sein. Dies kann zum Beispiel erreicht werden, indem jede Kartendatenkachel ein geographisches Gebiet von gleicher Größe abdeckt. Bei Kartendatenkacheln mit Vektordaten kann die Datengröße bei den einzelnen Kacheln variieren, doch kann jeder Kachel in manchen Ausführungsformen dennoch der gleiche maximale Speicherplatz zugewiesen sein. Obwohl nicht dargestellt, können die Datenkacheln in anderen Ausführungsformen andere Speicherplatzzuweisungen in den einzelnen Zoomstufe-Datenstrukturen haben. In manchen Ausführungsformen kann jede Kartendatenkachel in einem Bitmap-Format gespeicherte Kartendaten enthalten, während in anderen Ausführungsformen jede Kartendatenkachel in einem Vektorformat gespeicherte Kartendaten enthalten kann.
-
4A–4C zeigen Kartenanzeigen, die z. B. ganz oder teilweise auf der Benutzerschnittstelle 34 angezeigt werden können, wobei jede Figur die Anzeige einer Kartenoberfläche auf einer anderen Zoomstufe anbieten kann. In den dargestellten Ausführungsformen bietet 4A eine Kartenanzeige 300 auf einer Beispiel-Zoomstufe z = 6, aufgebaut aus einer Reihe von Kartendatenkacheln 302–318, die ein geographisches Gebiet der gleichen Größe abdecken und denen die gleiche Menge an Speicherplatz zugewiesen ist.
-
Im Betrieb kann der Server 14 für die Übertragung von Kartendaten an entsprechende Clientgeräte 16–22 in von diesen Kartendatenkacheln definierten Datenblöcken ausgelegt sein. Um zum Beispiel die für den Aufbau einer Kartenanzeige 300 benötigten Kartendaten zu übertragen, kann der Server 14 jede Kartendatenkachel in einem Rahmen übertragen, dessen Header-Teil Identifizierungsdaten für den Rahmen (wie die geographische Position, die Adresse des kleinen Geräts, Versionsnummer der Kartendatenkacheln usw.) angibt und dessen Nutzdatenteil die speziellen Kartendatenkacheldaten enthält, mit denen die Anzeige gebildet werden soll. Kartendatenkacheln können einen effektiven Mechanismus zur Quantisierung der in der Krankendatenbank 12 gespeicherten Kartendaten und zur Quantisierung der Übertragung der Kartendaten über das Netzwerk 25 an die Clientgeräte 16–22 bieten.
-
Im Vergleich zu 4A zeigt 4B eine Kartenanzeige 400 auf einer höheren Zoomstufe als der in 4A, in diesem Beispiel die Zoomstufe z = 10. Die Kartenanzeige 400 kann aus einer Vielzahl von Kartendatenkacheln 402–432 gebildet werden. Wie die Kartendatenkacheln 302–318 sind auch die Kartendatenkacheln 402–432 von gleicher Größe, z. B. decken ein geographisches Gebiet der gleichen Größe ab und nehmen den gleichen Speicherplatz ein. 4C zeigt eine weitere Kartenanzeige 480 auf einer dritten, noch höheren Zoomstufe, der Zoomstufe z = 12, gebildet aus Kartendatenkacheln.
-
Jede der Anzeigen 300, 400 und 480 kann einen Teil der gesamten Kartendaten, die viel mehr Kartendatenkacheln umfassen, darstellen. Wie in 4A–4C dargestellt, haben die Kartendatenkacheln, die die einzelnen Kartenanzeigen bilden, verschiedene Detaillierungsgrade. Die Kacheln 302–318 können geographische Grenzen darstellen, aber keine Straßen, nur Fernstraßen und/oder Autobahnen, während die Kacheln von 4C in einer höheren Zoomstufe vorliegen und Informationen zu Straßen, Gebäuden, Parks, Endpunkten usw. enthalten können.
-
Wenn ein Benutzer die Kartenanzeigen 300, 400 und 480 verwendet, kann der Benutzer vielleicht scrollen wollen, um andere Kartendaten (die anderen geographischen Gebieten entsprechen) in der Nähe der dargestellten Kartendaten anzuzeigen. Daher können die Clientgeräte 16–22 ein System zum Abrufen und Speichern einer ausreichenden Menge von Kartendaten zur Bildung der Kartenanzeige verwenden, während sie zusätzliche Kartendaten in einem der lokalen Kleingeräte 16–22 Puffer, um eine effiziente Interaktion des Benutzers mit der Anzeige zu gestatten.
-
5 zeigt ein Ansichtsfenster 500, das eine Route 501 anzeigt. Die Route kann auf eine Kartenoberfläche oder einen Kartenbereich projiziert werden. Im Allgemeinen kann die Route 501 einen Ausgangsort 502, einen Zielort 504 und eine Menge von Fernstraßen, Straßen, Wegen, Segmenten usw. 506 enthalten, die zusammen den Ausgangsort 502 mit dem Zielort 504 verbinden. Eine Menge in der hier verwendeten Bedeutung umfasst ein oder mehrere Elemente. Die Menge von Fernstraßen kann als Abfolge von Fernstraßen geordnet sein. Die Route 501 kann eine Richtung haben, die auch durch die Abfolge der Menge von Fernstraßen angegeben wird. Die Route 501 kann auf mehrerlei Weise bestimmt werden. Zum Beispiel kann ein Benutzer einen Ausgangsort und einen Zielort angeben (z. B. kann der Benutzer zwei Adressen eingeben), und eine Kartenanwendung kann mit Daten aus einer Kartendatenbank eine Menge von Straßen bestimmen, die die beiden Punkte oder Standorte einander verbinden, und so eine Route bilden. In manchen Fällen kann die Kartenanwendung eine Vielzahl von Ausgangs- und Zielort verbindenden Routen ermitteln, wobei ein Benutzer die Möglichkeit zur Auswahl oder Angabe mindestens einer der möglichen Routen für die Verarbeitung hat. Alternativ dazu kann der Benutzer der Kartenanwendung eine Route einschließlich eines Ausgangsorts, eines Zielorts und einer Sammlung von Ausgangs- und Zielort verbindenden Wegen (z. B. Fernstraßen) angeben.
-
In einer Ausführungsform der hierin beschriebenen Methoden kann auf eine Kartendatenbank, zum Beispiel die Kartendatenbank 12, zugegriffen werden, um Kartendaten (z. B. Kartendatenkacheln) vorab einzuholen oder abzurufen, die einem eine bestimmte Route umgebenden Kartengebiet entsprechen. In einer anderen Ausführungsform können Kartendaten vorabgerufen werden, um eine oder mehrere Routen zu generieren. Die zum Generieren einer Route verwendeten Kartendaten können in den gleichen Kartendatenkacheln enthalten sein, mit denen Informationen für das Anzeigen einer Route bereitgestellt werden. In einer anderen Ausführungsform können die zum Generieren einer Route verwendeten Daten in Kartendatenkacheln enthalten sein, die von den Kartendatenkacheln zur Wiedergabe der Route getrennt sind. In einer anderen Ausführungsform können die zum Generieren einer Route verwendeten Daten in einer von den Kartendatenkacheln verschiedenen Datenform enthalten sein. Der Vorabruf umfasst allgemein das Aktivieren eines Abrufs von Kartendaten, bevor die Daten zur Verarbeitung benötigt werden. Zum Beispiel kann der Vorabruf das Abrufen von Kartendaten bedeuten, bevor eine Wiedergabe- oder Anzeigefunktion aktiviert wird, die diese Kartendaten nutzt. Der Vorabruf kann auch das Speichern von Kartendaten in einem lokalen Speicher für den schnelleren Abruf gegenüber einer Kartendatenbank umfassen. Zum Beispiel können die Zugriffsgeschwindigkeit auf den lokalen Speicher schneller als die Zugriffsgeschwindigkeit auf die Kartendaten Bank sein (z. B. wegen der intermittierenden Verbindung, Verbindungsbandbreite usw.). In Situationen, in denen ein Mobilgerät nur hin und wieder Zugriff auf den Server 14 über das Netzwerk 25 hat, kann der Vorabruf das Planen des Zugriffs und Abrufs von Kartendaten umfassen, wenn das Clientgerät eine Verbindung zum Server 14 herstellen kann, unabhängig davon, ob das Mobilgerät/der Benutzer den Zugriff auf diese Daten überhaupt angefordert hat (z. B. über eine Anforderung oder Funktion zur Wiedergabe von Kartendaten, die den vorabgerufenen Daten entsprechen).
-
6 zeigt die Route 501 von 5 mit um die Route herum angeordneten quadratischen Gebieten 510. Es ist zu beachten, dass der Begriff „um ... herum” in Bezug auf einen Ort oder Punkt den Ort oder Punkt einschließt. Somit umfasst „um den Zielort herum” einen Bereich, der an den Zielort angrenzt, sowie den Zielort selbst. Die Quadrate 510 können diskrete Bereiche der Karte sein, die diskreten Einheiten von Kartendaten entsprechen. In Bezug auf die oben beschriebenen Kartendatenkacheln kann jedes quadratische Gebiet 510 Kartendatenkacheln für eine bestimmte Zoomstufe darstellen oder ihnen entsprechen. Die Gebiete 510 können nur eine Teilmenge der Gesamtmenge von verfügbaren oder abrufbaren Kartendatenkacheln darstellen. Wenn zum Beispiel Kartendatenkacheln allgemein für das gesamte Ansichtsfenster 600 existieren können, sind die von den Gebieten 510 dargestellten Kartendatenkacheln nur ein Bruchteil der gesamten Menge an Kartendatenkacheln für das Ansichtsfenster.
-
6 zeigt, dass auf einer bestimmten Zoomstufe eine Mindestmenge von Kartendaten zum Anzeigen einer Route mindestens eine Menge von Kartendatenkacheln umfassen kann, die einem Gebiet entspricht, das jeden Punkt auf der Route umgibt. In einer Ausführungsform kann eine Mindestmenge von Kartendaten für eine Route vorab angeholt oder abgerufen werden, indem über eine Kartendatenbank auf die den Gebieten 510 in 6 entsprechenden Kartendatenkacheln zugegriffen wird. Zum Beispiel kann eines der Geräte des Systems 10 Anweisungen umfassen, die bei Ausführung durch einen Prozessor festlegen, ob ein Punkt auf einer Route in eine Kartendatenkachel eingeschlossen ist und Kartendatenkacheln bestimmen oder erkennen, die die Mindestanzahl von die Route umgebenden Kartendatenkacheln darstellen.
-
Ein größeres Gebiet um die Route herum kann für die Wiedergabe von manchen Situationen einer Kartenanwendung bevorzugt sein. Allgemein kann das Verfahren und System eine Teilmenge von Kartendatenkacheln für ein die Route umgebendes Gebiet (z. B. die Route von 5–9) festlegen, indem es einen Kachelradius von Punkten entlang der Route einschließlich eines Ausgangsorts und eines Zielorts bestimmt. 7 veranschaulicht ein Beispiel für eine Kartenanzeige 700, die einen Teil der in der Kartendatenbank 12 gespeicherten verfügbaren Kartendaten auf einer ersten (beliebigen) Zoomstufe zeigt. Ein Interessenschwerpunkt 704 wird mit einem zugewiesenen Kartenkachelradius 754 dargestellt Der Kartenkachelradius 754 ist ein radialer Abstand vom Interessenschwerpunkt 704 zur Erkennung von Kacheln, die aus der Kartendatenbank 12 angeholt werden müssen. Der Kachelradius 754 erstreckt sich in 7 vom Interessenschwerpunkt 704 zur Angabe einer Vielzahl von mit dem Interessenschwerpunkt verbundenen Kartendatenkacheln, die innerhalb des Umfangs der vom Kachelradius R angegebenen Region 756 angeordnet sind. In der dargestellten Ausführungsform definiert diese Region 756 die Menge von vorabgerufenen Kartendatenkacheln, die zum Beispiel in der Kartendatenbank 12 angegeben und zu einem der Clientgeräte 16–22 gesendet werden müssen. In einem Beispiel liegen Kartendatenkacheln, die sich auch nur teilweise mit der Umfangsregion 756 überschneiden, innerhalb der Menge der vorabgerufenen Kartendatenkacheln. Diese Kacheln sind in 7 schattiert dargestellt.
-
8 zeigt zwei Punkte 802, 804 entlang einem Routensegment 810 (z. B. einem Straßensegment) mit entsprechenden Kachelradien 810. Die schattierten Bereiche von 8 stellen Kartendatenkacheln dar, die für das Routensegment 810 auf der Basis der Radien 802, 804 abgerufen werden können. In 8 können nur wenige Punkte (z. B. Punkte, die durch ein konstantes Intervall voneinander beanstandet sind) entlang der Straße zur Bestimmung von Kartenradien verwendet werden, und die entsprechenden schattierten Gebiete können abgerufen werden. In anderen Ausführungsformen können mehr Punkte zum Definieren von Kartenkachelradien für ein Liniensegment verwendet werden. Während ein Liniensegment, zum Beispiel ein Straßensegment, außerdem eine unendliche Anzahl von Punkten umfassen kann, erfordern Kartenkachelanforderungen nicht unbedingt eine große Anzahl von Anforderungen oder Angaben für Datenkacheln. Stattdessen kann für die gesamte Länge des Liniensegments ein schattiertes interessierendes Gebiet berechnet werden (zum Beispiel mit einer Integralfunktion) und können mit einer einzigen Berechnung alle Kacheln im Radius der Route angegeben werden. Dann können alle entsprechenden Kartendatenkacheln mit einem einzigen Aufruf (z. B. zu einem Zeitpunkt) abgerufen werden.
-
9 zeigt ein Prozessablaufdiagramm oder Flussdiagramm eines Verfahrens, einer Routine oder eines Prozesses 900, mit dem/der Kartendaten für eine Kartenoberfläche wie in 5–6 dargestellt vorabgerufen werden können. Das Verfahren 900 kann einen oder mehrere Blöcke, Module, Routinen oder Funktionen in der Form computerausführbarer Anweisungen beinhalten, die auf einem physisch greifbaren computerlesbaren Medium gespeichert werden und unter Verwendung eines Prozessors des Servers 14 oder der Clientgeräte 16–22) ausgeführt werden. Das Verfahren 900 kann als Modul oder Komponente eines Backend-Geräts (z. B. der Server 14) oder Frontend-Geräts (z. B. die Clientgeräte 16–22) einer Computerumgebung für das hierin beschriebene System oder als Teil eines Moduls außerhalb eines solchen Systems eingebunden sein. Zur leichteren Erklärung wird 9 unter Bezugnahme auf die Figuren beschrieben, das Verfahren 900 kann jedoch selbstverständlich auch mit anderen Objekten und Benutzerschnittstellen verwendet werden. In jedem Fall bestimmt ein Block 902 Routeninformationen, darunter Informationen zu einem Ausgangsort, einem Zielort und einer Menge von Straßen, die Ausgangsort und Zielort verbinden. Diese können als Antwort auf eine oder mehrere Anweisungen, die innerhalb einer Kartenanwendung auf einem der Clientgeräte 16–22 ausgeführt werden, empfangen werden. Der Block 902 kann Kartendaten zum Generieren einer Route auch vorab abrufen. Wie besprochen können diese Kartendaten zum Generieren einer Route die Form von Kartendatenkacheln annehmen, welche die gleichen oder andere Kartendatenkacheln als die zur Wiedergabe einer Route sein können, oder sie können als ganz und gar andere Datenform gespeichert sein. In einer Ausführungsform können die Kartendaten zum generieren einer Route die Form einer eine Route definierenden Liste von Abbiegeanweisungen haben.
-
Ein Block 904 kann einen Satz von Kartenkachelradien für Punkte entlang der Route bestimmen. In einer Ausführungsform kann der Block 904 einen Mindestkachelradius für alle Punkte entlang der Route bestimmen. Der Mindestkartenkachelradius kann zur Aktivierung einer Mindestanzahl von zu wählenden Kartendatenkacheln, die einem die gesamte Route umgebenden Gebiet entsprechen (wie dem von 6) ausgewählt werden. Dieser Mindestkartenkachelradius kann als fester Radius für die gesamte Route angesehen werden. In anderen Ausführungsformen kann der Block 904 auch eine Menge von Kartenkachelradien für Interessenschwerpunkte oder Punkte mit Priorität entlang der Route festlegen. Diese Interessenschwerpunkte können mit größeren Radien als dem Mindestkachelradius festgelegt werden (was unten noch weiter erläutert wird). Wenn die Radien für die Route bestimmt sind, kann ein Block 906 auf eine Kartendatenbank, zum Beispiel die Kartendatenbank 12, zugreifen, um den in Block 904 festgelegten Radien entsprechende Kartendatenkacheln abzurufen. Ein Block 908 kann dann die Kartendatenkacheln entsprechend den in Block 904 festgelegten Radien abrufen und die abgerufenen Kacheln in einem lokalen Speicher eines Clientgeräts 16–22 speichern.
-
In einer Ausführungsform kann einem Punkt entlang der Route ein Prioritätswert zugewiesen werden. Zum Beispiel kann eine Priorität mit einem Flag, einem Attribut oder einer anderen mit einem Punkt auf der Route verbundenen Kennung zugewiesen oder gekennzeichnet werden. Ein Routensegment kann durch eine Menge von Punkten definiert werden, und somit kann das Routensegment (z. B. ein Straßensegment der Route) einer Priorität entsprechen, wenn einer Menge von das Routensegment definierenden Punkten diese Priorität zugewiesen wird. Weiterhin kann ein Prioritätsattribut einfach ein hoher oder niedriger Wert sein (d. h. Priorität oder keine Priorität). In anderen Ausführungsformen kann die Priorität ein Skalenwert zwischen einem hohen und einem niedrigen Wert sein.
-
Das hierin beschriebene Verfahren und System kann über die Schnittstelle 34 einen oder mehrere Interessenschwerpunkte zur Anzeige für den Benutzer festlegen. Die Interessenschwerpunkte können auf der Grundlage einer Benutzereingabe festgelegt werden, zum Beispiel, indem der Benutzer eine Adresse in ein auf der Schnittstelle 34 angebotenes Datenfeld eingibt, oder indem der Benutzer einen durch Interaktion mit der Schnittstelle 34 gefundenen Interessenschwerpunkt auswählt. Im Allgemeinen kann die Priorität eines Punktes entlang der Route eine Wahrscheinlichkeit darstellen oder durch sie bestimmt werden, dass ein Benutzer eine Funktion aktiviert, die auf diesem Punkt entsprechende Kartendaten zugreift. Zum Beispiel kann der Benutzer eine Funktion aktivieren, um einen Teil der Karte mit bestimmten Kartendaten anzuzeigen. Die Wahrscheinlichkeit des Zugriffs kann aufgrund von Messdaten des Systems im Betrieb bestimmt werden, darunter zum Beispiel durch Analyse der durchschnittlichen Anzahl von Malen, die Anweisungen der Kartenanwendung zum Zugriff auf Kartendaten ausgeführt werden.
-
In einer Ausführungsform können Ausgangsort und Zielort standardmäßig als Interessenschwerpunkte mit einer hohen Priorität zugewiesen werden. 10 zeigt einen Bereich 1000, der die festgelegte Route 501 (5) umgibt, wobei es Kartendaten gibt, die einem größeren Gebiet um den Ausgangsort 502 und den Zielort 504 entsprechen, als entlang der Route 506, die den Ausgangsort 502 und den Zielort 504 verbindet. 10 zeigt, dass dem Ausgangsort 502 und Zielort 504 eine höhere Priorität als einer Menge von Punkten entlang der Route 506 zwischen Ausgangspunkt und Zielort zugewiesen werden kann. In diesem Fall werden dem Ausgangsort 502 und dem Zielort 504 größere Kartenkachelradien zugewiesen. Ausgangsort und Zielort können standardmäßig Interessenschwerpunkte darstellen. In diesem Fall wird für die Punkte mit hoher Priorität (Ausgangsort und Zielort) eine größere Menge von Daten abgerufen als für die Punkte mit geringerer Priorität auf der Verbindungsroute.
-
In manchen Ausführungsformen kann der Zielort 504 eine höhere Priorität und somit mehr einem größeren Gebiet entsprechende Kartendaten als der Ausgangspunkt 502 haben. Dies kann in Situationen gelten, in denen der Benutzer zu einem Zielort reisen möchte und wahrscheinlich mehr Informationen am Zielort (potenziell längere Aufenthaltsdauer) benötigt als am Ausgangsort (potenziell geringere Aufenthaltsdauer, da der Benutzer von dort abreist). Es gibt jedoch manche Situationen, in denen der Ausgangsort eine größere Priorität erfordert und ihm ein größerer Kartenbereich zugewiesen wird. Dies kann zum Beispiel der Fall sein, wenn die Komplexität des Gebiets um den Ausgangsort herum (z. B. nimmt die Komplexität mit der Anzahl an Kreuzungen, Straßen und schwierigem Gelände zu) hoch ist und eine größere Menge von Kartendaten zum Navigieren durch das Gebiet um den Ausgangsort herum benötigt wird.
-
11A stellt ein Ansichtsfenster 1100 auf einer Kartenoberfläche dar, das mehrere Interessenschwerpunkte 502, 504 und 1101 zeigt. 11A zeigt einen speziellen Interessenschwerpunkt 1101 auf der Route 501 zwischen dem Ausgangsort 502 und dem Zielort 504. In dieser Situation kann dem Interessenschwerpunkt 1101 eine höhere Priorität und ein größerer Kachelradius als der ihn umgebenden Route zugewiesen werden. Dieser Interessenschwerpunkt kann eine Stadt, eine Ortschaft oder ein sonstiges Wahrzeichen sein, dem eine hohe Priorität zugewiesen wurde. Einer Vielzahl von Interessenschwerpunkten entlang der Route kann eine hohe Priorität zugewiesen werden, und größere Mengen von Kartendatenkacheln können für diese Interessenschwerpunkte abgerufen werden.
-
11B zeigt ein Ansichtsfenster 1150 der Route 501, in dem ein spezieller Interessenschwerpunkt 1120 um eine gewisse Entfernung versetzt von der Route 501 zwischen dem Ausgangsort 502 und im 504 lokalisiert ist. In dieser Situation kann ein Gebiet 1125 um den Punkt 1120 herum bezeichnet und können die entsprechenden Kartendatenkacheln für das Gebiet 1125 markiert werden. In einer Ausführungsform kann ein Kachelradius für den Interessenschwerpunkt 1120 so bestimmt werden, dass sich ein Umfang des Kachelradius mit dem Kachelradius eines Punktes entlang der Route 501 überschneidet, der dem Interessenschwerpunkt 1120 am nächsten liegt. Dies kann für Interessenschwerpunkte, die sich nahe der Route 501 befinden, komfortabel sein. In einer weiteren Ausführungsform kann das Verfahren und System einen oder mehrere Wege von einem Punkt entlang der Route zum Interessenschwerpunkt 1120, der sich außerhalb der Route befindet, festlegen. Ob ein Weg für den Interessenschwerpunkt 1120 bestimmt wird, kann von einer Entfernung zwischen dem Interessenschwerpunkt 1120 und den Weg 501 abhängen. Zum Beispiel kann ein Weg für eine Route zu einem abseits der Route liegenden Interessenschwerpunkt 1120 festgelegt werden, wenn eine Entfernung zu dem Punkt an oder unter einem Entfernungsgrenzwert liegt, um der Wahrscheinlichkeit gerecht zu werden, dass ein Benutzer eher eine kürzere als eine längere Entfernung von der Route abweichen wird, um zum Punkt 1120 zu reisen.
-
Die Priorität von Punkten entlang der Route kann auf der Grundlage einer Benutzereingabe festgelegt werden, zum Beispiel, indem der Benutzer eine Adresse in ein auf der Schnittstelle 34 angebotenes Datenfeld eingibt, oder indem der Benutzer einen durch Interaktion mit der Schnittstelle 34 gefundenen Interessenschwerpunkt auswählt. Zum Beispiel kann der Kunde einen Web-Browser oder ein anderes auf dem Clientgerät laufendes Programm öffnen, das einen Standort, ein Unternehmen, eine Wohnadresse usw. angibt, von dem aus eines der Kleingeräte 16–22 dem Benutzer gestatten kann, ein solches Element für den Aufbau einer Kartenanzeige der Gegend um einen solchen Interessenschwerpunkt herum auszuwählen.
-
Jede geeignete manuelle Methode zur Eingabe oder sonstigen Angabe eines oder mehrerer Interessenschwerpunkte kann von einem der Clientgeräte 16–22 verwendet werden. Weiterhin kann eine Kartenanwendung auf einem der Clientgeräte 16–22 automatisch Interessenschwerpunkte erkennen, zum Beispiel durch Bestimmen einer GPS-Position des aktuellen Standortes auf einem der Clientgeräte 16–22, durch Bestimmen der zuletzt gesuchten Interessenschwerpunkte, durch Zugreifen auf eine Datenbank mit gespeicherten Interessenschwerpunkten oder durch bestimmen der vor zuletzt besuchten Interessenschwerpunkte (z. B. Städte, Wohngebiete usw.). Natürlich kann die Kartenanwendung in manchen dieser Fälle Standorte bestimmen, für die Kartendaten zum Speichern auf dem Benutzergerät als Hintergrundanwendung und somit ohne eine bestimmte Benutzermitwirkung heruntergeladen werden sollen.
-
Wie bereits angesprochen, können Prozessblöcke 906–908 auf eine Kartendatenbank zugreifen, um eine größere Anzahl von Kartendatenkacheln, die größeren Kartengebieten um Interessenschwerpunkte herum auf einer einzelnen Zoomstufe entsprechen, vorabzurufen. In einer Ausführungsform kann das Verfahren und System anstatt oder neben dem Vorabruf weiterer Kartendatenkacheln auf einer ersten einzelnen Zoomstufe für Punkte mit hoher Priorität Kartendatenkacheln für Punkte mit hoher Priorität auf einer zweiten, höheren Zoomstufe vorabrufen. 12 zeigt die gleiche Route wie 6 mit Gebieten 506, die Kartendatenkacheln von der gleichen Größe wie die Zoomstufe von 6 darstellen. Außerdem zeigt 12 zusätzliche Kartendatenkacheln, die durch Gebiete 1210 auf einer zweiten, höheren Zoomstufe dargestellt werden. Ein Benutzer, der in ein Gebiet um den Ausgangsort 502 oder den Zielort 504 zoomen möchte, kann eine Zoomfunktion des Ansichtsfensters aktivieren. Wenn die Kartendatenkacheln mit höherer Zoomstufe auf eines der Clientgeräte 16–22 vorabgerufen wurden, ist die Reaktionszeit für die Wiedergabe dieser Kartendatenkacheln relativ schnell.
-
Natürlich kann das Verfahren und System zusätzlich zum Abrufen zusätzlicher Kartendatenkacheln auf einer zweiten, höheren Zoomstufe auch Kartendatenkacheln auf einer zweiten, höheren Zoomstufe für ein anderes Gebiet als das der ersten Zoomstufe oder für ein anderes Gebiet in Bezug auf andere Punkte auf der Route mit der zweiten, höheren Zoomstufe abrufen. Das Verfahren und System kann Daten mit höherer Zoomstufe für Punkte entlang der Route mit geringer Priorität (z. B. in der Mitte der Route, ohne einen Interessenschwerpunkt usw.) abrufen oder auch nicht. Ob Kartendaten mit höherer Zoomstufe für Punkte um die Mitte der Route herum abgerufen werden, kann von der Priorität der Punkte entlang der Route abhängen. Wie bereits erwähnt, kann die Priorität eines Punktes auf der Route zum Teil auf einer Bestimmung einer Zugriffswahrscheinlichkeit für diese Kartendaten basieren.
-
Das oben beschriebene Verfahren und System kann nur auf der Grundlage von festgelegten Gebieten, die die festgelegte Route umgeben, eine Teilmenge der verfügbaren oder abrufbaren Kartendatenkacheln abrufen oder verarbeiten oder in einem Cache-Speicher eines Clientgeräts 16–22 speichern. Das Verfahren und System kann eine schnellere Reaktionszeit bieten, wenn antizipierte Kartendaten in einen lokalen Cache-Speicher heruntergeladen werden. Während eine Art der oben diskutierten Priorität auf der Angabe basiert, welche Kartendaten (Gebiet und/oder Zoomstufe Daten um eine Route herum) abzurufen sind, kann ein zweiter Typ von Priorität eine Reihenfolge oder Abfolge angeben, in der die Kartendaten abgerufen werden. Die Reihenfolge des Abrufs von Kartendaten (z. B. Kartendatenkacheln) kann zur Reduzierung von Bandbreite und Prozessorbelastung beitragen. Die Reihenfolge des Abrufens von Kartendaten kann auch gewährleisten, dass wichtigere Kacheln mit höherer Priorität zuerst heruntergeladen werden, falls eine Verbindung zu einem Server mit den Kartendaten während des Abrufens abbricht.
-
13 zeigt einen Prozessablauf zur Festlegung der Reihenfolge, in der Kartendatenkacheln abgerufen werden. Block 1302 kann Sätze von verschiedenen zu empfangenden Kartendaten bestimmen. Die Sätze von Kartendaten können den wie oben erläutert bestimmten Kartendaten entsprechen. Zum Beispiel kann ein erster Satz von Kartendaten dem Gebiet um den Ausgangsort, ein zweiter Satz von Kartendaten dem Gebiet um den Zielort, ein dritter Satz von Kartendaten dem Gebiet entlang des Weges zwischen Ausgangsort und Zielort und ein vierter Satz von Kartendaten einem zusätzlichen Interessenschwerpunkt entsprechen. Zusätzliche Sätze können andere Zoomstufendaten für Teile der Route (z. B. Ausgangsort, Zielort, Straßensegmente und andere Interessenschwerpunkte) umfassen.
-
Ein Block 1304 kann dann eine aktuelle Bedingung des Systems (z. B. einen Ansichtsfensterzustand, eine aktuelle Bandbreite, eine aktuelle Prozessorkapazität usw.) festlegen. Ein Block 1306 kann dann eine Abfolge für den Vorabruf der einzelnen Sätze von in Block 1302 bestimmten Kartendaten festlegen. Die Festlegung von Block 1306 kann auf der Grundlage der in Block 1304 festgelegten Bedingung ausgeführt werden. Die in Block 1306 festgelegte Reihenfolge kann eine feste Standardreihenfolge sein, die auf einer wahrscheinlichen Zugriffsreihenfolge durch einen Benutzer basiert. Dies kann der Fall sein, wenn Block 1304 eine Standardbedingung angibt. Bei Block 1308 kann auf eine Kartendatenbank in der durch Block 1307 für die einzelnen Sätze von Kartendatenkacheln des Blocks 1302 festgelegten Abfolge zugegriffen werden. Bei Block 1310 können die betreffenden Kartendaten dann abgerufen und/oder in einem lokalen Speicher für den schnellen Zugriff abgelegt werden, wenn ein Benutzer oder die Kartenanwendung eine Zugriffs- oder Verarbeitungsfunktion aktiviert, die die Kartendaten erfordert.
-
Eine allgemeine Abfolge kann das Abrufen von Kartendaten für einen Zielort, einen Ausgangsort, zusätzliche Interessenschwerpunkte entlang der Route und schließlich Verbindungssegmente (Straßensegmente) zu verschiedenen Interessenschwerpunkten abseits der Route umfassen. Eine weitere Abfolge kann mit einem Überblickssatz von Kartendaten, der eine Mindestmenge von Kartenkacheldaten für eine Zoomstufe und eine Ansichtsfensterposition umfasst, bei der Ausgangsort und Zielort in dem gleichen Bildschirm (wie dem von 5) anzeigbar sind. Eine weitere Abfolge kann Kartendaten zum Überblickssatz auf einer ersten Zoomstufe, Kartendaten von Ausgangsort und Zielort auf einer höheren Zoomstufe, dann Straßensegmenten entsprechende Kartendaten auf der ersten Zoomstufe umfassen. In noch einer weiteren Abfolge können die Ausgangsortdaten den Zielortdaten vorausgehen, wenn dem Ausgangsort eine höhere Priorität zugewiesen ist. Dies kann der Fall sein, wenn ein Ausgangsort eine komplizierte Verkehrssituation enthält. In einem weiteren Fall können Zusatzinformationen zu einer aktuellen Benutzerposition (z. B. über ein GPS-Positionssignal) den Benutzer auf eine vom Ausgangsort entfernte Route platzieren. In anderen Situationen können Kartendaten für Interessenschwerpunkte entlang der Route eine höhere Priorität als der Ausgangsort haben. Natürlich sind andere Abfolgen möglich und liegen im Funktionsumfang der hierin beschriebenen Methoden.
-
In einer Ausführungsform kann sowohl auf die Abfolge als auch auf das Gebiet von Kartendatenkacheln auf der Grundlage eines Zustands des Ansichtsfensters zugegriffen oder diese vorabgerufen werden. Insbesondere kann auf Kartendatenkacheln anhand einer Ansichtsfensterposition zugegriffen werden. Die Ansichtsfensterposition kann in der Nähe eines bestimmten Punktes entlang der Route zentriert sein. Mit der Veränderung der Ansichtsfensterposition in der Weise, dass sich dessen Mittelpunkt anderen Teile der Route annähert, können entweder zusätzliche Gebietskartendaten abgerufen (z. B. über Blocks 906–908) oder eine Abrufabfolge geändert werden (z. B. über Blocks 1306–1310). Diese Ausführungsform kann in Situationen verwendet werden, in denen eine aktuelle Position eines eine Karte wiedergebenden Geräts geliefert wird, um die Karte auf dieser aktuellen Position (z. B. mit einem GPS-System) zu zentrieren.
-
Die Menge von Kartenkacheldaten und die Abfolge, in der auf Teilmengen der Kartenkacheldaten zugegriffen wird, kann auf einer aktuellen Bandbreite oder Prozessorlast des Systems von 1 basieren. Entscheidungen darüber, ob ein größerer oder kleinerer Radius von Kartendatenkacheln heruntergeladen werden soll, hängen von der Bandbreite und/oder Latenzerwägungen im Zusammenhang mit dem Abruf der Menge von Kartendatenkacheln von einem Server ab. In manchen Ausführungsformen hängen Bandbreitenerwägungen von der Prüfung ab, ob die aktuelle Bandbreite/Zeit zum Herunterladen für den Abruf der Kartendatenkacheln über einem Schwellenwert liegt. Zum Beispiel kann eines der Clientgeräte 16–22 eine aktuelle Download-Geschwindigkeit eines Abrufprozesses prüfen, um zu bestimmen, ob zusätzliche, einem größeren Kachelradius entsprechende Kartendatenkacheln abgerufen werden müssen.
-
Prozessorkapazität zum Zugriff auf die Kartendatenbank keinen in Betracht gezogen werden. Zum Beispiel kann eine aktuelle Prozessorkapazität im Vergleich zu einem Schwellenwert geprüft werden. Dies kann der Fall sein, wenn eine aktuelle Bedingung der Kartenanwendung ein reduziertes Abrufen und/oder Verarbeiten von Daten aufgrund der Prozessorbelastung erfordert. Wenn der Prozessor zum Beispiel überladen ist oder einen Datenstau hat (die Prozessorkapazität ist niedrig unterliegt unter einem Schwellenwert), kann der Kartendatenkachelradius verkürzt werden, um die Gesamtmenge der abgerufenen und verarbeiteten Kartendatenkacheln zu reduzieren und so die Arbeitslast des Prozessors zu verringern.
-
Weiterhin können Abfolge und Menge der vorabgerufenen Kartendatenkacheln auf Speicherbedingungen basieren. Zum Beispiel kann eine begrenzte Menge von Speicherplatz für den Vorabruf von Kartendaten zugewiesen sein. Die entsprechenden Bereiche von Kartendatenkacheln können skaliert werden, um den zur Verfügung stehenden Speicherplatz zu berücksichtigen. Die Abrufabfolge kann anhand eines verfügbaren Speicherplatzbudgets umgeordnet werden. Als Alternative kann die Anzahl der Sätze von Kartendatenkacheln aufgrund des Speicherplatzbudgets reduziert werden.
-
Jede geeignete Teilmenge der Blocks aus 9 und 13 kann in jeder geeigneten Reihenfolge durch eine Anzahl von verschiedenen Geräten (z. B. Client oder Server) implementiert werden und mit dem hierin beschriebenen Verfahren und System in Übereinstimmung bleiben. Außerdem können zusätzliche Bestimmungsblocks zur Verfeinerung des Filters von Stilparametern, die der Interpolationsverarbeitung unterliegen, hinzugefügt werden.
-
In dieser gesamten Spezifikation können mehrere Instanzen Komponenten, Vorgänge oder Strukturen implementieren, die als einzelner Fall beschrieben werden. Auch wenn einzelne Operationen von einem oder mehreren Verfahren als getrennte Operationen veranschaulicht und beschrieben sind, können eine oder mehrere der einzelnen Operationen gleichzeitig durchgeführt werden, und nichts erfordert, dass die Operationen in der veranschaulichten Reihenfolge durchgeführt werden. Strukturen und Funktionen, die in beispielhaften Konfigurationen als getrennte Komponenten dargestellt werden, können als kombinierte Struktur oder Komponente implementiert werden. In ähnlicher Weise können Strukturen und Funktionen, die als einzelne Komponenten dargestellt werden, als getrennte Komponenten implementiert werden. Diese und andere Variationen, Modifikationen, Ergänzungen und Verbesserungen fallen in den Anwendungsbereich des hierin beschriebenen Gegenstands.
-
Das Netzwerk 25 kann beispielsweise unter anderem eine beliebige Kombination aus einem LAN, einem MAN, einem WAN, einem mobilen, einem verdrahteten oder drahtlosen Netzwerk, einem privaten Netzwerk oder einem virtuellen, privaten Netzwerk umfassen. Obwohl zur Vereinfachung und Verdeutlichung der Beschreibung in 1 nur vier Client-Geräte dargestellt sind, ist es selbstverständlich, dass eine beliebige Anzahl von Client-Geräten oder Anzeigegeräte unterstützt werden und mit dem Server 14 kommunizieren kann.
-
Außerdem sind bestimmte Ausführungsformen hierin als Logik oder eine Reihe von Komponenten, Modulen oder Mechanismen umfassend beschrieben. Module können entweder Softwaremodule (z. B. Code, der auf einem maschinenlesbaren Medium oder in einem Sendesignal verkörpert ist) oder Hardwaremodule darstellen. Ein Hardwaremodul ist ein greifbares Gerät, das bestimmte Operationen durchführen kann, und es kann in einer bestimmten Weise konfiguriert oder angeordnet sein. In exemplarischen Ausführungsformen können eines oder mehrere Computersysteme (z. B. ein eigenständiges, Client- oder Server-Computersystem) oder eines oder mehrere Hardwaremodule eines Computersystems (z. B. ein Prozessor oder eine Gruppe von Prozessoren) von der Software (z. B. einer Anwendung oder einem Anwendungsteil) als Hardwaremodul konfiguriert sein, um bestimmte, hierin beschriebene Operationen durchzuführen.
-
In verschiedenen Ausführungsformen kann ein Hardwaremodul mechanisch oder elektronisch implementiert werden. Ein Hardwaremodul kann beispielsweise eine spezielle Schaltung oder Logik umfassen, die dauerhaft zur Ausführung bestimmter Operationen konfiguriert ist (z. B. als ein spezieller Prozessor, wie beispielsweise ein Field Programmable Gate Array (FPGA) oder eine anwendungsspezifische integrierte Schaltung (ASIC)). Ein Hardwaremodul kann außerdem programmierbare Logik oder Schaltkreise umfassen (z. B. wie in einem Allzweck-Prozessor oder einem anderen programmierbaren Prozessor eingeschlossen), der von der Software temporär für die Durchführung bestimmter Operationen konfiguriert ist. Es wird darauf hingewiesen, dass die Entscheidung für die mechanische Implementierung eines Hardwaremoduls in spezielle und dauerhaft konfigurierte oder temporär konfigurierte Schaltungen (z. B. per Software konfiguriert) von Kosten- und Zeitüberlegungen abhängig sein kann.
-
Demgemäß sollte der Begriff Hardware so verstanden werden, dass er eine greifbare Entität umfasst, sei es eine Entität, die physisch konstruiert, permanent konfiguriert (z. B. hartverdrahtet) oder temporär konfiguriert (z. B. programmiert) ist, um auf bestimmte Weise zu arbeiten oder bestimmte, hierin beschriebene Operationen durchzuführen. Bei Berücksichtigung von Ausführungsformen, in denen Hardwaremodule temporär konfiguriert (z. B. programmiert) sind, müssen die jeweiligen Hardwaremodule nicht zu jeder einzelnen zeitlichen Instanz konfiguriert oder instanziiert sein. Wenn die Hardwaremodule zum Beispiel einen Allzweck-Prozessor umfassen, der für die Verwendung von Software konfiguriert ist, kann der Allzweck-Prozessor als entsprechend unterschiedliche Hardwaremodule zu verschiedenen Zeiten konfiguriert sein. Software kann demgemäß einen Prozessor zum Beispiel so konfigurieren, dass er zu einer zeitlichen Instanz ein bestimmtes Hardwaremodul und zu einer anderen zeitlichen Instanz ein anderes Hardwaremodul darstellt.
-
Hardware- und Softwaremodule können Informationen anderen Hardware- und/oder Softwaremodulen bereitstellen und Informationen von diesen empfangen. Demgemäß können die beschriebenen Hardwaremodule als kommunikativ gekoppelt betrachtet werden. Wenn mehrere solcher Hardware- oder Softwaremodule gleichzeitig vorhanden sind, kann die Kommunikation über Signalübertragung (z. B. über entsprechende Schaltkreise und Busse) erreicht werden, die mit den Hardware- oder Softwaremodulen verbunden sind. In Ausführungsformen, in denen mehrere Hardware- und Softwaremodule zu verschiedenen Zeiten konfiguriert oder instanziiert sind, kann die Kommunikation zwischen solchen Hardware- und Softwaremodulen zum Beispiel durch die Speicherung und das Abrufen von Informationen in Speicherstrukturen erreicht werden, zu denen die mehreren Hardware- und Softwaremodule Zugriff haben. Zum Beispiel kann ein Hardware- oder Softwaremodul eine Operation durchführen und den Ausgang dieser Operation in einem Speichergerät speichern, mit dem es kommunikativ gekoppelt ist. Ein weiteres Hardware- oder Softwaremodul kann dann, zu einem späteren Zeitpunkt, auf das Speichergerät zugreifen, um die gespeicherte Ausgabe abzurufen und zu verarbeiten. Hardware- und Softwaremodule können außerdem die Kommunikation mit Eingabe- und Ausgabegeräten initiieren, und sie können auf einer Ressource (z. B. einer Informationssammlung) betrieben werden.
-
Die verschiedenen Operationen hierin beschriebener exemplarischer Verfahren können, zumindest teilweise, von einem oder mehreren Prozessoren durchgeführt werden, die temporär (z. B. durch Software) oder permanent für die Durchführung der relevanten Operationen konfiguriert sind. Ganz gleich, ob sie temporär oder permanent konfiguriert sind, stellen solche Prozessoren von Prozessoren implementierte Module dar, die betrieben werden, um eine oder mehrere Operationen oder Funktionen durchzuführen. Module, auf die hierin verwiesen wird, umfassen in einigen exemplarischen Ausführungsformen von Prozessoren implementierte Module.
-
Ihn ähnlicher Weise können hierin beschriebene Verfahren oder Routinen zumindest teilweise von Prozessoren implementiert sein. Zum Beispiel können zumindest einige der Operationen eines Verfahrens von einem oder mehreren Prozessoren oder von durch Prozessoren implementierten Hardwaremodulen durchgeführt werden. Die Durchführung bestimmter Operationen kann unter den ein oder mehreren Prozessoren verteilt sein, die sich nicht in einer einzigen Maschine befinden, sondern über eine Reihe von Maschinen bereitgestellt werden. In einigen exemplarischen Ausführungsformen können sich der Prozessor oder die Prozessoren an einem einzigen Ort (z. B. in einer Wohnungsumgebung, in einer Büroumgebung oder als eine Serverfarm) befinden, während in anderen Ausführungsformen die Prozessoren über eine Reihe von Orten verteilt sein können.
-
Der eine oder die mehreren Prozessoren können auch so arbeiten, dass sie die Leistung der relevanten Vorgänge in einer „Cloud Computing”-Umgebung oder als ein „Software as a Service” (SaaS) unterstützen. Zum Beispiel können einige der Operationen durch eine Gruppe von Computer (z. B. von Maschinen einschließlich Prozessoren) durchgeführt werden, wobei diese Operationen über ein Netzwerk (z. B. das Internet) und über eine oder mehrere geeignete Schnittstellen (z. B. Anwendungsprogrammschnittstellen, APIs) zugänglich sind.
-
Die Durchführung bestimmter Operationen kann unter den ein oder mehreren Prozessoren verteilt sein, die sich nicht in einer einzigen Maschine befinden, sondern über eine Reihe von Maschinen bereitgestellt werden. In einigen exemplarischen Ausführungsformen können sich der eine oder die mehreren Prozessoren oder durch Prozessoren implementierte Module an einem einzigen geografischen Standort (z. B. einer Wohnumgebung, einer Büroumgebung oder einer Serverfarm) befinden. In anderen exemplarischen Ausführungsformen können der eine oder die mehreren Prozessoren oder durch Prozessoren implementierten Module über eine Reihe geografischer Standorte verteilt sein.
-
Einige Teile dieser Spezifikation werden in Bezug auf Algorithmen oder symbolische Darstellungen von Operationen bei Daten dargestellt, die als Bits oder binäre digitale Signale in einem Maschinenspeicher (z. B. einem Computerspeicher) gespeichert sind. Diese Algorithmen oder symbolischen Darstellungen sind Beispiele von Techniken, die von Fachleuten der Datenverarbeitungstechnik verwendet werden, um anderen Fachleuten die wesentlichen Inhalte ihrer Arbeit zu vermitteln. Wie hierin verwendet, ist ein „Algorithmus” oder eine „Routine” eine eigenkonsistente Sequenz von Operationen oder ähnliche Verarbeitung, die zu einem gewünschten Ergebnis führt. In diesem Kontext beinhalten Algorithmen, Routinen und Operationen die physische Manipulation physischer Mengen. Normalerweise, aber nicht notwendigerweise, können solche Mengen die Form elektrischer, magnetischer oder optischer Signale annehmen, die von einer Maschine gespeichert, aufgerufen, übertragen, kombiniert, verglichen oder sonst manipuliert werden können. Es ist manchmal praktisch, hauptsächlich aus Gründen der allgemeinen Nutzung, sich auf diese Signale mit Ausdrücken wie „Daten”, „Inhalt”, „Bits”, „Werte”, „Elemente”, „Symbole”, „Zeichen”, „Begriffe”, „Zahlen”, „Numerale” oder dergleichen zu beziehen. Diese Wörter sind jedoch lediglich praktische Bezeichnungen und dürfen nicht mit entsprechenden physischen Mengen verbunden werden.
-
Sofern nicht speziell anders angegeben, können sich Erörterungen hierin, die Wörter wie „Verarbeitung”, „Berechnung”, „Bestimmung”, „Darstellung”, „Anzeige” o. ä. verwenden, auf Aktionen oder Prozesse einer Maschine (z. B. eines Computers) beziehen, die Daten bearbeiten oder umwandeln, die als physische (z. B. elektronische, magnetische oder optische) Mengen in einem oder mehreren Speichern (z. B. flüchtiger Speicher, nichtflüchtiger Speicher oder eine Kombination davon), Register oder andere Maschinenkomponenten dargestellt sind, die Informationen empfangen, speichern, übertragen oder anzeigen.
-
Wie hierin verwendet, bedeuten Verweise auf „eine Ausführungsform” oder „Ausführungsformen”, dass ein bestimmtes Element, Merkmal, eine Struktur oder eine Eigenschaft, das/die in Verbindung mit der Ausführungsform beschrieben wird, zumindest in einer Ausführungsform enthalten ist. Das Erscheinen der Formulierung „in einer Ausführungsform” an verschiedenen Orten in der Spezifikation bezieht sich nicht notwendigerweise immer auf dieselbe Ausführungsform.
-
Einige Ausführungsformen können mithilfe des Ausdrucks „gekoppelt” und „verbunden” zusammen mit deren Ableitungen beschrieben werden. Zum Beispiel können einige Ausführungsformen mithilfe des Begriffs „gekoppelt” beschrieben werden, um anzugeben, dass eines oder mehrere Elemente im direkten physischen oder elektrischen Kontakt sind. Der Begriff „verbunden” kann jedoch auch bedeuten, dass eines oder mehrere Elemente nicht im direkten Kontakt miteinander sind, aber trotzdem noch miteinander zusammenarbeiten oder interagieren. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Wie hierin verwendet, sollen die Begriffe „umfasst”, „umfassend”, „beinhaltet”, „enthält”, „hat”, „haben” und andere Varianten davon eine nicht ausschließliche Einbeziehung abdecken. Zum Beispiel ist ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, der/die eine Liste von Elementen umfasst, nicht notwendigerweise nur auf diese Elemente beschränkt, sondern kann andere Elemente beinhalten, die nicht ausdrücklich aufgelistet oder bei einem solchen Prozess, einem solchen Verfahren, einem solchen Artikel oder einer solchen Vorrichtung inhärent sind. Des Weiteren bezieht sich, sofern nichts Gegenteiliges angegeben ist, „oder” auf ein einschließendes und nicht auf ein ausschließendes Oder. Zum Beispiel ist eine Bedingung A oder B durch eines der folgenden erfüllt: A ist wahr (oder vorhanden) und B ist falsch (oder nicht vorhanden), A ist falsch (oder nicht vorhanden) und B ist wahr (oder vorhanden) und sowohl A als auch B sind wahr (oder vorhanden).
-
Außerdem wird „eine”, „einer” oder „eines” verwendet, um Elemente und Komponenten der Ausführungsformen hierin zu beschreiben. Dies erfolgt lediglich aus praktischen Gründen und um eine allgemeine Vorstellung der Beschreibung zu vermitteln. Die Beschreibung sollte so gelesen werden, dass sie eines oder mindestens eines enthält, und der Singular umfasst auch den Plural, außer es ist offensichtlich anders gedacht.
-
Weiterhin stellen die Figuren bevorzugte Ausführungsformen eines Kartenwiedergabesystems nur zu Veranschaulichungszwecken dar. Ein Fachmann wird aus der folgenden Erörterung leicht erkennen, dass alternative Ausführungsformen der Strukturen und Verfahren, die hierin dargestellt sind, eingesetzt werden können, ohne von den Prinzipien der hier beschriebenen Erfindung abzuweichen.
-
Nach dem Lesen dieser Offenbarung werden Fachleute durch die hierin offenbarten Prinzipien noch zusätzliche, alternative Struktur- und Funktionsdesigns für ein System und Verfahren zur Wiedergabe von Karten oder anderen Arten von Bildern erkennen. Somit sollte, während bestimmte Ausführungsformen und Anwendungen veranschaulicht und beschrieben wurden, es selbstverständlich sein, dass die offenbarten Ausführungsformen nicht auf die genaue Konstruktion und Komponenten beschränkt sind, die hierin offenbart wurden. Verschiedene Modifikationen, Änderungen und Variationen, die für Fachleute auf dem Gebiet ersichtlich werden, können in der Anordnung, dem Betrieb und in den Einzelheiten der Verfahren und der Vorrichtung, die hierin offenbart werden, ohne Abweichung von der Idee und dem Umfang der angehängten Ansprüche erfolgen.