-
QUERVERWEISE ZU VERWANDTEN ANWENDUNGEN
-
Die vorliegende Anmeldung beruft sich auf die vorläufige US-Patentanmeldung Nr. 61/691,750 mit dem Titel „Calculating a Travel Route Based on a User's Navigational Preferences and Travel History” (Berechnen einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs eines Benutzers), eingereicht am 21. August 2012, die hierin in ihrer Gesamtheit mittels Verweis für alle Zwecke aufgenommen wird.
-
HINTERGRUND
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf das Berechnen einer Fahrtroute und insbesondere auf das Berechnen einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs eines Benutzers. 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.
-
KURZDARSTELLUNG
-
Der offenbarte Gegenstand bezieht sich auf ein computerimplementiertes Verfahren zur Berechnung einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs eines Benutzers. Das Verfahren beinhaltet das Speichern der Navigationspräferenzen und des Fahrtverlaufs des Benutzers. Die gespeicherten Navigationspräferenzen beinhalten Streckenführungspräferenzen und Sonderziele des Benutzers. Der Fahrtverlauf des Benutzers beinhaltet Standortdaten eines jeweiligen Datums und einer jeweiligen Uhrzeit, die von einer dem Benutzer zugeordneten standortbewussten Vorrichtung empfangen werden. Das Verfahren beinhaltet des Weiteren das Empfangen einer Anforderung für eine Fahrtroute von einem Ursprungsstandort zu einem Zielstandort. Das Verfahren beinhaltet des Weiteren, als Reaktion auf die empfangene Anforderung, das Berechnen der Fahrtroute vom Ursprungsstandort zum Zielstandort auf Basis der gespeicherten Navigationspräferenzen und des gespeicherten Fahrtverlaufs des Benutzers.
-
Der offenbarte Gegenstand bezieht sich des Weiteren auf ein System für eine auf Navigationspräferenzen und dem Fahrtverlauf eines Benutzers basierende Fahrtroute. Das System beinhaltet einen Speicher, der Anweisungen zur Berechnung einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs eines Benutzers beinhaltet. Der Prozessor ist so konfiguriert, dass er die Anweisungen zum Speichern der Navigationspräferenzen und des Fahrtverlauf des Benutzers ausführt. Die gespeicherten Navigationspräferenzen beinhalten Streckenführungspräferenzen und Sonderziele des Benutzers. Der Fahrtverlauf des Benutzers beinhaltet Standortdaten eines jeweiligen Datums und einer jeweiligen Uhrzeit, die von einer dem Benutzer zugeordneten standortbewussten Vorrichtung empfangen werden. Der Prozessor ist des Weiteren so konfiguriert, dass er eine Anweisung für eine Fahrtroute von einem Ursprungsstandort zu einem Zielstandort empfängt. Der Prozessor ist des Weiteren so konfiguriert, dass er die Fahrtroute vom Ursprungsstandort zum Zielstandort, als Reaktion auf die empfangene Anforderung, auf Basis der gespeicherten Navigationspräferenzen und des gespeicherten Fahrtverlaufs des Benutzers berechnet. Der Prozessor ist des Weiteren so konfiguriert, dass er die Fahrtroute zur Anzeige bereitstellt.
-
Der offenbarte Gegenstand bezieht sich des Weiteren auf ein maschinenlesbares Medium, das maschinenlesbare Anweisungen zum Veranlassen eines Prozessors, ein Verfahren zur Berechnung einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs eines Benutzer auszuführen, beinhaltet. Das Verfahren beinhaltet das Speichern der Navigationspräferenzen und des Fahrtverlaufs des Benutzers. Die gespeicherten Navigationspräferenzen beinhalten Streckenführungspräferenzen und Sonderziele des Benutzers. Der Fahrtverlauf des Benutzers beinhaltet Standortdaten eines jeweiligen Datums und einer jeweiligen Uhrzeit, die von einer dem Benutzer zugeordneten standortbewussten Vorrichtung empfangen werden. Das Verfahren beinhaltet des Weiteren das Empfangen einer Anforderung für eine Fahrtroute von einem Ursprungsstandort zu einem Zielstandort. Das Verfahren beinhaltet des Weiteren, als Reaktion auf die empfangene Anforderung, das Berechnen der Fahrtroute vom Ursprungsstandort zum Zielstandort auf Basis der gespeicherten Navigationspräferenzen und des gespeicherten Fahrtverlaufs des Benutzers.
-
Es versteht sich von selbst, dass andere Konfigurationen der betrachteten Technologie aus der detaillierten Beschreibung für Sachkundige ohne Weiteres offensichtlich sein werden, worin verschiedene Konfigurationen der betrachteten Technologie als Veranschaulichung gezeigt und beschrieben sind. Wie realisiert werden wird, ist die betrachtete Technologie in der Lage andere und unterschiedliche Konfigurationen hervorzubringen und ihre vielen Einzelheiten sind in der Lage, Modifizierungen in vielerlei anderer Hinsichten hervorzubringen, und das alles ohne vom Schutzumfang der betrachteten Technologie abzuweichen. Entsprechend sind die Zeichnungen und die ausführliche Beschreibung als veranschaulichend und nicht als beschränkend anzusehen.
-
BESCHREIBUNG DER ZEICHNUNGEN
-
Bestimmte Merkmale der betrachteten Technologie werden in den beiliegenden Ansprüchen vorgegeben. Die begleitenden Zeichnungen, die enthalten sind, um weiteres Verständnis zu schaffen, veranschaulichen jedoch offenbarte Aspekte und dienen, zusammen mit der Beschreibung, der Erklärung der Prinzipien der offenbarten Aspekte. Die Zeichnungen umfassen Folgendes:
-
1 veranschaulicht ein Beispiel einer Architektur zum Berechnen einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs eines Benutzers.
-
2 ist ein Blockdiagramm, das ein Beispiel einer Client-Vorrichtung und ein Beispiel eines Servers der Architektur von 1 gemäß bestimmten Aspekten der Offenbarung veranschaulicht.
-
3 veranschaulicht ein Beispiel eines Verfahrens zum Berechnen einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs eines Benutzers.
-
4A–4P stehen in Zusammenhang mit dem Beispiel des Verfahrens in 3.
-
5 veranschaulicht konzeptionell ein elektronisches System, mit dem einige Aspekte der betreffenden Technologie umgesetzt werden können.
-
DETAILLIERTE BESCHREIBUNG
-
Die unten stehend dargelegte ausführliche Beschreibung versteht sich als eine Beschreibung verschiedener Konfigurationen der betreffenden Technologie und soll nicht die einzige Konfigurationen darstellen, in der die betreffende Technologie ausgeführt werden kann. Die beigefügten Zeichnungen sind hierin aufgenommen und bilden einen Teil der detaillierten Beschreibung. Die ausführliche Beschreibung beinhaltet spezifische Details zur Erbringung eines umfassenderen Verständnisses der betreffenden Technologie. Jedoch ist es für den Fachmann klar und offensichtlich, dass das Technikthema nicht auf die hierin dargelegten spezifischen Details beschränkt ist und ohne diese spezifischen Details praktiziert werden kann. In einigen Fällen sind gut bekannte Strukturen und Komponenten in Blockdiagrammform dargestellt, um eine Verwirrung des Konzeptes des Technikthemas zu vermeiden.
-
Benutzer möchten häufig Wegbeschreibungen zwischen zwei Standorten erhalten. Zu diesem Zweck geben Benutzer typischerweise ihre Ursprungs- und Zieladressen in einen Kartenstandort ein. Verschiedene GPS-Navigationsvorrichtungen bieten Informationen zu „Sonderzielen” wie beispielsweise Tankstellen, Restaurants und Hotels. Benutzer können ein bestimmtes Sonderziel auswählen und Navigationsanweisungen zum ausgewählten Standort erhalten. Zurzeit bieten Kartenanwendungen und GPS-Navigationsvorrichtungen eingeschränkte Optionen bezüglich der Auswahl einer Route zwischen einem Ursprungsstandort und einem Zielstandort. Solche Optionen beinhalten eine kürzeste Route, eine schnellste Route und das Vermeiden von Mautstraßen. Diese Optionen berücksichtigen allerdings nicht Navigationspräferenzen und den Fahrtverlauf eines bestimmten Benutzers.
-
Die betreffenden Technologie bezieht sich auf das Berechnen einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs eines Benutzers. Die betreffende Technologie umfasst das Speichern der Navigationspräferenzen und der Reisepräferenzen des Benutzers. Die gespeicherten Navigationspräferenzen beinhalten Streckenführungspräferenzen und Sonderziele des Benutzers. Streckenführungspräferenzen können eine Präferenz für einen kürzesten Weg, einen schnellsten Weg, einen bestimmten Standort und/oder einen bestimmten Weg beinhalten. Streckenführungspräferenzen können auch eine Präferenz für das Vermeiden von Routen und/oder Standorten sein.
-
Die Sonderziele des Benutzers können in den Navigationspräferenzen beispielsweise auf Basis eines durch den Benutzer durchgeführten Check-ins oder einer vom Benutzer durchgeführten Internetsuche enthalten sein. Der Fahrtverlauf des Benutzers beinhaltet Standortdaten eines jeweiligen Datums und einer jeweiligen Uhrzeit, die von einer dem Benutzer zugeordneten standortbewussten Vorrichtung empfangen werden.
-
1 veranschaulicht ein Beispiel einer Architektur 100 zum Berechnen einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs des Benutzers. Die Architektur 100 beinhaltet Client-Vorrichtungen 110 und Server 170, die über ein Netzwerk 140 verbunden sind.
-
Die Client-Vorrichtungen 110 können beispielsweise mobile Computer, Tablet-Computer, mobile Geräte (z. B. ein Smartphone oder PDA), Desktopcomputer, Set-Top-Boxen (z. B. für ein Fernsehgerät), Videospielkonsolen oder andere Vorrichtungen sein, die geeignete Verarbeitungskapazitäten, Kommunikationsfähigkeiten und Speicher aufweisen. Jede Client-Vorrichtung 110 ist so konfiguriert, dass sie eine Eingabevorrichtung zum Akzeptieren von Benutzereingaben und eine Ausgabevorrichtung beinhaltet, um dem Benutzer Informationen anzuzeigen.
-
Die Clients 110 können mit dem Netzwerk 140 verbunden sein. Das Netzwerk 140 kann eines oder mehrere aus einem persönlichen Netzwerk (Personal Area Network, PAN), einem lokalen Netzwerk (Local Area Network, LAN), einem Campusnetzwerk (Campus Area Network, CAN), einem Stadtnetz (Metropolitan Area Network, MAN), einem Weitverkehrsnetz (Wide Area Network, WAN), einem Breitbandnetzwerk (Broadband Network, BBN), dem Internet und dergleichen beinhalten. Das Netzwerk 140 kann des Weiteren eine oder mehrere der folgenden Netzwerktopologien, einschließlich eines Busnetzwerks, eines Sternnetzwerks, eines Ring-Netzwerks, eines Maschennetzwerks, eines Stern-Bus-Netzwerks, eines Baum- oder hierarchischen Netzwerks und dergleichen beinhalten, ist darauf aber nicht beschränkt.
-
Die Client-Vorrichtungen 110 sind standortbewusste Vorrichtungen. Der hierin verwendete Begriff ,standortbewusste Vorrichtung' umfasst seine eindeutige und übliche Bedeutung, einschließlich, jedoch nicht beschränkt auf eine Vorrichtung, die in der Lage ist, ihren Standort zu bestimmen. Ein Smartphone 110A, das in der Lage ist, seinen Standort auf Basis eines von einem GPS-Satelliten 120 empfangenen GPS-Signals zu bestimmen, kann beispielsweise als eine standortbewusste Vorrichtung angesehen werden. Als weiteres Beispiel kann eine Client-Vorrichtung 110, die ihren Standort auf Basis von IP-Geolokalisierungstechniken und/oder drahtlosen Triangulationstechniken bestimmen kann, als standortbewusste Vorrichtung angesehen werden.
-
Jede standortbewusste Client-Vorrichtung 110 ist so konfiguriert, dass sie ein standortbewusstes Modul beinhaltet, das die Funktion der Bestimmung des Standorts der Client-Vorrichtung 110 ausführt. Das standortbewusste Modul stellt dem bzw. den Servern 170 Standortdaten bereit. Auf Basis der Standortdaten kann der bzw. können die Server 170 den Fahrtverlauf des Benutzers speichern.
-
Die Server 170 können z. B. eigenständige Server, gemeinsam genutzte Server, dedizierte Server, Cluster-/Grid-Server (z. B. eine Serverfarm) oder Cloud-Server sein. Jeder der Server 170 kann einen oder mehrere Prozessoren, Kommunikationsmodule und Speicher beinhalten. Die Server 170 können so konfiguriert sein, dass die Arbeitslast (z. B. zum Lastausgleich) über mehrere Server verteilt wird. Der bzw. die Server 170 empfangen Standortdaten von der Client-Vorrichtung 110. Der bzw. die Server 170 speichern die empfangenen Standortdaten zur Weiterverarbeitung.
-
Es ist anzumerken, dass, unabhängig davon, wie Informationen durch den Server 170 erhalten werden, angemessene Anstrengungen unternommen werden können, um die Datenschutzrechte des Benutzers zu schützen. Das Erfassen und/oder Speichern von Standortdaten kann beispielsweise auf einer Opt-in-Basis erfolgen, sodass Daten nicht erfasst werden, es sei denn der Benutzer erteilt hierfür eine Genehmigung. Zusätzlich können Schritte zur Anonymisierung der Informationen unternommen werden, um die Datenschutzrechte des Benutzers zu schützen.
-
2 ist ein Blockdiagramm 200, das ein Beispiel einer standortbewussten Client-Vorrichtung 110 und ein Beispiel eines Servers 170 in der Architektur 100 aus 1 gemäß bestimmten Aspekten der Offenbarung veranschaulicht.
-
Die standortbewusste Client-Vorrichtung 110 beinhaltet eine Eingabevorrichtung 202, eine Ausgabevorrichtung 204, einen Prozessor 220, ein Kommunikationsmodul 222, ein standortbewusstes Modul 224 und Speicher 240. Die Eingabevorrichtung 202 kann ein Touchscreen, eine Maus, ein Keyboard oder eine andere Vorrichtung sein, die es einem Benutzer ermöglicht, der Client-Vorrichtung 110 Eingabe 206 bereitzustellen. Die Ausgabevorrichtung 204 kann ein Anzeigeschirm sein.
-
Die standortbewusste Client-Vorrichtung 110 ist über ein Kommunikationsmodul 222 mit dem Netzwerk 140 verbunden. Das Kommunikationsmodul 222 ist so konfiguriert, dass es sich mit dem Netzwerk 140 verbindet, um Informationen wie beispielsweise Daten (z. B. Standortdaten 246), Anforderungen, Antworten und Befehle zu empfangen und anderen Vorrichtungen im Netzwerk 140 zu senden. Das Kommunikationsmodul 222 kann beispielsweise ein Modem oder eine Ethernet-Karte sein.
-
Der Speicher 240 beinhaltet Softwareanweisungen 242 und Daten 244, die eine Interaktion mit dem Server 170 ermöglichen. Der Speicher beinhaltet eine grafische Benutzeroberfläche 250, die es einem Benutzer erlaubt, mit der standortbewussten Client-Vorrichtung 110 zu interagieren, und kann verwendet werden, um dem Benutzer Informationen anzuzeigen. Die grafische Benutzeroberfläche 250 kann an der Client-Vorrichtung 110 lokal installiert werden und/oder vom Server 170 heruntergeladen werden.
-
Die standortbewusste Client-Vorrichtung 110 beinhaltet ein standortbewusstes Modul 224. Das standortbewusste Modul 224 ist in der Lage, seinen geografischen Standort zu bestimmen. Das standortbewusste Modul 224 kann beispielsweise seinen Standort auf Basis eines von einem GPS-Satelliten 120 empfangenen GPS-Signals bestimmen. Das standortbewusste Modul kann auf drahtlose Triangulationstechniken und/oder IP-Geolokalisierungstechniken zurückgreifen, um seinen Standort abzuschätzen, zu bestimmen und/oder weiter präzisieren.
-
Der durch das standortbewusste Modul 224 bestimmte geografische Standort kann in den dem Server 170 bereitgestellten Standortdaten 246 enthalten sein. Diese Standortdaten 246 können verwendet werden, um den Fahrtverlauf des Benutzers zu bestimmen.
-
Der Server 170 beinhaltet einen Speicher 280, einen Prozessor 260 und ein Kommunikationsmodul 262. Der Speicher 280 beinhaltet Softwareanweisungen 282 für das Speichern und/oder Verarbeiten der Daten 284 zum Berechnen einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs des Benutzers. Der Server 170 ist über ein Kommunikationsmodul 262 mit dem Netzwerk 140 verbunden. Das Kommunikationsmodul 262 ist so konfiguriert, dass es sich mit dem Netzwerk 140 verbindet, um Informationen wie beispielsweise Daten (z. B. Standortdaten 246), Anforderungen, Antworten und Befehle zu empfangen und anderen Vorrichtungen im Netzwerk 140 zu senden. Das Kommunikationsmodul 262 kann beispielsweise ein Modem oder eine Ethernet-Karte sein.
-
Der Prozessor 260 des Servers 170 ist so konfiguriert, dass er Anweisungen, wie beispielsweise physikalisch im Prozessor 260 kodierte Anweisungen, aus einem Speicher ausgelesene Anweisungen 280 oder eine Kombination aus beiden ausführt. Der Prozessor 260 des Servers 170 führt beispielsweise Anweisungen zum Berechnen einer Fahrtroute auf Basis der Navigationspräferenzen und des Fahrtverlaufs des Benutzers aus.
-
Sobald die Anweisungen aus dem Speicher 280 geladen sind, ist der Prozessor 260 so konfiguriert, dass er die Navigationspräferenzen und den Fahrtverlauf des Benutzers speichert. Die gespeicherten Navigationspräferenzen beinhalten Streckenführungspräferenzen und Sonderziele des Benutzers. Der Fahrtverlauf des Benutzers beinhaltet Standortdaten (z. B. 246) eines jeweiligen Datums und eines jeweiligen Zeitpunkts, die von einer dem Benutzer zugeordneten standortbewussten Vorrichtung (z. B. 110) empfangen wurden. Der Prozessor 260 ist des Weiteren so konfiguriert, dass er eine Anforderung für eine Fahrtroute von einem Ursprungsstandort zu einem Zielstandort empfängt. Der Prozessor 260 ist des Weiteren so konfiguriert, dass er die Fahrtroute vom Ursprungsstandort zum Zielstandort als Reaktion auf die empfangene Anforderung auf Basis der gespeicherten Navigationspräferenzen und des gespeicherten Fahrtverlaufs des Benutzers berechnet.
-
3 veranschaulicht ein Beispiel eines Verfahrens 300 zum Berechnen einer Fahrtroute auf Basis von Navigationspräferenzen und des Fahrtverlaufs des Benutzers. In Schritt 310 werden die Navigationspräferenzen und der Fahrtverlauf des Benutzers als Daten 284 im Speicher 280 des Servers 170 gespeichert. Die Navigationspräferenzen des Benutzers beinhalten Streckenführungspräferenzen und Sonderziele des Benutzers. Der Fahrtverlauf beinhaltet Standortdaten 246 eines von der dem Benutzer zugeordneten standortbewussten Vorrichtung 110 empfangenen jeweiligen Datums und eines jeweiligen Zeitpunkts.
-
Die Sonderziele des Benutzers können auf unterschiedliche Weise in den gespeicherten Navigationspräferenzen enthalten sein. Ein Sonderziel kann beispielsweise in den gespeicherten Navigationspräferenzen auf Basis eines Check-ins enthalten sein. Ein Check-in ist ein Hinweis der Anwesenheit des Benutzers am, oder des Interesses des Benutzers am Standort („Check-in-Standort”), der dem Check-in entspricht.
-
Ein Check-in kann auf Anforderung durchgeführt werden. Als Reaktion auf eine Eingabe (z. B. eine über die Eingabevorrichtung 202 erhaltene Eingabe 206) können beispielsweise Standortdaten 246 an den Server 170 gesendet werden, die die Anwesenheit des Benutzers am Check-in-Standort anzeigen. Ein in einem bestimmten Restaurant anwesender Benutzer kann beispielsweise seine Anwesenheit dadurch anzeigen, dass er einen diesem Restaurant zugeordneten Check-in durchführt.
-
Ein Check-in kann automatisch durchgeführt werden. Ein Benutzer kann beispielsweise dafür die Genehmigung erteilen, dass dem Server 170 automatisch in bestimmten Zeitabständen oder kontinuierlich Standortdaten 246 bereitgestellt werden. Auf diese Weise können, während der Benutzer sich mit der standortbewussten Client-Vorrichtung 110 fortbewegt, den verschiedenen vom Benutzer besuchten Standorten zugeordnete Check-ins automatisch durchgeführt werden.
-
Sonderziele können den Navigationspräferenzen des Benutzers entfernt hinzugefügt werden. Das heißt, dass ein Benutzer, ohne an diesem Standort anwesend zu sein, einen Standort als ein Sonderziel hinzufügen kann, um einen Check-in durchzuführen. Ein Benutzer, der gerne in einem bestimmten Restaurant speist, kann dieses Restaurant beispielsweise als ein Sonderziel hinzufügen, ohne in diesem Restaurant anwesend zu sein. Das Hinzufügen eines Sonderziels kann als das entfernte Durchführen eines Check-ins verstanden werden.
-
Der Fahrtverlauf eines Benutzers beinhaltet Standortdaten 246 jeweiliger Daten und Zeitpunkte. Das heißt, der Fahrtverlauf des Benutzer beinhaltet Standorte, die mittels vom Server 170 empfangener Standortdaten 246 identifiziert werden.
-
Ein Benutzer kann auswählen, ob bestimmte Standorte in seinem Fahrtverlauf aufgenommen werden oder nicht. Der Benutzer kann z. B., um Standorte in den Fahrtverlauf aufzunehmen, das standortbewusste Modul 224 so aktivieren, dass es dem Server 170 automatisch Standortdaten 246 bereitstellt, bevor er solche Standorte besucht. In ähnlicher Weise kann der Benutzer das standortbewusste Modul 224 vor dem Besuchen solcher Standorte deaktivieren, bevor er solche Standorte besucht, damit Standorte nicht in den Fahrtverlauf aufgenommen werden.
-
Der Server 170 ruft verschiedene Aspekte der Standorte im Fahrtverlauf des Benutzers ab und analysiert diese, um die Navigationspräferenzen des Benutzers zu erstellen und/oder weiter zu präzisieren. Der Server 170 kann z. B. auf Basis des Fahrtverlaufs des Benutzers vom Benutzer bevorzugte Fahrtrouten ermitteln.
-
Die verschiedenen Aspekte eines bestimmten Standorts können einen oder mehrere Umweltfaktoren beinhalten. Umweltfaktoren können einem bestimmten Standort zugeordnete Kriminalstatistiken, Straßenbedingungen, demografische Informationen und/oder Wetterbedingungen beinhalten. Straßenbedingungen können die Länge (d. h. Entfernung), Komplexität (z. B. Anzahl an Abbiegungen), Steigung (z. B. Gefälle), Höhe, Breite, Anzahl an Fahrspuren, Anzahl an Ampeln und/oder Stoppschildern, Bahnübergänge, Schulbereiche, die Verkehrsgeschwindigkeit, Straßensperrungen, Umleitungen (z. B. aufgrund von Bauarbeiten), Schlaglöcher, die Straßenbeleuchtung, Polizeipräsenz, eine Polizeikamera oder eine andere Information beinhalten, die sich auf eine Straße beziehen kann. Demografische Informationen können statistische Kennwerte der lokalen Bevölkerung sein. Demografische Informationen können beispielsweise Statistiken beinhalten, die sich auf Geschlecht, Rasse, Alter, Behinderungen, Mobilität, Wohneigentum, Beschäftigungsstatus und/oder Einkommensniveaus der Bewohner des Ortsbereichs beziehen.
-
Weitere Information zu den verschiedenen Aspekten (z. B. Umweltfaktoren) können vom Server 170 auf Basis öffentlich zugänglicher, vom Benutzer explizit erhaltener und/oder vom Benutzer implizit erhaltener Informationen abgerufen werden. Öffentlich zugängliche Informationen können durch den Zugriff auf Datenbanken mit öffentlichen Informationen und/oder Internetsuchen abgerufen werden. Vom FBI und/oder verschiedenen Polizeidienststellen bereitgestellte Kriminalstatistiken können beispielsweise mit bestimmten Standorten korreliert werden. Ebenso können Nachrichten und/oder soziale Medien durchsucht werden, um einem bestimmten Standort zugeordnete Informationen zu erhalten.
-
Informationen zu einem bestimmten Standort können vom Benutzer explizit vom Server 170 empfangen werden. Ein Standort kann beispielsweise explizit durch einen Benutzer als sein Zuhause, Arbeitsplatz und so weiter bestimmt werden. Als weiteres Beispiel für explizit erhaltene Informationen kann der Benutzer einen Deskriptor bereitstellen, um für einen Standort zusätzlichen Kontext bereitzustellen.
-
Information zu einem bestimmte Standort können von einem Benutzer implizit erhalten werden. Von diesem Informations-Repository abgerufene Informationen können beispielsweise als vom Server 170 implizit empfangen angesehen werden, wenn der Benutzer dem Server 170 Zugriffsrechte für den Zugriff auf ein bestimmtes Informations-Repository gewährt. Beispiele für Informations-Repositorys beinhalten den Internetbrowserverlauf, den Internetsuchverlauf, E-Mail-Konten, Konten in sozialen Medien und finanzielle Transaktionen eines Benutzers.
-
Der Server 170 kann die von öffentlichen Quellen abgerufenen und explizit vom Benutzer empfangenen und/oder implizit vom Benutzer empfangenen Informationen analysieren. Auf Basis der Analyse kann der Server 170 die Navigationspräferenzen des Benutzers ermitteln und/oder weiter präzisieren. Der Server 170 kann beispielsweise eine Suchanfrage für ein bestimmtes Café als einen Hinweis dafür behandeln, dass der Benutzer Freude daran haben könnte, das Café aufzusuchen. Der Server 170 kann das Café auf Basis der Internetsuche als ein Sonderziel des Benutzers hinzufügen. Somit sind implizit empfangene Informationen, wie z. B. eine Internetsuche, eine weitere Möglichkeit, mit der ein Sonderziel in den gespeicherten Navigationspräferenzen des Benutzers aufgenommen werden kann.
-
Auf Basis einer Analyse der empfangenen Standortdaten 246 und den verschiedenen Informationen, die sich auf die entsprechenden Standorte beziehen, ordnet der Server 170 jedem Standort einen Affinitätswert zu. Der Affinitätswert ist ein numerisches Maß einer Benutzerpräferenz für einen Standort oder das Interesse an einem Standort. Wenn der Benutzer beispielsweise häufig einen bestimmten Standort aufsucht, wird der Affinitätswert des Benutzers höher ausfallen als für einen Standort, den der Benutzer weniger häufig aufsucht.
-
Der Affinitätswert eines Standorts kann dadurch beeinflusst werden, ob dieser in den Sonderzielen des Benutzers und/oder in Informationen enthalten ist, die von den Informations-Repositorys des Benutzers abgerufen wurden. Ein in den Sonderzielen des Benutzers enthaltener Standort würde beispielsweise einen höheren Affinitätswert aufweisen, als ein Standort, der nicht in den Sonderzielen des Benutzers enthalten ist. In ähnlicher Weise würde ein in den Informations-Repositorys des Benutzers enthaltener Standort (z. B. E-Mail, Internetsuchverlauf, Internetbrowserverlauf) einen höheren Affinitätswert aufweisen, als ein Standort, der nicht in den Informations-Repositorys des Benutzers enthalten ist.
-
Genauso wie einige Arten von Informationen sich positiv auf den Affinitätswert eines bestimmten Standorts auswirken können, können sich andere Arten von Informationen negativ auswirken. Wenn der Benutzer es vermeidet, entlang einer bestimmte Route zu fahren, kann der Affinitätswert beispielsweise für die Standorte, die dieser Fahrtroute entsprechen, gesenkt werden.
-
Das Vermeiden einer Route (z. B. einer bestimmten Straße, einer bestimmten Kreuzung) durch einen Benutzer kann auf Basis des Fahrtverlaufs des Benutzers erfasst werden. Die tatsächliche Fahrtroute des Benutzers kann beispielsweise auf Basis des Fahrtverlaufs des Benutzers mit der Route, die für den Benutzer berechnet wurde, einer kürzesten Fahrtroute oder einer schnellsten Fahrtroute von einem Ursprungsstandort zum Zielstandort verglichen werden. Das heißt, dass eine Vermeidung angezeigt werden kann, wenn der Benutzer sich für eine längere Route, eine komplizierte Route (z. B. mit mehr Abbiegungen) oder einer langsamere Route entscheidet als die Route, die für den Benutzer berechnet ist, die kürzestmögliche Route, die einfachste Route (z. B. mit den wenigsten Abbiegungen) oder die schnellstmögliche Route.
-
Der Server 170 leitet eine Ursache für die Vermeidung ab. Um diese Ursache der Vermeidung abzuleiten, vergleicht der Server 170 einen oder mehrere Standorte auf der vermiedenen Route mit einem oder mehreren Standorten auf der Fahrtroute des Benutzers. Das heißt, dass der Server 170 die vermiedene Route mit der tatsächlichen Fahrtroute des Benutzers vergleicht.
-
Durch das Durchführen des Vergleichs analysiert der Server 170 alle verfügbaren und mit der vermiedenen Route in Zusammenhang stehenden Daten. Der Server 170 kann Verkehrsmeldungen, Kriminalstatistiken, Nachrichtenberichte, Informationen zu Baustellen, Straßenbeleuchtungsverhältnisse, Stromausfälle und andere verfügbare Daten abrufen, die sich auf die Standorte auf der vermiedenen Route beziehen. Der Server 170 vergleicht dann die abgerufenen Daten mit ähnlichen Daten, die sich auf den bzw. die Standorte auf der tatsächlichen Wegstrecke des Benutzers beziehen.
-
Auf Grundlage des Vergleichs leitet der Server 170 eine oder mehrere Ursachen für die Vermeidung ab. Der Server 170 fügt den gespeicherten Navigationspräferenzen des Benutzers die Ursache für die Vermeidung und/oder die vermiedene Route hinzu. Des Weiteren kann der Server 170 basierend auf dem Vergleich den Affinitätswert des vermiedenen Standorts auf der vermiedenen Route senken. Der Server 170 kann beispielsweise dem vermiedenen Standort auf der vermiedenen Route einen negativen Affinitätswert zuordnen.
-
Genauso wie vermiedene Standorte und/oder Routen analysiert werden, werden auch Standorte, von denen am häufigsten ein Check-in durchgeführt wird, analysiert. Standortdaten 246 werden möglicherweise z. B. am häufigsten vom Zuhause und/oder dem Arbeitsplatz eines Benutzers empfangen. Basierend auf der Häufigkeit, in der der Benutzer diese aufsucht, können diese Standorte ihnen zugeordnete hohe Affinitätswerte aufweisen. Der Benutzer möchte jedoch möglicherweise nicht, dass sein Zuhause und/oder der Arbeitsplatz in Routen zu oder von anderen Standorten aufgenommen werden. Andererseits möchte ein Benutzer möglicherweise, dass andere Standorte (z. B. ein Café, das der Benutzer häufig aufsucht) mit hohen Affinitätswerten in einer Route zu oder von anderen Standorten aufgenommen wird.
-
Um zu bestimmen, wie bestimmte Standorte mit hohen Affinitätswerten behandelt werden, versucht der Server 170, die Beschaffenheit dieser Standorte zu ermitteln. Um einen bestimmten Standort als das Zuhause des Benutzers und/oder Arbeitsplatz des Benutzers zu bestimmen, korreliert der Server 170 den Fahrtverlauf des Benutzers mit Faktoren wie beispielsweise Tag, Datum, Zeitpunkt, Feiertagen, Geschäftszeiten, die dem Standort zugeordnet sind, und/oder dem Wetter.
-
Als ein Beispiel der Verwendung von Tag und Zeitpunkt behandelt der Server 170 die Anwesenheit des Benutzers an oder in der Nähe eines Standorts für längere Zeiträume während diesem Standort zugeordneter Geschäftszeiten als Hinweis darauf, dass der Standort der Arbeitsplatz des Benutzers ist. In ähnlicher Weise behandelt der Benutzer die Anwesenheit des Benutzers an oder in der Nähe eines Standorts für längere Zeiträume während anderer Zeiten (z. B. in den Nachtstunden) als einen Hinweis darauf, dass der Standort der Wohnsitz des Benutzers ist.
-
Um die Navigationspräferenzen des Benutzers auf dem neuesten Stand zu halten, nimmt die Bedeutung eines einzelnen Standorts mit der Zeit ab. Diese Abnahme der Bedeutung kann als ein Aspekt des zeitlichen Verfalls eines Standorts bezeichnet werden. Dieser Aspekt zeitlichen Verfalls hindert einen bestimmten Standort daran, die Navigationspräferenzen des Benutzers dauerhaft zu beeinflussen.
-
In Schritt 320 werden ein Ursprungsstandort und ein Zielstandort durch Server 170 von der Client-Vorrichtung 110 empfangen. Der Ursprungsstandort kann ein Startstandort oder ein aktueller Standort sein. Ein Startstandort ist ein Standort, der ausdrücklich durch den Benutzer angegeben wird. Ein aktueller Standort ist ein Standort, der auf Basis des erfassten aktuellen geografischen Standorts des Benutzers erkannt wird. Der Startstandort und der aktuelle Standort können der gleiche Standort sein.
-
In Schritt 330 wird die Fahrtroute vom Ursprungsstandort zum Zielstandort als Reaktion auf die empfangene Anforderung auf Basis der Navigationspräferenzen und des gespeicherten Fahrtverlaufs des Benutzers berechnet.
-
Die Fahrtroute wird auf Basis einer heuristischen Suche berechnet. Der heuristische Suchalgorithmus erkundet eine Reihe von Wegstrecken vom Ursprungsstandort zum Zielstandort. Jede Wegstrecke kann einen oder mehrere Streckenabschnitte enthalten. Ein Streckenabschnitt ist die kürzeste befahrbare Route zwischen zwei Punkten. Das heißt, ein Streckenabschnitt ist der Weg, der entlang einer befahrbaren Route zwischen zwei Punkten zurückgelegt werden kann.
-
Die Befahrbarkeit einer Wegstrecke wird im Zusammenhang mit dem Verkehrsmittel definiert, das verwendet wird, um diese potenzielle Wegstrecke zu befahren. Das liegt daran, dass eine Wegstrecke, die unter Verwendung eines Verkehrsmittels befahrbar ist, möglicherweise unter Verwendung eines anderen Verkehrsmittels praktisch nicht befahrbar ist. Eine Person, die zu Fuß von einem Punkt zu einem anderen geht, kann beispielsweise einen Abkürzung nehmen, indem sie durch eine Rasenfläche läuft. Diese Wegstrecke wäre in einem Auto jedoch nicht praktisch befahrbar. Das verwendete Verkehrsmittel kann durch einen Benutzer angegeben werden. Das Verkehrsmittel kann auf Basis der Fahrgeschwindigkeit des Benutzers und/oder der eingeschlagenen Routen erkannt werden.
-
Jeder Streckenabschnitt kann Standorte mit ihnen zugeordneten Affinitätswerten enthalten. Ein vom Benutzer häufig zurückgelegter Streckenabschnitt kann beispielsweise Standorte mit höheren Affinitätswerten aufweisen als ein Streckenabschnitt, der vom Benutzer weniger häufig zurückgelegt wird. Als weiteres Beispiel kann ein vom Benutzer vermiedener Streckenabschnitt einen niedrigeren Affinitätswert aufweisen als eine vom Benutzer zurückgelegte Route. Die Affinitätswerte der verschiedenen Streckenabschnitte einer Wegstrecke können aggregiert werden, um die Einstufung dieser Wegstrecke als Ganzes zu bestimmen.
-
Zusätzlich zu den Affinitätswerten kann jeder Streckenabschnitt durch Umweltfaktoren beeinflusst werden. Straßenbedingungen wie beispielsweise die Länge eines Streckenabschnitts, Komplexität (z. B. Anzahl der Abbiegungen) und Verkehrsgeschwindigkeit können beispielsweise die Attraktivität des Streckenabschnitts und folglich der Wegstrecke als Ganzes beeinflussen. Daher können die Wegstrecken geändert werden, um die Streckenabschnitte mit den günstigsten Umweltfaktoren auszuwählen.
-
Auf Basis der Affinitätswerte und der Umweltfaktoren werden die Fahrtrouten von am attraktivsten bis am wenigsten attraktiv aufgegliedert. Die Fahrtrouten können dann zur Anzeige bereitgestellt werden.
-
4A veranschaulicht ein Beispiel im Zusammenhang mit dem Beispiel des Verfahrens 300 in 3. In diesem Beispiel verwendet der Benutzer ein Smartphone, das eine standortbewusste Client-Vorrichtung 110 ist. Der Benutzer hat auf dem Smartphone 110 die Genehmigung erteilt, dem standortbewussten Modul 224 des Smartphones 110 zu erlauben, dem Server 170 automatisch Standortdaten 246 bereitzustellen.
-
In diesem Beispiel fährt der Benutzer (d. h. bewegt sich in einem Automobil fort) von einem Ursprungsstandort 402 zu einem Restaurant 404. Da der Benutzer ein Auto in einem urbanen Umfeld fährt, wäre die kürzeste fahrbare Route zwischen zwei Punkten eine asphaltierte Straße, die die zwei Punkte miteinander verbindet. Das heißt, dass ein Streckenabschnitt für die Zwecke dieses Beispiels eine asphaltierte Straße ist, die die zwei Punkte verbindet. In diesem Beispiel fährt der Benutzer entlang der Streckenabschnitte 420–440, 440–430, 430–460, 460–470 und 470–490. Da der Benutzer zum Restaurant 404 fährt, stellt das Smartphone 110 des Benutzers automatisch den Standort 246 des Benutzers und ein entsprechendes Datum und eine entsprechende Uhrzeit der verschiedenen Standorte entlang der Fahrtroute des Benutzers bereit. Beim Erreichen des Restaurants 404 führt der Benutzer einen Check-in durch, indem er eine Taste auf seinem Smartphone 110 drückt.
-
In Schritt 310 werden die Navigationspräferenzen und der Fahrtverlauf des Benutzers empfangen und als Daten 284 im Speicher 280 des Servers 170 gespeichert. In diesem Beispiel werden die Standortdaten 246 und die vom Smartphone 110 des Benutzers von verschiedenen Punkten entlang der Fahrtroute empfangenen jeweiligen Daten und Zeitpunkte im Speicher 284 des Servers 170 als der Fahrtverlauf des Benutzers gespeichert.
-
Des Weiteren werden die den verschiedenen Standorten und entsprechenden Streckenabschnitten zugeordneten Affinitätswerte auf der Fahrtroute aufgrund der Anwesenheit des Benutzers an diesen Standorten erhöht. Diese Affinitätswerte und die entsprechenden Standorte werden in den Navigationspräferenzen des Benutzers gespeichert. Das Restaurant 404 wird auf Basis des durch den Benutzer durchgeführten Check-ins in den Navigationspräferenzen des Benutzers als ein Sonderziel gespeichert.
-
Der Server 170 vergleicht die Fahrtroute des Benutzers entlang der Streckenabschnitte 420–440, 440–430, 430–460, 460–470 und 470–490 mit anderen möglichen Routen, die der Benutzer hätte nehmen können. In diesem Beispiel hat der Benutzer keine Fahrtroute vom Ursprungsstandort 402 zum Restaurant 404 angefordert. Daher ist der Server 170 nicht in der Lage, die tatsächliche Fahrtroute des Benutzers mit einer dem Benutzer bereitgestellten berechneten Fahrtroute zu vergleichen.
-
Der Server 170 vergleicht die tatsächliche Fahrtroute des Benutzers mit der kürzestmöglichen Route und der schnellstmöglichen Route vom Ursprungsstandort 402 zum Restaurant 404. Der Server 170 ermittelt, dass die kürzeste Route zwischen dem Ursprungsstandort 402 und dem Restaurant 404 eine Fahrtroute entlang der Streckenabschnitte 420–440, 440–470 und 470–490 ist. In ähnlicher Weise ermittelt der Server 170, dass sich die schnellste Route zwischen dem Ursprungsstandort 402 und Restaurant 404 entlang der Streckenabschnitte 420–450, 450–480 und 480–490 befindet.
-
Auf Grundlage des Vergleichs ermittelt der Server 170, dass der Benutzer anfänglich entlang der kürzesten Route fuhr, dann aber davon abwich und konsequent entlang einer verhältnismäßig längeren Fahrtroute fuhr. Konkret ermittelt der Server 170, dass der Benutzer von der kürzesten Wegstrecke abwich, um anscheinend das Befahren des Streckenabschnitts 440–470 zu vermeiden.
-
Der Server vergleicht die vermiedenen Standorte entlang dem vermiedenen Streckenabschnitt 440–470 mit Standorten entlang der tatsächlichen Wegstrecke des Benutzers. Auf der Grundlage öffentlich zugänglicher Informationen ermittelt der Server 170, dass der wesentliche Unterschied zwischen den Streckenabschnitten (z. B. 420–440, 440–430, 430–460, 460–470 und 470–490), die anscheinend für den Benutzer akzeptabel waren, und dem vom Benutzer vermiedenen Streckenabschnitt 440–470 darin besteht, dass der Streckenabschnitt 440–470 in eine Gegend mit hoher Kriminalität 492 fällt.
-
Auf Grundlage der abgeleiteten Ursache fügt der Server 170 den Navigationspräferenzen des Benutzers eine Präferenz für das Vermeiden von Gegenden hoher Kriminalität hinzu. Des Weiteren ordnet der Server 170 den Standorten entlang dem Streckenabschnitt 440–470 auf Basis dieses Vermeidens negative Affinitätswerte zu. Diese negativen Affinitätswerte werden ebenfalls in den Navigationspräferenzen des Benutzers gespeichert. Aufgrund der negativen Affinitätswerte würde der Streckenabschnitt 440–470 in nachfolgenden Berechnungen für Navigationsanweisungen für den Benutzer als weniger attraktiv erachtet.
-
Anschließend hält der Benutzer an einer Tankstelle 406 an, um zu tanken. Während er sich an der Tankstelle 404 befindet, erhält der Benutzer einen Anruf von einem Freund, der ihn in ein Café 408 einlädt. Der Benutzer fordert Navigationsanweisungen von der Tankstelle 406 zum Café 408 an. In Schritt 320 empfängt der Server 170 die Anforderung des Benutzers für eine Fahrtroute von der Tankstelle 406 (d. h. dem Ursprungsstandort) zum Café 408 (d. h. dem Zielstandort).
-
In Schritt 330 berechnet der Server 170 als Reaktion auf die empfangene Anforderung und auf Basis der gespeicherten Navigationspräferenzen und des gespeicherten Fahrtverlaufs des Benutzers eine Fahrtroute von der Tankstelle 406 zum Café 408.
-
Der Server 170 startet mit der Durchführung einer heuristischen Suche, um die verschiedenen möglichen Routen von der Tankstelle 406 zum Café 408 zu erkunden. Der für die Berechnung der Navigationsanweisungen verwendete Algorithmus wird in den Softwareanweisungen 282 implementiert.
-
In diesem Beispiel werden die nicht in einer bestimmten Reihenfolge aufgeführten möglichen Wege in 4B–4P dargestellt. Einige Streckenabschnitte in diesen möglichen Wegen sind zur einfacheren Bezugnahme unterstrichen.
- • Die in 4B dargestellte Fahrtroute 1 umfasst das Fahren entlang der Streckenabschnitte 410–430, 430–460, 460–470, 470–490 und 490–480.
- • Die in 4C dargestellte Fahrtroute 2 umfasst das Fahren entlang der Streckenabschnitte 410–430, 430–460, 460–470 470–480.
- • Die in 4D dargestellte Fahrtroute 3 umfasst das Fahren entlang der Streckenabschnitte 410–430, 430–440, 440–470, 470–490 und 490–480.
- • Die in 4E dargestellte Fahrtroute 4 umfasst das Fahren entlang der Streckenabschnitte 410–430, 430–440, 440–470 und 470–480.
- • Die in 4F dargestellte Fahrtroute 5 umfasst das Fahren entlang der Streckenabschnitte 410–430, 430–440, 440–450 und 450–480.
- • Die in 4G dargestellte Fahrtroute 6 umfasst das Fahren entlang der Streckenabschnitte 410–420, 420–440, 440–430, 430–460, 460–470, 470–490 und 490–480.
- • Die in 4H dargestellte Fahrtroute 7 umfasst das Fahren entlang der Streckenabschnitte 410–420, 420–440, 440–430, 430–460, 460–470 und 470–480.
- • Die in 4I dargestellte Fahrtroute 8 umfasst das Fahren entlang der Streckenabschnitte 410–420, 420–440, 440–470, 470–490 und 490–480.
- • Die in 4J dargestellte Fahrtroute 9 umfasst das Fahren entlang der Streckenabschnitte 410–420, 420–440, 440–470 und 470–480.
- • Die in 4K dargestellte Fahrtroute 10 umfasst das Fahren entlang der Streckenabschnitte 410–420, 420–440, 440–450 und 450–480.
- • Die in 4L dargestellte Fahrtroute 11 umfasst das Fahren entlang der Streckenabschnitte 410–420, 420–450, 450–440, 440–430, 430–460, 460–470, 470–490 und 490–480.
- • Die in 4M dargestellte Fahrtroute 12 umfasst das Fahren entlang der Streckenabschnittee 410–420, 420–450, 450–440, 440–430, 430–460, 460–470 und 470– 480.
- • Die in 4N dargestellte Fahrtroute 13 umfasst das Fahren entlang der Streckenabschnitte 410–420, 420–450, 450–440, 440–470, 470–490 und 490–480.
- • Die in 4O dargestellte Fahrtroute 14 umfasst das Fahren entlang der Streckenabschnitte 410–420, 420–450, 450–440, 440–470 und 470–480.
- • Die in 4P dargestellte Fahrtroute 15 umfasst das Fahren entlang der Streckenabschnitte 410–420, 420–450 und 450–480.
-
Die möglichen Fahrtrouten 1 bis 15 (vorstehend aufgeführt) werden dann analysiert und entsprechend den gespeicherten Navigationspräferenzen des Benutzers und dem gespeicherten Fahrtverlauf des Benutzers eingestuft. Der Server 170 ermittelt beispielsweise, dass die Fahrtrouten 3, 4, 8, 9, 13 und 14 den Streckenabschnitt 440–470 enthalten, der zuvor vom Benutzer vermieden wurde. Auf Grundlage diesem Streckenabschnitt zugeordneter negativer Affinitätswerte ordnet der Server diesen Fahrtrouten eine Einstufung zu, die niedriger ist als die der verbleibenden möglichen Fahrtrouten. Die verbleibenden möglichen Fahrtrouten sind Fahrtrouten 1, 2, 5, 6, 7, 10, 11, 12 und 15.
-
Wie oben beschrieben, hat der Server 170 abgeleitet, dass der Benutzer Streckenabschnitt 440–470 vermieden hat, da er in eine Gegend mit hoher Kriminalität 492 fiel, und hat den gespeicherten Navigationspräferenzen des Benutzers die Benutzerpräferenz zum Vermeiden von Gegenden mit hoher Kriminalität hinzugefügt. Der Server 170 ermittelt des Weiteren, dass Streckenabschnitt 450–480 ebenfalls in eine Gegend mit hoher Kriminalität fällt, die im Übrigen die gleiche Gegend mit hoher Kriminalität 492 ist. Der Server 170 ermittelt, dass die Fahrtrouten 5, 10 und 15 den Streckenabschnitt 450–480 enthalten. Daher ordnet der Server 170 auf Basis der Benutzerpräferenz zum Vermeiden von Gegenden mit hoher Kriminalität den Fahrtrouten 5, 10 und 15 eine Einstufung zu, die niedriger ist als die der verbleibenden möglichen Fahrtrouten. Die verbleibenden möglichen Fahrtrouten sind Fahrtrouten 1, 2, 6, 7, 11 und 12.
-
Der Server 170 berücksichtigt des Weiteren die verschiedenen Umweltfaktoren (z. B. Straßenbedingungen), die jede mögliche Fahrtroute beeinflussen, die in den gespeicherten Navigationspräferenzen des Benutzers und dem gespeicherten Fahrtverlauf des Benutzers jedoch enthalten oder nicht enthalten sein können. Die Anzahl der Streckenabschnitte, die Länge jedes Streckenabschnitts, die Verkehrsgeschwindigkeit jedes Streckenabschnitts und so weiter können beispielsweise verwendet werden, um den Fahrtrouten, die diese Streckenabschnitte enthalten, Einstufungen zuzuordnen.
-
Auf Basis von verschiedenen Quellen erhaltenen Informationen ermittelt der Server 170, dass sich der Verkehr entlang des Streckenabschnitts 470–480 besonders langsam bewegt. Somit ordnet der Server 170 den Fahrtrouten, die Streckenabschnitt 470–480 enthalten, eine Einstufung zu, die niedriger ist als die der anderen verbleibenden Wege. Daher ordnet der Server 170 den Fahrtrouten 2, 7, und 12 eine Einstufung zu, die niedriger ist als die der anderen verbleibenden möglichen Fahrtrouten. Die verbleibenden möglichen Fahrtrouten sind Fahrtrouten 1, 6 und 11.
-
Der Server 170 berücksichtigt des Weiteren die Anzahl der in jeder möglichen Fahrtroute enthaltenen Streckenabschnitte. Eine Route mit weniger Streckenabschnitten kann weniger komplex sein. Eine Fahrtroute mit weniger Streckenabschnitten kann beispielsweise weniger Abbiegungen aufweisen als eine Fahrtroute mit mehr Streckenabschnitten.
-
Der Server 170 ermittelt, dass Fahrtroute 1 fünf Abschnitte enthält, Fahrtroute 6 enthält sieben Abschnitte und Fahrtroute 11 enthält acht Abschnitte. Der Server 170 gliedert die Fahrtrouten basierend auf der Anzahl der Streckenabschnitte jedes Wegs wie folgt: Fahrtroute 1 (fünf Abschnitte), Fahrtroute 6 (sieben Abschnitte) und Fahrtroute 11 (acht Abschnitte).
-
Der Server 170 kann die verschiedenen verbleibenden Fahrtrouten zur Anzeige bereitstellen. Die Anzahl von Fahrtrouten, die durch den Server 170 bereitgestellt werden können, ist konfigurierbar. In diesem Beispiel hat der Benutzer angegeben, dass er die ersten drei Fahrtrouten erhalten möchte. Auf Basis der Benutzerpräferenz stellt der Server Fahrtrouten 1, 13 und 6 zur Anzeige auf dem Smartphone 110 des Benutzers bereit.
-
Der Benutzer kann dann eine bestimmte Fahrtroute auswählen und damit beginnen, entsprechend den der Fahrtroute entsprechenden Navigationsanweisungen zu fahren. Die vom Benutzer ausgewählte Fahrtroute kann vom Smartphone 110 des Benutzers verwendet werden, um Fahranweisungen mit Wegbeschreibung bereitzustellen.
-
5 veranschaulicht konzeptionell ein elektronisches System, mit dem einige Aspekte der betreffenden Technologie umgesetzt werden können. Zum Beispiel zeigt 5 veranschaulicht beispielsweise ein Beispiel eines Computersystems 500, mit dem die Client-Vorrichtung 110 und/oder der Server 170 in 2 implementiert werden können. In bestimmten Aspekten kann das Computersystem 500 unter Verwendung von Hardware oder einer Kombination aus Software und Hardware entweder in einem dedizierten Server oder integriert in einer anderen Einheit oder über mehrere Einheiten verteilt implementiert werden.
-
Das Computersystem 500 (z. B. Client-Vorrichtung 110, Server 170) beinhaltet einen Bus 508 oder einen anderen Kommunikationsmechanismus zum Übermitteln von Informationen und einen Prozessor 502 (z. B. Prozessor 220, Prozessor 260), der zur Informationsverarbeitung mit Bus 508 verbunden ist. Das Computersystem 500 kann beispielsweise mit einem oder mehreren Prozessoren 502 implementiert werden. Prozessor 502 kann ein Universalmikroprozessor, eine Mikrosteuerung, ein digitaler Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA), eine programmierbare logische Vorrichtung (PLD), eine Steuerung, eine Zustandsmaschine, gegatete Logik, diskrete Hardwarekomponenten oder eine andere geeignete Einheit sein, die Berechnungen oder andere Bearbeitungen von Informationen durchführen kann.
-
Das Computersystem 500 kann zusätzlich zur Hardware Code beinhalten, der eine Ausführungsumgebung für das betreffende Computerprogramm erzeugt, z. B. Code, der Prozessor-Firmware, ein Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem oder eine Kombination von einem oder mehreren davon darstellt, der in einem enthaltenen Speicher 504 (z. B. Speicher 240, Speicher 280) gespeichert ist, wie beispielsweise einem Direktzugriffspeicher (RAM), einem Flash-Speicher, einem Nur-Lese-Speicher (ROM), einem programmierbaren Nur-Lese-Speicher (PROM), einem löschbaren PROM (EPROM), Verzeichnissen, einer Festplatte, einer Wechselplatte, einer CD-ROM, einer DVD oder einer anderen geeigneten Speichervorrichtung, die zum Speichern von Informationen und Anweisungen, die durch Prozessor 502 auszuführen sind, mit Bus 508 verbunden ist. Der Prozessor 502 und der Speicher 504 können durch eine anwendungsspezifische Logikschaltung ergänzt oder in diese integriert sein.
-
Die Anweisungen können im Speicher 504 gespeichert werden und in einem oder mehreren Computerprogrammprodukten, d. h. einem oder mehreren Modulen mit Computerprogrammanweisungen, die in einem computerlesbaren Medium zur Ausführung durch oder zur Steuerung des Betriebs des Computersystems 500 verschlüsselt sind, und gemäß irgendeinem Fachleuten wohlbekannten Verfahren, einschließlich, jedoch nicht beschränkt auf Computersprachen wie beispielsweise datenorientierte Sprachen (z. B. SQL, dBase), Systemsprachen (z. B., C, Objective-C, C++, Assembly), Architektursprachen (z. B. Java, .NET) und Anwendungssprachen (z. B. PHP, Ruby, Perl, Python) implementiert werden. Anweisungen können auch in Computersprachen wie beispielsweise Array-Sprachen, aspektorientierten Sprachen, Assemblersprachen, Autorensprachen, Befehlszeilenschnittstellensprachen, kompilierten Sprachen, nebenläufigen Sprachen, Curly-Bracket-Sprachen (Sprachen mit geschweifter Klammer), Datenflusssprachen, datenstrukturierten Sprachen, deklarativen Sprachen, esoterischen Sprachen, Erweiterungssprachen, Sprachen der vierten Generation, funktionalen Sprachen, Sprachen im interaktiven Modus, interpretierten Sprachen, iterativen Sprachen, listenbasierten Sprachen, kleinen Sprachen, logikbasierten Sprachen, Maschinensprachen, Makrosprachen, Metaprogrammiersprachen, Multiparadigmensprachen, numerischer Analyse, nicht auf Englisch basierenden Sprachen, objektorientierten klassenbasierten Sprachen, objektorientierten prototypbasierten Sprachen, Off-Side-Regel-Sprachen (Abseitsregel-Sprachen), prozeduralen Sprachen, reflektiven Sprachen, regelbasierten Sprachen, Skriptsprachen, Stack-basierten Sprachen, Synchronsprachen, Syntax-Handling-Sprachen, visuellen Sprachen, Wirth-Sprachen, einbettbaren Sprachen und XML-basierten Sprachen implementiert werden. Der Speicher 504 kann auch verwendet werden, um temporäre variable oder andere Zwischeninformationen während der Ausführung der durch den Prozessor 502 auszuführenden Anweisungen zu speichern.
-
Ein wie hierin ausgeführtes Computerprogramm entspricht nicht unbedingt einer Datei in einem Dateisystem. Ein Programm kann in einem Teil einer Datei gespeichert werden, der andere Programme oder Daten enthält (z. B. einen oder mehrere Skripte, die in einem Auszeichnungssprachen-Dokument gespeichert sind), in einer einzelnen Datei, die dem betreffenden Programm zugeordnet ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Codeabschnitte speichern). Ein Computerprogramm kann auf einem Computer oder mehreren Computern eingerichtet sein oder ausgeführt werden, die an einem Standort angeordnet sind oder über mehrere Standorte verteilt sind und über ein Kommunikationsnetz verbunden sind. Die in dieser Beschreibung dargestellten Prozesse und Logik-Abläufe können durch einen oder mehrere programmierbare Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch das Arbeiten mit Eingabedaten und das Erzeugen von Ausgaben auszuführen.
-
Das Computersystem 500 beinhaltet des Weiteren eine Datenspeichervorrichtung 506 wie beispielsweise eine Magnetplatte oder optische Platte, die zur Speicherung von Informationen und Anweisungen mit Bus 508 verbunden ist. Das Computersystem 500 kann über das Eingabe-/Ausgabemodul 510 mit verschiedenen Vorrichtungen verbunden werden. Das Eingabe-/Ausgabemodul 510 kann irgendein Eingabe-/Ausgabemodul sein. Beispiele für Eingabe-/Ausgabemodule 510 beinhalten Datenanschlüsse wie beispielsweise USB-Anschlüsse. Das Eingabe-/Ausgabemodul 510 ist so konfiguriert, dass es mit einem Kommunikationsmodul 512 verbunden werden kann. Beispiele von Kommunikationsmodulen 512 (z. B. Kommunikationsmodul 222, Kommunikationsmodul 262) beinhalten Netzwerkschnittstellenkarten wie z. B. Ethernet-Karten und Modems. In bestimmten Aspekten ist das Eingabe-/Ausgabemodul 510 so konfiguriert, dass es mit einer Vielzahl von Vorrichtungen, wie beispielsweise eine Eingabevorrichtung 514 (z. B. Eingabevorrichtung 202) und/oder eine Ausgabevorrichtung 516 (z. B. Ausgabevorrichtung 204) verbunden werden kann. Beispiele von Eingabevorrichtungen 514 beinhalten eine Tastatur und eine Zeigevorrichtung, z. B. eine Maus oder einen Trackball, durch die ein Benutzer dem Computersystem 500 Eingaben bereitstellt. Ebenso können andere Arten von Eingabevorrichtungen 514 verwendet werden, um Wechselwirkung mit einem Benutzer bereitzustellen, wie beispielsweise eine taktile Eingabevorrichtung, visuelle Eingabevorrichtung, Audio-Eingabevorrichtung oder eine Gehirn-Computer-Schnittstellenvorrichtung. Dem Benutzer bereitgestellte Rückmeldung kann beispielsweise irgendeine Form sensorischer Rückmeldung, z. B. visuelle Rückmeldung, auditive Rückmeldung oder taktile Rückmeldung sein; und eine Eingabe vom Benutzer kann in irgendeiner Form empfangen werden, einschließlich als akustische, Sprach-, taktile oder Gehirnwelleneingabe. Beispiele von Ausgabevorrichtungen 516 beinhalten Anzeigevorrichtungen wie beispielsweise eine Kathodenstrahlröhre (Cathode Ray Tube, CRT) oder ein LCD-Monitor (Liquid Crystal Display, Flüssigkristallanzeige), um dem Benutzer Informationen anzuzeigen.
-
Gemäß einem Aspekt der vorliegenden Offenbarung kann die Client-Vorrichtung 110 unter Verwendung eines Computersystems 500 als Reaktion auf Prozessor 502 implementiert werden, um eine oder mehrere Sequenzen einer oder mehrerer in Speicher 504 enthaltenen Anweisungen auszuführen. Solche Anweisungen können von einem anderen maschinenlesbaren Medium in Speicher 504, beispielsweise Datenspeichervorrichtung 506, eingelesen werden. Die Ausführung von im Hauptspeicher 504 enthaltenen Anweisungssequenzen veranlasst den Prozessor 502, die hierin beschriebenen Verfahrensschritte auszuführen. Ein oder mehrere Prozessoren in einer Multiprocessing-Anordung können auch verwendet werden, um die in Speicher 504 enthaltenen Anweisungssequenzen auszuführen. In alternativen Aspekten können festverdrahtete Schaltungen anstelle von oder in Kombination mit Softwareanweisungen verwendet werden, um verschiedene Aspekte der vorliegenden Offenbarung zu implementieren. Somit beschränken sich Aspekte der vorliegenden Offenbarung nicht auf eine spezifische Kombination von Hardwareschaltung und Software.
-
Verschiedene Aspekte des betreffenden in dieser Beschreibung beschriebenen Gegenstandes kann in einem Computersystem implementiert werden, das eine Back-End-Komponente beinhaltet, z. B. als Datenserver, oder das eine Middleware-Komponente beinhaltet, z. B. ein Anwendungsserver, oder das eine Front-End-Komponente beinhaltet, z. B. ein Client-Computer mit einer grafischen Benutzeroberfläche oder einem Webbrowser, über die bzw. den ein Benutzer mit einer Implementierung des betreffenden und in dieser Beschreibung beschriebenen Gegenstandes interagieren kann, oder eine Kombination einer oder mehrerer solcher Back-End-, Middleware- oder Front-End-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation miteinander verbunden sein, z. B. ein Kommunikationsnetz. Das Kommunikationsnetzwerk (z. B. Netzwerk 140) kann beispielsweise irgendeines oder mehrere aus einem persönlichen Netzwerk (PAN), einem lokalen Netzwerk (LAN), einem Campusnetzwerk (CAN), einem Stadtnetz (Metropolitan Area Network, MAN), einem Weitverkehrsnetz (Wide Area Network, WAN), einem Breitbandnetzwerk (Broadband Network, BBN), dem Internet und dergleichen beinhalten. Des Weiteren kann das Kommunikationsnetzwerk beispielsweise irgendeine oder mehrere der folgenden Netzwerktopologien, einschließlich eines Busnetzwerks, eines Sternnetzwerkes, eines Ring-Netzwerks, eines Maschennetzwerks, eines Stern-Bus-Netzwerks, eines Baum- oder hierarchischen Netzwerks und dergleichen beinhalten, ist darauf aber nicht beschränkt. Die Kommunikationsmodule können beispielsweise Modems oder Ethernet-Karten sein.
-
Das Computersystem 500 kann Clients und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben. Das Computersystem 500 kann beispielsweise und ohne Beschränkung ein Desktop-Computer, Laptop-Computer oder Tablet-Computer sein. Das Computersystem 500 kann auch in einer anderen Vorrichtung eingebettet sein, beispielsweise und ohne Beschränkung ein Mobiltelefon, ein Personal Digital Assistant (PDA), ein mobiler Audio-Player, ein GPS-Empfänger, eine Videospielkonsole und/oder eine Fernseher-Set-Top-Box.
-
Der Begriff „maschinenlesbares Speichermedium” oder „computerlesbares Medium”, wie hierin verwendet, bezieht sich auf ein Medium oder Medien, die an der Bereitstellung von Anweisungen an einen Prozessor 502 zur Ausführung beteiligt sind. Solch ein Medium kann viele Formen annehmen, einschließlich, jedoch nicht beschränkt auf nichtflüchtige Medien, flüchtige Medien und Übertragungsmedien. Nichtflüchtige Medien beinhalten beispielsweise optische oder Magnetplatten wie beispielsweise Datenspeichervorrichtung 506. Flüchtige Medien beinhalten dynamische Speicher wie beispielsweise Speicher 504. Übertragungsmedien beinhalten Koaxialkabel, Kupferdraht und Faseroptik, einschließlich der Drähte, die Bus 508 enthalten. Verbreitete Formen maschinenlesbarer Medien beinhalten beispielsweise eine Floppy-Disk, eine flexible Platte, eine Festplatte, Magnetband, ein anderes magnetisches Medium, eine CD-ROM, eine DVD, ein anderes optisches Medium, Lochkarten, Lochstreifen, ein anderes physisches Medium mit Lochmustern, ein RAM, ein PROM, ein EPROM, ein FLASH-EPROM, einen anderen Speicherchip oder eine Speicherkassette oder ein anderes Medium, von dem ein Computer lesen kann. Das maschinenlesbare Speichermedium kann eine maschinenlesbare Speichervorrichtung, ein maschinenlesbares Speichersubstrat, eine Speichervorrichtung, eine Stoffzusammensetzung, die ein maschinenlesbares verbreitetes Signal bewirkt, oder eine Kombination aus einem oder mehreren davon sein.
-
Während diese Beschreibung viele Einzelheiten enthält, sollen diese nicht als Beschränkung des Umfangs dessen verstanden werden, was beansprucht wird, sondern vielmehr als Beschreibungen von bestimmten Implementierungen des betreffenden Gegenstands. Bestimmte, in dieser Beschreibung im Kontext gesonderter Implementierungen der betreffenden Technologie beschriebene Merkmale können auch in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene, im Kontext einer einzelnen Implementierung beschriebenen Merkmale auch in mehreren Implementierungen gesondert oder in einer geeigneten Unterkombination implementiert werden. Außerdem können ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden, auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar als eine Kombination beansprucht werden, und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.
-
Ebenso werden Tätigkeiten in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, aber dies sollte nicht als Anfordernis verstanden werden, dass solche Tätigkeiten in der bestimmten gezeigten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge ausgeführt werden müssen oder dass alle dargestellten Tätigkeiten ausgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den oben beschriebenen Aspekten nicht als solche Trennung in allen Aspekten erfordernd aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder zu mehreren Softwareprodukten verkapselt werden können.
-
Der betreffende Gegenstand dieser Beschreibung wurde in Bezug auf besondere Aspekte beschrieben. Es können jedoch andere Aspekte implementiert werden und diese fallen in den Rahmen des Schutzumfangs der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Vorgänge können beispielsweise in einer anderen Reihenfolge ausgeführt werden und erzielen dennoch gewünschte Ergebnisse. Die in den beigefügten Figuren dargestellten Verfahren erfordern beispielsweise nicht notwendigerweise die gezeigte Reihenfolge oder sequentielle Reihenfolge, um erwünschte Ergebnisse zu erzielen. Bei bestimmten Implementierungen können Multitasking und eine Parallelbearbeitung vorteilhaft sein. Andere Variationen fallen in den Umfang der folgenden Ansprüche. Diese und andere Implementierungen fallen in den Umfang der folgenden Ansprüche.