DE102016124464A1 - Navigations-anwendungsprogrammierungsschnittstelle - Google Patents

Navigations-anwendungsprogrammierungsschnittstelle Download PDF

Info

Publication number
DE102016124464A1
DE102016124464A1 DE102016124464.3A DE102016124464A DE102016124464A1 DE 102016124464 A1 DE102016124464 A1 DE 102016124464A1 DE 102016124464 A DE102016124464 A DE 102016124464A DE 102016124464 A1 DE102016124464 A1 DE 102016124464A1
Authority
DE
Germany
Prior art keywords
navigation
instructions
software application
navigation service
route
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102016124464.3A
Other languages
English (en)
Inventor
Joseph Laurence Scarr
Benjamin Greenwood
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE102016124464A1 publication Critical patent/DE102016124464A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map
    • G01C21/3676Overview of the route on the road map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Navigation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Es werden Navigations-Anwendungsprogrammierungsschnittstellen zur Verfügung gestellt, die verwendet werden können, um Navigationsdienste in Softwareanwendungen einzubetten. Bei einer Ausführungsform enthält die Anwendungsprogrammierungsschnittstelle eine erste Gruppe von Anweisungen, die einen oder mehrere erste Parameter spezifizieren, um die Implementierung eines Navigationsdienstes durch die Softwareanwendung zu steuern. Der Navigationsdienst stellt einem Anwender der Softwareanwendung Navigationsinformation zur Verfügung. Die Anwendungsprogrammierungsschnittstelle enthält weiterhin eine zweite Gruppe von Anweisungen, die einen oder mehrere zweite Parameter spezifizieren, um eine Interaktion mit einer Routing Engine über die Anwendungsprogrammierungsschnittstelle zu steuern, um die Navigationsinformation zu erhalten. Die erste Gruppe von Anweisungen spezifiziert eine oder mehrere konfigurierbare Ereignislistenerschnittstellen. Die konfigurierbaren Ereignislistenerschnittstellen können betreibbar sein, um Daten zu erhalten, die zu einem oder mehreren Navigationsereignissen gehören, um die als Teil des Navigationsdienstes zur Verfügung gestellte Navigationsinformation einem Updaten zu unterziehen.

Description

  • GEBIET
  • Die vorliegende Offenbarung betrifft allgemein Anwendungsprogrammierungsschnittstellen zum Bereitstellen von Navigationsinformation.
  • HINTERGRUND
  • Auf Computervorrichtungen, wie beispielsweise mobilen Computervorrichtungen (z. B. Smartphones, Tablets, Smartwatches, etc.), implementierte Anwendungen sind für eine Vielfalt von Zwecken, einschließlich Geschäfts-, Sozial-, Gesundheits- und anderen Zwecken, entwickelt worden. Diese Anwendungen können eine Anwenderschnittstelle (z. B. eine grafische Anwenderschnittstelle) zum Präsentieren von Information zu einem Anwender sowie zum Zulassen, dass der Anwender mit der Anwendung interagiert, zur Verfügung stellen. Populäre Anwendungen für mobile Computervorrichtungen enthalten Kartenanwendungen, die Anwendern mannigfaltige geografische Information (z. B. auf einer Karte präsentierte Information über eine aktuelle Lokalisierung) verfügbar machen.
  • In einigen Fällen kann es für eine Anwendung, die nicht primär zur Kartografie oder Navigation gedacht ist, erwünscht sein, dass sie Navigations- oder Karteninformation enthält – beispielsweise könnte es für eine Gesundheits- oder Fitnessanwendung erwünscht sein, Navigations- oder Karteninformation zur Verfügung zu stellen, um zuzulassen, dass Anwender ihren Weg um eine Laufstrecke herum finden, einen Lauf über eine bestimmte Entfernung beenden, etc. Im Prinzip könnte die Gesundheits- oder Fitnessanwendung derart geschrieben werden, dass sie eine maßgeschneiderte Navigations- oder Kartenschnittstelle enthält, aber dies würde Programmierressourcen erfordern, um die Anwendung zu erzeugen.
  • ZUSAMMENFASSUNG
  • Aspekte und Vorteile von Ausführungsformen der vorliegenden Offenbarung werden teilweise in der folgenden Beschreibung dargelegt werden oder können aus der Beschreibung gelernt werden oder können durch Ausführung der Ausführungsformen gelernt werden.
  • Ein beispielhafter Aspekt der vorliegenden Offenbarung betrifft ein computerlesbares Medium, das ein nichtflüchtiges computerlesbares Medium sein kann, obwohl die Erfindung nicht auf dieses beschränkt ist, das eine Anweisung speichert, die eine Anwendungsprogrammierungsschnittstelle zum Bereitstellen eines Navigationsdienstes als Teil einer auf einer Computervorrichtung ausgeführten Softwareanwendung implementiert. Die Computervorrichtung kann einen oder mehrere Prozessoren und eine Anzeigevorrichtung haben. Die Anwendungsprogrammierungsschnittstelle kann eine erste Gruppe von Anweisungen enthalten, die einen oder mehrere erste Parameter spezifiziert, um die Implementierung eines Navigationsdienstes durch die Softwareanwendung zu steuern. Der Navigationsdienst kann Navigationsinformation zu einem Anwender der Softwareanwendung liefern. Die Anwendungsprogrammierungsschnittstelle kann weiterhin eine zweite Gruppe von Anweisungen enthalten, die einen oder mehrere zweite Parameter spezifizieren, um eine Interaktion mit einer Routing Engine über die Anwendungsprogrammierungsschnittstelle zu steuern. Die erste Gruppe von Anweisungen kann eine oder mehrere konfigurierbare Ereignislistenerschnittstellen spezifizieren. Die konfigurierbaren Ereignislistenerschnittstellen können betreibbar sein, um zu einem oder mehreren Navigationsereignissen gehörende Daten zu erhalten, um die als Teil des Navigationsdienstes gelieferte Navigationsinformation einem Updaten zu unterziehen.
  • Ein weiteres Beispiel der vorliegenden Offenbarung ist auf ein Verfahren zum Integrieren eines Navigationsdienstes als Teil einer Softwareanwendung auf einer Computervorrichtung mit einem oder mehreren Prozessoren gerichtet. Das Verfahren enthält ein Zugreifen auf zu einer Navigations-Anwendungsprogrammierungsschnittstelle gehörende Daten; ein Eingliedern der zu einer Navigations-Anwendungsprogrammierungsschnittstelle gehörenden Daten in die Softwareanwendung; und ein Erstellen einer zum Navigationsdienst gehörenden grafischen Anwenderschnittstellenkomponente unter Verwendung einer ersten Gruppe von zur Navigations-Anwendungsprogrammierungsschnittstelle gehörenden Anweisungen. Die erste Gruppe von Anweisungen kann einen oder mehrere Parameter spezifizieren, um die Anzeige der zum Navigationsdienst gehörenden grafischen Anwenderschnittstellenkomponente auf der Anzeigevorrichtung in Verbindung mit einer Softwareanwendung zu steuern. Das Verfahren kann weiterhin ein Konfigurieren des Navigationsdienstes unter Verwendung einer zweiten Gruppe von zur Navigations-Anwendungsprogrammierungsschnittstelle gehörenden Anweisungen enthalten. Die zweite Gruppe von Anweisungen kann einen oder mehrere Parameter spezifizieren, um die Implementierung des Navigationsdienstes durch die Softwareanwendung zu steuern. Die zweite Gruppe von Anweisungen kann eine oder mehrere konfigurierbare Ereignislistenerschnittstellen enthalten. Die konfigurierbaren Ereignislistenerschnittstellen können betreibbar sein, um zu einem oder mehreren Navigationsereignissen gehörende Daten zu erhalten, um als Teil des Navigationsdienstes gelieferte Navigationsinformation einem Updaten zu unterziehen. Das Verfahren kann folgendes aufweisen: Erhalten eines Zugriffsschlüssels zum Freigeben eines Betriebs der Navigations-Anwendungsprogrammierungsschnittstelle; und Hinzufügen des Zugriffsschlüssels zur Softwareanwendung. Zusätzlich oder alternativ kann das Verfahren ein Initialisieren der Navigations-Anwendungsprogrammierungsschnittstelle unter Verwendung einer Gruppe von zur Navigations-Anwendungsprogrammierungsschnittstelle gehörenden Initialisierungs- und Fehlerhandhabungsanweisungen aufweisen. Zusätzlich oder alternativ können die eine oder die mehreren konfigurierbaren Ereignislistenerschnittstellen eine Lokalisierungslistenerschnittstelle aufweisen, die betreibbar ist, um aufgerufen zu werden, um eine aktuelle Lokalisierung eines Anwenders im Navigationsdienst einem Updaten zu unterziehen. Zusätzlich oder alternativ kann die eine oder können die mehreren Ereignislistenerschnittstellen eine Listenerschnittstelle für eine geänderte übrige Zeit oder übrige Entfernung aufweisen, welche Schnittstelle betreibbar ist, um aufgerufen zu werden, wenn eine übrige Zeit oder übrige Entfernung zu einem Wegpunkt sich um mehr als eine Schwelle geändert hat. Zusätzlich oder alternativ kann ein Konfigurieren des Navigationsdienstes unter Verwendung einer zweiten Gruppe von Anweisungen ein Einstellen der Schwelle als einen Parameter in der zweiten Gruppe von Anweisungen aufweisen.
  • Ein weiterer beispielhafter Aspekt betrifft eine Computervorrichtung, die folgendes aufweist: eines Anzeigevorrichtung; eine Netzwerkschnittstelle; einen oder mehrere Prozessoren; und eine oder mehrere Speichervorrichtungen, wobei die eine oder die mehreren Speichervorrichtungen computerlesbare Anweisungen speichern, die dann, wenn sie ausgeführt werden, veranlassen, dass der eine oder die mehreren Prozessoren ein Verfahren des obigen beispielhaften Aspekts durchführen.
  • Anwendungsprogrammierungsschnittstellen können zulassen, dass auf Computervorrichtungen implementierte Anwendungen mit verschiedenen Diensten interagieren, um Information und Funktionalität zu einem Anwender zu liefern. Anwendungsprogrammierungsschnittstellen können ein Werkzeug für Entwickler zur Verfügung stellen, um Information; Programmierung, Frameworks und Strukturen in Anwendungen für einen Zugriff durch den Anwender einzubetten. Beispielsweise kann ein Kartendienstherausgeber bzw. -provider eine Karten-Anwendungsprogrammierungsschnittstelle zur Verfügung stellen, die durch dritte Parteien verwendet werden kann, um eine digitale Karte in eine Anwenderschnittstelle einer durch die dritte Partei entwickelten Anwendung einzubetten. Dies vermeidet die Notwendigkeit für den Entwickler der dritten Partei, seine eigene Kartenanwendung zu erzeugen.
  • Andere beispielhafte Aspekte der vorliegenden Offenbarung sind auf ein System, eine Vorrichtung bzw. Geräte, computerlesbare Medien gerichtet, die materielle, nichtflüchtige, computerlesbare Medien, Anwenderschnittstellen, Speichervorrichtungen und elektronische Vorrichtungen, die zu einer Anwendungsprogrammierungsschnittstelle zum Liefern bzw. Bereitstellen von Navigationsinformation gehören, sein können.
  • Diese und andere Merkmale, Aspekte und Vorteile von verschiedenen Ausführungsformen werden unter Bezugnahme auf die folgende Beschreibung und die beigefügten Ansprüche besser verstanden werden. Die beigefügten Zeichnungen, die in dieser Beschreibung enthalten sind und einen Teil von ihr bilden, stellen Ausführungsformen der vorliegenden Offenbarung dar und dienen zusammen mit der Beschreibung dazu, die zugehörigen Prinzipien zu erklären.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Eine detaillierte Diskussion von Ausführungsformen, die an Fachleute auf dem Gebiet gerichtet ist, wird in der Beschreibung dargestellt, welche auf die angehängten Figuren Bezug nimmt, in welchen:
  • 1 einen Überblick auf ein beispielhaftes System zum Implementieren eines Navigationsdienstes als Teil einer Softwareanwendung unter Verwendung einer Anwendungsprogrammierungsschnittstelle gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt;
  • 23 eine beispielhafte grafische Anwenderschnittstellenkomponente zeigt, die zu einem Navigationsdienst als Teil einer Softwareanwendung gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung gehört;
  • 4 ein Blockdiagramm einer beispielhaften Anwendervorrichtung zeigt, die eine Softwareanwendung gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung implementiert;
  • 5 ein Blockdiagramm einer beispielhaften Navigations-Anwendungsprogrammierungsschnittstelle gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt;
  • 6 ein Blockdiagramm von beispielhaften Navigatoranweisungen zeigt, die zu einer Navigations-Anwendungsprogrammierungsschnittstelle gemäß beispielhaften Aspekten der vorliegenden Offenbarung gehören;
  • 7 ein Ablaufdiagramm eines beispielhaften Verfahrens gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt;
  • 8 ein Blockdiagramm einer beispielhaften Navigations-Anwendungsprogrammierungsschnittstelle gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung zeigt; und
  • 9 ein Blockdiagramm von beispielhaften Navigatoranweisungen zeigt, die zu einer Navigations-API gemäß beispielhaften Aspekten der vorliegenden Offenbarung gehören.
  • DETAILLIERTE BESCHREIBUNG
  • Nun wird detailliert auf Ausführungsformen Bezug genommen werden, von welchen eines oder mehrere Beispiele in den Zeichnungen dargestellt ist oder sind. Jedes Beispiel ist mittels Erklärung der Ausführungsformen und nicht mittels Beschränkung der vorliegenden Offenbarung zur Verfügung gestellt. Tatsächlich wird es Fachleuten auf dem Gebiet klar sein, dass verschiedene Modifikationen und Variationen an den Ausführungsformen durchgeführt werden können, ohne vom Schutzumfang oder Sinngehalt der vorliegenden Offenbarung abzuweichen. Beispielsweise können als Teil einer Ausführungsform dargestellte oder beschriebene Merkmale mit einer anderen Ausführungsform verwendet werden, um eine noch weitere Ausführungsform zu ergeben. Somit ist beabsichtigt, dass Aspekte der vorliegenden Offenbarung solche Modifikationen und Variationen abdecken.
  • Beispielhafte Aspekte der vorliegenden Offenbarung sind auf Anwendungsprogrammierungsschnittstellen („APIs”) zum Liefern von Navigationsinformation in Softwareanwendungen einer dritten Partei, die auf einer oder mehreren Computervorrichtungen implementiert sind, wie beispielsweise webbasierte Softwareanwendungen, die in einem Browser implementiert sind, lokal gespeicherte Softwareanwendungen und andere Anwendungen. Bei einigen Ausführungsformen kann die API zulassen, dass Anwendungsentwickler ein durch einen Navigationsdatenprovider oder eine andere Quelle gelieferte Navigationsanwendung in ihre Softwareanwendung einbetten. Die API kann zulassen, dass der Entwickler die Navigationsanwendung auf einfache Weise an einen Kunden anpasst und an spezielle Bedürfnisse anpasst, um variierende Plattformen und Endanwendungsfälle aufzunehmen bzw. unterzubringen.
  • Spezifischer kann die API, wenn sie durch eine auf einer Computervorrichtung implementierte Softwareanwendung aufgerufen wird, konfiguriert sein, um Routing- bzw. Führungsinformation von einem Datenprovider über eine Kommunikationsschnittstelle (z. B. über ein Netzwerk, wie beispielsweise das Internet) anzufragen und zu empfangen. Die API kann konfiguriert sein, um Navigationsinformation (z. B. durch eine grafische Anwenderschnittstellenkomponente oder durch Audio- und/oder Vibrationshinweise) basierend auf der Routinginformation zu präsentieren, um einen Navigationsdienst zur Verfügung zu stellen, der in der Softwareanwendung eingebettet ist. Ein Navigationsdienst kann eine Anwendung (z. B. eine Softwareanwendung) sein, die Navigationsinformation liefert bzw. zur Verfügung stellt, die dazu verwendet werden kann, einen Anwender von einem Ursprung zu einem Zielort zu führen. Bei einigen Ausführungsformen kann der in der Softwareanwendung eingebettete Navigationsdienst Navigationsinformation (z. B. Navigationsinformation mit Routenführung) zu einem Anwender liefern, wenn sich ein Anwender entlang einer Navigationsroute oder einem anderen Weg bewegt. Genauer gesagt kann der Navigationsdienst bei einigen Ausführungsformen eine Route empfangen, die einen Anwender von einer aktuellen Stelle zu einem Zielort führt. Als Beispiel kann die Route eine Folge von Schritten enthalten, die jeweils einen Routenteilbereich (z. B. Name oder Nummer der Straße, Entfernung, Wegzeit, Geschwindigkeitsbegrenzung) und ein Manöver (z. B. Abbiegen nach links, nach rechts einfädeln, geradeaus weiter) beschreiben, um auf den nächsten Routenteilbereich zuzugreifen. Der Navigationsdienst kann die Route einem Anwender durch eine grafische Anwenderschnittstelle und über einen oder mehrere Hinweise (z. B. Audio- oder Videohinweise) liefern, um den Anwender von einem Ursprung zu einem Zielort zu führen.
  • Bei einigen Ausführungsformen kann die Softwareanwendung mit einer Routing Engine, die durch einen Navigationsdatenprovider oder eine andere Quelle (z. B. eine lokale Quelle von Navigationsinformation) implementiert ist, über die API interagieren, um Routinginformation und andere Navigationsinformation zu erhalten. Der Navigationsdatenprovider kann zu einer separaten Einheit in bezug zum Entwickler der Softwareanwendung gehören. Beispielsweise kann der Navigationsdatenprovider zu einem Web-Server gehören, der ein Host eines geografischen Informationssystems ist. Die Navigationsinformation kann eine Route zu einem oder mehreren Wegpunkten enthalten. Die Navigationsinformation kann weiterhin Kartendaten zur Präsentation in Verbindung mit der Route und anderer Information enthalten. Die Navigationsinformation kann kontinuierlich einem Updaten unterzogen werden (z. b. durch eine oder mehrere Ereignislistenerschnittstellen, die als Teil der API implementiert sind), wenn der Anwender die Navigationsroute durchläuft, um Navigationsinformation in Echtzeit oder nahe an einer Echtzeit für einen Anwender zu liefern.
  • Die API kann, wenn sie durch eine Softwareanwendung implementiert ist, die zum Navigationsdienst gehörende Navigationsinformation in einer in Verbindung mit der Softwareanwendung angezeigten grafischen Anwenderschnittstellenkomponente visuell präsentieren. Beispielsweise kann die grafische Anwenderschnittstellenkomponente eine Karte anzeigen. Die Vorgabeanzeige der Karte kann beispielsweise eine Ansicht der Karte von oben nach unten sein. Während eines Navigationsmodes kann die grafische Anwenderschnittstellenkomponente eine Route in einem Linienzug auf der Karte anzeigen. Die Position des Anwenders kann entlang der Route einem Updaten unterzogen werden, wenn der Anwender die Route navigiert. Beispielsweise kann der Navigationsdienst eine grafische Anwenderschnittstelle zur Verfügung stellen, wo eine Position des Anwenders entlang der Navigationsroute kontinuierlich einem Updaten unterzogen wird, wenn sich die Anwenderposition entlang der Navigationsroute ändert. Verschiedene Wegpunkte können durch in der Karte lokalisierte Markierungen identifiziert werden. Andere Information kann in der grafischen Anwenderschnittstellenkomponente präsentiert werden, wie beispielsweise eine geschätzte Zeit oder eine Entfernung, die bis zu einer Ankunft bei einem Wegpunkt bleibt („ETD-Information”), ein Kompassschnittstellenelement, ein Navigationsanfangs- bzw. -headingelement, etc. Bei einigen Ausführungsformen kann die Navigationsinformation unter Verwendung einer Audioführung mit oder ohne einer visuellen Anzeige von Navigationsinformation in der grafischen Anwenderschnittstellenkomponente geliefert werden.
  • Gemäß bestimmten Aspekten der vorliegenden Offenbarung kann die API Gruppen von computerlesbaren Anweisungen enthalten, die dann, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, eine Integration der Navigationsanwendung in eine Softwareanwendung eines Entwicklers erleichtern. Die Gruppen von Anweisungen können, wenn sie durch einen oder mehrere Prozessoren implementiert sind, eine Interaktion durch die Softwareanwendung mit dem Navigationsdatenprovider über die API sowie die Anzeige und/oder Ausgabe von Navigationsinformation zum Anwender als Teil der Softwareanwendung verwalten bzw. regulieren.
  • Genauer gesagt können beispielhafte zu einer API gehörende Anweisungen, denen sich ein Entwickler einer Softwareanwendung gegenübergestellt sieht, eine Gruppe von Anweisungen enthalten, die einen oder mehrere Parameter spezifizieren, die die Anzeige der visuellen Ausgabe des Navigationsdienstes verwalten. Die API kann weiterhin eine Gruppe von Anweisungen enthalten, die einen oder mehrere Parameter spezifizieren, die die Implementierung des Navigationsdienstes steuern, und eine Gruppe von Anweisungen, die die Interaktion der API mit der Routing Engine verwalten, die durch den Navigationsdatenprovider geliefert ist.
  • Gemäß bestimmten Aspekten der vorliegenden Offenbarung kann die API eine oder mehrere Ereignislistenerschnittstellen enthalten, die dann, wenn sie aufgerufen werden, zulassen, dass die die API aufrufende Softwareanwendung Daten erhält, die verschiedene Navigationsereignisse (z. B. von dem Navigationsdatenprovider oder dem Netzwerk) anzeigen. Die Navigationsereignisse können beispielsweise eine einem Updaten unterzogene Anwenderposition, eine geänderte Route, ein Update an der ETD-Information, eine Ankunft an einem Wegpunkt, etc. sein. Die konfigurierbaren Ereignislistenerschnittstellen können verwendet werden, um die Navigationsinformation kontinuierlich einem Updaten zu unterziehen, wenn sich ein Anwender entlang einer Route bewegt, und zwar auf eine Weise, die durch den Entwickler der Softwareanwendung erwünscht ist. Beispielsweise kann eine Ereignislistenerschnittstelle verwendet werden, um die aktuelle Lokalisierung eines Anwenders entlang einer Navigationsroute einem Updaten zu unterziehen. Eine weitere beispielhafte Ereignislistenerschnittstelle kann verwendet werden, um EDT-Information zu einer oder mehreren Wegpunkten einem Updaten zu unterziehen. Eine weitere beispielhafte Ereignislistenerschnittstelle kann verwendet werden, um zu signalisieren, wenn ein Anwender bei einem bestimmten Wegpunkt angekommen ist. Eine weitere beispielhafte Ereignislistenerschnittstelle kann verwendet werden, wenn ein Anwender von einer Route abweicht, die durch die Routing Engine bestimmt ist, und sich die Route zu einem durch Routing Engine bestimmten Wegpunkt ändert.
  • Bei einigen Implementierungen kann die API konfiguriert sein, um eine Navigation für eine Vielzahl von Wegpunkten unterzubringen. Daten, die die Vielzahl von Wegpunkten anzeigen, können über die API beispielsweise in einer Listenform, die die Wegpunkte aufreiht, empfangen werden. Die Routing Engine kann eine Mehrfachwegpunkte-Route zu der Vielzahl von Wegpunkten bestimmen. Die Mehrfachwegpunkte-Route kann eine Vielzahl von Routensegmenten enthalten. Jedes Routensegment kann eine Route zwischen Wegpunkten in der Mehrfachwegpunkte-Route oder zwischen einer Startlokalisierung und einem Wegpunkt in der Mehrfachwegpunkte-Route sein.
  • Die API kann eine oder mehrere Ereignislistenerschnittstellen enthalten, um ein Liefern von Navigationsinformation basierend auf einer Mehrfachwegpunkte-Route unterzubringen. Beispielsweise können die eine oder mehreren Ereignislistenerschnittstellen konfiguriert sein, um Benachrichtigungen zu liefern, wenn ein jeweiliger Wegpunkt erreicht ist, wenn sich ETD-Information zum nächsten Wegpunkt ändert oder wenn sich irgendein Teil der Mehrfachwegpunkte-Route ändert. Zusätzlich können die eine oder mehreren Ereignislistenerschnittstellen konfiguriert sein, um einen Zugriff auf EDT-Information für jeden Wegpunkt entlang der Mehrfachwegpunkte-Route, einen Zugriff auf geografische Koordinaten (z. B. Breitengrad und Längengrad) für jeden Wegpunkt, einen Zugriff auf die zu einem Routensegment gehörende Information (z. B. Navigationslinienzug) zwischen einem jeweiligen Wegpunkt entlang der Mehrfachwegpunkte-Route und/oder einen Zugriff darauf, wo der Anwender entlang der Mehrfachwegpunkte-Route unabhängig von der Route zum nächsten Wegpunkt in der Mehrfachwegpunkte-Route gewesen ist, zu liefern.
  • Auf diese Weise können die APIs gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung einen technischen Effekt eines Erleichterns der Integration eines Navigationsdienstes, der durch einen Navigationsdatenprovider zur Verfügung gestellt wird, bei verschiedenen Softwareanwendungen haben. Eine oder mehrere Ereignislistenerschnittstellen, die als Teil der APIs implementiert sind, können verwendet werden, um die Navigationsinformation kontinuierlich einem Updaten zu unterziehen, wenn sich ein Anwender entlang einer Navigationsroute auf eine Weise bewegt, die durch den Entwickler erwünscht ist. Die APIs können die Kundenanpassung des Navigationsdienstes für verschiedene Endanwendungsnotwendigkeiten zulassen, wie beispielsweise für Fahrgemeinschaftsanwendungen, Versand-/Auslieferungsanwendungen, soziale Anwendungen und andere Endanwendungsanwendungen.
  • 1 zeigt einen Überblick eines beispielhaften Systems 100 zum Implementieren eines Navigationsdienstes als Teil einer Softwareanwendung unter Verwendung einer Navigations-API gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung. Das System 100 kann eine Anwendervorrichtung 112 enthalten, die Navigationsdaten von einem Navigationsdatenprovider 114 über ein Kommunikationsnetzwerk 116 empfangen kann. Die Anwendervorrichtung 112 kann beispielsweise ein Smartphone, ein Tablet, eine tragbare Vorrichtung, ein Laptop, ein Desktop, eine mobile Vorrichtung, eine Vorrichtung, die von einem Anwender getragen werden kann, während sie in Betrieb ist, eine Anzeige mit einem oder mehreren Prozessoren, ein Fahrzeugsystem oder eine andere Anwendervorrichtung 112 sein.
  • Eine Softwareanwendung 120 kann auf der Anwendervorrichtung 112 implementiert sein. Die Softwarenwendung kann beispielsweise eine Kartierungsanwendung, ein Browser, eine Fahrgemeinschaftsanwendung, eine Anwendung, die zum Unterstützen bei einer Auslieferung verwendet wird, eine soziale Medienanwendung oder eine andere Softwareanwendung sein, die es nötig haben kann, Navigationsinformation zu einem Anwender zu liefern. Die Softwareanwendung 120 kann lokal auf der Anwendervorrichtung 112 gespeichert sein oder kann beispielsweise eine Web-Anwendung sein, auf die über einen Browser zugegriffen wird, der auf der Anwendervorrichtung 112 implementiert ist. Bei einigen Ausführungsformen kann die Softwareanwendung 120 durch eine Einheit einer dritten Partei entwickelt sein, die unabhängig von und/oder nicht angegliedert ist an eine Einheit, die zu dem Navigationsdatenprovider 114 gehört.
  • Die Softwareanwendung 120 kann eine Navigations-API 130 aufrufen, um auf Navigationsdaten vom Navigationsdatenprovider 114 über das Kommunikationsnetzwerk 116 zuzugreifen und diese zu liefern, so dass ein Navigationsdienst in der Softwareanwendung 120 eingebettet sein kann. Beispielhafte Aspekte der vorliegenden Offenbarung werden mit einem Zugreifen auf Daten von einem entfernten Navigationsdatenprovider 114 zu Zwecken einer Darstellung und Diskussion diskutiert. Fachleute auf dem Gebiet werden unter Verwendung der hierin zur Verfügung gestellten Offenbarung verstehen, dass die API 130 auf Daten von anderen Quellen zugreifen kann, wie beispielsweise von lokalen Quellen oder von Anwendungen, die auf der Anwendervorrichtung 112 lokalisiert sind.
  • Der Navigationsdienst kann Navigationsinformation (z. B. Navigationsinformation mit Routenführung) in Echtzeit oder nahezu in Echtzeit zu einem Anwender präsentieren, wenn sich ein Anwender oder ein Fahrzeug, der oder das die Anwendervorrichtung 112 trägt, entlang einer Route von einem Ursprung zu einem oder mehreren Zielorten bewegt. Der Navigationsdienst kann eine grafische Anwenderschnittstellenkomponente zum Präsentieren der Navigationsinformation zum Anwender auf einer oder mehreren Anzeigevorrichtungen enthalten. Zusätzlich oder alternativ kann der Navigationsdienst eine Audioführung oder andere Benachrichtigungen (z. B. Vibrationsbenachrichtigungen) zum Anwender liefern, die Navigationsinformations-(z. B. mit Routenführung)Wegbeschreibungen anzeigen.
  • 2 zeigt eine beispielhafte grafische Anwenderschnittstellenkomponente 200, die zu einem Navigationsdienst gehört, der als Teil einer grafischen Anwenderschnittstelle 122 einer Softwareanwendung 120 eingebettet ist, gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung. Die grafische Anwenderschnittstellenkomponente 200 kann auf einer Anzeigevorrichtung der Anwendervorrichtung 112 angezeigt werden. Die grafische Anwenderschnittstellenkomponente 200 kann verschiedene Schnittstellenelemente enthalten, die Navigationsinformation zu einem Anwender als Teil eines Navigationsdienstes liefern. Wie es in 2 gezeigt ist, enthält die grafische Anwenderschnittstellenkomponente 200 eine Karte 202 sowie eine Route 210, die auf der Karte 202 präsentiert ist. Zusätzlichen können Markierungen 212, die Wegpunkte anzeigen, auf der Karte 202 präsentiert werden. Die Route 210 wird auf einer Ansicht der Karte 202 von oben nach angezeigt, um einen Routenüberblick zu liefern. Gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung können zur Karte 202 gehörende Daten, die Route 210 und zu den Wegpunkten 212 gehörende Information und andere Navigationsinformation von einem Navigationsdatenprovider 114 über eine API 130 erhalten werden, die durch die Softwareanwendung 120 aufgerufen wird, wie es unten detaillierter diskutiert werden wird.
  • 3 zeigt einen weiteren Aspekt einer grafischen Anwenderschnittstellenkomponente 200, die zu einem Navigationsdienst gehört, der als Teil einer grafischen Anwenderschnittstelle 122 einer Softwareanwendung 120 eingebettet ist, gemäß beispielhafter Ausführungsformen der vorliegenden Offenbarung. Bei dem Beispiel der 3 kann der Navigationsdienst gerade Navigationswegbeschreibungen mit Routenführung mit der grafischen Anwenderschnittstellenkomponente 200, wenn der Anwender oder das Fahrzeug eine Route durchläuft, in Echtzeit oder nahezu in Echtzeit liefern. Die grafische Anwenderschnittstellenkomponente 200 kann verschiedene Schnittstellenelemente zum Präsentieren von Navigationsinformation zu einem Anwender enthalten. Beispielsweise kann die grafische Anwenderschnittstellenkomponente 200 eine Karte 202 und eine in einem Linienzug auf der Karte 202 präsentierte Route 210 enthalten. Die grafische Anwenderschnittstellenkomponente 200 kann weiterhin Indizien 230 präsentieren, die eine aktuelle Position des Anwenders oder des Fahrzeugs anzeigen, der oder das entlang der Route 210 fährt. Die Indizien 230 können sich entlang der Route 210 bewegen, wenn sich der Anwender oder das Fahrzeug entlang der Route 210 bewegt.
  • Die grafische Anwenderschnittstellenkomponente 200 kann dem Anwender andere Information präsentieren, die bei einer Navigation nützlich sein kann. Beispielsweise kann die grafische Anwenderschnittstellenkomponente 200 weiterhin ein Navigationsanfangselement 220 enthalten, das die aktuelle Navigationsrichtung und andere Information, die zu einer aktuellen Position der Route gehört, anzeigen. Zusätzlich kann die grafische Anwenderschnittstellenkomponente 200 EDT-Information 232 anzeigen, wie beispielsweise geschätzte Minuten oder eine geschätzte Entfernung bis zur Ankunft beim nächsten Wegpunkt. Gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung können zur Karte 202 gehörende Daten, die Route 210, etc. von einem Navigationsdatenprovider 114 oder einer anderen Quelle über eine API 130 erhalten werden, die durch die Softwareanwendung 120 aufgerufen wird. Eine oder mehrere Ereignislistenerschnittstellen, die als Teil der Navigations-Programmierungsschnittstelle 130 implementiert sind, können verwendet werden, um die Navigationsinformation einem Updaten zu unterziehen, wenn sich der Anwender oder das Fahrzeug entlang der Route bewegt.
  • Die beispielhaften grafischen Anwenderschnittstellenkomponenten 200 können angezeigt werden, wenn die API 130 in einem Navigationsmode arbeitet. In den Navigationsmode kann basierend auf verschiedenen Ereignissen eingetreten werden, wie beispielsweise das Spezifizieren von einer oder mehreren Wegpunkten und/oder der Empfang einer Anwendereingabe, die den Wunsch signalisiert, einen Navigationsmode zu beginnen. Bei einigen Ausführungsformen kann die grafische Anwenderschnittstellenkomponente 200, wenn sie im Navigationsmode arbeitet, die Route 210 anzeigen. Wenn sie nicht im Navigationsmode arbeitet, kann die grafische Anwenderschnittstellenkomponente 200 einfach eine Ansicht einer Karte von oben nach unten oder eine andere geeignete Ansicht der Karte anzeigen.
  • Die 2 und 3 zeigen eine beispielhafte Implementierung einer grafischen Anwenderschnittstellenkomponente, die zu einem Navigationsdienst gehört, der in einer Anwendung 120 eingebettet sein kann, und zwar unter Verwendung einer Navigations-API 130 gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung. Der Navigationsdienst kann Navigationsinformation in anderen geeigneten Formen präsentieren, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen.
  • Nimmt man wieder Bezug auf 1, kann die API 130 konfiguriert sein, um mit einer Routing Engine 140 eine Schnittstelle zu bilden, die durch den Navigationsdatenprovider 114 implementiert ist. Die Routing Engine 140 kann konfiguriert sein, um beispielsweise Routen zu einer oder mehreren Wegpunkten zu berechnen, auf Kartografiedaten zuzugreifen, Navigationsdaten basierend auf verschiedenen Navigationsereignissen einem Updaten zu unterziehen und auf Anfragen nach Navigationsdaten von der API 130 zu antworten. Bei einigen Ausführungsformen kann der Navigationsdatenprovider 114 einen oder mehrere Server, wie beispielsweise Webserver, enthalten. Der eine oder die mehreren Server kann oder können einen oder mehrere Prozessoren und eine oder mehrere Speichervorrichtungen enthalten. Die eine oder die mehreren Speichervorrichtungen kann oder können ein computerlesbare Anweisung speichern, um beispielsweise die Routing Engine 140 zu implementieren. Bei einigen Ausführungsformen kann die Routing Engine 140 auf Daten zugreifen, die beispielsweise zu einem geografischen Informationssystem 115 gehören. Das geografische Informationssystem 115 kann Daten enthalten, die durch geografische Koordinaten von seinen Elementen indiziert sind. Die zum geografischen System 115 gehörenden Daten können beispielsweise Kartendaten, Routendaten, geografische bildliche Darstellung, zu verschiedenen Wegpunkten gehörende Daten (z. B. Geschäftsauflistungsnamen, Adressen, geografische Koordinaten, etc.) und andere Daten enthalten.
  • Die Anwendung 120 kann einen Navigationsdienst durch Interagieren mit dem Navigationsdatenprovider 114 über die API 130 über das Netzwerk 116 implementieren. Das Netzwerk 116 kann irgendein Typ von Kommunikationsnetzwerk sein, wie beispielsweise ein lokales Netz (z. B. Intranet), ein Femnetz (z. B. Internet), ein zellulares Netzwerk oder eine Kombination davon. Das Netzwerk 116 kann auch eine direkte Verbindung enthalten. Im Allgemeinen kann eine Kommunikation über das Netzwerk 116 unter Verwendung von irgendeinem Typ einer verdrahteten und/oder drahtlosen Verbindung unter Verwendung einer Vielfalt von Kommunikationsprotokollen (z. B. TCP/IP, HTTP, SMTP, FTP), Codierungen und Formaten (z. B. HTML, XML) und/oder Schutzschemen (z. B. VPN, sicheres HTTP, SSL) getragen werden.
  • 4 zeigt eine beispielhafte Anwendervorrichtung 112, die konfiguriert ist, um eine Navigations-API 130 gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung zu implementieren. Wie es gezeigt ist, enthält die Anwendervorrichtung 112 einen Anweisungsspeicher 152, einen oder mehrere Prozessoren 154, die konfiguriert sind, um im Speicher 152 gespeicherte Anweisungen auszuführen, eine Anzeigevorrichtung 156, eine Netzwerkschnittstelle 158, die Netzwerkkommunikationen unterstützt, und einen Speicherungsspeicher 160. Der Klarheit halber sind der Anweisungsspeicher 152 und der Speicherungsspeicher 160 separat dargestellt. Es wird jedoch verstanden werden, dass die Komponenten 152 und 160 auch Bereiche innerhalb desselben Speichermoduls sein können. Allgemeiner kann die Anwendervorrichtung 112 einen oder mehrere zusätzliche Prozessoren, Speichervorrichtungen, Netzwerkschnittstellen enthalten, die separat oder auf einem selben Chip oder einer selben Leiterplatte vorgesehen sein können. Weiterhin können die Komponenten 152 und 160 einen persistenten Speicher (z. B. einen Flash-Speicher), einen flüchtigen Speicher (z. B. RAM) oder beides oder einen anderen geeigneten Speicher enthalten.
  • Der Anweisungsspeicher 152 kann Gruppen von Anweisungen eines Betriebssystems (OS) 170, eine Navigations-API 130 und eine Softwareanwendung 120 speichern. Das OS 170 kann ein mobiles OS sein, das spezifisch für mobile Vorrichtungen entwickelt ist. Als solches kann das OS 170 Funktionen enthalten, die zulassen, dass die Softwareanwendung auf Daten, wie beispielsweise Parameter eines drahtlosen Netzwerks (z. B. eine Identität des drahtlosen Netzwerks, eine Dienstqualität) zugreift, sowie solche Funktionen wie Telefonie, Lokalisierungsbestimmung (z. B. über das globale Positioniersystem (GPS) oder WLAN), Datenaufrufentstehung des drahtlosen Netzwerks, etc. aufruft. Bei anderen Implementierungen ist das OS 170 ein allgemeines Betriebssystem, das auf sowohl mobilen als auch stationären Vorrichtungen arbeitet, wie beispielsweise Smartphones und Desktopcomputern. Bei einigen beispielhaften Implementierungen enthält das OS ein durch Google Inc. entwickeltes mobiles Betriebssystem Android® oder ein ähnliches Betriebssystem oder basiert darauf, um eine Android-Betriebsplattform zu Implementieren. Jedoch können andere ähnliche Systeme verwendet werden, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen.
  • Die Softwareanwendung 120 kann beispielsweise eine Kartografieanwendung, eine Navigationsanwendung, eine Fahrgemeinschaftsanwendung, eine Anwendung zum Unterstützen einer Auslieferung, eine soziale Medienanwendung, etc. sein. Weiterhin kann die Softwareanwendung 120 eine Web-Browseranwendung sein, die die Navigations-API 130 aufruft, um Navigationsinformation innerhalb eines zugeteilten Teilbereichs eines Browser-Fensters anzuzeigen. Im Allgemeinen kann die Navigations-API 130 irgendeiner geeigneten Softwareanwendung verfügbar gemacht werden, die auf der Anwendervorrichtung 120 ausführt. Ebenso können multiple unterschiedliche Softwareanwendungen die Navigations-API 130 aufrufen.
  • Wie es oben diskutiert ist, kann die Softwareanwendung 120 die Navigations-API 130 aufrufen, um einen Navigationsdienst in die Softwareanwendung 120 einzubetten. Beispielsweise kann bei einem Beispiel eine Softwareanwendung 120 einen oder mehrere Wegpunkte zur Navigations-API 130 tiefem. Die Navigations-API 130 kann Navigationsdaten von einem entfernten Navigationsdatenprovider anfordern, um eine Navigationsroute basierend auf dem einen oder den mehreren Wegpunkten zu bestimmen. Die Navigations-API 130 kann Gruppen von Anweisungen enthalten, um die Anzeige von Navigationsinformation auf der mobilen Vorrichtung als Teil des Navigationsdienstes zu steuern. Die API 130 kann einen oder mehrere Ereignislistener enthalten, die verwendet werden, um die angezeigte Navigationsinformation beispielsweise basierend auf Anwenderlokalisierung einem Updaten zu unterziehen, wie sie durch ein als Teil der Anwendervorrichtung implementiertes Positioniersystem bestimmt ist.
  • Bei einigen Ausführungsformen kann das Positioniersystem eine oder mehrere Vorrichtungen oder eine Schaltung zum Bestimmen der Position einer Vorrichtung enthalten. Beispielsweise kann die Positioniervorrichtung eine aktuelle oder relative Position durch Verwenden eines Satelliten-Navigations-Positioniersystems (z. B. eines CPS-Systems, eines Galileo-Positioniersystems, des GLObalen Navigations-Satellitensystems (GLONASS), des BeiDou-Satelliten-Navigations- und Positioniersystems), eines Trägheitsnavigationssystems, eines Koppelnavigationssystems basierend auf einer IP-Adresse durch Verwenden einer Triangulation und/oder einer Nähe zu zellularen Sendetürmen oder WiFi-Hotspots, Signalfeuern und ähnlichem und/oder von anderen geeigneten Techniken zum Bestimmen einer Position bestimmen.
  • Die Navigations-API 130 kann als eine oder einige Funktionen, eine Datenstruktur, etc. implementiert sein. Weiterhin kann die API 130 einen compilierten Code enthalten, der direkt auf dem (den) Prozessor(en) 154 ausführt, oder, alternativ dazu, Anweisungen in irgendeiner anderen Form, wie beispielsweise einer Skriptsprache, die durch die Anwendung 120 während der Laufzeit interpretiert wird. Die API 130 enthält bei einer beispielhaften Implementierung gut dokumentierte Prototypen von einigen Funktionen, die ein Entwickler in den Code der Softwareanwendung 120 einschließen kann, sowie Anweisungen, die diese Funktionen implementieren. Bei einigen Ausführungsformen kann die API 130 dem Entwickler als statische Bibliothek zur Verfügung gestellt werden.
  • 5 zeigt ein Blockdiagramm von beispielhaften Gruppen von Anweisungen, die ein Entwickler verwenden kann, um die Navigations-API 130 gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung zu konfigurieren. Die Gruppen von Anweisungen können beispielsweise Initialisierungs- und Fehlerhandhabungsanweisungen 310 enthalten; Navigationsfragmentanweisungen 320, die Parameter spezifizieren können, um die Anzeige der visuellen Ausgabe des Navigationsdienstes zu steuern; verschieden Klassen 330, die in den Anweisungen spezifiziert sind, die zulassen, dass ein Entwickler beispielsweise Markierungen zu einer Karte hinzufügt und Wegpunkte spezifiziert; Navigatoranweisungen 350, die Parameter spezifizieren können, um die Implementierung des Navigationsdienstes zu steuern; und Navigationsdienstanweisungen 370, die Parameter spezifizieren können, um die Interaktion mit dem Navigationsdatenprovider zum Anfragen und Empfangen von Navigationsinformation (z. B. Routinginformation) zu steuern. Bei einigen Ausführungsformen können die Navigationsdienstanweisungen 370 auch die Logik enthalten, die verwendet wird, um den Navigationsdienst als Teil der Softwareanwendung zu implementieren (z. B. um Indizes, die eine Anwenderposition anzeigen, entlang einer Route zu bewegen).
  • Bei einigen Ausführungsformen kann die Navigations-API 130 wie folgt implementiert sein. Als erstes kann ein Entwickler einer Softwareanwendung die Navigationsfragmentklasse 320 zu ihrer Anwendung hinzufügen, um die visuelle Ausgabe (z. B. grafische Anwenderschnittstellenkomponente) des Navigationsdienstes anzuzeigen. Der Entwickler kann den Navigationsdienst durch Spezifizieren von einem oder mehreren Parametern in den Navigationsanweisungen 350 steuern. Wenn sie nicht im Navigationsmode ist, kann die Navigationsfraglassmentke 320 konfiguriert sein, um beispielsweise eine Übersichtskarte von oben nach unten anzuzeigen. Ein Aufrufen einer Gruppen-Wegpunktefunktion in den Navigatoranweisungen 350 (z. B. Navigator.set(Wapoint(...)) kann eine naationsroutvige in einem Linienzug auf einer Karte mit einer Markierung für jeden Wegpunkt. Der Entwickler kann eine Navigation zum Wegpunkt durch Aufrufen einer Navigationsmodeeintrittsfunktion in den Navigatoranweisungen 350 (z. B. Navigator.enterNavigationMode()) auslösen.
  • Der Navigationsmode kann andauern, bis der Wegpunkt erreicht ist (z. B. wie es durch einen Ereignislistener bestimmt wird) oder bis eine Navigationsmodeaustrittsfunktion in den Navigatoranweisungen 350 aufgerufen wird (z. B. Navigator.exitNavigationMode()). Bei einigen Implementierungen kann der Navigationsmode ohne einen Wegpunkt in einem freien Navigationsformat verwendet werden. In einem freien Navigationsformat kann die Lokalisierung eines Anwenders (z. B. basierend auf einem Positioniersystem der Anwendervorrichtung) verwendet werden, um die aktuelle Lokalisierung des Anwenders auf einer Karte einem Updaten zu unterziehen. Bei einigen Ausführungsformen kann der Entwickler Markierungen zu der Karte hinzufügen, und zwar unter Verwendung einer Kartenerlangungsfunktion, die in den Navigationsfragmentanweisungen 320 spezifiziert ist (z. B. NavigationFragment.getMap()).
  • Nimmt man Bezug auf 5, können die Initialisierungs- und Fehlerhandhabungsanweisungen 310 eine Eintrittsstelle für die API 130 sein, von welcher aus ein Entwickler einen Zugriff auf die Navigatoranweisungen 350 erhalten kann. Auf diese Weise kann die Initialisierungs- und Fehlerhandhabungslogik separat von der Navigationslogik gehandhabt werden. Die Initialisierungs- und Fehlerhandhabungsanweisungen 310 können einen API-Schlüssel erfordern, um den Entwickler zu autorisieren, die API zu verwenden. Die Initialisierungs- und Fehlerhandhabungsanweisungen 310 können auch erfordern, dass ein Anwender Ausdrücke und Bedingungen akzeptiert, die durch den Navigationsdatenprovider geliefert werden, bevor der Navigationsdienst verwendet wird.
  • Bei einigen Ausführungsformen können die Initialisierungs- und Fehlerhandhabungsanweisungen 310 wie folgt implementiert sein:
    Figure DE102016124464A1_0002
    Figure DE102016124464A1_0003
    Figure DE102016124464A1_0004
    Figure DE102016124464A1_0005
    Figure DE102016124464A1_0006
    Figure DE102016124464A1_0007
  • Die Navigationsfragmentanweisungen 320 können einen oder mehrere Parameter spezifizieren, um eine Implementierung der grafischen Anwenderschnittstellenkomponente zu steuern. Entwickler können die Navigationsfragmentanweisungen 320 hinzufügen, um die visuelle Ausgabe einer Navigation (z. B. eine interaktive Karte und Weisungen mit Routenführung) in Verbindung mit der Softwareanwendung anzuzeigen. Bei einigen Ausführungsformen können die Navigationsfragmentanweisungen 320 eher als ein Fragment in einer auf Android basierenden Betriebsplattform implementiert sein als als eine Ansicht, um die Komplexität zu reduzieren. Beispielsweise kann ein Verwenden einer Ansichtsimplementierung erfordern, dass der Entwickler Lebenszyklusverfahren (z. B. onCreate(), onResume(), etc.) manuell zu der Ansicht befördert. Bei einigen Ausführungsformen können die Navigationsfragmentanweisungen 320 als eine Ansicht implementiert sein, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen.
  • In einer Android-Betriebsplattform kann ein Fragment ein Teilbereich einer Anwenderschnittstelle einer Anwendung sein, die in eine Aktivität versetzt sein kann. Bei einigen Ausführungsformen können mehrere Fragmente als Teil einer Anwendung implementiert sein, um eine Anwenderschnittstelle mit mehreren Ausschnitten zu bilden. Ein Fragment kann seinen eigenen Lebenszyklus haben und kann seine eigenen Eingangsereignisse empfangen, die hinzugefügt oder entfernt werden können, während die Aktivität gerade in Betrieb ist bzw. läuft. Beispielhafte Aspekte der vorliegenden Offenbarung werden mit einem Implementieren der Navigationsfragmentanweisungen 320 in einer Android-Betriebsplattform zu Zwecken einer Illustration und Diskussion diskutiert. Die Navigationsfragmentanweisungen 320 können auf andere Weisen implementiert werden, um eine ähnliche Funktionalität zur Verfügung zu stellen, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen.
  • Die Navigationsfragmentanweisungen 320 können Parameter enthalten, die zulassen, dass ein Entwickler steuert, welche Aspekte der zum Navigationsdienst gehörenden grafischen Anwenderschnittstellenkomponente gezeigt werden. Beispielsweise kann der Entwickler die grafische Anwenderschnittstelle mit Bauherrenfunktion in den Navigationsfragmentanweisungen 320 bilden (z. B. NavigtionFragment.Builder). Bei einigen Ausführungsformen kann der Entwickler wählen, ob ein Navigationsanfang, ein Kompasselement, ETD-Information oder andere Information in Verbindung mit dem Navigationsdienst anzuzeigen ist.
  • Bei einer Ausführungsform kann die grafische Anwenderschnittstellenkomponente wie folgt gebildet sein:
    Figure DE102016124464A1_0008
  • Als ein weiteres Beispiel kann die grafische Anwenderschnittstellekomponente unter Verwendung von XML wie folgt gebildet sein:
    Figure DE102016124464A1_0009
  • Bei einigen Ausführungsformen kann eine Fragmentklassenschnittstelle wie folgt implementiert sein:
    Figure DE102016124464A1_0010
    Figure DE102016124464A1_0011
  • Bei alternativen Ausführungsformen kann die grafische Anwenderschnittstellenkomponente auch eher als eine Ansicht in einer Android-Betriebsplattform als als ein Fragment implementiert sein. Wenn die Navigationsansicht verwendet wird, können verschiedene Lebenszyklusereignisse von der Anwendungsaktivität weitergeleitet werden.
  • Beispielsweise kann bei einer Ausführungsform die Navigationsansicht wie folgt implementiert sein.
  • Figure DE102016124464A1_0012
  • Es kann nötig sein, dass die folgenden Lebenszyklusverfahren für eine Navigationsansichtsgruppe von Anweisungen weitergeleitet wird: onCreate, onStart, onResume, onPause, onStop, onDestroy, onConfigurationChanged, onSavelnstanceState.
  • Bei einigen Ausführungsformen kann die API 130 verschiedene Klassenanweisungen 330 enthalten, wie beispielsweise einen Kartenklasse, eine Wegpunkteklasse, eine Breitengrad/Längengrad-Klasse und eine Kameraklasse. Die Kartenklasse kann dafür sorgen, dass ein Entwickler Wegpunkte zu einer Karte hinzufügt. Die Kartenklasse kann auch verschiedene Funktionen enthalten, um die Darstellungen der Karte in der grafischen Anwenderschnittstellenkomponente zu steuern. Beispielsweise kann die Kartenklasse bei einigen Implementierungen wie folgt implementiert sein:
    Figure DE102016124464A1_0013
    Figure DE102016124464A1_0014
  • Die Wegpunkteklasse kann Wegpunkte aus verschiedenen Daten erzeugen oder spezifizieren, die die Lokalisierung des Wegpunktes anzeigen, wie beispielsweise eine Platzidentifikation, eine Adresse, Breitengrad/LängengradKoordinaten, semantischer Name oder eine andere Platzidentifikation. Bei einigen Implementierungen kann die Wegpunkteklasse wie folgt spezifiziert werden:
    Figure DE102016124464A1_0015
  • Die Breitengrad/Längengrad-Klasse kann dazu verwendet werden, eine Breitengrad/Längengrad-Variable zu erzeugen, die eine Platzlokalisierung basierend zumindest teilweise auf Daten anzeigt, die Breitengrad und Längengrad anzeigen. Bei einem Beispiel kann die Breitengrad/Längengrad-Klasse wie folgt implementiert sein:
    Figure DE102016124464A1_0016
  • Eine weitere beispielhafte Klasse, die implementiert werden kann, kann eine Kameraklasse sein, die dazu verwendet werden kann, die Position und die Perspektive der Karte einzustellen, die als Teil der Navigation gezeigt wird. Eine Bezugnahme auf die aktuelle Kamera kann unter Verwendung einer Schnittstelle für Erlangen einer Kamera erhalten werden, die als Teil des Navigationsfragments spezifiziert ist. Bei einem Beispiel kann die Kameraklasse wie folgt implementiert sein:
    Figure DE102016124464A1_0017
    Figure DE102016124464A1_0018
    Figure DE102016124464A1_0019
  • Die Navigatoranweisungen 350 können einen oder mehrere Parameter spezifizieren, um die Implementierung des Navigationsdienstes durch die Softwareanwendung zu steuern. Bei einigen Ausführungsformen können die Navigatoranweisungen 350 als ein Singleton bzw. eine einelementige Menge in einer Android-Betriebsplattform implementiert sein. Dies kann zulassen, dass der Entwickler die Navigatoranweisungen 350 implementiert, ohne dass eine Verwendung der Navigationsfragmentanweisungen 320 erforderlich ist. Als Ergebnis kann der Navigationsdienst Navigationsinformation (z. B. unter Verwendung von Audiobenachrichtigungen) ohne grafische Anwenderschnittstellenkomponente zur Verfügung stellen. Dies kann nützlich sein, wenn ein Anwender während eines Navigierens eine vollständige Bildschirmaufgabe über die Anwendung beendet, die die API 130 aufruft. Darüber hinaus kann es sein, dass es nicht nötig ist, mehr als eine Gruppe von Navigatoranweisungen zu einer gegebenen Zeit zu implementieren.
  • Die Navigatoranweisungen 350 können beispielsweise bestimmen, ob eine Route zu einer oder mehreren Zielort-Wegpunkten erfolgreich berechnet und empfangen worden ist, und kann konfiguriert sein, um Information zu liefern, die anzeigt, ob eine Route empfangen wurde oder ob es verschiedene Fehler (z. B. Netzwerkfehler) gab. Die Navigatoranweisungen 350 können weiterhin dazu verwendet werden, eine Fahrsimulation zu ermöglichen, die ein Fahren entlang einer berechneten Route simulieren kann. Die Navigatoranweisungen 350 können auch Parameter spezifizieren, die zu einer Audioführung gehören, um Audiohinweise oder Vibrationshinweise während einer Navigation zu liefern.
  • Bei einer beispielhaften Ausführungsform können die Navigatoranweisungen 350 wie folgt implementiert sein:
    Figure DE102016124464A1_0020
    Figure DE102016124464A1_0021
    Figure DE102016124464A1_0022
  • Gemäß beispielhaften Aspekten der vorliegenden Offenbarung können die Navigatoranweisungen 350 eine oder mehrere Ereignislistenerschnittstellen 360 implementieren. Die Ereignislistenerschnittstellen 360 können mit den Navigatoranweisungen 350 registriert sein. Die Ereignislistenerschnittstellen 360 können für alle Rückrufe verwendet werden, um Daten zu erhalten, die zu einem oder mehreren Navigationsereignissen gehören, um die Navigationsinformation einem Updaten zu unterziehen, die als Teil des Navigationsdienstes geliefert wird. Ein Navigationsereignis kann irgendein Ereignis sein, das die Navigationsinformation beeinflussen kann, die dem Anwender präsentiert wird. Beispielsweise kann das Navigationsereignis eine Änderung bezüglich einer Anwenderposition sein, eine Änderung bezüglich Verkehrsbedingungen, eine Änderung bezüglich einem oder mehreren Wegpunkten, eine Änderung bezüglich Routeninformation, eine Änderung bezüglich ETD-Information, etc. Auf diese Weise können die Ereignislistener verwendet werden, um die Navigationsinformation einem Updaten zu unterziehen, die als Teil des Navigationsdienstes präsentiert wird, wenn ein Anwender entlang einer Route reist oder navigiert. Bei einem Beispiel können die Ereignislistenerschnittstellen 360 mit den Navigatoranweisungen 350 wie folgt registriert sein:
    Figure DE102016124464A1_0023
    Figure DE102016124464A1_0024
  • 6 zeigt ein Blockdiagramm der einen oder der mehreren Ereignislistenerschnittstellen 360, die als Teil der Navigatoranweisungen 350 gemäß beispielhafter Ausführungsformen der vorliegenden Offenbarung implementiert sein können. Wie es in 6 dargestellt ist, können die eine oder die mehreren Ereignislistenerschnittstellen 360 eine Lokalisierungslistenerschnittstelle 362, eine Route-geändert-Listenerschnittstelle 364, eine Ankunftslistenerschnittstelle 366 und/oder eine ETD-Listenerschnittstelle 368 enthalten. Die Ereignislistenerschnittstellen 360 können konfigurierbare Ereignislistenerschnittstellen 360 sein, so dass der Entwickler verschiedene Einstellungen und Parameter der Ereignislistenerschnittstelle 360 in den zu der API 130 gehörenden Anweisungen spezifizieren kann, wie beispielsweise in den Navigatoranweisungen 350. Die Lokalisierungslistenerschnittstelle 362 kann konfiguriert sein, um (z. B. durch die Navigatorschnittstelle) aufgerufen zu werden, um eine aktuelle Lokalisierung eines Anwenders im Navigationsdienst einem Updaten zu unterziehen. Auf diese Weise kann der Navigationsdienst die aktuelle Lokalisierung des Anwenders entlang einer Navigationsroute anzeigen, wenn die aktuelle Lokalisierung des Anwenders einem Updaten unterzogen ist. Eine beispielhafte Lokalisierungslistenerschnittstelle 362 kann wie folgt implementiert sein:
    Figure DE102016124464A1_0025
  • Die Route-geändert-Listenerschnittstelle 364 kann konfiguriert sein, um aufgerufen zu werden, um Routeninformation einem Updaten zu unterziehen, wenn sich die berechnete Route ändert. Beispielsweise kann die Routeninformation einem Updaten unterzogen werden, wenn eine bessere Route berechnet wird oder wenn ein Anwender von einer empfohlenen Route abweicht. Die durch die Route-geändert-Listenerschnittstelle 364 zur Verfügung gestellte Route kann in einem Linienzug zur Anzeige in Verbindung mit einer Karte als Teil des Navigationsdienstes zur Verfügung gestellt werden. Eine beispielhafte Routegeändert-Listenerschnittstelle 364 kann wie folgt implementiert sein:
    Figure DE102016124464A1_0026
  • Die Ankunftslistenerschnittstelle 366 kann aufgerufen werden, um zu signalisieren, wenn ein Anwender an einem spezifizierten Wegpunkt angekommen ist. Beispielsweise kann die Ankunftslistenerschnittstelle 366 aufgerufen werden, um einen Navigationsmode zu verlassen, wenn ein Anwender bei einem Wegpunkt angekommen ist. Eine beispielhafte Ankunftslistenerschnittstelle 366 kann wie folgt implementiert sein:
    Figure DE102016124464A1_0027
  • Die ETD-Listenerschnittstelle 368 (z. B. eine Listenerschnittstelle für übrige Zeit oder übrige Entfernung) kann aufgerufen werden, wenn eine Zeit, die übrig ist, oder eine Entfernung, die übrig ist, zu einem Wegpunkt sich um mehr als eines Schwelle geändert hat. Die Schwelle kann als ein Parameter in den Navigatoranweisungen 350 spezifiziert sein. Die ETD-Information (z. B. Zeit, die übrig ist, oder Entfernung, die übrig ist) kann sich als Ergebnis von Navigationsereignissen, wie beispielsweise eine Anwenderbewegung (z. B. eine Änderung bezüglich einer Anwenderposition), eine Änderung bezüglich Verkehrsbedingungen, eine Änderung bezüglich einer Route, eine Änderung bezüglich einem oder mehreren Wegpunkten, oder wenn die übrige Zeit oder die übrige Entfernung zum ersten Mal bekannt werden, ändern. Die einem Updaten unterzogene ETD-Information kann dem Anwender als Teil des Navigationsdienstes, zum Beispiel als Teil einer grafischen Anwenderschnittstellenkomponente oder durch eine Audioführung oder eine andere Benachrichtigung, präsentiert werden. Eine beispielhafte ETD-Listenerschnittstelle 368 kann wie folgt implementiert sein:
    Figure DE102016124464A1_0028
  • In 5 gezeigte Navigationsdienstanweisungen 370 können tatsächlich den Navigationsdienst antreiben (z. B. können die Logik für den Navigationsdienst zur Verfügung stellen) und können durch die in den Navigatoranweisungen 350 aufgezeigten Parameter gesteuert werden. Die Navigationsdienstanweisung 370 kann eine Interaktion mit einer Routing Engine steuern, um Navigationsinformation basierend auf Parametern zur Verfügung zu stellen, die in den Navigatoranweisungen 350 spezifiziert sind, und Navigationsereignisse, wie es durch eine oder mehrere Ereignislistenerschnittstellen 360 bestimmt ist. Bei einigen Ausführungsformen spezifizieren Entwickler Parameter für die Navigationsdienstanweisungen 370 nicht und die Navigationsdienstanweisungen agieren als eine interne Schnittstelle für die API 130. Entwickler können die Navigationsdienstanweisungen 370 beispielsweise durch Hinzufügen einer Referenz zu den Navigationsanweisungen zu manifest.xml für die Softwareanwendung implementieren. Beispielsweise können die Navigationsdienstanweisungen 370 wie folgt implementiert sein:
    Figure DE102016124464A1_0029
  • 7 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens (400) zum Integrieren eines Navigationsdienstes in eine Softwareanwendung unter Verwendung einer Navigations-API gemäß beispielhafter Ausführungsformen der vorliegenden Offenbarung. Das Verfahren (400) kann unter Verwendung von beispielsweise der in 5 gezeigten API 130 implementiert sein. 7 zeigt Schritte, die in einer bestimmten Reihenfolge durchgeführt werden, zu Illustrations- und Diskussionszwecken. Fachleute auf dem Gebiet werden, unter Verwendung der hierin zur Verfügung gestellten Offenbarung, verstehen, dass verschiedene Schritte von irgendeinem der hierin offenbarten Verfahren angepasst, modifiziert, neu geordnet, weggelassen und/oder erweitert werden können, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen.
  • Bei (402) kann das Verfahren ein Zugreifen auf und Eingliedern von Daten (z. B. Dateien), die zu der Navigations-API 130 gehören, in die Softwareanwendung enthalten. Beispielsweise kann ein Anwender zur Navigations-API 130 gehörende Dateien beispielsweise über ein Netzwerk (z. B. das Internet) herunterladen und er kann die Navigations-API-Dateien in einem Unterverzeichnis unter einem zu der Softwareanwendung gehörenden Gradle-Root-Verzeichnis zur Verfügung stellen. Zu der Navigations-API 130 gehörende Bibliotheken und Abhängigkeiten einer dritten Partei können zur Softwareanwendung hinzugefügt werden.
  • Bei (404) kann ein Zugriffsschlüssel zum Freigeben der Navigations-API 130 erhalten werden. Bei einigen Ausführungsformen kann der Zugriffsschlüssel vom Navigationsdatenprovider erhalten werden. Der Zugriffsschlüssel kann zur Softwareanwendung hinzugefügt werden, beispielsweise zu zu der Softwareanwendung gehörendem androidmanifest.xml.
  • Bei (406) kann der Entwickler die zum Navigationsdienst gehörende grafische Anwenderschnittstellenkomponente durch Spezifizieren von Parametern in der Navigationsfragmentgruppe von Anweisungen 320 bilden (oder, bei einigen Ausführungsformen, einer Navigationsansichtsgruppe von Anweisungen). Dies kann eine interaktive Karte und eine grafische Anwenderschnittstellenkomponente einer Navigation mit Routenführung zur Softwarenwendung hinzufügen.
  • Bei (408) kann der Entwickler Initialisierungs- und Fehlerhandhabungs-Anweisungen verwenden, um die Navigations-API 130 zu initialisieren. Wenn die Navigations-API einmal initialisiert ist, können die Navigatoranweisungen 350 verwendet werden, um den Navigationsdienst zu steuern und zu konfigurieren, wie es bei (410) gezeigt ist. Beispielsweise können verschieden Funktionen spezifiziert werden, um zu bestimmen, wann ein Navigationsmode zu starten ist und wann er zu verlassen ist. Gemäß bestimmten Ausführungsformen der vorliegenden Offenbarung kann oder können ein oder mehrere Ereignislistenerschnittstellen 360 in den Navigatoranweisungen 350 enthalten sein, um Navigationsereignisse, wie beispielsweise Ankunft, Routenänderungen, Anwenderpositionsänderungen, ETD-Informationsänderungen, etc., einzufangen. Bei (412) kann das Verfahren eine Bilden und Testen der Softwareanwendung mit dem integrierten Navigationsdienst enthalten.
  • Bei einigen Ausführungsformen kann die Navigations-API 130 konfiguriert sein, um eine Mehrfachwegpunkte-Führung unter einer Vielzahl von unterschiedlichen Wegpunkten unterzubringen. Beispielsweise zeigt 8 ein Blockdiagramm einer beispielhaften Navigations-API 130, die konfiguriert ist, um eine Mehrfachwegpunkte-Führung unterzubringen. Die Navigations-API 130 kann ähnlich der in 5 gezeigten Navigations-API 130 sein. Beispielsweise kann die Navigations-API 130 der 8 Initialisierungs- und Fehlerhandhabungsanweisungen 310, Navigationsfragmentanweisungen 320 (oder bei einigen Ausführungsformen Navigationsansichtsanweisungen), verschiedene Klassenanweisungen 330 (z. B. Kartenklasse, Wegpunkteklasse, Breitengrad/Längengrad-Klasse, Kameraklasse, etc.) enthalten. Zusätzlich kann die API 130 Navigatoranweisungen 350 und Navigationsdienstanweisungen 370 enthalten. Die Navigatoranweisungen 350 können Parameter spezifizieren, um die Implementierung des Navigationsdienstes zu steuern, und Navigationsdienstanweisungen 370, die die Interaktion mit dem Navigationsdatenprovider zum Anfordern und Empfangen von Navigationsinformation steuern.
  • Die Navigatoranweisungen 350 können eine oder mehrere Mehrfachwegpunkte-Funktionen 510 und eine oder mehrere Mehrfachwegpunkte-Ereignislistenerschnittstellen 520 enthalten, um eine Mehrfachwegpunkte-Führung durch den Navigationsdienst unterzubringen. Die Mehrfachwegpunkte-Ereignislistenerschnittstellen 520 können für Rückrufe verwendet werden, um Daten zu erhalten, die zu einem oder mehreren Navigationsereignissen gehören, um die als Teil des Navigationsdienstes zur Verfügung gestellte Navigationsinformation einem Updaten zu unterziehen. Beispielsweise kann das Navigationsereignis eine Änderung bezüglich einer Anwenderposition, eine Änderung bezüglich Verkehrsbedingungen, eine Änderung bezüglich einer oder mehrerer der Vielzahl von Wegpunkten, eine Änderung bezüglich einer Routeninformation von einem oder mehreren Routensegmenten in einer Mehrfachwegpunkte-Route, eine Änderung bezüglich einer ETD-Information zu einem nächsten Zielort in einer Mehrfachwegpunkte-Route, etc. sein.
  • Die Mehrfachwegpunkte-Funktionen 510 können verwendet werden, um verschiedene Funktionen zu implementieren, die zu einer Mehrfachwegpunkte-Führung gehören. Beispielsweise können die Mehrfachwegpunkte-Funktionen verwendet werden, um einen oder mehrere Wegpunkte einzustellen, um zu veranlassen, dass eine Mehrfachwegpunkte-Route auf Lokalisierungsinformation zugreift, die zu jeder der Vielzahl von Wegpunkten entlang der Mehrfachwegpunkte-Route gehört, auf Routensegmente zwischen Wegpunkten entlang der Mehrfachwegpunkte-Route zugreift, und darauf zugreift, wo ein Anwender entlang einer Mehrfachwegpunkte-Route während einer bestimmten Navigationssession gewesen ist.
  • 9 zeigt ein Blockdiagramm der verschiedenen Mehrfachwegpunkte-Funktionen 510 und Ereignislistenerschnittstellen 520, die als Teil der oder registriert mit den Navigatoranweisungen 350 verwendet werden können, um eine Mehrfachwegpunkte-Navigation gemäß beispielhaften Ausführungsformen der vorliegenden Offenbarung zu implementieren. Beispielsweise können die Mehrfachwegpunkte-Funktionen 510 eine oder mehrere Mehrfachwegpunkte-Funktionen 512 enthalten, die verendet werden können, um eine Vielzahl von Wegpunkten für eine Mehrfachwegpunkte-Route einzustellen und zu managen. Bei einer Ausführungsform können die Mehrfachwegpunkte-Funktionen 512 eine eingestellte Mehrfachwegpunkte-Funktion, eine eingestellte Einzelwegpunkt-Funktion, eine Fortsetzung-zum-Nächsten-Wegpunkte-Funktion und eine Löschungs-Wegpunkt-Funktion enthalten. Die eingestellte Mehrfachwegpunkte-Funktion kann konfiguriert sein, um eine Vielzahl von Wegpunkten für eine Mehrtachwegpunkte-Route einzustellen, die über eine Liste von Wegpunkten eingegeben ist. Die eingestellte Mehrtachwegpunkte-Funktion wird die Mehrfachwegpunkte (gegenüber irgendwelchen vorherigen Wegpunkten übergeordnet) einstellen, die in der in der Liste spezifizierten Reihenfolge besucht werden können. Die Funktion kann eine Zukunft für eine Routenstatusfunktion zurückbringen (die den Status einer berechneten Route bestimmt). Dies kann sich zu OK auflösen, wenn eine Mehrfachwegpunkte-Route für die Mehrfachwegpunkte erzeugt ist. Ein Fehlercode kann für ein Netzwerk oder Quotenfehler erzeugt werden. Bei einer Ausführungsform kann die Mehrtachwegpunkte-Funktion in den Navigatoranweisungen 350 wie folgt implementiert sein:
    Figure DE102016124464A1_0030
  • Eine eingestellte Einzelwegpunkt-Funktion kann als ein Nützlichkeitsverfahren verwendet werden, um einen einzelnen Wegpunkt für eine Navigationsroute einzustellen. Bei einer Ausführungsform kann die eingestellte Einzelwegpunkt-Funktion in den Navigatoranweisungen 350 wie folgt implementiert sein:
    ListenbleResultFuture<RouteStatus>setDestination(Waypoint destination)
  • Eine Fortsetzung-zum-Nächsten-Wegpunkte-Funktion kann verwendet werden, um einen nächsten Wegpunkt in einem Mehrfachwegpunkte-Navigationsabschnitt zu initiieren. Bei einigen Ausführungsformen kann es erforderlich sein, dass diese Funktion explizit aufgerufen wird. Bei diesen Ausführungsformen kann sich die API nicht automatisch weiter zum nächsten Wegpunkt bewegen. Die Fortsetzung-zum-Nächsten-Zielort-Funktion kann eine Ausnahme zurückbringen, wenn es keine Wegpunkte gibt, die in der Mehrfachwegpunkte-Route übrigbleiben. Bei einigen Ausführungsformen kann die Fortsetzung-zum-Nächsten-Zielort-Funktion in den Navigatoranweisungen 350 wie folgt implementiert sein:
    void continueToNextDestination() throws NoNextDestinationException to Waypoint continueToNextDestination()
  • Eine Löschungs-Wegpunkt-Funktion kann verwendet werden, um einen oder mehrere (z. B. alle) zuvor eingestellten Wegpunkte zu löschen. Diese Funktion kann auch eine Navigation stoppen, wenn gerade eine Navigation in Betrieb war. Bei einigen Ausführungsformen kann die Löschungs-Wegpunkt-Funktion in den Navigatoranweisungen 350 wie folgt implementiert sein:
    void clearDestination()
  • Wie es in 9 gezeigt ist, können der eine oder die mehreren Ereignislistener 520 eine Ankunftsereignislistenerschnittstelle 522 enthalten. Die Ankunftsereignislistenerschnittstelle kann aufgerufen werden, wenn ein Anwender bei einem bestimmten Wegpunkt angekommen ist. Bei einigen Ausführungsformen kann die Ankunftsereignislistenerschnittstelle 522 mit den Navigatoranweisungen 350 wie folgt registriert sein:
    void Arrival Listener.onArrivalAtWaypoint(Waypoint waypoint)
  • Der eine oder die mehreren Ereignislistener 520 können weiterhin eine ETD-Listenerschnittstelle 524 enthalten. Die ETD-Listenerschnittstelle kann aufgerufen werden, um ETD-Information einem Updaten zu unterziehen, wenn eine Entfernung, die übrigbleibt, oder eine Zeit, die übrigbleibt, zu einem nächsten Wegpunkt in der Vielzahl von Wegpunkten einer Mehrfachwegpunkte-Route sich um mehr als eine Schwelle ändert. Die Schwelle kann durch den Entwickler in den Navigatoranweisungen spezifiziert werden. Beispielsweise kann die ETD-Ereignisschnittstelle 524 bei einigen Ausführungsformen mit den Navigatoranweisungen 350 wie folgt registriert sein:
    void setRemainingTimeOrDistanceChangedListener(int seconds, in metres, listener)
    Figure DE102016124464A1_0031
    void RemainingTimeOrDistanceChangedListener.onChanged()
    Figure DE102016124464A1_0032
  • Die Mehrfachwegpunkte-Funktion 510 kann eine Erlangen-ETD-Funktion 514 enthalten. Die Erlangen-ETD-Funktion kann ETD-Information (z. B. übrige Zeit und/oder übrige Entfernung) für einen spezifizierten Wegpunkt entlang einer Mehrfachwegpunkte-Route erhalten. Bei einigen Ausführungsformen kann die Erlangen-ETD-Funktion 514 in den Navigatoranweisungen 350 wie folgt implementiert sein:
    Figure DE102016124464A1_0033
  • Die Mehrfachwegpunkte-Funktionen 510 können weiterhin eine Erlangen-nächste-ETD-Funktion enthalten. Die Erlangen-nächste-ETD-Funktion kann ETD-Information (z. B. übrige Zeit und/oder übrige Entfernung) zu einem nächsten Wegpunkt in der Mehrfachwegpunkte-Route zurückbringen. Wenn es keine nächsten Wegpunkte gibt, kann die Funktion Null zurückbringen. Bei einigen Ausführungsformen kann die Erlangen-nächste-ETD-Funktion in den Navigatoranweisungen 350 wie folgt implementiert sein:
    Figure DE102016124464A1_0034
  • Die Ereignislistenerschnittstelle 520 kann weiterhin eine Routegeändert-Ereignislistenerschnittstelle 526 enthalten. Die Route-geändert-Ereignislistenerschnittstelle 526 kann mit den Navigatoranweisungen registriert sein, um Updates zur Verfügung zu stellen, wenn sich eine Mehrfachwegpunkte-Route ändert. Die Route-geändert-Ereignislistenerschnittstelle 526 kann aufgerufen werden, wenn sich irgendein Routensegment einer Mehrfachwegpunkte-Navigationsroute ändert. Beispielsweise kann die Route-geändert-Ereignislistenerschnittstelle 526 aufgerufen werden, wenn sich die anfängliche Mehrfachwegpunkte-Route ändert, wenn der Anwender manuell eine andere Navigationsroute auswählt, etc. Bei einigen Ausführungsformen kann die Routegeändert-Ereignislistenerschnittstelle 526 in den Navigatoranweisungen 350 wie folgt implementiert sein:
    void setRouteChanged Listener(RouteChangedListener listener)
    Figure DE102016124464A1_0035
    Figure DE102016124464A1_0036
  • Bei einigen Ausführungsformen ist die ETD-Information (z. B. TimeAnd-Distance) ein unveränderbarer Typ. Beispielsweise kann TimeAndDistance wie folgt implementiert sein:
    Figure DE102016124464A1_0037
  • Die Mehrfachwegpunkte-Funktionen 510 können Erlangen-Routensegment-Funktionen 516 enthalten. Die Erlangen-Routensegment-Funktionen können eine Erlangen-aktuelles-Routensegment-Funktion enthalten, um ein aktuelles Routensegment zum nächsten Wegpunkt zurückzubringen, eine Listen-Routensegment-Funktion, um alle Routensegmente in einer Mehrfachwegpunkte-Navigationsroute aufzulisten, und eine Erlangen-gereistes-Routensegment-Funktion, um Routensegmente zu erlangen, über die bereits in der Mehrfachwegpunkte-Navigationsroute gereist ist. Bei einigen Ausführungsformen können die Erlangen-Routensegment-Funktionen wie folgt implementiert sein:
    Figure DE102016124464A1_0038
  • Bei einigen Ausführungsformen kann RouteSegment ein unabänderbarer Typ sein. Beispielsweise kann RouteSegment wie folgt implementier sein:
    Figure DE102016124464A1_0039
    Figure DE102016124464A1_0040
  • Die Ereignislistenerschnittstelle 520 kann weiterhin eine Lokalisierungslistenerschnittstelle 528 enthalten. Die Lokalisierungslistenerschnittstelle 528 kann ähnlich der Lokalisierungslistenerschnittstelle 362 sein, die unter Bezugnahme auf 6 diskutiert ist. Die Lokalisierungslistenerschnittstelle 528 kann konfiguriert sein, um (z. B. durch die Navigatorschnittstelle) aufgerufen werden, um eine aktuelle Lokalisierung eines Anwenders in dem Navigationsdienst einem Updaten zu unterziehen. Auf diese Weise kann der Navigationsdienst die aktuelle Lokalisierung des Anwenders entlang einer Mehrfachwegpunkte-Navigationsroute anzeigen, wenn die aktuelle Lokalisierung des Anwenders einem Updaten unterzogen ist.
  • Die hierin diskutierte Technologie nimmt Bezug auf Server, Datenbanken, Softwareanwendungen und andere computerbasierte Systeme, sowie Aktionen, die vorgenommen werden, und Information, die zu und von solchen Systemen gesendet wird. Fachleute auf dem Gebiet werden erkennen, dass die innewohnende Flexibilität von computerbasierten Systemen eine große Vielfalt von möglichen Konfigurationen, Kombinationen und Aufteilungen von Aufgaben und Funktionalität zwischen und unter den Komponenten zulässt. Beispielsweise können hierin diskutierte Serverprozesse unter Verwendung eines einzelnen Servers oder mehrerer Server, die in Kombination arbeiten, implementiert sein. Datenbanken und Anwendungen können auf einem einzelnen System oder über mehrere Systeme verteilt implementiert sein. Verteilte Komponenten können sequentiell oder parallel arbeiten.
  • Während der vorliegende Gegenstand in Bezug auf spezifische beispielhafte Ausführungsformen davon detailliert beschrieben worden ist, wird es so eingeschätzt, dass Fachleute auf dem Gebiet auf ein Erreichen eines Verstehens des Vorangehenden hin ohne weiteres Abänderungen an, Variationen von und Äquivalente zu solchen Ausführungsformen produzieren können. Demgemäß ist der Schutzumfang der vorliegenden Offenbarung eher beispielhaft als beschränkend und die Fachgebietsoffenbarung verhindert kein Enthaltensein von solchen Modifikationen, Variationen und/oder Hinzufügungen zu dem vorliegenden Gegenstand, wie es Fachleuten auf dem Gebiet ohne weiteres klar sein würde.

Claims (20)

  1. Nichtflüchtiges computerlesbares Medium, das Anweisungen speichert, die eine Anwendungsprogrammierungsschnittstelle zum Bereitstellen eines Navigationsdienstes als Teil einer auf einer Computervorrichtung ausgeführten Softwareanwendung implementieren, wobei die Computervorrichtung einen oder mehrere Prozessoren und eine Anzeigevorrichtung hat, wobei die Anwendungsprogrammierungsschnittstelle folgendes aufweist: eine erste Gruppe von Anweisungen, die einen oder mehrere erste Parameter spezifizieren, um die Implementierung eines Navigationsdienstes durch die Softwareanwendung zu steuern, wobei der Navigationsdienst konfiguriert ist, um einem Anwender der Softwareanwendung Navigationsinformation zur Verfügung zu stellen; eine zweite Gruppe von Anweisungen, die einen oder mehrere zweite Parameter spezifizieren, um eine Interaktion mit einer Routing Engine über die Anwendungsprogrammierungsschnittstelle zu steuern; wobei die erste Gruppe von Anweisungen eine oder mehrere konfigurierbare Ereignislistenerschnittstellen spezifiziert, wobei die konfigurierbaren Ereignislistenerschnittstellen betreibbar sind, um Daten zu erhalten, die zu einem oder mehreren Ereignissen gehören, um die als Teil des Navigationsdienste zur Verfügung gestellte Navigationsinformation einem Updaten zu unterziehen.
  2. Nichtflüchtiges computerlesbares Medium nach Anspruch 1, wobei die eine oder mehreren konfigurierbaren Ereignislistenerschnittstellen eine Lokalisierungslistenerschnittstelle aufweisen, die betreibbar ist, um aufgerufen zu werden, um eine aktuelle Lokalisierung eines Anwenders in dem Navigationsdienst einem Updaten zu unterziehen.
  3. Nichtflüchtiges computerlesbares Medium nach Anspruch 1 oder 2, wobei die eine oder mehreren konfigurierbaren Ereignislistenerschnittstellen eine Ankunftslistenerschnittstelle aufweisen, die betreibbar ist, um aufgerufen zu werden, wenn ein Anwender bei einem spezifizierten Wegpunkt angekommen ist.
  4. Nichtflüchtiges computerlesbares Medium nach Anspruch 1, 2 oder 3, wobei die eine oder mehreren konfigurierbaren Ereignislistenerschnittstellen eine Route-geändert-Listenerschnittstelle aufweisen, die betreibbar ist, um aufgerufen zu werden, wenn sich eine als Teil des Navigationsdienstes zur Verfügung gestellte Route ändert.
  5. Nichtflüchtiges computerlesbares Medium nach einem der vorangehenden Ansprüche, wobei die eine oder mehreren konfigurierbaren Ereignislistenerschnittstellen eine übrige-Zeit-oder-übrige-Entfernung-geändert-Listenerschnittstelle aufweisen, die betreibbar ist, um aufgerufen zu werden, wenn eine übrige Zeit oder eine übrige Entfernung zu einem Wegpunkt sich um mehr als eine Schwelle geändert hat, wobei die Schwelle als einer der ersten Parameter in der ersten Gruppe von Anweisungen spezifiziert ist.
  6. Nichtflüchtiges computerlesbares Medium nach einem der vorangehenden Ansprüche, wobei die erste Gruppe von Anweisungen einen oder mehrere erste Parameter aufweist, die betreibbar sind, um den Betrieb eines Audioführungsmodes in Verbindung mit dem Navigationsdienst zu spezifizieren.
  7. Nichtflüchtiges computerlesbares Medium nach einem der vorangehenden Ansprüche, wobei die Anwendungsprogrammierungsschnittstelle eine Wegpunkteschnittstelle zum Empfangen von einem oder mehreren Wegpunkten zur Navigation aufweist.
  8. Nichtflüchtiges computerlesbares Medium nach einem der vorangehenden Ansprüche, wobei die Anwendungsprogrammierungsschnittstelle eine dritte Gruppe von Anweisungen aufweist, die einen oder mehrere dritte Parameter spezifizieren, um die Anzeige einer grafischen Anwenderschnittstellenkomponente, die zum Navigationsdienst gehört, auf der Anzeigevorrichtung in Verbindung mit der Softwareanwendung zu steuern.
  9. Nichtflüchtiges computerlesbares Medium nach Anspruch 8, wobei die dritte Gruppe von Anweisungen die Anzeige einer durch die Routing Engine bestimmte Navigationsroute in einem Linienzug auf einer Karte spezifiziert, wenn sie in einem Navigationsmode ist.
  10. Nichtflüchtiges computerlesbares Medium nach Anspruch 8 oder 9, wobei die dritte Gruppe von Anweisungen die Anzeige einer Ansicht von oben nach unten einer Karte spezifiziert, wenn sie nicht in einem Navigationsmode ist.
  11. Nichtflüchtiges computerlesbares Medium nach Anspruch 8, 9 oder 10, wobei die dritte Gruppe von Anweisungen Parameter spezifiziert, um die Anzeige eines Navigationskopfelements oder eines Elements einer geschätzten Zeit einer Ankunft in Verbindung mit der grafischen Anwenderschnittstellenkomponente zu steuern.
  12. Nichtflüchtiges computerlesbares Medium nach Anspruch 8, 9, 10 oder 11, wobei die dritte Gruppe von Anweisungen als ein Fragment in einer Android-Betriebsplattform implementiert ist.
  13. Nichtflüchtiges computerlesbares Medium nach einem der vorangehenden Ansprüche, wobei die erste Gruppe von Anweisungen als einelementige Menge in einer Android-Betriebsplattform implementiert ist.
  14. Verfahren zum Integrieren eines Navigationsdienstes als Teil einer Softwareanwendung auf einer Computervorrichtung mit einem oder mehreren Prozessoren, wobei das Verfahren folgendes aufweist: Zugreifen auf Daten, die zu einer Navigations-Anwendungsprogrammierungsschnittstelle gehören; Eingliedern der zu der Navigations-Anwendungsprogrammierungsschnittstelle gehörenden Daten in die Softwareanwendung; Bilden einer grafischen Anwenderschnittstellenkomponente, die zum Navigationsdienst gehört, unter Verwendung einer ersten Gruppe von Anweisungen, die zu der Navigations-Anwendungsprogrammierungsschnittstelle gehören, wobei die erste Gruppe von Anweisungen einen oder mehrere Parameter spezifiziert, um die Anzeige der grafischen Anwenderschnittstellenkomponente, die zum Navigationsdienst gehört, auf der Anzeigevorrichtung in Verbindung mit einer Softwareanwendung zu steuern; und Konfigurieren des Navigationsdienstes unter Verwendung einer zweiten Gruppe von Anweisungen, die zur Navigations-Anwendungsprogrammierungsschnittstelle gehören, wobei die zweite Gruppe von Anweisungen einen oder mehrere Parameter spezifiziert, um die Implementierung des Navigationsdienstes durch die Softwareanwendung zu steuern; wobei die zweite Gruppe von Anweisungen einen oder mehrere konfigurierbare Ereignislistenerschnittstellen aufweist, wobei die konfigurierbaren Ereignislistenerschnittstellen betreibbar sind, um Daten zu erhalten, die zu einem oder mehreren Navigationsereignissen gehören, um als Teil des Navigationsdienstes zur Verfügung gestellte Information einem Updaten zu unterziehen.
  15. Verfahren nach Anspruch 14, wobei das Verfahren folgendes aufweist: Erhalten eines Zugriffsschlüssels zum Freigeben eines Betriebs der Navigations-Anwendungsprogrammierungsschnittstelle; und Hinzufügen des Zugriffsschlüssels zur Softwareanwendung.
  16. Verfahren nach Anspruch 14 oder 15, wobei das Verfahren ein initialisieren der Navigations-Anwendungsprogrammierungsschnittstelle unter Verwendung einer Gruppe von Initialisierungs- und Fehlerhandhabungsanweisungen aufweist, die zur Navigations-Anwendungsprogrammierungsschnittstelle gehören.
  17. Verfahren nach Anspruch 14, 15 oder 16, wobei die eine oder mehreren konfigurierbaren Ereignislistenerschnittstellen eine Lokalisierungslistenerschnittstelle aufweisen, die betreibbar ist, um aufgerufen zu werden, um eine aktuelle Lokalisierung eines Anwenders in dem Navigationsdienst einem Updaten zu unterziehen.
  18. Verfahren nach Anspruch 14, 15, 16 oder 17, wobei die eine oder mehreren konfigurierbaren Ereignislistenerschnittstellen eine übrige-Zeit-oder-übrige-Entfernung-geändert-Listenerschnittstelle aufweisen, die betreibbar ist, um aufgerufen zu werden, wenn eine übrige Zeit oder eine übrige Entfernung zu einem Wegpunkt sich um mehr als eine Schwelle geändert hat.
  19. Verfahren nach Anspruch 18, wobei ein Konfigurieren des Navigationsdienstes unter Verwendung einer zweiten Gruppe von Anweisungen ein Einstellen der Schwelle als Parameter in der zweiten Gruppe von Anweisungen aufweist.
  20. Computervorrichtung, die folgendes aufweist: eine Anzeigevorrichtung; eine Netzwerkschnittstelle; einen oder mehrere Prozessoren; und eine oder mehrere Speichervorrichtungen, wobei die eine oder mehreren Speichervorrichtungen computerlesbare Anweisungen speichern, die eine Anwendungsprogrammierungsschnittstelle implementieren, die durch eine Softwareanwendung aufgerufen wird, um Navigationsinformation von einem Navigationsdatenprovider zu erhalten, um einen Navigationsdienst als Teil der Softwareanwendung zur Verfügung zu stellen, wobei die Anweisungen folgendes aufweisen: eine erste Gruppe von Anweisungen, die einen oder mehrere erste Parameter spezifizieren, um die Implementierung eines Navigationsdienstes durch die Softwareanwendung zu steuern, wobei der Navigationsdienst einem Anwender der Softwarenwendung Navigationsinformation zur Verfügung stellt, wobei der eine oder die mehreren ersten Parameter dann steuern, wenn der Navigationsdienst in einen Navigationsmode eintritt und aus diesem austritt; eine zweite Gruppe von Anweisungen, die einen oder mehrere zweite Parameter spezifizieren, um eine Interaktion mit einer Routing Engine zu steuern, die durch den Navigationsdatenprovider über die Anwendungsprogrammierungsschnittstelle zur Verfügung gestellt ist, um die als Teil des Navigationsdienstes zur Verfügung gestellte Navigationsinformation zu erhalten, wenn sie im Navigationsmode ist; eine dritte Gruppe von Anweisungen, die einen oder mehrere dritte Parameter spezifizieren, um die Anzeige einer grafischen Anwenderschnittstellenkomponente, die zum Navigationsdienst gehört, auf der Anzeigevorrichtung in Verbindung mit einer Softwareanwendung zu steuern; wobei die erste Gruppe von Anweisungen eine oder mehrere konfigurierbare Ereignislistenerschnittstellen spezifizieren, wobei die konfigurierbaren Ereignislistenerschnittstellen betreibbar sind, um Daten zu erhalten, die zu dem einen oder den mehreren Ereignissen gehören, um die als Teil des Navigationsdienstes zur Verfügung gestellte Navigationsinformation während dem Navigationsmode einem Updaten zu unterziehen.
DE102016124464.3A 2016-03-25 2016-12-15 Navigations-anwendungsprogrammierungsschnittstelle Ceased DE102016124464A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/080,672 2016-03-25
US15/080,672 US10169110B2 (en) 2016-03-25 2016-03-25 Navigation application programming interface

Publications (1)

Publication Number Publication Date
DE102016124464A1 true DE102016124464A1 (de) 2017-09-28

Family

ID=57570649

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202016008228.1U Active DE202016008228U1 (de) 2016-03-25 2016-12-15 Navigations-Anwendungsprogrammierungsschnittstelle
DE102016124464.3A Ceased DE102016124464A1 (de) 2016-03-25 2016-12-15 Navigations-anwendungsprogrammierungsschnittstelle

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE202016008228.1U Active DE202016008228U1 (de) 2016-03-25 2016-12-15 Navigations-Anwendungsprogrammierungsschnittstelle

Country Status (6)

Country Link
US (1) US10169110B2 (de)
EP (1) EP3374867B1 (de)
CN (1) CN107229461B (de)
DE (2) DE202016008228U1 (de)
GB (1) GB2548949A (de)
WO (1) WO2017164942A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108088436B (zh) * 2017-11-30 2020-02-18 努比亚技术有限公司 一种导航信息提示方法、终端和计算机可读存储介质
CN109992293B (zh) * 2018-01-02 2023-06-20 深圳市宇通联发科技有限公司 Android系统组件版本信息的组装方法及装置
CN111435924B (zh) * 2019-01-14 2021-08-31 华为技术有限公司 调用应用程序接口的方法和装置
USD953371S1 (en) 2021-10-22 2022-05-31 BioReference Health, LLC Display screen or portion thereof with animated graphical user interface

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901594B1 (en) * 1999-04-23 2005-05-31 Nortel Networks Ltd. Apparatus and method for establishing communication between applications
US20010034754A1 (en) * 2000-03-17 2001-10-25 Elwahab Amgad Mazen Device, system and method for providing web browser access and control of devices on customer premise gateways
US7228225B1 (en) * 2002-09-18 2007-06-05 Garmin Ltd. Methods and systems to interface navigation operations
WO2006039660A2 (en) * 2004-10-01 2006-04-13 Networks In Motion, Inc. Off board navigation solution
CN101210959A (zh) * 2006-12-25 2008-07-02 中国移动通信集团公司 移动终端导航系统及方法
CN101183006B (zh) * 2007-11-14 2010-09-15 深圳市凯立德计算机系统技术有限公司 一种导航系统剩余时间确定方法、装置及导航系统
CN101441087A (zh) * 2007-11-23 2009-05-27 佛山市顺德区顺达电脑厂有限公司 根据重新演算的导航路径提示导航信息的方法
US8010285B1 (en) * 2008-09-30 2011-08-30 Denise Jason A Electronic navigation related technology
US9409052B2 (en) * 2008-10-03 2016-08-09 Adidas Ag Program products, methods, and systems for providing location-aware fitness monitoring services
EP2360958B1 (de) * 2010-02-12 2015-03-25 Accenture Global Services Limited Überwachung eines mobilen Netzwerks durch QoS-Messungen
KR20120067830A (ko) 2010-12-16 2012-06-26 한국전자통신연구원 모바일 웹 지도 서비스 시스템 및 이를 위한 서비스 단말
CN102023866A (zh) * 2010-12-16 2011-04-20 中兴通讯股份有限公司 基于Google Maps JavaScript API的地图控件及其生成方法
US9542241B2 (en) 2011-07-12 2017-01-10 Harman International Industries, Incorporated Navigation application interface
US20130231889A1 (en) * 2012-03-01 2013-09-05 Lockheed Martin Corporation Method and apparatus for an inertial navigation system
US20140101249A1 (en) 2012-07-10 2014-04-10 Mark Lampe Systems and Methods for Managing and Presenting Information
US8849942B1 (en) 2012-07-31 2014-09-30 Google Inc. Application programming interface for prefetching map data
US20140099973A1 (en) * 2012-10-04 2014-04-10 Libera, Inc. Systems and methods for finding mobile phone users
US20140114565A1 (en) 2012-10-22 2014-04-24 Adnan Aziz Navigation of a vehicle along a path
US8886460B1 (en) 2012-11-29 2014-11-11 Google Inc. Mobile device navigation state application programming interface
KR101474115B1 (ko) * 2013-03-26 2015-01-02 한양대학교 에리카산학협력단 싱글톤 패턴을 이용한 안드로이드 어플리케이션 데이터 흐름 관리 방법
US9958289B2 (en) * 2013-09-26 2018-05-01 Google Llc Controlling navigation software on a portable device from the head unit of a vehicle
US20150088642A1 (en) * 2013-09-26 2015-03-26 Mastercard International Incorporated Intelligent shopping cart service
US10054463B2 (en) * 2013-09-26 2018-08-21 Google Llc Systems and methods for providing navigation data to a vehicle
US10785172B2 (en) * 2014-05-23 2020-09-22 Verizon Patent And Licensing Inc. Method and apparatus for delivering messages based on user activity status
US20160054137A1 (en) * 2014-08-20 2016-02-25 Tomtom International B.V. Navigation device with enhanced widgets and applications
US9756139B2 (en) * 2014-12-30 2017-09-05 Facebook, Inc. Executing requests for services using shared location data
FR3046273B1 (fr) 2015-12-23 2018-10-12 Thales Architecture ouverte pour systeme de gestion de vol

Also Published As

Publication number Publication date
US10169110B2 (en) 2019-01-01
GB2548949A (en) 2017-10-04
EP3374867A1 (de) 2018-09-19
US20170277577A1 (en) 2017-09-28
GB201621270D0 (en) 2017-01-25
EP3374867B1 (de) 2024-01-31
DE202016008228U1 (de) 2017-06-07
CN107229461A (zh) 2017-10-03
WO2017164942A1 (en) 2017-09-28
CN107229461B (zh) 2022-01-14

Similar Documents

Publication Publication Date Title
DE102016124474A1 (de) Navigations-anwendungsprogrammierungsschnittstelle zum unterbringen einer mehrfachwegpunkte-führung
DE102006046969B4 (de) Straßenkartendaten-Erzeugungsverfahren
DE102016124464A1 (de) Navigations-anwendungsprogrammierungsschnittstelle
DE112015005707T5 (de) Darstellung von navigationsinformation innerhalb einer sekundären benutzeroberfläche eines mobilen geräts
DE202011110851U1 (de) Vorrichtung der Zielführung
DE202011110900U1 (de) Systeme zum Sammeln und Bereitstellen von Kartenbildern
DE102015110934A1 (de) Mehrziel-Fahrzeugschnittstelle
JP6780127B2 (ja) ナビゲーションアプリケーションプログラミングインターフェース
CN106256114A (zh) 用于提供个性化便携式资产应用的系统和方法
DE102016012596A1 (de) Auf thematischer Karte basierende Routenoptimierung
DE112015006545T5 (de) Verfahren und Vorrichtung zur Unterstützung der automatischen Organisation auf einer Fahrt des Nutzers
DE202016007909U1 (de) Systeme für den Übergang zwischen Perspektiven in einer dreidimensionalen Umgebung
DE10103025A1 (de) Navigationsvorrichtung und Aufzeichnungsmedium zur Bereitstellung einer Kommunikation zwischen Anwendungen
DE202016006079U1 (de) Das dynamische Steuern eines Kartenansichtsfensters im Hinblick auf Benutzersignale
DE202015009170U1 (de) Intuitive Vorschau anstehender Navigationsanweisungen
DE102016107273A1 (de) Systeme und verfahren zur verbesserung der privatsphäre in verbindung mit standortbasierten diensten
DE112020001255T5 (de) Tiefes neurales netzwerk mit niedrigem leistungsverbrauch zur gleichzeitigen objekterkennung und semantischen segmentation in bildern auf einem mobilen rechengerät
DE202014010884U1 (de) Anpassen von Abbiegesymbolen im Hinblick auf Straßengeometrie
DE102011075305A1 (de) Verfahren zum rechnergestützten Verarbeiten von elektronisch gespeicherten Kalenderdaten
DE102004045010A1 (de) Informationspunkt
DE202023100616U1 (de) System zur Optimierung der Tourismusplanung
DE112015005086T5 (de) Implementierung von drittanbieterdiensten in einer plattform für digitale dienste
DE102011015216A1 (de) Visualisierung von Adresspunkten auf Karten
DE102021100250A1 (de) Durch crowdsourcing erhaltene navigationssysteme und -verfahren
EP3384242A1 (de) System und verfahren zur indoor - navigation

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R138 Derivation of utility model

Ref document number: 202016008228

Country of ref document: DE

R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, GB

Representative=s name: KILBURN & STRODE LLP, NL

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, GB

Representative=s name: KILBURN & STRODE LLP, NL

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, NL

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final