-
Gebiet der Offenbarung
-
Die vorliegende Offenbarung bezieht sich auf Kartendarstellungssysteme, z. B. elektronische Kartenanzeigesysteme und insbesondere auf ein Kartendarstellungssystem, in dem Kartenbilder mithilfe von Kartendaten effizient dargestellt werden, die auf iterative Weise als Satz von Basiskartenkacheln und einer oder mehreren Differenzkartenkacheln bereitgestellt werden. 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
-
Die hierin angegebene Hintergrundbeschreibung soll den Kontext der Offenbarung allgemein darstellen. Die Arbeit der vorliegend genannten Erfinder, in dem Umfang, wie sie in diesem Hintergrundabschnitt beschrieben ist, sowie Aspekte der Beschreibung, die zum Zeitpunkt der Anmeldung sonst möglicherweise nicht als Stand der Technik qualifiziert sind, werden weder ausdrücklich noch stillschweigend als Stand der Technik gegenüber der vorliegenden Offenbarung anerkannt.
-
Heute können Karten geografischer Regionen von Softwareanwendungen, die auf einer Vielzahl von Geräten laufen, einschließlich Desktop-Computern, Mobiltelefonen, Navigationssystemen, GPS(Global Positioning System)-Handgeräten, Tablet- oder Laptop-Computern, angezeigt werden. Je nach Anwendung bzw. Benutzereinstellungen können Karten über topografische Daten, Straßendaten, Infos zum öffentlichen Nahverkehr, Verkehrsdaten usw. anzeigen. Darüber hinaus können einige Anwendungen Karten in einem interaktiven Modus darstellen, damit ein Anwender verschiedene Steuerelemente (Optionsschaltflächen, Rollbalken usw.) beispielsweise zur Änderung der Zoomstufe oder zum Schwenken der Karte zu einer neuen Position verwenden kann. Ein Benutzer kann in einigen Fällen auch bestimmte Informationen auf der Anzeige auswählen oder abwählen. So kann beispielsweise der Benutzer das entsprechende Steuerelement bedienen, um die Anzeige von Radwegen, die Übertragung von Karten usw. zu aktivieren.
-
Zum Rendern eines Kartenbildes erhält eine Anzeigekomponente in der Regel Raster-Grafikdaten von einem fest zugeordneten Server. So kann beispielsweise ein Kartenserver auf dem Internet in Betrieb sein und Bilder in einem PNG-Dateiformat (Portable Network Graphics PNG) an verschiedene Geräte für die spezifischen geografischen Gebiete bereitstellen. Obwohl Rasterbilder relativ leicht an ein Client-Gerät wiedergegeben werden können erfordern Daten mit Wiedergabe von Rasterbildern für eine umfassende Karte normalerweise eine große Menge an Speicherplatz. Es ist auch schwierig, Rasterbilder an einem Client-Gerät auf effiziente Weise zu manipulieren. So wird beispielsweise beim Zoomen auf ein ausgewähltes Gebiet entweder ein neues Rasterbild vom Server abgerufen, oder die erhältlichen Daten mit Rasterbildern werden mit deutlichem Qualitätsverlust vergrößert. Zur Verringerung dieses Problems stellen einige Kartensysteme dem Client-Gerät Kartendaten des Kartenservers in Form von Vektor-Grafikdaten zur Verfügung. Allgemein gesprochen beschreiben oder spezifizieren Vektor-Grafikdaten verschiedene, auf einer Karte vorhandene Objekte, und eine Grafik-Engine auf dem Client-Gerät verarbeitet mittels verschiedener allgemeiner Techniken die Vektor-Grafikdaten zur Erstellung eines Kartenbildes.
-
Auf jeden Fall senden die meisten webbasierten Kartendienste Kartendaten als kleine Bildkacheln von einem Server zum Client, in der Regel in Form von Raster- oder Vektor-Grafikbilddatenkacheln. Jede Bildkachel deckt eine vorgegebene geografische Region ab und spezifiziert das genaue anzuzeigende Bild entweder mittels Raster- oder Vektor-Grafikbilddaten. Darüber hinaus bieten viele Client/Server-Kartenanwendungen einem Benutzer viele verschiedene Ansichten der gleichen grundlegenden Kartendaten. Diese Ansichten können beispielsweise auf das Autofahren ausgerichtete Karten, Radwegkarten, Geländekarten, ÖPNV-Karten oder geschäftsorientierte Karten bereitstellen. Möchte der Benutzer zu einer anderen Kartenansicht (z. B. eine ÖPNV-Kartenansicht) einer bestimmten geografischen Region wechseln, fordert die Client-Anwendung eine ganze Reihe neuer Kartenkacheln für den gleichen Ort an, spezifiziert aber die Aufnahme des Stils und der sich unterscheidenden Daten in die neue Karte (z. B. einschließlich ÖPNV-Linien, mit reduziertem Straßenschwerpunkt usw.). In der Regel teilen alle oder die meisten der verfügbaren Kartenansichten jedoch meist die gleichen Daten. Beispielsweise bleiben topografische Informationen, Seen, Straßen usw. zwischen allen Ansichten konstant, aber jede Ansicht kann ein paar zusätzliche Objekte enthalten, möglicherweise wurden einige Objekte entfernt bzw. werden ein paar Objekte möglicherweise auf unterschiedliche Weise oder auf unterschiedliche Arten angezeigt. Tatsächlich sind die meisten der Kartendaten (in Bezug auf Speicherplatz in Bytes) in diesen unterschiedlichen Ansichten in den meisten Fällen gleich. Deshalb sind, wenn eine Kartenanwendung dem Benutzer einen Wechsel zwischen verschiedenen Kartenansichten für dieselbe geografische Region ermöglicht, die meisten vom Server an den Client gesendeten Daten eigentlich zu den bereits von dem Client-Gerät empfangen Daten redundant. Diese Tatsache kann zu einer Reihe von Problemen führen, einschließlich einer hohen Lastlatenz, einer hohen Rendering-Latenz auf dem Client-Gerät, einer hohen Serialisierungslatenz auf dem Server und somit zur Vermeidung dieser Probleme zu einer erzwungenen Verringerung der Datendetails.
-
Darüber hinaus muss, wenn neue Kartendaten zu einem Clientgerät gesendet werden, das Clientgerät die neuen Kartendaten verarbeiten, um die mit den neuen Kartendaten verbundene Karte darzustellen. Wenn die neuen Kartendaten weitgehend mit dem vorher dargestellten Satz an Kartendaten identisch sind oder diesen überlappen, muss der Grafikprozessor normalerweise genauso viel Verarbeitungsleistung für die neuen Kartendaten aufwenden wie bei den ursprünglichen Kartendaten, auch wenn ein Großteil der endgültigen Karte auf dieselbe Weise dargestellt wird. Insbesondere müssen in Grafiksystemen, die auf Grafikprozessoren (GPU) basieren, Daten vom CPU RAM zum GPU VRAM gepuffert werden, bevor die Daten als Karte dargestellt werden können. Vor Bereitstellung der Daten für die GPU muss die Software außerdem häufig eine gewisse Vorverarbeitung der Daten (auch Vorbereitung der Daten genannt) durchführen, was in manchen Fällen sehr rechenaufwändig sein und zu den gesamten Rechnerkosten der Darstellung dieser Daten beitragen kann. Sobald die Datenvorbereitung durchgeführt wurde und die Daten an die GPU gesendet wurden, können die Daten mehrmals erneut gezeichnet werden, ohne die Leistungskosten der Vorbereitung und Pufferung zu bezahlen. Jedoch erfordern Änderungen an den Daten in Form neuer Kartendaten normalerweise denselben Grad an Vorverarbeitung und Vorbereitung und ermöglichen daher keine Wiederverwendung früher verarbeiteter Kartendaten, die in der neu dargestellten Karte im Grunde gleich sind.
-
Es gibt viele Arten von Grafiksystemen, die gewisse Daten darstellen, die Daten irgendwie ändern und sie als neues Bild erneut darstellen müssen. Die meisten dieser Systeme haben ausreichende Leistungsfähigkeit (GPU- und CPU-Prozessorfähigkeit), um den Brute-Force-Ansatz zu verfolgen, das heißt, die Daten einfach zu ändern, neu zu bearbeiten und vorzubereiten, als wären sie ein komplett neues Bild und das vorverarbeitete Bild für die Darstellung im GPU erneut zu Puffern. Jedoch tendieren einige Systeme, zum Beispiel Kartensysteme, dazu, leistungsintensiv zu sein und sie können nicht die doppelte Verarbeitungsarbeit leisten und gleichzeitig bei der Geschwindigkeit gut zu funktionieren, mit der neue Kartenbilder dargestellt werden müssen. Diese Systeme benötigen eine Methode, die die erneute Vorbereitung und erneute Pufferung der Daten vor der Darstellung der Daten mit dem Grafikprozessor vermeidet.
-
Zusammenfassung
-
In einer Ausführungsform beinhaltet ein auf einem Rechner implementiertes Verfahren zur Bereitstellung von Kartendaten auf einem Client-Gerät die Erzeugung einer Reihe von mit einer bestimmten Region verbundenen Basiskartenkacheln, wobei die Reihe der Basiskartenkacheln, wenn diese zum Rendern eines Kartenbildes verwendet wird, ein Basiskartenbild für die Region gerendert wird und wobei jede Basiskartenkachel mindestens einen Vektordeskriptor, der eine Geometrie eines oder mehrerer entsprechender Kartenelemente des Basiskartenbildes in Übereinstimmung mit einem Vektor-Grafikformat angibt, beinhaltet. Das Verfahren beinhaltet des Weiteren das Senden der Basiskartenkacheln über das Kommunikationsnetzwerk an das Client-Gerät. Das Verfahren beinhaltet ebenfalls den Empfang einer Indikation, dass ein Kartenbild für die ausgewählte Region, das sich von dem Basiskartenbild unterscheidet, das mittels der Reihe von Basiskartenkacheln erstellt wurde, auf dem Client-Gerät gerendert werden muss und dass eine Reihe von Differenzkartenkacheln generiert werden muss, die einen oder mehrere Unterschiede zwischen dem zu rendernden Kartenbild und dem Basiskartenbild aufweisen. Die Unterschiede können mithilfe von Vektordeskriptoren angegeben werden, von denen jeder einem jeweiligen Kartenelement entspricht, das (1) im Kartenbild dargestellt werden soll, sich aber nicht im Basiskartenbild befindet, (2) nicht im Kartenbild dargestellt werden soll, sich aber im Basiskartenbild befindet, und/oder (3) mithilfe eines anderen Stils, einer anderen Schicht oder eines anderen Merkmals im Kartenbild dargestellt werden soll, als die, die im Basiskartenbild dargestellt sind. Das Verfahren kann des Weiteren das Senden der Differenzkacheln über das Kommunikationsnetzwerk an das Client-Gerät zum Rendern des verwendeten Kartenbildes beinhalten. Am Clientgerät kann die Rendering-Engine zuerst das erste Kartenbild mithilfe der Basiskartenkachel darstellen und danach das Bild auf Basis der Differenzkartenkacheln umformen oder neu darstellen, ohne all die Grafiken in der geänderten Karte vollständig vorverarbeiten zu müssen, was das System bei der Nutzung der Grafikprozessorleistung viel effizienter macht und Zeit und Aufwand bei der Darstellung spart. Insbesondere können die Änderungen bei den Basiskartenkacheln implementiert werden, indem Elemente, die aus dem Basiskartenbild gelöscht werden müssen, mithilfe eines Stilmerkmals dargestellt werden, das das Merkmal bei der Darstellung einfach unsichtbar macht, ohne dass die zu löschenden Kartenmerkmale erneut vorverarbeitet werden müssen.
-
In einer weiteren Ausführungsform umfasst ein Verfahren für die Implementierung in einem Computergerät für die Erzeugung von Kartenbildern den Empfang, über ein Kommunikationsnetzwerk, einer Vielzahl von Basiskartenkacheln, die mit einem ersten Kartenbild für eine ausgewählte geografische Region verbunden sind, wobei jede Basiskartenkachel einen oder mehrere Vektordeskriptoren enthält, die eine Geometrie eines jeweiligen Kartenelements in Übereinstimmung mit einem Vektorgrafikformat angeben und die Vektordeskriptoren in jeder Basiskartenkachel, mithilfe eines Prozessors, vorverarbeitet werden, um einen ersten Satz von Darstellungsanweisungen für die Darstellung des ersten Kartenbildes wie durch die Vielzahl der Basiskartenkacheln definiert zu erstellen. Das Verfahren umfasst außerdem den Empfang, über das Kommunikationsnetzwerk, eines Satzes von Differenzkartenkacheln für die Darstellung eines zweiten Kartenbildes für die ausgewählte geografische Region, wobei jeder Satz von Differenzkartenkacheln einen oder mehrere Hinweise einer Änderung des Vektordeskriptors enthält, die auf eine oder Vielzahl der Basiskartenkacheln angewandt werden sollen und der eine oder die mehreren Hinweise der Änderungen der Vektordeskriptoren, mithilfe eines Prozessors, vorverarbeitet werden, um einen zweiten Satz von Darstellungsanweisungen für die Darstellung des zweiten Kartenbildes zu erstellen. Das Verfahren umfasst außerdem die Darstellung, mithilfe eines Prozessors, des zweiten Kartenbildes über eine Benutzeroberfläche durch Implementierung des ersten Satzes von Darstellungsanweisungen und des zweiten Satzes von Darstellungsanweisungen.
-
Falls gewünscht, kann das Verfahren den Empfang einer Differenzkartenkachel umfassen, die einen zusätzlichen Vektordeskriptor enthält, der in der Vielzahl der Vektordeskriptoren in der Vielzahl der Basiskartenkacheln nicht enthalten ist, worin der zusätzliche Vektordeskriptor einem Kartenelement entspricht, das als Teil des zweiten Kartenbildes dargestellt werden soll, aber nicht Teil des ersten Kartenbildes ist und es kann den Empfang einer Beschriftung umfassen, die dem zusätzlichen Vektordeskriptor entspricht, worin die Beschriftung Text beinhaltet, der als Teil des zweiten Kartenbildes zusammen mit dem Kartenelement dargestellt werden soll.
-
Noch weiter kann das Verfahren einen Hinweis empfangen, dass ein Kartenelement, das von einem der Vielzahl von Vektordeskriptoren in der Vielzahl der Basiskartenkacheln definiert wird, auf dem zweiten Kartenbild nicht gezeigt werden soll und es kann des Weiteren die Implementierung, mithilfe eines Prozessors, des ersten Satzes von Darstellungsanweisungen für die Darstellung des Kartenelements umfassen, das im zweiten Kartenbild nicht gezeigt werden soll, auf eine Weise, die das Kartenbild, das im zweiten Kartenbild nicht gezeigt werden soll, im zweiten Kartenbild im Wesentlichen unsichtbar macht. Das Verfahren kann zum Beispiel das Kartenelement, das im zweiten Kartenbild nicht gezeigt werden soll, mithilfe eines transparenten Stilparameters oder mithilfe eines Werts eines Linienbreiten-Darstellungsparameters für die Darstellung des Kartenelements, das im zweiten Kartenbild nicht gezeigt werden soll, darstellen, der klein genug ist, damit das Kartenelement mit bloßem Auge in der Benutzeroberfläche nicht zu sehen ist. Falls gewünscht, kann das Verfahren den ersten Satz von Darstellungsanweisungen erstellen, um auf ein Stilattribut zu verweisen, das in einem Speicher gespeichert ist, um einen oder mehrere Darstellungsparameter zu definieren, die mit einem Kartenelement verbunden sind, das von einem oder mehreren Vektordeskriptoren definiert wird und es kann den ersten Satz von Darstellungsanweisungen implementieren, um das Kartenelement, das im zweiten Kartenbild nicht gezeigt werden soll, auf eine Weise darzustellen, die das Kartenelement, das im zweiten Kartenbild nicht gezeigt werden soll, im zweiten Kartenbild im Wesentlichen unsichtbar macht, indem das Stilattribut für das Kartenelement, das im zweiten Kartenbild nicht gezeigt werden soll, auf einen transparenten Wert oder einen kleinen Linienbreitenwert eingestellt wird.
-
Noch weiter kann das Verfahren den einen oder die mehreren Hinweise der Änderungen des Vektordeskriptors vorverarbeiten, indem es eine Darstellungssequenz für den ersten Satz von Darstellungsanweisungen und den zweiten Satz von Darstellungsanweisungen definiert, in dem mindestens eine des zweiten Satzes von Darstellungsanweisungen zwischen zwei des ersten Satzes von Darstellungsanweisungen verschachtelt wird und es kann das zweite Kartenbild auf einer Benutzeroberfläche darstellen, indem es den ersten Satz von Darstellungsanweisungen und den zweiten Satz von Darstellungsanweisungen in der Reihenfolge implementiert, die von der Darstellungssequenz definiert wird.
-
In einer weiteren Ausführungsform umfasst ein Verfahren für die Implementierung in einem Computergerät für die Erzeugung von Kartenbildern den Empfang, über ein Kommunikationsnetzwerk, einer Vielzahl von Basiskartenkacheln, die mit einem ersten Kartenbild für eine ausgewählte geografische Region verbunden sind, wobei jede Basiskartenkachel einen oder mehrere Vektordeskriptoren enthält, die eine Geometrie eines jeweiligen Kartenelements in Übereinstimmung mit einem Vektorgrafikformat angeben und die Vektordeskriptoren in jeder Basiskartenkachel, mithilfe eines Prozessors, vorverarbeitet werden, um einen ersten Satz von Darstellungsanweisungen für die Darstellung des ersten Kartenbildes wie durch die Vielzahl der Basiskartenkacheln definiert zu erstellen, worin der erste Satz von Darstellungsanweisungen eine Stilattribut-Nachschlagetabelle verwendet, um Stilparameter für die Verwendung bei der Darstellung von Kartenelementen im ersten Kartenbild zu definieren. Das Verfahren umfasst außerdem den Empfang, über das Kommunikationsnetzwerk, eines Satzes von Differenzkartenkacheln für die Darstellung eines zweiten Kartenbildes für die ausgewählte geografische Region, wobei jeder Satz von Differenzkartenkacheln einen oder mehrere Hinweise einer Änderung des Vektordeskriptors enthält, die auf eine der Vielzahl der Basiskartenkacheln angewandt werden sollen, worin mindestens eine der Differenzkacheln einen Hinweis enthält, dass ein Kartenelement, das von einer der Vielzahl der Vektordeskriptoren in der Vielzahl der Basiskartenkacheln definiert ist, im zweiten Kartenbild nicht gezeigt werden soll. Das Verfahren kann auch die Änderung, mithilfe eines Prozessors, von einem oder mehreren Stilparametern umfassen, die vom ersten Satz von Darstellungsanweisungen verwendet werden, um den ersten Satz von Darstellungsanweisungen zu veranlassen, das Kartenelement, das im zweiten Kartenbild nicht gezeigt werden soll, auf eine Weise darzustellen, dass das Kartenelement, das im zweiten Kartenbild nicht gezeigt werden soll, im Wesentlichen im zweiten Kartenbild nicht sichtbar ist und es kann, mithilfe eines Prozessors, das zweite Kartenbild über eine Benutzeroberfläche darstellen, indem es den ersten Satz von Darstellungsanweisungen mit den geänderten ein oder mehreren Stilparametern implementiert.
-
In noch einer weiteren Ausführungsform beinhaltet ein Anzeigegerät eine Kommunikationsnetzwerkschnittstelle, ein Benutzeranzeigegerät und Verarbeitungshardware, die einen oder mehrere Prozessoren umfasst, die mit der Kommunikationsnetzwerkschnittstelle und mit dem Benutzeranzeigegerät gekoppelt sind. Hier ist die Verarbeitungshardware so konfiguriert, dass sie, über die Kommunikationsnetzwerkschnittstelle, Daten von einer Vielzahl von Basiskartenkacheln empfängt, die mit einem ersten Kartenbild für eine ausgewählte geografische Region verbunden sind, wobei jede Basiskartenkachel einen oder mehrere Vektordeskriptoren enthält, die eine Geometrie eines jeweiligen Kartenelements in Übereinstimmung mit einem Vektorgrafikformat angeben und so konfiguriert sind, dass sie die Vektordeskriptoren in jeder Basiskartenkachel vorverarbeiten, um einen ersten Satz von Darstellungsanweisungen für die Darstellung des ersten Kartenbildes zu erstellen, wie durch die Vielzahl der Basiskartenkacheln definiert. Die Verarbeitungshardware ist außerdem so konfiguriert, dass sie über die Kommunikationsnetzwerkschnittstelle einen Satz von Differenzkartenkacheln für die Darstellung eines zweiten Kartenbildes für die ausgewählte geografische Region empfängt, wobei jede des Satzes von Differenzkartenkacheln einen oder mehrere Hinweise einer Änderung eines Vektordeskriptors enthält, der in einer der Vielzahl der Basiskartenkacheln angewandt werden soll. Ähnlich ist die Verarbeitungshardware so konfiguriert, dass sie den einen oder mehrere Hinweise zu Änderungen des Vektordeskriptors vorverarbeitet, um einen zweiten Satz an Darstellungsanweisungen für die Darstellung des zweiten Kartenbildes zu erstellen und das zweite Kartenbild auf dem Benutzerdisplay darzustellen, indem es den ersten Satz von Darstellungsanweisungen und den zweiten Satz von Darstellungsanweisungen implementiert.
-
In noch einer weiteren Ausführungsform beinhaltet ein Anzeigegerät eine Kommunikationsnetzwerkschnittstelle, ein Benutzeranzeigegerät und Verarbeitungshardware, die einen oder mehrere Prozessoren umfasst, die mit der Kommunikationsnetzwerkschnittstelle und mit dem Benutzeranzeigegerät gekoppelt sind. Hier ist die Verarbeitungshardware so konfiguriert, dass sie über die Kommunikationsnetzwerkschnittstelle Daten empfängt, die eine Vielzahl von Basiskartenkacheln definieren, die mit einem ersten Kartenbild für eine ausgewählte geografische Region verbunden sind, wobei jede Basiskartenkachel einen oder mehrere Vektordeskriptoren enthält, die eine Geometrie eines jeweiligen Kartenelements in Übereinstimmung mit einem Vektorgrafikformat angeben und sie die Vektordeskriptoren in jeder Basiskartenkachel vorverarbeitet, um einen ersten Satz von Darstellungsanweisungen für die Darstellung des ersten Kartenbildes wie durch die Vielzahl der Basiskartenkacheln definiert zu erstellen, worin der erste Satz von Darstellungsanweisungen einen Satz von Stilattribut-Variablen verwendet, um Stilparameter für die Verwendung bei der Darstellung von Kartenelementen im ersten Kartenbild zu definieren. Die Verarbeitungshardware ist außerdem so konfiguriert, dass sie über die Kommunikationsnetzwerkschnittstelle einen Satz von Differenzkartenkacheln für die Darstellung eines zweiten Kartenbildes für die ausgewählte geografische Region empfängt, wobei jeder Satz von Differenzkartenkacheln einen oder mehrere Hinweise einer Änderung des Vektordeskriptors enthält, die auf eine oder Vielzahl der Basiskartenkacheln angewandt werden soll, worin mindestens eine der Differenzkacheln einen Hinweis enthält, dass ein Kartenelement, das von einer der Vielzahl der Vektordeskriptoren in der Vielzahl der Basiskartenkacheln definiert ist, im zweiten Kartenbild nicht gezeigt werden soll. Die Verarbeitungshardware ist außerdem so konfiguriert, dass sie eine oder mehrere der Stilattribut-Variablen, die vom ersten Satz von Darstellungsanweisungen verwendet werden, um den ersten Satz von Darstellungsanweisungen zu veranlassen, das Kartenelement, das im zweiten Kartenbild nicht gezeigt werden soll, auf eine Weise darzustellen, dass das Kartenelement, das im zweiten Kartenbild nicht gezeigt werden soll, im Wesentlichen im zweiten Kartenbild nicht sichtbar ist und das zweite Kartenbild über eine Benutzeroberfläche darzustellen, indem es den ersten Satz von Darstellungsanweisungen mit den geänderten ein oder mehreren Stilattribut-Variablen implementiert.
-
Kurzbeschreibung der Zeichnungen
-
1 ist ein Blockschaltbild eines Kartensystems, in dem ein Kartenserver einem Client-Gerät Kartendaten zum Rendern eines Kartenbildes in Form einer Reihe von Basiskartenkacheln und einer Reihe von Differenzkartenkacheln iterativ bereitstellt;
-
2 ist ein Interaktionsdiagramm, das ein Beispiel eines Informationsaustausches zum Rendern von Kartenbildern auf einem Client-Gerät veranschaulicht, das in dem System von 1 für ein erstes Rendern eines Basiskartenbildes und zum anschließenden Rendern eines ÖPNV-Kartenbildes unter Verwendung von Basiskartenkacheln und Differenzkartenkacheln derselben geografischen Region verwendet wird;
-
3 ist ein Interaktionsdiagramm, das eine exemplarische Übertragung von Differenzkartenkacheln zum Rendern zusätzlicher Kartenelemente und zum Löschen von Elementen aus einer Basiskartenansicht veranschaulicht,
-
4 ist ein Interaktionsdiagramm, das eine exemplarische Übertragung einer einzigen Differenzkartenkachel zur Modifizierung der Höhe, mit der eine Reihe von Kartenmerkmalen oder -elementen in einer Reihe von Basiskartenkacheln gerendert wird, veranschaulicht;
-
5 ist ein Interaktionsdiagramm, das eine exemplarische Übertragung einer Differenzkartenkachel, die eine neue Stiltabelle für eine Reihe von Basiskartenkacheln beinhaltet, veranschaulicht;
-
6 ist ein Interaktionsdiagramm, das eine exemplarische Übertragung einer zweiten Reihe von Differenzkartenkacheln von einem Servergerät zu einem Client-Gerät veranschaulicht, die dem Client-Gerät die Änderung der Ansicht von einer Art der Kartenansicht auf eine andere Art einer Kartenansicht mittels der gleichen Reihe von Basiskartenkacheln ermöglicht;
-
7 ist ein Ablaufdiagramm eines exemplarischen Verfahrens zum Generieren von Kartendaten für mehrere Kartenbilder auf einem Kartenserver mit Basiskartenkacheln und Differenzkartenkacheln, das im System von 1 verwendet werden kann,
-
8 ist ein Ablaufdiagramm eines exemplarischen Verfahrens zum Generieren einer Reihe von Differenzkartenkacheln zur Modifikation der zuvor bereitgestellten Basiskartenkacheln auf einem Kartenserver, das im System von 1 verwendet werden kann;
-
9 ist ein Ablaufdiagramm eines exemplarischen Verfahrens zum Rendern von Kartenbildern auf einem Client-Gerät mittels Basiskartenkacheln und Differenzkartenkacheln, das im System von 1 verwendet werden kann;
-
10A ist eine exemplarische Basiskarte, die auf einem Client-Gerät im System von 1 mittels einer Reihe von Basiskartenkacheln angezeigt werden kann; und
-
10B ist ein Beispiel einer Transportkarte, die angezeigt werden kann, nachdem ein Benutzer über eine interaktive Benutzeroberfläche einen Transportkartentyp an einem Clientgerät auswählt, der aus dem Satz von Basiskartenkacheln erstellt wurde, die in 10A verwendet wurden und Differenzkartenkacheln für eine Transportkartenansicht;
-
10C ist ein Beispiel einer Fahrradkarte, die angezeigt werden kann, nachdem ein Benutzer über eine interaktive Benutzeroberfläche einen Fahrradkartentyp an einem Clientgerät auswählt, der aus dem Satz von Basiskartenkacheln erstellt wurde, die in 10A verwendet wurden und Differenzkartenkacheln für eine Fahrradkartenansicht;
-
11 ist ein allgemeines Blockdiagramm einer Bild-Rendering-Engine, die verwendet wird, um Bilder mithilfe von Kartenvektordaten in Form eines Satzes von Basiskartenkacheln und eines Satzes von Differenzkartenkacheln darzustellen.
-
12A ist ein Datendiagramm, das einen Satz von Vektordaten in Form von Vertex-Datenpunkten veranschaulicht, die gemäß einer Ausführungsform mithilfe eines Vertex-Stilattributs codiert wurden.
-
12B ist eine Texturkarte, die eine Stilnachschlagetabelle bildet, die Vertex-Stilattributwerte für jeden einer Reihe verschiedener Stile definiert und die in der Bild-Rendering-Engine von 11 verwendet wird, um Vertex-Stilattribute auf Basis einer Stilreferenz aufzulösen.
-
Detaillierte Beschreibung
-
Ein Kartenservergerät kommuniziert mit einem Karten-Client-Gerät zur effizienten Bereitstellung von Kartendaten zum Rendern von Kartenbildern auf dem Client-Gerät mit einer Reihe von Basiskartenkacheln mit Basiskarten-Objektdaten und einer Reihe von Differenzkacheln, wobei die Kartendaten Änderungen an den Basiskarten-Objektdaten innerhalb der Basiskartenkacheln nach dem Rendern der Karte auf dem Client-Gerät definieren. Sobald die Basiskartenkacheln und die Differenzkartenkacheln dem Clientgerät bereitgestellt sind und das Clientgerät die Basiskartenkacheln als Kartenbild verarbeitet und dargestellt hat, kann der Grafikprozessor im Clientgerät das neue Kartenbild, das mit den Differenzkartenkacheln verbunden ist, effizient darstellen, ohne einen vollständigen Vorverarbeitungsvorgang bei dem geänderten oder neuen Kartenbild durchzuführen, was die Prozessorleistung und Zeit für die Darstellung des zweiten oder geänderten Kartenbildes verringert, das mit den Differenzkartenkacheln verbunden ist.
-
In manchen Fällen stellt der Kartenserver zuerst Kartendaten für ein Clientgerät, z. B. einen Desktop-Computer, einen Laptop, ein Tablet-Gerät, ein Mobiltelefon usw., für die Darstellung eines ersten Kartenbildes bereit, das einem bestimmten Gebiet oder einer geografischen Region als Satz von einer oder mehreren Basiskartenkacheln entspricht und dann später dem Clientgerät Änderungsdaten in Form von Differenzkacheln für die Darstellung eines zweiten, unterschiedlichen Kartenbildes (z. B. eines Verkehrskartenbildes, eines Transportkartenbildes usw.) bereitstellt. die der gleichen geografischen Region entsprechend, zur Verfügung. Das Client-Gerät kann dann das zweite Kartenbild mit den Basiskartendaten, die zuvor zum Rendern des ersten Kartenbildes bereitgestellt wurden, und den Modifikationsdaten in Form von Differenzkacheln rendern, sodass der Kartenserver die zum Rendern des ersten und des zweiten Kartenbildes verwendeten Kartendaten nicht mehr als einmal für das Client-Gerät bereitstellen muss. Je nach Szenario beinhalten die Modifikationsdaten innerhalb der Differenzkartenkacheln eine oder mehrere Ergänzungen zu den Daten oder Funktionen innerhalb der zuvor bereitgestellten Basiskartenkacheln, Löschungen eines oder mehrerer Teile oder Löschung eines oder mehrerer Objekte der zuvor bereitgestellten Basiskartenkacheln bzw. Modifikationen eines oder mehrerer Teile oder Modifikationen eines oder mehrerer Objekte der zuvor bereitgestellten Basiskartenkacheln, wie Änderungen der Stile, Ebenen (Höhen) usw., die den zu rendernden Objekten zugeordnet sind. In einigen Fällen kann das Kartenservergerät die Basis- und Differenzkartenkacheln als Reaktion auf die Anforderung einer einzelnen Karte bereitstellen, wenn z. B. der Benutzer auf einem Client-Gerät erstmals ein Kartenbild für eine bestimmte geografische Region anfordert, die nicht Bestandteil des Basiskartenbildes ist.
-
In einem Fall kann der Kartenserver die Basiskartenkacheln in einem Nicht-Raster-Format, wie in einem Vektor-Grafikformat, bereitstellen, und der Client kann einige oder alle der Kartendaten zum Generieren des ersten Kartenbildes interpretieren. In einigen Fällen kann der Kartenserver eine oder mehrere der Basiskacheln in einem Hybrid-Format bereitstellen, wobei das Kartenmaterial Rasterdaten (z. B. ein Raster-Hintergrund) und Vektordaten beinhalten kann. Darüber hinaus kann der Kartenserver dem Client-Gerät eine oder mehrere Differenzkacheln in einem Raster-Format, in einem Nicht-Raster-Format oder in einem Hybrid-Format bereitstellen, und das Client-Gerät kann die Differenzkacheln zur Identifizierung der Änderungen an den Basiskartenkacheln verarbeiten. Das Client-Gerät kann dann das zweite Kartenbild als neues oder geändertes Bild rendern, basierend auf den Daten innerhalb der ursprünglichen Basiskartenkacheln und der Differenzkartenkacheln, die beide die gleiche geografische Region abdecken. Eine oder beide der Basiskarten- und der Differenzkarten-Datenkacheln können Stildaten beinhalten, um beim Rendern der Basiskartendaten oder der geänderten Karte zu verwendende verschiedene stilistische Merkmale zu spezifizieren. In diesem Fall können die Differenzkartenkacheln eine neue oder eine andere Reihe von Stildaten zum Rendern des Kartenbildes beinhalten oder spezifizieren. Bei der Darstellung des zweiten Kartenbildes kann jedoch das Clientgerät Stilinformationen für das vorverarbeitete Basiskartenbild ändern, um die Vornahme von Änderungen am Basiskartenbild zu ermöglichen und gleichzeitig die Notwendigkeit zu vermeiden, Vektorgrafikverarbeitung an allen Vektorelementen in den kombinierten Basis- und Differenzkartenkacheln durchzuführen, was die Verarbeitungsaktivitäten erheblich verringert, die nötig sind, um das neue oder zweite Kartenbild auf dem Clientgerät darzustellen.
-
Zum Rendern des Basiskartenbildes kann das Client-Gerät Kartendaten von dem Kartenserver über ein Kommunikationsnetzwerk anfordern, und der Kartenserver kann als Reaktion darauf die Basiskartendaten, die den Karteninhalt in einem Vektor-Grafikformat beschreiben, bereitstellen. So können beispielsweise die Basiskartendaten verschiedene geometrische Formen spezifizieren (z. B. die Verwendung mathematischer Beschreibungen der Punkte und Pfade, die Punkte verbinden) und angeben, wie diese Formen zur Darstellung verschiedener Kartenelemente, wie Straßen, Gebäude, Parks, Gewässern usw., positioniert werden sollen. In diesem Fall kann eine vektorbasierte Beschreibung des Liniensegments anstatt jedes Pixels, aus denen ein Rasterbild eines Liniensegments besteht, die beiden Endpunkte des Liniensegments spezifizieren und angeben, dass die beiden Endpunkte durch eine gerade Linie verbunden sind. Stildaten als Teil der Basiskartenkachel können die Breite, Farbe oder Zeichnungstextur (massiv, gepunktet usw.) der Linie oder eines anderen Objektelementes spezifizieren. Vektor basierende Beschreibungen der Kartenelemente können hierin als Vektordeskriptoren oder einfache Vektoren bezeichnet werden, und eine Reihe von einem oder mehreren Vektordeskriptor können als Vektordaten bezeichnet werden. Darüber hinaus kann ein individuelles Kartenelement (z. B. ein Gebäude) oder eine Ansammlung von mehreren Kartenelementen (z. B. Gebäude, Parks, Radwege und Gehwege eines Uni-Campus) in einigen Szenarien ein Kartenobjekt (oder einfach eine Funktion) definieren. In einer Ausführungsform ist eine Kartenfunktion einer einzigartigen Kennung zugeordnet, die vom Kartenserver und dem Client-Gerät zur Identifizierung benutzt werden kann. Im Allgemeinen kann eine Kartenfunktion mithilfe einem oder mehreren Vektordeskriptoren beschrieben werden.
-
Bei der Darstellung des Basiskartenbildes kann das Clientgerät Kartendaten für die Darstellung eines Kartenbildes zum Beispiel als Reaktion auf die jeweiligen Benutzerbefehle anfordern. Die Benutzerbefehle können eine Auswahl eines anderen Kartentyps, eine andere Zoomstufe usw. anweisen. In einem exemplarischen Szenario wählt ein Benutzer eine geografische Region und einen Basiskartentyp, z. B. den Typ einer Karte, die Landstraßen, Straßen, Sehenswürdigkeiten usw. ausweist. Das Client-Gerät generiert eine Anforderung zum Rendern eines Kartenbildes und übermittelt die Anforderung an dem Kartenserver, der als Reaktion Kartendaten, einschließlich einer Reihe von einer oder von mehreren Basiskartendatenkacheln, bei der die Kartendaten in jeder Basiskarten-Datenkachel in einem Vektor-Grafikformat (oder in einem anderen Nicht-Raster-Format, das zum Rendern eines Rasterbildes auf dem Client-Gerät geeignet ist) vorliegen, zur Verfügung stellt. Die Kartendaten können mehrere Vektordeskriptoren und in einigen Fällen Zusatzdaten, wie Stildaten, Beschriftungsdaten, Ebenendaten usw., beinhalten. Genauer gesagt können Beschriftungsdaten Zeichen im ASCII(American Standard Code for Information Interchange)-Format, einem Unicode-Format oder in einem anderen geeigneten Zeichenformat enthalten. Ebenendaten beinhalten Daten, die eine relative Ebene oder Schärfentiefe eines Kartenelementes angeben und somit festlegen, welche Kartenelemente andere Kartenelemente überlagernd in das Kartenbild gerendert werden sollen. Das Client-Gerät interpretiert anschließend die Kartendaten zum Rendern des Kartenbildes und zeigt das Kartenbild auf einer Anzeigekomponenten an.
-
Zur Fortsetzung des vorstehend beschriebenen Szenarios kann der Benutzer dann eine ÖPNV-Karte für die gleiche geografische Region wählen, und das Client-Gerät kann als Reaktion darauf eine Indikation zur Generierung eines neuen Kartenbildes, das einer ÖPNV-Karte entspricht, erzeugen und die Anforderung hierzu an den Kartenserver senden. Gemäß einer Implementierung erzeugt das Clientgerät eine Anfrage für Kartendaten des neuen Typs (z. B. „Kartendaten für eine Transportkarte von Region R bereitstellen”), und der Kartenserver prüft frühere Kommunikationen mit dem Clientgerät, um zu bestimmen, welche Basiskartenkacheln oder Basiskartendaten früher an das Clientgerät gesendet wurden und daher am Clientgerät bereits verfügbar sind. In einer anderen Implementierung spezifiziert das Client-Gerät, welche Art von Kartendaten für die ausgewählte Region bereits auf dem Client-Gerät, zusätzlich zur Anforderung der Kartendaten des neuen Typs, verfügbar sind (z. B. „Bereitstellung von Kartendaten für eine ÖPNV-Karte der Region R, angesichts der Tatsache, dass ich bereits über Kartendaten für eine einfache Karte der Region R auf der gleichen Zoomstufe verfüge”). Der Kartenserver muss in diesem Fall nicht wissen, welche Basiskartendaten oder Basiskartenkacheln ggf. früher an das Clientgerät gesendet wurden. Im Allgemeinen kann ein Werdegang von Transaktionen zwischen einem Kartenserver und einem Client-Gerät durch den Kartenserver und/oder das Client-Gerät instandgehalten werden.
-
Der Kartenserver kann dann ermitteln, welche Kartenelemente und Beschriftungen zu den bereits auf dem Client-Gerät verfügbaren Basiskartendaten hinzugefügt, von diesen entfernt oder für diese geändert werden müssen. So kann beispielsweise der Kartenserver ermitteln, wie sich eine Basiskarte für eine bestimmte Region und eine bestimmte Zoomstufe von einer ÖPNV-Karte der gleichen Region und der gleichen Zoomstufe unterscheidet und entsprechende Modifikationsindikationen in Form von einem oder mehreren Differenzkartenkacheln generieren. So können beispielsweise die Differenzkartenkacheln Vektordeskriptoren für zu den Basiskartenkacheln hinzuzufügende Objekte beinhalten, wie das Rendern von nicht in dem Basiskartenbild enthaltenen U-Bahn-Linien, können bestimmte, von den Basiskartenkacheln zu entfernende Funktionen beschreiben bzw. können bestimmte, auf den Basiskartenkacheln zu ändernde Objekte beschreiben, wie z. B. unterschiedliche Stile (z. B. zu ändernde Breiten, Schriftarten, Farben, Schattierungen usw.), Ebenen bzw. in dem Kartenbild zu verwendende Beschriftungen, welche auf dem Client-Gerät im Vergleich zu dem Basiskartenbild gerendert werden müssen. Der Kartenserver stellt dann die Modifikationsdaten in Form einer Reihe von Differenzkartenkacheln zur Verwendung zusammen mit den Basiskartenkacheln bereit, um das ÖPNV-Kartenbild auf dem Client-Gerät unter zumindest der teilweisen Verwendung von Basiskarten-Datenkacheln und Differenzkarten-Datenkacheln zu rendern. Anschließend kann, wenn der Benutzer eine weitere Kartenansicht der gleichen geografischen Region wählt, das Client-Gerät diese Ansicht vom Kartenserver anfordern, der die Unterschiede zwischen dem neu ausgewählten Kartenbild und dem Basiskartenbild in den bereitgestellten Basiskartenkacheln ermitteln kann, um eine andere oder eine Reihe von mehreren Differenzkacheln zu generieren. Diese neue Reihe von Differenzkacheln kann dann für das Client-Gerät bereitgestellt werden, das die neue Kartenansicht, basierend auf den ursprünglichen Basiskartenkacheln und der neuen Reihe von Differenzkacheln, generiert.
-
Diese und andere exemplarische Szenarien, in denen Kartendaten zum Rendern von Kartenbildern effizient für ein Client-Gerät bereitgestellt werden, werden anhand der beiliegenden Zeichnungen eingehend erläutert. Manche der Abbildungen können durch das Auslassen bestimmter Elemente zum Zweck der Veranschaulichung anderer Elemente vereinfacht sein. Diese Auslassungen von Elementen in einigen Figuren weisen nicht zwangsläufig auf das Vorhandensein oder Nichtvorhandensein von bestimmten Elementen in einigen der Ausführungsbeispiele hin, es sei denn, dass es in der entsprechenden geschriebenen Beschreibung explizit dargelegt ist.
-
Jetzt unter Bezugnahme auf 1, ein Kartenanzeigesystem 10 kann zur effizienten Übertragung von Kartendaten von einem Kartenservergerät zu einem Karten-Client-Gerät unter Verwendung von Basiskarten-Datenkacheln und Differenzkarten-Datenkacheln für ein Client-Gerät iterativ bereitgestellt werden. Wie in 1 veranschaulicht, beinhaltet das System 10 im Allgemeinen einen Kartenserver 12, eines oder mehrere Clientgeräte 14 und 15, die kommunikativ mit dem Kartenserver 12 über ein Kommunikationsnetzwerk 16 (das aus einem oder mehreren verschiedenen Kommunikationsnetzwerken bestehen kann) gekoppelt sind und eine Kartendatenbank 18, die kommunikativ mit dem Kartenserver 12 gekoppelt ist. Das Netzwerk 16 kann ein Weitverkehrsnetz (wide area network WAN), wie beispielsweise ein Internet, ein Lokalnetz (local area network LAN), oder jede andere geeignete Art von Netzwerk sein. Die Kartendatenbank 18 kann abhängig von der Ausführungsform an den Kartenserver 12 über das Netzwerk 16 oder eine andere Kommunikationsverbindung gekoppelt sein wie in 1 veranschaulicht. Des Weiteren kann die Kartendatenbank 18 mehrere verschiedene Datenbanken beinhalten oder zum Erstellen einer Karte Karten-Services verwenden. Die Datenbank 18 kann beispielsweise eine Basiskarten-Datenbank 18A beinhalten, in der Basiskartenkacheln für verschiedene geografische Regionen für eine beliebige Anzahl von Zoomstufen gespeichert sind. Darüber hinaus kann die Datenbank 18 eine oder mehrere Karten-Services-Datenbanken 18B–18E beinhalten. Hier kann beispielsweise der Kartendatenbank-Service 18B ÖPNV-Kartendaten speichern, die zu den Basiskartendaten hinzuzufügende ÖVPN-Daten definieren, wie diese in der Datenbank 18A gespeichert sind, um ÖPNV-Kartenansichten der in der Basiskartendatenbank 18A gespeicherten geografischen Regionen bereitzustellen. Ebenso können die Kartendatenbank-Services 18C und 18D jeweils Radweg- und Geländekartendaten speichern, was dem Kartenserver 12 die Erstellung von Radweg- und Geländekartenansichten für verschiedene geografische Regionen der in der Basiskarten-Datenbank 18A gespeicherten Kartendaten ermöglicht. Darüber hinaus können in einer Ausführungsform die Kartendatenbank-Services 18E personalisierte Kartendateninhalte für verschiedene Benutzer speichern. Insbesondere können Benutzer Kartendaten durch das Hinzufügen von Informationen zu verschiedenen Kartenkacheln, die Neuausrichtung von Informationen durch Änderung der Kartenstile, Einstellung von Präferenzen (z. B. zeige immer Punkte von Interesse, Radwege, Verkehrsdaten usw.) personalisieren. In diesen Fällen können die personalisierten Kartendaten oder Einstellungen in den Kartendatenbank-Services 18E für einen späteren Abruf und eine spätere Nutzung bei der Anzeige von Karten für Benutzer, wie im Folgenden genauer erläutert wird, gespeichert werden. Natürlich kann die Datenbank 18 beliebig viele Kartendatenbank-Services für alle anderen Arten von Kartendaten beinhalten, und diese Datenbank-Services könnten auf demselben oder auf verschiedenen Servergeräten gespeichert werden. Alternativ können alle, in den Karten-Service Datenbanken 18B–18E gespeicherten und bereitgestellten zusätzlichen Kartendaten in der Datenbank 18A gespeichert werden. Darüber hinaus ist der Einfachheit halber nur eine Instanz des Kartenservers 12 und der Kartendatenbank 18 in 1 dargestellt. Jedoch kann in anderen Ausführungsformen das System 10 mehr als einen Kartenserver 12, mehr als eine Kartendatenbank 18 und jede beliebige Anzahl von Client-Geräte 14, 15 beinhalten.
-
Der in 1 dargestellte Kartenserver 12 beinhaltet ebenfalls einen Prozessor 20 und einen von der Recheneinheit lesbaren Speicher 22, in dem eine Kartensteuereinheit 30 in Form von Anweisungen für eine Recheneinheit gespeichert ist, wobei die Anweisungen auf dem Prozessor 20 direkt (z. B. als kompilierter Code) oder indirekt (z. B. als Skript, der durch eine andere, auf dem Prozessor 20 ausgeführte Anwendung interpretiert wird) ausführbar sind. Der von der Recheneinheit lesbare Speicher 22 kann flüchtigen Speicher zum Speichern von Anweisungen für Recheneinheiten und Daten, mit denen die Anweisungen für Recheneinheiten zur Laufzeit ausgeführt werden (z. B. Schreib-Lesespeiche mit wahlfreiem Zugriff oder RAM) und in einer Ausführungsform Permanentspeicher, wie beispielsweise eine Festplatte, beinhalten. Die Kartensteuereinheit 30 kann eine dynamische Objektsteuereinheit 32 beinhalten, die Vektor-Grafikdaten für verschiedene Kartenelemente bzw. Kartenobjekte generiert, einschließlich Kartenelemente, die als Karteninhalt in Form von Basiskarten-Datenkacheln für das Client-Gerät 14 und 15 bereitgestellt werden. Die dynamische Objektsteuereinheit 32 kann ebenfalls zur Ermittlung des Unterschieds in einer vektorbasierten Beschreibung eines Kartenbildes relativ zu einem anderen Kartenbild, das dem gleichen geografischen Bereich oder der gleichen Region entspricht, zur Generierung einer entsprechenden Modifikationsindikation als eine Reihe von Differenzkartenkacheln und zur Bereitstellung der Modifikationsindikationen oder Differenzkartenkacheln für das Client-Gerät 14 bzw. 15 konfiguriert werden. Mit anderen Worten, anstatt über die Bereitstellung einer vollständigen vektorbasierten Beschreibung eines Kartenbildes kann die dynamische Objektsteuereinheit 32 eine Beschreibung der Änderungen an einer zuvor bereitgestellten vektorbasierten Beschreibung eines anderen Kartenbildes effizient liefern.
-
Im Allgemeinen kann das System 10 von 1 zur Erstellung von Kartenbildern Differenzkartenkacheln erstellen und verwenden (von denen jede im Wesentlichen eine partielle Kartenkachel ist, wobei jede Differenzkartenkachel nur einen Teil des auf dem Client-Gerät zu rendernden Kartenbildes der Region, die von der Kartenkachel abgedeckt wird, spezifiziert). Insbesondere kann das System, wenn die Differenzkartenkacheln mit einer anderen Kachel in Form einer Basiskartenkachel auf dem Client- oder Karten-Render-Gerät kombiniert wird, die gewünschte endgültige Kartenansicht (z. B. ÖPNV-Ansicht) erstellen. In einem Fall enthalten die Differenzkartenkacheln nur die Reihe von Modifikationen, die zur Änderung der Basiskartenkacheln in die gewünschte endgültige Kachel oder in das endgültige Kartenbild erforderlich sind.
-
In einer Ausführungsform beinhaltet jede Differenzkartenkachel zwei grundlegende Komponenten in Form von einer Reihe von Kachelbearbeitungen und einer Reihe von Stilvorgaben. Hier spezifiziert jede Reihe von Kachelbearbeitungen einen einzigen Vorgang bezüglich der Basiskartenkachel. Dieser Vorgang definiert, wie einige Geometrien in der Basiskartenkachel zu dem konvertiert werden, was im gewünschten endgültigen Zustand oder in der zu erstellenden Kartenansicht mittels der Differenzkartenkacheln erstellt werden soll. Die Kachelbearbeitungen können das Hinzufügen zusätzlicher Objekte, das Entfernen von Objekten bzw. die Änderung der Eigenschaften von Objekten beinhalten, wie z. B. eine Änderung der Rendering-Ebene eines Objektes, die Beschriftung eines Objektes usw. Die neue Reihe von Stilspezifikationen weist die zu verwendenden Farben, Schriftgrößen, Linienstärken usw. aus, um das endgültige gewünschte Aussehen im Vergleich zu den im Basiskartenbild oder in den Basiskartenkacheln verwendeten Stilen zu erzielen.
-
Insbesondere können Kachelbearbeitungen als einzelne geometrische, auf eine Basiskartenkachel anzuwendende Änderungsvorgänge spezifiziert werden, um die Basiskartenkachel in den gewünschten Endzustand zum Rendern in das gewünschte Kartenbild oder in die gewünschte Ansicht zu versetzen. Diese Vorgänge können in einem Fall auf Render-Vorgänge innerhalb der Kartenkachel angewendet werden (d. h., auf Geometrieteile, wie einen Streifen der Straße, eine Beschriftung, ein Polygon, das einen See darstellt usw.) und besitzen in der Regel drei Auswirkungen: Das Entfernen von Objekten, das Hinzufügen von Objekten oder das Ändern von Objekteigenschaften.
-
Insbesondere kann ein in der Differenzkartenkachel angegebener Render-Vorgang einige der Geometrien in einer Basiskartenkachel entfernen, die möglicherweise für die gewünschte endgültige Kartenkachel oder das gewünschte endgültige Kartenbild nicht relevant sind. Beispielsweise werden im Geländemodus viele Straßen überflüssig und müssen bei der Geländekartenansicht im Vergleich zu der Basiskartenansicht entfernt werden. Eine Differenzkartenkachel für eine Geländebildansicht kann einen einzelnen Entfernungsvorgang für jeden Straßen-Render-Vorgang enthalten, die von der Basiskartenkachel zur Erzielung des Geländekarten-Ansichtseffektes entfernt werden muss.
-
In einem weiteren Beispiel kann ein Render-Vorgang ein Kartenobjekt zu einer Basiskartenkachel hinzufügen. In vielen Fällen benötigt eine bestimmte Kartenansicht zusätzliche Daten oder Objekte über die im Basiskartenbild vorhandenen hinaus. Beispielsweise benötigt eine ÖPNV-Kartenansicht das Hinzufügen hervorgehobener ÖPNV-Linien zu den Basiskartenkacheln, die mit der Kartenansicht verbunden sind. Eine ÖPNV-Differenzkachel würde in diesem Fall Hinzufügevorgänge für jede zu zeichnende ÖPNV-Linie beinhalten. Jeder Vorgang kann drei Dinge spezifizieren, einschließlich der neu hinzuzufügenden Geometrie, dem visuellen Stil dieser Geometrie und unter welchem Render-Vorgang in der Basiskachel der neue Render-Vorgang hinzugefügt werden soll (sodass das System die Reihenfolge der Render-Vorgänge in der endgültigen Kartenkachel steuern kann).
-
In einem weiteren Beispiel kann ein Render-Vorgang die Ausführung einer stilistischen Neubewertung bereitstellen. Beispielsweise ist es in interaktiven Kartenansichten oft wünschenswert, die Präsentation der Render-Vorgänge zu ändern, ohne alle anderen Render-Vorgänge zu beeinflussen. Interagiert beispielsweise ein Benutzer mit Geschäften/Unternehmen, kann das System die Unternehmensbeschriftung und Symbol entsprechend ändern, um die Auswahl anzuzeigen. Das System möchte jedoch aber in der Regel nicht die Präsentation aller anderen Unternehmen rund um das gewählte Unternehmen ändern. In diesem Fall kann das System einen einzigen stilistischen Neubewertungsvorgang auf das ausgewählte Unternehmen einleiten und einen neuen visuellen Stil nur für das Unternehmen definieren. In anderen Fällen können stilistische Neubewertungsvorgänge auf alle Elemente innerhalb eines bestimmten Objektes, wie z. B. alle Elemente eines Parks, eines Gebäudes, die mit einem Radweg oder Wanderweg u. ä. verbunden sind, angewendet werden.
-
Des Weiteren kann, wie bereits erwähnt, jede Differenzkartenkachel eine Reihe von Stilen enthalten. In einem Beispiel kann jede Basis Kachel insbesondere eine „Stiltabelle” beinhalten, die visuelle Stilparameter jedes in der Kachel aufgeführten Render-Vorgangs enthält. Wird eine Differenzkachel von dem Servergerät an das Client-Gerät gesendet, kann die Differenzkachel ebenfalls eine neue Stiltabelle für alles, das in der endgültigen komponierten Kachel sichtbar ist, enthalten. Während es in einigen Fällen wünschenswert ist, nur die Änderungen in der Stiltabelle der Basiskartenkachel innerhalb der Differenzkachel zu spezifizieren, ist es ebenfalls möglich, einfach eine vollständig neue Stiltabelle als Bestandteil der Differenzkartenkachel bereitzustellen, da Stiltabellen in der Regel eine kleine Größe besitzen. Tatsächlich ist es aufgrund der relativ hohen Komplexität eines solchen Stildifferenzmechanismus und da Stiltabellen in der Regel winzig im Vergleich zu der Geometrie und zu den Objektdaten innerhalb der Differenz- und Basiskartenkacheln sind, in der Regel nicht notwendig, Optimierungsversuche beim Senden von Stiländerungen in einer Differenzkartenkachel durchzuführen. Des Weiteren können Stiltabellen so konfigurierten werden, dass, wenn ein Wert in der Stiltabelle nicht enthalten ist, der Wert des Stiltabelleneintrags als ein leerer Stil behandelt wird (z. B. nicht zu rendern). Im Gegensatz hierzu können Stiltabellen so konfiguriert werden, dass, wenn ein Stil in der Stiltabelle nicht enthalten ist, der für den Stiltabelleneintrag zu verwendende Stiltabellenwert dem Stiltabellenwert für diesen Eintrag entspricht, wie dieser in der Stiltabelle der Basiskartenkachel verwendet wird.
-
Auf jeden Fall kann bei der Zusammenstellung aller oben beschriebenen Elemente, solange sich das Client-Gerät und das Servergerät einig sind, welche Basiskartenkacheln zu verwenden sind, das Servergerät Differenzkartenkacheln erstellen und senden und das Client-Gerät kann diese anfordern, empfangen und verarbeiten, wodurch Änderungen an den Basiskartenkacheln, die bereits für das Client-Gerät bereitgestellt wurden, einfach spezifiziert werden können, da das Client-Gerät neue oder andere Kartenansichten einer bestimmten geografischen Region rendern kann. Insbesondere trifft dies zu, wenn das Client-Gerät das erste Mal Kacheln für einen Nicht-Basismodus oder eine Nicht-Basiskartenansicht (z. B. eine ÖPNV-Kartenansicht) anfordert. Dann muss das Client-Gerät alle Basiskacheln vom Server anfordern, über die dieses nicht bereits verfügt, zusammen mit Differenzkartenkacheln, um die Basiskartenansicht in die ÖPNV-Kartenansicht zu transformieren. Somit fordert in dem Fall, in dem ein Client-Gerät normalerweise ohne Differenzkartenkacheln eine Kachel anfordert, dieses bei einem Differenzkartenkachelsystem zweimal die Anzahl der Kacheln an: Eine Basiskartenkachel und eine Differenzkartenkachel. Sobald eine Reihe von Basiskartenkacheln für eine bestimmte geografische Region an das Client-Gerät gesendet und von diesem empfangen wurde, muss das Client-Gerät jedoch nur noch die Differenzkartenkacheln für eine neue Kartenansicht dieser Region anfordern oder empfangen. Da Differenzkartenkacheln verglichen mit den Basiskartenkacheln in der Regel klein sind, sendet und empfängt dieses System bei Anforderung mehrerer Kartenansichten derselben geografischen Region weniger Daten. Das heißt, die Basiskacheln müssen nur einmal angefordert und fortan auf dem Client-Gerät gespeichert werden, sodass während die Basiskacheln zum ersten Mal benötigten werden, die doppelte Anzahl an Kacheln angefordert werden müssen. Anschließend sind die Basiskacheln bereits auf dem Client verfügbar und deshalb müssen nur die Differenzkacheln angefordert werden. Darüber hinaus werden bei einer anfänglichen Anzeige der Basiskarte durch das Client-Gerät zur Umstellung auf eine ÖPNV-Kartenansicht nur die Differenzkartenkacheln benötigt. Des Weiteren ermöglicht die Verwendung von Basiskacheln und Differenzkacheln einem Kartensystem den leichten Umgang mit personalisierten Kartendaten oder stellt Benutzern die Möglichkeit zu personalisierten Karteninhalten, Objekten, Anzeigeneinstellungen usw. zur zukünftigen Anzeige von Karten zur Verfügung. Insbesondere können Benutzeränderungen an Karten, Zusätze zu Karten, Kartenpräferenzen, Anzeigeneinstellungen, Karten-Standardansichten usw. implementiert werden und als eine Reihe von Differenzkacheln gespeichert und für Benutzer bereitgestellt werden, zusammen mit der Reihe von Basiskacheln, auf die Benutzerpräferenzen in Form von Differenzkacheln angewendeten werden, um eine Reihe von Basiskacheln zur Personalisierung des Karteninhalts für einen Benutzer zu ändern. Kartenpräferenzen des Benutzers, Einstellungen oder andere persönliche Kartendaten können auf einem Kartenserver in Form von Differenzkacheln gespeichert (an einen bestimmten Benutzer gebunden oder diesem zugeordnet) werden und somit auf dem Server ohne viel Arbeitsspeicher- oder Speicherplatzbedarf zwischengespeichert werden. In diesem Fall kann die gleiche Reihe von Basiskacheln für eine bestimmte Region an jeden Benutzer gesendeten werden, zusammen mit verschiedenen benutzerspezifizierten oder benutzerspezifischen, auf die Basiskacheln angewendeten Differenzkacheln, um personalisierte Kartendaten zwischenzuspeichern und dem Benutzer zur Verfügung zu stellen. Alternativ können personalisierte Differenzkacheln erstellt und auf Endgeräten, wie Mobiltelefonen, Computer, Laptops, Tablets usw., gespeichert und auf die Basiskacheln angewendet werden, wenn diese Basiskacheln auf dem Client-Gerät, auf dem die Kartenanwendung implementiert ist, empfangen werden.
-
Im Allgemeinen kann das Rendering-System auf dem Client-Gerät die Basis- und Differenzkacheln kombinieren und anschließend die Kombination auf dem Bildschirm der Benutzerschnittstelle auf jede gewünschte Weise darstellen. Jedoch kann das Client-Gerät dieses Rendering in einer Art und Weise ausführen, in der nicht alle, bereits zur Anzeige der Basiskartenkacheln vorbereiteten Daten zur Reduzierung der Render-Vorgänge beim Wechsel von einer Basiskartenansicht (ohne Differenzkacheln) oder von einer anfänglichen, mittels einer Reihe von Differenzkacheln erstellten Kartenansicht zu einer anderen, unter Verwendung anderer Differenzkacheln erstellten Kartenansicht, gelöscht werden. Darüber hinaus wird die Leistung eines die zuvor beschriebene Techniken verwendenden Systems auf allen beschriebenen Ebenen der Architektur verbessert, da Serialisierungsvorgänge auf dem Server, die benötigte Bandbreite und die Übertragungszeit über das Netzwerk sowie die Vorbereitungszeit auf dem Client reduziert werden.
-
Unter erneuter Bezugnahme auf 1, die Kartendatenbank 18A kann eine Reihe von Basiskarten-Datenkacheln 40, die die zu verwendenden Kartendaten für jede der verschiedenen geografischen Regionen jeweils auf einer Anzahl von Zoomstufen definieren, speichern. Die Basiskarten-Datenkacheln 40 können z. B. Kartendaten in einem Vektor-Grafikformat speichern oder beschreiben, könnten aber auch stattdessen Daten in einem Raster-Grafikformat beschreiben. Der Kartenserver oder die Kartensteuereinheit 30 kann eine Reihe von diesen Basiskarten-Datenkacheln 40 anfänglich für das Client-Gerät 14 bereitstellen, wenn das Client-Gerät 14 erstmalig Daten für eine bestimmte geografische Region anfordert. Fordert jedoch das Client-Gerät 14 für eine bestimmte geografische Region eine andere Kartenansicht als die Basiskarte an, kann der Kartenserver 12 zusätzliche Daten von z. B. einem oder mehreren Karten-Services 18B–18E empfangen und die dynamische Objektsteuereinheit 32 kann eine Reihe von an das Client-Gerät 14 zu sendenden Differenzkartenkacheln generieren, die die Art und Weise beschreiben, in der Basiskartenkacheln für bestimmte geografische Region zur Erstellung der neuen Kartenansicht geändert werden müssen. In einigen Fällen können die Differenzkartenkacheln erstellt und zusammen mit den Basiskartenkacheln für eine bestimmte geografische Region gesendet werden, wenn das Client-Gerät 14 anfänglich eine andere Kartenansicht anfordert, als die den Basiskartenkacheln zugeordnete Kartenansicht. In anderen Fällen kann der Kartenserver 12 die Differenzkartenkacheln zu einem späteren Zeitpunkt erstellen und senden, z. B. wenn das Client-Gerät 14 eine zusätzliche Kartenansicht für eine bestimmte geografische Region nach der Anforderung und Anzeige der Kartenansicht der Basiskartenkacheln für diese geografische Region anfordert.
-
Somit stellt der Server 12 für eine effizientere Übertragung der Kartengrafiken zwischen einem Server und einem Client eine Reihe von Basiskarten-Datenkacheln in einem Vektorformat für das Client-Gerät 14 bereit. Der Server 12 stellt bei einer Benutzeranforderung zur Anzeige neuer Kartenelemente oder bei sonstigen Änderungen der Kartenansicht auf dem Client-Gerät 14 eine Beschreibung der Unterschiede zwischen den Basiskarten-Datenkacheln und den Kartenkacheln, die der Benutzer derzeit sehen möchte, bereit. So kann beispielsweise der Server 12 spezifizieren, welche Elemente gelöscht bzw. hinzugefügt werden sollen (und die Geometrie der Elemente), die neuen Stile, die für einige der zuvor bereitgestellten Kartenelemente angewendet werden sollen (und welche visuellen Attribute diese Stile verwenden) usw. So generiert der Server 12 Differenzkartenkacheln anstelle neuer Kartenkacheln, die wesentliche Teile der Basiskarten-Datenkacheln, die zuvor für das Client-Gerät 14 bereitgestellt wurden, wiederholen würden.
-
Zum Generieren einer Modifikationsindikation oder einer Differenzkachel kann die dynamische Objektsteuereinheit 32 eine serialisierte Darstellung von Vektordaten, die einem bestimmten Kartenbild oder einer Karte entsprechen, mit einer serialisierten Darstellung der Vektordaten, die dem durch die Basiskarten-Datenkacheln) zur Verfügung gestellten Kartenbild entsprechen, vergleichen. Zum Beispiel kann der Controller für dynamische Merkmale 32 Vektordaten für eine Basiskarte für eine Region R mit Zoomstufe Z anfordern und der Kartenserver 18A kann als Reaktion eine Reihe von Vektordeskriptoren V1, V2, V5, ... bereitstellen, wobei VN, eine oder mehrere Basiskartendatenkacheln definiert. Ein anderes Mal kann die dynamische Funktionssteuerung 32 Vektordaten für eine Transitkarte für die Region R bei Zoomstufe Z anfordern, und der Kartenserver 18 kann als Antwort eine Reihe von Vektordeskriptoren bereitstellen V1, V3, ... VL, die die Kartenansicht für die Region R mit ÖVPN-Karteninformationen definieren, bereitstellen. Basierend auf den zwei Reihen von Vektordeskriptoren ermittelt die dynamische Objektsteuereinheit 32, dass für die Region R bei Zoom-Stufe Z (i) sowohl zur Basiskarte als auch zur ÖVPN-Karte ein Kartenelement gehört, das dem Vektordeskriptor V1 entspricht, (ii) die Basiskarte, aber nicht die ÖVPN-Karte, Kartenelemente beinhaltet, die den Vektordeskriptoren V2 und V5, entsprechen, und (iii) die ÖVPN-Karte, aber nicht die Basiskarte, ein Kartenelement beinhaltet, das dem Vektordeskriptor V3 entspricht. Die dynamische Objektsteuereinheit 32 kann eine Modifikationsindikation oder eine Differenzkachel zur Kennzeichnung generieren, dass zur Generierung eines ÖVPN-Kartenbildes mittels zuvor bereitgestellter Vektordaten zum Rendern eines Basiskartenbildes von den Basiskartenkacheln der Vektormodifizierer V3 zu den zuvor bereitgestellten Vektordaten hinzugefügt wurde, während die Vektordeskriptoren V2 und V5 von den zuvor bereitgestellten Vektordaten entfernt werden. Genauer gesagt kann die dynamische Objektsteuereinheit 32 eine Modifikationsindikation oder eine Differenzkachel generieren, die eine oder mehrere Indikationen beinhaltet und eine oder mehrere Indikationen entfernt, von denen jede einen Vorgang (z. B. Hinzufügen, Entfernen) und einen Operanden (z. B. ein Vektordeskriptor, eine Kartenfunktion oder ein Kartenelement) identifizieren kann.
-
Darüber hinaus kann die dynamische Objektsteuereinheit 32 in einigen Ausführungsformen ermitteln, dass beim Generieren des Basiskartenbildes und des zusätzlichen Kartenbildes ein bestimmtes Kartenelement gerendert wird, eine oder mehrere Eigenschaften des Kartenelementes geändert werden müssen, um das Kartenelement beim Rendern des zusätzlichen Kartenbildes wiederzuverwenden. Einige oder alle Kartenelemente können beispielsweise mit jeweiligen Tiefenwerten verbunden werden, die zum Positionieren dieser Kartenelemente im Vergleich zu anderen, teilweise oder vollständig überlappenden Kartenelementen im gleichen Gebiet hinweisend sind. Ein Kartenelement, das ein Straßensegment auswählt und einem Vektordeskriptor Vi entspricht kann beispielsweise noch spezifischer bei einer Tiefe D1 in einer Basiskarten Abbildung wiedergegeben werden aber bei einer Tiefe D2 in einer Transitkarten Abbildung wiedergegeben werden. In diesem Szenario kann der Controller für dynamische Merkmale 32 einen Änderungshinweis erzeugen, der angibt, dass die Tiefe, die mit Vektordeskriptor Vi, verbunden ist, der dem Clientgerät 14 früher bereitgestellt wurde, zu Tiefe D2 aktualisiert werden sollte.
-
Des Weiteren kann die dynamische Objektsteuereinheit 32 neben den Vektordaten Beschriftungsdaten für die hinzugefügten oder geänderten Kartenobjekte als Teil der Modifikationsindikation oder alternativ als eine separate Indikation bereitstellen. Die Beschriftungsdaten können Zeichen in jedem geeigneten Format und in manchen Ausführungsformen Hinweise von Kennungen von Kartenfunktionen oder Gruppen von Kartenfunktionen beinhalten, zu denen die entsprechenden Beschriftungen gehören.
-
In einer weiteren Ausführungsform kann die Kartensteuereinheit 30 und vor allem die dynamische Objektsteuereinheit 32 Differenzkacheln, basierend auf den von einer oder mehreren Services-Datenbanken 18B–18E gesendeten Informationen, direkt generieren, ohne diese Informationen mit den Kartendaten innerhalb der Basiskarten-Datenkacheln, die von der Basiskarten-Datenbank 18A bereitgestellt wurden, zu vergleichen. In einigen Fällen können die Karten-Services-Datenbanken 18B–18E ÖPNV-Daten, Radwegdaten, Geländedaten und personalisierte Kartendaten (beispielsweise) in Form einer Beschreibung von Differenzen oder Änderungen, die an den Basiskarten-Datenkacheln im Basiskarten-Datenserver 18A vorgenommen werden müssen, bereitstellen, anstatt für eine neu angeforderte Kartenansicht eine vollständige Raster- oder Vektor-Grafikbeschreibung einer Kartenregion bereitzustellen. In diesem Fall kann die dynamische Objektsteuereinheit 32 Differenzkacheln für eine bestimmte geografische Region anhand der von den Karten-Services-Datenbanken 18B–18E zur Verfügung gestellten Differenzbeschreibungen generieren, anstatt die Vektor- oder Raster-Grafiken für ganze Kacheln, die mit einer Basiskartenansicht (von der Basiskarten-Datenbank 18A) und einer zusätzlichen Kartenansicht (z. B. einer ÖVPN-Kartenansicht) einer geografischen Region zur Generierung der zu dem Client-Gerät zu senden Differenzkacheln verbunden sind, zu vergleichen.
-
In einigen Ausführungsformen kann die Kartensteuereinheit 30 neben den Vektordaten auch Stildaten bereitstellen, die angeben, wie Vektordaten zu rendern sind. Stildaten können insbesondere solche visuellen Merkmale oder Eigenschaften, wie Linienstärke (z. B. Breite in Pixeln), Linienfarbe, Linienschattierung oder Stil, eine oder mehrere Füllfarben usw., beschreiben. In einer Ausführungsform werden Stildaten für verschiedene, auf Vektordaten anzuwendende visuelle Stile bereitgestellt. Der Kartenserver 12 kann außerdem angeben, welche visuellen Stile das Clientgerät auf verschiedene vektorbasierte Beschreibungen der Kartenelemente (hierin auch als Vektordeskriptoren oder einfach Vektoren bezeichnet) anwenden soll. Des Weiteren gibt in einigen Ausführungsformen Kartenserver 12 an, welcher visuelle Stil für eine vektorbasierte Beschreibung eines Kartenelements für einen bestimmten Kartentyp gilt, z. B. Gelände, Transport, Verkehr, Fahrradweg usw. Stildaten können auch als Teil zwischengespeicherter personalisierter Kartendaten verwendet und gespeichert werden, um die verschiedenen Stile anzugeben, die für verschiedene Benutzer an bestimmten Kartenorten verwendet werden sollen. Zu diesem Zweck können verschiedene, jeweils durch eine einzigartige Stil-ID identifizierte Stile definiert werden. In einem Fall kann eine Stiltabelle für eine bestimmte Kartenansicht zur Angabe der auf die verschiedenen Linien, Flächen und andere Funktionen für diese Ansicht anzuwendenden Stilwerte erstellt werden. In diesem Fall kann für die Basiskartenansicht jeder Basiskartenkachel eine Stiltabelle oder eine Reihe von Stilen zugeordnet werden, und diese Stiltabelle kann als Teil oder zusammen mit den Basiskartenkacheln zum Client-Gerät gesendeten werden, wenn die Basiskartenkacheln zu einem Client-Gerät gesendet werden. Somit werden Differenzkacheln durch die dynamische Objektsteuereinheit 32 erstellt, in diesem Fall kann eine neue Stiltabelle zur Anwendung auf die Basiskartenkacheln enthalten sein (oder zur Anwendung auf modifizierte Basiskartenkacheln), um auf dem Client-Gerät geänderte oder neue Kartenansichten zu erstellen.
-
Auf jeden Fall kann die Kartensteuereinheit 30 Kartendaten für eine bestimmte geografische Region und für die Zoomstufe in einem Nicht-Raster-Format, wie z. B. als Vektordaten, in einer elektronischen Meldung oder als eine Reihe von elektronischen Meldungen, je nach Ausführungsform, für das Client-Gerät 14 bereitstellen. Im Allgemeinen können diese elektronischen Meldungen eine oder mehrere Kartenkacheln beinhalten. Ferner erzeugt der Kartenregler 30 Kartendaten als eine Reihe von Deskriptoren für Kartenkacheln, sodass jeder Deskriptor für Kartenkacheln eine Kartenkachel, d. h. einen Teil einer Kartenabbildung in einer bestimmten Größe, beschreibt, (z. B., 256 mal 256 Pixel). Die Größe eines geografischen Gebiets, die durch eine einzelne Kartenkachel dargestellt ist, hängt von der Zoomstufe ab, die der Kartenkachel zugeordnet ist, so dass eine einzelne Kartenkachel in einer unteren Zoomstufe ein größeres geografisches Gebiet darstellt als eine einzelne Kartenkachel auf einer höheren Zoomstufe. Der Kartenregler 30 kann jede Beschreibung der Kartenkachel entsprechend einem Grafikformats für Vektoren erzeugen, und ein Client-Gerät, wie beispielsweise ein Client-Gerät 14 in 1 kann lokal ein Rasterbild für jede Kachel erzeugen.
-
Weiter unter Bezug auf 1, das Client-Gerät 14 kann einen Prozessor 50 zum Ausführen von Anweisungen und einen Speicher 52 zum Speichern von Anweisungen und Daten beinhalten. Das Client-Gerät 14 kann auch ein Eingabegerät 54 und ein Ausgabegerät 56 zum Erhalten und von Eingaben von einem Benutzer und zum Bereitstellen von Ausgaben an einen jeweiligen Benutzer beinhalten. Das Eingabegerät 54 kann auch eins oder mehrere einer Tastatur, einer Maus, und eines Touchscreens beinhalten, und das Ausgabegerät 56 kann eine Anzeige oder ein Bildschirmgerät, wie beispielsweise ein Touchscreen oder beispielsweise einen „normalen” (nur Ausgabe) Bildschirm, beinhalten. Das Client-Gerät 14 kann verschiedene Softwarekomponenten wie beispielsweise Treibergeräte, Betriebssystem (Operating System OS) Event-Handler usw. zum Steuern des Eingabegeräts 54 und des Ausgabegeräts 56 beinhalten, um eine interaktive Benutzerschnittstelle zu implementieren.
-
Ferner können Softwareanwendungen, die auf dem Prozessor 50 ausgeführt werden diese Softwarekomponenten benutzen, um eine anwendungsspezifische Benutzerschnittstelle bereitzustellen.
-
Je nach Ausführungsform kann das Client-Gerät 14 ein PC wie einen Desktop-Computer, ein Laptop-Computer oder ein Tablet-PC, eine Workstation, ein tragbares Kommunikationsgerät, wie ein Smartphone oder eine andere geeignete Recheneinheit, sein. In einer Ausführungsform ist das Client-Gerät 14 ein sogenanntes Thin Client, das von einem anderen Computergerät für bestimmte Rechner- oder Speicherfunktionen abhängig ist. In einer solchen Ausführungsform beinhaltet der Arbeitsspeicher 52 beispielsweise nur flüchtige Speicherkraft wie RAM, und ein Programm und/oder eine Speichereinheit mit persistenter Speicherkraft ist außerhalb des Client-Geräts 14. In einer anderen Ausführungsform beinhaltet der Arbeitsspeicher 52 flüchtige und persistente Speicherkomponenten.
-
Eine Browser-Anwendung 60 kann eine Anzahl von der Recheneinheit lesbaren Anweisungen beinhalten, die auf dem Prozessor 50 ausgeführt werden. Im Allgemeinen greift die Browseranwendung 60 auf Webseiten zu, die Inhalte, wie Textbilder, eingebettete Videos usw., und Anweisungen in einer Auszeichnungssprache, wie beispielsweise Hypertext Auszeichnungssprache (Hypertext Markup Language HTML), beinhalten, und gibt Inhalte auf dem Ausgabegerät 56 entsprechend den Anweisungen in der Auszeichnungssprache wieder. Dementsprechend kann die Browseranwendung 60 Funktionen zum Erzeugen und Verarbeiten von Datenpaketen implementieren, die mit einem Hypertext-Übertragungsprotokoll (Hypertext Transfer Protokoll HTTP), dem Analysieren von HTML Inhalten, einer Datenverschlüsselung entsprechend dem Protokoll für Secure Socket Layer (SSL), dem Anfordern und Überprüfen einers digitalen Zertifikats, usw. sowie Funktionen für Benutzerschnittstellen zum Erhalten verschiedener Benutzerkommandos in Bezug auf Navigation, Wiedergabe und Datenmanagement von Webseiten übereinstimmen. In manchen Ausführungsformen ist die Browseranwendung 60 dazu konfiguriert, um Anweisungen in einer Skriptsprache (z. B. Javascript) zu interpretieren, die auf einer Webseite bereitgestellt werden.
-
Eine dynamische Karten-Rendering-Engine 62 kann als ein Bestandteil der Browser-Anwendung 60 ausgeführt werden. In anderen Ausführungsformen kann ein Softwaremodul jedoch ähnlich zu der Maschine zur Kartenwiedergabe 62 als eine einzelne Anwendung oder als eine Komponente einer anderen Anwendung ausgeführt werden. Abhängig von der Ausführungsform kann die dynamische Maschine zur Kartenwiedergabe 62 ein Plug-in sein (z. B. eine Reihe von zusammengestellten Anweisungen, welche die Funktionalität Browseranwendungen 60 erweitert und auf dem Prozessor 50 ausgeführt werden), ein Skript (z. B. eine Reihe von Anweisungen in einer Skriptsprache, die durch eine Browseranwendung 60 während der Laufzeit interpretiert werden), oder eine andere geeignete Softwarekomponente sein. Gemäß eines Beispielszenarios wird die dynamische Maschine zur Kartenwiedergabe 62 heruntergeladen wenn ein Benutzer, der das Client-Gerät 14 bedient, eine Webseite besucht, die eine eingebettete interaktive Karte beinhaltet. Die Webseite kann insbesondere ein erstes Hyperlink zu einem Online-Kartenserver und einem bestimmten geografischen Ort sowie ein zweiten Hyperlink zu einer Kopie einer dynamischen Maschine zur Kartenwiedergabe 62 beinhalten, die zur Wiedergabe von Kartendaten erforderlich ist, welche vom Online-Kartenserver entsprechend zum ersten Hyperlink erhalten wurden.
-
Die dynamische Karten-Rendering-Engine 62 kann interaktive Steuerelemente, beispielsweise über die Benutzeroberfläche der Browser-Anwendung 60, zur Verfügung stellen. Die interaktiven Steuerungselemente können einem Benutzer erlauben, ein geografisches Gebiet oder eine Region, eine Kartenart (z. B. Basis, Verkehr, Transit), eine Zoomstufe usw. auszuwählen. Entsprechend einem Beispielszenario fordert ein Benutzer zuerst eine Basiskarte eines geografischen Gebiets an und fordert dann eine andere Kartenart für das gleiche Gebiet an. Die Maschine zur dynamischen Kartenwiedergabe 62 kann Kartendaten in einem Grafikformat für Vektoren als Antwort auf Benutzerkommandos anfordern und erhalten.
-
Während des Betriebs empfängt die dynamische Karten-Rendering-Engine 62 Vektordaten (und in einigen Ausführungsformen Stildaten) vom Kartenserver 12, stellt das entsprechende Kartenbild mithilfe der empfangenen Vektordaten dar und veranlasst die Anzeige des Kartenbildes in einer bestimmten Region, die durch die Browseranwendung 60 zugewiesen wird. Die Browseranwendung 60 kann beispielsweise ein HTML5 Canvas Element zur Anzeige von Kartenabbildungen erschaffen. Die dynamische Maschine zur Kartenwiedergabe 62 kann vom Kartenserver 12 auch einen Änderungshinweis erhalten, der auf eine oder mehrere Änderungen an den erhaltenen Vektordaten hinweist, um eine andere Kartenabbildung wiederzugeben.
-
Der Einfachheit halber ist das Client-Gerät 14 mit einem einzigen Prozessor 50 dargestellt. Das Clientgerät 14 kann jedoch in anderen Ausführungsformen zusätzliche Verarbeitungseinheiten wie einen Grafikprozessor (GPU) 51 enthalten, die so konfiguriert sind, dass sie zum Beispiel die Bilddarstellung auf dem Ausgabegerät 56 erleichtern. Ferner kann die Browseranwendung 60 in einer Ausführungsform eine Ansammlung von Grafikfunktionen zum effizienten Erzeugen einer Kartenabbildung benutzen. Der Arbeitsspeicher 52 kann beispielsweise ein Plug-in, wie beispielsweise eine OpenGL® oder Direct3D® Sammlung speichern, die Funktionen zum Wiedergeben von Grafiken mit verschiedenen Anwendungen einschließlich der Browseranwendung 60 auf dem Client 14 haben, die durch Anwendungsprogrammierschnittstelle (application programming interface API) Zugriff haben. In einer anderen Ausführungsform speichert der Arbeitsspeicher 52 ein Plug-in, das für Browseranwendungen, wie beispielsweise WebGL, besonders geeignet ist. In einer anderen Ausführungsform speichert der Arbeitsspeicher 52 auch zusätzliche Softwarekomponenten, die eine effiziente Wiedergabe von Bildern über das Ausgabegerät 56 erleichtern. Zum Beispiel kann Speicher 52 ein Adobe® Flash®-Plugin oder ein O3D-Plugin speichern.
-
Es wird darauf hingewiesen, dass die dynamische Karten-Rendering-Engine 62 im Allgemeinen in jeder geeigneten Anwendung arbeiten kann. Das Client-Gerät 15 kann beispielsweise ein tragbares Gerät, wie ein Smartphone, sein, in dem die dynamische Karten-Rendering-Engine 62 in einer Kartenanwendung 74 ausgeführt wird. Ähnlich zu der Browseranwendung 60 kann die Kartenanwendung 74 eine Reihe von Anwendungen beinhalten, die in einem Speicher 72 gespeichert sind und auf einer oder mehreren Prozessoren auf dem Client-Gerät 70 (nicht angezeigt) ausgeführt werden. In manchen Implementierungen benutzt die Kartenanwendung 74 Netzwerkfunktionen, die durch eine Browseranwendung bereitgestellt wurden, die auf einem Client-Gerät 70 ausführbar sind (beispielsweise über eine entsprechende API). In anderen Implementierungen beinhaltet die Kartenanwendung 74 zumindest teilweise eine Browserfunktionalität, wie beispielsweise den Kommunikationsstack, der TCP, IP, HTTP usw., unterstützt, um auf die Kartenserver zuzugreifen 12.
-
Zur besseren Veranschaulichung der Funktion eines Kartenservers und eines Client-Gerätes im System von 1 oder einem ähnlichen Umfeld sind mehrere Szenarien unter Bezugnahme auf die in 2–6 dargestellten Diagramme zu berücksichtigen. Insbesondere wird ein exemplarischer Informationsaustausch zwischen einem Kartenserver und einem Client-Gerät zur Darstellung von zwei verschiedenen Kartenbildern für eine bestimmte geografische Region unter Bezugnahme auf 2 erläutert, gefolgt von einer Erläuterung mehrerer Szenarien, einschließlich der Bereitstellung einer Reihe von Differenzkartenkacheln zum Rendern zusätzlicher Kartenelemente bzw. zum Löschen von Elementen aus einer Basiskartenansicht auf einer 1:1-Basis bei einer Reihe von Basiskartenkacheln (3), Bereitstellung einer einzigen Differenzkartenkachel zur Modifizierung der Höhe, mit der eine Kartenfunktion oder ein Element in einer Reihe von Basiskartenkacheln gerendert wird (4), Bereitstellung einer oder mehrerer Differenzkartenkacheln, die neue Stiltabellen für eine Reihe von Basiskartenkacheln enthalten (5), und Bereitstellung einer zweiten Reihe von Differenzkacheln einer Kartenansicht für einen Wechsel von einer Art der Kartenansicht zu einer anderen Art der Kartenansicht unter Verwendung der gleichen Reihe von Basiskartenkacheln (6).
-
Unter Bezugnahme auf 2, ein exemplarischer Meldungsaustausch 100 beinhaltet eine Benutzeroberfläche 102 als Bestandteil des Client-Gerätes oder ist in sonstiger Weise mit diesem verbunden (z. B. das Client-Gerät 14 von 1), eine in dem Client-Gerät ausgeführte dynamische Karten-Rendering-Engine 104 und einen Server 106 (z. B. der Kartenserver 12 von 1). Zurückverweisend auf 1, kann die Benutzerschnittstelle durch einen Browser 60 bereitgestellt werden, während die dynamische Maschine zur Kartenwiedergabe 104 und der Server 106 in den jeweiligen Komponenten 62 und 12 implementiert werden können. Als Reaktion auf einen Benutzerbefehl kann die Benutzerschnittstelle 102 eine Anforderung 110 für grundlegende oder Basiskartendaten für eine bestimmte Region R1 generieren und die Anforderung an die dynamische Karten-Rendering-Engine 104 senden. Die Anfrage 110 kann als eine elektronische interne Nachricht an das Client-Gerät übertragen werden, in der beispielsweise die Komponenten 102 und 104 implementiert werden. Die dynamische Karten-Rendering-Engine 104 kann wiederum eine Anfrage 112 für einen Satz von Basiskartendaten in Form eines Satzes von Basiskartenkacheln erzeugen, die die Region R1 abdecken, um über ein Kommunikationsnetzwerk zum Server 106 gesendet zu werden. Die Anfrage 112 kann die Region R1 mithilfe von Global Positioning Service(GPS)-Koordinaten oder in jeder anderen geeigneten Weise angeben. Darüber hinaus kann die Anforderung 112 eine Kartentypindikation enthalten, um zu spezifizieren, dass die Kartendaten zum Rendern einer Basiskarte oder einer Basiskartenansicht, die Zoomstufe der Karte usw. angefordert werden.
-
Des Weiteren kann in einigen Ausfürungsformen die Anforderung 102 angeben, ob vektorbasierte Kartendaten, wie die Basiskartenkacheln, die Region R1, die die Komponenten 102 und 104 implementieren, bereits auf dem Client-Gerät verfügbar sind.
-
Als Reaktion auf die Anforderung 112 kann der Server 106 eine Antwort 114 generieren, die Kartendaten in einem Nicht-Raster-Format, wie z. B. einem Vektor-Grafikformat, zum Rendern eines Basiskartenbildes enthält. Entsprechend einem exemplarischen Szenario beinhaltet die Antwort 114 eine vektorbasierte Beschreibung des Basiskartenbildes für die Region R1, das nicht auf zuvor bereitgestellten Vektordaten beruht und im Besonderen in der Form einer Reihe von Basiskarten-Datenkacheln für die Region R1 sein kann, wie diese in der Basiskarten-Datenbank 18A von 1 gespeichert ist. Mit anderen Worten, die Antwort 114 beinhaltet eine vollständige Beschreibung des Basiskartenbildes für die Region R1 in Form einer Reihe von einer oder mehreren Basiskartenkacheln und deren zugehörige Stiltabellen. Die Antwort 114 kann Kartendaten beinhalten, die in jeder geeigneten Weise organisiert sind, wie in einem oder mehreren Kacheldeskriptoren T1, T2, ... TN. Im Allgemeinen können Kartendaten für jede Anzahl von Kacheln, einschließlich einer einzelnen Kachel, bereitgestellt werden. Für jede Kachel kann die Reaktion 112 verschiedene Merkmale F1, F2 usw. beschreiben, die jeweils mithilfe eines oder mehrerer Vektordeskriptoren in Übereinstimmung mit einem geeigneten Vektorgrafikformat angegeben werden können (wie oben angegeben, kann ein Merkmal mit einem einzelnen Kartenelement oder einer Gruppe von Kartenelementen verbunden sein). Funktionen können einem einzelnen Kartenelement, wie beispielsweise einem Gebäude oder unübersichtlichen Gruppierungen von Kartenelementen, entsprechen. In manchen Ausführungsformen kann die Antwort 114 einzigartige Kennungen für die Kartenfunktionen zum Benutzen bei einer zukünftigen Identifizierung bereitstellen. In einigen Ausführungsformen enthält die Antwort 114 zusätzlich Stildaten, die verschiedene visuelle Attribute von Kartenelementen in Form von einer oder mehreren Stiltabellen spezifiziert. Insbesondere kann mit jeder Kartendatenkachel eine Stiltabelle oder eine einzelne Stiltabelle kann übertragen werden, um für alle, als Teil der Antwort auf die Anforderung 112 der Karte für die Region R1 versendeten Basiskarten-Datenkacheln verwendet zu werden.
-
Die dynamische Karten-Rendering-Engine 104 kann das Basiskartenbild mit den Basiskartenkacheln T1–TN und der hiermit verbundenen Stiltabelle rendern (wie z. B. eine Basiskarten-Stiltabelle), das Basiskartenbild für die Benutzeroberfläche 102 bereitstellen, wie dies durch die Meldung 116 angezeigt wird, ein entsprechendes Ereignis generieren und die empfangenen Basiskartenkacheln (und sofern verfügbar auch die Stildaten) in einem Speicher zur zukünftigen Verwendung ablegen. In einer Ausführungsform speichert die dynamische Karten-Rendering-Engine 104 zusätzlich eine Indikation dafür, dass sich die Kartendaten auf eine Basiskarte beziehen.
-
Im Szenario von 2 entscheidet der Benutzer später, den in der Benutzeroberfläche 102 angezeigten Kartentyp von einer Basiskartenansicht zu einem Transportkartenbild oder einer Transportkartenansicht für dieselbe Region R1 zu wechseln, ohne die geografischen Koordinaten zu ändern und aktiviert die entsprechende Steuerung über die Benutzeroberfläche 102. Als Reaktion darauf generiert die Benutzeroberfläche 102 eine Anforderung 120 für eine ÖVPN-Kartenansicht und leitet die Anforderung 120 zur dynamischen Karten-Rendering-Engine 104 weiter, wodurch wiederum eine Indikation oder Anforderung 121 an den Server 106 bereitgestellt wird, dass ein anderes Kartenbild auf dem Client-Gerät wiedergegeben werden soll. In einer Ausführungsform ist der Hinweis 121, ähnlich zur Anfrage 112, eine Anfrage bezüglich Daten für Transitkarten. In einer weiteren Ausführungsform fordert die Indikation 121 speziell Modifikationsdaten zur Modifizierung der zuvor bereitgestellten Kartendaten an, um ein ÖVPN-Kartenbild zu rendern und kann angeben, dass das Client-Gerät bereits über die erforderlichen Basiskartenkacheln für die ÖVPN-Kartenansicht der Region verfügt oder dass diese in diesem gespeichert sind. Der dynamischen Rendering-Engine 104 kann jedoch bekannt sein, dass diese bereits die Basiskartenkacheln für die gewünschte Region R1 speichert und einfach eine Reihe von Differenzkacheln für die ÖVPN-Kartenansicht dieser Region anfordern.
-
Als Reaktion erstellt der Server 106 einen Satz von einer oder mehreren Differenzkartendatenkacheln (Δ Kachel 1 bis Δ Kachel N) und stellt sie dem Clientgerät als eine Reihe elektronischer Nachrichten 122 1...122 N (wie in 2 veranschaulicht) oder als einzelne Nachricht zur Verfügung. Jede der Differenzkartenkacheln in den Meldungen 122 1...122 N kann eine oder mehrere Indikationen, wie die Vektordaten für die entsprechenden Basiskartenkacheln T1..., enthalten. TN zu ändern sind. In einigen Szenarien werden jedoch nur einige der in der Antwort 114 beschriebenen Basiskartenkacheln T1...TN geändert, und in diesem Fall müssen nur die Differenzkacheln (Kachel Δ) für diese Basiskacheln als Teil der Meldungen 122 1... gesendet werden. 122 N. So kann beispielsweise eine Kartenkachel ein Gewässer zeigen, das möglicherweise das gleiche Aussehen besitzt, wie jenes, das als Teil einer Basiskarte oder als Teil einer ÖVPN-Karte angezeigt wird und somit muss keine Differenzkachel für die dieses Gewässer zeigende Basiskarten-Datenkachel(n) generiert oder gesendet werden.
-
Für jede zu ändernde Basiskartenkachel kann die Meldung 122 i einen oder mehrere Modifikationsdeskriptoren M1, M2...MM. Im Allgemeinen kann ein Änderungsdeskriptor einen Vektordeskriptor für ein Kartenelement angeben, das zur früher bereitgestellten Basiskartendatenkachel hinzugefügt werden soll, ein Kartenelement in der früher bereitgestellten Kartendatenkachel identifizieren, das entfernt werden soll, einen neuen Wert für eine Eigenschaft eines Kartenelements in der früher bereitgestellten Basiskartendatenkachel angeben usw. und er kann den durchzuführenden Vorgang angeben (z. B. einen Hinzufügungs-, Löschungs- oder Umgestaltungsvorgang). In einer Ausführungsform, identifiziert jeder der Änderungsdeskriptoren M1, M2, ... MM den durchzuführenden Vorgang, zum Beispiel hinzufügen, löschen, ändern, Tiefe ändern usw. und bezieht außerdem einen oder mehrere Operanden oder Parameter, zum Beispiel einen Vektordeskriptor für ein Kartenmerkmal oder ein Kartenelement, das hinzugefügt wird, eine Kennung eines Kartenmerkmals oder ein Kartenelement, das entfernt wird, usw. ein.
-
Nach Empfang der Meldungen 122 1...122 N und den mit diesen verbundenen Differenzkartenkacheln (ΔKachel i) rendert die dynamische Karten-Render-Engine 104 die Kacheln für das angeforderte ÖVPN-Kartenbild mittels einiger oder aller in der Antwort 114 enthaltenen Vektordaten (d. h. die Basiskarten-Datenkacheln) und die als Teil der Differenzkartenkacheln vorhandenen Modifikationsindikationen in den Meldungen 122 1...122 N. Insbesondere kann die dynamische Maschine zur Kartenwiedergabe 104 die vorher bereitgestellten Vektordeskriptoren interpretieren, die entsprechend den Nachrichten 122 1 verändert wurden ...122 N bereitgestellt wurden, um ein Rastertransportkartenbild darzustellen und ein Ereignis 126 zu erzeugen, um die Darstellung des Transportkartenbildes über die Benutzeroberfläche 102 zu veranlassen. Die dynamische Maschine zur Kartenwiedergabe 104 kann auch die veränderten Kartendaten im Arbeitsspeicher speichern. In der Regel speichert die dynamische Karten-Rendering-Engine 104 die ursprünglich bereitgestellten Basiskarten-Datenkacheln und die geänderten Kartendatenkacheln.
-
Während das exemplarische Meldungsaustauschdiagramm 100 der 2 die Übertragung der Basis- und Differenzkartenkacheln als Antwort auf separate Meldungen oder Anforderungen von dem Client-Gerät illustriert, können die Basis- und Differenzkartenkacheln vom Server 106 an die dynamische Karten-Rendering-Engine 104 des Client-Gerätes als Reaktion auf eine Kartenanforderung einer einzelnen Kartenansicht gesendet werden. Würde beispielsweise die ursprüngliche Anforderung 110 von 2 nach der ÖVPN-Kartenansicht für eine geografische Region, für die das Client-Gerät hatte noch keine Reihe von Basiskartenkacheln empfangen und gespeichert hat, lauten, würde der Server 106 auf die Anforderung reagieren, indem dieser die mit der geografischen Region verbundenen Basis- und Differenzkartenkacheln für die ÖVPN-Kartenansicht senden würde.
-
Als ein weiteres Beispiel kann das Client-Gerät eine Anforderung von Kartendaten an den Server auf eine Weise senden, die ein personalisiertes Rendern der digitalen Karte auf der Benutzeroberfläche mittels der z. B. in den Kartendatenbank-Services 18E von 1 gespeicherten personalisierten Kartendaten ermöglicht. Hier kann der Server den Benutzer oder das Client-Gerät (Benutzeranmeldung, Geräte-ID usw.) als jemanden/etwas erkennen, der/das über personalisierte Daten (Einstellungen, Stile, hinzugefügten Daten, Standard-Kartenansichten usw.) verfügt und eine oder mehrere Differenzkacheln generieren, die eine personalisierte Kartenanzeige für den Benutzer mittels der Standard-Basiskacheln für eine geografische Region implementieren. Der Server kann dann sowohl die Basiskarten-Datenkacheln als auch die personalisierten Differenzkacheln (entweder zusammen oder getrennt) für die Region senden, was dem Client-Gerät ermöglicht, eine personalisierte Karte für die Region, entsprechend der hierin erläuterten Beschreibung, zu rendern. In einigen Fällen können die personalisierten Differenzkacheln mit den Differenzkacheln für andere Kartenansichten identisch sein, wenn beispielsweise eine personalisierte Kartenpräferenz die Verwendung einer bestimmten Kartenansicht (z. B. eine ÖVPN-Kartenansicht) als Standard-Kartenansicht angibt. Personalisierte Differenzkacheln können, basierend auf den gespeicherten personalisierten Einstellungen für den Benutzer, für bestimmte Kartenregionen erstellt oder auf eine oder alle Kartenregionen angewendet werden. In einigen Fällen kann das Client-Gerät die persönlichen Präferenzen speichern und Indikationen dieser Einstellungen an den Server senden, der diese Präferenzen dann zur Generierung von Differenzkacheln verarbeiten kann, die, wenn diese auf die Basiskartenkacheln auf dem Client-Gerät angewendet werden, die personalisierte Kartenansicht auf dem Client-Gerät erstellen.
-
Während eines exemplarischen Meldungsaustauschs 150 in 3 stellt der Kartenserver 106 Differenzkartenkacheln, einschließlich der zu den Kartenobjekten hinzufügenden Vektordeskriptoren bzw. der von einer Reihe von Basiskartenkacheln zu löschenden Vektordeskriptoren, für die dynamische Karten-Rendering-Engine 104 über entsprechende Meldungen 152 1...152 N bereit. In diesem Fall wird eine Differenzkartenkachel auf einer 1:1-Basis für jede zu ändernde oder in irgendeiner Weise zu modifizierende Basiskartenkachel gesendet. Die in den Differenzkartenkacheln spezifizierten Kartenobjektvorgängen werden auf einige oder alle zuvor bereitgestellte Basiskarten-Datenkacheln zum Rendern eines neuen Kartenbildes auf dem Client-Gerät, auf dem die Benutzeroberfläche 102 und die dynamische Karten-Rendering-Engine 104 implementiert sind, ausgeführt. In diesem Fall können die Differenzkartenkacheln in den Meldungen 152 1...152 N Hinzufügungen zu einer Reihe von Basiskarten-Datenkacheln oder Löschungen aus der zuvor für das Client-Gerät bereitgestellten Reihe von Basiskarten-Datenkacheln sein, und jede der Differenzkartenkacheln innerhalb jeder der Meldungen 152 1...152 N kann nur mit einer einzigen Basiskartenkachel verbunden werden, um die in den Vektor-Grafikdaten vorhandenen Differenzen oder die vorzunehmenden Änderungen innerhalb dieser Basiskartenkachel zu definieren.
-
In jedem Fall kann jede der Differenzkacheln innerhalb der Meldung 152 1...152 N kann eine Beschreibung in einem Grafikformat für Vektoren oder einem anderen geeigneten Nicht-Rasterformat einer Kartenfunktion beinhalten, die eine oder mehrere Kartenelemente hat. Eine Meldung 152 kann beispielsweise ebenfalls eine Höhen- oder Ebenenanzeige enthalten, die angibt, wie das entsprechende Kartenobjekt im Verhältnis zu einem anderen, an der gleichen Stelle angeordneten Kartenobjekt oder -element gerendert wird. Zum Beispiel kann ein neues Kartenmerkmal, das über eine der Differenzkacheln in Nachricht 152 1... hinzugefügt wurde 152 N hinzugefügt wird, ein Segment von Eisenbahnschienen, und beinhaltet die zuvor bereitgestellte Basiskachel ein Kartenobjekt, das ein Segment einer Straße ist. Abhängig von den jeweiligen Tiefenhinweisen der neuen Kartenfunktion und der vorher bereitgestellten Kartenfunktion kann der Abschnitt des Zuggleises über oder unter dem Straßensegment an dem Punkt wiedergegeben werden, an dem sich die Zuggleise und die Straße kreuzen.
-
Nach Empfang der Differenzkartendatenkacheln in den Nachrichten 152 1...152 N, kann die dynamische Karten-Rendering-Engine 104 ein neues Kartenbild darstellen und ein Ereignis 156 erzeugen, um die Darstellung des neuen Kartenbildes in der Benutzeroberfläche 102 zu veranlassen. In einer Ausführungsform speichert die dynamische Karten-Rendering-Engine 104 ebenfalls die erweiterten Kartendaten in einem Speicher als eine neue Version des Kartenmaterials, während diese weiterhin die ursprünglichen Basiskarten-Datenkacheln und die Differenzkartenkacheln für die angezeigte Kartenansicht speichert.
-
Unter Bezugnahme auf 4, ein exemplarischer Meldungsaustausch 200 kann auftreten, wenn der Server 106 ermittelt, dass ein in zuvor bereitgestellten Kartendaten vorhandenes bestimmtes Kartenobjekt in einem neuen Kartenbild oder in einer neuen Kartenansicht mit einer neuen Höhe oder mit einigen anderen Objektänderungen gerendert wird. Der Server 106 kann eine Modifikationsindikation 202 in Form einer einzigen Differenzkartenkachel generieren, die für ein oder mehrere, durch einen einzigartigen Objektidentifikator gekennzeichnete(s) Kartenobjekt(e) angibt, dass eine Änderung Informationen über beispielsweise die neue Höhe enthält, mit der Kartenobjekte für eine oder mehreren Basiskarten-Datenkacheln gerendert und an die dynamische Karten-Rendering-Engine 104 übertragen werden müssen. In einer weiteren Ausführungsform zeigt die in der Meldung 202 gesendete Differenzkartenkachel neue Höhenwerte für mehrere Kartenobjekte oder -elemente, die sich möglicherweise auf der gleichen oder auf verschiedenen Basiskartenkacheln befinden können. Somit können in diesem Beispiel einer einzigen Differenzkachel mehrere Basiskacheln zugeordnet werden. Nach Erhalt der Modifikationsindikationen als Teil der in der Meldung 202 gesendeten Differenzkachel kann die dynamische Karten-Rendering-Engine 104 ein neues Kartenbild im Hinblick auf die Änderung und die Basiskartenkacheln rendern und ein Ereignis 204 generieren, das zur Darstellung eines neuen Kartenbildes auf der Benutzeroberfläche 102 führt.
-
Darüber hinaus kann ein exemplarischer Meldungsaustausch 250 von 5 erfolgen, wenn der Server 106 ermittelt, dass bestimmte Kartenobjekte in zuvor bereitgestellten Kartendaten mit verschiedenen Stilen, wie die Verwendung verschiedener Farben, verschiedener Linienbreiten, unterschiedlicher Dicke oder anderen Arten von Stileigenschaften gerendert werden soll. In diesem Fall kann der Server 106 eine einzelne Modifikationsindikation 252 in Form einer einzigen Differenzkartenkachel, die eine neue Stiltabelle enthält oder die eine neue Indikation der Stile, die bereits für eine oder mehrere der Basiskartenkacheln auf dem Client-Gerät angewendet werden, generieren und an die dynamische Karten-Rendering-Engine 104 senden. In einer weiteren Ausführungsform kann der Server 106 eine Vielzahl von Differenzkartenkacheln senden, jeweils einschließlich einer neuen Reihe von Stildaten oder einer neuen Stiltabelle für eine entsprechende, sich bereits auf dem Client-Gerät befindende Basiskarten-Datenkacheln, um eine Stiländerung auf dem Client-Gerät zu beeinflussen. Nach Empfang der Modifikationsindikation 252 in Form einer Differenzkartenkachel mit einer neuen Stiltabelle oder Änderungen an einer Stiltabelle kann die dynamische Karten-Rendering-Engine 104 ein neues Kartenbild mit den Basiskarten-Datenkacheln und der/den neuen Stiltabelle(n) in der/den Differenzkacheln rendern und ein Ereignis 254 generieren, damit das neue Kartenbild auf der Benutzeroberfläche 102 dargestellt wird.
-
6 zeigt einen exemplarischen Meldungsaustausch 300, in dem der Server 106 Modifikationsdaten in Form von Differenzkartenkacheln für die dynamische Karten-Rendering-Engine 104 zur Modifizierung eines auf dem Client-Gerät angezeigten Kartenbildes auf eine neue Kartenansicht für eine Region R1 bereitstellt, wenn die derzeit angezeigte Kartenansicht bereits eine geänderte Kartenansicht ist, z. B. eine, die von der Basiskartenansicht mit einer Reihe zugehöriger Basiskartenkacheln geändert wurde. So kann beispielsweise der Meldungsaustausch 300 von 6 am Ende des Meldungsaustauschs 100 von 2 auftreten, wenn der Benutzer des Client-Gerätes die Anzeige einer Radwegkartenansicht der Kartenregion auswählt und das Client-Gerät derzeit die ÖVPN-Kartenansicht für die Region darstellt. In diesem Fall kann der Benutzer die Anzeige einer Radwegkartenansicht anstelle der ÖVPN-Kartenansicht für die Kartenregion R1 wählen. Hier aktiviert der Benutzer das entsprechende Steuerelement über die Benutzeroberfläche 102 zur Anzeige der Radwegkartenansicht. Als Reaktion darauf generiert die Benutzeroberfläche 102 eine Anforderung 302 für eine Radwegkartenansicht und leitet die Anforderung 302 an die dynamische Karten-Rendering-Engine 104 weiter, wodurch wiederum eine Indikation oder Anforderung 304 an den Server 106 bereitgestellt wird, dass ein anderes Kartenbild auf dem Client-Gerät gerendert werden muss. Die Indikation 304 kann eine Anforderung für Radwegkartendaten sein und spezifizieren, dass die Basiskartenkacheln bereits auf dem Client-Gerät zur Verfügung stehen. Alternativ kann der dynamischen Karten-Rendering-Engine 104 bekannt sein, dass die Basiskartenkacheln für die gewünschte Region bereits im Speicher abgelegt sind und nur die Differenzkartenkacheln für die Radwegkartenansicht für diese Region anfordern.
-
Als Reaktion stellt der Server 106 einen Satz aus einer oder mehreren Differenzkartendatenkacheln für das Clientgerät als eine Reihe elektronischer Nachrichten 306 1... zur Verfügung 306 N (wie in 6 dargestellt) oder als eine einzelne Meldung bereit.
-
Jede der Differenzkacheln in den Nachrichten 306 1...306 N kann eine oder mehrere Indikationen beinhalten, wie die Vektordaten für die entsprechenden Basiskartenkacheln T1...TN zu ändern sind. In einigen Szenarios jedoch nur einige der Kacheln T1...TN geändert werden, und in diesen Fällen müssen nur Differenzkartenkacheln für diese Kacheln an das Client-Gerät gesendet werden.
-
Für jede zu ändernde Kachel kann eine Differenzkachel in der Meldung 306 i einen oder mehrere Modifikationsdeskriptoren M1, M2...MM bereitstellen, die einen Vektordeskriptor für hinzuzufügende Kartenelemente von zuvor bereitgestellten Basiskarten-Datenkacheln spezifizieren kann, ein in den zuvor bereitgestellten Kartenkacheln zu entfernendes Kartenelement identifizieren, einen neuen Wert für eine Eigenschaft eines in den zuvor bereitgestellten Basiskartenkacheln vorhandenen Kartenelementes spezifizieren, eine neue Reihe von Stildaten oder eine Stiltabelle spezifizieren usw.
-
Nach Empfang der Differenzkartenkacheln in den Meldungen 306 1...306 N, stellt die dynamische Karten-Rendering-Engine 104 die Kacheln für das angeforderte Fahrradkartenbild mithilfe einiger oder aller Vektordaten dar, die in Reaktion 114 (d. h. die Basiskartendatenkacheln) von 2 bereitgestellt wurden und den Änderungshinweisen, die in den Nachrichten 306 1...306 N als Differenzkartenkacheln bereitgestellt wurden. Insbesondere kann die dynamische Karten-Rendering-Engine 104 die vorher bereitgestellten Vektordeskriptoren interpretieren, die gemäß den Nachrichten 306 1... geändert wurden 306 N für das Rendern des Raster-Radwegbildes modifiziert wurden und ein Ereignis zum Rendern des Radwegkartenbildes zur Ansicht über die Benutzeroberfläche 102 generieren. Die dynamische Maschine zur Kartenwiedergabe 104 kann auch die veränderten Kartendaten im Arbeitsspeicher speichern. Im Allgemeinen speichert die dynamische Karten-Rendering-Engine 104 weiterhin sowohl die ursprünglich bereitgestellten Basiskarten-Datenkacheln als auch die geänderten Kartendatenkacheln für die Radwegansicht, kann aber auch, je nach Vorzug, die Differenzkacheln für die ÖVPN-Kartenansicht löschen oder nicht speichern.
-
Als Nächstes werden mehrere Beispielverfahren, die in Computergeräten implementiert werden können, die im System von 1 oder einer ähnlichen Umgebung betrieben werden, unter Bezugnahme auf 7–9 erörtert. Diese Verfahren können als Computerprogramme implementiert werden, die in jeder geeigneten Programmsprache entwickelt und auf dem greifbaren nicht vorübergehenden computerlesbaren Medium gespeichert (wie beispielsweise ein oder mehrere Festplattenlaufwerke) und auf einem oder mehreren Prozessoren ausführbar sind. Die Verfahren von 7 und 8 können beispielsweise im Kartenserver 12 implementiert werden, und das Verfahren von 9 kann in einem Client-Gerät 14 implementiert werden. Obwohl die Verfahren von 7–9 auf einem einzelnen Computer, wie beispielsweise auf einem Server oder persönliche Computer (personal computer, PC) ausgeführt werden können, ist es auch möglich, dass zumindest einige dieser Verfahren auf eine verteilte Weise mithilfe mehrerer Computer, wie beispielsweise in einer Cloud-Computing Umgebung, implementiert werden.
-
Unter Bezugnahme auf 7, ein exemplarisches Verfahren 350 kann zur Generierung von Kartendaten für mehrere Kartenbilder in z. B. der Kartensteuereinheit 30 des Kartenservers 12 oder einer ähnlichen Komponente des Servers 106 implementiert werden. Entsprechend einer Ausführungsform werden die Vektordeskriptoren zum Rendern eines ersten Bildes der Karte für eine bestimmte Region bei Block 352 als eine Reihe von Basiskartenkacheln generiert. Die Vektordeskriptoren oder Basiskartenkacheln können einem Vektor-Grafikformat entsprechen und beschreiben die jeweiligen Kartenelemente. In einigen Ausführungsformen können die Vektordeskriptoren in entsprechende Kartenfunktionen eingruppiert werden, wovon jede eine oder mehrere Kartenelemente beinhaltet. Darüber hinaus können in einigen Ausführungsformen Vektordeskriptoren teilweise als Raster-Kartendaten bereitgestellt werden, die ebenfalls Stildaten beispielsweise in Form einer Stiltabelle zum effizienten Rendern und Neu-Rendern von Vektordaten, textbasierten Beschriftungsdaten, Ikonen oder Symbole, wie Straßenschilder usw., beinhalten.
-
Als Nächstes werden bei Block 354 die Basiskartenkacheln für ein Client-Gerät als eine oder mehrere Meldungen bereitgestellt. Bei Block 356 wird eine Anforderung für Daten zum Rendern eines zweiten Kartenbildes für die gleiche Region empfangen. In einigen Szenarien wird die Anfrage als Antwort dazu übertragen, dass der Benutzer eine unterschiedliche Kartenart am Client-Gerät auswählt, was beispielsweise im interaktiven Diagramm in 2 angezeigt wird. Eine Modifikationsindikation in Form einer Reihe von Differenzkartenkacheln, von denen jede eine Beschreibung einer oder mehrerer Modifikationen für zuvor bereitgestellte Basiskartenkacheln beinhaltet, wird bei Block 358 generiert und für das Client-Gerät bei Block 360 bereitgestellt. Während die Anforderung einer neuen Kartenansicht 356 als Empfangen signalisiert wird, nachdem die Basiskartenkacheln für die Region der erforderlichen Kartenansicht an das Client-Gerät gesendet wurden, könnte diese Anforderung ebenfalls empfangen werden, bevor die Basiskartenkacheln an das Client-Gerät gesendet werden, sodass sowohl die Basiskartenkacheln (Block 354) als auch die Differenzkartenkacheln (360) für die Region als Reaktion auf die gleiche Kartenbildanforderung auf dem Client-Gerät empfangen werden.
-
In einem anderen Szenario wird die in Block 356 empfangene Anforderung als Reaktion auf die Benutzerauswahl einer neuen Zoomstufe, bei der das der gleichen Region entsprechende Kartenbild und der gleiche Kartentyp gerendert werden sollen, gesendet. Zum Beispiel können die Vektordeskriptoren, die bei Block 352 erzeugt werden, mehrere Kacheln auf Zoomstufe Z1 eines Basiskartentyps für eine geografische Region R beschreiben. Nachdem der Benutzer Zoomstufe Z2 auswählt hat und eine entsprechende Datenanfrage bei Block 356 ausgegeben wird, kann ein Änderungshinweis oder ein Satz von Differenzkartenkacheln erzeugt und dem Clientgerät bei Block 358 bzw. 360 bereitgestellt werden. Das Clientgerät kann die vorher bereitstellten Vektordeskriptoren in Übereinstimmung mit den Differenzkartenkacheln hinzufügen, entfernen oder ändern sowie einige oder alle Vektordeskriptoren neu skalieren, um die entsprechenden Kartenelemente mit Zoomstufe Z2 darzustellen. Als spezifischeres Beispiel können die bei Block 354 bereitstellten Vektordeskriptoren eine vektorbasierte Beschreibung eines Parks mit Zoomstufe Z1 beinhalten und dieselbe vektorbasierte Beschreibung des Parks kann verwendet werden, um den Park mit Zoomstufe Z2 als Teil des geänderten Kartenbildes erneut wiederzugeben.
-
8 zeigt ein exemplarisches Verfahren 400 zum Generieren einer Differenzkartenkachel für zuvor bereitgestellte Kartendaten, das in der Kartensteuereinheit 30 des Kartenservers 12 oder einer ähnlichen Komponente von z. B. Server 106 implementiert werden kann. In einer Ausführungsform werden zumindest einige der Verfahrensschritte 400 bei den Blöcken 356–360 des oben erläuterten Verfahrens 350 ausgeführt.
-
Bei Block 402 wird eine Indikation empfangen, dass ein Kartenbild aktualisiert oder an das Client-Gerät gesendet werden soll. Hinzufügungen zu den zuvor bereitgestellten Vektordeskriptoren in Form von Basiskartenkacheln werden identifiziert und die entsprechenden Beschreibungen bei Block 404 generiert. Bei Block 406 werden Löschungen von einigen der zuvor bereitgestellten Vektordeskriptoren identifiziert und die entsprechenden Beschreibungen der Modifikationen generiert. Wie oben erläutert werden Änderungen bestimmter Kartenfunktionen in einigen Szenarien entfernt und Ergänzungen für einige der Teilfunktionen dargestellt. In einigen Fällen können diese Differenzbeschreibungen durch den Vergleich der Vektor- oder Raster-Grafikdaten der Reihe der Basiskartenkacheln mit den neuen Kartenkacheln der neuen Kartenansicht zum Generieren der Differenzen oder Meldungen, die von den die verschiedenen anderen Daten für die neue Ansicht speichernden Datenbanken, wie die Datenbanken 18B–18D von 1, gesendet wurden, verwendet werden. In jedem Fall werden die Modifikationsindikationen, wie z. B. eine Beschreibung der Änderungen an den Vektordaten (z. B. Veränderung der Höhen- oder Ebenenangaben, Beschriftungen usw.), generiert und bei Block 408 zusammengestellt. Bei Block 410 kann ebenfalls eine neue Stiltabelle für jede Reihe der Kartenelemente erstellt werden, um die Objekte der Basiskartenkacheln mittels verschiedener Stileigenschaften zu rendern. Anschließend wird bei Block 412 eine Reihe von Differenzkartenkacheln erstellt, die die Hinzufügungen, Löschungen, Änderungen und auf die Basiskartenkacheln beim Rendern des neuen Kartenansichtbildes oder der Kartenansicht anzuwendenden Stile definieren. Diese Differenzkacheln können dann an das Client-Gerät als eine oder mehrere elektronische Meldungen gesendet werden.
-
9 ist ein Ablaufdiagramm eines exemplarischen Verfahrens 450 zum Rendern von Kartenbildern, das beispielsweise in der dynamischen Karten-Rendering-Engine 62 oder 104 implementiert werden kann. Bei Block 452 werden Vektordeskriptoren für ein bestimmtes Gebiet oder eine bestimmte Region als eine Reihe von Basiskarten-Datenkacheln empfangen, und ein erstes Kartenbild wird mit den empfangenen Vektordeskriptoren in Block 454 gerendert. Zu diesem Zweck können die erhaltenen Vektordaten interpretiert werden, um ein Rasterbild zu erzeugen.
-
Als Nächstes wird bei Block 456 eine Anforderung zum Rendern eines zweiten Kartenbildes von der Benutzeroberfläche, wie z. B. der Schnittstelle einer Browser-Anwendung, empfangen. Wie vorstehend besprochen wurde, kann das Bild der zweiten Karte für die gleiche Region vorgesehen sein, aber auch einem unterschiedlichen Kartentyp, einer unterschiedlichen Ansicht oder Zoomstufe entsprechen. Eine Modifikationsindikation, wie eine Reihe von bisher empfangene und gespeicherte Basiskartenkacheln ändernde Differenzkacheln, werden bei Block 458 empfangen. Das zweite Kartenbild wird dann mit einigen oder allen Vektordeskriptoren, die bei Block 452 als Basiskarten-Datenkacheln und bei Block 458 als Differenzkartenkacheln empfangen wurden, gerendert. Wie vorstehend besprochen wurde, können Modifikationen an Vektordaten in den Differenzkartenkacheln im Allgemeinen Hinzufügungen, Löschungen, Modifikationen, Änderungen in der Höhe, neue Stile usw., beinhalten.
-
Um des Weiteren eine exemplarische Anwendung der oben beschriebenen Techniken zu veranschaulichen, illustrieren die 10A, 10B und 10C der gleichen geografischen Region entsprechende Karten, die als Basiskarten-, ÖVPN-Karten- bzw. Radwegkartentyp angezeigt werden. Ein Kartenbild 500 einer Basiskarte, dargestellt in 10A, kann eine Darstellung von mehreren Kartenelementen, wie Straßen und Parks, beinhalten, definiert durch die Reihe der Basiskarten-Datenkacheln, einschließlich der Basisbeschriftungen und Basisstildaten oder Stiltabellen entsprechend der dargestellten Region.
-
Wie in 10B dargestellt, kann das Kartenbild einer ÖVPN-Karte Kartenelemente des Kartenbildes 500 sowie die U-Bahn-Linie 504 überlagern oder auf irgendeine Art die entsprechenden Anteile des Kartenbildes 500 integrieren. Je nach Ausführungsform kann die U-Bahn-Linie 504 als ein einziges Kartenobjekt oder als mehrere Kartenobjekte in derselben oder in anderen Kartenkacheln, die jeweils einem jeweiligen Abschnitt der Schienen entsprechen, definiert werden. Ferner kann ein U-Bahn-Symbol 506 über einen Teil der Kartenabbildung 500 wiedergegeben werden. Darüber hinaus können Beschriftungen für die U-Bahn (rote Linie) in der ÖVPN-Kartenansicht vorgesehen sein, und bei einer Nichtanzeige können verschiedene Bezeichnungen für Straßen in der Basiskartenansicht gelöscht werden. Abhängig von der Ausführungsform kann das Symbol für U-Bahn 506 beispielsweise als eine zusätzliche Kartenfunktion oder Element, als eine Beschriftung, oder ein Symbol bereitgestellt werden. In einer Ausführungsform wird das Symbol für U-Bahn 506 als ein Universal Resource Locator (URL) spezifiziert, der zum Abrufen eines Standardsymbols für U-Bahn in einem Rasterformat von einem Server, der Standardzeichen erzeugt, benutzt werden kann.
-
Um das Kartenbild von 10B auf einem Client-Gerät nach dem Rendern des Kartenbildes von 10A auf dem Client-Gerät zu generieren, kann ein Kartenserver nur eine Reihe von Differenzkartenkacheln mit Modifikationen bereitstellen, beispielsweise in einem Vektorformat, das eines oder mehrere der U-Bahn-Linien 504 entsprechende Kartenobjekten und alle damit verbundenen Änderungen beschreibt, und die Änderungen an den Beschriftungen, Stildaten oder der Stiltabelle, die die Art und Weise modifiziert, auf der verschiedene visuelle Merkmale, wie z. B. Linienstärken, Farben usw., für verschiedene Funktionen dargestellt werden, beinhaltet. In einer Ausführungsform stellt die Modifikationsindikation oder stellen die Differenzkartenkacheln ebenfalls eine Höhenindikation bereit, um die U-Bahn-Linie 504 unter einigen der Straßen im Kartenbild von 10A und über einigen der anderen Straßen im Kartenbild von 10A erscheinen zu lassen. Darüber hinaus enthalten in einer Ausführungsform die Differenzkartenkacheln zusätzlich eine Beschreibung des Symbols 506 als eine Kennzeichnung oder als ein Symbol.
-
Wie in 10C dargestellt, kann das Kartenbild einer Radwegkarte 550 Kartenelemente des Kartenbildes 500 beinhalten sowie eine Reihe von Radwegen überlagern oder auf sonstige Art in die entsprechenden Anteile des Kartenbildes 500 integrieren. Hier wurden jedoch Informationen zum öffentlichen Nahverkehr entfernt (oder werden im Rendering-Prozess tatsächlich gelöscht). Je nach Ausführungsform können Radwege als ein einzelnes Kartenobjekt oder als in verschiedenen Differenzkartenkacheln angeordnete mehrere Kartenobjekte definiert sein, wobei jedes einem bestimmten Abschnitt auf der Karte oder einer Basiskarten-Datenkachel des Basiskartenbildes von 10A entspricht. Darüber hinaus können Radwegpfadsymbole 552 über einen Teil des Kartenbildes 500 gerendert werden. Je nach Ausführungsform können die Symbole 552 beispielsweise als zusätzliches Kartenobjekt oder -element, als eine Bezeichnung oder als ein Symbol bereitgestellt werden. In einer Ausführungsform kann ein oder können mehrere der Symbole 552 als ein Universal Resource Locator (URL) angegeben werden, die verwendet werden können, um ein herkömmliches Radwegpfadsymbol in einem Raster-Format von einem Standard-Symbole generierenden Server abzurufen.
-
Um das Kartenbild von 10 auf einem Client-Gerät zu generieren, nachdem das Kartenbild von 10A gerendert bzw. nachdem das Kartenbild von 10B auf dem Client-Gerät mittels Differenzkartenkacheln zur Änderung des Kartenbildes von 10A gerendert wurde, kann ein Kartenserver nur eine Reihe von Differenzkartenkacheln mit Änderungen, die beispielsweise eines oder mehrere der einer Radwegansicht 550 entsprechenden Kartenobjekte in einem Vektorformat beschreiben und alle damit verbundenen Änderungen an den Basiskartenkacheln zur Erstellung der Radwegansicht, bereitstellen. In einer Ausführungsform kann die Modifikationsindikation oder können die Differenzkartenkacheln für die Radwegansicht ebenfalls eine Höhenindikation bereitstellen, damit die Radwege 552 über einigen oder allen der im Kartenbild von 10A dargestellten Straßen zu verlaufen scheinen. Des Weiteren können in einer Ausführungsform die Differenzkartenkacheln für die Radwegansicht eine Beschreibung der Radwegpfadsymbole 552 als eine Bezeichnung oder als ein Symbol beinhalten und diese Differenzkartenkachel kann oder andere Differenzkartenkacheln können eine neue Stiltabelle bereitstellen, die die Straße weniger betont/betonen und die Radwege in der Karte von 10C stärker betont/betonen.
-
Wie oben angegeben verarbeitet, nach Empfang der Kartendaten in Form von Differenzkartenkacheln (die im Allgemeinen Änderungen definieren, die an den Vektorgrafikdaten in den Basiskacheln vorgenommen werden müssen), das Clientgerät die Differenzkartenkacheln zusammen mit den Basiskartenkacheln, um einen neuen Satz von Vektorgrafiken zu erzeugen, die zur Darstellung des neuen Bildes oder der neuen Kartenansicht verwendet werden sollen. Auch wenn die Grafik-Engine des Clientgeräts den neu definierten Satz von in den Differenzkartenkacheln bereitgestellten Vektorgrafikdefinitionen zusammen mit den Merkmalen, die in den Basiskartenkacheln enthalten sind, einfach verarbeiten könnte, um alle Kartenmerkmale (Formen, Felder, Linien, Punkte) zu bestimmen, die als Teil der neu definierten Kartenansicht enthalten sind und dann alle diese Formen darstellen könnte, um die neue Kartenansicht zu zeichnen, wiederholt diese Art der Verarbeitung großteils die Verarbeitung, die für die Basiskartenkacheln durchgeführt wurde, wobei die einzigen Unterschiede die sind, die von den Merkmalen in den Differenzkartenkacheln definiert sind. Diese Art der Verarbeitung ist somit zeitaufwändig und prozessorintensiv, insbesondere angesichts der Tatsache, dass ein Großteil des Kartenbildes gleichbleibt.
-
Eine Teillösung dieses Problems ist, die CPU des Clientgeräts mehr Merkmalsdaten (definiert durch die Differenzkartenkacheln) über den vorhandenen Merkmalsdaten zeichnen zu lassen, die bei der Verarbeitung der Basiskartenkacheln erstellt wurden. Wenn zum Beispiel eine Differenzkartenkachel hinzuzufügende Merkmale definiert, könnte die CPU des Clientgeräts einfach die neuen Merkmale (in Bezug auf die Definition neuer Felder, Linien, Punkte, Texturen usw., die zur Karte hinzugefügt werden sollen) verarbeiten und diese neuen Merkmale über den vorhandenen angezeigten Merkmalen am vorhandenen Ansichtsfenster darstellen. Auf diese Weise könnte die CPU einfach die neuen Daten (für die neuen Merkmale) vorbereiten und diese Daten für die GPU der Grafik-Engine Puffern, die die Merkmale über den vorhandenen Kartenelementen zeichnen würde. Die neuen Merkmale würden dann über allen vorhandenen Karteninhalten gezeichnet. Dieser Ansatz ist jedoch sehr unzulänglich, da er keine Neuordnung beim Zeichnen der Merkmale ermöglicht, sondern auf das Zeichnen neuer Merkmale über den vorhandenen Merkmalen beschränkt ist, was in vielen Fällen keine ordnungsgemäße Schichtung der neuen Kartenmerkmale erlaubt. Außerdem ermöglicht dieser Ansatz keine Entfernung bereits gezeichneter Merkmale, was ihn zu einer sehr uneleganten Lösung macht.
-
Eine bessere Lösung ist die Integration vorhandener Kartendaten (wie als Teil der Basiskartenkacheln definiert und verarbeitet) mit neuen Modifikatordaten, wie in den Differenzkartenkacheln definiert, ohne vorhandene Merkmalsdaten, die bereits durch das Clientgerät verarbeitet oder vorbereitet wurden, erneut vorzubereiten oder erneut zu puffern. Die Modifikatordaten können neue Kartenmerkmale hinzufügen oder vorhandene ändern/entfernen und erfordern nur allgemein die Vorbereitung oder Verarbeitung von Merkmalen, die von den neuen Modifikatordaten definiert werden, die als Teil der Differenzkartenkacheln bereitgestellt werden, wenn die neue Kartenansicht dargestellt wird. Die vorbereiteten Modifikatordaten werden dann als Teil einer Zusammensetzung der zwei Arten vorbereiteter Daten (alte Daten, die von den Basiskacheln definiert werden und neue Daten, die von den Differenzkacheln definiert werden) dargestellt, ohne dass eine zusätzliche Bearbeitung bei den vorhandenen Merkmalsdaten (wie von den Basiskartenkacheln definiert) durchgeführt werden muss.
-
Insbesondere verfolgt die CPU am Clientgerät beim Hinzufügen neuer Daten oder Kartenmerkmalen, wo neue Merkmale hinzugefügt werden müssen, in Bezug auf die Reihenfolge der Darstellungsvorgänge, die zum Darstellen der Karte verwendet werden.
-
Dabei verschachtelt die CPU die Darstellungsvorgänge für die neuen Merkmale mit den Darstellungsvorgängen der alten oder bereits vorhandenen Merkmale, um die Reihenfolge zu definieren, in der diese beiden Arten von Merkmalen gezeichnet werden. Dieser Vorgang ermöglicht es der Client-CPU, die Zeichentiefe der vorhandenen Merkmale zusammen mit der Zeichentiefe der hinzugefügten Merkmale zu verfolgen und zu kontrollieren, um dadurch die Zeichnung der neuen Merkmale zwischen vorhandenen Merkmalen wie gewünscht oder durch die Schichtendaten angegeben, die als Teil der neuen Merkmale bereitgestellt wurden, zu verschachteln. Dieser Vorgang ermöglicht es der CPU, die vollständige Zusammensetzung alter und neuer Merkmale in beliebiger Reihenfolge zu zeichnen, ohne eine der Geometrien ändern zu müssen, die bereits vorbereitet und im VRAM der Grafik-Engine für die älteren Merkmale gespeichert wurden, als das Basiskartenbild für die Darstellung vorbereitet wurde.
-
Darüber hinaus können Merkmale und Elemente, die durch die Basiskartenkacheln definiert werden (und somit als solche im VRAM vorhanden sind) und gelöscht werden müssen, durch Darstellung dieser Merkmale mithilfe eines unsichtbaren Stilparameters effektiv gelöscht werden. Das heißt, für Merkmale in den Basiskartenkacheln, die gelöscht werden müssen, können die Stilparameter geändert werden, damit die GPU diese Merkmale auf den Karten effektiv als unsichtbar darstellen oder zeichnen kann. Ein solcher unsichtbarer Stil kann durch die Verwendung von null oder sehr kleinen Linienbreiten, ohne Farben oder Füllmuster usw. als Stilparameterwerte beeinflusst werden, wenn kein expliziter unsichtbarer Stilparameterwert vorhanden ist. Eigentlich wird gemäß dieser Technik das Merkmal trotzdem gezeichnet, da der Darstellungsvorgang für das Merkmal beim Zeichenvorgang ausgeführt wird. Das Merkmal wird jedoch auf eine Weise gezeichnet, die das Merkmal auf dem Bildschirm oder der Benutzeroberfläche nicht sichtbar macht. In typischen Grafik-Engines würde diese Neugestaltung ein vollständiges Löschen vorhandener Stildaten (die von der GPU verwendet werden, um die Art und Weise zu definieren, in der die vorbereiteten Merkmale gezeichnet werden, z. B. die Farbe, die Linienbreite, die Schriftart, die Größe usw., die in Zeichenvorgang verwendet werden sollen) erfordern. In diesem Fall kann jedoch eine dynamische Gestaltungstechnik verwendet werden, um die Notwendigkeit zu verhindern, vorhandene Stildaten zu löschen. Die dynamische Gestaltungstechnik, die auf der Verwendung verschiedener Stiltabellen beruht, die unten beschrieben sind, ermöglicht es, die Stildaten für die vorhandene Karte intakt zu halten, um es dadurch der GPU zu ermöglichen, schnell zum vorherigen Zustand zurückzuwechseln, sobald die zusammengesetzte Kartenansicht dargestellt wurde. Außerdem kann das System eine neue Stilkarte für die zusammengesetzten Kacheln erstellen, die bei Bedarf neue Stildefinitionen enthält, die die Zuordnung „gelöschter” Darstellungsvorgänge zum unsichtbaren Stil umfasst.
-
Die Verwendung dieser zwei Arten von Vorgängen, d. h. (1) Vorbereitung zusätzlicher Merkmalsdaten, wie durch die Differenzkartenkacheln definiert und Sortierung oder Verschachtelung der Darstellungsvorgänge dieser zusätzlichen Merkmale am entsprechenden Platz innerhalb der Darstellungsvorgänge, die bereits für die Basiskartenkacheln vorbereitet wurden, um Merkmale zu einer Kartenansicht hinzuzufügen und (2) Ändern der Stilparameter der Darstellungsvorgänge der Basiskartenmerkmale zu einem unsichtbaren Stil, um diese Basiskartenmerkmale zu löschen, ermöglicht die Darstellung einer neuen Kartenansicht, wie durch die Differenzkacheln definiert, ohne die Notwendigkeit, einen vollständigen Darstellungsvorgang für Merkmale in den Basiskartenkacheln erneut vorzubereiten oder erneut zu definieren.
-
Als eine Art Hintergrund sind Kartendaten normalerweise in einheitliche quadratische oder rechteckige Kacheln segmentiert. Diese Kacheln definieren normalerweise Einheiten von Daten, die über das Kommunikationsnetzwerk gesendet und auf Clientgeräten gespeichert werden und geben außerdem einen visuellen Bereich an oder definieren ihn, der auf einem Schnittstellenbildschirm an einem Clientgerät dargestellt wird. Die Dateneinheiten in den Kacheln enthalten alles, was nötig ist, damit das Clientgerät die Kachel auf dem Bildschirm darstellen kann, einschließlich der Geometrie der Darstellungsvorgänge (z. B. diese Straße geht von diesem Punkt zu diesem Punkt) und den Gestaltungsparametern, die durch die Darstellungsvorgänge angewandt werden sollen (z. B. diese Straße sollte blau und fünf Pixel breit sein). Da das Ändern von Daten, die im VRAM (d. h. in der GPU des Clientgeräts) gespeichert sind, in Bezug auf die Zeit und die Verarbeitungsleistung aufwändig ist und da das oben beschrieben Kartensystem fähig sein soll, Merkmale für den Effekt einfach neu gestalten zu können, speichert das Kartensystem nicht die gesamte Geometrie und alle Stilinformationen zusammen. Dies würde bei jeder Stiländerung auch eine Massenaktualisierung der Geometrie erzwingen. Stattdessen speichert das Kartensystem eine Reihe von Tabellen (Stiltabellen genannt), die in einem Fall als Texturen im VRAM codiert sind, die als Indirektionsschichten zwischen Darstellungsvorgängen, den Stilen, die auf sie angewandt werden sollen und den Parameterwerten für diese Stile fungieren. Um mithilfe dieser Technik herauszufinden, wie ein bestimmter Darstellungsvorgang angezeigt werden sollte, betrachtet das Kartensystem erst eine Textur (in der eine Stiltabelle codiert ist), die dem System sagt, welcher Stil auf dieses Merkmal (oder den Merkmalsvertex) angewandt werden soll und dann eine andere Textur (die als zweite Stiltabelle codiert ist), die die eigentliche Definition des Stils in Bezug auf Stilparameterwerte für die verschiedenen Stilparameter enthält (z. B. Linienbreite, Farbe, Füllmuster usw.). Bei Verwendung dieses Systems muss das System, wenn die Karten-Engine eine Straße so ändern muss, dass sie wie eine andere aussieht, nur den Pixelwert in der Textur-/Stilzwischentabelle ändern, sodass die Tabelle auf die neue gewünschte Stildefinition verweist. Die für die Codierung der Stiltabellen verwendeten Texturen sind klein und in geringer Anzahl ohne größere Leistungseinbußen einfach zu ändern und daher sehr effizient in der Verwendung.
-
11 zeigt ein Bilderzeugungs- oder Bilddarstellungsgerät 240, das die effiziente Zusammensetzungs- und Darstellungstechnik implementieren kann, die oben beschrieben ist. Das Darstellungsgerät 240, das zum Beispiel mit einem der Clientgeräte 14 oder 15 von 1 verbunden oder in einem solchen implementiert sein kann, beinhaltet zwei Prozessoren 230a und 230b, zwei Speicher 232a und 232b, eine Benutzeroberfläche 234 und einen Rasterizer 236. In diesem Fall werden der Prozessor 230b, der Speicher 232b und der Rasterizer 236 auf einer getrennten Grafikkarte (unter der horizontalen Linie angegeben) bereitgestellt, auch wenn dies nicht in allen Ausführungsformen der Fall sein muss. So kann beispielsweise in anderen Ausführungsformen ein einzelner Prozessor verwendet werden. Außerdem beinhaltet das Bilddarstellungssystem 240 eine Netzwerkschnittstelle 242, eine Kommunikations- und Speicherroutine 243 und eine oder mehrere Anwendungen 248 mit Kartenanzeigelogik, die im Speicher 232a gespeichert ist und im Prozessor 230a (der z. B. eine Zentraleinheit (CPU) sein kann) ausgeführt werden kann. Ähnlich sind einer oder mehrere Bild-Shader zum Beispiel in Form von Vertex-Shadern 244 und Fragment-Shadern 246 im Speicher 232b gespeichert und werden im Prozessor 230b ausgeführt. Die Speicher 232a und 232b können entweder flüchtigen oder nicht flüchtigen Speicher oder beides enthalten und die Routinen und Shader werden in den Prozessoren 230a und 230b ausgeführt, um die unten beschriebene Funktionalität bereitzustellen. Die Netzwerkschnittstelle 242 beinhaltet alle bekannten Software- und/oder Hardwarekomponenten, die verwendet werden können, um zum Beispiel über ein hartverdrahtetes oder drahtloses Kommunikationsnetzwerk mit dem Server 12 von 1 zu kommunizieren, um Bilddaten in Form von Vektordaten für die Verwendung bei der Erstellung einer Bildanzeige auf der Benutzeroberfläche oder dem Anzeigegerät 234 zum Beispiel mithilfe von Basiskartenkacheln und Differenzkartenkacheln zu erhalten. Das Bilddarstellungsgerät 240 beinhaltet außerdem einen Datenspeicher 249, der zum Beispiel ein Puffer- oder flüchtiger Speicher sein kann, der Vektordaten speichert, die von der Kartendatenbank 18 oder vom Kartenserver 12 empfangen werden, wobei die Vektordaten eine beliebige Anzahl Vertex-Datenpunkte und eine oder mehrere Stilnachschlagetabellen enthalten, die näher beschrieben werden.
-
Während des Betriebs wird die Kartenlogik der Kartenanwendung 248 im Prozessor 230 ausgeführt, um die besonderen Bilddaten zu bestimmen, die für die Anzeige für einen Benutzer über das Anzeigegerät 234 unter Verwendung von zum Beispiel Benutzereingabe, GPS-Signalen, vorher gespeicherter Logik oder Programmierung usw. nötig sind. Die Anzeige- oder Kartenlogik der Anwendung 248 interagiert mit der Kartendatenbank 18 und dem Server 12 mithilfe der Kommunikationsroutine 243, indem sie mit dem Server 12 über die Netzwerkschnittstelle 242 kommuniziert, um Kartendaten bevorzugt in Form von Vektordaten oder komprimierten Vektordaten vom Kartenserver 12 zu erhalten. Die Vektordaten werden über die Netzwerkschnittstelle 242 zurückgegeben und sie können dekomprimiert und im Datenspeicher 249 durch Routine 243 gespeichert werden. Insbesondere können die Daten, die vom Kartenserver 12 heruntergeladen werden, eine kompakte, strukturierte oder sonst optimierte Version der letztendlich zu verwendenden Vektordaten sein und die Kartenwendung 248 kann verwendet werden, um die heruntergeladenen Vektordaten mithilfe von Prozessor 230a in spezifische Vertex-Datenpunkte zu verwandeln. In einer Ausführungsform beinhalten die Bilddaten, die vom Server 12 gesendet werden, Vektordaten, die allgemein Daten für jeden Satz an Scheitelpunkten definieren, die mit einer Reihe verschiedener Bildelemente oder Bildobjekte verbunden sind, die auf dem Bildschirm 234 dargestellt werden sollen und möglicherweise eine oder mehrere Nachschlagetabellen, die unten genauer beschrieben werden, wobei diese Daten in Basiskartenkacheln oder Differenzkartenkacheln auf eine der oben beschriebenen Arten gesendet werden. Falls gewünscht, können die Nachschlagetabellen in der Kartenanwendung 248 in Form von Vektortexturkarten gesendet oder codiert oder erzeugt werden, die bekannte Arten von Datendateien sind, die normalerweise ein bestimmtes Textur- oder Farbfeld (Pixelwerte) definieren, das als Teil eines Bildes angezeigt werden soll, das mithilfe von Vektorgrafik erstellt wurden. 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. Die Attributreferenz, auf die hierin als Stilreferenz oder Merkmalsreferenz verwiesen wird, verweist oder zeigt auf einen Ort oder einen Satz von Orten in einer oder mehreren Nachschlagetabellen, die heruntergeladen und im Datenspeicher 243 gespeichert wurden.
-
12A veranschaulicht eine Ausführungsform von Kartendaten, die gemäß einer Ausführungsform an ein Clientgerät, z. B. Gerät 240 von 11, zur Verarbeitung gesendet werden können. Wie 12A veranschaulicht, enthalten Kartendaten Ortsdaten für einen Vertex, einen Objekttyp und Stilattribute für den Vertex. Ein Satz von einem oder mehreren Scheitelpunkten kann ein Bildobjekt oder ein Merkmal einer Karte, z. B. eine Straße oder ein Gebäude, umfassen. Die Stilattribute können für jeden Vertex gesendet werden oder sie können auf eine weitere Stilnachschlagetabelle verweisen, z. B. die in 12B veranschaulichte, die verwendet werden kann, um eine Stilreferenz aus 12A gemäß einer Ausführungsform in einen kompletten Satz aus einem oder mehreren Stilattribut-Parameterwerte zu codieren. Auch wenn dies in 12A nicht speziell gezeigt wird, können Darstellungsvorgänge mit den Kartendaten verbunden sein, wenn die Kartendaten als Teil einer Differenzkachel bereitgestellt werden. Solche Vorgänge können das Hinzufügen eines Merkmals oder das Löschen eines Merkmals sein. Des Weiteren können die Kartendaten eine Ebene oder Schicht angegeben, auf der das jeweilige Merkmal dargestellt wird. Die Verwendung der zwei Stiltabellen, z. B. der in 12A und 12B, kann die einfache Angabe von Änderungen an Stildaten für ein beliebiges Kartenelement ermöglichen, was das Löschen der Stile für Kartenelemente ermöglicht, die zu einem unsichtbaren Darstellungselement geändert werden sollen, nach Vorbereitung dieser Kartenmerkmale und als Reaktion auf den Empfang eines neuen Satzes von Differenzkartenkacheln.
-
In jedem Fall können Stilparameter eine Füllfarbe (z. B. für Bereichsobjekte), eine Umrissfarbe, eine Umrissbreite, ein Umrissstrichmuster und eine Angabe enthalten, ob abgerundete Eckkappen (z. B. für Straßenobjekte) verwendet werden sollen, einen Innenfarbe, eine Innenbreite, ein Innenstrichmuster und abgerundete Innenendkappen (z. B. für Straßenobjekte), eine Textfarbe und eine Textumrissfarbe (z. B. für Textobjekte), eine Pfeilfarbe, eine Pfeilbreite, ein Pfeilstrichmuster (z. B. für Pfeilobjekte), eine Textfeld-Füllfarbe und einen Satz von Textfeld-Umrisseigenschaften (z. B. für Textfeldobjekte), um nur einige zu nennen. Selbstverständlich können verschiedene der bereitgestellten Vertex-Stilattribute für nur eine Teilmenge der Bildobjekte zutreffend oder relevant sein und somit können die Vertex-Stildatenpunkte, die mit einer bestimmten Art von Bildobjekt verbunden sind, nur für eine Teilmenge der für den jeweiligen Stil aufgelisteten Vertexstile gelten.
-
Wie oben beschrieben, kann bei der Darstellung einer Basiskartenkachel oder eines Satzes von Basiskartenkacheln der Prozessor 230a von 11 die Kartenelemente oder Merkmale vorverarbeiten, indem er die spezifische Größe oder den spezifischen Ort jedes Merkmals im Kartenansichtsfenster definiert und eine Reihe von Darstellungsvorgängen erstellt, die vom GPU oder Prozessor 230b verwendet werden, um diese Merkmale auf dem Display darzustellen. Die Entwicklung dieser Darstellungsvorgänge kann prozessorintensiv sein, aber nach Abschluss können diese Darstellungsvorgänge im Grafikkartenspeicher oder VRAM 232b für die Darstellung durch die Vertex- oder Fragment-Shader oder als Teil der Vertex oder Fragment-Shader 244, 246 gespeichert werden. Wenn die Shader 244 und 246 verwendet werden, um ein Bild zu zeichnen, zum Beispiel das Basiskartenbild, werden die Stile für die Darstellungsvorgänge aus den Stiltabellen bestimmt und die Darstellungsvorgänge zum Darstellen des Basisbildes werden durchgeführt.
-
Als Nächstes kann, wenn ein anderer Satz von Differenzkartenkacheln empfangen wird, die Kartenanwendung 248 die oben beschriebenen Techniken implementieren, um das neue Kartenbild, das von den Differenzkartenkacheln definiert wird, darzustellen, ohne jedes der Kartenmerkmale in den Basiskartenkacheln erneut verarbeiten zu müssen. Insbesondere verarbeitet die CPU 230a am Clientgerät 242, wenn eine Differenzkartenkachel ein neues Kartenmerkmal zum Kartenbild hinzugefügt, das Kartenmerkmal vor, um einen oder mehrere Darstellungsvorgänge für dieses Merkmal zu erstellen, die auf einem oder durch einen der Shader 244, 246 auszuführen ist. Die Vorverarbeitungsanwendung verfolgt, wo die neuen Merkmale hinzuzufügen sind, in Bezug auf die Reihenfolge der Darstellungsvorgänge, die verwendet werden, um die Karte darzustellen und speichert die neuen Darstellungsvorgänge, die an den Shadern 244, 246 am entsprechenden Ort innerhalb der Darstellungsvorgänge durchzuführen sind, die bereits für die Merkmale in den Basiskartenkacheln definiert sind. Dieses Merkmal ermöglicht die Zeichnung der neuen Merkmale in der richtigen Schicht innerhalb der neuen Kartenansicht. Somit verschachtelt die CPU 230a die Darstellungsvorgänge für die neuen Merkmale, die in den Differenzkartenkacheln definiert sind, mit den Darstellungsvorgängen der alten oder bereits vorhandenen Merkmale, wie für die Basiskartenkacheln definiert, um die Reihenfolge zu definieren, in der diese beiden Arten von Merkmalen gezeichnet werden. Dieser Vorgang ermöglicht es der Client-CPU, die Zeichentiefe der vorhandenen Merkmale zusammen mit der Zeichentiefe der hinzugefügten Merkmale zu verfolgen und zu kontrollieren, um dadurch die Zeichnung der neuen Merkmale zwischen vorhandenen Merkmalen wie gewünscht oder durch die Schichtendaten angegeben, die als Teil der neuen Merkmale bereitgestellt wurden, zu verschachteln. Dieser Vorgang ermöglicht es der CPU, die vollständige Zusammensetzung alter und neuer Merkmale in beliebiger Reihenfolge zu zeichnen, ohne eine der Geometrien ändern zu müssen, die bereits vorbereitet und im VRAM 232b der Grafik-Engine für die älteren Merkmale gespeichert wurden, als das Basiskartenbild für die Darstellung vorbereitet wurde.
-
Darüber hinaus können Merkmale und Elemente, die durch die Basiskartenkacheln definiert werden (und somit als solche im VRAM vorhanden sind) und gelöscht werden müssen, durch Darstellung dieser Merkmale mithilfe eines unsichtbaren Stilparameters in den Stiltabellen effektiv gelöscht werden. Hier können die Differenzkartenkacheln eine neue Stiltabelle bereitstellen, die die Stilparameter für Basiskartenelemente, die gelöscht werden sollen, auf unsichtbar stellt. Alternativ kann der Prozessor 230a bestimmen, welche Basiskartenmerkmale, die im VRAM 232b bereits als Darstellungsvorgänge für die Shader 244, 246 gespeichert sind, gelöscht werden sollen und er kann die Stilparameterwerte für diese Merkmale auf eine unsichtbare Einstellung stellen. Das heißt, für Merkmale in den Basiskartenkacheln, die gelöscht werden müssen, können die Stilparameter geändert werden, damit der GPU 230b diese Merkmale auf den Karten effektiv als unsichtbar darstellen oder zeichnen kann, wenn der GPU 230b die Shader 244, 246 und die damit verbundenen Darstellungsvorgänge ausführt. Ein solcher unsichtbarer Stil kann durch die Verwendung von null oder sehr kleinen Linienbreiten, ohne Farben oder Füllmuster usw. als Stilparameterwerte beeinflusst werden, wenn kein expliziter unsichtbarer Stilparameterwert vorhanden ist. Eigentlich wird gemäß dieser Technik das Merkmal wie früher bestimmt und für die Basiskartenkachel konfiguriert und im Speicher 232b gespeichert, trotzdem gezeichnet, es wird aber auf eine Weise gezeichnet, die es für den Benutzer unsichtbar macht. Die Verwendung der Stiltabellen wie in 12A und 12B veranschaulicht macht diese Änderung der Stilparameter einfach durchzuführen.
-
Wie erwähnt, kann es extrem kostspielig sein, große Mengen Merkmalsdaten vorzubereiten und für den GPU im Clientgerät zu puffern. In Hochleistungsanwendungen sind diese Kosten unerschwinglich und unterminieren die Funktion des gesamten Systems. Die oben beschriebenen Darstellungsvorgänge umgehen dieses Problem beim Darstellen von Kartenbildern mithilfe von Basiskartenkarten, die später durch Differenzkartenkacheln geändert werden, vollständig.
-
Die folgenden zusätzlichen Überlegungen gelten für die vorstehende Erörterung. In dieser gesamten Spezifikation können mehrere Beispiele Komponenten, Operationen oder Strukturen implementieren, die als einzelnes Beispiels beschreiben sind. 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.
-
Bestimmte Ausführungsformen werden hierin so beschrieben, dass sie Logik oder eine Anzahl von Komponenten, Modulen oder Mechanismen einschließen. 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.
-
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 „gekoppelt” 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. Das 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.
-
Nach dem Lesen dieser Offenlegung werden Fachleute auf dem Gebiet immer noch zusätzliche alternative strukturelle und funktionelle Konstruktionen für ein System und ein Verfahren zum Erzeugen von Kartendaten durch die hierin offengelegten Prinzipien 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.