-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung bezieht sich auf interaktive digitale Landkarten und insbesondere auf die Verwaltung von Offline-Kartendaten in Clientgeräten.
-
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.
-
Softwareanwendungen, die interaktive digitale Landkarten, Fahrroutenanweisungen und verschiedene geografische Funktionen („geografische Anwendungen”) bereitstellen, können sowohl auf Computergeräten, die generell über eine dauerhafte Netzwerkverbindung verfügen, als auch auf tragbaren Geräten, wie Smartphones, Tablet-PCs, Kfz-Navigationssystemen usw. laufen, die sich in der Regel auf eine Netzwerkverbindung stützen. Neben der Bereitstellung interaktiver digitaler Landkarten stellen einige geografische Anwendungen auch andere Arten von Geodaten, wie z. B. Informationen über Geschäfte an verschiedenen geografischen Standorten, Beschreibungen von geografischen Sonderzielen, Navigationsanweisungen usw., bereit. So ist es z. B. möglich, dass eine auf einem tragbaren Gerät arbeitende geografische Anwendung eine geografische Abfrage wie „Tankstellen in der Nähe” empfängt, die Suchabfrage an einen Netzwerkserver überträgt und die Suchergebnisse über die Benutzeroberfläche des tragbaren Geräts anzeigt.
-
KURZDARSTELLUNG
-
Eine in einem tragbaren Gerät wie einem Smartphone arbeitende digitale geografische Anwendung liefert Offline-Geodatenvorschläge, wenn das tragbare Gerät keinen bzw. nicht schnell genug einen Netzwerkserver erreichen kann, indem sie Offlinedaten verwendet, die im Speicher des tragbaren Geräts abgelegt sind. Das tragbare Gerät kann sowohl in Reaktion auf abgeschlossene Benutzereingaben, wie z. B. die Zeichenfolge „Tankstellen”, gefolgt von der Betätigung der „Eingabe”- oder der „Absenden”-Taste, als auch in Reaktion auf teilweise Benutzereingaben Offline-Geodatenvorschläge bereitstellen. Eine aus einem oder mehreren Zeichen bestehende Anfangssequenz, die die teilweise abgeschlossene Benutzereingabe bildet, wird nachstehend als „Suchpräfix” bezeichnet. Das tragbare Gerät kann beispielsweise Geodatenvorschläge bereitstellen, nachdem der Benutzer „Chi” eingegeben hat, neue Geodatenvorschläge liefern, nachdem der Benutzer „Chic” eingegeben hat usw. Wenn das tragbare Gerät über eine hinreichend zuverlässige Verbindung zum Netzwerkserver verfügt, erhält die geografische Anwendung Online-Geodatenvorschläge vom Netzwerkserver. Darüber hinaus führt die geografische Anwendung, falls innerhalb eines bestimmten Zeitraums nach der Anzeige der Offlinevorschläge Onlinevorschläge eingehen, in dynamischer Weise Onlinevorschläge mit Offlinevorschlägen zusammen. Ferner kann die geografische Anwendung zum Ausbalancieren der geringeren Qualität der Offlinevorschläge mit der mit dem Abrufen von Onlinevorschlägen verbundenen Latenz nur dann Offlinevorschläge anzeigen, wenn die Länge des Suchpräfixes eine bestimmte Anzahl n überschreitet, wobei n drei, vier oder eine beliebige andere geeignete Zahl ist.
-
Eine Ausführung dieser Techniken besteht insbesondere in einem Verfahren zur dynamischen Integration von Offline- und Onlinevorschlägen in einem Computergerät. Das Verfahren umfasst den Empfang einer aus einem oder mehreren Zeichen bestehenden Anfangssequenz über eine Benutzeroberfläche und den Versuch, eine Anforderung von Onlinevorschlägen über ein Kommunikationsnetz an einen Netzwerkserver zu senden, wobei die Anforderung in der Anfangssequenz mindestens ein Zeichen enthält. Wenn die Anfangssequenz weniger als n Zeichen lang ist, wird bei diesem Verfahren, falls keine Antwort auf die Anforderung empfangen wird, die Anfangssequenz angezeigt, ohne dass Offlinevorschläge generiert werden. Wenn die Anfangssequenz mindestens n Zeichen lang ist, werden bei diesem Verfahren, (i) durch den einen oder durch die mehreren Prozessoren Offlinevorschläge generiert, die zumindest teilweise mit den Offline-Geodaten Daten übereinstimmen, und (ii) die Offlinevorschläge über die Benutzeroberfläche bereitgestellt, falls innerhalb eines bestimmten Zeitraums keine Antwort auf die Anforderung empfangen wird.
-
Eine weitere Implementierung besteht in einem Verfahren in einem tragbaren Computergerät zur Integration von Offline- und Onlinevorschlägen. Dieses Verfahren beinhaltet den Empfang eines Suchpräfixes einschließlich einer Anfangssequenz aus einem oder mehreren Zeichen über eine Benutzeroberfläche, den Versuch, eine Anforderung von Vorschlägen an einen Netzwerkserver zu senden, wobei in der Anforderung das Suchpräfix enthalten ist, und die Aktivierung eines ersten Timers beim Versuch, die Anforderung von Vorschlägen zu senden. Falls der erste Timer abläuft, bevor eine Antwort auf die Anforderung eingeht, umfasst das Verfahren (i) die Generierung von Offlinevorschlägen, die zumindest teilweise auf der Anfangssequenz basieren, unter Verwendung von auf dem Computergerät gespeicherten Offlinedaten und (ii) die Aktivierung eines zweiten Timers. Das Verfahren umfasst darüber hinaus die Zusammenführung der angeforderten Onlinevorschläge mit den Offlinevorschlägen, falls die angeforderten Vorschläge vom Netzwerkserver ankommen, bevor der zweite Timer abläuft.
-
Eine zusätzliche Ausführung besteht in einem tragbaren Computergerät mit einem oder mehreren Prozessoren, einer Benutzeroberfläche, einer Netzwerkschnittstelle zur kommunikativen Ankopplung des tragbaren Computergeräts an einen Netzwerkserver über ein Kommunikationsnetzwerk in einem Onlinemodus und einem an den einen oder an die mehreren Prozessoren gekoppelten nichtflüchtigen computerlesbaren Speicher. Der Speicher speichert eine geografische Anwendung, die so konfiguriert ist, dass sie (i) über die Benutzeroberfläche eine aus einem oder mehreren Zeichen bestehende Anfangssequenz empfängt, (ii) versucht, eine Anforderung von Vorschlägen an den Netzwerkserver zu senden, wobei die Anforderung in der Anfangssequenz mindestens ein Zeichen enthält, (iii) bei dem Versuch, die Anforderung von Vorschlägen zu senden, einen ersten Timer aktiviert und, falls der erste Timer abläuft, bevor eine Antwort auf die Anforderung eingeht, (a) Offlinevorschläge generiert, die unter Verwendung von auf dem Computergerät gespeicherten Offlinedaten zumindest teilweise auf der Anfangssequenz basieren, und (b) einen zweiten Timer aktiviert. Die geografische Anwendung ist darüber hinaus so konfiguriert, dass sie (iv) die angeforderten Onlinevorschläge mit den Offlinevorschlägen zusammenführt, falls die angeforderten Vorschläge vom Netzwerkserver ankommen, bevor der zweite Timer abläuft.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockdiagramm eines Beispielsystem, bei dem ein Clientgerät im Einklang mit den Techniken dieser Offenbarung Online- und Offlinevorschläge dynamisch miteinander integriert;
-
2 ist ein Blockdiagramm eines beispielhaften Clientgeräts, das in dem System nach 1 laufen kann;
-
3 ist ein Fließschema eines beispielhaften Verfahrens zur Integration von Online- und Offlinevorschlägen, das im Clientgerät nach 2 implementiert werden kann;
-
4 ist ein Fließschema eines beispielhaften Verfahrens zur Generierung von Offlinevorschlägen je nach der Länge des Suchpräfixes;
-
5A ist ein beispielhafter Screenshot, den eine geografische Anwendung gemäß dieser Offenbarung generieren kann, wenn der Benutzer ein kurzes Suchpräfix eingibt und das Clientgerät nicht schnell genug Online-Suchvorschläge abrufen kann;
-
5B ist ein beispielhafter Screenshot, den eine geografische Anwendung gemäß dieser Offenbarung generieren kann, wenn das Suchpräfix noch relativ kurz ist und das Clientgerät nicht schnell genug Online-Suchvorschläge abrufen kann; und
-
5C ist ein beispielhafter Screenshot, der Offlinevorschläge veranschaulicht, die eine geografische Anwendung gemäß dieser Offenbarung generieren kann, wenn das Suchpräfix lang genug ist und das Clientgerät nicht schnell genug Online-Suchvorschläge abrufen kann; und
-
5D ist ein beispielhafter Screenshot, der zusammengeführte Online- und Offlinevorschläge veranschaulicht, die eine geografische Anwendung gemäß dieser Offenbarung generieren kann, wenn wenig später, nachdem die geografische Anwendung Offlinevorschläge anzeigt, Online-Suchergebnisse eingehen.
-
DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
-
Überblick
-
Wenn ein Benutzer mittels eines tragbaren Geräts eine geografische Abfrage eingibt, versucht eine geografische Anwendung nach dieser Offenbarung, praktisch in Echtzeit Geodatenvorschläge zur Verfügung zu stellen. Die Geodatenvorschläge können z. B. geografische Suchbegriffe, Ortsnamen oder Endpunkte für Fahrroutenanweisungen enthalten. Die geografische Anwendung kann in einigen Fällen Offline-Geodatenvorschläge bereitstellen, indem sie Offline-Geodaten verwendet, die in einem Speicher des tragbaren Geräts gespeichert sind, und in anderen Fällen auf einem Netzwerkserver generierte Online-Geodatenvorschläge liefern.
-
Genauer gesagt, generiert die geografische Anwendung, z. B. wenn sie feststellt, dass über eine Anfrage an das Betriebssystem keine Netzwerkverbindung oder nur eine eingeschränkte Netzwerkverbindung des tragbaren Geräts verfügbar ist, automatische Offlinevorschläge, indem sie die Offline-Geodaten nutzt, die in einem Speicher des tragbaren Geräts gespeichert sind. In einigen Ausführungen kann die geografische Anwendung zur Vermeidung von Vorschlägen, deren Wahrscheinlichkeit, mit den Absichten des Benutzers übereinzustimmen, gering ist, auch nur dann Offlinevorschläge bereitstellen, wenn die Länge der Anfangszeichensequenz, die der Benutzer eingegeben hat, größer als eine bestimmte Zahl n (z. B. 3) ist.
-
Wenn die Netzwerkverbindung aufgrund des Ergebnisses der Abfrage an das Betriebssystem und/oder anderer Indikatoren verfügbar zu sein scheint, versucht die geografische Anwendung, automatische Vorschläge von einem Netzwerkserver abzurufen. Die geografische Anwendung kann einen relativ kurzen Timer (z. B. 100 ms) aktivieren, um den vorgegebenen Zeitraum abzugrenzen, in dem die geografische Anwendung auf Vorschläge vom Netzwerkserver wartet und keine Offlinevorschläge anzeigt. Wenn beim Ablauf des Timers keine Vorschläge vom Netzwerkserver empfangen werden, generiert die geografische Anwendung Offlinevorschläge und zeigt diese an. Falls kurz danach Vorschläge vom Netzwerkserver eingehen, führt die geografische Anwendung diese Onlinevorschläge mit den bereits angezeigten Offlinevorschlägen zusammen. In einigen Ausführungen aktiviert die geografische Anwendung einen weiteren, längeren Timer (z. B. 3 Sekunden) für einen im Voraus bestimmten Zeitraum, währenddessen Onlinevorschläge mit Offlinevorschlägen zusammengeführt werden können.
-
Wenn die geografische Anwendung Online- und Offlinevorschläge zusammenführt, kann die geografische Anwendung gleichzeitig einige der Offlinevorschläge zusammen mit den Onlinevorschlägen anzeigen. Zudem kann die geografische Anwendung im Fall, dass ein und dasselbe Element in den Offlinevorschlägen und in den Onlinevorschlägen enthalten ist und die Onlinevorschläge zusätzliche Details zu dem Element liefern, die bereits angezeigte Angabe des Elements um die zusätzlichen Details erweitern.
-
Wenn Offlinevorschläge angezeigt werden, kann die geografische Anwendung dem Benutzer einen passenden Indikator bereitstellen. Die geografische Anwendung kann auch eine interaktive Steuerung bereitstellen, mit deren Hilfe der Benutzer den längeren Timer reaktivieren und die geografische Anwendung dazu veranlassen kann, die Abrufung von Onlinevorschlägen erneut zu versuchen.
-
Auf diese Weise wird mit dem digitalen geografischen Modul ein Ansatz implementiert, bei dem die hohe Qualität netzwerkbasierter Vorschläge mit der Latenz bei der Lieferung dieser Vorschläge an den Benutzer ausbalanciert wird.
-
Überblick über ein Beispielsystem und ein tragbares Gerät
-
In 1 ist ein Beispielsystem 10 veranschaulicht, bei dem ein tragbares Gerät 14 Offlinevorschläge generiert und die Offlinevorschläge dynamisch mit Onlinevorschlägen zusammenführt. Das Clientgerät 14 ist über ein Kommunikationsnetz 16 kommunikativ an einen Netzwerkserver 12 gekoppelt, bei dem es sich um ein beliebiges geeignetes Netzwerk einschließlich Kabel- und/oder drahtloser Verbindungen handeln kann. Der Einfachheit halber ist in 1 nur ein Beispiel für einen Netzwerkserver 12 dargestellt. Der Netzwerkserver 12 kann jedoch in anderen Ausführungen auch mehrere nach einer geeigneten Topologie angeordnete Server umfassen, die untereinander kommunizieren können. In ähnlicher Weise kann das System 10 grundsätzlich beliebig viele tragbare und nicht-tragbare Geräte umfassen, die dem tragbaren Gerät 14 ähneln.
-
Der Server 12 kann einen oder mehrere Prozessor(en) 30 umfassen, die an einen Speicher 32 gekoppelt sind, bei dem es sich um einen nichtflüchtigen computerlesbaren Speicher mit persistenten und/oder nicht-persistenten Komponenten handeln kann. Ein Kartenabfrageprozessor 40 und ein Modul für automatische Vorschläge 42 können als im Speicher 32 abgelegte Anweisungssätze implementiert und durch den einen oder die mehreren Prozessor(en) 30 ausgeführt werden. Im Betrieb können der Kartenabfrageprozessor 40 und das Modul für automatische Vorschläge 42 jeweils Kartendaten für die Visualisierung einer digitalen Karte eines geografischen Gebiets bzw. Geodatenvorschläge an das Clientgerät 14 liefern.
-
Der Server 12 ist an eine Kartendatenbank 20 gekoppelt, die auf einem oder mehreren Servern (oder, falls erwünscht, als Komponente des Netzwerkservers 12) implementiert werden kann. Die Kartendatenbank 20 kann Beschreibungen der Geometrie und Lageangaben verschiedener natürlicher geografischer Merkmale (z. B. Flüsse, Berge und Wälder) sowie künstlicher geografischer Merkmale (z. B. Straßen, Gebäude und Parks) speichern. Die Kartendaten können unter anderen Daten Vektorgrafikdaten, Rasterbilddaten und Textdaten umfassen. In einer Beispielausführung ordnet die Kartendatenbank 20 Kartendaten in Kartenkacheln an, die in der Regel einer zweidimensionalen Organisation von Geodaten in einem Quaternärbaum (einer Datenbaumstruktur, in der jeder Knoten höchstens vier Tochterknoten hat) entsprechen. In anderen Ausführungen können andere Baum- und/oder Nicht-Baum-Datenstrukturen zur Anordnung von Kartenkacheln genutzt werden. Jede Kartenkachel kann einer quadratischen geografischen Region entsprechen, wobei die Größe des Quadrats vom Vergrößerungsgrad bzw. der Zoomstufe abhängt. Deshalb wird jede Kartenkachel auf einem bestimmten Zoomniveau im nächsten Niveau in vier Kacheln aufgeteilt, bis zum höchsten Zoomniveau. Der Kartenabfrageprozessor 40 kann vom Clientgerät 14 eine Anforderung eines bestimmten Orts oder Gebiets und eine Angabe der gewünschten Zoomstufe erhalten, einen Satz von Kartenkacheln bestimmen, der für die Visualisierung einer digitalen Karte des entsprechenden Gebiets mit der angegebenen Zoomstufe erforderlich ist, und die Kartenkacheln an das Clientgerät 14 übertragen.
-
Darüber hinaus ist der Server 12 an eine Geodatenbank 22 gekoppelt, in der Geodaten oder Daten mit geografischen oder raumbezogenen Merkmalen gespeichert sind. Diese geografischen oder raumbezogenen Merkmale können in einem beliebigen geeigneten globalen Positionsbestimmungssystem wie dem Koordinatensystem des Global Positioning Service (GPS) und/oder in einem beliebigen im Verhältnis zu einem bestimmten Punkt definierten lokalen Positionsbestimmungssystem vorhandene Standortangaben einschließen. Die raumbezogenen Merkmale können zusätzlich oder alternativ Straßenadressinformationen, Angaben über die Nähe von Orientierungspunkten und andere geeignete ortsbezogene Hinweise enthalten.
-
Die in der Geodatenbank 22 enthaltenen Informationen können geografische Sonderziele, stationäre Geschäfte, Benutzerbewertungen usw. zum Inhalt haben. Beispielsweise kann die Geodatenbank 22 eine Beschreibung eines Kinos, wobei die Beschreibung den Namen des Kinos einschließt, (z. B. „Die Musikbox”), eine Angabe des Standorts (z. B. die GPS-Koordinaten des Mittelpunkts des Gebäudes oder des Haupteingangs), eine Angabe der Preisspanne (z. B. „11 €”, „Ermäßigung für Schüler/Studierende”, „Nachmittagsvorstellungs-Ermäßigung”), einen Link zur Website des Kinos und andere Daten enthalten, die möglicherweise hilfreich für die Benutzer sind. Das Modul für automatische Vorschläge 42 kann bei der Bereitstellung von Geodatenvorschlägen an das tragbare Gerät 14 die Geodatenbank 22 nutzen. Wenn der Benutzer eine abgeschlossene Abfrage sendet, kann auch der Netzwerkserver 12 die Geodatenbank 22 für die Generierung einer Antwort nutzen.
-
Stets mit Bezug auf 1 kann der Server 12 auch auf eine Benutzerdatenbank 24 zugreifen, in der spezifische Benutzerdaten der Benutzer verschiedener Clientgeräte wie z. B. des Clientgeräts 14 abgelegt sind. Für einen bestimmten Benutzer können die Benutzerdaten die jüngsten raumbezogenen Abfragen, häufige geografische Abfragen und/oder häufige Themen, den Wohnort der Nutzerin, ihren Arbeitsort usw. anzeigen. Das Modul für automatische Vorschläge 42 kann unter Berücksichtigung der in der Benutzerdatenbank 24 abgelegten benutzerspezifischen Informationen exakte und relevante Geodatenvorschläge für einen Benutzer bereitstellen. In einigen Ausführungen betätigt der Benutzer bestimmte Steuerelemente und/oder installiert bestimmte Anwendungen, um es dem Server 12 und/oder dem Clientgerät 14 zu erlauben, die Daten des Benutzers auf diese Weise zu verwenden.
-
2 ist ein Blockdiagramm, das eine Beispielausführung des Clientgeräts 100 darstellt, das in einigen Ausführungen z. B. dem Clientgerät 14 in 1 entspricht. Bei dem Clientgerät 100 kann es sich um ein beliebiges geeignetes tragbares Gerät handeln, das sich zum Abrufen von Kartendaten für die Erstellung einer interaktiven digitalen Karte auf eine Netzwerkverbindung stützt. Das Clientgerät 100 kann z. B. ein Laptop, ein Smartphone oder ein Tablet-PC sein. Darüber hinaus kann das Clientgerät 100 ein Tischcomputer mit zeitweiligem Internetzugang sein. Ferner kann das Clientgerät 100 ein in einer Fahrzeugumgebung genutztes Navigationsgerät sein, das als ein physisch getrenntes Gerät ausgeführt oder im Radio des Fahrzeugs integriert ist. Das Clientgerät 100 umfasst einen oder mehrere Prozessor(en) 102, einen computerlesbaren Speicher 104, eine Netzwerkschnittstelle 105 und eine Benutzeroberfläche 106. In einigen Ausführungen umfasst/umfassen der eine oder die mehreren Prozessor(en) 102 einen Zentralprozessor (CPU) sowie einen Grafikprozessor (GPU) zur effizienten Wiedergabe von Grafikinhalt. Die Benutzeroberfläche 106 kann Komponenten wie einen Bildschirm, einen Touchscreen, eine Tastatur, ein Mikrofon, einen oder mehrere Lautsprecher usw. umfassen. Der Speicher 104 kann ein nichtflüchtiger Speicher mit persistenten (z. B. Speicherstick) und/oder nicht-persistenten (z. B. RAM) Komponenten sein.
-
Das Speichermodul 104 speichert Anweisungen, die eine geografische Anwendung 110 implementieren, die eine Spezial-Kartierungs-/Navigationsanwendung oder eine allgemeine Anwendung, z. B. einen Webbrowser, der z. B. eine Kartierungs-Anwendungsprogrammierschnittstelle (API) enthält. Das Speichermodul 104 implementiert auch einen Cache 120 für die Speicherung von Kartendaten 122, z. B. in Kachelform, sowie Offline-Geodaten 126, die mittels einer beliebigen geeigneten Datenstruktur (z. B. eines Baums oder eines Tabellensatzes) organisiert werden und mithilfe einer beliebigen geeigneten Technik indexiert werden können.
-
Die geografische Anwendung 110 umfasst ein Offlinevorschläge-Modul 130 (z. B. in Form einer oder mehrerer Softwareroutinen), das bestimmen kann, wann die geografische Anwendung 110 versuchen sollte, unter Verwendung der Offline-Geodaten 126 Offline-Geodatenvorschläge zu generieren, Offlinevorschläge generieren, die Timer für die Versuche, Online-Geodatenvorschläge abzurufen, aktivieren und sie überwachen sowie Onlinevorschläge mit Offlinevorschlägen zusammenzuführen kann.
-
In einigen Fällen kann die geografische Anwendung 110 Onlinevorschläge anhand von auf einem Netzwerkserver ausgewählten und an das Clientgerät 100 übertragenen Daten generieren. D. h., die geografische Anwendung 110 kann in einigen Fällen „Rohdaten” vom Netzwerkserver empfangen und die empfangenen Daten dafür verwenden, Online-Geodatenvorschläge lokal zu generieren. Darüber hinaus kann die geografische Anwendung 110 in manchen Fällen Daten vom Netzwerkserver empfangen und die empfangenen Daten zusammen mit den Offlinedaten dafür verwenden, Vorschläge zu generieren, die bei dieser Anwendung auch als Online-Geodatenvorschläge bezeichnet werden. Ganz allgemein werden Geodatenvorschläge, die zumindest teilweise auf Daten basieren, die für ein bestimmtes Suchpräfix vom Netzwerkserver empfangen wurden, nachdem das Suchpräfix in das Clientgerät 100 eingegeben wurde, hier als Online-Geodatenvorschläge bezeichnet.
-
Beispielverfahren der Zusammenführung von Online- und Offline-Geodatenvorschlägen
-
Als Nächstes wird nun ein Funktionsbeispiel der geografischen Anwendung 110 und des Offlinevorschläge-Moduls 130 erörtert. Im Einzelnen wird mit Bezug auf 3 ein allgemeines Verfahren zur Bestimmung des Zeitpunkts, zu dem Offlinevorschläge generiert werden sollen, und des Zeitpunkts, zu dem Onlinevorschläge mit Offlinevorschlägen zusammengeführt werden sollen, und mit Bezug auf 4 ein Verfahren zur dynamischen Bestimmung des Zeitpunkts, zu dem Offlinevorschläge in Abhängigkeit von der Länge des Suchpräfixes generiert werden sollten, dargestellt.
-
Zunächst auf 3 Bezug nehmend, kann in der geografischen Anwendung 110 ein Verfahren 200 beispielsweise in Form eines Satzes von im/in den Prozessor(en) 102 ausführbaren Softwareanweisungen implementiert werden. Z. B. können mindestens einige der in 3 veranschaulichten Blöcke im Offlinevorschläge-Modul 130 implementiert werden. Das Offlinevorschläge-Modul 130 kann z. B. die Funktionen der Blöcke 204, 206, 220 und 226 ausführen und die anderen Blöcke können durch andere Komponenten der geografischen Anwendung 110 ausgeführt werden. In einer anderen Ausführung kann das Offlinevorschläge-Modul 130 alle in 3 veranschaulichten Blöcke implementieren. Das Verfahren 200 kann allerdings ganz allgemein in einer oder mehreren Softwarekomponenten in einem beliebigen geeigneten tragbaren Gerät implementiert werden.
-
Das Verfahren 200 beginnt beim Block 202 mit einer Feststellung, ob eine Netzwerkverbindung verfügbar ist. Zu diesem Zweck kann das Verfahren 200 eine vom Betriebssystem des tragbaren Geräts zur Verfügung gestellte API aufrufen. Es sei darauf hingewiesen, dass ein tragbares Gerät wie z. B. das tragbare Gerät 14 in 1 oder das tragbare Gerät 100 in 2 in manchen Fällen mit einem hohen Genauigkeitsgrad feststellen kann, dass derzeit keine Verbindung zum Netzwerk verfügbar ist. Andererseits ist es, wenn das tragbare Gerät feststellt, dass eine Netzwerkverbindung vorhanden ist, für das tragbare Gerät schwierig vorherzusagen, wie schnell eine bestimmte Nachricht einen Netzwerkknoten erreichen wird und wie schnell eine Antwort beim tragbaren Gerät ankommen wird.
-
Gemäß dem Verfahren 200 schreitet der Ablauf, wenn festgestellt wird, dass keine Netzwerkverbindung verfügbar ist, zum Block 204 fort, wo Offlinevorschläge bereitgestellt werden. Wie nachstehend detaillierter beschrieben, hängt die Antwort auf die Frage, ob in einigen Ausführungen Offlinevorschläge generiert werden, außerdem von der Länge des Suchpräfixes ab. Zusätzlich zur Bereitstellung von Offlinevorschlägen kann das Verfahren 200 die Bereitstellung eines Offlineindikators umfassen, durch den der Benutzer darüber benachrichtigt wird, dass keine Geodatenvorschläge von einem Netzwerkserver empfangen wurden (Block 206). Der Offlineindikator kann z. B. in einem Symbol oder in einer Textmeldung bestehen. Darüber hinaus kann das Verfahren 200 die Bereitstellung eines interaktiven Steuerelements für die Anforderung an die geografische Anwendung enthalten, einen weiteren Versuch zu unternehmen, geografische Onlinevorschläge zu empfangen (Block 206). Das interaktive Steuerelement kann ein interaktives Symbol, eine Sondertaste oder eine Taste, die in der Regel einem anderen Zweck dient – wie die Suchtaste – und in diesem Fall auf eine besondere Art (z. B. durch doppeltes Antippen) aktiviert wird. Nachdem Block 206 ausgeführt wurde, wird das Verfahren 200 abgeschlossen. Es ist jedoch darauf hinzuweisen, dass das Verfahren 200 jedes Mal aufgerufen werden kann, wenn der Benutzer ein neues Zeichen eingibt.
-
Falls bei Block 202 festgestellt wird, dass wahrscheinlich eine Netzwerkverbindung verfügbar ist, schreitet der Ablauf zum Block 210 fort, bei dem versucht wird, eine Anforderung von Onlinevorschlägen zu senden. Bei dieser Anforderung kann es sich um eine Meldung handeln, die das Suchpräfix (z. B. „S” in der ersten Instanz der Meldung, „Sa” in der zweiten Instanz der Meldung, „San” in der dritten Instanz usw.) sowie einen Hinweis auf den aktuellen Kontext (z. B. Navigation oder Suche) enthält. In einer alternativen Ausführung oder einem alternativen Szenario umfasst die Anforderung nur das letzte Zeichen, das der Benutzer dem Suchpräfix hinzugefügt hat, sodass die Meldung in der ersten Instanz „S”, in der zweiten Instanz entsprechend dem Suchpräfix „Sa” nur „a” enthält usw. In einigen Fällen wird es der geografischen Anwendung aufgrund mangelnder Konnektivität nicht gelingen, die Anforderung zu senden. In anderen Fällen kann es der geografischen Anwendung dagegen anfangs gelingen, die Meldung an einen Netzwerkserver zu senden, die Meldung wird jedoch nicht rechtzeitig oder überhaupt nicht beim Netzwerkserver ankommen. Dementsprechend wird der Timer T1 beim Block 212 aktiviert.
-
Der Timer T1 kann einem relativ kurzen Zeitraum – wie z. B. 100 ms – entsprechen. Falls Onlinevorschläge empfangen werden, bevor der Timer T1 abläuft (Block 214), schreitet der Ablauf zu Block 216 fort, bei dem Onlinevorschläge über eine Benutzeroberfläche bereitgestellt werden. Der Netzwerkserver kann Onlinevorschläge z. B. in Form einer geordneten Liste bereitstellen, in der verschiedene Suchbegriffe in der Reihenfolge ihrer Wahrscheinlichkeit aufgelistet sind. Das obige Beispiel wiederaufnehmend, können die Vorschläge für einen bestimmten Benutzer, die dem Suchpräfix „San” entsprechen, „San Francisco” mit der Wahrscheinlichkeit 0,9, „San Jose” mit der Wahrscheinlichkeit 0,8 usw. umfassen. Der Netzwerkserver kann diese Vorschläge generieren, indem er eine beliebige geeignete Kombination von Informationen, wie z. B. die Popularität des vorgeschlagenen Elements, die Nähe des vorgeschlagenen Elements zum aktuellen Standort des Benutzers, die früheren Suchanfragen und/oder Bewertungen des Benutzers usw. verwendet. In einigen dieser Ausführungen betätigt der Benutzer bestimmte Steuerelemente und/oder installiert bestimmte Anwendungen, um es dem Netzwerkserver zu ermöglichen, die Daten des Benutzers auf diese Weise zu verwenden. Sobald die Onlinevorschläge zur Verfügung gestellt wurden, endet das Verfahren 200.
-
Falls keine Vorschläge empfangen werden, bevor der Timer T1 abläuft (Block 214), schreitet der Ablauf zum Block 220 fort, wo Offlinevorschläge über die Benutzeroberfläche bereitgestellt werden. In manchen Fällen wird auch ein Offlineindikator aktiviert. Ähnlich wie beim oben beschriebenen Block 204 kann die Generierung von Offlinevorschlägen außerdem von der derzeitigen Länge des Suchpräfixes abhängen.
-
Beim Block 222 kann der Timer T2 aktiviert werden, um den Eingang „verspäteter” Onlinevorschläge zu überwachen. Der Timer T2 kann wesentlich länger als der Timer T1 sein. Der Timer T2 kann beispielsweise zwei oder drei Sekunden lang sein. Wenn der Timer T2 abläuft, stellt das Verfahren 200 fest, ob Onlinevorschläge empfangen worden sind (Block 224). Das Verfahren 200 endet, wenn während des dem Timer T2 entsprechenden Timerintervalls keine verspäteten Onlinevorschläge eingegangen sind. Andernfalls werden die Onlinevorschläge mit den Offlinevorschlägen (Block 226) zusammengeführt. Insbesondere können die Offlinevorschläge zur Feststellung von Überschneidungen mit den Onlinevorschlägen verglichen werden.
-
Um ein Beispiel hierfür zu nennen, können, wenn der gleiche vorgeschlagene Begriff sowohl in den Offlinevorschlägen als auch in den Onlinevorschlägen vorkommt, in den Onlinevorschlägen enthaltene zusätzliche Details nahtlos dem bereits angezeigten Element hinzugefügt werden. Zum Beispiel kann der Offlinevorschlag „Tokio” für das Suchpräfix „Tok” unter Verwendung des Onlinevorschlags für dasselbe Element derart erweitert werden, dass auch die japanischen Schriftzeichen für „Tokio” in ihm enthalten sind. Als ein weiteres Beispiel kann ein Onlinevorschlag, der im Rang zwischen zwei Offlinevorschlägen steht, die mit Onlinevorschlägen übereinstimmen, in die Liste eingefügt werden, die über die Benutzeroberfläche angezeigt wird. Noch ein weiteres Beispiel: Eine Liste von Offlinevorschlägen kann um einen oder mehrere Onlinevorschläge erweitert werden, die in den Offlinevorschlägen nicht vorhanden sind.
-
In einigen Implementierungen können entsprechende Hinweise zu einigen der Offlinevorschläge gespeichert werden, um anzuzeigen, dass diese Offlinevorschläge als hinreichend zuverlässig gelten und keines Updates bedürfen.
-
Es versteht sich, dass zum Austausch von Daten zwischen einem Clientgerät und einem Netzwerkserver eine beliebige geeignete Bestätigung verwendet werden kann. In einigen Ausführungen läuft der Timer T1 und/oder der Timer T2 z. B. nur dann ab, wenn innerhalb eines im Voraus festgelegten Zeitraums keine Bestätigung der Anforderung empfangen wurde. Wurde eine Bestätigung empfangen, kann der Timer verlängert werden oder ein anderer Timer aktiviert werden. In einer anderen Ausführung läuft der Timer T1 und/oder der Timer T2 dagegen unabhängig davon, ob die Anforderung bestätigt wurde, ab, falls keine Vorschläge empfangen wurden.
-
Nunmehr auf 4 Bezug nehmend, kann ein Beispielverfahren 300 zusammen mit dem Verfahren 200 oder getrennt von dem Verfahren 200 in der geografischen Anwendung 110 implementiert werden. Ähnlich dem Verfahren 200 kann das Verfahren 300 in Form eines Satzes von in einem oder mehreren Prozessoren ausführbaren Softwareanweisungen implementiert werden.
-
Das Verfahren 300 beginnt bei Block 302, wo festgestellt wird, ob die Benutzereingabe abgeschlossen wurde. Zum Beispiel kann hier festgestellt werden, ob der Benutzer die „Suche”-Taste schon betätigt hat. Die Eingabe kann ein Teil einer Abfrage sein, die eine geografische Abfrage enthält. Falls die Eingabe noch nicht abgeschlossen ist, wird am Block 304 ein neues Zeichen empfangen und gemäß der aktuelle Eingabesprache dem Suchpräfix hinzugefügt. Im Allgemeinen kann ein Zeichen ein Buchstabe, eine Zahl, ein Silbenzeichen, ein Leerzeichen oder ein anderes Trennzeichen, ein Wortzeichen, ein Bestandteil eines Wortzeichens usw. sein. Der Benutzer kann das Zeichen durch Eintippen des Schriftzeichens, durch Sprechen oder indem er auf andere Weise durch Audioeingabe (z. B. Stimme) oder auf eine beliebige andere geeignete Weise auf das Zeichen hinweist, bereitstellen. Wenn die Eingabe abgeschlossen wurde, endet das Verfahren 300.
-
Ein spezifischeres Beispiel einer Audioeingabe besteht darin, dass ein Spracherkennungssystem im Clientgerät eine Transliteration von Wörtern, Zeichen, einzelnen Buchstaben oder andere Einheiten der Sprache generieren kann. Diese Einheiten können segmentiert, z. B. Buchstabe für Buchstabe oder Wort für Wort, an einen Netzwerkserver gesendet werden, oder die Audiodaten können zum Beispiel zur Verarbeitung an den Netzwerkserver übertragen werden.
-
Als Nächstes wird bei Block 306 festgestellt, ob die aktuelle Länge des Suchpräfixes kleiner ist als die bestimmte Zahl n. Die Zahl n kann relativ klein sein, wie z. B. 1, 2 oder 3, aber im Allgemeinen kann die geografische Anwendung mit jedem gewünschten Wert für n konfiguriert werden. Falls festgestellt wird, dass das Suchpräfix weniger als n Zeichen enthält, wird der Ablauf bei Block 308 fortgesetzt. Andernfalls schreitet der Ablauf zum Block 310 fort.
-
Bei den Blöcken 308 und 310 wird ein Versuch, Onlinevorschläge bereitzustellen, in einer Art und Weise unternommen, die im Prinzip dem mit Bezug auf die Blöcke 210 bis 226 diskutierten Ansatz ähnelt. Mit zunehmender Präfixlänge können die Offlinevorschläge genauer werden und daher werden bei Block 308 keine Offlinevorschläge bereitgestellt, falls das Suchpräfixkriterium von Block 306 nicht erfüllt ist. Wie oben bereits erwähnt, hat, während ein Netzwerkserver einen robusten Satz von Signalen und eine große Geodatenbank nutzen und, falls erforderlich, einen komplexen Algorithmus ausführen kann, ein tragbares Gerät im Offlinemodus nur eingeschränkten Zugriff auf Ressourcen und in der Regel eine geringere Rechenfähigkeit als ein Netzwerkserver. Im Gegensatz zu Block 308 werden beim Block 310 Offlinevorschläge bereitgestellt, wobei ein längeres Suchpräfix leichter und genauer auf raumbezogene Begriffe abgestimmt werden kann.
-
Unter allgemeiner Bezugnahme auf 3 und 4 – in einem Beispielszenario ruft der Benutzer die geografische Anwendung auf einem Smartphone auf, um Spielzeugläden [engl. „toy stores”] in der Nähe zu suchen. Der Benutzer aktiviert den geografischen Suchmodus der geografischen Anwendung und beginnt, das Suchpräfix einzugeben. Nachdem der Benutzer den Anfangsbuchstaben „t” eingetippt hat, überprüft die geografische Anwendung die Verfügbarkeit einer Netzwerkverbindung und stellt aufgrund eines oder mehrerer Signale vom Betriebssystem des Smartphones fest, dass eine Netzwerkverbindung verfügbar ist. Die geografische Anwendung versucht, über den Kommunikations-Stack des Smartphones eine Meldung an einen Netzwerkserver zu senden. Die Meldung enthält das aktuelle Suchpräfix „t” und, in einigen Ausführungen, weitere Informationen wie z. B. den Standort des Benutzers. Das Smartphone sendet die Meldung, die den Netzwerkserver nicht in dem Zeitraum erreicht, der dem Timer entspricht. Aufgrund der kurzen Länge des Präfixes stellt die geografische Anwendung keine Offlinevorschläge bereit. Der Benutzer fährt mit dem Eintippen von Zeichen fort; mit einem „o” wird das Suchpräfix auf „to” erweitert, mit einem „y” auf „toy” usw., und die geografische Anwendung kann weiterhin versuchen, Online-Geodatenvorschläge zu erhalten, oder zumindest vom Betriebssystems eine Überprüfung anfordern, ob die Netzwerkverbindung verfügbar geworden ist. Wenn das Suchpräfix drei Zeichen erreicht hat, generiert die geografische Anwendung beispielsweise Offline-Geodatenvorschläge für den Begriff „toy” [„Spielzeug”]. Die geografische Anwendung aktiviert zudem einen längeren Timer, um die Möglichkeit miteinzubeziehen, dass zu einem späteren Zeitpunkt Online-Geodatenvorschläge eingehen. Als schließlich mehrere Geodatenvorschläge eingehen, führt die geografische Anwendung die Online- und Offlinevorschläge zusammen.
-
Beispiel-Screenshots
-
Zur weiteren Verdeutlichung sind in den 5A–D einige Beispiel-Screenshots einer geografischen Anwendung dargestellt. Bei der geografischen Anwendung kann es sich zum Beispiel um die geografische Anwendung 110 handeln, in der eines der Verfahren 200 und 300 oder beide Verfahren implementiert sind. In diesen Beispielen ist der Wert von n 3.
-
Ein Screenshot 402 in 5A veranschaulicht die Situation, in der ein Benutzer ein Suchpräfix einzugeben beginnt und den Buchstaben „r” eingibt. In diesem Beispiel können nicht schnell genug (d. h. innerhalb des dem Timer T1 entsprechenden Zeitintervalls) Online-Suchvorschläge abgerufen werden. Die Länge des Suchpräfixes beträgt hier eins, ist also kleiner als der in diesem Beispiel verwendete Wert von n = 3, und daher werden keine Offlinevorschläge generiert.
-
5B zeigt einen Screenshot 404, bei dem der Benutzer einen weiteren Buchstaben eingegeben hat und das Suchpräfix damit nun „re” lautet. Da 2 < 3 und da in diesem Szenario keine Onlinevorschläge rechtzeitig abgerufen werden können, werden keine Offlinevorschläge generiert.
-
Wenn der Benutzer einen weiteren Buchstaben eingibt, sodass das Suchpräfix jetzt „res” lautet, aber nicht schnell genug Onlinevorschläge empfangen werden, werden, wie im Screenshot 406 in 5C veranschaulicht, mehrere Offlinevorschläge generiert und angezeigt.
-
Screenshot 408 in 5D veranschaulicht eine Zusammenführung von Onlinevorschlägen mit Offlinevorschlägen. Hier sind Onlinevorschläge eingegangen, nachdem das kürzere Zeitlimit ablief, aber bevor ein längeres Zeitlimit (z. B. das dem oben beschriebenen Timer T2 entsprechende Zeitlimit) ablief. Demgemäß werden der Liste der Offlinevorschläge mehrere Onlinevorschläge hinzugefügt, während das Suchpräfix gleich bleibt („res”).
-
Zusätzliche Überlegungen
-
Die folgenden zusätzlichen Überlegungen gelten für die vorstehende Erörterung. In dieser gesamten Spezifikation können mehrere Instanzen Komponenten, Operationen oder Strukturen implementieren, die als einzelne Instanz 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 exemplarischen 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 Themas.
-
Bestimmte Ausführungen werden hier als Logik oder eine Reihe von Komponenten, Modulen oder Mechanismen einschließende Ausführungen beschrieben. Module können entweder aus Softwaremodulen (z. B. als ein auf einem maschinenlesbaren Datenträger oder in einem Sendesignal enthaltener Code) oder Hardwaremodulen bestehen. 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 Beispielausführungen können ein oder mehrere Computersysteme (z. B. ein eigenständiges, ein Client- oder ein Server-Computersystem) oder ein oder mehrere Hardwaremodule eines Computersystems (z. B. ein Prozessor oder eine Gruppe von Prozessoren) mittels Software (z. B. eine Anwendung oder ein Anwendungsabschnitt) als Hardwaremodul konfiguriert werden, das betrieben wird, um bestimmte Operationen, wie sie hier beschrieben werden, auszuführen.
-
Sofern nicht speziell anders angegeben, können sich Erörterungen hierin, die Wörter wie „Verarbeitung”, „Berechnung”, „Bestimmung”, „Darstellung”, „Anzeige” oder ähnliches verwenden, auf Aktionen oder Prozesse einer Maschine (z. B. eines Computers) beziehen, die Daten manipulieren oder transformieren, 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), Register oder andere Maschinenkomponenten dargestellt sind, die Informationen empfangen, speichern, übertragen oder anzeigen.
-
Wenn in diesem Dokument von „einer Ausführung” die Rede ist, heißt das, dass ein bestimmtes Element, eine bestimmte Funktion, ein bestimmter Aufbau oder ein bestimmtes Merkmal, das, die bzw. der im Zusammenhang mit der Ausführung beschrieben wird, in mindestens einer Ausführung enthalten ist. Wenn an verschiedenen Orten in der Patentschrift der Ausdruck „in einer Ausführung” erscheint, so wird damit nicht immer unbedingt auf ein und dieselbe Ausführung Bezug genommen.
-
Einige Implementierungen können mittels der Ausdrücke „gekoppelt” und „verbunden” sowie deren Derivaten beschrieben werden. Beispielsweise können einige Implementierungen mittels des Ausdrucks „gekoppelt” beschrieben werden, um anzuzeigen, dass sich zwei oder mehrere Elemente in direktem physischem oder elektrischem Kontakt befinden. 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 Implementierungen unterliegen in diesem Zusammenhang keinen Einschränkungen.
-
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, „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).
-
Darüber hinaus wird das Wort „ein” bzw. „eine” zur Beschreibung von Elementen und Komponenten der in diesem Dokument behandelten Ausführungen benutzt. Dies geschieht allein der Einfachheit halber und zu dem Zweck, eine allgemeine Vorstellung der verschiedenen Ausführungen 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.
-
Beim Lesen dieser Offenbarung wird der Durchschnittsfachmann noch weitere alternative strukturelle und funktionelle Konzepte für das Zusammenführen von Online-Geodatenvorschlägen mit Offline-Geodatenvorschlägen mittels der in diesem Dokument offenbarten Prinzipien erkennen. Daher versteht sich, dass, während hier einige spezielle Ausführungen und Anwendungen veranschaulicht und beschrieben wurden, die offenbarten Ausführungen nicht auf den exakten Aufbau und genau die Komponenten, die in diesem Dokument offenbart werden, beschränkt sind. 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 offengelegt werden, ohne Abweichung von dem Umfang der angehängten Ansprüche erfolgen.