-
Gebiet der Offenbarung
-
Die vorliegende Offenbarung bezieht sich auf Systeme zur Kartenwiedergabe, wie beispielsweise Systeme zur elektronischen Kartenanzeige, und insbesondere auf ein System zur Kartenwiedergabe, bei dem Kartenabbildungen wiedergegeben werden, indem Kartendaten benutzt werden, die in einem Nicht-Rasterformat 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.
-
Heutzutage können Bilder von geografischen Regionen durch Softwareanwendungen angezeigt werden, die auf einer großen Vielfalt von Geräten einschließlich Mobilfunkgeräten, Navigationssystemen für Fahrzeuge, Handgeräte für globale Positionierungssysteme (GPS), und Computer ausgeführt werden. Karten können abhängig von der Anwendung und/oder der Benutzerpräferenz topografische Daten, Straßendaten, städtische Transitinformationen, Verkehrsdaten, usw. anzeigen. Außerdem können einige Anwendungen Karten in einem interaktiven Modus anzeigen, sodass ein Benutzer verschiedene Regler bedienen kann (Auswahlschalter, Bildlaufleiste usw.) wie beispielsweise zum Wechseln der Zoomstufen oder der Schwenkrichtung der „Kamera” an einem neuen Standort. Ein Benutzer kann in einigen Fällen auch bestimmte Informationen auf der Anzeige auswählen oder abwählen. So kann beispielsweise der Benutzer den geeigneten Regler zum Einschalten der Anzeige auf den Radwegen bedienen.
-
Zum Wiedergeben einer Kartenabbildung erhält ein Gerät normalerweise Rasterbilder von einem dedizierten 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.
-
Zusammenfassung
-
In einer Ausführungsform beinhaltet ein computerimplementiertes Verfahren zum Bereitstellen von Kartendaten an ein Client-Gerät das Erzeugen von verschiedenen Vektordeskriptoren zur Wiedergabe an ein Client-Gerät eine erste Kartenabbildung für ein ausgewähltes Gebiet, wobei jeder Vektordeskriptor auf eine Geometrie eines jeweiligen Kartenelements entsprechend einer Grafikformat für Vektoren hinweist. Das Verfahren beinhaltet außerdem auch, dass der Vektordeskriptor an das Client-Gerät über ein Kommunikationsnetzwerk übertragen wird, das Erhalten eines Hinweises, dass eine zweite Kartenabbildung für das ausgewählte geografische Gebiet an das Client-Gerät wiedergegeben wird, sodass das zweite Kartenbild sich von der ersten Kartenabbildung unterscheidet, um einen Änderungshinweis zu erzeugen, der auf eine Reihe von einem oder mehreren Vektordeskriptoren hinweist, wobei jede davon einem jeweiligen Kartenelement entspricht, das in einer aber nicht in beiden der ersten und zweiten Kartendaten Abbildung wiedergegeben wird, und zu bewirken, dass Änderungshinweise an das Client-Gerät über das Kommunikationsnetzwerk übertragen werden, damit die zweite Kartenabbildung mithilfe zumindest einiger der Vektordeskriptoren und des Änderungshinweises wiedergegeben wird.
-
In einer anderen Ausführungsform speichert ein greifbares nicht vorübergehendes computerlesbares Medium Anweisungen, die wenn diese durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder mehrere Prozessoren dazu bringt, Kartendaten in einem Nicht-Rasterformat für eine ausgewählte geographische Region zu erzeugen, wobei die Kartendaten an einem Client-Gerät dazu interpretiert werden können, eine erste Kartenabbildung in einem Rasterformat zu erzeugen, und die Kartendaten an das Client-Gerät über ein Kommunikationsnetzwerk zu übertragen. Des Weiteren bringen die von einem oder mehreren Prozessoren ausgeführten Anweisungen den einen oder die mehrere Prozessoren dazu, vom Client-Gerät einen Hinweis zu erhalten, dass eine Kartenabbildung des ausgewählten geografischen Gebiets an das Client-Gerät wiedergegeben werden soll, um einen Änderungshinweis zu erzeugen, der eine oder mehrere Änderungen an den Kartendaten beschreibt, um die erste Kartenabbildung in das zweite Kartenbild umzuwandeln, und um herbeizuführen, dass die Änderungshinweise an das Client-Gerät über ein Kommunikationsnetzwerk übertragen werden, um die zweite Kartenabbildung im Rasterformat am Client-Gerät mithilfe von zumindest einem Teil der Kartendaten und dem Änderungshinweis wiederzugeben.
-
In einer anderen Ausführungsform beinhaltet ein Verfahren in einem Rechnergerät zum Erzeugen von Kartenabbildung das Erhalten mehrerer Vektordeskriptoren zur Wiedergabe einer ersten Kartenabbildung über ein Kommunikationsnetzwerk für ein ausgewähltes geografisches Gebiet, wobei jeder Vektordeskriptor entsprechend einem Grafikformat des Vektors auf eine Geometrie eines jeweiligen Kartenelements hinweist, und die erste Kartenabbildung mithilfe der Vielzahl von Vektordeskriptoren wiedergibt. Das Verfahren beinhaltet auch das Erhalten über ein Kommunikationsnetzwerk eines Änderungshinweises, der auf eine Änderung der verschiedenen Vektordeskriptoren hinweist zur Wiedergabe einer zweiten Kartenabbildung für die ausgewählte geografische Gebiet, und die Wiedergabe der zweiten Kartenabbildung mithilfe zumindest einiger der Vektordeskriptoren und den Änderungshinweisen für das ausgewählte Gebiet.
-
In einer noch anderen Ausführungsform beinhaltet ein in Betrieb genommenes Rechnergerät in einem Kommunikationsnetzwerk einen Prozessor, einen an den Prozessor gekoppelten Speicher, eine Netzwerkschnittstelle zum Kommunizieren über das Kommunikationsnetzwerk, und mehrere Routinen, die im Arbeitsspeicher gespeichert sind. Eine erste Routine wird auf dem Prozessor ausgeführt, um herbeizuführen, dass eine Anfrage bezüglich Kartendaten, entsprechend einem ausgewählten geografischen Gebiet ausgeführt wird, die über eine Netzwerkschnittstelle übertragen wird. Eine zweite Routine wird auf dem Prozessor ausgeführt, um eine erstes Kartenabbildung mithilfe einer Vielzahl von Vektordeskriptoren als Antwort auf die Anfrage über eine Netzwerkschnittstelle wiederzugeben, wobei die Vielzahl der Vektordeskriptoren nicht in einem Rasterformat ist. Eine dritte Routine wird auf dem Prozessor ausgeführt, um herbeizuführen, dass eine Anfrage bezüglich der Datenänderung entsprechend der ausgewählten geografischen Region über die Netzwerkschnittstelle übertragen wird. Eine vierte Routine wird auf dem Prozessor ausgeführt, um ein zweite Kartenabbildung mithilfe zumindest einiger der Vielzahl der Vektordeskriptoren und der Änderungsdaten wiederzugeben.
-
Kurzbeschreibung der Zeichnungen
-
1 ist ein Blockdiagramm eines Systems, in dem ein Server Kartendaten an ein Client-Gerät bereitstellt, um eine Kartenabbildung wiederzugeben, und danach Änderungsdaten mithilfe von einigen oder allen ursprünglich bereitgestellten Kartendaten und Änderungsdaten entsprechend einer Ausführungsform zur Wiedergabe einer anderen Kartenabbildung für das gleiche geografische Gebiet bereitzustellen;
-
2 ist ein Interaktionsdiagramm zur Wiedergabe von zwei Kartenabbildungen, die einen exemplarischen Umtausch von Informationen anzeigen und einer bestimmten geografischen Region an einem Client-Gerät entsprechen, das im System von 1; in Betrieb sein kann;
-
3 ist ein Interaktionsdiagramm, das eine exemplarische Übertragung von Informationen an ein Client-Gerät zur Wiedergabe von zusätzlichen Kartenfunktionen in Verbindung mit vorher bereitgestellten Kartendaten anzeigt, die im System von 1; implementiert werden können;
-
4 ist ein Interaktionsdiagramm, das eine exemplarische Übertragung von Informationen an ein Client-Gerät zum Verändern eines Merkmals einer Kartenfunktion anzeigt, die vorher in bereitgestellten Kartendaten beinhaltet war, die im System von 1; implementiert werden können;
-
5 ist ein Interaktionsdiagramm, das eine exemplarische Übertragung von Informationen an ein Client-Gerät zum Entfernen einer Kartenfunktion anzeigt, die vorher in Kartendaten beinhaltet waren, die im System von 1; implementiert werden können;
-
6 ist ein Interaktionsdiagramm, das eine exemplarische Übertragung von Informationen an ein Client-Gerät zum Ändern einer Kartenfunktion anzeigt, die mit mehreren Kartenelementen in Verbindung gebracht wird, und in vorher bereitgestellten Kartendaten beinhaltet war, die im System von 1; implementiert werden können;
-
7 ist ein Flussdiagramm eines exemplarischen Verfahrens zum Erzeugen von Kartendaten für mehrere Kartenbilder an einem Kartenserver, der im System von 1; in Betrieb sein kann;
-
8 ist ein Flussdiagramm eines exemplarischen Verfahrens zum Erzeugen einer Beschreibung einer Änderung von vorher bereitgestellten Kartendaten an einem Client-Gerät, das im System von 1; in Betrieb sein kann;
-
9 ist ein Flussdiagramm eines exemplarischen Verfahrens zum Wiedergeben von Kartenabbildungen an ein Client-Gerät, das im System von 1; in Betrieb sein kann;
-
10A ist eine exemplarische Basiskarte, die an einem Client-Gerät angezeigt werden kann, das im System von 1; und in Betrieb ist; und
-
10B ist eine exemplarische Transitkarte, die angezeigt werden kann nachdem ein Benutzer über eine interaktive Benutzerschnittstelle die Art der Transitkarte am Client-Gerät ausgewählt hat, das die Basiskarte von 10A anzeigt.
-
Detaillierte Beschreibung
-
In Ausführungsformen der unten erläuterten Systeme und der Verfahren stellt ein Kartenserver auf effektive Weise Kartendaten zur Wiedergabe von Kartenabbildungen an ein Client-Gerät bereit. Nachdem der Kartenserver an ein Client-Gerät Kartendaten zur Wiedergabe einer ersten Kartenabbildung (z. B. eine Basiskarten Abbildung) entsprechend einem bestimmten Gebiet oder einer geografischen Region bereitgestellt hat, stellt der Kartenserver gemäß einiger Ausführungsformen Daten an das Client-Gerät zur Wiedergabe einer zweiten, unterschiedlichen Kartenabbildungen (z. B. eine Verkehrskarten Abbildung) entsprechend dem gleichen Gebiet bereit. Das Client-Gerät kann dann die zweite Kartenabbildung wiedergeben, indem die vorher bereitgestellten Kartendaten zur Wiedergabe der ersten Kartenabbildung und Änderungsdaten benutzt werden, und der Kartenserver nicht unbedingt Kartendaten bei mehrmalige Wiedergabe der zugleich ersten Kartenabbildung und der zweiten Kartenabbildung an das Client-Gerät bereitzustellen braucht. Die Änderungsdaten können abhängig vom Szenario eine oder mehrere Ergänzungen zu den vorher bereitgestellten Kartendaten, Löschungen der einen oder mehreren Teile der vorher bereitgestellten Kartendaten, oder Änderungen von einem oder mehreren Teilen der vorher bereitgestellten Kartendaten beinhalten.
-
In einer Ausführungsform, stellt der Kartenserver Kartendaten in einem Nicht-Rasterformat bereit, und der Client interpretiert oder alle Kartendaten, um die erste Kartenabbildung und die zweite Kartenabbildung als ein jeweiliges Rasterbild zu erzeugen. Die Kartendaten können zusätzlich Textdaten beinhalten, um Kartenbeschriftung festzulegen, die mit einzelnen oder zusammengefassten Kartenelementen angezeigt werden. Zur Wiedergage der ersten Kartenabbildung kann das Client-Gerät Kartendaten über ein Kommunikationsnetzwerk vom Kartenserver anfordern, und der Kartenserver kann als Antwort Kartendaten bereitstellen, die Karteninhalte entsprechend einer Grafikformat für Vektoren beschreiben. Die Kartendaten können verschiedene geometrische Formen festlegen (z. B. mithilfe von mathematischen Beschreibungen und Wegen, die die Punkte verbinden), und darauf hinweisen wie die Formen zur Wiedergabe von verschiedenen Kartenelementen, wie beispielsweise Straßen, Gebäude, Parkanlagen, Wasserkörper usw., positioniert werden sollten. So kann beispielsweise, anstatt zu bestimmen, dass jeder Pixel ein Rasterbild auf einem Liniensegment ausmacht, eine vektorbasierende Beschreibung des Liniensegments die zwei Endpunkte des Liniensegments festlegen und darauf hinweisen, dass die zwei Endpunkte durch eine gerade Linie verbunden sind. 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. Außerdem kann ein einzelnes Kartenelement (z. B. ein Gebäude) oder eine Ansammlung von verschiedenen Kartenelementen (z. B. Gebäude, Parkanlagen, Radwege, und Fußgängerwege auf einem Universitätsgelände) in manchen Szenarien eine Kartenfunktion (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.
-
Das Client-Gerät kann beispielsweise Kartendaten zur Wiedergabe der ersten und der zweiten Kartenabbildung als Antwort zu jeweiligen Benutzerkommandos anfordern. Die Benutzerkommandos können auf eine Auswahl von anderen Kartenarten hinweisen, auf eine andere Zoomstufe, usw. hinweisen. So wählt beispielsweise ein Benutzer entsprechend einem Szenario ein geografisches Gebiet und eine Art von Basiskarten aus, beispielsweise die Kartenart, die der die Wege, Straßen, Haupt-Wahrzeichen, usw. anzeigt. Das Client-Gerät erzeugt eine Anfrage bezüglich der Wiedergabe einer Kartenabbildung und überträgt die Anfrage an den Kartenserver, der als Antwort Kartendaten in einem Grafikformat für Vektoren (oder ein anderes Nicht-Rasterformat geeignet zur Wiedergabe eines Rasterbilds am Client-Gerät) bereitstellt. Die Kartendaten können verschiedene Vektordeskriptoren, und in manchen Fällen zusätzliche Daten, wie beispielsweise Stildaten, Beschriftungsdaten usw., beinhalten. Insbesondere können Beschriftungsdaten Zeichen im Amerikanischen Standard-Code für Informationsaustausch (American Standard Code for Information Interchange ASCII) Format, einen Unicode-Format oder andere geeignete Zeichenformate beinhalten. Das Client-Gerät interpretiert dann die Kartendaten zur Wiedergabe der Kartenabbildung und zum Anzeigen der Kartenabbildung auf einem Anzeigegerät. Der Benutzer kann dann um das obige Szenario fortzusetzen eine Transitkarte für das gleiche geografische Gebiet auswählen, und das Client-Gerät kann als Antwort einen Hinweis erzeugen, damit eine neue Kartenabbildung entsprechend einer Transitkarte erzeugt wird und der Hinweis zum Kartenserver übertragen wird. Gemäß einer Implementierung erzeugt das Client-Gerät eine Anfrage bezüglich einer neuen Art von Kartendaten (z. B. „Bereitstellen von Kartendaten für eine Transitkarte der Region R”), und der Kartenserver prüft vorherige Kommunikationen mit dem Client-Gerät zum Bestimmen der Art von Kartendaten, die vorher an das Client-Gerät gesendet wurde, und die deshalb bereits erhältlich sind. In einer anderen Ausführungsform legt das Client-Gerät zusätzlich zum Anfordern der neue Arten von Kartendaten fest, welche Art von Kartendaten für die ausgewählte Region bereits am Client-Gerät erhältlich sind, („Bereitstellen von Kartendaten für Transitkarte der Region R, wenn ich bereits Kartendaten für eine Basiskarte der Region R auf der gleichen Zoomstufe habe”). Der Kartenserver braucht in diesem Fall nicht zu wissen, dass Kartendaten, wenn überhaupt, vorher an das Client-Gerä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 bestimmen welche Kartenelemente in den Kartendaten und Beschriftungen hinzugefügt, entfernt oder verändert werden müssen, die für das Client-Gerät bereits erhältlich sind. So kann beispielsweise der Kartenserver bestimmen, wie sich eine Basiskarte für eine bestimmte Region und eine bestimme Zoomstufe von einer Transitkarte für die gleiche Region auf der gleichen Zoomstufe unterscheidet, und einen geeigneten Änderungshinweis erzeugen. Der Änderungshinweis kann beispielsweise Vektordeskriptoren zum Wiedergeben von U-Bahnen beinhalten, die nicht in der Basiskarten Abbildung beinhaltet sind. Der Kartenserver stellt dann die Änderungshinweise an das Client-Gerät zur Wiedergabe der Transit Kartenabbildung bereit, indem dieser zumindest teilweise die Kartendaten benutzt, die zur Wiedergabe von Basiskarten Abbildung und dem Änderungshinweis bereitgestellt werden.
-
Diese und andere Beispielszenarien, bei denen Kartendaten zur Wiedergabe von Kartenabbildungen auf effiziente Weise an ein Client-Gerät bereitgestellt werden, sind ferner mit Bezug auf die begleitenden Abbildungen 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.
-
Als erstes können Techniken, auf die in 1 hingewiesen wird, zum Übertragen von Kartendaten in ein System 10 implementiert werden. In einer Ausführungsform beinhaltet das System 10 einen Kartenserver 12, ein Client-Gerät 14, das kommunikativ über ein Netzwerk 16 an den Kartenserver 12 gekoppelt ist, und eine Kartendatenbank 18, die kommunikativ an den 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. Zur Vereinfachung wird nur ein Beispiel des Kartenservers 12, des Client-Geräts 14, und der Kartendatenbank 18 in 1 angezeigt. In anderen Ausführungsformen kann das System 10 jedoch mehr als einen Kartenserver 12, mehr als ein Client-Gerät 14, und/oder mehr als eine Kartendatenbank 18 beinhalten.
-
Der Kartenserver 12 kann einen Prozessor 20 und einen computerlesbaren Speicher 22 beinhalten, der einen Kartenregler 30 in Form von Computeranweisungen beinhaltet, die beispielsweise auf dem Prozessor 20 direkt (z. B. ein zusammengesetzter Code) oder indirekt ausführbar sind (z. B. als ein Skript, das durch eine andere Anwendung interpretiert und auf dem Prozessor 20 ausgeführt wird). Der computerlesbare Arbeitsspeicher 22 kann flüchtige Speicherkraft zum Speichern von Computeranweisungen und Daten beinhalten, auf dem Computeranweisungen im Laufzeitbetrieb sind (z. B. ein Direktzugriffsspeicher (Random Access Memory oder RAM)) und in einer Ausführungsform beispielsweise persistente Speicher, wie eine Festplatte, beinhalten. In einer Ausführungsform beinhaltet der Kartenregler 30 eine dynamische Funktionssteuerung 32, die Vektordaten für verschiedene Kartenelemente und/oder Kartenfunktionen erzeugt oder mehrere Kartenelemente, die als Karteninhalte an das Client-Gerät 14 bereitgestellt werden. Die dynamischen Funktionssteuerung 32 kann auch dazu konfiguriert werden, um den Unterschied zwischen einer vektorbasierenden Beschreibung einer Kartenabbildung und einer anderen Kartenabbildung zu bestimmen, die dem gleichen geografischen Gebiet entspricht, einen angemessenen Änderungshinweis erzeugt, und den Änderungshinweis dem Client-Gerät 12 bereitstellt. In anderen Worten kann die dynamische Funktionssteuerung 32 anstatt eine komplette vektorbasierende Beschreibung einer Kartenabbildung wiederzugeben auf effiziente Weise eine Beschreibung der Änderungen der vorherig bereitgestellten Vektor basierenden Beschreibung einer anderen Kartenabbildung bereitstellen.
-
Zum Erzeugen eines Änderungshinweises vergleicht die dynamischen Funktionssteuerung 32 entsprechend einer Ausführungsform eine reihenförmige Darstellung von Vektordaten, die einer bestimmten Kartenabbildung entsprechen, mit einer reihenförmigen Darstellung von Vektordaten, die einer anderen Kartenabbildung entsprechen. Die dynamischen Funktionssteuerung 32 kann beispielsweise Vektordaten für eine Basiskarte für eine Region R bei Zoomstufe Z anfordern, und der Kartenserver 18 kann als Antwort eine Reihe von Vektorbeschreibungen bereitstellen V1, V2, V5, ... VN,. 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. Basierend auf den zwei Reihen von Vektorschreibungen kann die dynamische Funktionssteuerung 32 für die Region R bei Zoomstufe Z bestimmen, (i) dass die Basiskarte und die Transitkarte beide ein Kartenelement beinhalten, die einem Vektordeskriptor entsprechen V1, (ii) dass die Basiskarte aber nicht die Transitkarten Kartenelemente beinhaltet, die den Vektordeskriptoren V2 und V5 entsprechen, und (iii) dass die Transitkarte aber nicht die Basiskarte ein Kartenelement beinhalten, das einem Vektordeskriptor entspricht V3. Die dynamische Funktionssteuerung 32 kann einen Änderungshinweis erzeugen, um darauf hinzuweisen, dass zum Erzeugen einer Transitkarten Abbildung mithilfe vorher bereitgestellter Vektordaten zur Wiedergabe von Basiskarten Abbildungen, eine Vektoränderung V3 an die vorher bereitgestellten Vektordaten hinzugefügt wird, wobei Vektordeskriptoren V2 und V5 von den vorher bereitgestellten Vektordaten entfernt werden. Insbesondere kann die dynamische Funktionssteuerung 32 einen Änderungshinweis erzeugen, der einen oder mehrere Hinweise zum Hinzufügen und einen oder mehrere Hinweise zum Entfernen beinhaltet, wovon jeder eine Operation (z. B. Hinzufügen, Entfernen), und einen Operanden (z. B. einen Vektordeskriptor, eine Kartenfunktion oder ein Kartenelement) bezeichnen kann.
-
Ferner kann die dynamische Funktionssteuerung 32 in manchen Ausführungsformen bestimmen, dass obwohl ein bestimmtes Kartenelement wiedergegeben wird wenn die erste und die zweite Kartenabbildung erzeugt werden, eine oder mehrere Eigenschaften des Kartenelements verändert werden müssen, damit das Kartenelement wieder benutzt werden kann, um das zweite Kartenabbildung wiederzugeben. 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 eine dynamische Funktionssteuerung 32 einen Änderungshinweis erzeugen, der darauf hinweist, dass die Tiefe, die mit dem Vektordeskriptor Vi, verbunden wird, der vorher dem Client-Gerät 14 bereitgestellt wurde, auf Tiefe D2 aktualisiert werden sollte.
-
Des Weiteren kann die dynamische Funktionssteuerung die dynamische Funktionssteuerung 32 zusätzlich zu den Vektordaten Beschriftungsdaten für die hinzugefügten oder veränderten Kartenfunktionen als Teil des Änderungshinweises oder alternativ als getrennter Hinweis 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 manchen Ausführungsformen kann die Kartensteuerung 30 zusätzlich zu den Vektordaten Stildaten bereitstellen, die darauf hinweisen, wie Vektordaten wiedergegeben werden sollen. Stildaten können insbesondere visuelle Charakteristiken oder Eigenschaften, wie Linienstärke (z. B. Breite bei Pixeln), Linienfarben, eine oder mehrere Farben zum Ausfüllen usw., beschreiben. In einer Ausführungsform werden Stildaten für verschiedene Stile bereitgestellt, die bei Vektordaten angewandt werden können. Der Kartenserver kann auch spezifizieren welche visuellen Stile das Client-Gerät bei verschiedenen Vektor basierenden Beschreibungen der Kartenelemente anwenden soll (auch als Vektordeskriptoren oder hierin einfach als Vektor bezeichnet). Ferner weist in manchen Ausführungsformen der Kartenserver daraufhin, welche visuellen Stile bei einer Vektor basierenden Beschreibung eines Kartenelements für bestimmte Kartenarten, wie beispielsweise Geländeterrain, Transit, Verkehr, Radweg usw. angewendet werden können. Dazu können mehrere Stile identifiziert werden, wovon jeder durch eine jeweilige einzigartige Stilkennung identifiziert werden kann.
-
Der Kartenregler 30 kann Kartendaten für ein bestimmtes geografisches Gebiet und Zoomstufe in einem Nicht-Rasterformat, wie beispielsweise Vektordaten und das Client-Gerät 14 in einer einzelnen elektronischen Nachricht oder einer Reihe von elektronischen Nachrichten, abhängig von der Ausführungsform, bereitstellen. 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.
-
Mit fortsetzendem Bezug zu 1, kann das Client-Gerät 14 einen Prozessor 50, der Anweisungen ausführen kann, und einen Arbeitsspeicher 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.
-
Abhängig von der Ausführungsform kann das Client-Gerät 14 ein persönlicher Computer, wie beispielsweise ein Desktop Computer, ein Laptop Computer oder ein Tablet-Computer, eine Arbeitsplatte, ein tragbares Kommunikationsgerät, wie beispielsweise ein Smartphone oder jedes andere geeignete Rechnergerät, 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 Browseranwendung 60 kann eine Reihe von computerlesbaren Anweisungen beinhalten, die auf einem Prozessor 50 ausführbar sind. 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 Maschine zur Kartenwiedergabe 62 kann als eine Komponente einer Browseranwendung 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 Maschine zur Kartenwiedergabe 62 kann beispielsweise interaktive Steuerungselemente über die Benutzerschnittstelle der Browseranwendung 60 bereitstellen. 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 kann die dynamische Maschine zur Kartenwiedergabe 62 Vektordaten (und in manchen Ausführungsformen Stildaten) vom Kartenserver 12 erhalten, die entsprechende Kartenabbildungen unter Verwendung von Vektordaten wiedergeben, damit die Kartenabbildung innerhalb eines bestimmten Gebiets angezeigt wird, das durch die Browseranwendung 60 zugeteilt 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.
-
Zur Vereinfachung wird das Client-Gerät 14 mit einem einfachen Prozessor 50 angezeigt. Das Client-Gerät 14 kann jedoch in anderen Ausführungsformen zusätzliche Prozessoreinheiten (nicht angezeigt), wie die GPU Grafik Prozessoreinheit (graphics processing unit GPU) beinhalten, die beispielsweise dazu konfiguriert sind, die Bilderwiedergabe auf dem Ausgabegerät 56 zu 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. Der Arbeitsspeicher 52 kann beispielsweise ein Adobe® Flash® Plug-in oder ein 03D Plug-in speichern.
-
Es wird angemerkt, dass die dynamische Maschine zur Kartenwiedergabe 62 im Allgemeinen in jeder geeigneten Anwendung betrieben werden kann. Ein Client-Gerät 70 kann beispielsweise ein tragbares Gerät wie ein Smartphone sein, in dem eine dynamische Maschine zur Kartenwiedergabe 62 in einer Kartenanwendung 74 in Betrieb ist. Ä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.
-
Als nächstes werden mehrere Szenarien mit Bezug auf die Interaktionsdiagramme erwägt, die in 2–6 abgebildet sind, um den Betrieb von Kartenservern und einem Client-Gerät um System von 1 oder einer ähnlichen Umgebung besser anzuzeigen. Ein exemplarischer Austausch von Informationen zwischen einem Kartenserver und einem Client-Gerät ist insbesondere die Wiedergabe von zwei Kartenabbildungen für ein bestimmtes Gebiet, der in Bezug auf 2 erläutert wird, gefolgt von einer Besprechung von mehreren spezifischen Szenarien: Bereitstellen eines Änderungshinweises zur Wiedergabe von zusätzlichen Kartenelementen (3), Bereitstellen eines Änderungshinweises zum Verändern der Tiefe bei der Wiedergabe einer Kartenfunktion oder eines Elements (4), Bereitstellen eines Änderungshinweises zum Entfernen von Kartenfunktionen oder Elementen, die in vorher bereitgestellten Kartendaten (5) beinhaltet wurden, und Bereitstellen eines Änderungshinweises zum Verändern einer zusammengesetzten Kartenfunktion, die mit mehreren Kartenelementen (6) verbunden ist.
-
In Bezug auf 2 ist ein exemplarischer Nachrichtenaustausch 100 mit einer Benutzerschnittstelle 102, die in einem Client-Gerät beinhaltet oder andererseits verbunden ist (wie beispielsweise der Client 14 in 1), mit einer dynamische Maschine zur Kartenwiedergabe 104, die im Client-Gerät betrieben wird, und mit einem Server 106 eingebunden (wie beispielsweise dem 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 Antwort auf ein Benutzerkommando kann die Benutzerschnittstelle 102 eine Anfrage 110 bezüglich eines bestimmten Gebietes R1 erzeugen und die Anfrage an die dynamische Maschine bezüglich der Kartenwiedergabe 104 bereitstellen. 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 Maschine zur Kartenwiedergabe 104 kann daraufhin eine Anfrage 112 bezüglich Daten für Basiskarten erzeugen, die über ein Kommunikationsnetzwerk an den Server 106 übertragen werden. Die Anfrage 112 kann das Gebiet R1 mithilfe von Koordinaten der Globale Positionierungsdienste (Global Positioning Service GPS) spezifizieren oder kann jedes andere geeignete Verfahren benutzten. Ferner kann die Anfrage 112 eine Art von Kartenhinweisen beinhalten, um zu spezifizieren, dass die Kartendaten zum Wiedergeben von Basiskarten angefordert werden. Außerdem weist die Anfrage 102 in manchen Ausführungsformen darauf hin, ob Vektor basierende Kartendaten für das Gebiet R1 bereits beim Client-Gerät erhältlich sind, das die Komponenten 102 und 104 implementiert.
-
Als Antwort auf die Anfrage 112 kann der Server 106 eine Antwort 114 erzeugen, die Kartendaten in einem Nicht-Rasterformat, wie beispielsweise in einem Grafikformat für Vektoren, beinhaltet, um eine Basiskarten Abbildung wiederzugeben. Entsprechend einem exemplarischen Szenario beinhaltet die Antwort 114 eine Vektor basierende Beschreibung der Basiskarten Abbildung für das Gebiet R1, das sich nicht auf vorher bereitgestellte Vektordaten stützt. Antwort 114 beinhaltet in anderen Worten eine vollständige Beschreibung der Basiskarten Abbildung des Gebiets R1. Die Antwort 114 kann Kartendaten beinhalten, die auf eine geeignete Weise organisiert sind, wie beispielsweise in einen oder mehrere Deskriptoren für Kacheln 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 Antwort 112 verschiedene Merkmale F1, F2, usw. beschreiben, wobei jede mithilfe einer oder mehrerer Vektordeskriptoren entsprechend eines geeigneten Grafikformats für Vektoren spezifiziert werden kann (es wird oben darauf hingewiesen, dass eine Funktion mit einem einzelnen Kartenelement oder einer Gruppe von Kartenelementen verbunden werden kann). 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. Die Antwort 114 kann in manchen Ausführungsformen zusätzlich Stildaten beinhalten, die verschiedene visuelle Eigenschaften der Kartenelemente spezifizieren.
-
Die dynamische Maschine zur Kartenwiedergabe 104 kann die Basiskarten Abbildung wiedergeben, die Basis Kartenabbildung an der Benutzerschnittstelle 102 bereitstellen und ein entsprechendes Event 116 erzeugen, um die erhaltenen Kartendaten (und erhältliche Stildaten) in einem Arbeitsspeicher für zukünftige Benutzung zu speichern. In einer Ausführungsform speichert die dynamische Maschine zur Kartenwiedergabe 104 zusätzlich einen Hinweis, dass die Kartendaten mit einer Basiskarte verbunden sind.
-
In Szenario 2 bestimmt der Benutzer später, die Kartenart von Basis zu Transit zu ändern, ohne die geografischen Koordinaten zu verändern und das geeignete Steuerungselement über die Benutzerschnittstelle 102 zu aktivieren. Als Antwort erzeugt die Benutzerschnittstelle 102 eine Anfrage 120 Daten für Transitkarten und vermittelt die Anfrage 120 und die dynamische Maschine zur Kartenwiedergabe 104, die daraufhin einen Hinweis 121 und den Server 106 bereitstellt, dass eine andere Kartenabbildung an das Client-Gerät wiedergegeben wird. In einer Ausführungsform ist der Hinweis 121, ähnlich zur Anfrage 112, eine Anfrage bezüglich Daten für Transitkarten. In einer anderen Ausführungsform fordert der Hinweis 121 insbesondere Änderungsdaten zum Verändern von vorher bereitgestellten Kartendaten an, um die Transitkarten Abbildung wiederzugeben.
-
In einer Ausführungsform stellt der Server 106 einen Änderungshinweis an das Client-Gerät als eine Reihe von elektronischen Nachrichten bereit 122 1 ... 122 N. In einer anderen Ausführungsform wird der Änderungshinweis jedoch als eine einzelne Nachricht bereitgestellt. Jeder der Nachrichten 122 1 ...122N kann einen Hinweis beinhalten, wie Vektordaten für die entsprechende Kachel T1 ... TN, verändert werden sollen. In manchen Szenarien werden jedoch einige der Kacheln verändert T1 ... TN, die in der Antwort 114 beschrieben sind. Eine Kartenkachel, die beispielsweise ein Wasserkörper darstellt kann das gleiche Aussehen haben wenn dieser als ein Teil einer Basiskarte oder als ein Teil einer Transitkarte angezeigt ist.
-
Für jede veränderte Kachel kann die Nachricht 122 i eine oder mehrere Änderungsdeskriptoren beinhalten M1, M2 ... MM. Im Allgemeinen kann ein Deskriptor für Änderungsdeskriptoren einen Vektordeskriptor für ein Kartenelement spezifizieren, das bei vorher bereitgestellten Kartendaten hinzugefügt wurde, ein Kartenelement in einer vorher bereitgestellten Kartendaten identifizieren, die entfernt werden sollen, einen neuen Wert für eine Eigenschaft eines Kartenelements in vorher bereitgestellten Kartendaten spezifizieren usw. In einer Ausführungsform identifiziert jede der Änderungsdeskriptoren M1, M2 ... MM die auszuführende Operation, wie beispielsweise das Hinzufügen, Entfernen, Ändern, Ändern der Tiefe usw., und beinhaltet auch eine oder mehrere Operanden oder Parameter, wie beispielsweise einen Vektordeskriptor für eine Kartenfunktion oder ein Kartenelement, der hinzugefügt wird, eine Kennung einer Kartenfunktion oder ein Kartenelement, das entfernt werden soll usw.
-
Beim Erhalten der Nachrichten 122 1 ... 122 N, kann die dynamische Maschine zur Kartenwiedergabe 104 die Kacheln für die angeforderte Transitkarten Abbildung wiedergeben, indem einige oder alle Vektordaten benutzt werden, die als Antwort 114 dem Änderungshinweis in den Nachrichten bereitgestellt wurden 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, um eine Transitkarten Abbildung wiederzugeben und ein Event 126 zu erzeugen, das herbeiführt, dass die Transitkarten Abbildung über die Benutzerschnittstelle 102 wiedergegeben wird. Die dynamische Maschine zur Kartenwiedergabe 104 kann auch die veränderten Kartendaten im Arbeitsspeicher speichern. In einer Ausführungsform speichert die dynamische Maschine zur Kartenwiedergabe 104 zugleich die ursprünglich bereitgestellten Kartendaten und die veränderten Kartendaten als unterschiedliche Versionen der Kartendaten.
-
Während einem exemplarischen Nachrichtenaustausch 150, der in 3 abgebildet ist, stellt der Kartenserver 106 Vektordeskriptoren der zusätzlichen Kartenfunktionen an die dynamische Maschine zur Kartenwiedergabe 104 über die jeweiligen Nachrichten 152 1 bereit ... 152 N. Die zusätzlichen Kartenfunktionen werden mit einigen oder allen vorher bereitgestellten Kartendaten benutzt, um eine neue Kartenabbildung an das Client-Gerät wiederzugeben, das die Benutzerschnittstelle 102 und die dynamische Maschine zur Kartenwiedergabe 104 implementiert. In einer Ausführungsform beschreiben die Nachrichten 152 1 ... 152 N Ergänzungen für eine bestimmte Kartenkachel. In anderen Ausführungsformen sind die Nachrichten 152 1 ... 152 N nicht mit einer bestimmten Kachel verbunden.
-
Jede der Nachrichten 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 Nachricht 152 kann auch eine Tiefenfunktion beinhalten, die festlegt, wie die entsprechenden Kartenfunktionen relativ zu einer anderen Kartenfunktion oder einem Element wiedergegeben wird, das ungefähr am gleichen Ort entsorgt wurde. Eine neue Kartenfunktion, die durch eine der Nachrichten 152 1 hinzugefügt wurde ... 152 N kann beispielsweise ein Abschnitt eines Zuggleises sein, und das vorher Bereitgestellte kann eine Kartenfunktion in Form eines Straßensegments beinhalten. 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.
-
Beim Erhalten der Nachrichten 152 1 ... 152 N, kann die dynamische Maschine zur Kartenwiedergabe 104 eine neue Kartenabbildung wiedergeben und ein Event 156 erzeugen, um herbeizuführen, dass die neue Kartenabbildung an der Benutzerschnittstelle 102 angezeigt wird. In einer Ausführungsform speichert die dynamische Maschine zur Kartenwiedergabe 104 auch die erweiterten Kartendaten als eine neue Version der Kartendaten in einem Arbeitsspeicher.
-
In Bezug auf 4, kann ein exemplarischer Nachrichtenaustausch 200 auftreten wenn der Server 106 bestimmt, dass eine bestimmte Kartenfunktion, die in vorher bereitgestellten Kartendaten beinhaltet wurde, in einer neuen Kartenabbildung bei einer neuen Tiefe wiedergegeben wird. Der Server 106 kann an der dynamischen Maschine zur Kartenwiedergabe 104 für eine neue Kartenfunktion, die durch eine einzigartige Kennung identifiziert wurde, einen Änderungshinweis 202 erzeugen und übertragen, der eine neue Tiefe anzeigt, bei der die Kartenfunktion wiedergegeben werden soll. In einer anderen Ausführungsform weist der Änderungshinweis 202 auf einen neuen Tiefenwert für mehrere Kartenfunktionen oder Elemente hin. Beim Erhalten des Änderungshinweises 202 kann die dynamische Maschine zur Kartenwiedergabe 104 eine neue Kartenabbildung hinsichtlich des Änderungshinweises 202 wiedergeben und ein Event 204 erzeugen, um herbeizuführen, dass die neue Kartenabbildung an der Benutzerschnittstelle 102 angezeigt wird.
-
Ferner kann ein exemplarischer Nachrichtenaustausch 250 von 5 auftreten wenn der Server 106 bestimmt, dass eine bestimmte Kartenfunktion, die in vorher bereitgestellten Kartendaten beinhaltet wurde, nicht in einer neuen Kartenabbildung wiedergegeben wird. Der Server 106 kann an die dynamische Maschine zur Kartenwiedergabe 104 einen Änderungshinweis 252 übertragen, der eine Kartenfunktion mithilfe einer beispielsweise einzigartigen Funktionskennung identifiziert. In einer anderen Ausführungsform identifiziert der Änderungshinweis 252 ein einzelnes Kartenelement, indem es eine geeignete Kennung des Kartenelements benutzt. Ferner identifiziert der Änderungshinweis 252 in einigen Ausführungsformen mehrere Kartenfunktionen oder Elemente, die entfernt werden sollen. Beim Erhalten des Änderungshinweises 252, kann die dynamische Maschine zur Kartenwiedergabe 104 eine neue Kartenabbildung hinsichtlich des Änderungshinweises 252 wiedergeben und ein Event 254 erzeugen, das herbeiführt, dass die neue Kartenabbildung an der Benutzerschnittstelle 102 abgebildet werden kann.
-
6 zeigt einen exemplarischen Nachrichtenaustausch 300 an, bei dem der Server 106 Änderungsdaten an die dynamische Maschine zur Kartenwiedergabe 104 zum Ändern einer zusammengesetzter Kartenfunktion bereitstellt, die mehrere Teilfunktionen oder Elemente hat. Eine Kartenfunktion kann beispielsweise F1 Teilfunktionen F1-1, F1-2, F1-3, F1-4, und F1-5 beinhalten. Beim Wiedergeben der Kartenfunktion F, als Teil einer Basiskarte kann jedes der Teilfunktionen F1-1, F1-2, F1-3, F1-4, und F1-5 benutzt werden. Beim Wiedergeben der Kartenfunktion als Teil der Transitkarte F1 kann die Kartenfunktion F1 nur mit den Teilfunktionen F1-1 und F1-2 wiedergegeben werden. In einer Ausführungsform erzeugt der Server 106 eine Nachricht 302, die darauf hinweist, dass die Kartenfunktion F1 entfernt werden soll. Ähnlich zum exemplarischen Szenario, das oben in Bezug auf 5 erläutert wird, kann die Nachricht 302 eine einzigartige Kennung der Kartenfunktion F1 beinhalten. Der Server 106 erzeugt Nachrichten 304 und 306 zum Hinzufügen von jeweiligen Teilfunktionen F1-1 und F1-5. Ähnlich zum exemplarischen Szenario von 3 können die Nachrichten 304 und 306 eine Beschreibung der entsprechenden Kartenfunktionen oder Elementen in einem Nicht-Rasterformat, wie beispielsweise eines Grafikformats für Vektoren, beinhalten. Beim Erhalten der Nachrichten 302, 304 und 306 kann die dynamische Maschine zur Kartenwiedergabe 104 eine neue Kartenabbildung mit einer neuen Version der Kartenfunktion F1 wiedergeben und ein Event 310 erzeugen, um herbeizuführen, dass die neue Kartenabbildung an der Benutzerschnittstelle 102 angezeigt wird.
-
Als nächstes können mehrere exemplarische Verfahren in Rechnergeräten implementiert werden, die im System von 1 oder in einer ähnlichen Umgebung in Betrieb sind, wie in Bezug auf 7–9 erläutert. 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.
-
In Bezug auf 7 kann ein exemplarische Verfahren 350 zuerst zum Erzeugen von Kartendaten für mehrere Kartenabbildungen im Kartenregler 30 des Kartenservers 12 oder beispielsweise einer ähnlichen Komponente des Servers 106 implementiert werden. Gemäß einer Ausführungsform werden Vektordeskriptoren zur Wiedergabe einer ersten Kartenabbildung für ein bestimmtes 352 Gebiet an einem Block erzeugt. Die Vektordeskriptoren können mit einem Grafikformat für Vektoren übereinstimmen und jeweilige Kartenelemente beschreiben. In einigen Ausführungsformen können die Vektordeskriptoren in entsprechende Kartenfunktionen eingruppiert werden, wovon jede eine oder mehrere Kartenelemente beinhaltet. Ferner können die Vektordeskriptoren in einigen Ausführungsformen zur effizienten Wiedergabe und wiederholten Wiedergabe von Vektordaten, Text-basierenden Beschriftungsdaten, Zeichen oder Symbolen, wie Straßenschilder usw., als Teil von Nicht-Raster Kartendaten, die auch Stildaten beinhalten, bereitgestellt werden.
-
Als nächstes werden die Vektordeskriptoren bei Block 354 für das Client-Gerät bereitgestellt. So können beispielsweise die Vektordeskriptoren als eine oder mehrere elektronische Nachrichten über ein Kommunikationsnetzwerk, wie beispielsweise das Netzwerk 16, von 1 übertragen werden.
-
In Block 356 wird eine Datenanfrage bezüglich der Wiedergabe einer zweiten Kartenabbildung für das gleiche Gebiet erhalten. 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. Ein Änderungshinweis, der eine Beschreibung einer oder mehrerer Änderungen bei den vorher bereitgestellten Vektordeskriptoren beinhaltet, wird bei Block 358 erzeugt und an das Client-Gerät bei Block 360 bereitstellt.
-
In einem anderen Szenario wird die bei Block 356 erhaltene Anfrage als Antwort dazu übertragen, dass der Benutzer eine neue Zoomstufe ausgewählt hat, bei der das Kartenbild dem gleichen Gebiet entspricht und die gleiche Kartenart wiedergegen wird. Die Vektordeskriptoren, die bei Block 352 erzeugt werden, können beispielsweise mehrere Kacheln bei Zoomstufe Z1 einer Art von Basiskarten für ein geografisches Gebiet R. beschreiben. Nachdem der Benutzer die Zoomstufe Z2 ausgewählt und eine geeignete Datenanfrage bei Block 356 gemacht wird, kann ein Änderungshinweis erzeugt und an das Client-Gerät jeweils bei Block 358 und 360 bereitgestellt werden. Das Client-Gerät kann die vorher bereitgestellten Vektordeskriptoren entsprechend den Änderungshinweisen hinzugefügten, entfernen, oder verändern sowie einige oder alle der Vektordeskriptoren wiederholt skalieren, um die entsprechenden Kartenelemente bei Zoomstufe Z2 wiederzugeben. Ein noch spezifischeres Beispiel ist wenn Vektordeskriptoren bei Block 354 eine Vektor basierende Beschreibung einer Parkanlage bei Zoomstufe Z1 beinhalten können, und die gleiche Vektor basierende Beschreibung der Parkanlage zur wiederholten Wiedergabe der Parkanlage bei Zoomstufe Z2 als ein Teil des veränderten Kartenabbildung benutzt werden kann.
-
In Bezug auf 8 kann ein exemplarisches Verfahren 400 zum Erzeugen einer Beschreibung einer Änderung von vorher bereitgestellten Kartendaten beispielsweise in einem Kartenregler 30 des Kartenservers 12 oder einer ähnlichen Komponente des Servers 106 implementiert werden. In einer Ausführungsform werden zumindest einige der Verfahrensschritte 400 bei den Blöcken 356–360 des oben erläuterten Verfahrens 350 ausgeführt.
-
In Block 402 wird ein Hinweis darauf erhalten, dass eine Kartenabbildung beim Client-Gerät aktualisiert werden soll. Ergänzungen zu den vorher bereitgestellten Vektordeskriptoren werden bei Block 404 identifiziert und die entsprechenden Beschreibungen werden erzeugt. In Block 406 werden Löschungen einiger der vorher bereitgestellten Vektordeskriptoren identifiziert, und die entsprechenden Beschreibungen der Änderungen werden erzeugt. Wie oben erläutert werden Änderungen bestimmter Kartenfunktionen in einigen Szenarien entfernt und Ergänzungen für einige der Teilfunktionen dargestellt. Ein Änderungshinweis, wie beispielsweise eine Beschreibung einer Änderung von Vektordaten, wird an das Client-Gerät 408 durch eine einzelnen elektronischen Nachricht oder mehrere elektronischen Nachrichten übertragen.
-
9 ist ein Flussdiagramm eines exemplarischen Verfahrens 450 zur Wiedergabe von Kartenabbildungen, die beispielsweise in der dynamische Maschine zur Kartenwiedergabe 62 oder 104 implementiert werden können. In Block 452 werden Vektordeskriptoren für ein bestimmtes Gebiet oder eine Region erhalten, und eine erste Kartenabbildung wird mithilfe des erhaltenen Vektordeskriptors bei Block 454 wiedergegeben. Zu diesem Zweck können die erhaltenen Vektordaten interpretiert werden, um ein Rasterbild zu erzeugen.
-
Als Nächstes wird bei Block 456 eine Anfrage bezüglich der Wiedergage einer zweiten Kartenabbildung von der Benutzerschnittstelle, wie beispielsweise der Schnittstelle einer Browseranwendung, erhalten. Die zweite Kartenabbildung kann für das gleiche Gebiet sein, kann aber, wie oben erläutert, einer unterschiedlichen Kartenart oder einem unterschiedlichen Zoomstatus entsprechen. Ein Änderungshinweis, wie beispielsweise eine Beschreibung einer oder mehrere Änderungen der bei Block 452 erhaltenen Vektordeskriptoren, wird bei Block 458 erhalten. Die zweite Kartenabbildung wird dann mithilfe von einigen oder allen der bei Block 452 erhaltenen Vektordeskriptoren und der Beschreibungen der bei Block 458 erhaltenen Änderungen wiedergegeben. Wie oben erläutert können Änderungen zu Vektordaten im Allgemeinen Ergänzungen, Löschungen, Änderungen, Tiefenänderungen usw. beinhalten.
-
Um ferner eine exemplarische Anwendung der oben erläuterten Techniken darzustellen, entsprechen 10A und 10B Karten von gleichen geografischen Gebieten und sind jeweils gemäß der Art von Basiskarten und der Art von Transitkarten angezeigt. Eine Kartenabbildung 500 einer Basiskarte, die in 10A abgebildet ist, kann eine Wiedergabe 500 von mehreren Kartenelementen, wie beispielsweise Straßen und Parkanlagen, beinhalten. Wie in 10B dargestellt, kann eine Kartenabbildung einer Transitkarte die Kartenelemente der Kartenabbildung 500 sowie eine U-Bahnlinie 504 beinhalten, die auf den entsprechenden Teilen der Kartenabbildung 500 überlagert sind. Abhängig von den Ausführungsformen kann die U-Bahnlinie 504 als eine einzelne Kartenfunktion oder mehrere Kartenfunktionen definiert werden, wovon jede einem jeweiligen Gleisabschnitt entspricht. Ferner kann ein U-Bahn-Symbol 506 über einen Teil der Kartenabbildung 500 wiedergegeben 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.
-
Damit eine Kartenabbildung von 10B an einem Client-Gerät erzeugt werden kann nachdem die Kartenabbildung von 10A am Client-Gerät wiedergegeben wurde, kann ein Kartenserver nur einen Änderungshinweis bereitzustellen, der in einem Vektorformat den einen oder mehrere Kartenfunktionen entsprechend der U-Bahnlinie 504 beschreibt. In einer Ausführungsform stellt der Änderungshinweis auch einen Tiefenhinweis bereit, um herbeizuführen, dass die U-Bahnlinie 504 über den Straßen abgebildet auf der Kartenabbildung von 10A erscheint. Ferner beinhaltet der Änderungshinweis zusätzlich eine Beschreibung der U-Bahnlinie 506 als eine Beschriftung oder ein Symbol.
-
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 sind hierin beschrieben als Ausführungsformen, die Logik oder eine Anzahl von Komponenten, Modulen oder Mechanismen beinhalten. 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.
-
Soweit nicht ausdrücklich anders festgelegt, können Erörterungen hierin, die Wörter, wie „Verarbeitung”, „Berechnung”, „Rechnen”, „Bestimmung”, „Darstellung”, „Anzeige” oder ähnliches, verwenden, auf Aktionen oder Prozesse einer Maschine (z. B. eines Computers) verweisen, 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, nicht flüchtiger Speicher oder eine Kombination davon), Registern 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 beinhaltet 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” oder jede 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 Offenbarung 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 offenbarten 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.