DE112013002792T5 - Navigationsanwendung - Google Patents

Navigationsanwendung Download PDF

Info

Publication number
DE112013002792T5
DE112013002792T5 DE201311002792 DE112013002792T DE112013002792T5 DE 112013002792 T5 DE112013002792 T5 DE 112013002792T5 DE 201311002792 DE201311002792 DE 201311002792 DE 112013002792 T DE112013002792 T DE 112013002792T DE 112013002792 T5 DE112013002792 T5 DE 112013002792T5
Authority
DE
Germany
Prior art keywords
navigation
intersection
instructions
map
view
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.)
Pending
Application number
DE201311002792
Other languages
English (en)
Inventor
c/o Apple Inc. Van Os Marcel
c/o Apple Inc. Blumenberg Christopher
c/o Apple Inc. Vulcano Emanuele
c/o Apple Inc. Moore Bradford Allen
c/o Apple Inc. Pylappan Seejo K.
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.)
Apple Inc
Original Assignee
Apple Inc
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
Priority claimed from US13/632,116 external-priority patent/US9418672B2/en
Priority claimed from US13/632,130 external-priority patent/US8880336B2/en
Priority claimed from US13/632,117 external-priority patent/US9146125B2/en
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE112013002792T5 publication Critical patent/DE112013002792T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • G01C21/32Structuring or formatting of map data
    • 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/3626Details of the output of route guidance instructions
    • G01C21/3635Guidance using 3D or perspective road maps
    • 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/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3415Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
    • 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/3626Details of the output of route guidance instructions
    • 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/3626Details of the output of route guidance instructions
    • G01C21/3632Guidance using simplified or iconic instructions, e.g. using arrows
    • 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/3626Details of the output of route guidance instructions
    • G01C21/3635Guidance using 3D or perspective road maps
    • G01C21/3638Guidance using 3D or perspective road maps including 3D objects and buildings
    • 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/3664Details of the user input interface, e.g. buttons, knobs or sliders, including those provided on a touch screen; remote controllers; input using gestures
    • 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
    • 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/367Details, e.g. road map scale, orientation, zooming, illumination, level of detail, scrolling of road map or positioning of current position marker
    • 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/3673Labelling using text of road map data items, e.g. road names, POI names
    • 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/3679Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities
    • G01C21/3682Retrieval, searching and output of POI information, e.g. hotels, restaurants, shops, filling stations, parking facilities output of POI information on a road map
    • 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/3697Output of additional, non-guidance related information, e.g. low fuel level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096855Systems involving transmission of navigation instructions to the vehicle where the output is provided in a suitable form to the driver
    • G08G1/096861Systems involving transmission of navigation instructions to the vehicle where the output is provided in a suitable form to the driver where the immediate route instructions are output to the driver, e.g. arrow signs for next turn
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/096855Systems involving transmission of navigation instructions to the vehicle where the output is provided in a suitable form to the driver
    • G08G1/096866Systems involving transmission of navigation instructions to the vehicle where the output is provided in a suitable form to the driver where the complete route is shown to the driver
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/0969Systems involving transmission of navigation instructions to the vehicle having a display in the form of a map
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • G09B29/006Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
    • G09B29/007Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3265Power saving in display device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

Einige Ausführungsformen stellen eine Navigationsanwendung zur Verfügung, die eine neuartige Navigationsdarstellung auf einem Gerät liefert. Die Anwendung identifiziert einen Ort des Geräts und identifiziert einen Stil von Verkehrszeichen, die mit dem identifizierten Ort des Geräts zusammenhängen. Die Anwendung erzeugt dann Navigationsinstruktionen in Form von Verkehrszeichen, die mit dem identifizierten Stil übereinstimmen. Um die Verkehrszeichen zu erzeugen, identifiziert die Anwendung in einigen Ausführungsformen ein Verkehrszeichen-Musterbild für den identifizierten Stil und erzeugt das Verkehrszeichen durch Zusammensetzen des identifizierten Verkehrszeichenmusters mit mindestens einer von Textinstruktion und grafischer Instruktion. In einigen Ausführungsformen wird das Verkehrszeichen als ein zusammengesetztes strukturiertes Bild erzeugt, das eine Textur und ein Aussehen aufweist, die mit den Verkehrszeichen am identifizierten Ort zusammenhängen.

Description

  • Einige Ausführungsformen der Erfindung stellen eine Vorrichtung, bzw. ein Gerät bereit, die eine Navigationsanwendung mit mehreren neuartigen Merkmalen beinhaltet. In einigen Ausführungsformen hat die Vorrichtung einen berührungsempfindlichen Bildschirm, der die Ausgabe von der Anwendung anzeigt und eine Mehrfachberührungsschnittstelle, die es einem Nutzer erlaubt, Berührungseingaben und gestische Eingaben durch den Bildschirm bereitzustellen, um mit der Anwendung zu interagieren.
  • In einigen Ausführungsformen beinhalten die neuartigen Merkmale der Navigationsanwendung (1) mehrere verschiedene Ansichten (z. B. eine zweidimensionale Punkt-zu-Punkt-Ansicht, eine dreidimensionale Punkt-zu-Punkt-Ansicht, eine Gesamtrouten-Ansicht, usw.) und glatte Übergänge zwischen diesen Ansichten während der Navigation, (2) neuartige Benutzerschnittstellensteuerungen (User Interface, UI) für Navigation, (3) realistisch aussehende Straßenschilder zur Identifizierung von Fahrmanövern entlang der Navigationsroute, (4) dynamische Erzeugung von Anweisungen und Richtungsindikatoren für Straßenschilder und andere Darstellungen von identifizierten Manövern, (5) informative Navigationsanzeigen, wenn die Navigationsanwendung im Hintergrund der Vorrichtung betrieben wird, (6) neuartige Stimmenerkennungs-Navigationsführung und (7) Integration mit anderen Routenanwendungen, die in oder für die Vorrichtung verfügbar sind.
  • Während in verschiedenen Ausführungsformen all diese Merkmale ein Teil der Navigationsanwendung sind, verwenden andere Ausführungsformen nicht alle diese Merkmale in der Navigationsanwendung. Auch ist in einigen Ausführungsformen die Navigationsanwendung Teil einer integrierten Kartenanwendung, die verschiedene andere nützliche Operationen bereitstellt, einschließlich ein Browsen durch Orte, eine Kartensuche und Routenidentifizierungsoperationen. Jedoch wird der Fachmann erkennen, dass in anderen Ausführungsformen die Navigationsanwendung eine alleinstehende Anwendung ist, die einige oder alle dieser anderen Operationen nicht beinhaltet.
  • Jedes der oben beschriebenen Merkmale ist hier beschrieben. Wie oben erwähnt stellt die Navigationsanwendung in einigen Ausführungsformen mehrere verschiedene Ansichten während der Navigation und glatte Übergänge zwischen diesen Ansichten bereit. In einigen Ausführungsformen beinhalten Beispiele solcher Ansichten eine zweidimensionale (2D) Punkt-zu-Punkt-Ansicht, eine dreidimensionale (3D) Punkt-zu-Punkt-Ansicht und eine Gesamtrouten-Ansicht. In einigen Ausführungsformen erzeugt die Anwendung die Punkt-zu-Punkt-Ansicht aus einer perspektivischen Wiedergabeposition innerhalb einer 3D-Navigationsszene, die von der Vorrichtung gerendert wird. Die perspektivische Rendering-Position ist in einigen Ausführungsformen einstellbar und kann als eine virtuelle Kamera betrachtet werden, die die 3D-Navigationsszene aus einer Vielzahl von verschiedenen Perspektiven erfassen kann (z. B. aus einer Vielzahl von verschiedenen Positionen und Orientierungen). Dementsprechend ist in einigen Ausführungsformen die Punkt-zu-Punkt-Navigation eine animierte Ausgabe der Navigationsroute, die vom Blickwinkel einer virtuellen Kamera gerendert wird, die sich entlang der Routenrichtung bewegt, basierend auf der Durchlauf-Richtung und Geschwindigkeit des Benutzers, der die Vorrichtung trägt, welche in einigen Ausführungsformen von Richtungsdaten erfasst werden (z. B. GPS-Daten, triangulierte Mobilfunkmastdaten usw.), die zur Vorrichtung gehören.
  • Während der Navigation erlaubt die Navigationsanwendung in einigen Ausführungsformen einem Benutzer, die Position der virtuellen Kamera zu ändern (z. B. die Position, von welcher aus die Navigationsroute gerendert wird) durch gestische Eingabe auf dem Bildschirm der Vorrichtung. Die Bewegung der virtuellen Kamera (z. B. Bewegung von der Position, von welcher aus die Route gerendert wird) erlaubt der Navigationsanwendung alternative 3D-Ansichten zu rendern. Einige Ausführungsformen benutzen die virtuelle Kamera sogar zum Rendern einer von oben nach unten gerichteten 2D-Ansicht für die Punkt-zu-Punkt-Navigation, während andere Ausführungsformen die von oben nach unten 2D-Ansicht durch Hinein- und Herauszoomen einer 2D-Karte rendern.
  • In einigen Ausführungsformen stellt die Navigationsanwendung eine 3D-Steuerung (z. B. Bedienelemente wie eine Taste) dar, die sowohl als ein 3D-Indikator als auch als ein 3D-Initiator/Umschalter dient. Die 3D-Steuerung ist in einigen Ausführungsformen als eine schwebende Steuerung implementiert, die über der 2D- oder 3D-Navigationsdarstellung ”schweben” kann, wenn sie gebraucht wird, und aus der Darstellung heraus ”schweben” kann, wenn nicht erforderlich. Diese Steuerung dient auch als ein Indikator, dass die aktuelle Ansicht eine 3D-Ansicht ist. Die 3D-Steuerung kann unterschiedliche Erscheinungen haben (z. B. gefärbt in grau, schwarz, blau, usw.), um unterschiedliche Angaben bereitzustellen. In einigen Ausführungsformen ist die 3D-Steuerung grau, wenn keine 3D-Daten für den aktuellen Ort des Benutzers verfügbar sind, schwarz, wenn die 3D-Daten verfügbar sind, aber der Benutzer die Karte derzeit in 2D betrachtet und violett, wenn der Benutzer die Karte im 3D-Modus betrachtet. In einigen Ausführungsformen zeigt die 3D-Steuerung ein Bild von einem Gebäude an, wenn der Benutzer an einer bestimmten Zoomstufe ist und stellt einen ”Überflug” von Gebäuden in der Gegend bereit, wenn diese vom Benutzer ausgewählt wird. Es stellt auch einen schnellen Mechanismus zum Ein- und Ausstieg aus der 3D-Navigation bereit. Wie weiter unten beschrieben, erlaubt die Navigationsanwendung Übergänge zwischen den 2D- und 3D-Navigationsansichten durch andere gestische Eingaben von der Mehrfachberührungsschnittstelle der Vorrichtung.
  • Die Navigationsanwendung benutzt in einigen Ausführungsformen schwebende Steuerungen, um die Steuerungen auf dem Bildschirm minimal zu halten und dabei so viel wie möglich von der interaktiven Navigation anzuzeigen. In einigen Ausführungsformen sind die schwebenden Steuerungen ein Teil einer Gruppe von Steuerungen, die sich der vorliegenden Aufgabe anpasst indem sie ihre Inhalte in einer animierten Art anpasst, wenn ein Benutzer sich zwischen unterschiedlichen Navigationsansichten bewegt oder sich zwischen unterschiedlichen Anwendungsmodalitäten für Ausführungsformen bewegt, in denen die Navigation nur eine von mehreren Modalitäten von einer anderen Anwendung ist. Diese adaptive Natur erlaubt es der Navigationsanwendung sich für unterschiedliche Aufgaben zu optimieren, während sie ein konsistentes Aussehen und ein Interaktionsmodel beibehält, während sie sich zwischen diesen Aufgaben bewegt.
  • Wenn die Navigationsanwendung in einigen Ausführungsformen eine Navigationsdarstellung startet, (1) versteckt die Anwendung automatisch die schwebenden Steuerungen und eine Leiste (andere UI-Steuerungen enthaltend) oben auf einer Karte, entlang welcher die Navigation angezeigt wird, und (2) startet eine Vollbild-Punkt-zu-Punkt-Navigationsdarstellung. In diesem Modus schränkt die Anwendung Berührungsinteraktionen mit der Karte ein. In einigen Ausführungsformen ist ein Tippen erforderlich, um auf die Steuerungen, die automatisch versteckt wurden, zuzugreifen. In einigen Ausführungsformen sind diese Steuerungen zu einem Vollbild-Navigationsaussehen hin angepasst, das eine hervorgehobene Anzeige der voraussichtlichen Ankunftszeit (Estimated Time of Arrival, ETA) in der oberen Leiste beinhaltet.
  • In einigen Ausführungsformen ist eine der Steuerungen in der oberen Leiste eine Übersichtstaste. Durch Selektieren dieser Taste zu einem beliebigen Zeitpunkt während der Navigation kann ein Benutzer nahtlos umschalten zwischen dem Vollbild; der Punkt-zu-Punkt-Darstellung, die eine optimierte Ansicht für Punkt-zu-Punkt-Navigationsanweisungen anzeigt; und einer Übersichtsdarstellung, die eine Ansicht der verbleibenden Route anzeigt, welche für das Durchsuchen besser geeignet ist.
  • In einigen Ausführungsformen sorgen die konstante Menge an Steuerungen und der direkte Übergang in der Karte für Kontinuität zwischen dem Übersichtsmodus und dem Vollbildmodus. Diese Steuerungen beinhalten auch eine Steuerung, die es dem Benutzer erlaubt, die Navigation entweder im Übersichtsmodus oder im Vollbildmodus zu beenden. Einige Ausführungsformen erlauben auch eine Durchführung einer Suche während der Navigation. Zum Beispiel stellen einige Ausführungsformen einen Herunterziehgriff bereit, der es erlaubt, das Suchfeld während des Navigierens im Übersichtsmodus in die Übersichtsanzeige zu ziehen. Alternativ, oder zusätzlich, ermöglichen einige Ausführungsformen die Durchführung von Suchen während der Navigation durch eine Spracherkennungseingabe der Vorrichtung in einigen Ausführungsformen. In einigen Ausführungsformen erlaubt die Anwendung einem Benutzer auch die Durchführung von Suchen (z. B. sprachinitiiertes und/oder textbasiertes Suchen) während der Punkt-zu-Punkt-Navigation. Die Navigationsanwendung einiger Ausführungsformen erlaubt auch eine Initiierung der Navigation durch Spracherkennungseingabe der Vorrichtung.
  • Während der Navigation erlaubt die Navigationsanwendung verschiedener Ausführungsformen dem Benutzer auch einige gestische Eingaben unabhängig von den schwebenden Steuerungen oder den Steuerungen der oberen Leiste. Zum Beispiel stellen unterschiedliche Ausführungsformen unterschiedliche gestische Eingaben für die Anpassung der 2D/3D-Ansicht während der Punkt-zu-Punkt-Navigation bereit. In einigen Ausführungsformen ist die gestische Eingabe eine Zweifinger-Kneif-/Spreiz-Operation, um die Zoomstufe einzustellen. Diese Zoomstufeneinstellung als solche stellt die Position und Rotation der Kamera hinsichtlich der Routenrichtung ein und ändert dabei die 2D/3D perspektivische Ansicht der Routenrichtung. Alternativ stellen andere Ausführungsformen andere gestische Eingaben bereit (z. B. eine Fingerzugoperation), welche die Position der Kamera anstelle von oder zusätzlich zu der Zoomoperation ändern. In wieder anderen Ausführungsformen ändert eine gestische Eingabe (z. B. eine Fingerzugoperation) vorübergehend die Betrachtungsrichtung der Kamera, um einem Benutzer einen vorübergehenden Blick auf eine Seite der Navigationsroute zu erlauben. In diesen Ausführungsformen bringt die Anwendung die Kamera nach einer kurzen Zeitspanne zu ihrer vorigen Ansicht entlang der Route zurück.
  • Ein anderes neuartiges Merkmal der Navigationsanwendung sind die realistisch aussehenden Straßenschilder, die während der Navigation genutzt werden. In einigen Ausführungsformen sind die Schilder strukturierte Bilder, die eine starke Ähnlichkeit zu tatsächlichen Autobahnschildern haben. Diese Schilder beinhalten in einigen Ausführungsformen anweisende Pfeile, Text, Schilder und Distanz. Die Navigationsanwendung einiger Ausführungsformen stellt eine breite Anzahl von Schildvarianten in einer großen Anzahl von unterschiedlichen Kontexten dar. Auch stellt die Anwendung in einigen Ausführungsformen Schilder in unterschiedlichen Farben gemäß den regionalen Normen dar.
  • Für Manöver, die nahe beieinander liegen, stellt die Anwendung in einigen Ausführungsformen ein sekundäres Schild unter dem primären Schild dar. Nachdem ein Manöver absolviert ist, animiert die Navigationsanwendung das Vorbeiziehen des Schildes mit einer Bewegung, die nachahmt, wie ein Schild über der Autobahn vorbei zieht. Wenn ein bevorstehendes Manöver sich nähert, macht die Navigationsanwendung mit einer subtilen Animation (z. B. einem Schimmern über das gesamte Schild) auf das Schild aufmerksam.
  • In einigen Ausführungsformen generiert die Navigationsanwendung dynamisch Anweisungen für ein Straßenschild und andere Darstellungen (z. B. eine Listenansicht), die mit einem Navigationsmanöver zusammenhängen, basierend auf dem Kontext, in dem die Anwendung das Schild oder eine Darstellung anzeigt. Für einen gegebenen Kontext wird die Textanweisung ausgewählt indem Faktoren berücksichtigt werden, wie beispielsweise der verfügbare Raum, die Verfügbarkeit von, in anderer Weise als durch Text, übertragenen Informationen (z. B. die Verfügbarkeit von Sprachführung), die lokalisierte Länge jeder Anweisungsvariante, die Größe des Anzeigebildschirms der Vorrichtung usw.. Durch lokales Synthetisieren und Evaluieren mehrerer Alternativen kann die Anwendung in jedem Szenario eine optimale Anweisungszeichenkette auswählen.
  • Ebenso generiert die Navigationsanwendung einiger Ausführungsformen adaptiv grafische Richtungsindikatoren für ein Straßenschild und andere Darstellungen (z. B. eine Listenansicht), die mit einem Navigationsmanöver assoziiert sind, basierend auf dem Kontext, in dem die Anwendung das Schild oder eine Darstellung anzeigt. Ist zum Beispiel ausreichend Platz auf einem Schild oder einer Darstellung für die Benutzung eines größeres Schildes, identifiziert die Navigationsanwendung einiger Ausführungsformen ein durchzuführendes Manöver, das an einer Kreuzung entlang der Route durchzuführen ist, durch Nutzung eines größeren grafischen Richtungsindikators, der enthält (1) einen hervorgehobenen stilisierten Pfeil, der grob den Pfad des Fahrzeugs repräsentiert, und (2) eine weniger betonte Menge von Linien und Kurven entsprechend den anderen Elementen der Kreuzung. In einigen Ausführungsformen, die diese Herangehensweise verwenden, wird ein Rechtsabbiegen an einer T-Kreuzung dargestellt durch einen großen Pfeil mit einem rechten Winkel zusammen mit einem kleineren, schwächer dargestellten Segment, welches zu einem der Segmente des großen Pfeils parallel verläuft. Das kleinere Segment wird in einigen Ausführungsformen auch auf die Seite abgeschoben, so dass der Pfad, welcher von dem Fahrzeug genommen wird, dominiert.
  • So eine Darstellung eines Manövers (die einen hervorgehobenen stilisierten Pfeil und eine weniger betonte Menge von Linien beinhaltet) stellt recht komplette Informationen über das Manöver dar, während sie abstrakt und leicht verständlich bleibt. Allerdings kann es in anderem Kontext sein, dass für eine solche Darstellung kein ausreichender Raum auf dem Schild oder auf einer anderen Darstellung vorhanden ist. Dementsprechend benutzt die Navigationsanwendung für solche Fälle in einigen Ausführungsformen eine alternative Darstellung des Manövers, die die Anzeige des Kreuzung weglässt und stattdessen nur einen Pfeil für die Richtung der Bewegung anzeigt.
  • Um entweder den hervorgehobenen stilisierten Pfeil oder den vereinfachten Pfeil für ein Kreuzungsmanöver entlang der Route zu generieren, empfängt die Navigationsanwendung in einigen Ausführungsformen eine Beschreibung der Kreuzung und des Manövers von einem Server. In einigen Ausführungsformen führt der Server einen automatisierten Prozess zum Erzeugen dieser Beschreibung basierend auf den Kartendaten aus und stellt diese Informationen in Form komprimierter geometrischer Punktdaten bereit. Auch liefert der Server am Anfang einer Routennavigation in einigen Ausführungsformen der Navigationsanwendung die Beschreibung von allen Kreuzungen und Manövern entlang der Route und aktualisiert diese Beschreibung gelegentlich, wenn der Benutzer von der Route abweicht und der Server eine neue Route berechnet.
  • Wenn die Navigationsanwendung die Beschreibung der Kreuzungen und Manöver empfängt, führt die Anwendung in einigen Ausführungsformen initial einen Prozess zum Vereinfachen der Charakterisierung der Kreuzung und der Manöver aus und benutzt diese vereinfachte Charakterisierung dann zum Erzeugen von hervorgehobenen stilisierten grafischen Richtungsindikatoren für die Kreuzung. Zum Anzeigen eines Manövers an einer Kreuzung stellen einige Navigationsanwendungen oft einen schlichten Pfeil bereit, welcher nicht auf die Kreuzung ausgedrückt wird und welcher nicht viele Informationen übermittelt, während andere Navigationsanwendungen eine sehr detaillierte Darstellung der Kreuzung und eine komplexe Richtungsdarstellung durch diese detaillierte Darstellung bereitstellen. Deshalb stellt eine existierende Herangehensweise sehr wenige Informationen bereit, während eine andere Herangehensweise so viele Informationen bereitstellt, dass es die Informationen praktisch unbrauchbar macht. Bei der Erzeugung von hervorgehobenen stilisierten Richtungsindikatoren basierend auf der vereinfachten Beschreibung einer Kreuzung, zeigt die Navigationsanwendung in einigen Ausführungsformen eine detaillierte Darstellung des Manövers an der Kreuzung an, während einige der unnötigen Komplexitäten der Kreuzung eliminiert werden.
  • In einigen Ausführungsformen stellt die Navigationsanwendung Navigationsanweisungen bereit, während die Anwendung im Hintergrund arbeitet und sogar wenn die Vorrichtung gesperrt ist. In einigen Ausführungsformen ist die Vorrichtung gesperrt, wenn nur eine reduzierte Menge von Bedien-/Steuerelementen verwendet werden kann, um Eingaben in die Vorrichtung liefern. Zum Beispiel beschränkt die Sperrung der Vorrichtung in einigen Ausführungsformen die Anzahl von Eingaben, welche ein Benutzer durch einen berührungsempfindlichen Bildschirm der Vorrichtung liefern kann, außerordentlich.
  • In einigen Ausführungsformen sind die sprachgesteuerten Anweisungen ein Beispiel für Anweisungen, die gegeben werden könne, während die Navigationsanwendung im Hintergrund betrieben wird oder während die Vorrichtung gesperrt ist. Alternativ zu oder zusätzlich zur Sprachsteuerung kann die Navigationsanwendung Text und/oder grafische Anweisungen in wenigstens zwei Modi während des Hintergrundbetriebs bereitstellen.
  • Zuerst baut die Anwendung in einigen Ausführungsformen eine Live-Navigationsansicht (z. B. eine Punkt-zu-Punkt-Ansicht) in den Hintergrund des gesperrten Bildschirms ein, die Text und grafische Navigationsbeschreibungen in der Anzeige des gesperrten Bildschirmansicht beinhaltet. Mit dieser Darstellung kann der Benutzer die Navigationsanweisungen sehen, während die Anwendung im Hintergrund läuft, ohne die Vorrichtung zu entsperren. In einigen Ausführungsformen verfeinert die Anwendung zusätzlich die Sperrbildschirmerfahrung, indem Benachrichtigungen, die normalerweise im Bereich der Navigationsansicht angezeigt werden, an eine Schublade in der Sperrbildschirmansicht geschickt werden, was in einigen Ausführungsformen sofort und in anderen Ausführungsformen nach einer kurzen Zeitspanne durchgeführt wird, in welcher die Benachrichtigung auf dem Sperrbildschirm gezeigt wird. Auch gehen einige Ausführungsformen ohne Animation zur Navigationsansicht zurück, um eine nahtlose Erfahrung zu erzeugen, wenn immer ein Benutzer die Vorrichtung entsperrt
  • In einigen Ausführungsformen schaltet die Anwendung die Sperrbildschirmnavigationsanzeige nach einer Zeitspanne aus, wenn keine Manöver bevorstehen. Allerdings erhellt die Anwendung in einigen dieser Ausführungsformen den Bildschirm, wenn ein bevorstehendes Manöver näherkommt und/oder neue Navigationsanweisungen bereitgestellt werden müssen. Dies ist eine kleine Zeitspanne relativ zur Dauer jedes Schrittes, so dass die Anzeige der Navigationsanweisungen nicht auf Kosten von merklich verminderter Batterielebensdauer geht. Um die Erfahrung zu verbessern, aktiviert die Navigationsanwendung in einigen Ausführungsformen einen Umgebungslichtsensor lange vor der Navigationsaufforderung, so dass die Umgebungslichteinstellungen zum Erhellen des Bildschirms in der korrekten Helligkeit genutzt werden können, wenn die Zeit kommt, um die Navigationskarte zu zeigen.
  • Zweitens wird in einigen Ausführungsformen die Navigationsanwendung im Hintergrund betrieben, sogar wenn die Vorrichtung entsperrt ist. Dies ist der Fall, wenn die Navigationsanwendung auf einer Vorrichtung betrieben wird (z. B. einem Smartphone), die mehrere andere Anwendungen ausführt. In solch einer Vorrichtung würde die Navigationsanwendung im Hintergrund betrieben werden, wenn die Vorrichtung eine Ansicht (z. B. eine Seite) darstellt, die vom Betriebssystem der Vorrichtung bereitgestellt wird, oder eine Ansicht, die von einer anderen Anwendung auf der Vorrichtung bereitgestellt wird.
  • Wenn die Navigationsanwendung in einigen Ausführungsformen im Hintergrund auf einer entsperrten Vorrichtung arbeitet, (1) benutzt die Vorrichtung eine Statusleiste doppelter Höhe, um die Hintergrundoperationen der Navigationsanwendung anzugeben, wenn ein bevorstehendes Manöver weit entfernt ist, und (2) verwendet ein schildähnliches Navigationsbanner, das eine dynamisch aktualisierte Entfernung zu einem Manöver beinhaltet bei Annäherung an ein Manöver, oder wenn Führungsanweisungen hörbar sind. Zusätzlich erhält die Anwendung das schildähnliche Banner aufrecht bis das Manöver abgeschlossen ist und unterdrückt andere Benachrichtigungen in diesem Raum. Eine Auswahl von entweder der Statusleiste doppelter Höhe oder dem Navigationsbanner weist in einigen Ausführungsformen die Vorrichtung an, zu einer von der Navigationsanwendung erzeugten Navigationsansicht zu wechseln.
  • Die oben beschriebenen Merkmale sowie einige andere Merkmale der Navigationsanwendung einiger Ausführungsformen sind unten weiter beschrieben. In der vorangegangenen und nachfolgenden Beschreibung werden viele der Merkmale als Teil einer integrierten Kartenanwendung beschrieben, die ein neuartige Browsen durch Orte, Ortssuche, Routenidentifizierung und Routennavigationsoperationen bereitstellen. Allerdings wird der Fachmann erkennen, dass diese neuartigen Operationen in anderen Ausführungsformen von Anwendungen ausgeführt werden, die nicht alle diese Operationen ausführen oder andere Operationen zusätzlich zu diesen Operationen ausführen.
  • Die vorstehende Zusammenfassung beabsichtigt, als eine kurze Einführung zu einigen Ausführungsformen der Erfindung zu dienen. Sie ist nicht gedacht als Einführung oder Übersicht zum gesamten in diesem Dokument offenbarten erfinderischen Gegenstand. Die nachfolgende detaillierte Beschreibung und die Zeichnungen, auf die in der detaillierten Beschreibung Bezug genommen wird, erläutern weiter die Ausführungsformen, welche in der Zusammenfassung beschrieben wurden, sowie andere Ausführungsformen. Um dementsprechend alle Ausführungsformen, die in diesem Dokument beschrieben sind, zu verstehen, ist eine vollständige Studium der Zusammenfassung, der detaillierten Beschreibung und der Zeichnungen notwendig. Außerdem sind die beanspruchten Gegenstände nicht durch die illustrierenden Details in der Zusammenfassung, der detaillierten Beschreibung und den Zeichnungen einzuschränken, sondern sind durch die angehängten Ansprüche zu definieren, weil die beanspruchten Gegenstände in anderen spezifischen Formen verkörpert werden können, ohne vom Geist der Gegenstände abzuweichen.
  • Kurze Beschreibung der Zeichnungen
  • Die neuartigen Merkmale der Erfindung sind in den beigefügten Ansprüchen dargelegt. Zur Erklärung sind allerdings mehrere Ausführungsformen der Erfindung in den nachfolgenden Figuren dargelegt.
  • 1 veranschaulicht ein Beispiel einer Vorrichtung, die eine integrierte Kartenanwendung einiger Ausführungsformen der Erfindung ausführt.
  • 2 veranschaulicht ein Beispiel mittels drei Phasen einer Benutzerinteraktion mit der Kartenanwendung, um Routenanweisungen zu erhalten.
  • 3 veranschaulicht, wie die Navigationsanwendung einiger Ausführungsformen die 3D-Steuerung als schnellen Mechanismus bereitstellt, um in den 3D-Navigationsmodus einzutreten.
  • 4 veranschaulicht eine Vorrichtung, die eine Kartenanwendung anzeigt, während die Anwendung von einer nicht immersiven Kartenansicht zum Durchsuchen der Karte in eine immersive Kartenansicht für die Navigation übergeht.
  • 5 stellt ein vereinfachtes Beispiel zur Veranschaulichung des Konzepts einer virtuellen Kamera dar.
  • 6 veranschaulicht, dass die Kartenanwendung einiger Ausführungsformen die Erscheinung der 3D-Steuerung ändert, um verschiedene 2D- und 3D-Zustände der Kartenansicht anzugeben.
  • 7 veranschaulicht den Wechsel zwischen einem 3D-Modus zu einem 2D-Modus in einigen Ausführungsformen.
  • 8 veranschaulicht die Anpassung der Distanz von einer virtuellen Kamera durch zusammenziehende und expandierende Gesten.
  • 9 veranschaulicht eine Ausführungsform einer Kamera, deren Winkel durch Gesten angepasst werden kann.
  • 10 veranschaulicht konzeptionell ein Merkmal, welches von der Kartenanwendung einiger Ausführungsformen bereitgestellt wird, zur Aufrechterhaltung der Position einer virtuellen Kamera innerhalb eines definierten Bereichs entlang eines Bogens.
  • 11 veranschaulicht einen Vollbildmodus einiger Ausführungsformen.
  • 12 veranschaulicht die Navigationsanwendung mit den versteckten und offengelegten Steuerungen während eines Telefonanrufs auf der Vorrichtung in einigen Ausführungsformen.
  • 13 veranschaulicht das Ende einer programmierten Route in einigen Ausführungsformen.
  • 14 veranschaulicht eine Steuerung zum Beenden des Navigationsprogramms in einigen Ausführungsformen.
  • 15 veranschaulicht die Rotation einer Karte, wenn ein Benutzer diese seitwärts in einigen Ausführungsformen schiebt.
  • 16 und 17 veranschaulichen Übersicht-Steuerungen in einigen Ausführungsformen.
  • 18 veranschaulicht konzeptionell eine Verarbeitungs- oder Kartenrendering-Pipeline, ausgeführt von der Kartenanwendung einiger Ausführungsformen, um eine Karte für eine Anzeige auf der Clientvorrichtung zu rendern.
  • 19A und 19B veranschaulichen konzeptionell ein Zustandsdiagramm, welches unterschiedliche Zustände und Übergänge zwischen diesen Zuständen der integrierten Abbildungs-, Such- und Navigationsanwendung einiger Ausführungsformen beschreibt (z. B. die Anwendung, welche in den vorangegangen Abschnitten beschrieben wurde).
  • 20 veranschaulicht mehrere Szenarien von grafischen Benutzeroberflächen (Graphical User Interface, GUI), in welchen solche Autobahnschilder in einigen Ausführungsformen verwendet werden.
  • 21 veranschaulicht über vier Stufen die Animation einiger Ausführungsformen zum Entfernen eines Navigationszeichens und Einführen des nächsten Zeichens.
  • 22 veranschaulicht eine derartige Schimmer-Animation über vier Stufen, in der der Hintergrund der Anzeige grau dargestellt ist, um einen Kontrast zum Schimmer zu zeigen, wenn er sich über das Zeichen bewegt in einigen Ausführungsformen.
  • 23 veranschaulicht die Anzeige von zwei Zeichen für Fahrmanöver in schneller Folge über vier Stufen in einigen Ausführungsformen.
  • 24 veranschaulicht das Konzept einer Operation, die durch einen Kartendienst einiger Ausführungsformen durchgeführt wird, um eine Route für ein anforderndes Gerät zu erzeugen und die Route mit Navigationsanweisungen an das anfordernde Gerät zu liefern.
  • 25 veranschaulicht das Konzept eines Prozesses, der durch den Kartendienst einiger Ausführungsformen durchgeführt wird, um Routen- und Kreuzungsdaten zu generieren und an einen Nutzer zu übertragen.
  • 26 veranschaulicht das Konzept eines Prozesses einiger Ausführungsformen zum Bestimmen von Pfadsegmenten zwischen Sätzen von Kreuzungspunkten, die zusammen als einzelne Kreuzungen behandelt werden sollten.
  • 27 veranschaulicht ein Beispiel eines Kreuzungspunktes und zeigt, dass kein Erfordernis besteht, dass die Pfad Segmente sich unter rechten Winkeln schneiden oder dass die Pfade in einer geraden Linie durch den Kreuzungspunkt verlaufen in einigen Ausführungsformen.
  • 28 veranschaulicht eine Kreuzung, die zwei zweispurige Fahrbahnen enthält und eine Einbahnstraße in einigen Ausführungsformen.
  • 29 veranschaulicht das Konzept eines Prozesses zum Verbinden mehrerer Kreuzungspunkte in eine einzelne Kreuzung und Identifizieren der Zweige der Kreuzung in einigen Ausführungsformen.
  • 30 veranschaulicht eine häufig vorkommende Kreuzung zwischen einer Straße mit Mittelstreifen und zwei Fahrspuren und einer Straße mit Mittelstreifen und zwei Fahrspuren in einigen Ausführungsformen.
  • 31 veranschaulicht eine Kreuzung, in der Linksabbieger-Spuren definiert sind als separate Pfadsegmente in einigen Ausführungsformen.
  • 32 veranschaulicht eine Ausfahrt einer Kreuzung in einigen Ausführungsformen.
  • 33 veranschaulicht eine Ausfahrt einer Kreuzung in einigen Ausführungsformen.
  • 34 veranschaulicht zusätzlich eine zweispurige Fahrbahn in einer Kreuzung in einigen Ausführungsformen.
  • 35 veranschaulicht die Reduktion einer achtspurigen Kreuzung in vier Zweige in einigen Ausführungsformen, wobei der Winkel des rechten Zweiges halb so viel von der Horizontalen abweicht wie der rechte Ausfahrtspfad, da der rechte Einfahrtspfad horizontal liegt.
  • 36 veranschaulicht die Reduktion einer anderen achtspurigen Kreuzung in fünf Zweige in einigen Ausführungsformen.
  • 37 veranschaulicht das Konzept eines Beispiels einer Datenstruktur für eine punktförmige Kreuzung in einigen Ausführungsformen.
  • 38 veranschaulicht eine Datenstruktur einiger Ausführungsformen für einen Kreisverkehr.
  • 39 veranschaulicht das Konzept der Reduktion eines Kreisverkehrs in Kreuzungsdaten in einigen Ausführungsformen.
  • 40 veranschaulicht das Konzept eines Prozesses einiger Ausführungsformen zur Modifikation der Kreuzungsdaten, um Navigations-Information für eine Route zur Verfügung zu stellen.
  • 41 veranschaulicht eine schematische Zeichnung einer Route durch eine Kreuzung, eine Datenstruktur für die Kreuzung und die Modifikation der Datenstruktur, um eine neue Datenstruktur für Punkt-zu-Punkt-Navigationsinstruktionen zu erzeugen.
  • 42 veranschaulicht verschiedene unterschiedliche Szenarien, in denen die Kartenanwendung unterschiedliche Typen von grafischen Indikatorpfeilen anzeigt, um Fahrmanöver visuell einem Nutzer darzustellen in einigen Ausführungsformen.
  • 43 veranschaulicht einige Szenarien für die gleiche Abzweigung und wie die verschiedenen Pfeile für die gleiche Abzweigung verwendet werden können in einigen Ausführungsformen.
  • 44 veranschaulicht das Konzept eines Prozesses einiger Ausführungsformen zur Anzeige grafischer Indikatoren während einer Routen-Inspektion.
  • 45 veranschaulicht das Konzept eines Prozesses einiger Ausführungsformen, der Navigation über eine derartige Route durchführt.
  • 46 veranschaulicht das Konzept eines Prozesses, der derartige grafische Richtungsindikatoren für die Fahrmanöver einer Route erzeugt.
  • 47 veranschaulicht das Konzept eines Prozesses der versucht, die Winkel von Zweigen einer Kreuzung längs eine Route auf Mehrfache eines vorbestimmten Winkels zu setzen in einigen Ausführungsformen.
  • 48 veranschaulicht eine besondere Kreuzungssituation einiger Ausführungsformen.
  • 49 veranschaulicht zwei Beispiele, in denen Standard Kreuzungs-/Fahrmanöver-Indikatoren verwendet wurden statt der geometriebasierten Indikatoren in einigen Ausführungsformen.
  • 50 veranschaulicht ein Beispiel eines Kreisverkehrs, in dem die vereinfachte Geometrie nicht benutzt wird in einigen Ausführungsformen.
  • 51 veranschaulicht das Konzept einer Kartenanwendung einiger Ausführungsformen, die Richtungsindikatoren für unterschiedliche Kontexte erzeugt.
  • 52 veranschaulicht ein Beispiel der Synthese unterschiedlicher Instruktionen für ein bestimmtes Fahrmanöver an einer Kreuzung gemäß einigen Ausführungsformen.
  • 53 veranschaulicht verschiedene unterschiedliche Szenarien, in denen die Kartenanwendung unterschiedliche Beispiele von adaptiven Instruktionen für das bestimmte Fahrmanöver der ersten Kreuzung anzeigt in mehreren unterschiedlicher Situationen.
  • 54 veranschaulicht zusätzliche Szenarien, in denen die Kartenanwendung synthetisierte Instruktionsätze verwendet in einigen Ausführungsformen.
  • 55 veranschaulicht das Konzept eines Prozesses einiger Ausführungsformen, um Text-Instruktionen während einer Routen-Inspektion anzuzeigen.
  • 56 veranschaulicht das Konzept eines Prozesses einiger Ausführungsformen, der Navigation über eine derartige Route durchführt.
  • 57 veranschaulicht das Konzept eines Prozesses einiger Ausführungsformen zum Dekodieren kodierter Kreuzungsdaten und Synthetisieren von Instruktionselementen aus den Routen- und Kreuzungsdaten, die von einem Kartendiensterhalten werden.
  • 58 veranschaulicht das Konzept eines Prozesses einiger Ausführungsformen zum Erzeugen von Navigationsinstruktionsvarianten zur Anzeige in unterschiedlichen Kontexten.
  • 59 veranschaulicht das Konzept einer Systemarchitektur, die Karten- und Navigations-Anwendungen einiger Ausführungsformen enthält, die Textinstruktionen für unterschiedliche Kontexte erzeugen.
  • 60 ist ein Beispiel einer Architektur eines mobilen Computergeräts einiger Ausführungsformen.
  • 61 veranschaulicht das Konzept eines Beispiels eines elektronischen Systems, mit dem einige Ausführungsformen der Erfindung implementiert werden.
  • 62 veranschaulicht die Betriebsumgebung eines Kartendiensts gemäß einigen Ausführungsformen.
  • Detaillierte Beschreibung
  • In der folgenden detaillierten Beschreibung der Erfindung sind zahlreiche Details, Beispiele und Ausführungsformen der Erfindung dargelegt und beschrieben. Allerdings wird einem Fachmann klar und offensichtlich sein, dass die Erfindung nicht auf die dargelegten Ausführungsformen limitiert ist und dass die Erfindung ohne einige der spezifischen Details und diskutierten Beispiele ausgeübt werden kann.
  • I. Navigationsbenutzerschnittstelle
  • A. Start
  • Die Navigationsanwendung einiger Ausführungsformen ist Teil einer integrierten Kartenanwendung, die mehrere nützliche Modalitäten beinhaltet, einschließlich Ortsdurchsuchungs-, Kartensuch-, Routenidentifizierungs- und Routennavigationsoperationen. Diese integrierte Anwendung (im Folgenden als Kartenanwendung, die Navigationsanwendung oder integrierte Anwendung bezeichnet) ist in einigen Ausführungsformen definiert durch eine Vorrichtung/Gerät ausgeführt zu werden, die einen berührungsempfindlichen Bildschirm aufweist, welcher die Ausgabe der Anwendung anzeigt. In einigen Ausführungsformen hat diese Vorrichtung eine Mehrfachberührungsschnittstelle, um einem Benutzer zu erlauben, mit der Anwendung durch die Bereitstellung von Berührungs- und gestischen Eingaben über den Bildschirm zu interagieren. Beispiele solcher Vorrichtungen sind Smartphones (z. B. iPhone®, verkauft von Apple Inc., Telefone, die das Android®-Betriebssystem betreiben, Telefone, die das Windows 8®-Betriebssystem betreiben usw.).
  • 1 veranschaulicht ein Beispiel einer Vorrichtung 100, die eine integrierte Kartenanwendung einiger Ausführungsformen der Erfindung ausführt. Diese Figur veranschaulicht auch ein Beispiel vom Starten einer Routennavigation in dieser Anwendung. Diese Anwendung hat ein neuartiges Design einer Benutzerschnittstelle (UI), das nahtlos und zusammenhängend die Steuerungen für jede ihrer unterschiedlichen Modalitäten durch Nutzung einer minimalen Menge von sich auf dem Bildschirm befindenden Steuerungen/Bedienelemente integriert, welche über dem Inhalt schweben, um so viel wie möglich vom Inhalt anzuzeigen. Zusätzlich passt sich dieses Cluster der vorliegenden Aufgabe an, ihren Inhalt in einer animierten Weise einzustellen, wenn ein Benutzer sich zwischen den unterschiedlichen Modalitäten bewegt (z. B. zwischen Durchsuchen, Suchen, Leiten und Navigieren). Dieses gemeinsame Element mit einer adaptiven Natur ermöglicht der Kartenanwendung, sich für unterschiedliche Aufgaben zu optimieren, während ein konsistentes Aussehen und ein Interaktionsmodell während des Bewegens zwischen diesen Aufgaben, beibehalten wird.
  • 1 zeigt sechs Phasen 105, 110, 115, 117, 119, 121 von Interaktionen mit der Kartenanwendung. Die erste Phase 105 zeigt die UI 120 der Vorrichtung, welche mehrere Symbole von mehreren Anwendungen in einem Dockbereich 125 und auf einer Seite der UI beinhaltet. Eines der Symbole auf dieser Seite ist das Symbol für die Kartenanwendung 130. Die erste Phase zeigt eine Benutzerauswahl von der Kartenanwendung durch einen Berührungskontakt mit dem Vorrichtungsbildschirm an dem Ort dieser Anwendung auf dem Bildschirm.
  • Die zweite Phase 110 zeigt die Vorrichtung nachdem die Kartenanwendung geöffnet ist. Wie in dieser Phase gezeigt, hat die UI der Kartenanwendung eine Startseite, welche in einigen Ausführungsformen (1) eine Karte des aktuellen Orts der Vorrichtung und (2) mehrere, in einer oberen Leiste 140 und als schwebende Steuerungen angeordnete UI-Steuerungen, zeigt. Wie 1 zeigt, beinhalten schwebende Steuerungen einen Indikator 145, eine 3D-Steuerung 150 und eine Seitenrollsteuerung 155, während die obere Leiste 140 eine Anweisungssteuerung 160, ein Suchfeld 165 und eine Lesezeichensteuerung 170 beinhaltet.
  • In einigen Ausführungsformen kann ein Benutzer eine Suche durch Tippen in das Suchfeld 165 initiieren. Dies führt die Anwendung dazu, eine Animation darzustellen, die (1) eine sich auf dem Bildschirm befindende Tastatur darstellt und (2) eine Suchtabelle gefüllt mit überaus wertvollen Vervollständigungen öffnet. Diese Tabelle hat einige wichtige Feinheiten. Wenn das Suchfeld angetippt wird und bevor die Begriffe bearbeitet werden, oder wenn das Suchfeld leer ist, enthält die Tabelle eine Liste von ”Letzten”, welche in einigen Ausführungsformen letzte Suchen und Routenanweisungen, die der Benutzer angefragt hat, sind. Dies macht es sehr einfach, um zuletzt zugegriffene Resultate hervorzubringen.
  • Nach einer beliebigen Eingabe auf dem Suchfeld ist die Tabelle gefüllt mit Suchvervollständigungen sowohl von lokalen Quellen (z. B. Lesezeichen, Kontakte, letzte Suchen, letzte Routenanweisungen usw.) als auch Fernservern. Die Eingliederung der Kontaktkarte des Benutzers in die Suchschnittstelle fügt dem Design zusätzliche Flexibilität hinzu. Wenn Letzte anzeigt werden, wird eine Route vom aktuellen Ort zu dem Zuhause des Benutzers immer in einigen Ausführungsformen angeboten, während sie in anderen Zusammenhängen, die für ”angemessen” gehalten werden, in anderen Ausführungsformen angeboten werden. Auch wenn der Suchbegriff wenigstens einen Teil einer Adressbezeichnung (z. B. ”ork” für ”Work”) entspricht, stellt die Anwendung die bezeichnete Adresse des Benutzers als eine Vervollständigung in der Suchtabelle in einigen Ausführungsformen dar. Zusammen machen diese Verhalten die Such-UI zu einer sehr mächtigen Art, um Resultate auf einer Karte von einer Vielzahl an Quellen zu erhalten. Zusätzlich zum einem Benutzer Erlauben, eine Suche zu initiieren, erlaubt die Anwesenheit des Textfeldes in der primären Kartenansicht in einigen Ausführungsformen auch Benutzern die Anfrage entsprechend der Suchresultate auf der Karte zu sehen und diese Suchresultate durch Löschen der Anfrage zu entfernen.
  • Die Lesezeichensteuerung 170 (z. B. Knopf/Taste) erlaubt Orten und Routen, von der Anwendung markiert zu werden. Der Positionsindikator 145 erlaubt es, die aktuelle Position der Vorrichtung speziell auf der Karte zu vermerken. Sobald dieser Indikator ausgewählt ist, behält die Anwendung die aktuelle Position der Vorrichtung im Zentrum der Karte bei. In einigen Ausführungsformen kann es auch die Richtung identifizieren, in welche die Vorrichtung aktuell zeigt.
  • Die 3D-Steuerung 150 ist eine Steuerung zum Betrachten einer Karte oder zum Ansehen einer Route in drei Dimensionen (3D). Die Kartenanwendung stellt die 3D-Steuerung als einen schnellen Mechanismus zum Hinein- und Hinauskommen aus 3D bereit. Diese Steuerung dient auch als (1) ein Indikator, dass die aktuelle Ansicht eine 3D-Ansicht ist, (2) ein Indikator, dass eine 3D-Perspektive für eine gegebene Kartenansicht verfügbar ist (z. B. eine Kartenansicht, die herausgezoomt ist, hat womöglich eine 3D-Ansicht verfügbar), (3) ein Indikator, dass eine 3D-Perspektive nicht verfügbar ist (z. B. die 3D-Daten sind für die Kartenregion nicht verfügbar) und (4) ein Indikator, dass eine Überfluganimation an der gegebenen Zoomstufe verfügbar ist. Die 3D-Steuerung kann eine unterschiedliche Erscheinung entsprechend jeder Angabe bereitstellen. Zum Beispiel kann die 3D-Steuerung grau eingefärbt sein, wenn die 3D-Ansicht nicht verfügbar ist, schwarz, wenn die 3D-Ansicht verfügbar, aber die Karte in der 2D-Ansicht ist und blau, wenn die Karte in der 3D-Ansicht ist. In einigen Ausführungsformen ändert sich die 3D-Steuerung zu einem Bild von einem Gebäude, wenn die Überfluganimation für die gegebene Zoomstufe und den Ort auf der Karte des Benutzers verfügbar ist.
  • Die Seitenrollsteuerung 155 ist eine Steuerung, die es der Anwendung erlaubt, die Anzahl von sich auf dem Bildschirm befindenden Steuerungen zu minimieren, durch Platzierung von einigen weniger häufig benutzten Aktionen in einen sekundären UI-Bildschirm, der durch die Seitenrollsteuerung, die auf der Karte angezeigt ist, zugreifbar ist. In einigen Ausführungsformen wird die Seitenrolle permanent auf wenigstens einigen der Kartenansichten, die die Anwendung bereitstellt, angezeigt. Zum Beispiel zeigt in einigen Ausführungsformen die Anwendung die Seitenrolle permanent auf der Startseite an(veranschaulicht in der zweiten Phase 110), die es bereitstellt, einem Benutzer zu erlauben zu durchsuchen oder einen Ort zu suchen oder eine Route zu identifizieren.
  • Die Navigationsanweisungssteuerung 160 öffnet eine Anweisungseintragsseite 180 durch welche ein Benutzer eine Route anfordern kann, welche zwischen einem Startort und einem Endort zu identifizieren ist. Die dritte Phase 115 von 1 veranschaulicht, dass die Auswahl der Anweisungssteuerung 160 die Anweisungseintragsseite 180 öffnet, welche in der vierten Phase 117 gezeigt wird. Die Anweisungssteuerung ist einer von drei Mechanismen, durch welchen die Kartenanwendung dazu geführt werden kann, eine Route zwischen zwei Orten zu identifizieren und anzuzeigen; die zwei anderen Mechanismen sind (1) eine Steuerung in einem Informationsbanner, welcher für ein selektiertes Element in der Karte angezeigt wird, und (2) letzte, durch die Vorrichtung identifizierte Routen, die in dem Suchfeld 165 angezeigt werden. Dementsprechend sind die Informationsbannersteuerung und das Suchfeld 165 zwei UI-Werkzeuge, die die Anwendung einsetzt, um den Übergang zwischen den unterschiedlichen Modalitäten nahtlos zu machen.
  • Die vierte Phase 117 zeigt, dass die Anweisungseintragsseite 180 Start- und Endfelder beinhaltet, um Start- und Endort für eine Route bereitzustellen und eine Tabelle, welche letzte Routen, die die Anwendung dem Benutzer bereitgestellt hat, auflistet. Andere Steuerungen auf dieser Seite sind Steuerungen zum Starten einer Route, zum Umkehren der Reihenfolge von Start- und Endort, zum Abbrechen der Anweisungsanfrage, zum Auswählen von Geh-, Auto- oder öffentlichen Verkehrstransitrouten. Diese Steuerungen und andere Aspekte der Kartenanwendung sind beschrieben in der US-Patentanmeldung 13/632,102 mit dem Titel ”Problem Reporting in Maps”, eingereicht am 30. September 2012. Die US-Patentanmeldung 13/632,102 ist hier durch Verweis einbezogen.
  • Die vierte Phase veranschaulicht die Benutzerauswahl einer der letzten Navigationsanweisungen/Ziele, die in der Tabelle 182 automatisch befüllt waren. Die fünfte Phase 119 zeigt anschließend drei Routen auf einer 2D-Kartenansicht zwischen den spezifizierten Start- und Endorten, welche durch die Seite 180 spezifiziert werden. Es zeigt auch die Auswahl der zweiten Route und einige Informationen über diese Route in einer Leiste an dem oberen Ende des Aufbaus. Diese Leiste wird gezeigt, um Start- und Beenden-Knöpfe zu beinhalten. Der Start-Knopf wird selektierend in der fünften Phase gezeigt.
  • Wie in der sechsten Phase gezeigt wird, leitet die Auswahl der Start-Taste die Anwendung dazu, einen Punkt-zu-Punkt-Navigationsmodus zu betreten. In diesem Beispiel hat die Anwendung einen 2D-Punkt-zu-Punkt-Navigationsmodus betreten. In anderen Ausführungsformen wird die Anwendung standardmäßig einen 3D-Punkt-zu-Punkt-Navigationsmodus betreten. In diesem Modus zeigt die Anwendung ein realistisches Schild/Zeichen 184, das die Distanz vom aktuellen Ort der Vorrichtung zu dem nächsten Verbindungspunktmanöver in der zu navigierenden Route identifiziert, und einige andere sachdienliche Informationen. Die Anwendung zeigt auch eine obere Leiste, die einige Informationen über die Navigation sowie auch Beenden- und Übersichts-Tasten zum Beenden der Navigation bzw. Erhalten einer Übersicht von dem verbleibenden Anteil der zu navigierenden Route oder den ganzen Anteil von der zu navigierenden Route in anderen Ausführungsformen, beinhaltet.
  • Die Kartenanwendung identifiziert in einigen Ausführungsformen den Ort der Vorrichtung, indem sie die Koordinaten (z. B. Längs-, Höhen- und Breitenkoordinaten) in dem GPS-Signal verwendet, welches die Vorrichtung an dem Ort der Vorrichtung empfängt. Alternativ oder verbindend verwendet die Kartenanwendung andere Methoden (z. B. Mobilfunkmast-Triangulation), um den aktuellen Ort zu berechnen. Wenn der Benutzer, der die Vorrichtung trägt, von der Route abweicht, verfolgt die Kartenanwendung in einigen Ausführungsformen den Ort der Vorrichtung und berechnet eine neue Route von dem abgewichenen Ort neu, um den Benutzer zu dem Zielort vom abgewichenen Ort zurückzuführen. Mit anderen Worten benötigt die Kartenanwendung einiger Ausführungsformen, betrieben im Navigationsmodus, dass die Vorrichtung zu jeder Zeit auf der Route ist.
  • Die Anwendung zeigt weiterhin die schwebende 3D-Steuerung und die schwebende Listensteuerung an, welche oben beschrieben wurden. Es sollte angemerkt werden, dass die Listensteuerung anpassungsfähig zu dem schwebenden Steuerungscluster hinzugefügt wurde beim Hineinkommen in die Routeninspektions- und Routennavigationsmodalitäten, während der Positionsindikator von der schwebenden Steuerung bei Eintritt in die Routennavigationsmodalität entfernt wurde. Auch beim Übergang vom Routeninspektionsmodus zu dem Routennavigationsmodus führt die Anwendung in einigen Ausführungsformen eine Animation durch, die ein komplettes Ausrollen der Seitenrolle involviert, bevor die Anwendung in die Navigationsdarstellung übergeht.
  • In einigen Ausführungsformen beinhaltet der Animationsübergang das Entfernen der oberen Leiste, ihre zugehörigen Steuerungen und den schwebenden Steuerungen von der Navigationsdarstellung und das Bewegen des Schildes 184 zu der oberen Kante der Darstellung eine kurze Zeitspanne nach dem Starten der Navigationsdarstellung. Wie weiter unten beschrieben benötigt die Anwendung das Benutzertippen auf die Navigationskarte, um die obere Leiste, ihre Steuerungen und die schwebenden Steuerungen zurückzubringen und benötigt ein weiteres Tippen, um diese Steuerungen wieder von der Karte zu entfernen, in einigen Ausführungsformen. Andere Ausführungsformen stellen andere Mechanismen zum Betrachten und Entfernen dieser Steuerungen bereit.
  • Als anderer Weg, um dem Benutzer zu erlauben, Navigationserfahrung zu erhalten, stellt die Kartenanwendung in einigen Ausführungsformen ein UI-Element in einen Informationsbanner bereit, der durch einen Pin/eine Nadel erscheint, welcher einen Punkt von Interesse (Point of Interest, POI) darstellt. 2 veranschaulicht ein Beispiel mittels drei Phasen 205215 einer Benutzerinteraktion mit der Kartenanwendung, um Richtungsanweisungen zu erhalten. Dieses Beispiel ist bereitgestellt im Kontext des Verwendens eines Auto-Symbols 230
  • Die erste Phase 205 veranschaulicht eine Karte in einer 3D-Kartenansicht. Wie gezeigt, erscheint eine 3D-Stuerung 250 hervorgehoben, um darauf hinzuweisen, dass die Karte in einer 3D-Kartenansicht ist. Die erste Phase 205 veranschaulicht auch zwei Informationsbanner für die zwei Pins der Suche, resultierend von einer Durchführung einer Suche mit einer Suchanfrage ”Pizza”, wie gezeigt. Der Benutzer selektiert das Auto-Symbol 230. Wie oben erwähnt, dient das Auto-Symbol 230 dem Zeigen einer oder mehrerer Routen zu dem Ort, der durch einen Pin, mit welchem der Banner, der das Auto-Symbol 230 beinhaltet, verbunden ist, dargestellt wird. Das Banner 240, welches das Auto-Symbol 230 beinhaltet, zeigt auch eine kurze Beschreibung des Ortes, eine Sternenbewertung und einen Pfeil zum Starten einer ”Phase” für den POI.
  • Die zweite Phase 210 veranschaulicht die zwei Routen, Route 1 und Route 2, die die Kartenanwendung in einigen Ausführungsformen als Antwort auf die Auswahl des Auto-Symbols 230 in der vorigen Phase 205 zeigt. Der Benutzer hat die Route 1 ausgewählt, wie durch die Hervorhebung der Route 1 angezeigt. Der Benutzer wählt auch den Start-Knopf. Wie oben erwähnt dient der Start-Knopf in einigen Ausführungsformen dem Starten der Navigation gemäß der ausgewählten Route.
  • Die dritte Phase 215 veranschaulicht, dass die Kartenanwendung ein Instruktionsschild 260 anzeigt, welches das Schild für die erste Instruktion ist. Die Kartenanwendung hat die Löschen-Steuerung 255 und den Start-Knopf durch einen Beenden-Knopf 270 und eine Übersichtssteuerung 275 in der oberen Leiste 140 ersetzt. Der Beenden-Knopf dient dem Beenden der Navigation der Route und die Übersichtssteuerung 275 dient dem Zeigen der gesamten Route in der Kartenansicht durch Anpassen der Zoomstufe von der angezeigten Karte, wenn ein Anpassen der Zoomstufe erforderlich ist, um die gesamte Route anzuzeigen. In einigen Ausführungsformen zeigt die Kartenanwendung in der oberen Leiste 140 die voraussichtliche Ankunftszeit (ETA), die Menge an Zeit, um zum Ziel zu gelangen und die verbleibende Distanz zum Ziel wie dargestellt an.
  • Wenn die Kartenanwendung eine Auswahl des Beenden-Knopfes erhält, während die Kartenanwendung im Routeninspektionsmodus betrieben wird, stoppt die Kartenanwendung in einigen Ausführungsformen die Besichtigung der ausgewählten Route durch Zurückgehen zu dem Kartendurchsuchungsmodus. In einigen Ausführungsformen geht die Kartenanwendung zurück zum Kartendurchsuchungsmodus durch Entfernen der ausgewählten Route aus der Karte, Zurücksetzen der Seitenrolle und Ersetzen der Informationen und Steuerung in der oberen Leiste mit einer Menge von anderen Steuerungen, einschließlich einer Anweisungssteuerung, einem Suchfeld und einer Lesezeichensteuerung.
  • Das heißt, die Kartenanwendung nimmt die Erscheinung von der UI-Seite zurück zu einer UI-Seite ähnlich zu der in der ersten Phase 205 gezeigten UI-Seite. In einigen Ausführungsformen verschiebt die Kartenanwendung die Karte nicht in eine andere Region beim Wechseln zu dem Kartendurchsuchungsmodus vom Besichtigungsmodus.
  • B. 2D- und 3D-Navigation
  • In einigen Ausführungsformen kann die Navigationsanwendung eine Navigation entweder in einem 2D-Modus oder in einem 3D-Modus anzeigen. Wie oben erwähnt, ist eine der schwebenden Steuerungen die 3D-Steuerung 250, die es einem Benutzer erlaubt, eine Navigationsdarstellung in drei Dimensionen (3D) zu sehen. 3 veranschaulicht, wie die Navigationsanwendung in einigen Ausführungsformen die 3D-Steuerung 250 als einen schnellen Mechanismus zum Hineingehen in einen 3D-Navigationsmodus bereitstellt. Diese Figur veranschaulicht diese Operation in drei Phasen 305315. Die erste Phase 305 veranschaulicht den Benutzer beim Auswählen der 3D-Steuerung 150 während eines Anschauens einer zweidimensionalen Navigationsdarstellung.
  • Die zweite Phase 310 veranschaulicht die Navigationsdarstellung inmitten ihres Übergangs in eine 3D-Darstellung. Wie in dieser Figur gezeigt, erscheint die 3D-Steuerung hervorgehoben in dieser Phase, um anzugeben, dass die Navigationsdarstellung einen 3D-Modus betreten hat. Wie oben erwähnt, generiert die Navigationsanwendung die 3D-Ansicht der navigierten Karte in einigen Ausführungsformen durch Wiedergabe/Rendern der Kartenansicht aus einer bestimmten Position in der dreidimensionalen Szene, die konzeptionell als die Position einer virtuellen Kamera, die die Kartenansicht aufnimmt, gedacht werden kann. Diese Wiedergabe ist weiter unten beschrieben mit Bezug zu 5.
  • Die dritte Phase 315 veranschaulicht dann die Navigationsdarstellung am Ende ihres Übergangs in ihre 3D-Erscheinung. Wie durch die Differenz zwischen den Höhen der Gebäude in der zweiten und dritten Phase gezeigt, schließt der Übergang von 2D- nach 3D-Navigation in einigen Ausführungsformen eine Animation, die dreidimensionale Objekte in der navigierten Karte größer werdend zeigt, ein. Eine Generierung solcher Animationen, welche Objekte steigend/fallend und größer/kleiner werdend zeigt, ist weiter in der US-Patentanmeldung 13/632,027 mit dem Titel ”Displaying 3D Objects in a 3D Map Presentation”, eingereicht am 30. September 2012, beschrieben. Die US-Patentanmeldung 13/632,027 ist hier durch Verweis einbezogen.
  • Einige Ausführungsformen verwenden einen filmischen bewegten Übergang von der 2D-Kartenansicht zu der 3D-Kartenansicht oder umgekehrt. Zum Beispiel, wenn die Kartenanwendung eine Auswahl der 3D-Steuerung 250 erhält, während ein Startort von einer Route gezeigt wird, beginnt die Kartenanwendung von der 2D-Kartenansicht und geht sanft von einer ersten virtuellen Kameraansicht für die 2D zu einer neuen virtuellen Kamera-3D-Ansicht über, die mehr hineingezoomt ist und in die Richtung vom Start der Route zeigt. Dabei führt die virtuelle Kamera eine Kombination von Verschiebungs-, Zoom- und Rotationsoperationen, um den Start der Navigationsroute zu erreichen, durch. Das heißt, die virtuelle Kamera bewegt sich in einem Bogen und rotiert aufwärts, während die Kamera sich entlang des Bogens abwärts bewegt. Auch kann die Kartenanwendung den Bogen selbst rotieren, um den Standpunkt der virtuellen Kamera zum initialen Straßensegment der Route auszurichten. In anderen Worten, rotiert die Kartenanwendung die Karte während des filmischen Übergangs.
  • 4 veranschaulicht eine Vorrichtung 400, die eine Kartenanwendung anzeigt während die Anwendung von einer nicht immersiven Kartenansicht zur Kartendurchsuchung in eine immersive Kartenansicht für Navigation über sechs Phasen 405430, übergeht.
  • Die erste Phase 405 veranschaulicht eine Benutzerauswahl eines Schnelle-Route-Knopfes für einen Ort ”Pizza Place”, um eine Route von der aktuellen Position des Benutzers (nahe dem Zentrum des Bildschirms der Vorrichtung 400) zu dem ausgewählten Ort zu generieren. Die zweite Phase 410 veranschaulicht die Kartenanwendung, die eine Route 435 anzeigt, um den Ort ”Pizza Place” zu erreichen. In der zweiten Phase 410 wählt der Benutzer die ”Start”-UI-Steuerung 440. Dementsprechend beginnt die Anwendung das Betreten der Navigation.
  • Wie in der dritten bis sechsten Phase 415430 gezeigt, verwenden einige Ausführungsformen einen filmischen Übergang von der 2D-(oder 3D)nicht-immersiven Kartenansicht in die 3D-immersive Kartenansicht. Die Anwendungsanzeige startet von ihrem aktuellen Zustand (der in 410 gezeigte) und geht weich von der ersten virtuellen Kameraansicht zu der neuen virtuellen Kameraansicht, welche mehr hineingezoomt und in die Richtung vom Start der Route zeigt, über. Dabei kann die virtuelle Kamera eine Kombination von Verschiebungs-, Zoom- und Rotationsoperationen durchführen, um den Start der Route für die Navigation zu erreichen. Wie in diesen Phasen gezeigt, bewegt und rotiert die virtuelle Kamera sich an ihren schlussendlichen Ort hinter den Navigationsortsindikator (d. h. der Puck), wie in der sechsten Phase 430 gezeigt.
  • In einigen Ausführungsformen stellt die Kartenanwendung auch zwei unterschiedliche Arten von 3D-Darstellungen – eine immersive 3D-Darstellung und eine nicht immersive 3D-Darstellung – bereit. Die immersive Darstellung zeigt in einigen Ausführungsformen nicht nur mehr Geometrien, sondern auch mehr Details für die Geometrien, welche in der nicht immersiven Darstellung angezeigt werden. Die Kartenanwendung stellt auch weiche Übergänge zwischen der nicht immersiven und der immersiven Darstellung bereit.
  • Um solche weiche Übergänge zu erreichen und andere neuartige Effekte zu generieren, verwendet die Kartenanwendung in einigen Ausführungsformen eine neuartige Bildverarbeitungs-Pipeline. Diese Pipeline führt eine Vielzahl von Vorauslade-Operationen zum Herunterladen, Abrufen und/oder das Komprimieren von Kartenkacheln, die für die Navigationsdarstellung benötigt werden könnten, durch, um ihre Wiedergabe-Pipeline für ihre Wiedergabeoperationen vorzubereiten und um eine doppelte Pipeline (duplicate pipeline) vorzubereiten, um weich zwischen der immersiven und der nicht immersiven 3D-Darstellung überzugehen. Um immersive und nicht immersive 3D-Kartendarstellungen anzuzeigen, müssen einige Ausführungsformen eine Vielzahl von Kacheln für Clientvorrichtungen zur Wiedergabe generieren, um Straßen, Gebäude und Umgebungsszenen zu erzeugen. In einigen Ausführungsformen beinhalten Beispiele von solchen Kacheln Straßen- und Gebäudekacheln, die für nicht immersive 3D-Darstellungen verwendet werden und Navigation- und Gebäudekacheln, die für immersive 3D-Darstellungen verwendet werden. Diese Pipeline ist in der oben einbezogenen US-Patentanmeldung 13/632,102 mit dem Titel ”Problem Reporting in Maps”, eingereicht am 30. September 2012, beschrieben. Diese Pipeline ist auch detailliert in der US-Patentanmeldung 13/632,040 mit dem Titel ”Virtual Camera for 3D Maps”, eingereicht am 30. September 2012, beschrieben. Die US-Patentanmeldung 13/632,040 ist hierin durch Verweis eingeschlossen.
  • In einigen Ausführungsformen sind die nicht immersiven und immersiven Ansichtsmodi Ansichtsmodi zum Ansehen von unterschiedlichen 3D-Karten, die unterschiedliche Konstrukte und/oder Geometrien haben. Zum Beispiel dient der nicht immersive Ansichtsmodus einiger Ausführungsformen dem Ansehen einer 3D-Karte, die Straßen, Gebäuden, Landbedeckung usw. beinhaltet. Der immersive Ansichtsmodus dient dem Ansehen einer detaillierteren 3D-Karte, die die gleichen oder ähnliche Elemente (z. B. Straßen, Gebäude, Landbedeckung usw.) wie die 3D-Karte für den nicht immersiven Ansichtsmodus beinhaltet. Allerdings beinhaltet diese detailliertere 3D-Karte auch detailliertere Konstrukte (z. B. Bäume, Laub, Bürgersteige, Mittelstreifen, Straßenspuren, Straßenasphalt, Mittelstreifen, Fußgängerübergänge usw.), die eine realistischere und reiche 3D-Karte bereitstellen.
  • Außerdem können die nicht immersiven und immersiven Ansichtsmodi definiert werden für das Ansehen von 3D-Karten in unterschiedlichen Bereichen von Zoomstufen. Zum Beispiel ist der nicht immersive Ansichtsmodus einiger Ausführungsformen definiert für das Ansehen einer 3D-Karte in niedrigen Zoomstufen (z. B. Zoomstufen 0–14), während der immersive Ansichtsmodus einiger Ausführungsformen definiert ist für das Ansehen der 3D-Karte in hohen Zoomstufen (z. B. Zoomstufen 16–21). Die Ansichtsmodi können definiert werden, um eine beliebige Anzahl von unterschiedlichen Zoomstufen in unterschiedlichen Ausführungsformen zu betrachten. In einigen Fällen ist der Bereich der Zoomstufen des immersiven Ansichtsmodus definiert als höhere Zoomstufen als, niedrigere Zoomstufen als, die gleichen Zoomstufen wie, oder Zoomstufen, die die Zoomstufen überlappen, die für den nicht immersiven Ansichtsmodus definiert sind. Diese Ansichtsmodi und andere Aspekte der Kartenanwendung sind in der oben eingebundenen US-Patentanmeldung 13/632,040 mit dem Titel ”Virtual Camera for 3D Maps”, eingereicht am 30. September 2012, beschrieben.
  • 1. Virtuelle Kamera
  • Die Navigationsanwendung in einigen Ausführungsformen ist fähig, Navigationskarten aus mehreren Perspektiven anzuzeigen. Die Anwendung kann Karten in drei Dimensionen (3D) oder in zwei Dimensionen (2D) zeigen. Die 3D-Karten sind generierte Simulationen von einer virtuellen Szene wie sie von einer virtuellen Kamera gesehen wird. 5 stellt ein vereinfachtes Beispiel dar, um das Konzept einer virtuellen Kamera 512 zu veranschaulichten. Wenn eine 3D-Navigationskarte gerendert wird, ist eine virtuelle Kamera eine Konzeptionalisierung der Position in der 3D-Kartenszene, von welcher die Vorrichtung eine 3D-Ansicht der Szene wiedergibt. 5 veranschaulicht einen Ort in einer 3D-Navigationskartenszene 510, die vier Objekte beinhaltet, welche zwei Gebäude und zwei kreuzende Straßen sind. Um das Konzept der virtuellen Kamera zu veranschaulichen, veranschaulicht diese Figur drei Szenarien, wovon jedes einem unterschiedlichen virtuellen Kameraort (d. h. einer unterschiedlichen Rendering-/Wiedergabeposition) und einer unterschiedlichen resultierenden Ansicht, die auf der Vorrichtung angezeigt wird, entspricht.
  • Die erste Phase 501 zeigt die virtuelle Kamera 512 bei einer ersten Position, die abwärts bei einem Winkel (z. B. ein 30 Grad Winkel), z. B. in Richtung der 3D-Szene 510 zeigt. Mit einer Wiedergabe der 3D-Szene von der Position und dem Winkel, die in Phase 501 gezeigt sind, generiert die Anwendung die 3D-Kartenansicht 518. Von dieser Position zeigt die Kamera zu einem Ort, der eine bewegende Position vor der Vorrichtung ist. Die virtuelle Kamera 512 wird hinter dem aktuellen Ort der Vorrichtung gehalten. In diesem Fall bedeutet ”hinter dem aktuellen Ort” rückwärts entlang des definierten Pfades der Navigationsanwendung in der entgegengesetzten Richtung von der aktuellen Richtung, in der sich die Vorrichtung bewegt.
  • Die Navigationskartenansicht 518 sieht aus als ob sie von einer Kamera von oben und hinter dem Ortsindikator 516 der Vorrichtung gefilmt wird. Der Ort und Winkel der virtuellen Kamera platziert den Ortsindikator 516 nahe dem unteren Ende der Navigationskartenansicht 518. Dies führt auch zu einer Befüllung der Mehrheit des Bildschirms mit den Straßen und den Gebäuden, die vor dem aktuellen Ort von der Vorrichtung sind. Im Gegensatz dazu ist in einigen Ausführungsformen der Ortsindikator 516 im Zentrum des Bildschirms mit einer Hälfte des Bildschirms Gegenstände vor der Vorrichtung darstellend, und mit der anderen Hälfte Gegenstände hinter der Vorrichtung darstellend. Um diese Figur zu vereinfachen, sind keine Straßenschilder für die Ansichten 518, 528 und 538 abgebildet.
  • Die zweite Phase 502 zeigt die virtuelle Kamera 512 an einer unterschiedlichen Position abwärts in Richtung der Szene 510 mit einem größeren zweiten Winkel (z. B. –45°) zeigend. Die Anwendung gibt die Szene 510 aus diesem Winkel, in der 3D-Navigationskartenansicht 528 resultierend, wieder. Die Gebäude und die Straßen sind kleiner als ihre Veranschaulichung in der ersten Navigationskartenansicht 518. Wieder ist die virtuelle Kamera 512 über und hinter dem Ortsindikator 516 in der Szene 510. Dies führt wieder zu einem Erscheinen des Ortsindikators in dem unteren Teil der 3D-Kartenansicht 528. Der Ort und die Ausrichtung der Kamera führen auch wieder zu einer Anzeige von Gegenständen vor dem Ortsindikator 516 (d. h. dem Ort des Autos, das die Vorrichtung trägt) in der Majorität des Bildschirms, dies ist was man zum Navigieren wissen muss.
  • Die dritte Phase 503 zeigt die virtuelle Kamera 512 in Ansicht von oben nach unten, die abwärts auf einen Ort in der 3D-Kartenszene 510 sieht, die verwendet wurde, um die 3D-Ansichten 518 und 528 wiederzugeben. Die Szene, die aus dieser Perspektive gerendert/wiedergegeben wird, ist die 2D-Kartenansicht 538. Anders als die 3D-Wiedergabeoperationen der ersten und zweiten Phase, welche in einigen Ausführungsformen perspektivische 3D-Wiedergabeoperationen sind, ist die Wiedergabeoperation in der dritten Phase relativ einfach, da es nur einen Teil aus der 2D-Karte ausschneiden muss, die durch eine von der Anwendung oder dem Benutzer spezifizierten Zoomstufe identifiziert wird. Dementsprechend verkompliziert die Charakterisierung der virtuellen Kamera in dieser Situation etwas unnötigerweise die Beschreibung der Operation der Anwendung, da das Abschneiden eines Teils einer 2D-Karte keine perspektivische Wiedergabeoperation ist.
  • In der dritten Phase 503 wechselt die Kartenanwendung in einigen Ausführungsformen von einer Wiedergabe einer 3D-Szene aus einer bestimmten perspektivischen Richtung zu einem Abschneiden einer 2D-Szene, wenn die Kamera von der 3D-perspektivischen Ansicht zu einer 2D-Ansicht von oben nach unten wechselt. Dies ist weil in diesen Ausführungsformen die Anwendung dazu bestimmt ist, eine vereinfachte Wiedergabeoperation, welche einfacher ist und keine unnötigen perspektivischen Artefakte generiert, zu nutzen. In anderen Ausführungsformen hingegen verwendet die Kartenanwendung eine perspektivische Wiedergabeoperation, um eine 3D-Szene von einer virtuellen Kameraposition von oben nach unten wiederzugeben. In diesen Ausführungsformen ist die generierte 2D-Kartenansicht etwas unterschiedlich zu der in der dritten Phase 503 veranschaulichten Kartenansicht 538, weil jedes Objekt, das vom Zentrum der Ansicht entfernt ist, verzerrt ist, mit einer größer werdenden Verzerrung je weiter die Objektdistanz vom Zentrum der Ansicht entfernt ist.
  • Die virtuelle Kamera 512 bewegt sich entlang unterschiedlichen Trajektorien in unterschiedlichen Ausführungsformen. Zwei solcher Trajektorien 550 und 555 sind in 5 veranschaulicht. In beiden dieser Trajektorien bewegt sich die Kamera in einem Bogen und rotiert abwärts während die Kamera sich aufwärts entlang des Bogens bewegt. Die Trajektorie 555 unterscheidet sich von der Trajektorie 550, indem sich in der Trajektorie 555 die Kamera rückwärts von dem aktuellen Ort bewegt, während sie sich den Bogen hinauf bewegt.
  • Während der Bewegung entlang eines der Bögen rotiert die Kamera, um einen Punkt vor dem Ortsindikator am Brennpunkt der Kamera zu behalten. In einigen Ausführungsformen kann der Benutzer die dreidimensionale Ansicht ausschalten und mit einer reinen zweidimensionalen Ansicht weiter zu machen. Zum Beispiel erlaubt die Anwendung in einigen Ausführungsformen einen durch Verwenden eines 3D-Knopfes 560 einschaltbaren und ausschaltbaren dreidimensionalen Modus. Der 3D-Knopf 560 ist wesentlich für das Punkt-zu-Punkt-Navigationsmerkmal, in welchem es eine Rolle als ein Indikator und eines Umschalters hat. Wenn 3D ausgeschaltet ist, wird die Kamera eine 2D-Navigationserfahrung beibehalten, aber wenn 3D einschaltet ist, könnte es weiterhin einige Perspektiven von oben nach unten geben, wenn 3D-Ansichtswinkel nicht angemessen sind (z. B. wenn man um eine Ecke geht, welche im 3D-Modus versperrt wäre).
  • 2. 3D-Steuerung
  • 6 veranschaulicht in sechs unterschiedlichen Phasen 605630, dass die Kartenanwendung in einigen Ausführungsformen die Erscheinung der 3D-Steuerung ändert, um unterschiedliche 2D- und 3D-Zustände von der Kartenansicht anzugeben. Die erste Phase 605 veranschaulicht, dass die Kartenanwendung eine Karte und die schwebenden Steuerungen einschließlich der 3D-Steuerung 150 anzeigt. Die Kartenanwendung zeigt die Karte in 2D in einer bestimmten niedrigen Zoomstufe (Karte ist nicht weit hineingezoomt) wie gezeigt an. Die 3D-Steuerung 150 wird unter Verwendung einer ersten Erscheinung (z. B. graue Buchstaben ”3D”) angezeigt, um anzugeben, dass die 3D-Kartendaten nicht in dieser bestimmten Zoomstufe verfügbar sind. Die erste Phase 605 zeigt auch, dass die Kartenanwendung die Gesten-Eingaben des Benutzers, um in die Karte hinein zu zoomen (z. B. um die Zoomstufe zu erhöhen) empfängt.
  • Die zweite Phase 610 zeigt, dass die Kartenanwendung die Karte in einer höheren Zoomstufe anzeigt als sie es in der vorherigen Phase 605 getan hat. Allerdings behält die 3D-Steuerung 150 die erste Erscheinung, weil die 3D-Kartendaten sogar in dieser bestimmten höheren Zoomstufe weiterhin nicht verfügbar sind. Die zweite Phase 610 zeigt auch, dass die Kartenanwendung eine andere Gesten-Eingabe empfängt, um weiter in die Karte hinein zu zoomen.
  • Die dritte Phase 615 zeigt, dass die Kartenanwendung die Karte in einer höheren Zoomstufe anzeigt als sie es in der vorherigen Phase 610 getan hat. Die Kartenanwendung hat die Erscheinung der 3D-Steuerung 150 in eine zweite Erscheinung (z. B. ”3D” in schwarzen Buchstaben) geändert, um anzugeben, dass die 3D-Kartendaten in dieser Zoomstufe verfügbar sind. Wenn die Kartenanwendung eine Selektion von der 3D-Steuerung 150 empfängt, würde die Kartenanwendung in einigen Ausführungsformen die Erscheinung der 3D-Steuerung 150 zu einer dritten Erscheinung (z. B. ”3D” in blauen Buchstaben) ändern und die Karte in 3D anzeigen (z. B. durch Ändern in eine perspektivische Ansicht einer graden Abwärtsansicht für 2D). Die dritte Erscheinung würde daher angeben, dass die Karte in 3D angezeigt wird. Die dritte Phase 615 zeigt, dass die Kartenanwendung noch eine weitere gestische Eingabe empfängt, um sogar weiter zu einer höheren Zoomstufe in die Karte hinein zu zoomen. Die dritte Phase 615 zeigt, dass die Kartenanwendung Gebäude als graue Kästen in dieser Zoomstufe in der Karte anzeigt.
  • Die vierte Phase 620 zeigt, dass die Kartenanwendung die Karte in einer höheren Zoomstufe anzeigt als sie es in der vorherigen Phase 615 getan hat. Die Kartenanwendung hat die Erscheinung der 3D-Steuerung 150 in eine vierte Erscheinung (z. B. ein Gebäude-Symbol in einer ersten Farbe wie gezeigt) geändert, um anzugeben, dass 3D-immersive Kartendaten zur Wiedergabe einer immersiven 3D-Kartenansicht in dieser Zoomstufe verfügbar sind. Die vierte Phase 620 zeigt auch, dass die Kartenanwendung in einigen Ausführungsformen eine Selektion von der 3D-Steuerung 150 empfängt.
  • Die fünfte und sechste Phase 625 und 630 zeigen nachfolgende Ansichten (jedoch nicht notwendigerweise aufeinanderfolgende Ansichten), die die Kartenanwendung, nachdem sie anfängt, eine 3D-immersive Kartenansicht bereitzustellen, bereitstellt. In einigen Ausführungsformen ändert sich die Zoomstufe nicht zwischen der fünften und sechsten Phase, doch die Höhe der Gebäude in den Kartenansichten nimmt zu, um eine Animation, die bestimmt, dass die Ansicht sich in die 3D-immersive Kartenansicht von der 2D-Ansicht bewegt, bereitzustellen. Auch von der vierten Phase 620 zu der fünften Phase 625 hat die Kartenanwendung die Erscheinung der 3D-Steuerung in die fünfte Erscheinung (z. B. ein Gebäude-Symbol in einer zweiten Farbe wie gezeigt) geändert, um anzugeben, dass die Karte in der 3D-immersiven Ansicht angezeigt wird.
  • 3. Automatisches Ändern von Ansichten
  • Die Anwendung einiger Ausführungsformen erlaubt, jeden bestimmten virtuellen Kamerawinkel zu verwenden, nicht nur die hier spezifizierten 30 Grad und 60 Grad Winkel. Die Anwendung einiger Ausführungsformen erlaubt es dem Benutzer, den Abwärtswinkel für die Kamera zu setzen. Die Anwendung einiger Ausführungsformen passt den Winkel der Kamera aus mehreren Gründen automatisch an (z. B. um einen bestimmten Punkt, der im Fokus ist, nahe des oberen Endes des Bildschirms zu halten). In noch anderen Ausführungsformen stellt die Navigationsanwendung den Winkel der Kamera automatisch ein, aber erlaubt es dem Benutzer, den automatisch eingestellten Winkel zu überschreiben.
  • In einigen Ausführungsformen, wenn eine Vorrichtung, in der die Navigationsanwendung in einem 3D-Modus läuft, dabei ist, einen Verbindungspunkt mit einer Abbiegung zu erreichen, wechselt die Navigationsanwendung in einen 2D-Modus, um dem Benutzer zu ermöglichen, die Abbiegung klarer zu identifizieren. 7 veranschaulicht den Wechsel vom 3D-Modus zum 2D-Modus in einigen Ausführungsformen. Die Figur wird in fünf Phasen 701705 gezeigt. In Phase 701 zeigt die Anwendung eine Navigationskarte in einer 3D-Ansicht. Der Navigationskasten 710 zeigt eine Rechtsabbiegung in 50 Fuß. Die Karte 712 ist in 3D sowie auch die Ortskennung 714.
  • Während die Vorrichtung sich der Kreuzung in Phase 702 (wie durch den Navigationskasten 720 angegeben) annähert, wechselt die 3D-Karte 712 zu einer 2D-Karte 722 ebenso wie der Ortsindikator 724 in 2D. Die Kartenanwendung ändert auch die Erscheinung der 3D-Steuerung 150, um anzugeben, dass die Karte jetzt in 2D ist. Die Karte 722 verbleibt in 2D, während die Vorrichtung in Phase 703 die Ecke umrundet. Während die Vorrichtung die Ecke umrundet, wird der Navigationskasten 730 mit den Instruktionen ”rechts abbiegen in die A St.” in Phase 703 ersetzt durch den Navigationskasten 740 mit den Instruktionen ”0,5 Meilen weiter geradeaus auf der A Street” in Phase 704. Die Karte verbleibt in 2D in Phase 704, bis die Ecke vollständig gefahren wurde, woraufhin, in Phase 705, die Karte zu einer 3D-Ansicht mit neuen Instruktionen ”0,3 Meilen, Ziel befindet sich auf Ihrer linken Seite” in dem Navigationskasten 750 zurückkehrt. Die Kartenanwendung hat auch die Erscheinung der 3D-Steuerung 150 geändert, um anzugeben, dass die Karte jetzt wieder in 3D ist.
  • In einigen Ausführungsformen bestimmt die Navigationsanwendung einige oder alle der folgenden fünf Informationsteile für jede Ortsaktualisierung (z. B. 1 Mal pro Sekunde). Zuerst bestimmt die Navigationsanwendung den Ort des Referenzpunktes (z. B. den Ort des Benutzers).
  • Zweitens bestimmt die Navigationsanwendung den Ort des Fokuspunktes der virtuellen Kamera, welcher verwendet wird, um zu bestimmen, in welche Richtung die virtuelle Kamera zugewendet sein soll. Wenn der Benutzer von der Route abweicht, wird der Fokuspunkt auf eine fixe Distanz vor dem Benutzer entlang der Reiserichtung des Benutzers (wenn diese bestimmt werden kann) oder eine fixe Distanz nördlich des Benutzers (wenn die Reiserichtung des Benutzers nicht bestimmt werden kann) sein. Wenn der Benutzer auf der Route ist, wird der Fokuspunkt eine fixe Distanz vor dem Benutzer entlang der Route sein, mit dem Winkel zwischen dem Vektor des Benutzers und diesem Fokuspunkt und die Reiserichtung des Benutzers bei einem maximalen Wert gedeckelt. Dies erlaubt der virtuellen Kamera, subtil um die Abbiegungen zu spähen, bevor der Benutzer tatsächlich abbiegt. Zum Beispiel, wenn die Route kurz voraus um eine Ecke abbiegt, wird der Fokuspunkt ein Punkt um die Ecke von dem aktuellen Ort der Vorrichtung sein. Während des Drehens der virtuellen Kamera, um diesem aktuellen Punkt zugewandt zu sein, könnte dies verursachen, dass die virtuelle Kamera direkt zu einem Gebäude gewandt ist, wird die virtuelle Kamera in dem Sinne gedeckelt wie weit sie von der derzeitigen Richtung weg sehen kann. Drittens bestimmt die Navigationsanwendung den Ort des Punktes von Interesse (z. B. den Ort einer bevorstehenden Kreuzung).
  • Viertens bestimmt die Navigationsanwendung die Art der virtuellen Kameraansicht (von oben nach unten zentriert, von oben nach unten voraus oder Dach). ”Von oben nach unten zentriert” bedeutet, dass die virtuelle Kamera gerade nach unten auf den Ort des Benutzers sehen soll, so dass der Ort des Benutzers im Zentrum des Bildschirms ist. ”Von oben nach unten voraus” bedeutet, dass die virtuelle Kamera gerade nach unten auf den Ort des Benutzers sehen soll, so dass der Ort des Benutzers hin zum unteren Ende des Bildschirms ist. ”Dach” bedeutet, dass die virtuelle Kamera hinter dem Ort des Benutzers sein soll und so geneigt sein soll, dass sie nach vorn entlang des Vektors von dem Ort des Benutzers zum Fokuspunkt sieht. Wenn der Benutzer von der Route abweicht oder die Reiserichtung des Benutzers nicht bestimmt werden kann (z. B. wenn der Benutzer parkt), wird die virtuelle Kamera in der von oben nach unten zentrierten Ansichtsart sein. Ansonsten wird die Ansichtsart dadurch bestimmt, ob der Benutzer ”2D”-Navigation angefragt hat oder nicht. Wenn der Benutzer 2D-Navigation angefragt hat, wird die Ansichtsart von oben nach unten voraus sein. Ansonsten wird die Ansichtsart Dach sein.
  • Fünftens bestimmt die Navigationsanwendung die Fokusart der virtuellen Kamera (z. B. Herumfahr- oder harter Fokus). ”Herumfahr-Fokusart” bedeutet, dass die virtuelle Kamera eine vordefinierte Höhe und einen vordefinierten Neigungswinkel basierend auf der Ansichtsart annehmen soll. ”Harter Fokus” bedeutet, dass die virtuelle Kamera ihre Höhe (im Fall von oben nach unten zentriert oder von oben nach unten voraus Ansichtsarten) oder ihre Neigung (im Fall von einer Dach-Ansichtsart) anpassen sollte, so dass der gegebene Punkt von Interesse gerade im Bildschirm ist (z. B. die virtuelle Kamera soll den Punkt von Interesse fokussieren, während der Benutzer sich ihm annähert). Wenn weit von einer Kreuzung entfernt, setzt die Navigationsanwendung die virtuelle Kamera in den Herumfahr-Fokusmodus. Beim Annähern an eine ”interessante” Kreuzung, setzt die Navigationsanwendung die virtuelle Kamera in den harten Fokusmodus, wie oben beschrieben, und der Ort der Kreuzung (Punkt von Interesse) wird an die virtuelle Kamera übergeben. Im harten Fokusmodus stellt die Anwendung die Höhe der virtuellen Kamera (im Fall von oben nach unten zentriert oder oben nach unten voraus Ansichtsarten) oder die Neigung der virtuellen Kamera (im Fall von Dach-Ansichtsart) ein, so dass die Kreuzung an einer angemessenen Bildschirmposition ist. Eine gegebene Kreuzung wird als ”interessant” genug zum Fokussieren bestimmt, indem der Winkel, in dem der Benutzer die Kreuzung verlassen wird, verwendet wird. Wenn der Winkel groß genug ist (z. B. eine 90 Grad Rechtsabbiegung), wird die Kreuzung als ”interessant” betrachtet und die virtuelle Kamera wird auf sie fokussieren. Wenn der Winkel zu klein ist (z. B. auf ein Freeway einfädeln), wird die virtuelle Kamera in der Herumfahr-Fokusart bleiben.
  • Aus diesen fünf Informationsteilen berechnet die Navigationsanwendung die gewünschte Position und Ausrichtung der virtuellen Kamera. Aus der gewünschten Position und Ausrichtung können die folgenden drei Kernpunkte entnommen werden: (1) die Position der virtuellen Kamera, (2) die Kreuzung zwischen dem Vorwärtsvektor der virtuellen Kamera und dem Boden und (3) einen Punkt entlang des geraden Vektors der virtuellen Kamera. Die drei Punkte werden unabhängig voneinander folgendermaßen animiert: (1) wenn ein neuer Punkt verfügbar ist, passt die Anwendung ein kubisches Polynom zwischen der letzten ausgewählten Position/Tangente für diesen Punkt und dem neuen Punkt an, und (2) bei jedem Schritt der Animation wertet die Navigationsanwendung die kubischen Polynome für jede Kurve aus und entnimmt die Position und Ausrichtung der virtuellen Kamera aus ihnen.
  • 4. Benutzereinstellung der Kamerahöhe
  • Zusätzlich zu (oder anstelle von) der Steuerung der Kamera durch die Navigationsanwendung (z. B. Umschalten von 3D zu 2D beim Gehen um Ecken) erlauben einige Ausführungsformen dem Benutzer auch, die Stufe (level) der Kamera einzustellen. Einige Ausführungsformen erlauben dem Benutzer, eine Befehlsgeste mit zwei Fingern zu machen, um die Distanz (Höhe) und den Winkel der Kamera einzustellen. Einige Ausführungsformen erlauben sogar mehrere Arten von Gesten, um die Kamera zu steuern. 8 veranschaulicht die Einstellung der Distanz einer virtuellen Kamera durch zusammenziehende und expandierende Gesten. Die Figur wird in drei Phasen gezeigt 801803. In der Phase 801 zeigt die Anwendung eine Grundszene 810 mit einer virtuellen Kamera 812 in einer Standardstufe für eine 3D-Ansicht und die aus der Szene 810 wiedergegebene Bildschirmansicht 814. Die Grundszene enthält zwei Gebäude und eine T-Kreuzung. In Phase 801 werden die Gebäude aus einem 45 Grad Winkel herab und einer bestimmten Höhe, welche sie in einer bestimmten Größe erscheinen lässt, betrachtet. Der Ortsindikator 816 wird auch in einer bestimmten Größe gezeigt.
  • In Phase 802 macht der Benutzer eine Geste, indem er zwei Fingerspitzen nahe zueinander auf dem Bildschirm der Vorrichtung platziert, in der Bildschirmansicht 824 und indem er die Fingerspitzen auseinander bewegt, während sie auf dem Bildschirm sind. Das Auseinanderbewegen der Fingerspitzen hat den Effekt, die Karte (sowohl den Teil zwischen den Fingern als auch den Rest der Karte) größer zu machen. Um die Gegenstände in der Karte größer erscheinen zu lassen, veranlasst die Anwendung die virtuelle Kamera 812 dazu hineinzuzoomen. In einigen Ausführungsformen ist die Linie 850, die die Kartenanwendung verwendet, um die virtuelle Kamera 812 entlang derer zu bewegen, eine Linie gebildet aus der virtuellen Kamerafront 812 und dem Fokuspunkt der virtuellen Kamera 812. Die Kartenanwendung bewegt in einigen Ausführungsformen die virtuelle Kamera 812 entlang einer Linie gebildet durch die Front der virtuellen Kamera 812 und einem Ort in der 3D-Karte 810 basierend auf der Eingabe des Benutzers, um in die Ansicht der 3D-Karte 810 hineinzuzoomen.
  • Nach dem Hineinzoomen für die Phase 802 entscheidet sich der Benutzer für die Phase 803 hinauszuzoomen. In dieser Phase platzierte der Benutzer zwei Finger auf dem Bildschirm und brachte sie näher zusammen. Die Finger näher zusammenzubringen hat den Effekt, die Karte zu verkleinern (sowohl den Teil zwischen den Fingern als auch den Rest der Karte). Die Hinauszoomeinstellung wird durch Bewegung der virtuellen Kamera 812 weiter entfernt von der 3D-Karte 810 entlang der Linie 855 erreicht. In einigen Ausführungsformen ist die Linie 855, die die Kartenanwendung zum Bewegen der virtuellen Kamera 812 entlang derer verwendet, eine Linie gebildet aus der Front der virtuellen Kamera 812 und dem Fokuspunkt der virtuellen Kamera 812. Die Kartenanwendung von einigen Ausführungsformen bewegt die virtuelle Kamera 812 entlang einer Linie gebildet von der Front der virtuellen Kamera 812 und einem Ort in der 3D-Karte 810 basierend auf der Eingabe des Benutzers, um in die Ansicht der 3D-Karte 810 zu zoomen.
  • Die Wiedergabe einer 3D-Kartenansicht, unter Verwendung der virtuellen Kamera 812, resultiert in dieser Position in einer 3D-Kartenansicht 834, in welcher die Gebäude und die Straßen weiter entfernt als die Position veranschaulicht in der 3D-Kartenansicht 824 erscheinen. Wie durch die gestrichelte Linienversion der virtuellen Kamera 812 gezeigt, bewegt sich die virtuelle Kamera 812 weiter von der 3D-Karte 810 entlang der Linie 855 weg.
  • Zusätzlich zu der Steuerbarkeit durch Hinein- und Hinauszoomen erlauben einige Anwendungen einem Benutzer, den Winkel der virtuellen Kamera zu ändern. 9 veranschaulicht eine Ausführungsform von einer Kamera, deren Winkel durch Gesten eingestellt werden kann. Die Figur wird in drei Phasen 901903 gezeigt. In Phase 901 zeigt die Kamera mit 45 Grad hinunter auf Szene 910. Die Szene 910 enthält zwei Gebäude und eine T-Kreuzung, welche in der Bildschirmansicht 914 gezeigt sind. Die Gebäude sind aus einem bestimmten Winkel in einer bestimmten Größe gezeigt. Der Ortsindikator 916 ist auch in einer bestimmten Größe gezeigt.
  • In Phase 902 hat der Benutzer zwei Finger 920 auf dem Bildschirm ungefähr horizontal zueinander platziert und hinaufgezogen. Dies hat den offensichtlichen Effekt, die Szene mit den Fingern heraufzuziehen. Das Aufsteigen der Szene erfolgt durch Absenken der virtuellen Kamera 912 und Ändern ihres Betrachtungswinkels von 45 Grad zu 30 Grad. In der Bildschirmansicht 924 sehen die Gebäude und der Ortsindikator größer aus als in der Phase 901.
  • Nach dem der Benutzer die Szene in der Phase 902 heraufzieht, zieht der Benutzer dann die Szene in Phase 903 hinunter. Um dies zu tun, platziert der Benutzer wieder zwei Finger 930 auf dem Bildschirm und zieht sie hinunter. Dies zieht die Szene zusammen mit den Fingern 930 hinunter. Das Fallen der Szene wird durch Aufsteigen der virtuellen Kamera 912 und Ändern ihres Winkels mit der Szene 910 auf 60 Grad abwärts, erreicht. In der Phase 903 hat sich die Kamera 912 weiter hinauf bewegt und ist weiter nach unten gewinkelt als in der Phase 901. Dementsprechend sehen in der Phase 903 die Gebäude und die Ortskennungen 916 wieder kürzer und kleiner aus als in der Phase 901.
  • In einigen Ausführungsformen stellt die Kartenanwendung einen Trägheitseffekt für unterschiedliche Operationen bereit (z. B. Verschieben, Rotieren, von 2D nach 3D hineinkommen). Wenn ein Benutzer eine bestimmte Eingabeart bereitstellt (z. B. eine Eingabe, die mit einer höheren Geschwindigkeit als einer Schwellgeschwindigkeit abschließt), um eine 3D-Karte zu verschieben, generiert die Kartenanwendung einen Trägheitseffekt, der die 3D-Karte dazu veranlasst, weiter zu verschieben und bis zu einem Stopp zu verlangsamen. Der Trägheitseffekt stellt in einigen Ausführungsformen dem Benutzer eine realistischere Interaktion mit der 3D-Karte bereit, die das Verhalten der realen Welt nachahmt. Die Details von Trägheitseffekten und Implementierungen von Trägheitseffekten sind in der oben eingebundenen US-Patentanmeldung 13/632,040 mit dem Titel ”Virtual Camera for 3D Maps” beschrieben.
  • Die Anwendung einiger Ausführungsformen erlaubt eine unabhängige Steuerung der Distanz und des Winkels der Kamera. Zum Beispiel erlaubt sie, die Distanz durch zusammenziehende und expandierende Fingergesten und den Winkel durch Ziehen von horizontal platzierten Fingern, zu steuern. Andere Ausführungsformen benutzten die Geste, welche auch immer durchgeführt wird, um entweder eine Distanz oder einen Winkel von der Kamera zu setzen bei automatischem Setzen der anderen Variable. Während in 8 und 9 Gesten gezeigt werden, welche in einer bestimmten Richtung durchgeführt werden, um ein bestimmtes Resultat zu erreichen, können in einigen Ausführungsformen eine oder beide dieser Gesten umgekehrt sein. Zum Beispiel könnte in einigen Ausführungsformen das Hinunterziehen von horizontal platzierten Fingern die Kamera anstelle der Szene hinunterbringen. Das würde den Effekt haben, die Szene hinunterzubewegen, wenn die Finger hinaufbewegt werden und die Szene hinaufzubewegen, wenn die Finger hinunterbewegt werden.
  • 10 veranschaulicht konzeptionell ein Merkmal, das von der Kartenanwendung einiger Ausführungsformen bereitgestellt ist, um die Position einer virtuellen Kamera in einem definierten Bereich entlang eines Bogens beizubehalten. Insbesondere veranschaulicht 10 die virtuelle Kamera 1000 in drei unterschiedlichen Phasen 10051015, welche die Position der virtuellen Kamera 1000 zeigt, welche in einem definierten Bereich des Bogens 1050 beibehalten wird. Wie in 10 gezeigt, enthält ein Ort in einer 3D-Karte 1035 zwei Gebäude und zwei Straßen, die eine T-Kreuzung bilden.
  • Die erste Phase 1005 zeigt die virtuelle Kamera 1000 an einer bestimmten Position entlang des Bogens 1050. Wie gezeigt, repräsentiert der Bogen 1050 einen definierten Bereich (z. B. einen Winkelbereich), in dem die virtuelle Kamera 1000 bewegbar ist. Die erste Phase 1005 zeigt auch drei Positionen 10551065 entlang des Bogens 1050 (z. B. perspektivische Ansichtswinkel). In diesem Beispiel bewegt die Kartenanwendung die virtuelle Kamera 1000 entlang des Bogens 1050 zwischen dem hohen perspektivischen Ende des Bogens 1050 (z. B. die Position entlang des Bogens 1050, wenn die virtuelle Kamera 1000 am weitesten abwärts geneigt ist) und die Position 1055 auf eine ähnliche Weise wie die oben anhand der 9 beschrieben. Eine Wiedergabe einer 3D-Kartenansicht basierend auf der Position der virtuellen Kamera 1000 in der ersten Phase 1005, führt zu der 3D-Kartenansicht 1025.
  • Wenn die virtuelle Kamera 1000 die Position 1055 passiert während sie sich zu dem unteren perspektivischen Ende des Bogens 1050 bewegt, verringert die Kartenanwendung die Geschwindigkeit (z. B. verlangsamen), so dass die virtuelle Kamera 1000 sich zu dem niedrigen perspektivischen Ende des Bogens 1050 ungeachtet der durch den Benutzer bereitgestellten Eingabe, bewegt. In einigen Ausführungsformen reduziert die Kartenanwendung die Geschwindigkeit der virtuellen Kamera 1000 in einer konstanten Rate, während in anderen Ausführungsformen die Kartenanwendung die Geschwindigkeit der virtuellen Kamera 1000 in einer exponentiellen Rate reduziert. Zusätzliche und/oder unterschiedliche Verfahren zum Verringern der Geschwindigkeit der virtuellen Kamera 1000 werden in einigen Ausführungsformen verwendet.
  • Die zweite Phase 1010 zeigt, dass sich die virtuelle Kamera 1000 zu einer Position entlang des Bogens 1050 zu oder nahe des niedrigen perspektivischen Endes des Bogens 1050 bewegt hat. Wie gezeigt stellt ein Benutzer eine Eingabe bereit, um die Perspektive der Ansicht der 3D-Karte 1035 einzustellen durch Berührung des Bildschirms mit zwei Fingern und Ziehen der zwei Finger in eine Aufwärtsrichtung (z. B. eine Wischgeste). Als Antwort auf die Eingabe bewegt die Kartenanwendung die virtuelle Kamera 1000 zu dem niedrigen perspektivischen Ende des Bogens 1050, während die virtuelle Kamera 1050 aufwärts geneigt wird. Wenn die virtuelle Kamera die Position 1065 entlang des Bogens 1050 erreicht, hindert die Kartenanwendung die virtuelle Kamera 1000 daran, sich niedriger und jenseits der Position 1065 zu bewegen, sogar wenn der Benutzer weiterhin die Eingabe zur Verringerung der Perspektive der Ansicht der 3D-Karte 1035 bereitstellt (z. B. zieht der Benutzer weiterhin mit zwei Fingern aufwärts auf dem Berührungsbildschirm).
  • In einigen Ausführungsformen, wenn der Benutzer aufhört, Eingaben zum Verringern der Perspektive der Ansicht der 3D-Karte 1035 bereitzustellen (z. B. der Benutzer hebt die beiden Finger von dem Berührungsbildschirm), ”federt” oder ”schnappen” (snap) die Kartenanwendung die Position der virtuellen Kamera 1000 von der Position 1065 auf zu der Position 1060 entlang des Bogens 1050. Da die Kartenanwendung 3D-Kartenansichten der 3D-Karte 1035 basierend auf der Ansicht der virtuellen Kamera 1000 während der Feder- oder Schnappbewegung generiert oder wiedergibt, stellt die generierte 3D-Kartenansicht eine Federanimation bereit, die die 3D-Kartenansicht kurz hinunterfedernd oder -schnappend anzeigt, um dem Benutzer anzugeben, dass die Perspektive der Kartenansicht nicht weiter verringert werden kann. Eine 3D-Kartenansicht unter Verwendung der in diesem Winkel positionierten virtuellen Kamera 1000 wiederzugeben resultiert in einer 3D-Kartenansicht 1030, in welcher die Gebäude und die Straßen verglichen mit der Kartenansicht 1025 größer sind.
  • Die dritte Phase 1015 zeigt die virtuelle Kamera 1000 nachdem die Kartenanwendung die Position der virtuellen Kamera 1000 zu der Position 1060 in Antwort auf das Beenden der Bereitstellung von Eingaben durch den Benutzer, federte oder schnappte. Unterschiedliche Ausführungsformen verwenden unterschiedliche Techniken zur Implementierung des Federns oder Schnappens der virtuellen Kamera 1000. Zum Beispiel startet die Kartenanwendung einiger Ausführungsformen schnell die virtuelle Kamera 1000 entlang des Bogens 1050 für eine definierte Distanz oder bis die virtuelle Kamera 1000 eine definierte Geschwindigkeit erreicht hat, zu beschleunigen. Dann verlangsamt die Kartenanwendung die virtuelle Kamera 1000 für die verbleibende Distanz zu der Position 1060 entlang des Bogens 1050. Andere Möglichkeiten, um den Feder- oder Schnappeffekt zu implementieren, werden in einigen Ausführungsformen verwendet. Eine 3D-Kartenansicht unter Benutzung der virtuellen Kamera 1000, welche an der Position 1060 entlang des Bogens 1050 in der dritten Phase 1015 positioniert ist, wiederzugeben, resultiert in einer 3D-Kartenansicht 1040, in welcher die Gebäude etwas kleiner und flacher und die Straßen etwas kleiner verglichen mit der Kartenansicht 1030 erscheinen.
  • Wie oben beschrieben veranschaulicht 10 eine Technik zum Verhindern, dass sich eine virtuelle Kamera jenseits des niedrigen perspektivischen Endes eines Bogens bewegt. Alternativ oder in Verbindung mit der Verhinderung, dass sich die virtuelle Kamera jenseits des niedrigen perspektivischen Endes des Bogens bewegt, verwendet die Kartenanwendung einiger Ausführungsformen eine ähnliche Technik zum Verhindern, dass sich die virtuelle Kamera jenseits des hohen perspektivischen Endes des Bogens bewegt. Zusätzlich zeigt 10 ein Beispiel einer Position entlang eines Bogens, an welcher eine virtuelle Kamera abzubremsen ist, eine Position entlang des Bogens, um eine virtuelle Kamera am Vorbeigehen zu hindern und eine Position entlang des Bogens, zu welcher die virtuelle Kamera zurückschnappt oder -federt. Unterschiedliche Ausführungsformen definieren die Positionen in beliebig vielen unterschiedlichen Arten. Zum Beispiel ist in einigen Ausführungsformen die Position entlang des Bogens, an welcher die virtuelle Kamera abgebremst wird, die gleiche oder nahe der Position entlang des Bogens, an welcher die virtuelle Kamera zurückschnappt oder -federt.
  • C. Andere Benutzerinteraktionen
  • 1. Erscheinen und Verschwinden von Steuerungen
  • Die Anwendungen einiger Ausführungsformen haben, während einer Navigation, einen Vollbildschirmmodus. Das heißt, während des eigentlichen Bereitstellens von Anweisungen sind die Steuerungen/Bedienelemente, die normalerweise Einiges der Bildschirmoberfläche einnehmen, versteckt. 11 veranschaulicht einen Vollbildschirmmodus einiger Ausführungsformen. Die Figur wird in sechs Phasen 11011106 gezeigt. In Phase 1101 wird eine Menge von Navigationsinstruktionen durch die Selektion eines Startknopfes 1110 aktiviert. Durch Selektieren des Startknopfes selektiert der Benutzer die hervorgehobene Route aus zwei möglichen Routen. Die nicht hervorgehobene Route verschwindet und ein kleinerer Maßstab der Navigationskarte 1121 erscheint in der Phase 1102. Die erste Phase 1101 zeigt, dass die Straßennamen auf den Straßen sind, weil die Kartenanwendung eine Kartenansicht anzeigt. Die erste Phase 1101 zeigt auch, dass die Positionssteuerung 1130 für die eine Kartenansicht anzeigende Kartenanwendung angezeigt wird. Die Auswahl der Listensteuerung 1132 wird die Kartenanwendung dazu veranlassen, die verfügbaren Routen in einem Listenformat anzuzeigen.
  • Auch in der Phase 1102 wird die erste Instruktion 1120 zusammen mit einer Beenden-Steuerung 1122, dem Reisestatusbereich 1124 (eine voraussichtliche ETA, eine Reisedauerschätzung und einen Indikator der Distanz der geplanten Route) beinhaltend, einen Übersichtsknopf 1126, eine Statusleiste 1127 und eine 3D-Steuerung 1128 gezeigt. Der Beenden-Knopf 1122 beendet das Laufen der Navigationsinstruktionen. Der Statusbereich 1124 zeigt Informationen über die geplante Route an. Der Übersichtsknopf 1126 zeigt eine Übersicht der Route an. Die 3D-Steuerung ist ein Indikator, ob die Navigationsanwendung eine Szene in 3D oder 2D zeigt und ein Umschalter zum Betreten oder Verlassen des 3D-Modus. Die Auswahl der Listensteuerung 1132 in dieser Phase wird die Kartenanwendung dazu veranlassen, die Menge von Navigationsinstruktionen in einem Listenformat anzuzeigen. Diese Phase zeigt auch, dass die Straßennamen in Bannern anstatt auf den Straßen angezeigt werden, weil die Kartenanwendung in dem Navigationsmodus arbeitet.
  • Nach einer kurzen Zeitdauer verschwinden die Beenden-Steuerung 1122, die Listensteuerung 1132, der Statusbereich 1124, der Übersichtsknopf 1126 und die 3D-Steuerung 1128. In einigen Ausführungsformen verschwinden die Steuerungen abrupt, während in anderen Ausführungsformen die Steuerungen dahinschwinden. In einigen Ausführungsformen verschwindet auch die Statusleiste 1127 am oberen Ende des Bildschirms und der Navigationskasten 1120 bewegt sich zum oberen Ende des Bildschirms.
  • Die Abwesenheit der Steuerungen und die Bewegung des Navigationskastens 1120 werden in Phase 1103 gezeigt, in welcher die Navigationskarte 1121 ohne die Steuerungen abgesehen von dem angehobenen Navigationskasten 1120 gesehen wird. Der Benutzer kann die versteckten Steuerungen durch Tippen des Bildschirms in einigen Ausführungsformen wiederherstellen. Dies wird in den Phasen 1104 und 1105 demonstriert. In Phase 1104 tippt der Benutzer den Bildschirm mit dem Finger 1140 an. In Phase 1105 sind die Steuerungen zurück, als Resultat des Tippens der vorigen Phase, und der Navigationskasten 1120 ist zurück an seine originale Position heruntergefallen. Die wiederhergestellten Steuerungen beinhalten die Beenden-Steuerung 1122, den Statusbereich 1124, den Übersichtsknopf 1126, die Statusleiste 1127 und die 3D-Steuerung 1128. Sobald die Steuerungen wieder da sind, kann der Benutzer die Steuerungen durch antippen, wie in Phase 1105 gezeigt, wo der Benutzer den Bildschirm mit dem Finger 1150 antippt, wieder verschwinden lassen, um die Navigationsanwendung in den Vollbildschirmmodus in Phase 1106 zurückzuführen. Zusätzlich zu den versteckten Steuerungen sind im Vollbildschirm in einigen Ausführungsformen die Berührungsinteraktionen mit der Karte sehr eingeschränkt. In einigen Ausführungsformen existieren mehrere Steuerungen, welche in einigen Modi gezeigt sind, aber im Vollbildschirmmodus versteckt sind (z. B. eine Listensteuerung).
  • In einigen Ausführungsformen, wenn die Steuerungen gezeigt werden und es einen Zusatz zu der Statusleiste gibt (z. B. eine Telefonanruf-Statusleiste, die die Länge eines andauernden Anrufs zeigt), ist der Navigationskasten gekürzt, um mehr Raum für die expandierte Statusleiste zu machen. Dies wird in 12 gezeigt, welche die Navigationsanwendung mit versteckten und während eines Telefonanrufs auf der Vorrichtung offenbarten Steuerungen veranschaulicht. 12 beinhaltet die Phasen 1201 und 1202. In der Phase 1201 sind die Steuerungen der Navigationsanwendung versteckt und der Navigationskasten 1210 und die Karte 1215 sind sichtbar. Der Benutzer tippt auf den Berührungsbildschirm mit dem Finger 1217, um der Navigationsanwendung zu befehlen, ihre Steuerungen zu zeigen. In Phase 1202 zeigt die Navigationsanwendung ihre Steuerungen 1220 und auch eine Telefonanruf-Statusleiste 1222 unter der Statusleiste 1224. Die Navigationsanwendung hat wegen der Telefonanruf-Statusleiste 1222 weniger Raum. Um den für die Navigationsanwendung einiger Ausführungsformen verfügbaren kleineren Bildschirmbereich auszugleichen, verkleinert den Navigationskasten 1210, wenn die Telefonanruf-Statusleiste 1222 auf dem Bildschirm ist. In einigen Ausführungsformen, wenn sich der Navigationskasten verkleinert, werden der Text und/oder der Richtungspfeil in dem Kasten verändert, um in den verkleinerten verfügbaren Bereich für den Text und Pfeil zu passen.
  • 2. Beenden der Navigation
  • In dem normalen Verlauf des Durchlaufens einer Menge an Navigationsinstruktionen durch eine Navigationsanwendung, während die Vorrichtung jede neue Kreuzung erreicht, die Navigationsinstruktionen benötigt, erscheinen Instruktionen für den nächsten solche Kreuzung. Dies geht weiter bis die Vorrichtung ihr Ziel erreicht. Wenn das Ziel erreicht ist, hört die Navigationsanwendung auf, Instruktionen bereitzustellen und das Laufen der programmierten Route endet. 13 veranschaulicht in vier Phasen 13011304 das Ende einer programmierten Route. In Phase 1301 läuft die Anwendung mit versteckten Steuerungen und der Navigationskasten 1310 zeigt, dass das Ziel nur noch 1000 Fuß entfernt ist. Das Ziel wird auf der Karte als ein Pin 1312 mit einem runden Kopf gezeigt. Allerdings wird der Fachmann verstehen, dass andere Symbole in Anwendungen von anderen Ausführungsformen verwendet werden könnten und dass in einigen Ausführungsformen kein Symbol verwendet wird und die Linie einfach nur endet. Während die Vorrichtung sich näher zu ihrem Ziel bewegt, zählt die Navigationsanwendung die Distanz herunter. In Phase 1302 zeigt der Navigationskasten 1320, dass es nur noch 100 Fuß zum Ziel zu gehen sind. In Phase 1303 hat die Vorrichtung ihr Ziel gerade erreicht. Der Navigationskasten 1330 gibt an, dass das Ziel auf der linken Seite ist und beinhaltet ein Symbol mit einem auf das Zentrum einer Zielscheibe zeigenden Pfeil. Später, in Phase 1304, wenn die Vorrichtung an ihrem Ziel angekommen ist, hat die Navigationsanwendung den Navigationskasten 1320 geschlossen, wobei der Benutzer mit einer Karte 1340, aber ohne weitere Anweisungen belassen wird.
  • In einigen Ausführungsformen können Ziele an Plätzen sein, welche mit dem Auto nicht erreichbar sind, z. B. könnte der Endpin in der Mitte eines Parks sein. In einigen solchen Ausführungsformen werden die Fahranweisungen enden, aber es wird weiterhin Anweisungen für die Reise zu Fuß geben. In anderen solchen Ausführungsformen wird die Anwendung keine Text-Anweisungen für die Reise zu Fuß geben, aber wird einen Pin an dem Ort beibehalten (z. B. die Mitte eines Parks), wenn Karten im Kartenmodus oder im Sperrmodus angezeigt werden. In einigen solchen Ausführungsformen wird die letzte Instruktion, die nach dem Automobilanteil der Reise endet, eine Anweisung ”Bitte zu Fuß erreichen” sein.
  • 13 veranschaulicht was passiert, wenn eine Navigationsanwendung den Benutzer den ganzen Weg zu seinem finalen Ziel führt. In einigen Ausführungsformen könnte der Benutzer allerdings die Meinung des Benutzers über das Erhalten von Anweisungen ändern. Der Benutzer könnte entlang des Weges anhalten, Ziele ändern oder aus einigen anderen Gründen das Durchlaufen der Menge an Navigationsinstruktionen beenden wollen. Dementsprechend beinhaltet die Anwendung in einigen Ausführungsformen einen ”Beenden”-Knopf. Der Beenden-Knopf stoppt das Laufen einer Menge von Navigationsinstruktionen und belässt in einigen Ausführungsformen den Benutzer in dem gleichen Zustand als ob sie das Ziel erreicht hätten (z. B. ohne Instruktionen, aber mit einer Karte). 14 veranschaulicht eine Beenden-Steuerung eines Navigationsprogramms. Die Figur wird in zwei Phasen 1401 und 1402 gezeigt. Phase 1401 zeigt eine Navigationsanwendung mit ihren sichtbaren Steuerungen. Die Steuerungen beinhalten einen ”Beenden”-Knopf 1410. Der Benutzer tippt mit dem Finger 1412 auf einen Knopf. Die Navigationsanwendung ist weit von ihrem Ziel entfernt, wie durch den Navigationskasten 1414, welcher darlegt, dass der nächste Verbindungspunkt 20 Meilen entfernt ist, und durch die Route 1416, welche sich in die Ferne vor dem Positionsindikator 1418 ausdehnt, angegeben. In Phase 1402 verschwinden der Navigationskasten 1414 sowie die Route 1416, weil der Benutzer den Beenden-Knopf 1410 angetippt hat. Der Positionsindikator 1418 ist auch in dieser Phase verschwunden, ersetzt durch einen kugelförmigen Positionsindikator 1428.
  • 3. Gesten, um während der Navigation auf die Seite der Route zu schauen
  • Wie oben beschrieben ist das Standardverhalten der virtuellen Kamera dem Ort der Vorrichtung durch eine virtuelle Welt zu folgen und hinunter und in die Richtung, in die die Vorrichtung sich bewegt, oder wenigstens auf einen Teil seiner Route, ein Stück vor der aktuellen Position der Vorrichtung zu zeigen. Allerdings ist es nicht immer erwünscht, dass die Kamera geradeaus zeigt. Manchmal will der Benutzer, dass die Kamera stattdessen in einem Winkel zeigt. Dementsprechend rotiert die Navigationsanwendung in einigen Ausführungsformen die virtuelle Kamera herum, wenn der Benutzer die Karte seitwärts zieht. 15 veranschaulicht die Rotation einer Karte, wenn ein Benutzer diese seitwärts drückt. Die Figur beinhaltet vier Phasen 15011504. In Phase 1501 wird die Anwendung in ihrem Standardmodus gezeigt, mit der Straße 1510 (Main St.) und der aktuellen Route 1512 parallel zu den Seiten des Bildschirms auf der 3D-Karte 1514 verlaufend. In dieser Phase 1501 beginnt der Benutzer, die Karte nach links zu drücken. In der nächsten Phase 1502 wurde die virtuelle Kamera nach links bewegt und nach rechts rotiert. Das heißt, die 3D-Karte 1514 wurde so geändert als ob die virtuelle Kamera nach links bewegt und nach rechts rotiert wurde. Die Karte 1514, welche gedreht wurde, zeigt nun die Vorderseiten der Gebäude auf der rechten Seite der Straße. In einigen Ausführungsformen gibt es eine maximale Schwelle, wie weit die Karte rotiert werden wird. In einigen Ausführungsformen kann der Benutzer, genauso wie er befähigt ist, die Karte von einer Seite zur anderen Seite zu bewegen, sich zu einer Ansicht leicht vor oder leicht hinter dem Ortsindikator (z. B. durch Hinunter- oder Hinaufziehen mit einem Finger) bewegen. In einigen solchen Ausführungsformen ist der Umfang, in welchem die Karte vor oder hinter durch Ziehen bewegt werden kann, auch gedeckelt.
  • In der veranschaulichten Ausführungsform rotiert die Anwendung nur die Gebäude, während der Benutzer die Karte nach links (oder rechts) zieht oder für eine kurze Zeit danach (z. B. mit simulierter Trägheit). Sobald der Benutzer aufhört, die Karte 1514 zu ziehen oder seinen Finger an der Stelle zu halten, um die Karte 1514 an der Stelle zu halten, fällt die Karte 1514 zu ihrer Standardansicht in der Richtung der Route, die die Kamera nimmt, zurück. Dies wird in Phase 1503 gezeigt, in welcher der Benutzer aufgehört hat, die Karte 1514 zu ziehen und die virtuelle Kamera zurück zu ihrer ursprünglichen Position direkt hinter der Vorrichtung rotiert und/oder bewegt, während sie sich auf ihrer Route bewegt. Mit der Phase 1504 hat die Karte 1514 ihre vorherige Ausrichtung wieder eingenommen. In einigen Ausführungsformen rotiert die virtuelle Kamera nur, wenn die Karte seitwärts gezogen wird anstatt sich zu bewegen sowie zu rotieren. Während in anderen Ausführungsformen die Kamera um die Ortskennung herumdreht, so dass der Ortskennung als fixer Punkt erscheint, während die Karte um ihn herum dreht.
  • 4. Routen-Übersichtsmodus
  • In einigen Fällen können einige Benutzer, statt nur eine Karte mit kleinem Maßstab, die den nächsten Kreuzung zeigt, anzusehen, manchmal einen Blick auf das große Ganze haben wollen. Das heißt, die Benutzer können sich die Gesamtheit der geplanten Route ihrer Navigationsanwendung ansehen wollen, während der Benutzer auf der Route reist. Daher stellen einige Ausführungsformen eine Übersichtsoption bereit, die dem Benutzer die gesamte Route zeigt. 16 und 17 veranschaulichen Übersichtssteuerungen. 16 beinhaltet zwei Phasen 1601 und 1602. In Phase 1601 werden eine Navigationskarte 1610, ein Übersichtsknopf 1612, ein Finger 1614 und eine Listensteuerung 1617 gezeigt. In der Navigationskarte 1610 zeigt der Ortsindikator 1616, dass die Vorrichtung auf der Main St. nahe der 1st St. ist. Die Phase 1601 zeigt auch, dass die Kartenanwendung die Straßennamen in Bannern 1618 anzeigt, weil die Kartenanwendung im Navigationsmodus arbeitet. In dieser Phase drückt der Finger 1614 den Übersichtsknopf 1612, was zur Anzeige der Übersicht in Phase 1602 führt.
  • In Phase 1602 hat die Navigationsanwendung eine Übersichtskarte 1620, einen Fortsetzen-Knopf 1622, ein Ortsindikatorpin 1626, ein Endpin 1628 und eine Positionsindikatorsteuerung 1630 angezeigt. Die Übersichtskarte 1620 zeigt dem Benutzer seine gesamte geplante Route von der aktuellen Position startend an. In der veranschaulichten Ausführungsform fokussiert die Übersichtskarte auf die verbleibende Route, nicht die gesamte Route von Anfang an, da sie keine leicht gefärbte Linie, die die davor gereiste Route angibt, zeigt. Allerdings zeigt die Übersichtskarte in einigen Ausführungsformen die gesamte Route anstatt nur die Route von dem aktuellen Ort der Vorrichtung an. In einigen Ausführungsformen ist die Listensteuerung 1617 auch in der Übersichtskarte enthalten, um dem Benutzer zu erlauben, direkt von der Übersichtskarte zu einer Liste von Manövern (z. B. bevorstehende Abbiegungen) zu gehen. Die zweite Phase 1602 zeigt auch, dass die Straßennamen auf der Straße angezeigt werden, weil die Kartenanwendung die Übersichtskarte anzeigt (d. h. nicht im Navigationsmodus). Es wird angemerkt, dass die Kartenanwendung einiger Ausführungsformen alternativ oder verbindend Banner zum Anzeigen von Straßennamen unabhängig von dem Modus, in welchem die Kartenanwendung arbeitet, verwendet.
  • Der Fortsetzen-Knopf 1622 wechselt die Navigationsanwendung zurück in die Navigationsansicht der Phase 1601. Der Ortsindikatorpin 1626 und er Endpin 1628 zeigen den aktuellen Ort der Vorrichtung und das finale Ziel der Navigationsroute entsprechend. In einigen Ausführungsformen erlaubt die Anwendung einem Benutzer die Karte herumzubewegen, hinein- und hinaus zu zoomen und anderweitig auf unterschiedliche Teile der Übersichtskarte 1620 zu fokussieren. Die Positionsindikatorsteuerung 1630 zentriert in einigen Ausführungsformen die Karte auf den Ortsindikatorpin 1626.
  • In einigen Ausführungsformen hat der Übersichtsmodus einen Suchkasten, der einem Benutzer erlaubt, Suchanfragen für Gegenstände, die in der Übersichtskarte gefunden werden können, einzugeben. Zum Beispiel könnte der Benutzer nach Tankstellen in der Karte suchen, so dass der Benutzer ermitteln kann, wo er sein Auto auftanken kann. Ein anderes Beispiel wäre die Suche nach Cafés, so dass der Benutzer für einen Kaffee anhalten könnte. Einige Ausführungsformen erlauben einem Benutzer von einem ursprünglichen Endziel zu einem in einer Suche gefundenen Ziel zu wechseln, bevor die Navigation fortgesetzt wird.
  • In einigen Ausführungsformen sind alle Übersichtskarten in 2D. In anderen Ausführungsformen sind einige oder alle Übersichtskarten in 3D. Zum Beispiel verwenden einige Ausführungsformen 2D-Übersichtskarten für Routen, die große Distanzen umfassen, aber verwenden 3D-Übersichtskarten für die Navigationsrouten, die kurze Distanzen umfassen. 17 veranschaulicht eine Ausführungsform, die 3D-Übersichtskarten verwendet. 17 beinhaltet zwei Phasen 1701 und 1702. In Phase 1701 werden eine Navigationskarte 1710, ein Übersichtsknopf 1712, ein Finger 1714 und ein Listenknopf 1617 gezeigt. In der Navigationskarte 1710 zeigt der Ortsindikator 1716, dass die Vorrichtung auf der Main St. nahe der 1st St. ist. In dieser Phase drückt der Finger 1714 den Übersichtsknopf 1712, welches die Anzeige der Übersicht in Phase 1702 veranlasst.
  • In Phase 1702 zeigt die Navigationsanwendung eine Übersichtskarte 1720, einen Fortsetzen-Knopf 1722, einen Ortsindikatorpin 1726, einen Endpin 1728 und eine Positionsindikatorsteuerung 1730 an. Die Übersichtskarte 1720 zeigt dem Benutzer seine gesamte geplante Route. Der Fortsetzen-Knopf 1722 schaltet die Navigationsanwendung zurück in die Navigationsansicht der Phase 1701. Der Ortsindikatorpin 1726 und der Endpin 1728 zeigen entsprechend den aktuellen Ort der Vorrichtung und das finale Ziel der Navigationsroute. Die Positionsindikatorsteuerung 1730 zentriert die Karte auf den Ortsindikatorpin 1726.
  • In einigen Ausführungsformen beinhalten die 3D-Übersichtskarten eine Suchfunktion wie anhand der 16 beschrieben. Auch beinhaltet der Übersichtsmodus in einigen Ausführungsformen eine Steuerung, um die Karte auf den Endpin zu zentrieren. In einigen Ausführungsformen erlaubt die Positionsindikatorsteuerung einem Benutzer zwischen Zentrierung auf dem aktuellen Ort der Vorrichtung und dem Ziel der Vorrichtung umzuschalten. In einigen Ausführungsformen kann der Übersichtsmodus zu jedem Zeitpunkt während der Navigation aktiviert werden.
  • D. Mehrfachmodus-Anwendung
  • 1. Wiedergabe-/Rendering-Modul
  • 18 veranschaulicht konzeptionell eine Verarbeitungs- oder Kartenwiedergabe-Pipeline 1800, die von der Kartenanwendung von einigen Ausführungsformen durchgeführt wird, um eine Karte zum Anzeigen auf der Clientvorrichtung zu rendern/wiederzugeben (z. B. auf der Anzeige der Clientvorrichtung). In einigen Ausführungsformen kann die Datenwiedergabe-Pipeline 1800 insgesamt als ein Kartenwiedergabemodul bezeichnet werden. Eine detailliertere Version dieser Verarbeitungs-Pipeline ist in der oben eingebundenen US-Patentanmeldung 13/632,040 mit dem Titel ”Virtual Camera for 3D Maps” beschrieben. Wie veranschaulicht beinhaltet die Verarbeitungs-Pipeline 1800 Kachelabrufer 1805, eine Menge von Netzerzeugern 1815, eine Menge von Netzerstellungsprozessoren 1810, einen Kachelanbieter 1820, eine virtuelle Kamera 1830 und eine Kartenwiedergabe-Engine 1825.
  • Die Kachelabrufer (retriever) 1805 führen verschiedene Prozesse aus, um die Kartenkacheln abzurufen in einigen Ausführungsformen entsprechend den Anfragen der Netzerzeuger 1815 für Kartenkacheln. Die Netzerzeuger 1815, wie sie unten beschrieben werden, identifizieren existierende Kartenkacheln (die auf einem Kartendienstserver oder in einem Zwischenspeicher auf der Vorrichtung gespeichert sind, die die Verarbeitungs-Pipeline 1800 durchführt), die für das Erzeugen ihrer entsprechenden Netze benötigt werden. Die Kachelabrufer 1805 empfangen die Anfragen nach den Kartenkacheln, ermitteln den besten Ort, von welchem die Kartenkacheln abzurufen sind (z. B. von dem Kartendienst, von einem Zwischenspeicher auf der Vorrichtung) und dekomprimieren die Kartenkacheln falls erforderlich.
  • Die Netzerzeuger 1815 (auch als Kachelquellen bezeichnet) von einigen Ausführungsformen sind durch den Kachelanbieter 1820 instanziiert, um unterschiedliche Schichten der Ansichtskacheln zu erzeugen. Abhängig von der durch die Kartenanwendung dargestellten Art der Karte kann der Kachelanbieter 1820 unterschiedliche Anzahlen und Typen von Netzerzeugern 1815 instanziieren. Zum Beispiel für eine Überflug-(oder Satelliten)-Ansichtskarte könnte der Kachelanbieter 1820 nur einen Netzerzeuger 1815 instanziieren, da die Überflug-Kartenkacheln einiger Ausführungsformen keine mehrfache Datenschichten enthalten. Genau genommen enthalten in einigen Ausführungsformen die Überflug-Kartenkacheln ein bereits erstelltes Netz, generiert in dem Kartierungsdienst, für welchen die Überflugbilder (aufgenommen durch einen Satelliten, ein Flugzeug, einen Helikopter usw.) als Texturen verwendet werden. Allerdings können in einigen Ausführungsformen zusätzliche Netzerzeuger instanziiert werden, um die Bezeichnungen zu erzeugen, die über die Überflugbilder zu legen sind, wenn die Anwendung in einem Hybridmodus ist. Für eine 2D- oder 3D-wiedergegebene Vektorkarte (z. B. eine Nicht-Satelliten-Bildkarte) instanziieren einige Ausführungsformen separate Netzerzeuger 1815, um die Netze für die Polygondaten der Landbedeckung (z. B. Parks, Gewässer, usw.), Straßen, Markierungen von Plätzen von Interesse, Punktbezeichnungen (z. B. Bezeichnungen für Parks, usw.), Straßenbezeichnungen, Verkehr (wenn Verkehr angezeigt wird), Gebäude, Rasterdaten (für bestimmte Objekte bei bestimmten Zoomstufen) sowie andere Datenschichten, die in die Karte einzugliedern sind, zu erzeugen.
  • Die Netzerzeuger 1815 empfangen in einigen Ausführungsformen ”leere” Ansichtskacheln von dem Kachelanbieter 1820 und geben ”erzeugte” Ansichtskacheln zu dem Kachelanbieter 1820 zurück. Das heißt, der Kachelanbieter 1820 sendet zu jedem Netzerzeuger 1815 eine oder mehrere Ansichtskacheln (nicht gezeigt). Jede der Ansichtskacheln gibt einen Bereich der Welt an, für welchen ein Netz gezeichnet werden soll.
  • Beim Empfangen solch einer Ansichtskachel, identifiziert ein Netzerzeuger 1815 die vom Kartendienst benötigten Kartenkacheln und sendet seine Liste zum Kachelabrufer 1805.
  • Beim Zurückempfangen der Kacheln von den Kachelabrufern 1805 verwendet der Netzerzeuger in den Kacheln gespeicherte Vektordaten, um ein Polygonnetz für den von der Ansichtskachel beschriebenen Bereich zu erzeugen. In einigen Ausführungsformen verwendet der Netzerzeuger 1815 mehrere unterschiedliche Netzerzeugungsprozessoren 1810, um das Netz zu erzeugen. Diese Funktionen können einen Netzgenerator, einen Triangulator, einen Schattengenerator und/oder einen Texturdecodierer beinhalten. In einigen Ausführungsformen sind diese Funktionen (und zusätzliche Netzerzeugungsfunktionen) jedem Netzerzeuger verfügbar, wobei unterschiedliche Netzerzeuger 1815 unterschiedliche Funktionen verwenden. Nach dem Erzeugen seines Netzes gibt jeder Netzerzeuger 1815 seine Ansichtskacheln dem Kachelanbieter 1820 mit seiner Schicht des Netzes gefüllt zurück.
  • Der Kachelanbieter 1820 empfängt vom Steuergerät 1875 eine bestimmte Ansicht (d. h. einen Raum oder eine Pyramidenstumpfansicht (Frustrum) (viewing frustrum), die die anzuzeigende Kartenansicht darstellt (d. h. der von der virtuellen Kamera 1830 aus sichtbare Raum). Der Kachelanbieter führt jegliches Auswählen durch (z. B. den in einer Ansichtskachel anzuzeigenden Oberflächenbereich zu identifizieren), und sendet dann diese Ansichtskacheln zu den Netzerzeugern 1815.
  • Der Kachelanbieter 1820 empfängt anschließend die erstellten Ansichtskacheln der Netzerzeuger und führt in einigen Ausführungsformen das Auswählen auf dem erstellten Netz unter Verwendung einer bestimmten Ansicht von der virtuellen Kamera 1830 durch (z. B. Entfernen eines zu weit entfernten Oberflächenbereichs, Entfernen von Objekten, die komplett hinter anderen Objekten sein werden usw.). In einigen Ausführungsformen empfängt der Kachelanbieter 1820 die erstellten Ansichtskacheln von unterschiedlichen Netzerzeugern zu unterschiedlichen Zeiten (z. B. aufgrund von unterschiedlichen Verarbeitungszeiten, um die mehr oder weniger komplizierten Netze zu vervollständigen, aufgrund von unterschiedlich verstrichener Zeit bevor die notwendigen Kartenkacheln von den Kachelabrufern 1805 empfangen wurden usw.). Sobald alle der Schichten der Ansichtskacheln zurückgekommen sind, setzt der Kachelanbieter 1820 einiger Ausführungsformen die Schichten zusammen und gibt die Daten dem Steuergerät 1875 zur Wiedergabe frei.
  • Die virtuelle Kamera 1830 generiert einen Raum oder eine Oberfläche, zur Wiedergabe für die Pipeline 1800 und sendet diese Informationen zu dem Steuergerät 1875. Basierend auf einem/einer bestimmten Ort und Ausrichtung, von welcher die Karte wiedergegeben werden wird (d. h. der Punkt im 3D-Raum, von welchem der Benutzer die Karte ”sieht”), identifiziert die virtuelle Kamera ein Sichtfeld zum tatsächlichen Senden zum Kachelanbieter 1820. In einigen Ausführungsformen, wenn die Kartenanwendung die 3D-perspektivische Ansicht für die Navigation wiedergibt, wird das Sichtfeld der virtuellen Kamera entsprechend eines Algorithmus, der einen neuen Ort und eine neue Ausrichtung der virtuellen Kamera in regelmäßigen Intervallen basierend auf der Bewegung der Benutzervorrichtung generiert, bestimmt.
  • Das Steuergerät 1875 ist in einigen Ausführungsformen verantwortlich für das Verwalten des Kachelabrufers 1820, der virtuellen Kamera 1830 und der Kartenwiedergabe-Engine 1825. In einigen Ausführungsformen können in der Tat mehrere Kachelanbieter initiiert werden und das Steuergerät mehrere Ansichtskacheln zusammensetzen (z. B. Kartenkacheln und Gebäudekacheln), um eine Szene zu erschaffen, die der Kartenwiedergabe-Engine 1825 übergeben wird.
  • Die Kartenwiedergabe-Engine 1825 ist verantwortlich für die Erzeugung einer Zeichnung, um diese auf einer Bildschirmvorrichtung auszugeben, basierend auf den Netzkacheln (nicht gezeigt), die von der virtuellen Kamera gesendet werden. Die Kartenwiedergabe-Engine 1825 hat in einigen Ausführungsformen mehrere Unterprozesse. In einigen Ausführungsformen wird jede unterschiedliche Art von Kartenelement von einem unterschiedlichen Unterprozess wiedergegeben mit der Wiedergabe-Engine 1825, die die Okklusion von unterschiedlichen Schichten von Objekten abwickelt (z. B. Platzieren von Bezeichnungen über oder hinter unterschiedlichen Gebäuden, Erzeugen von Straßen auf Landbedeckungen usw.). Beispiele von solchen Wiedergabeprozessen beinhalten einen Straßenwiedergabeprozess, einen Gebäudewiedergabeprozess, einen Bezeichnungswiedergabeprozess, einen Vegetationswiedergabeprozess, einen Verkehrsrasterwiedergabeprozess, einen Straßenrasterwiedergabeprozess, einen Satellitenwiedergabeprozess, einen Polygonwiedergabeprozess, einen Hintergrundrasterwiedergabeprozess usw.
  • Die Funktionsweise der Wiedergabe-Pipeline 1800 in einigen Ausführungsformen wird nun beschrieben werden. Basierend auf Benutzereingaben, um eine bestimmte Kartenregion in einer bestimmten Zoomstufe anzusehen, spezifiziert die virtuelle Kamera 1830 einen Ort und eine Ausrichtung, von welcher aus die Kartenregion anzusehen ist, und sendet diese Pyramidenstumpfansicht oder diesen Raum zum Steuergerät 1875. Das Steuergerät 1875 instanziiert einen oder mehrere Kachelanbieter. Während ein Kachelanbieter 1820 in dieser Figur gezeigt wird, erlauben andere Ausführungsformen die Instanziierung von mehreren Kachelanbietern auf einmal. Zum Beispiel instanziieren einige Ausführungsformen separate Kachelanbieter für Gebäudekacheln und für Kartenkacheln.
  • Der Kachelanbieter 1820 führt jegliche notwendige Auswahl durch, um eine leere Ansichtskachel zu erzeugen, die die Regionen der Karte, für welche ein Netz erstellt werden muss, identifiziert, und sendet die leere Ansichtskachel zu den Netzerzeugern 1815, welche für die unterschiedlichen Schichten der gezeichneten Karte instanziiert werden (z. B. Straßen, Landbedeckung, Punkt-von-Interesse-Bezeichnungen, usw.). Die Netzerzeuger 1815 verwenden ein vom Kartierungsdienst empfangenes Manifest, das die unterschiedlichen verfügbaren Kacheln auf dem Kartendienstserver identifiziert (d. h. als Knoten eines ”Quadtrees”). Die Netzerzeuger 1815 fragen spezifische Kartenkacheln von den Kachelabrufern 1805 an, welche die angefragten Kartenkacheln zu den Netzerzeugern 1815 zurückgeben.
  • Sobald ein bestimmter Kartenerzeuger 1815 seine Kartenkacheln empfangen hat, beginnt er unter Verwendung der Vektordaten, die in den Kartenkacheln gespeichert sind, das Netz für die von dem Kachelanbieter 1820 gesendeten Ansichtskacheln zu erzeugen. Nach dem Erzeugen des Netzes seiner Kartenschicht sendet der Netzerzeuger 1815 die erstellte Ansichtskachel zurück zu dem Kachelanbieter 1820. Der Kachelanbieter 1820 wartet bis er alle Ansichtskacheln der verschiedenen Netzerzeuger 1815 empfangen hat, dann schichtet er diese zusammen und sendet die vollständige Ansichtskachel zu dem Steuergerät 1875. Das Steuergerät fügt die zurückgegebenen Kacheln von allen Kachelanbietern zusammen (z. B. eine Kartenansichtskachel und eine Gebäudeansichtskachel) und sendet diese Szene zu der Wiedergabe-Engine 1825. Die Kartenwiedergabe-Engine 1825 verwendet die Information in den Kartenkacheln, um die Szene zum Anzeigen zu zeichnen.
  • 2. Zustandsdiagramm für unterschiedliche Modi
  • 19 veranschaulicht konzeptionell ein Zustandsdiagramm 1900, das unterschiedliche Zustände und Übergänge zwischen diesen Zuständen der integrierten Abbildungs-, Such- und Navigationsanwendung einiger Ausführungsformen beschreibt (z. B. die in den obigen Abschnitten beschriebene Anwendung). Der Fachmann wird erkennen, dass die Anwendung einiger Ausführungsformen viele unterschiedliche Zustände in Bezug auf alle unterschiedlichen Arten von Eingabeereignissen haben wird und dass das Zustandsdiagramm 1900 speziell auf eine Untermenge dieser Ereignisse fokussiert ist. Das Zustandsdiagramm 1900 beschreibt und bezieht sich auf verschiedene gestische Interaktionen (z. B. Mehrfachberührungsgesten) zum Ändern von Zuständen der Anwendung. Der Fachmann wird erkennen, dass verschiedene andere Interaktionen, so wie Gesten eines Zeigersteuergeräts und Knopfklicks, Tastatureingaben, Touchpad/Trackpad-Eingaben usw. auch für ähnliche Selektionsoperationen verwendet werden können.
  • Wenn ein Benutzer anfänglich die Kartenanwendung öffnet, ist die Anwendung in einem Zustand 1905, dem Kartendurchsuchungszustand. In diesem Zustand 1905 wird die Anwendung eine Kartenansicht generiert und angezeigt haben. Um diese Kartenansicht zu generieren und anzuzeigen, identifiziert die Anwendung in einigen Ausführungsformen eine notwendige Menge von Kartenkacheln für eine Region, fragt die Kartenkacheln an (z. B. von einem Kartendienstserver), generiert eine Ansicht der Kartenkacheln von einem bestimmten Ort, einer bestimmten Ausrichtung und einer bestimmten Perspektive der virtuellen Kamera und gibt die Kartenansicht auf einer Vorrichtungsanzeige wieder. Im Zustand 1905 ist die Kartenansicht statisch. Befindet sich die Anwendung im Zustand 1905, kann der Benutzer eine Vielzahl an Operationen zur Modifizierung der Kartenansicht, zum Suchen nach Einheiten (z. B. Plätze von Interesse, Adressen usw.), zum Abrufen einer Route für die Navigation, usw. durchführen.
  • In einigen Ausführungsformen wird die integrierte Anwendung auf einer Vorrichtung mit einer integrierten berührungsempfindlichen Anzeige angezeigt. Eine Vielzahl von gestischen Interaktionen über der Karte kann die Anwendung veranlassen, unterschiedliche Modifikationen der Kartenansicht durchzuführen (z. B. Verschieben, Rotieren, Zoomen, Ändern der Kartenperspektive usw.). Wenn die integrierte Anwendung gestische Interaktionen auf der Kartenanzeige empfängt (im Gegensatz zu Berührungseingaben auf den verschiedenen schwebenden oder nicht-schwebenden Steuerungen, die über der Kartenanzeige liegen), geht die Anwendung in den Zustand 1910 über, um eine Erkennung gestischer Eingaben durchzuführen.
  • Der Zustand der Erkennung gestischer Eingaben 1910 unterscheidet zwischen unterschiedlichen Arten von gestischen Eingaben und übersetzt diese Arten von Eingaben in unterschiedliche Änderungsoperationen der Kartenansicht. In einigen Ausführungsformen empfängt die Kartenanwendung die gestischen Eingaben als durch das Betriebssystem der Vorrichtung mit integrierter berührungsempfindlicher Anzeige übersetzte Eingabe. Das Betriebssystem übersetzt die Berührungseingaben in gestische Arten und Orte (z. B. ein ”Tippen” an den Koordinaten (x, y), eine ”Kneifen”-Operation mit unterschiedlichen Berührungseingaben an zwei unterschiedlichen Orten, usw.). In Zustand 1910 übersetzt die integrierte Kartenanwendung einiger Ausführungsformen diese in unterschiedliche Änderungsoperationen der Kartenansicht.
  • Wenn die Anwendung eine erste Art gestischer Eingaben empfängt (z. B. zwei separate Berührungseingaben, die sich zusammen in einer rotierenden Bewegung auf der Kartenansicht bewegen), geht die Anwendung in den Zustand 1915 über, um die Karte zu rotieren. Um die Kartenansicht zu rotieren, ändern einige Ausführungsformen den Ort und/oder die Ausrichtung der virtuellen Kamera, die bestimmt, welcher Anteil der Karte wiedergegeben wird, um die Kartenansicht zu erzeugen. Zum Beispiel rotiert in einem 3D-Modus die Kartenanwendung die virtuelle Kamera um eine bestimmte Position (z. B. dem Zentrum der Berührungseingaben, dem Zentrum des Bildschirms, einem Ortsindikator, der den Ort des Benutzers identifiziert, usw.). Solange die erste Art der gestischen Eingabe weitergeht, verbleibt die Kartenanwendung im Zustand 1915, um die Karte weiter zu rotieren.
  • Wenn der Benutzer die erste gestische Eingabeart loslässt, geht die Anwendung von einigen Ausführungsformen in einen Zustand 1930, um eine Trägheitsberechnung durchzuführen. In einigen Ausführungsformen führt die Anwendung, nachdem der Benutzer bestimmte Arten von Berührungseingaben loslässt, weiterhin die verbundene Änderung der Kartenansicht für eine bestimmte Zeitdauer und/oder Distanz durch. In diesem Fall geht die Anwendung, nachdem der Benutzer die Rotationseingabe losgelassen hat, in den Zustand der Trägheitsberechnung 1930 über, um den zusätzlichen Rotationsanteil und die Zeit, in welcher die Rotation durchgeführt werden soll, zu berechnen. In einigen Ausführungsformen verlangsamt die Anwendung die Rotation der (Winkel)-Geschwindigkeit, in welcher die Karte rotiert wurde, als ob eine ”Reibungs”-Kraft auf die Karte angewendet wurde. Als solches basiert die Trägheitsberechnung einiger Ausführungsformen auf der Geschwindigkeit der ersten gestischen Eingabeart. Aus dem Zustand 1930 geht die Anwendung zurück zum Zustand der Kartenänderungen, in dem die Anwendung vorher war. Das heißt, wenn die Anwendung vom Zustand 1915 (dem Rotationszustand) zum Trägheitsberechnungszustand 1930 übergeht, geht sie zurück zum Zustand 1915, nachdem die Trägheitsberechnung durchgeführt wurde. Nachdem die Rotation der Karte abgeschlossen ist, geht die Anwendung zurück in den Zustand 1905.
  • Wenn die Anwendung eine zweite gestische Eingabeart empfängt (z. B. eine einzelne Berührungseingabe, die sich über die Karte bewegt), geht die Anwendung in einen Zustand 1920 über, um die Karte zu verschieben. Um die Kartenansicht zu verschieben, ändern einige Ausführungsformen den Ort der virtuellen Kamera, die bestimmt, welcher Anteil der Karte wiedergegeben wird, um die Kartenansicht zu erzeugen. Dies veranlasst die Karte in eine Richtung, abgeleitet von der Richtung der zweiten gestischen Eingabeart, gleitend zu erscheinen. In einigen Ausführungsformen, wenn die Kartenansicht in einem 3D-Perspektivenmodus ist, involviert der Verschiebungsprozess die Durchführung einer Korrelation des Ortes der Berührungseingabe zu einem Ort auf der flachen Karte, um plötzliche ungewollte Sprünge in der Kartenansicht zu vermeiden. Solange die zweite gestische Eingabeart weiter anhält, verbleibt die Kartenanwendung in dem Zustand 1920, um die Karte weiter zu verschieben.
  • Wenn der Benutzer die zweite gestische Eingabeart loslässt, geht die Anwendung einiger Ausführungsformen in den Zustand 1930 über, um eine Trägheitsberechnung durchzuführen. In einigen Ausführungsformen führt die Anwendung, nachdem der Benutzer bestimmte Arten der Berührungseingaben losgelassen hat, weiterhin die Änderung der Kartenansicht für eine bestimmte Zeitdauer und/oder Distanz durch. In diesem Fall geht die Anwendung, nachdem der Benutzer die Verschiebungseingabe losgelassen hat, in den Trägheitsberechnungszustand 1930 über, um die zusätzliche Bewegungsmenge der Kartenansicht (d. h. Bewegung der virtuellen Kamera) und die Zeit, in welcher die Bewegung ausgeführt werden soll, zu berechnen. In einigen Ausführungsformen verlangsamt die Anwendung die Verschiebungsbewegung von der Geschwindigkeit, in welcher die Karte verschoben wurde, als ob eine ”Reibungs”-Kraft auf die Karte angewendet wurde. Als solches basiert die Trägheitsberechnung von einigen Ausführungsformen auf der Geschwindigkeit der zweiten gestischen Eingabeart. Aus dem Zustand 1930 geht die Anwendung zurück zum Kartenänderungszustand, in welchem die Anwendung vorher war. Das heißt, wenn die Anwendung vom Zustand 1920 (dem Verschiebungszustand) zu dem Trägheitsberechnungszustand 1930 übergeht, geht sie dann zurück zum Zustand 1920, nachdem die Trägheitsberechnung durchgeführt wurde. Nachdem die Verschiebung auf der Karte abgeschlossen ist, geht die Anwendung zurück in den Zustand 1905.
  • Wenn die Anwendung eine dritte gestische Eingabeart empfängt (z. B. zwei separate Berührungseingaben, die sich näher zusammen oder weiter auseinander bewegen), geht die Anwendung in einen Zustand 1925 über, um in die Karte hinein oder aus der Karte hinaus zu zoomen. Um die Zoomstufe der Kartenansicht zu ändern, ändern einige Ausführungsformen den Ort (d. h. Höhe) der virtuellen Kamera, die bestimmt, welcher Anteil der Karte wiedergegeben wird, um die Kartenansicht zu erzeugen. Dies veranlasst die Kartenansicht mehr (beim Hinauszoomen) oder weniger (beim Hineinzoomen) der Karte zu beinhalten. In einigen Ausführungsformen ruft die Anwendung, indem der Benutzer hinein- oder hinauszoomt, unterschiedliche Kartenkacheln ab (für unterschiedliche Zoomstufen), um die neue Kartenansicht zu erzeugen und wiederzugeben. Während die gestische Eingabeart andauert, verbleibt die Kartenanwendung im Zustand 1925, um weiterhin auf der Karte hinein oder hinaus zu zoomen.
  • Wenn der Benutzer die zweite gestische Eingabeart loslässt, geht die Anwendung einiger Ausführungsformen in den Zustand 1930 über, um eine Trägheitsberechnung durchzuführen. In einigen Ausführungsformen führt die Anwendung, nachdem der Benutzer bestimmte Arten von Berührungseingaben losgelassen hat, weiter die verbundene Kartenansichtsänderung für eine bestimmte Zeitdauer und/oder Distanz durch (d. h. die virtuelle Kamera höher oder niedriger bewegen). In diesem Fall geht die Anwendung, nachdem der Benutzer die Zoomeingabe losgelassen hat, in den Trägheitsberechnungszustand 1930 über, um die zusätzliche Zoommenge der Kartenansicht (d. h. Bewegen der virtuellen Kamera) und die Zeit, in welcher die Bewegung durchgeführt werden soll, zu berechnen. In einigen Ausführungsformen verlangsamt die Anwendung die Zoombewegung von der Geschwindigkeit, in welcher die Karte hinein- oder hinausgezoomt wurde (d. h. die Geschwindigkeit, in welcher die virtuelle Kamera die Höhe ändert), als ob eine ”Reibungs”-Kraft auf die Kamera angewendet wurde. Als solches basiert die Trägheitsberechnung einiger Ausführungsformen auf der Geschwindigkeit der dritten gestischen Eingabeart. Aus dem Zustand 1930 geht die Anwendung zurück zum Kartenänderungszustand, in welchem die Anwendung vorher war. Das heißt, wenn die Anwendung vom Zustand 1925 (dem Zoomzustand) zu dem Trägheitsberechnungszustand 1930 übergeht, geht sie dann zurück zum Zustand 1925, nachdem die Trägheitsberechnung durchgeführt wurde. Nachdem das Zoomen der Karte abgeschlossen ist, geht die Anwendung zurück in den Zustand 1905.
  • Der Einfachheit halber veranschaulicht das Zustandsdiagramm 1900 die Verschiebungs-, Zoom- und Rotationsprozesse der Karte, die den gleichen Trägheitsberechnungsprozess verwenden (Zustand 1930). Allerdings verwendet in einigen Ausführungsformen jeder dieser unterschiedlichen Kartenänderungsprozesse tatsächlich eine unterschiedliche Trägheitsberechnung, um die Verlangsamung und das Anhalten für die bestimmte Art der Bewegung zu identifizieren. Zusätzlich berechnen und ändern einige Ausführungsformen die Trägheitsvariablen bei Empfangen der Eingaben statt zu dem Zeitpunkt, an dem der Benutzer die gestische Eingabe loslässt.
  • Wenn die Anwendung eine vierte gestische Eingabeart empfängt (z. B. zwei separate Berührungseingaben, die sich auf der berührungsempfindlichen Anzeige gemeinsam hinauf und hinab bewegen), geht die Anwendung in einen Zustand 1935 über, um die perspektivische Ansicht der Karte zu ändern. Um die perspektivische Ansicht der Karte zu ändern, wird in einigen Ausführungsformen die virtuelle Kamera entlang eines Bogens über die Karte bewegt, wodurch sich sowohl der Ort als auch die Ausrichtung der virtuellen Kamera ändert (während die Kamera das Zentrum ihres Sichtfeldes an einem bestimmten Ort der Karte beibehält). In einigen Ausführungsformen verwenden unterschiedliche Zoomstufen unterschiedliche Bögen entlang welcher sich die virtuelle Kamera bewegt. Jeder dieser Bögen hat einen obersten Punkt, an welchem die virtuelle Kamera gerade hinunterzeigt, der eine 2D-Perspektivenansicht der Karte gibt. Zusätzlich hat jeder Bogen einen untersten Punkt, welcher der niedrigste Punkt des Bogens ist, zu welchem die virtuelle Kamera bewegt werden kann. Folglich kann die vierte gestische Eingabeart die Anwendung dazu veranlassen in einigen Ausführungsformen zwischen einer 2D-Kartenansicht und einer 3D-perspektivischen Kartenansicht zu wechseln. Während die vierte gestische Eingabeart weitergeht, verbleibt die Kartenanwendung in dem Zustand 1935, um die Änderung der perspektivischen Ansicht der Karte weiterzuführen.
  • Wenn der Benutzer die vierte gestische Eingabeart loslässt, geht die Anwendung einiger Ausführungsformen in einen Zustand 1940 über, um eine Trägheitsberechnung durchzuführen. In einigen Ausführungsformen führt die Anwendung, nachdem der Benutzer bestimmte Arten von Berührungseingaben losgelassen hat, weiter die verbundene Kartenansichtsänderung für eine bestimmte Zeitdauer und/oder Distanz durch (d. h. Bewegen der virtuellen Kamera höher oder niedriger). In diesem Fall geht die Anwendung, nachdem der Benutzer die Eingabe des perspektivischen Ansichtswechsels losgelassen hat, in den Trägheitsberechnungszustand 1940 über, um den zusätzlichen Anteil der perspektivischen Änderung der Kartenansicht (d. h. Bewegen der virtuellen Kamera entlang ihres Bogens) und die Zeit, in welcher die Bewegung durchgeführt werden soll, zu berechnen. In einigen Ausführungsformen verlangsamt die Anwendung die Bewegung der Geschwindigkeit, in welcher die Karte die Perspektive geändert hat (d. h. die Geschwindigkeit, in welcher die virtuelle Kamera sich entlang ihres Bogens bewegt), als ob eine ”Reibungs”-Kraft auf die Kamera angewendet wurde. Als solches basiert die Trägheitsberechnung einiger Ausführungsformen auf der Geschwindigkeit, mit welcher die vierte gestische Eingabeart durchgeführt wurde.
  • Zusätzlich gehen einige Ausführungsformen bei der perspektivischen Änderungsoperation zu einem Rückfederungsberechnungszustand 1945 über. Wie angegeben hat die perspektivische Änderungsoperation in einigen Ausführungsformen eine maximale und minimale erlaubte perspektivische Verschiebung, welche von der Zoomstufe der aktuellen Kartenansicht abhängen kann. Daher führt die Anwendung zusätzlich zu der Trägheitsberechnung eine Rückfederungsberechnung im Zustand 1945 durch. Die Rückfederungsberechnung verwendet die Trägheitsberechnung, um zu ermitteln, ob der maximale Punkt entlang des virtuellen Kamerabogens erreicht werden wird und wenn dem so ist, die Geschwindigkeit der virtuellen Kamera an diesem Punkt. Einige Ausführungsformen erlauben der virtuellen Kamera, sich leicht an dem maximalen Punkt vorbei zu bewegen, um einen ”Rückfederungs”-Punkt zu erreichen, an welchem Punkt die Anwendung die virtuelle Kamera auf ihrem Bogen wendet, wodurch sie zurück zum maximalen Punkt bewegt wird. Einige Ausführungsformen beinhalten solch eine Rückfederfunktionalität nur an einem Ende des virtuellen Kamerabogens (z. B. dem Unteren Ende des Bogens), während andere Ausführungsformen die Funktionalität an beiden Enden des Bogens beinhalten. Aus dem Rückfederungsberechnungszustand 1945 geht die Anwendung zurück in den Trägheitsberechnungszustand 1940, dann zurück zum perspektivischen Änderungszustand 1935, um die Kartenansichtsbewegung anzuzeigen. Außerdem, wenn der Benutzer die vierte Berührungseingabeart lange genug durchführt und die Perspektive ihren maximalen Punkt erreicht, geht die Anwendung direkt vom Zustand 1935 zum Zustand 1945 über, um die Rückfederungsinformation zu berechnen und dann zurück in den Zustand 1935 überzugehen. Nachdem die Änderung der perspektivischen Ansicht der Karte abgeschlossen ist, geht die Anwendung zurück in den Zustand 1905.
  • Die obigen Zustände betreffen eine Vielzahl von Mehrfachberührungsgesten über der Kartendarstellung, welche die integrierte Abbildungs-, Such- und Navigationsanwendung in unterschiedliche Änderungen der Kartendarstellung übersetzt. Verschiedene andere Berührungseingaben können auch die Anwendung dazu veranlassen, Zustände zu ändern und verschiedene Funktion durchzuführen. Zum Beispiel legen einige Ausführungsformen einen 3D-selektierbaren Element über die Kartenansicht (z. B. als eine schwebende Steuerung), und selektieren (z. B. durch eine Tippeingabe) des 3D-Elements veranlasst die Anwendung in 1935 überzugehen, um die Perspektive der Kartenansicht zu ändern. Wenn die Kartenansicht in einer 3D-perspektivischen Ansicht startet, ändert die Anwendung die Perspektive in eine 2D-Ansicht; wenn die Kartenansicht in einer 2D-Ansicht startet, ändert die Anwendung die Perspektive in eine 3D-Ansicht. Nach der Änderung geht die Anwendung in den Zustand 1905 zurück.
  • Wenn ein Benutzer sich eine Karte im Zustand 1905 ansieht, stellt die Anwendung verschiedene Bezeichnungen als einen Teil der Kartenansicht dar. Einige dieser Bezeichnungen geben Plätze von Interesse oder andere Orte an. Wenn ein Benutzer bestimmte Bezeichnungen selektiert (z. B. für bestimmte Geschäfte, Parks usw.), geht die Anwendung in einen Zustand 1950 über, um einen Banner für den selektierten Ort anzuzeigen (z. B. ein Informationsanzeigebanner) und geht anschließend zurück zum Kartendurchsuchungszustand (mit dem Banner über der Karte angezeigt). In einigen Ausführungsformen beinhaltet dieser Banner (1) eine Benutzerschnittstellensteuerung einer schnellen Routennavigation (z. B. einen Knopf), welcher die Anwendung veranlasst, eine Route (z. B. eine Fahrroute) von der aktuellen Position der Vorrichtung zum selektierten Ort abzurufen, ohne die Kartenansicht zu verlassen und (2) eine Informationsbenutzerschnittstellensteuerung (z. B. Knopf), welcher die Anwendung dazu veranlasst, zusätzliche Informationen über den Ort bereitzustellen.
  • Wenn ein Benutzer den Knopf der Benutzerschnittstellensteuerung selektiert, geht die Anwendung vom Zustand 1905 in einen Zustand 1955 über, um einen Sammelraum (staging area) für den selektierten Ort anzuzeigen. In einigen Ausführungsformen zeigt dieser Sammelraum eine Mediendarstellung des selektierten Ortes (z. B. eine 3D-Videodarstellung, eine Überflugansicht des selektierten Ortes, eine Serie aufgenommener Bilder für den Ort, usw.), sowie verschiedene Informationen für den selektierten Ort (Kontaktinformation, Bewertungen, usw.). Die Anwendung bleibt im Zustand 1955 während der Benutzer verschiedene Operationen durchführt, um in dem Sammelraum zu navigieren und Informationen in dem Sammelraum anzusehen. Wenn ein Benutzer eine Benutzerschnittstellensteuerung selektiert, um zurück zu der Kartenansicht überzugehen, geht die Anwendung in den Zustand 1905 über.
  • Aus der Kartendurchsuchungsansicht kann der Benutzer auch leicht auf die Suchfunktion der Anwendung zugreifen. Wenn eine bestimmte Benutzerschnittstellensteuerung (z. B. eine Suchleiste) selektiert wird, geht die Anwendung in einen Sucheintragsvorschlagzustand 1960 über. In dem Sucheintragszustand zeigen einige Ausführungsformen eine Berührungsbildschirmtastatur an, mit welcher der Benutzer seinen Suchbegriff eingeben kann. Der Suchbegriff kann ein Geschäftsname, eine Adresse, eine Art von Ort (z. B. Cafés), usw. sein. Während der Benutzer Zeichen eingibt, verbleibt die Anwendung im Zustand 1960 und stellt Vorschläge basierend auf dem letzten Suchen, den bereits eingegebenen Zeichen usw. bereit. Einige Ausführungsformen können präfixbasierte Vorschläge (z. B. Vorschläge, die mit den bereits eingegebenen Zeichen beginnen) sowie andere Vorschläge (z. B. Rechtschreibverbesserungen zu machen, indem Zeichen vor die bereits eingegebene Zeichenkette hinzugefügt werden, Zeichen ausgetauscht werden, usw.). In einigen Ausführungsformen können die Selektionen auch kürzlich eingegebene Routen zusätzlich zu den Orten beinhalten. Wenn der Benutzer eine Benutzerschnittstellensteuerung zum Abbrechen in dieser Phase selektiert, geht die Anwendung zurück über zum Zustand 1905 ohne eine Suche durchzuführen.
  • Wenn der Benutzer einen Suchbegriff selektiert (entweder einen vorgeschlagenen Begriff oder einen vollständig durch den Benutzer eingegeben Begriff), geht die Anwendung in einen Zustand 1965 über, um die Suchresultate über der Kartenansicht anzuzeigen und geht dann in den Zustand 1905 mit den angezeigten Suchresultaten über. Einige Ausführungsformen zeigen die Suchresultate als selektierbare Elemente (z. B. Pins) auf der Karte an; eine Selektion eines der Elemente veranlasst einen Übergang zu dem Zustand 1950, um den Banner für das selektierte Element anzuzeigen. Außerdem selektiert die Anwendung einiger Ausführungsformen eines der Suchresultate (z. B. ein ”bestes” Resultat) und zeigt diesen Banner als einen Teil des Zustands 1965 an.
  • Da die Anwendung eine eng integrierte Abbildungs-, Such-, Routen- und Navigationsanwendung ist, kann der Benutzer leicht auf die Routenfunktion aus dem Kartendurchsuchungszustand zugreifen. Wenn eine bestimmte Benutzerschnittstellensteuerung (z. B. ein Routeneintragsknopf) selektiert wird, geht die Anwendung zu dem Routeneintragszustand 1970 über. In dem Routeneintragszustand zeigen einige Ausführungsformen eine Berührungsbildschirmtastatur an, mit welcher der Benutzer Orte (z. B. Adressen, Plätzenamen, Plätzearten, usw.) sowohl in ein ”Zu”- als auch in ein ”Von”-Feld eingeben kann, um eine Route anzufragen. Während der Benutzer Zeichen eingibt, verbleibt die Anwendung im Zustand 1970 und stellt Vorschläge basierend auf letzten Routen, letzten Suchen, einer Auto-Vervollständigung, die ähnlich zu der für den Sucheintrag beschriebenen ist, usw., bereit. Wenn der Benutzer die Benutzerschnittstellensteuerung zum Abbrechen in dieser Phase selektiert, geht die Anwendung zurück über zum Zustand 1905 ohne eine Route abzurufen.
  • Wenn der Benutzer eine Route selektiert (z. B. durch Eingeben eines ”Zu”-Ortes und eines ”Von”-Ortes), geht die Anwendung in den Routenanzeigezustand 1975 über. In diesem Zustand zeigt die Anwendung eine oder mehrere Routen von einem ersten selektierten Ort zu einem zweiten selektierten Ort über die Kartenansicht an (z. B. durch Einblenden von Routenlinien auf der Kartenansicht). Einige Ausführungsformen selektieren automatisch eine erste Route aus den Routen. Der Benutzer kann jede der anderen Routen selektieren (z. B. durch Tippen auf eine nicht selektierte Route), mit der Anwendung im Zustand 1975 verbleibend (jedoch durch Ändern der Anzeige der Routenlinien, um die Selektion einer anderen Route anzugeben). Außerdem zeigt die Anwendung im Zustand 1975 einiger Ausführungsformen unterschiedliche Benutzerschnittstellensteuerungen im Zusammenhang mit Routenplanung und Navigation an, einschließlich einer Steuerung für eine Anweisungsliste, eine Steuerung zum Starten der Navigation und andere.
  • Auch können verschiedene gestische Interaktionen über der Karte, in welcher die Routen dargestellt werden, die Anwendung veranlassen, unterschiedliche Änderungen der Kartenansicht durchzuführen (z. B. Verschieben, Rotieren, Zoomen, Ändern der Kartenperspektive usw.). Wenn die integrierte Anwendung gestische Interaktionen über der Kartenanzeige empfängt während sie im Routenanzeigezustand 1975 ist, geht die Anwendung zum Zustand 1910 über, um eine Erkennung gestischer Eingaben durchzuführen, mit allen verfügbaren gestischen Kartenänderungsoperationen (z. B. Zustandsfolgen 19151945). Das heißt, die Anwendung übersetzt die gestische Eingabe in Verschiebe-, Rotier-, Zoom- und/oder perspektivische Änderungsoperationen ähnlich zu diesen für die Zustände 19151945 oben beschriebenen, mit ähnlichen Trägheits- und Rückfederungsmerkmalen für die Bewegung der virtuellen Kamera. Während die Operationen 19151945 zum Kartendurchsuchungszustand 1905 zurückkehren, kehren die Folgeoperationen, auf welche von dem Routenanzeigezustand 1975 zugegriffen werden, zu dem Routenanzeigezustand 1975 zurück.
  • In einigen Ausführungsformen ist der Routenanzeigezustand 1975 auch von anderen Zuständen aus zugreifbar. Zum Beispiel, wenn ein Benutzer die Benutzerschnittstellensteuerung einer schnellen Route in einem Banner während des Zustands 1905 selektiert, ruft die Anwendung eine oder mehrere Routen von dem aktuellen Ort der Vorrichtung zu dem Ort, der mit dem Banner verbunden ist, ab. Außerdem zeigen einige Ausführungsformen zuvor angefragte Routen unter den Suchvorschlägen im Zustand 1960 an. Wenn der Benutzer eine dieser vorgeschlagenen Routen selektiert, geht die Anwendung direkt vom Zustand 1960 in den Zustand 1975 über, um eine oder mehrere Routen über der Karte anzuzeigen.
  • Aus dem Routenanzeigezustand 1975 kann die Anwendung in verschiedene unterschiedliche Modi übergehen, abhängig von unterschiedlichen Steuerungen, die durch den Benutzer selektiert werden. Wenn der Benutzer eine Benutzerschnittstellensteuerung selektiert, um die Routen zu löschen, geht die Anwendung zurück in den Zustand 1905, um die Karte ohne Routen anzuzeigen. Außerdem kann die integrierte Anwendung eine oder mehrere Navigationsmodalitäten aus dem Routenanzeigezustand 1975 heraus betreten.
  • Wenn die im Zustand 1975 angezeigte selektierte Route an dem aktuellen Ort der Vorrichtung startet und der Benutzer eine Steuerung zum Starten der Navigation selektiert, geht die Anwendung in den Navigationszustand 1980 über. In einigen Ausführungsformen zeigt die Anwendung einen filmischen Übergang von der Kartenansicht in eine immersivere 3D-Ansicht für die Navigation an. Im Navigationszustand 1980 einiger Ausführungsformen folgt eine virtuelle Kamera dem Ort des Benutzers entlang der selektierten Route, um die bevorstehenden Teile der Route darzustellen. Wenn entweder die Route vollständig ist (die Vorrichtung hat ihren Zielort erreicht) oder der Benutzer selektiert eine Steuerung zum Beenden der Navigation, geht die Anwendung in den Zustand 1905 über, um die Kartendurchsuchungsansicht 1905 darzustellen.
  • In einigen Ausführungsformen können verschiedene gestische Interaktionen über der Karte, auf welcher die Routen angezeigt werden, die Anwendung dazu veranlassen, unterschiedliche Änderungen der Kartenansicht durchzuführen (z. B. Verschieben, Rotieren, Zoomen, Ändern der Kartenperspektive usw.) während sie im Navigationsmodus 1980 ist. In einigen Ausführungsformen sind nur einige der beschriebenen Kartenänderungsoperationen in dem Navigationsmodus verfügbar. Zum Beispiel erlauben einige Ausführungsformen dem Benutzer hinein oder hinaus zu zoomen, aber erlauben keine anderen Änderungen der Karte. Folglich, wenn der Benutzer gestische Eingaben bereitstellt, filtert der Zustand der Erkennung der gestischen Eingabe 1910 Arten der gestischen Eingabe heraus, die nicht mit der Zoomoperation verbunden sind (und die Anwendung geht danach zurück in den Zustand 1980). Wenn die gestische Eingabe, die mit der Zoomoperation verbunden ist, empfangen wird, erkennt der Zustand der Erkennung der gestischen Eingabe diese Eingabe und die Anwendung geht in einen Zustand ähnlich dem Zustand 1925 über, um die Zoomstufe der Karte zu ändern (mit der Trägheitsberechnung in einigen Ausführungsformen).
  • Andere Ausführungsformen können unterschiedliche Kartenänderungsoperationen ermöglichen. In einigen Ausführungsformen sind z. B. alle gestischen Kartenänderungsoperationen (z. B. Zustandsfolgen 1915–1945) während des Navigationsmodus verfügbar. Einige Ausführungsformen erlauben eine Untermenge der gestischen Kartenänderungsoperationen sowie Zoomen und eine limitierte Verschiebungsoperation. Die Verschiebungsoperation einiger Ausführungsformen bewegen, beim Empfangen der gestischen Eingabeart, die mit Verschiebung verbunden ist, die virtuelle Kamera (während im Navigationsmodus) auf die Seite und bringt anschließend die virtuelle Kamera zurück zum Zeigen entlang der Route. Während die Operationen 19151945 zum Kartendurchsuchungszustand 1905 zurückkehren, kehren die Folgeoperationen, auf die vom Navigationszustand 1980 zugegriffen wird, zum Navigationszustand 1980 zurück.
  • Wenn die im Zustand 1975 angezeigte selektierte Route an einem anderen Ort als dem aktuellen Ort der Vorrichtung startet (oder die Route ist eine Gehroute) und der Benutzer selektiert eine Steuerung zum Starten der Navigation, geht die Anwendung in den Schrittmodus oder in den Routeninspektionsmodus im Zustand 1985 über. In einigen Ausführungsformen zeigt die Anwendung die Manöver, die entlang der Route eines nach dem anderen durchgeführt werden (z. B. Navigationsschilder) an. Durch Bereitstellen von gestischen Eingaben (z. B. Wischgesten) auf den Manövern kann der Benutzer die unterschiedlichen Manöver ansehen während er im Routeninspektionsmodus ist. Die Manöver werden über die Karte gelegt und zumindest wird ein Teil der Route in der Karte angezeigt.
  • Wie im Routenanzeigemodus können verschiedene gestische Interaktionen über der Karte die Anwendung veranlassen, unterschiedliche Änderungen der Kartenansicht durchzuführen (z. B. Verschieben, Rotieren, Zoomen, Modifizieren der Kartenperspektive, usw.). Wenn die integrierte Anwendung gestische Interaktion über der Kartenanzeige empfängt während sie im Schrittmodus 1985 ist, geht die Anwendung in den Zustand 1910 über, um die Erkennung gestischer Eingaben durchzuführen, mit allen verfügbaren gestischen Kartenänderungsoperationen (z. B. Zustandsfolgen 19151945). Das heißt die Anwendung übersetzt die gestischen Eingaben in Verschiebe-, Rotier-, Zoom- und/oder perspektivische Änderungsoperationen ähnlich zu den in den Zuständen 19151945 oben beschriebenen, mit ähnlichen Trägheits- und Rückfederungsmerkmalen für die Bewegung der virtuellen Kamera. Während die Operationen 19151945 zum Kartendurchsuchungszustand 1905 zurückgehen, gehen die Operationsfolgen, auf die vom Schrittmodus 1985 zugegriffen wird, in den Schrittmodus 1985 zurück.
  • Weiterhin erkennt die Erkennung der gestischen Eingabe in einigen Ausführungsformen wenigstens eine Art gestischer Eingabe über den angezeigten Manövern, um zwischen den Manövern zu wechseln. Wenn eine bestimmte Art gestischer Eingabe (z. B. eine Wischgeste) über dem angezeigten Manöver empfangen wird (im Gegensatz zu über der Kartenansicht), geht die Anwendung in einen Zustand (nicht gezeigt) über, um das angezeigte Manöver zu wechseln, und geht dann in den Zustand 1985 zurück.
  • Wenn die integrierte Anwendung eine gestische Interaktion über der angezeigten Karte empfängt während sie im Schrittzustand 1985 ist, geht die Anwendung in den Zustand 1910 über, um eine Erkennung der gestischen Eingabe durchzuführen, mit allen verfügbaren gestischen Kartenänderungsoperationen (z. B. Zustandsfolgen 19151945). Wenn die Änderungsoperationen abgeschlossen sind, geht die Anwendung in den Zustand 1985 zurück. Wenn der Benutzer eine Steuerung zum Beenden des Durchschreitens der Manöver auswählt, geht die Anwendung in den Zustand 1905 über, um die Kartendurchsuchungsansicht darzustellen.
  • Zusätzlich kann in einigen Ausführungsformen die Anwendung vom Schrittmodus 1985 in einen automatischen Schrittzustand 1990 übergehen. Wenn der Benutzer eine Ortsverfolgungssteuerung selektiert während die Anwendung im Zustand 1985 ist, geht die Anwendung in den automatischen Schrittmodus 1990 über, welches eine unterschiedliche Navigationsmodalität ist. Im automatischen Schrittmodus einiger Ausführungsformen zeigt die integrierte Abbildungs-, Such- und Navigationsanwendung das Manöver, zu welchem der Ort der Vorrichtung am nächsten ist, an (z. B. wie gemessen an einer Kreuzung, an welcher das Manöver durchgeführt wird). Wenn sich die Vorrichtung (z. B. entlang der Route) näher zu einem Ort eines unterschiedlichen Manövers bewegt, zeigt der automatische Schrittmodus automatisch das unterschiedliche Manöver an. Wenn der Benutzer die Ortsverfolgungssteuerung abwählt, geht die Anwendung zurück in den Schrittmodus 1985. Wenn der Benutzer eine Steuerung zum Beenden der Navigation während des automatischen Schrittzustands 1990 selektiert, geht die Anwendung in den Zustand 1905 über, um die Kartendurchsuchungsansicht darzustellen.
  • Wie im Schrittmodus 1985 können verschiedene gestische Interaktionen über der Karte veranlassen, dass die Anwendung unterschiedliche Änderungen der Kartenansicht durchführt (z. B. Verschieben, Rotieren, Zoomen, Ändern der Kartenperspektive usw.). Wenn die integrierte Anwendung eine gestische Interaktion über der Kartenanzeige empfängt während sie im automatischen Schrittmodus 1990 ist, geht die Anwendung in den Zustand 1910 über, um eine Erkennung der gestischen Eingabe durchzuführen, mit allen verfügbaren Kartenänderungsoperationen (z. B. Zustandsfolgen 19151945). Das heißt, die Anwendung übersetzt die gestischen Eingaben in Verschiebe-, Rotier-, Zoom- und/oder perspektivische Änderungsoperationen ähnlich zu den oben für die Zustände 19151945 beschriebenen, mit ähnlichen Trägheits- und Rückfederungsmerkmalen für die Bewegung der virtuellen Kamera. Während die Operationen 19151945 zu dem Kartendurchsuchungszustand 1905 zurückkehren, gehen die Operationsfolgen, auf die von dem automatischen Schrittmodus 1990 zugegriffen werden, zum automatischen Schrittmodus 1990 zurück. Zusätzlich schalten einige Ausführungsformen automatisch die Ortsverfolgungssteuerung aus, wenn der Benutzer die Karte eine bestimmte Distanz verschiebt, in diesem Fall geht die Anwendung zum Schrittmoduszustand 1985 statt zum automatischen Schrittzustand 1990 zurück.
  • II. Anzeige von Navigationszeichen
  • Die obigen Abschnitte führen die Punkt-zu-Punkt-Navigationsmerkmale einiger Ausführungsformen ein. Ein solches Merkmal sind die Navigationszeichen/-schilder, die durch die Kartenanwendung bereitgestellt werden, die die vom Benutzer durchzuführenden unterschiedlichen Manöver beschreiben. Diese Schilder können auf Abbiegungen, eine Distanz mit der geradeaus zu reisen ist, eine Ausfahrt vom Freeway zu nehmen ist, oder andere, vom Benutzer durchzuführende Manöver hinweisen. Einige Ausführungsformen stellen verschiedene Animationen für die Schilder bereit, darin inbegriffen ist das Zeigen von Schildern, die über den Ortsindikator des Benutzers im 3D-Modus passieren, die Änderungen der Erscheinung von Schildern, um ein vorstehendes Manöver anzugeben und die Benutzung von sekundären Schildern, wenn zwei Manöver in schneller Folge durchgeführt werden.
  • A. Realistisches Aussehen und unterschiedliche Formate in unterschiedlichen Kontexten
  • Die Navigationsschilder können in einigen Ausführungsformen unterschiedliche Erscheinungen in unterschiedlichen Kontexten haben. Einige dieser Unterschiede werden nachfolgend detaillierter beschrieben. Speziell grafische Indikatoren von durchzuführenden Manövern (z. B. Richtungsindikatoren, die weiter unten beschrieben werden) und Textanweisung, die diese Manöver beschreiben, können angepasst werden, um zu dem Kontext der angezeigten Navigationsschilder zu passen. Zum Beispiel Schilder unterschiedlicher Größe können entweder einfache oder komplexe Manöverbeschreibungen haben und der Anweisungstext kann an die Größe des Schildes angepasst sein und kann auf andere im Schild angezeigte Informationen basieren.
  • Einige Ausführungsformen zeigen die Navigationsschilder, so dass die Schilder die Erscheinung von realistischen Straßenschildern geben, an. Einige Ausführungsformen zeigen die Navigationsschilder als reichhaltige texturierte Bilder (z. B. Schatten, Tönungen, usw. benutzend) an, im Gegensatz zum einfachen Anzeigen eines flachen Bildes auf der Kartenanzeige. Zusätzlich verwenden einige Ausführungsformen Tönungen für das Navigationsschild, welche der/den Farbe(n) der Straßenschilder in der Gegend, durch welche die Anwendung navigiert, entsprechen. Die Anwendung verwendet auch realistische Highway-Schilder, um Straßen in einigen Ausführungsformen zu markieren. Zum Beispiel für nummerierte Staats- und föderale Highways wird die Anwendung entweder das Highway-Schild zusammen mit der Straße in dem Navigationsschild verwenden (z. B. neben der Seite des Schildes), den Namen der Straße in den Navigationsinstruktionen mit dem Highway-Schild ersetzen oder andererseits das Highway-Schild in die grafische Anzeige einbinden. Die Generierung und Benutzung dieser Straßenschilder sind näher in der US-Patentanmeldung 13/632,121, mit dem Titel ”Context Aware Voice Guidance”, eingereicht am 30. September 2012, beschrieben. Die US-Patentanmeldung 13/632,121 ist hiermit durch Verweisung einbezogen.
  • 20 veranschaulicht verschiedene grafische Benutzerschnittstellen(GUI)-Szenarien, in welchen solche Highway-Schilder verwendet werden. Das erste solche Szenario 2005 veranschaulicht die Kartenanwendung im Punkt-zu-Punkt Navigationsmodus, eine Anweisung, um auf der US-101 North für 20 Meilen fortzufahren, zeigend. In diesem Beispiel wird das Straßenschild für die US-101 eingebettet mit der Textanweisung ”Gehen Sie geradeaus auf der US-101 North” angezeigt als Ersatz für den eigentlichen Text ”US-101”. Einige Ausführungsformen tauschen Textnamen von Straßen durch Straßenschilder aus, wenn die Straßen ein Schild haben und dieses Schild der Kartenanwendung als Bild verfügbar ist.
  • Das zweite Beispiel 2010 veranschaulicht das Highway-Schild auf der rechten Seite des Navigationsschildes anstatt eingebettet in der Textanweisung angezeigt. Dieses Szenario veranschaulicht eine alternative Anzeige für die gleiche Anweisung wie in Beispiel 2005, die von einigen Ausführungsformen verwendet wird. Das Highway-Schild wird in diesem Fall in der gleichen Größe wie der grafische Pfeilindikator auf der linken Seite des Navigationsschildes angezeigt. Außerdem, da die Information im Straßenschild dargestellt wird, entfernt die Anwendung den ”auf 101 North”-Teil des Textes, welcher andererseits vorhanden wäre.
  • Das dritte Beispiel 2015 veranschaulicht den Fall, in welchem das Navigationsschild getönt ist, um der Art der Straße, die im Highway-Schild gezeigt wird, zu entsprechen. In diesem Szenario sagt die Anweisung dem Benutzer geradeaus auf der CA-1 North zu gehen. Die ”CA-1” wird durch das Highway-Schild für CA-1 ersetzt. Während einige Ausführungsformen dieses Schildes unter Verwendung von grün tönen (die Farbe der Schilder, die für die kalifornischen Staats-Highways verwendet werden), tönen andere Ausführungsformen das Navigationsschild, indem sie die Farben der Straßenschilder, die entlang des tatsächlichen Highways gefunden werden, verwenden. Andere Ausführungsformen verwenden grün, um die Farbe der Straßenschilder zu entsprechen, welche über die Freeways der Region, in welcher sich die Vorrichtung befindet, zu finden sind (z. B. grün für Kalifornien).
  • Das vierte Szenario 2020 veranschaulicht ein Einfädelmanöver auf die Interstate 5 im Navigationsscchild. Ähnlich wie das erste Beispiel 2005 veranschaulicht dieses die Straßenschilder als eingebetteten Text. Zudem wird eine Tönung in dem Straßenschild verwendet, um dem Aussehen des tatsächlichen Interstate-Schildes zu entsprechen, mit dem oberen Bereich rot und dem unteren Bereich blau getönt. Wie erwähnt können einige Ausführungsformen stattdessen das gesamte Navigationsschild unter Verwendung einer Kombination aus diesen Farben tönen.
  • Obwohl 20 keine unterschiedlichen Erscheinungen der Richtungsindikatoren 2090 veranschaulicht, verwendet die Kartenanwendung einiger Ausführungsformen unterschiedliche Erscheinungen, um die Richtungsindikatoren dem Kontext der angezeigten Navigationsschilder anzupassen.
  • B. Dynamische und animierte Präsentation von Zeichen
  • Die oben beschriebenen Situationen von 20 illustrieren die statische Anzeige der Navigationszeichen/-schildern (d. h. es werden keine Änderungen an den Zeichen vorgenommen). Einige Ausführungsformen liefern eine Animation oder andere dynamische Anzeigen dieser Navigationszeichen. Zu diesem Anzeigen gehört die Darstellung, wie das Zeichen über den Kopf des Benutzersymbols (der Navigationsmarke) in der Kartenanzeige hinweg passiert, wenn ein Benutzer ein Fahrmanöver durchführt und das Zeichen entfernt wird. Zusätzlich kann eine subtile Animation auf ein Zeichen angewandt werden, wenn sich ein Fahrmanöver annähert, um den Benutzer auf das das bevorstehende Manöver aufmerksam zu machen. Wenn zwei Fahrmanöver in rascher Folge auftreten, zeigt die Anwendung schließlich das Navigationszeichen für das zweite Manöver aufgereiht hinter dem ersten Zeichen.
  • 1. Animiertes Entfernen und Präsentieren von Navigationszeichen
  • 21 illustriert über vier Phasen 21052120 die Animation einiger Ausführungsformen zum Entfernen eines Navigationszeichen und Einführen des neuen Zeichens. In einigen Ausführungsformen ahmt die Animation des entfernten Zeichens nach, wie ein Verkehrszeichen über dem Kopf auf einer Autobahn vorbeizieht. Obwohl diese Figur die Animation im Kontext eines 3-D Modus illustriert, könnten einige Ausführungsformen die Animation auch im 2-D Modus enthalten.
  • Andere Ausführungsformen liefern spezifisch die Animation für den 3-D Modus.
  • Die erste Phase 2105 illustriert ein Verkehrszeichen 2125, das anzeigt, dass ein Benutzer in 100 Fuß in die Main St. einfahren muss. Die zweite Phase 2110 illustriert die Animation zur Entfernung des Navigationszeichens 2125, wenn der Benutzer das Fahrmanöver durchführt. Wenn der Benutzer physikalisch in die Main St. einfährt, wird das Navigationszeichen 2125 größer und beginnt aus dem Gesichtsfeld zu verschwinden, wie es ein Verkehrszeichen über einer Autobahn tun würde. In einigen Ausführungsformen wendet die Kartenanwendung auch eine perspektivische Verkippung des Verkehrszeichens an, um die Erscheinung des über dem Kopf vorbei ziehenden Verkehrszeichens weiter nachzuahmen.
  • Bei der dritten Phase 2115 erscheint das nachfolgende Verkehrszeichen 2130 langsam am Horizont oder nahe am Horizont. Einige Ausführungsformen Rendern nicht tatsächlich die Karte über die ganze Entfernung bis zum Horizont im 3-D Modus und beginnen der Animation des sich nähernden Navigationszeichens in der Entfernung, bei der das 3-D Rendern endet. Diese Animation soll der Annäherung an ein Verkehrszeichen auf der Autobahn ähneln, obwohl oft mit einer höheren Geschwindigkeit (um das Verkehrszeichen schnell auf die volle Größe zu bringen und eine Ablenkung durch eine längere Animation zu vermeiden). Die vierte Phase 2120 illustriert die sich ergebende Anzeige mit dem nachfolgenden Navigationszeichen 2130, das oben auf dem Bildschirm in der normalen Position angezeigt ist.
  • Zusätzlich zu den in 21 dargestellten Animationen können einige Ausführungsformen auch komplexere Animationen in einigen Fällen verwenden. Als Beispiel rotieren einige Ausführungsformen ein Navigationszeichen, das die Anzeige gerade verlässt, wenn ein Benutzer ein Abbiegemanöver durchführt, um die Erscheinung nachzuahmen, wie ein Benutzer unterhalb des Zeichens abbiegt.
  • 2. Gelegentliches Hervorheben
  • In einigen Fällen kann die Kartenanwendung ein Navigationszeichen deutlich vor dem Zeitpunkt anzeigen, zu dem das durch das Navigationszeichen beschriebene Fahrmanöver durchgeführt werden soll. Fährt beispielsweise ein Benutzer in eine Autobahn ein und betrifft das nächste Manöver eine Autobahnausfahrt in 15 Meilen, so kann die Anwendung ein Navigationszeichen anzeigen, das die bevorstehende Autobahnausfahrt deutlich früher anzeigt als sich der Benutzer vorbereiten muss, tatsächlich die Autobahn zu verlassen. Wenn es Zeit ist, den Benutzer darauf hinzuweisen, dass sich die Kreuzung nähert, an der er das Manöver durchführen muss, verwenden unterschiedliche Ausführungsformen unterschiedliche Techniken. Einige Ausführungsformen umfassen Audio-Warnhinweise, bei denen das Benutzergerät Sprachnavigation ausgibt, um anzuzeigen, dass sich die Kreuzung nähert.
  • Einige Ausführungsformen liefern, entweder zusammen mit der Audiowarnung oder wenn die Audiowarnung abgeschaltet ist, eine visuelle Anzeige, dass sich das Manöver nähert, durch die Anzeige des Verkehrszeichens. Beispielsweise modifiziert in einigen Ausführungsformen die Anwendung die Farbe des Zeichens (zum Beispiel von grün nach weiß oder grün bis gelb) zusammen mit der Farbe des grafischen Indikatorpfeils (zum Beispiel von weiß nach schwarz). Andere Ausführungsformen zeigen ein weniger störendes Schimmern über dem Navigationszeichen an, das dazu dient, die Aufmerksamkeit des Benutzers zu erregen, ohne übermäßig störend zu sein.
  • 22 illustriert eine derartige Schimmer-Animation über vier Phasen 22052220. Diese Phasen zeigen einen grauen Untergrund der Anzeige, um mit dem Schimmer zu kontrastieren, wenn er über das Zeichen läuft (in weiß dargestellt). Die erste Phase 2205 zeigt ein Navigationszeichen 2225, das aktuell ein Rechtsabbiege-Manöver in 1000 Fuß anzeigt.
  • In der zweiten Phase 2210 ist das Rechtsabbiegen nun nur noch 50 Fuß entfernt. Die Anwendung hat beschlossen, dass dies die richtige Entfernung ist, in der der Benutzer auf das bevorstehende Fahrmanöver hingewiesen werden soll und hat daher begonnen, einen Schimmer über das Navigationszeichen 2225 anzuzeigen. Die dritten und vierten Phasen 2215 und 2220 illustrieren die Fortsetzung dieser Animation. In einigen Ausführungsformen ähnelt die Animation einem Licht, das von links nach rechts über das Zeichen bewegt wird. Andere Ausführungsformen zeigen eine ähnliche Animation von rechts nach links an oder andere derartige Animationen (zum Beispiel ein Licht, das sich vom Zentrum des Zeichens nach außen bewegt, usw.).
  • Einige Ausführungsformen variieren die Entfernung zum Fahrmanöver bei dem die Animation beginnt, basierend auf verschiedenen Faktoren, wie beispielsweise der Geschwindigkeit, mit der sich das Gerät bewegt (basierend auf der Orts-Nachführinformation) und der Geschwindigkeitsbegrenzung der Straße, auf der sich der Benutzer gegenwärtig bewegt. Beispielsweise haben einige Ausführungsformen eine bestimmte Zeit vor der Kreuzung eingestellt, zu der die Animation angezeigt werden sollte und verwenden diese Geschwindigkeitsinformation, um die entsprechende Entfernung zu berechnen. Andere Ausführungsformen variieren auch die Entfernung basierend auf dem Typ des Manövers, das durchgeführt wird (zum Beispiel um mehr Zeit zu erlauben für die Ausfahrt aus einer Autobahn als zur Durchführung eines Rechtsabbiegens von einer einspurigen Straße).
  • 3. Sekundäre Zeichen
  • Wenn eine Route zwei unterschiedliche Manöver in rascher Folge erfordert, zeigen einige Ausführungsformen das zweite Manöver gestapelt unterhalb des Navigationszeichens für das erste Manöver. Damit wird der Benutzer auf das bevorstehende zweite Manöver aufmerksam gemacht. Wenn mehrere Manöver in Reihe durchgeführt werden, stapeln einige Ausführungsformen mehr als zwei Navigationszeichen übereinander.
  • 23 illustriert die Anzeige von zwei Zeichen für Manöver in rascher Folge über vier Phasen 23052320. In der ersten Phase 2305 zeigt ein erstes Navigationszeichen 2325 an, dass das bevorstehende Manöver, bei einer Entfernung von 1000 Fuß, ein links abbiegen auf die EAST-Straße ist. Da es sich hier um ein Punkt-zu-Punkt-Navigationszeichen mit voller Größe handelt, zeigt die Anwendung für dieses Manöver einen ersten Typ von grafischem Indikatorpfeil an (d. h. einen komplexen Pfeil). Wie sich aus der Karte bei genauerem Hinschauen ergibt, als es für einen Fahrer möglich sein kann (der hauptsächlich auf die Straße blicken wird), ist ein Rechtsabbiegen auf South-Straße erforderlich kurz nach dem links abbiegen in die East-Straße, um der gegebenen Route zu folgen. Um dies dem Benutzer deutlicher zu machen, zeigt die Anwendung ein zweites Navigationszeichen 2330 unterhalb des ersten Navigationszeichens 2325 an. Das zweite Zeichen enthält einen zweiten Typ von grafischem Indikatorpfeil (d. h. ein einfacher Pfeil), da weniger Platz zur Verfügung steht. Außerdem wird im zweiten Zeichen 2330 weniger Information an den Benutzer vermittelt.
  • Die zweite Phase 2310 illustriert, dass der Benutzer nun 900 Fuß gefahren ist, so dass nur noch 100 Fuß zu dem Linksabbiege-Manöver bleiben. Außer der Aktualisierung der Entfernung im Navigationszeichen 2320 (und der Bewegung der 3-D Karte) hat sich die Anzeige nicht geändert. Die dritte Phase 2315 illustriert die Anzeige unmittelbar nachdem das Linksabbiege-Manöver auf EAST-Straße durchgeführt wurde. Wie dargestellt, hat das zweite Navigationszeichen 2330 nun die volle Größe eines Navigationszeichens mit einem komplexen grafischen Indikatorpfeil und zusätzlicher Textinformation (eine Entfernung von 50 Fuß und Textinstruktionen, um rechts abzubiegen). Einige Ausführungsformen animieren den Übergang von dem kleineren Zeichen auf das Zeichen voller Größe, während andere Ausführungsformen nur das eine durch das andere ersetzen.
  • Die vierte Phase 2320 illustriert die Anzeige nachdem der Benutzer das zweite Manöver durchgeführt hat (das Rechtsabbiegen auf South-Straße). Die Anwendung zeigt nun ein Navigationszeichen 2325 für das nächste Manöver an, ein Linksabbiegen auf West-Straße. Da dieses Manöver 2,8 Meilen entfernt ist, hat die Anwendung das Zeichen 2335 nicht unter Zeichen 2330 gestapelt. Da die Navigation im 3-D Modus erfolgt, verwenden einige Ausführungsformen tatsächlich die oben mit Bezug auf 21 beschriebene Animation.
  • Im obigen Beispiel stapelt die Anwendung Verkehrszeichen für Manöver, die in einem Abstand von 50 Fuß auftreten, stapeln aber keine Zeichen für Manöver, die mehrere Manöver entfernt sind. Die Schwellwerte für eine Entfernung, bei der zwei Manöver als aufeinanderfolgend angesehen werden, kann von einer Vielzahl von Faktoren abhängen. Einige Ausführungsformen speichern eine bestimmte Entfernung, die nicht variabel ist. Andere Ausführungsformen betrachten den Typ der vom Manöver betroffenen Straßen (zum Beispiel basierend auf einer funktionalen Straßenklassenvariable, die die Straße in hinterlegten Kartendaten beschreibt) oder der Geschwindigkeitsbegrenzungen, nehmen eine wahrscheinliche Geschwindigkeit für den Benutzer nach dem Manöver an und setzen die Schwellwert-Entfernung basierend auf diesen Daten (d. h. basierend auf einer Schwellwert-Zeit zwischen den Manövern, beispielsweise 30 Sekunden).
  • III. Dynamische Generation von adaptiven Richtungsindikatoren
  • Der obige Abschnitt beschreibt verschiedene Merkmale der Navigationszeichen, die für Punkt-zu-Punkt Navigation zur Verfügung gestellt werden. Wie dargestellt, enthalten diese Navigationszeichen Richtungsindikatoren, die grafisch ein vom Nutzer durchzuführendes Manöver beschreiben, und zeigen in einigen Fällen auch einen Kontext für das Manöver, indem andere Zweige der Kreuzung dargestellt werden, an der das Manöver durchgeführt wird. Die Richtungsindikatoren können in verschiedenen unterschiedlichen Kontexten erscheinen, über die gesamte Karten- und Navigationsanwendung hinweg, sowohl in verschiedenen Aspekten einer Punkt-zu-Punkt Navigation als auch bei der Routeninspektion.
  • Um Richtungsindikatoren zu erzeugen, empfängt die Kartenanwendung Daten über jede der Kreuzungen (die an einigen Stellen weiter unten auch als Straßenkreuzungen bezeichnet sind), die die verschiedenen Zweige der Kreuzung anzeigen und festhalten, durch welche Zweige das Fahrmanöver in die Kreuzung einfährt und ausfährt. In einigen Ausführungsformen ist diese Kreuzungsinformation in einem Kartendienst gespeichert, zu dem die Kartenanwendung zugreift, um Kartendaten sowie Routen- und Navigationsinformation abzurufen. In diesem Abschnitt beschreibt Unterabschnitt A zuerst die Erzeugung dieser Kreuzungsdaten durch die Kartendienst-Server. Unterabschnitt B beschreibt dann die dynamische Erzeugung der Richtungsindikatoren durch die Kartenanwendung, die auf dem Clientgerät arbeitet.
  • C. Server-seitige Erzeugung von Kreuzungsdaten
  • Der Kartendienst einiger Ausführungsformen empfängt Daten, welche jeden Kreuzungspunkt von Straßensegmenten spezifizieren. In einigen Ausführungsformen erzeugt der Kartendienst automatisch zusätzliche Daten für jeden dieser Kreuzungspunkte, welche in den Kartendaten gespeichert werden, und in einigen Ausführungen konvertiert er die Daten der Kreuzungspunkte in Daten von Straßenkreuzungen, kurz als Kreuzungsdaten bezeichnet. Diese Kreuzungspunkt-Information vereinfacht jeden empfangenen Kreuzungspunkt (oder einen Satz von verwandten Kreuzungspunkten, welcher in der realen Welt als eine einzige Straßenkreuzung angesehen werden) in einen Satz von Zweigen, welche den Kreuzungspunkt unter unterschiedlichen Winkeln verlassen. Wenn ein Benutzer über eine Kartenanwendung, welche auf einer Vorrichtung betrieben wird, eine Route anfordert, sendet die Vorrichtung die Anforderung an den Kartendienst, welcher eine Route von einem Startort zu einem Endort erzeugt. Der Kartendienst erzeugt auch Punkt-zu-Punkt-Navigationsinstruktionen für die Route in einigen Ausführungsformen unter Verwendung der Kreuzungsdaten. Der Kartendienst identifiziert die Kreuzungen, an welchen Manöver durchgeführt werden, und modifiziert die Kreuzungsdaten spezifisch für das Manöver, welches während der Route gemacht wird. Diese Daten werden dann an die Benutzervorrichtung, auf welcher die Client-Anwendung läuft gesandt. Die folgenden Unterabschnitte führen zunächst die Erzeugung der Navigationsdaten für eine Route ein, diskutieren dann die Vorberechnung von Kreuzungsdaten durch den Kartendienst (so dass die Daten zur Verwendung verfügbar sind beim Erzeugen von Navigationsdaten) und beschreibt dann schließlich spezifische Typen von Modifikationen, welche an den Kreuzungsdaten für eine angeforderte Route gemacht werden.
  • 1. Erzeugung von Navigationsdaten
  • 24 zeigt konzeptionell eine Operation, welche durch einen Kartendienst einiger Ausführungsformen ausgeführt wird, zum Erzeugen einer Route für eine anfordernde Vorrichtung und Bereitstellen einer Route mit Navigationsinstruktionen an die anfordernde Vorrichtung. 24 zeigt diese Operation über sechs Phasen 24102460, in welchen der Kartendienst eine Anforderung für die Route empfängt, die Route erzeugt, Kreuzungsdaten für die Route erzeugt und die Route an die Vorrichtung liefert, welche die Information zum Anzeigen von Navigationsinstruktionen verwendet.
  • Wie gezeigt, zeigt jede Phase von 24 eine Vorrichtung 2405 und einen Kartendienst 2400. Die Vorrichtung 2405 kann ein handgehaltende Vorrichtung in einigen Ausführungsformen sein (z. B. ein Smartphone, Tablet-Vorrichtung, usw.) oder kann eine dedizierte Navigationsvorrichtung sein (z. B. ein Navigationssystem, welches in ein Auto eingebaut ist, eine tragbare Navigationsvorrichtung usw.). Zusätzlich in einigen Ausführungsformen kann die Vorrichtung 2405 eine nicht tragbare Vorrichtung sein, wie beispielsweise ein Desktop-Computer oder eine andere nicht-tragbare Rechenvorrichtung.
  • Der Kartendienst 2400 ist ein Dienst, mit welchem sich die Vorrichtung 2405 verbindet (z. B. über eine kabelgebundene Verbindung, drahtlose Verbindung, wie beispielsweise ein Zellnetzwerk, Wi-Fi usw.), um Kartendaten, Routendaten, Punkt-zu-Punkt-Navigationsdaten sowie zusätzliche Informationen anzufordern und zu empfangen (z. B. Informationen über Plätze, welche auf der Karte angeordnet sind, usw.). Wie gezeigt, speichert der Kartendienst 2400 die Kartendaten 2415 und Kreuzungsdaten 2425 und umfasst einen Kartengenerator 2435 und einen Routengenerator 2445, neben anderen Modulen (nicht gezeigt).
  • Die Kartendaten 2415 stellen Daten bereit, aus welchen betrachtbare Kartenregionen und Routen erzeugt werden können. Diese Kartendaten umfassen in einigen Ausführungsformen Breiten- und Längengrade, Namensdaten sowie beschreibende Daten über Straßen und andere Pfade (z. B. Fußgängerwege, Fährrouten, Fahrradpfade usw.), natürliche Merkmale (z. B. Flüsse, Seen, Gebirgsketten, usw.), Punkte von Interesse (z. B. Gebäude, Geschäfte, Parks, usw.), und andere Kartenelemente. In einigen Ausführungsformen wird ein Pfad zum Beispiel definiert als eine Serie von Längen/Breiten-Eckpunkten, einem Namen und beschreibenden Daten. Diese beschreibenden Daten können eine Art von Weg (d. h., ob der Pfad eine einspurige Fahrbahn ist oder ein Teil einer zweispurigen Fahrbahn, ob der Pfad eine Einbahnstraße ist); die Klasse von Straßen, zu welcher der Pfad gehört (z. B. Fernstraße, lokale Straße, Privatstraße, Fahrradweg, usw.) sowie andere Informationen) umfassen. In einigen Ausführungsformen werden diese Kartendaten durch eine externe Quelle kompiliert (d. h. einen Karten-Anbieter) und dem Kartendienst bereitgestellt, während in anderen Ausführungsformen der Kartendienst seine eigene Kartendaten bereitstellt. Die Kartendaten können auch ein Hybrid aus von Außenstehenden bereitgestellten und intern erzeugten Daten sein. Zusätzlich können die Kartendaten Geometriedaten für verschiedene Kartenkonstrukte umfassen, wie beispielsweise Straßen, Geländeoberflächen, usw.
  • Die Kreuzungsdaten 2425 stellen vor-tabellarisierte Daten für die Kreuzungen von Straßenpfaden in den Kartendaten bereit. In einigen Ausführungsformen, wie unten beschrieben, berechnet der Kartendienst automatisch Kreuzungsdaten für Straßenpfad-Kreuzungen unter Verwendung der Kartendaten. Diese Kreuzungsdaten 2425 können gespeichert werden durch Bezeichnen eines Kreuzungstyps (z. B. Punkt, Kreisverkehr) und eine Serie von Zweigen, welche bei unterschiedlichen Winkeln in die Kreuzung ein- und austreten. Während die Kartendaten 2415 und die Kreuzungsdaten 2425 als separat gespeichert gezeigt werden, können diese zusammen auf dem gleichen physischen Speicher oder auf separaten physischen Speichern gespeichert werden, und die Kreuzungsdaten 2425 iXn können tatsächlich Teil der Kartendaten 2415 sein. Zusätzlich können eine oder beide der Karten- und Kreuzungsdaten über mehrere physische Speicher verteilt sein (z. B. eine Serie von Disks zum Speichern der Kartendaten).
  • Der Kartengenerator 2435 einiger Ausführungsformen erzeugt Karteninformationen (z. B. Kartenkacheln) zum Senden an die anfordernde Vorrichtung. Die anfordernde Vorrichtung fragt eine Karte für eine spezielle Region an (z. B. unter Verwendung von Längen-/Breitengrad-Informationen) und der Kartengenerator 2435 erzeugt (oder verwendet vorerzeugte) Kartenkacheln für die Region, sendet die Daten für diese Kacheln dann (z. B. als codierte Vektor und/oder Bilddaten) an die Vorrichtung. Der Routengenerator 2445 berechnet optimale Routen zwischen zwei oder mehreren Punkten in Antwort auf die Benutzeranforderungen. In einigen Ausführungsformen berechnet der Routengenerator 2445 die Routen basierend auf den Kartendaten, unter Verwendung von Optimierungsalgorithmen. Die Route kann definiert werden als eine Serie von Kreuzungen, eine Serie von Straßenpfaden, oder auf andere Weisen. Zusätzlich, wenn ein Benutzer eine Route anfordert, stellt der Routengenerator 2445 Kreuzungsdaten zur Verwendung durch die Vorrichtung bei Punkt-zu-Punkt-Navigation bereit. In einigen Ausführungsformen ruft der Kreuzungsanalysator 2455 Kreuzungsdaten 2425 ab und modifiziert diese Daten zur Navigation der Route, wie unten beschrieben.
  • Wie gezeigt, sendet bei Phase 2410 die Vorrichtung 2405 eine Anforderung für eine Route an den Kartendienst 2400. In einigen Ausführungsformen gibt der Benutzer eine Startadresse (oder Startort) und eine Endadresse (oder Endort), möglicherweise einschließlich zusätzlicher Zwischenpunktorte (z. B. Starten bei A, Fahren zu B, dann fahren zu C von B). Die Vorrichtung überträgt dann Ortsinformationen an den Kartendienst. In einigen Ausführungsformen übersetzt die Vorrichtung die Orte in Breiten- und Längengrade, während in anderen Ausführungsformen diese Konversion durch den Kartendienst ausgeführt wird.
  • Bei Phase 2420 greift der Routengenerator 2445 auf die Kartendaten 2415 zu, um eine oder mehrere Routen für die Serie von Orten zu erzeugen. In einigen Ausführungsformen verwendt der Routengenerator 2445 einen Optimierungsalgorithmus, um die beste (und zweitbeste, drittbeste usw.) Route zu finden, welche die Reihe von Orten verbindet.
  • Bei Phase 2430 identifiziert der Kreuzungsanalysator 2455 Manöver entlang der Route, für welche Navigationsinstruktionen erzeugt werden müssen, und ruft Kreuzungsinformation für diese Manöver ab. Einige Ausführungsformen erzeugen Punkt-zu-Punkt-Navigationsinstruktionen, um diese der Vorrichtung zusammen mit der Route bereitzustellen. Um diese Wegbeschreibungen zu erzeugen, identifiziert der Kartendienst 2400 jedes Mal, wenn die Route Pfade wechselt, an welchem Punkt der Benutzer den Navigationsinstruktionen folgend ein Manöver ausführen muss (z. B. rechts abbiegen, halblinks abbiegen, Wenden/U-Turn, Einfädeln, usw.). In einigen Ausführungsformen entsprechen jede dieser Pfadänderungen einer vor-tabellarisierten Kreuzung, welche in den Kreuzungsdaten 2425 gespeichert sind. Der Kreuzungsanalysator 2455 ruft diese Kreuzungsdaten ab. In einigen Ausführungsformen wird jede Kreuzung als eine Serie von Zweigen gespeichert, welche aus der Kreuzung bei verschiedenen Winkeln kommen (z. B. ausgehend von Norden = 0°). In einigen Ausführungsformen zusätzlich zu den Kreuzungsdaten erzeugt der Routengenerator Routenwegbeschreibungen, welche im Allgemeinen die Manöver, welche auszuführen sind, beschreiben. Beispiele solcher Beschreibungen umfassen „nach links abbiegen”, „Autobahnausfahrt”, „Wenden” usw. In anderen Ausführungsformen wird diese Beschreibung hergeleitet durch die Client Kartenanwendung, basierend auf den empfangenen Kreuzungsdaten.
  • Als Nächstes, bei Phase 2440, erzeugt der Kreuzungsanalysator 2455 Kreuzungsinformation, welche für die Route passen. In einigen Ausführungsformen umfasst dies Modifizieren der Winkel, um die Fahrtrichtung in die Kreuzung zu 0° einzustellen (d. h. Einstellen des Zweigs, auf welchem die Route die Kreuzung betritt, auf 180°). Dies rotiert effektiv die Kreuzungsbeschreibung entsprechend dem Unterschied zwischen genau nördlich und der Einfahrtrichtung der Route. Zusätzlich kennzeichnet der Kreuzungsanalysator 2455 einen der Zweige als den Ausfahrtzweig. Einige Ausführungsformen kennzeichnen auch einen Einfahrtzweig, während andere Ausführungsformen darauf angewiesen sind, dass die Vorrichtung den 180°-Zweig als den Einfahrtzweig identifiziert.
  • Phase 2450 zeigt, dass der Kartendienst 2400 dann die Routendaten (d. h. Routendaten und Kreuzungsdaten für Navigation) an die Vorrichtung 2405 überträgt (z. B. über das gleiche Netzwerk, welches die Vorrichtung verwendet hat zum Übertragen der Routenanforderung). Wie bei Phase 2460 gezeigt, verwendet die Vorrichtung 2405 dann die Kreuzungs- und Routendaten, welche durch den Kartendienst erzeugt wurden, um Navigationsinstruktionen für den Benutzer der Vorrichtung anzuzeigen. In einigen Ausführungsformen umfassen die Navigationsinstruktionen eine Anzeige der Kreuzung zusammen mit einem stilisierten Pfeil, welcher das Manöver (in diesem Fall ein Rechtsabbiegen) durch die Kreuzung zeigt.
  • Obwohl der Kartendienst 2400 durch ein Kartengeneratormodul und ein Routengeneratormodul dargestellt ist, wird der Fachmann erkennen, dass der Kartendienst zusätzliche Module umfassen kann oder eine unterschiedliche Aufteilungen von Modulen. Der Kartendienst kann bestehen aus einer einzelnen Rechenvorrichtung (z. B. ein Server), welcher alle Funktionalität und Daten speichert, oder die Funktionalität kann zwischen mehreren Servern verteilt sein (z. B. ein Prozess auf einem ersten Server und ein zweiter Prozess auf einem zweiten Server, zahlreiche Server, welche die gleiche Operation parallel für unterschiedliche Benutzer ausführen, oder andere Konfigurationen von Rechenvorrichtungen, welche die hierin beschriebe Funktionalität ausführen).
  • 25 zeigt konzeptionell einen Prozess 2500, welcher durch den Kartendienst einiger Ausführungsformen ausgeführt wird, um Routen- und Kreuzungsdaten zu erzeugen und an einen Benutzer zu übertragen. Wie gezeigt, beginnt der Prozess 2500 durch Empfangen (bei 2505) einer Anforderung für eine Route zwischen zwei Orten auf einer Karte. In einigen Ausführungsformen, wenn der Benutzer eine Serie von mehr als zwei Orten anfordert, wird jedes Segment als eine separate Route behandelt (d. h. von Punkt A zu Punkt B ist eine erste Route, dann Punkt B zu Punkt C ist eine zweite Route).
  • Der Prozess erzeugt (bei 2510) dann zumindest eine Route zwischen den Orten unter Verwendung der Kartendaten. In einigen Ausführungsformen verwendet der Prozess einen Optimierungsalgorithmus zum Identifizieren der besten (oder zwei besten, drei besten, usw.) Routen zwischen zwei Orten. Diese Routen können beschrieben werden als eine Serie von Eckpunkten entlang von Pfaden, eine Serie von Kreuzungen zwischen Pfaden, oder mit einer anderen Beschreibung.
  • Mit den Routen, welche für die Start- und End-Orte erzeugt wurden, wählt (bei 2515) der Prozess 2500 eine der erzeugten Routen aus, um Punkt-zu-Punkt-Instruktionen für die Route zu erzeugen. Der Prozess identifiziert (bei 2520) dann Manöver, welche entlang der Route zu machen sind. In einigen Ausführungsformen identifiziert der Kartendienst jedes Mal, wenn die Route Pfade ändert, an welchem Punkt der Benutzer den Navigationsinstruktionen folgend, ein Manöver ausführen muss (z. B. rechts abbiegen, halblinks abbiegen, U-Turn, einfädeln, usw.).
  • Als Nächstes ruft (bei 2525) der Prozess Kreuzungen für jedes der Manöver ab. In einigen Ausführungsformen entspricht jede dieser Pfadänderungen einer vor-tabellarisierten Kreuzung, welche durch den Kartendienst gespeichert wird. Die Erzeugung dieser Kreuzungen ist unten im Detail beschrieben. In einigen Ausführungsformen wird jede Kreuzung als eine Serie von Zweigen gespeichert, welche aus der Kreuzung bei verschiedenen Winkeln kommen. (z. B. ausgehend von Norden = 0°). Zusätzlich speichern die Kreuzungsdaten den Typ von Kreuzung in einigen Ausführungsformen (z. B. Punkt, Kreisverkehr, Verkehrsknoten, usw.).
  • Der Prozess modifiziert (bei 2530) dann die Kreuzungsinformationen für jedes der Manöver. In einigen Ausführungsformen umfasst dies Modifizieren der Winkel, um die Einfahrtrichtung in die Kreuzung ← als 0° einzustellen (d. h. Einstellen des Zweigs, auf welchem die Route die Kreuzung betritt, als 180°). Dies rotiert effektiv die Kreuzungsbeschreibung entsprechend der Differenz zwischen genau nördlich und der Einfahrtsrichtung der Route. Zusätzlich kennzeichnen einige Ausführungsformen einen der Zweige als den Ausfahrtszweig. Einige Ausführungsformen markieren auch einen Einfahrtszweig, während andere Ausführungsformen darauf angewiesen sind, dass die Vorrichtung den 180°-Zweig als den Einfahrtszweig identifiziert.
  • Der Prozess 2500 bestimmt (bei 2535) als Nächstes ob zusätzliche Routen verbleiben, für welche Manöver-/Kreuzungsinformation zu erzeugen ist. Wenn zusätzliche Routen verbleiben, kehrt der Prozess zu 2515 zurück, um die nächste Route auszuwählen. Unterschiedliche Variationen von Routen von einem Startort und einem Endort können teilweise überlappen, in welchen Fällen einige Ausführungsformen den bereits erzeugten Satz von Kreuzungen für die überlappenden Teile wiederverwenden.
  • Sobald Kreuzungen für alle Routen erzeugt sind, überträgt (bei 2540) der Prozess die Routen- und Kreuzungsinformation an den Anfordernden (z. B. eine anfordernde Vorrichtung). Wie bereits erwähnt, verwendet die anfordernde Vorrichtung diese Informationen in einigen Ausführungsformen, um Punkt-zu-Punkt-Navigation zu erzeugen, einschließlich stilisierter Kreuzungs-/Manöverpfeile.
  • 2. Vorberechnung von Kreuzungsdaten
  • Wie oben erwähnt, führen einige Ausführungsformen eine Vorausberechnung von Kreuzungsdaten aus den gespeicherten Kartendaten aus (z. B. Straßensegment- und Straßenkreuzungsdaten). Der Kartendienst speichert dann diese Kreuzungsdaten zur Verwendung beim Erzeugen von Punkt-zu-Punkt-Navigationsinstruktionen. Der folgende Abschnitt beschreibt einige Prozesse, welche verwendet werden zum Erzeugen dieser Kreuzungsdaten, wobei der Kartendienst vorgefertigte (von einem Anbieter bereitgestellte) Kreuzungspunkte empfängt, identifiziert, ob irgendwelche Sätze der empfangenen Kreuzungspunkte in eine einzelne Kreuzung konsolidiert werden sollten, identifiziert Paare von Straßensegmenten, die innerhalb einer Kreuzung miteinander verbunden werden sollten, und erzeugt Winkel für die Kreuzung. Innerhalb dieses Abschnitts bezieht sich der Ausdruck Kreuzungspunkte allgemein auf vorgefertigte Information, bei welcher sich zwei Pfadsegmente kreuzen, während sich der Ausdruck Kreuzung auf Daten beziehen wird, welche aus den Kreuzungspunkten erzeugt werden, mit denen sich zwei oder mehrere Straßen in der realen Welt treffen. Somit könnten mehrere Kreuzungspunkte in einer (Straßen-)Kreuzung konsolidiert werden, und Kreuzungspunkte zwischen zwei Straßensegmenten, welche tatsächlich nur eine Fortsetzung einer einzelnen Straße sind, könnten überhaupt nicht als Kreuzungen betrachtet werden, in einigen Ausführungsformen.
  • Das Folgende stellt Pseudocode einiger Ausführungsformen dar zum Erzeugen von Kreuzungsdaten für Punkt-Kreuzungen:
    Identifizieren aller internen Segmente;
    Identifizieren aller internen Abbiegungskanäle und sie als interne Segmente markieren;
    Für jedes interne Segment:
    Erfassen aller zusammenhängenden internen Segmente;
    Markieren der erfassten internen Segmente als verarbeitet;
    Bilden einer Kreuzung aus dieser Sammlung von internen Segmenten;
  • Zusätzlich zu anderen Daten (z. B. Standorte von Parks, Wasserwege, Geschäfte, usw.), speichern die Kartendaten Informationen über Pfade (d. h. Straßen, Gehwege, Fahrradwege, usw.). Jeder Pfad wird in einigen Ausführungsformen empfangen von einem Karten-Provider als eine Serie von Segmenten (z. B. Straßensegmente). Für ein gegebenes Segment umfassen in einigen Ausführungsformen die gespeicherten Daten Start- und End-Kreuzungen für das Segment, Geometriedaten, welche den Verlauf definieren, welcher durch den Pfad zwischen den Start- und End-Kreuzungen genommen wird, eine Pfadcharakterisierung (oder „Form des Weges”), eine Wegbeschreibung (welche in einigen Ausführungsformen eine Einbahn-Kennzeichnung umfasst kann), einen oder mehrere Namen für den Pfad (z. B. „1–405 S”, „San Diego Freeway”, usw.), eine Klasse, welche den Stellenwert des Pfades anzeigt, und eine Netzklasse (einen verbundenen Graph von Pfaden, zu welchem der Pfad gehört). In einigen Ausführungsformen weist die Geometrieinformation eine Serie von Breiten-/Längen-Eckpunkten auf, durch welche der Pfad verläuft. Das Form-des-Wegs-Attribut umfasst in einigen Ausführungsformen die folgenden Charakterisierungen: einspurige Fahrbahn, zweispurige Fahrbahn, Fernstraße, Auffahrt, Verbindungsstraße, Gehweg, Treppe. Einige Ausführungsformen können zusätzliche Charakterisierungen umfassen.
  • 26 zeigt konzeptionell einen Prozess 2600 einiger Ausführungsformen zum Bestimmen von Pfadsegmenten zwischen Sätzen von Kreuzungspunkten, welche zusammen als eine einzelne Kreuzung behandelt werden sollten. Wie gezeigt, beginnt der Prozess 2600 durch Empfangen (bei 2605) eines Kreuzungspunktes zwischen zumindest zwei Pfadsegmenten (z. B. Straßensegmenten). In einigen Ausführungsformen empfängt der Kartendienst (z. B. als vorberechnete Daten von einem Kartenanbieter) einen Satz von Straßensegmenten und einen Satz von Kreuzungspunkten. Jedes Straßensegment folgt einem Pfad zwischen zwei solchen Kreuzungspunkten, und jede Straßenkreuzung bezieht sich mindestens auf zwei Straßensegmente, welche in die Kreuzung eintreten und/oder diese verlassen. Andererseits werden in einigen Ausführungsformen die Kreuzungspunkte nicht von den Kartendaten-Anbietern empfangen, und der Kartendienst durchquert die Pfaddaten um Kreuzungen zwischen Pfaden zu identifizieren und analysiert diese Kreuzungen, um die Kreuzungspunkte zu pre-tabellarisieren.
  • Der Prozess bestimmt (bei 2610) dann, ob irgendwelche der Pfadsegmente bei dem empfangenen Kreuzungspunkt zweispurige Fahrbahnen sind. Wie erwähnt, ist eine zweispurige Fahrbahn eine Pfadcharakterisierung, welche in einigen Formen von Kartendaten verwendet wird. Viele Straßen, welche geteilt sind (z. B. durch einen Mittelstreifen, eine doppelte gelbe Linie, usw.), werden als zwei separate Pfadsegmente, einer für jede Richtung, empfangen (und gezeichnet). Jedes der Pfadsegmente wird dann mit einer Wegbeschreibung markiert und als eine Hälfte einer zweispurigen Fahrbahn markiert. Weil ein Benutzer typischerweise bei einer Kreuzung von zwei Straßen ausgehen wird, welche beide durch Mediane als eine einzelne Kreuzung geteilt sind (statt vier separate Kreuzungen), versucht der Kreuzungspunkt-Erzeugungsprozess, diese vier empfangenen Kreuzungspunkte in eine einzelne Kreuzung zu vereinigen, die einem Benutzer für Navigationszwecke zur Verfügung gestellt wird.
  • Wenn keines der Pfadsegmente als zweispurige Fahrbahn markiert ist, berechnet (bei 2615) der Prozess die Kreuzungszweige unter Verwendung von nur den Pfadsegmenten, welche in den empfangenen Kreuzungspunkten spezifiziert sind (d. h. die Kreuzung wird nur den einen empfangenen Kreuzungspunkt umfassen). In einigen Ausführungsformen umfasst die Berechnung der Kreuzungspunkt-Zweige das Berechnen des Winkels, unter welchem jedes der Segmente, das für den Kreuzungspunkt spezifiziert ist, den Ort des Kreuzungspunkts verlässt. Der Prozess endet dann.
  • 27 zeigt ein Beispiel solch eines Kreuzungspunktes 2700 und zeigt auch, dass sich die Pfadsegmente nicht unter rechten Winkeln treffen müssen, oder dass die Pfade nicht in einer geraden Linie durch den Kreuzungspunkt verlaufen müssen.
  • Wenn zumindest ein Pfadsegment, welches durch den empfangene Kreuzungspunkt spezifiziert wird, eine zweispurige Fahrbahn ist, bestimmt (bei 2620) der Prozess, ob ein Querverkehr-Abbiegen von einer zweispurigen Fahrbahn am Kreuzungspunkt existiert. Ein Querverkehr-Abbiegen ist eine Abbiegung der zweispurigen Fahrbahn in eine Richtung, welche die andere Hälfte der zweispurigen Fahrbahn kreuzt (d. h. die andere Fahrtrichtung der Straße), unter der Annahme, dass diese existiert. In den USA ist ein Linksabbiegen ein Querverkehr-Abbiegen. Während die Beispiele, welche in diesem Dokument gezeigt sind, Rechtsverkehr umfassen (d. h. Fahren auf der rechten Seite der Straße), wird ein Fachmann erkennen, dass die Beispiele gleichwertig anwendbar sind auf Linksverkehr-Regionen (z. B. England).
  • 28 zeigt eine Kreuzung 2800, welche zwei zweispurige Fahrbahnpfade 2805 und 2806 und eine Einbahnstraße 2810 umfasst. Am Kreuzungspunkt 2815 gibt es keine Querverkehr-Abbiegung einer zweispurigen Fahrbahn, weil die einzigen Optionen eine Rechtsabbiegung des zweispurigen Fahrbahnpfades 2805 oder eine Linksabbiegung der Einbahnstraße 2810 sind. Wenn keine solchen Abbiegungen existieren, speichert (bei 2625) der Prozess 2600 den empfangenen Kreuzungspunkt, wobei er erkennt, dass er noch Teil einer größeren Kreuzung sein kann, um zu bestimmen, ob der empfangene Kreuzungspunkt mit anderen empfangenen Kreuzungspunkten (z. B. Kreuzungspunkt 2820 zwischen der Einbahnstraße 2810 und dem zweispurigen Fahrbahnpfad 2806) in eine größere Kreuzung einzubeziehen ist. Zum Beispiel wird der Prozess bei der Kreuzung 2800 den empfangenen Kreuzungspunkt 2820 mit dem empfangenen Kreuzungspunkt 2815 in eine einzelne größere Kreuzung verbinden wollen. Der Prozess endet dann.
  • Wenn eine Querverkehr-Abbiegung einer zweispurigen Fahrbahn am Kreuzungspunkt existiert (z. B. beim Kreuzungspunkt 2820), bewegt sich (bei 2630) der Prozess in Richtung der Querverkehr-Abbiegung bis der nächste zweispurige Fahrbahnpfad erreicht ist. In einigen Ausführungsformen, weil die Pfadsegmente bei Kreuzungspunkten beginnen und enden, wird der nächste zweispurige Fahrbahnpfad bei einem anderen empfangenen Kreuzungsunkt erreicht werden (obwohl nicht notwendigerweise beim nächsten Kreuzungspunkt, wenn eine Straße, wie beispielsweise eine Linksabbiegerspur, als ein separates Pfadsegment empfangen wird). Im Beispiel der Kreuzung 2820 würde der Prozess den Pfad 2810 weg vom Kreuzungspunkt 2820 durchlaufen, bis die nächste zweispurige Fahrbahn beim Kreuzungspunkt 2815. erreicht wird.
  • Der Prozess 2600 bestimmt (bei 2635) dann, ob der zweispurige Fahrbahnpfad, welcher bei 2630 erreicht wurde, eine Wegbeschreibung in der entgegengesetzten Richtung des ursprünglichen zweispurigen Fahrbahnpfads hat. Dies ist im Wesentlichen eine schnelle Bestimmung darüber, ob die zweite zweispurige Fahrbahn der passende Pfad zur ersten zweispurigen Fahrbahn sein könnte (d. h. ob es wahrscheinlich ist, dass sie zwei Seiten der gleichen Straße sind). In den meisten Fällen wird diese nächste zweispurige Fahrbahn der passende Pfad sein, aufgrund der Natur, wie Straßen typischerweise gebaut werden).
  • In dem Fall, wenn die zweite zweispurige Fahrbahn nicht in der entgegengesetzten Richtung des ursprünglichen Pfades verläuft, geht der Prozess zu 2625 über, um den neu erreichten Kreuzungspunkt zu speichern zur späteren Verwendung bei der Bestimmung, ob er mit irgendwelchen anderen empfangenen Kreuzungspunkten einzubeziehen ist. Zum Beispiel, wenn die Linksabbiegung des Pfades 2806 eine andere zweispurige Fahrbahn mit einer Wegbeschreibung nach unten erreichte, dann könnte angenommen werden, dass der Pfad 2806 keine Übereinstimmung in den Daten hat (zumindest was die Kreuzungspunkte betrifft), jedoch könnte der neu identifizierte Pfad selbst eine Übereinstimmung haben.
  • Andererseits, wenn zwei zweispurige Fahrbahnen entgegengesetzte Fahrtrichtungen haben, identifiziert und speichert (bei 2640) der Prozess das Segment, welches durch die Querverkehr-Abbiegung durchquert wird. Im Beispiel von 28 würde das Segment vom Kreuzungspunkt 2820 zum Kreuzungspunkt 2815 gespeichert werden. Dieses Segment wird verwendet als Teil der zusätzlichen Konsolidierungsprozesse für Kreuzungspunkte in einigen Ausführungsformen. Der Prozess endet dann.
  • Der obige Prozess 2600 erzeugt bei der Anwendung auf alle Kreuzungspunkte innerhalb einer Kartenregion einen Satz von Segmenten zwischen zweispurigen Fahrbahnen. Einige Ausführungsformen verwenden diese Segmente, um empfangene Kreuzungspunkte miteinander zu verbinden und zusätzliche empfangene Kreuzungspunkte für das Einbeziehen in eine einzelne Kreuzungsdefinition zu identifizieren. Das Folgende repräsentiert Pseudocode einiger Ausführungsformen zum Identifizieren all solcher „interner” Segmente für eine komplexe Kreuzung:
    Für jedes Segment, welches eine zweispurige Fahrbahn ist;
    Für jede Verbindung mit Querverkehr-Abbiegung, wo ein Pfad zu der anderen Seite der Kreuzung zusammengefügt werden kann;
    Markieren aller Segmente auf dem Pfad zu der anderen Seite als interne Segmente;
  • Dieser Pseudocode umfasst eine Bestimmung, ob ein Pfad zu der anderen Seite einer Kreuzung von einem Segment zusammengefügt werden kann. Das Folgende umfasst Pseudocode einiger Ausführungsformen für solch eine Bestimmung:
    Hinzufügen des ersten Segments zum Pfad;
    Holen von Verbindungen von dem letzten Segment auf dem Pfad;
    Iterieren durch jede Verbindung entweder zum Finden einer Verbindung zu der anderen Seite oder Finden einer Verbindung, welche die beste Fortsetzung ist;
    Wenn Verbindung auf anderen Seite ist, Feststellen des Erfolgs und Enden;
    Wenn keine Verbindung auf der anderen Seite ist und keine Verbindung die beste Fortsetzung ist, Feststellen des Fehlschlagens und Enden;
    Ansonsten:
    Hinzufügen des Segments zu dem Ende des Pfads;
    Wenn der Pfad zu weit entfernt ist, Feststellen des Fehlschlagens und Enden;
    Wenn zu viele Kreuzungen, Feststellen des Fehlschlagens und Enden;
    Ansonsten Zurückkehren zum Holen von Verbindungen für hinzugefügtes Segment und Iterieren durch die Verbindungen;
  • 29 illustriert konzeptionell einen Prozess 2900 zum Verknüpfen mehrerer Kreuzungspunkte in eine einzelne Kreuzung und Identifizieren der Zweige der Kreuzung. Der Prozess 2900 beginnt durch Empfangen (bei 2905) eines Satzes von sich kreuzenden Segmenten zwischen zweispurigen Fahrbahnen. Diese Segmente können identifiziert werden unter Verwendung eines Prozesses, wie beispielsweise jener, welcher in 26 gezeigt ist, in einigen Ausführungsformen. Der Kartendienst gruppiert dann die Sätze solcher Segmente zusammen, welche sich kreuzen (d. h. bei empfangenen Kreuzungen). 30 zeigt eine häufig vorkommende Kreuzung 3000, zwischen einer zweispurigen Fahrbahn mit Pfaden 3005 und 3006 und einer zweispurigen Fahrbahn mit Pfaden 3010 und 3011. Der Satz von sich kreuzenden Segmenten wird in dieser Figur als dickere Linien gezeigt.
  • Der Prozess identifiziert (bei 2910) dann alle Kreuzungspunkte und Pfadsegmente, welche direkt mit dem Satz von sich kreuzenden Segmenten bei den Kreuzungen verbinden. Das heißt, die Menge von sich kreuzenden Pfaden schneidet sich an Kreuzungspunkten, aber diese Kreuzungspunkte können zusätzliche Pfadsegmente enthalten. Im Beispiel der Kreuzung 3000 schneiden sich die acht zweispurigen Fahrbahnpfadsegmente, welche die Kreuzung verlassen, alle mit den inneren (dickeren) Pfadsegmenten bei den vier Kreuzungspunkten. Somit werden die vier Kreuzungspunkte und acht externen Pfadsegmente alle in die Kreuzung einbezogen.
  • 31 zeigt andererseits eine Kreuzung 3100, in welcher Linksabbiegungskanäle als separate Pfadsegmente definiert sind. In diesem Fall, weil die Linksabbiegungskanäle die internen Segmente bei Kreuzungspunkten kreuzen, welche in den ursprünglichen Kartendaten empfangen werden, werden diese Kanäle durch den Prozess 2900 identifiziert. Die Linksabbiegungskanäle können in den Kartendaten in den meisten Fällen als Auffahrten oder einspurige Fahrbahnen charakterisiert werden.
  • Das Folgende stellt Pseudocode einiger Ausführungsformen dar zum Identifizieren aller Abbiegungskanäle, die als „intern” für eine Kreuzung zu behandeln sind:
    Für jedes Segment, welches eine zweispurige Fahrbahn ist;
    Für jede Verbindung mit Querverkehr-Abbiegung, wo ein Pfad zu internen Segmenten zusammengefügt werden kann;
    Markieren aller Segmente auf dem Pfad zu den internen Segmenten selbst als interne Segmente;
  • Dieser Pseudocode umfasst eine Bestimmung, ob ein Pfad zu den internen Segmenten von einem Segment (z. B. einem Abbiegungskanal) zusammengefügt werden kann. Das Folgende umfasst Pseudocode für solch eine Bestimmung:
    Hinzufügen des ersten Segments zum Pfad;
    Holen von Verbindungen vom letzten Segment auf dem Pfad;
    Iterieren durch jede Verbindung zum entweder Finden einer Verbindung zu der anderen Seite oder Finden einer Verbindung, welche die beste Fortsetzung ist;
    Wenn Verbindung auf anderen Seite ist, Feststellen des Erfolgs und Enden;
    Wenn keine Verbindung auf der anderen Seite ist und keine Verbindung die beste Fortsetzung ist, Feststellen des Fehlschlagens und Enden;
    Ansonsten:
    Hinzufügen des Segments zu dem Ende des Pfads;
    Wenn der Pfad zu weit entfernt ist, Feststellen des Fehlschlagens und Enden;
    Wenn zu viele Kreuzungen, Feststellen des Fehlschlagens und Enden;
    Ansonsten Zurückkehren zum Holen von Verbindungen für hinzugefügtes Segment und Iterieren durch die Verbindungen;
  • Als Nächstes definiert (bei 2915) der Prozess 2900 eine neue Kreuzung, die alle identifizierten Kreuzungspunkte und Pfadsegmente umfasst, einschließlich jener, welche direkt den ursprünglichen Satz von Pfadsegmenten kreuzen. In einigen Ausführungsformen würden im Fall der 31 die Kreuzungspunkte, an denen die Linksabbiegungskanäle ihre ursprünglichen zweispurigen Fahrbahnsegmente verlassen, eingegliedert werden, ebenfalls wie die Linksabbiegungskanäle, welche die ursprünglichen Segmente kreuzen. In dieser Situation identifizieren einige Ausführungsformen den anderen Kreuzungspunkt (d. h. den Start-Kreuzungspunkt) für die Auffahrt oder das einspurige Fahrbahnpfadsegment, welches dort sein wird, wo sich das Pfadsegment mit einem der zweispurigen Fahrbahnpfadsegmente kreuzt, bevor es in die Kreuzung eintritt. Wenn das einspurige Fahrbahnpfadsegment für ein (vermutetes) Paar von zweispurigen Fahrbahnpfaden für eine Schwellwertdistanz (z. B. 1 km) intern bleibt, nehmen einige Ausführungsformen an, dass das Pfadsegment ein Teil der Straße ist, welche durch die zweispurigen Fahrbahnpfade definiert ist, und eliminieren den Kreuzungspunkt aus der Betrachtung.
  • Beim Verarbeiten einer Auffahrt oder anderer Verbinder außerhalb der zweispurigen Fahrbahnen (z. B. der Auffahrt 3205, welche in der Kreuzung 3200 der 32 gezeigt ist), behandeln einige Ausführungsformen die Auffahrt nicht als einen Pfad in die zweispurige Fahrbahn-Kreuzung. Stattdessen identifizieren einige Ausführungsformen die Pfadcharakterisierung als eine Auffahrt und versuchen, eine geschlossene Schleife zu bilden, welche die Start- und End-Kreuzungspunkte der Auffahrt umfasst. Wenn diese geschlossene Schleife einen gemeinsamen Kreuzungspunkt mit der neu definierten Kreuzung teilt (wie es typischerweise der Fall sein wird), kann die Auffahrt mit der Kreuzung assoziiert werden, aber nicht als ein interner Pfad dieser Kreuzung behandelt werden. Andererseits, wenn die neu definierte zweispurige Kreuzung aufgrund der Präsenz von zum Beispiel Linksabbiegungskanälen angewachsen ist, so dass die Kreuzungspunkte der Auffahrt durch die Kreuzung umfasst sind, welche nun die kreuzenden einspurigen Fahrbahnen umfasst (wie für die Auffahrt 3305 in der Kreuzung 3300 der 33), behandeln einige Ausführungsformen die Auffahrt als intern zu der neu definierten Kreuzung. In der Beschreibung der Kreuzung werden diese Linksabbiegungskanäle, Auffahrten, usw. typischerweise eliminiert werden, da ein Benutzer im Allgemeinen nicht komplexe Instruktionen will, sondern stattdessen eine Instruktion „Rechtsabbiegen auf San Vicente Blvd” oder etwas Ähnliches erwartet.
  • Mit dem Satz von Segmenten und Kreuzungspunkten, welche die definierte Kreuzung bilden, muss der Prozess zweispurige Fahrbahnen in einzelne Zweige von Kreuzungspunkten zusammenführen. Der Prozess 2900 definiert (bei 2920) als Nächstes den Satz aller Pfade, welche in die Kreuzung eintreten, und definiert (bei 2925) den Satz aller Pfade, die die Kreuzung verlassen. Für eine zweispurige Fahrbahn, welche einen Einbahnpfad (die Hälfte einer zweispurigen Straße) ist, wird der Pfad typischerweise eine Ausgangsseite und eine Eingangsseite haben. Zum Zwecke des Zusammenführens behandeln einige Ausführungsformen jedes Segment (das Segment, welches die Kreuzung verlässt, und das Segment, welches die Kreuzung betritt) als separate Pfade. Einspurige Fahrbahnen, welche nicht intern für zweispurige Fahrbahnen sind (z. B. der zusätzliche Zweiwegepfad 3405 in der Kreuzung 3400 der 34), werden typischerweise behandelt als separate Zweige und sind nicht Teil der Zusammenführungsanalyse in einigen Ausführungsformen.
  • Als Nächstes bestimmt (bei 2930) der Prozess, ob der Satz von Eingangspfaden irgendwelche nicht-gepaarten zweispurigen Fahrbahnpfade umfasst. Wenn keine solchen Pfade in dem Satz verbleiben (oder tatsächlich keine existiert haben), speichert (bei 2935) der Prozess irgendwelche nicht-gepaarte zweispurigen Fahrbahnen, welche in dem Satz von Ausgangpfaden übrig sind, als separate Zweige der Kreuzung. Im Allgemeinen wird dies erfolgen im Fall von falsch bezeichneten Kartendaten (die Straße ist tatsächlich eine Einbahnstraße) oder Zusammenführungskriterien, welche zu streng sind (ein Paar von Eingangs- und Ausgangspfaden bleibt ohne Zusammenführung).
  • Wenn ein nicht-gepaarter Eingangspfad existiert, wählt (bei 2940) der Prozess einen der Eingangspfade aus. Der Prozess bestimmt (bei 2945) dann, ob eine potentielle Übereinstimmung in dem Ausgangssatz existiert. Eine potentielle Übereinstimmung ist in einigen Ausführungsformen eine zweispurige Fahrbahn, welche gefunden wird durch Überqueren des vorher identifizierten Segments nach links (nach rechts, in dem Fall von Linksverkehr-Regionen), oder Überqueren der Kreuzung im Uhrzeigersinn.
  • Wenn keine potentielle Übereinstimmung existiert (z. B. die nächste identifizierte zweispurige Fahrbahn in dem Übergang ist auch ein Eingangspfad, oder der Ausgangssatz ist leer), speichert (bei 2950) der Prozess den Eingangspfad als einen separaten Zweig der Kreuzung und kehrt dann zurück zu 2930, um den nächsten nicht-gepaarten Eingangspfad zu finden. Andererseits, wenn eine potentielle Übereinstimmung existiert, bestimmen (bei 2955) einige Ausführungsformen, ob das potentielle Paar einen Satz von zweispurigen Fahrbahn-Übereinstimmungskriterien erfüllt. Dies sind Kriterien in einigen Ausführungsformen zum Bestimmen, ob ein Paar von zweispurigen Fahrbahnen tatsächlich die zwei Seiten der gleichen Straße sind. Einige Ausführungsformen bestimmen, ob die zwei Pfade (1) innerhalb einer Schwellendistanz sind (z. B. 25 m, 50 m, usw.), wo die Pfade die Kreuzung betreten/verlassen, und (2) ob die Winkel, an welchen die Pfade ihre Kreuzungen innerhalb der Kreuzung treffen, innerhalb eines Schwellenbereichs zueinander liegen (z. B. 5°, 10°, usw.). Um den Winkel zu berechnen, verwenden einige Ausführungsformen den Eckpunkt, welcher der Kante der Kreuzung am nächsten liegt (oder dem Ort der Kreuzung, an welchem das Pfadsegment die anderen Segmente innerhalb der Kreuzung kreuzt) und einen Eckpunkt, der in einer speziellen vordefinierten Entfernung liegt (z. B. 50 m). Der Prozess berechnet dann den Winkel bezüglich Norden für die Linie zwischen den zwei Eckpunkten.
  • In einigen Ausführungsformen betrachtet der Kartendienst zusätzlich die Namen der Pfade um zu bestimmen, ob diese übereinstimmen. Wenn die Namen übereinstimmen, können solche Ausführungsformen die Geometriekriterien für ein übereinstimmendes Paar lockern (d. h. Erlauben einer größeren Distanz zwischen den Pfaden oder einer größeren Differenz der Winkel zwischen den Pfaden). Übereinstimmende Namen könnten zum Beispiel sein „CA-1 South” und „CA-1 North”, oder wenn beide Pfade umfassen „Wilshire Blvd.” als einen ihrer Namen. Einige Ausführungsformen betrachten auch die Straßenklassendaten, um zweispurige Fahrbahnen sicher als übereinstimmend zu erkennen.
  • Wenn die zwei Pfade übereinstimmen, führt (bei 2960) der Prozess die Pfade in einen einzelnen Zweig der neu definierten Kreuzung zusammen. Wie oben gezeigt, werden Kreuzungen als ein Satz von Zweigen bei unterschiedlichen Winkeln gespeichert. Für einen zusammengeführten Pfad speichern einige Ausführungsformen den Winkel als den Durchschnitt der Winkel der zwei Pfade, welche den Zweig ausmachen. 35 zeigt die Reduktion einer Acht-Pfad-Kreuzung 3500 in vier Zweige, wobei der Winkel des rechten Zweigs 3510 nur halb soviel von der Horizontalen abweicht wie der rechte Ausgangspfad 3505, weil der rechte Eingangspfad horizontal liegt. Wie konzeptionell gezeigt, werden Wegbeschreibungen (Eingang/Ausgang) nicht für Kreuzungszweige in einigen Ausführungsformen gespeichert. Der Kartendienst erzeugt die Routen unter Verwendung von Kartendaten, welche die Kreuzungen sowie Wegbeschreibungen für die Straßen umfassen, so dass eine Route nicht den falschen Weg auf einem Zweig der Kreuzung einschlagen wird.
  • Auf der anderen Seite, wenn die Pfade nicht übereinstimmen, speichert (bei 2965) der Prozess jeden der Pfade als separate Zweige der Kreuzung. 36 zeigt die Reduktion einer anderen Acht-Pfad-Kreuzung 3600 in fünf Zweige. In diesem Fall verschmelzen die zweispurigen Fahrbahnpfade 3605 und 3606 auf der rechten Seite nicht und werden daher behandelt als separate Zweige 3610 und 3611 der reduzierten Kreuzung. In diesem Beispiel ist der Winkel, bei welchem jeder dieser Zweige die Kreuzung verlässt, der Winkel, welcher für den Zweig gespeichert wird (ohne Mittelwertbildung). Der Prozess 2900 kehrt dann zu 2930 zurück, um zu bestimmen, ob irgendwelche Eingangspfade verbleiben. Wie genannt, sobald der Eingangspfadsatz leer ist, fährt der Prozess zu 2935 fort und endet danach.
  • Das Folgende stellt Pseudocode einiger Ausführungsformen zum Erzeugen der Daten für eine Kreuzung dar, sobald die internen Segmente für die Kreuzung identifiziert worden sind (z. B. Operationen, welche durch einige oder alle des Prozesses 2900 ausgeführt werden):
    Erfassen aller externen Segmente, welche interne Segmente für eine Kreuzung berühren;
    Identifizieren externer Segmente, welche durch interne Segmente in der Kreuzung umgeben sind, und diese als intern markieren;
    Zusammengruppieren von Paaren eingehenden und ausgehenden Segmenten, welche die gleiche Straße repräsentieren;
    Berechnen eines Ausgangswinkels für jedes Paar und für jede nicht-gepaarte Straße;
    Konstruieren eines Template-Kreuzungsmusters mit einem Zweig für jeden Winkel;
    Wenn eins Muster für vorher erzeugte Kreuzung existiert, verwenden des existierenden Musters um Speicherplatz zu sparen (Verweisen der Kreuzung auf existierendes Muster); Ansonsten, wenn das Muster nicht existiert, Erzeugen und Speichern eines neuen Eintrags für das Muster;
  • Wie angezeigt, speichern einige Ausführungsformen jede Kreuzung als eine Datenstruktur. Diese Datenstruktur zeigt die Zweige der Kreuzung und die Winkel an, bei welchen die Zweige in die Kreuzungspunkte ein- und/oder austreten. 37 zeigt konzeptionell ein Beispiel solch einer Datenstruktur 3700 einiger Ausführungsformen für eine Punkttyp-Kreuzung. Wie gezeigt, umfasst die Kreuzung einen Kreuzungs-Identifizierer ID (welcher in einigen Ausführungsformen ein eindeutiger Bezeichner ist), eine Kartendatenassoziation, und einen Satz von Zweigen mit Winkeln und Typen. Die Kartendatenassoziation assoziiert in einigen Ausführungsformen die Kreuzungsdatenstruktur mit einem tatsächlichen Ort innerhalb der Karte. In einigen Ausführungsformen ist dies einfach ein Breiten-/Längenpunkt, aber kann auch bestehen aus anderen Daten in anderen Ausführungsformen (z. B. eine Liste der Pfadsegmente oder aggregierte Pfade, welche sich an der Kreuzung treffen). Jeder Zweig umfasst einen Typ und einen Winkel. Der Typ ist in einigen Ausführungsformen ein Kreuzungstyp. Einige Ausführungsformen definieren zwei Kreuzungstypen: Punkt und Kreisverkehr. Jedoch können andere Ausführungsformen zusätzliche Kreuzungstypen umfassen, wie beispielsweise Verkehrsknoten. Einige Ausführungsformen speichern den Kreuzungstyp als eine Eigenschaft der Kreuzung, statt separat für jeden Zweig, aber andere Ausführungsformen erkennen die Möglichkeit, dass eine Kreuzung teilweise ein Kreisverkehr sein kann, aber teilweise eine Punkt-Kreuzung sein kann. Die Datenstruktur 3700 umfasst vier Zweige, an den kardinalen Richtungen von 0° (Nord), 90° (Osten), 180° (Süden) und –90° (Westen). In einigen Ausführungsformen umfasst die Kreuzungsdatenstruktur auch Referenzen zu irgendwelche Kreuzungspunkte (d. h. Daten, welche vom Kartendaten-Anbieter empfangen werden) und, welche innerhalb der definierten Kreuzung enthalten sind. Für eine typische Kreuzung von zwei zweispurigen Fahrbahnen werden vier Kreuzungspunkte durch solch eine Datenstruktur referenziert.
  • 38 zeigt eine Datenstruktur 3800 einiger Ausführungsformen für eine Kreisverkehr-Kreuzung. Einige Ausführungsformen stellen spezialisierte Verarbeitung für Kreisverkehr-Kreuzung bereit. Das Folgende stellt Pseudocode einiger Ausführungsformen dar zum Erzeugen von Kreuzungsdaten für Kreisverkehr-Kreuzungen:
    Identifizieren aller Kreisverkehrsegmente;
    Für jedes Kreisverkehrsegment:
    Erfassen aller zusammenhängenden Kreisverkehrsegmente;
    Markieren der erfassten Kreisverkehrsegmente als verarbeitet;
    Bilden einer Kreisverkehr-Kreuzung aus dieser Sammlung der Kreisverkehrsegmente;
  • In einigen Fällen identifizieren die Kartendaten einen Kreisverkehr (z. B. als eine Form des Wegs oder über einen anderen Indikator). Dies erlaubt dem Kartendienst-Kreuzungsrechner, seine spezialisierte automatisierte Kreisverkehr-Verarbeitung zu beginnen. Insbesondere beim Ausführen der Kreisverkehr-Verarbeitung versucht der Kartendienst, Paare von Abzweigungs-Konnektoren (d. h. die Abschnitte einer Straße, welche in und aus einem Kreisverkehr abzweigen) zu identifizieren. In einigen Ausführungsformen durchläuft der Kreuzungsrechner den Kreisverkehr (z. B. gegen den Uhrzeigersinn für Rechtsverkehr) auf der Suche nach einem Ausgangspfad, welchem gefolgt wird, innerhalb einer speziellen Distanz (z. B. Winkeldistanz), durch einen Eingangspfad. Der Prozess bestimmt dann, ob diese Pfade zu kombinieren sind, auf der Suche nach Faktoren ähnlich zu jenen zum Verschmelzen von zweispurigen Fahrbahnen bei Punkt-Kreuzungen. Zum Beispiel könnten die verwendeten Faktoren umfassen, ob die Namen ähnlich sind, ob die Distanz zwischen den Ausgangs-/Eingangspfaden klein genug ist, und potentiell andere Faktoren. Als ein Ergebnis dieser Verarbeitung, wenn eine zufällige Straße den Kreisverkehr in der Mitte von dem kreuzt, was ansonsten als eine Eingangs-/Ausgangskombination erscheint, behandeln einige Ausführungsformen dies als drei separate Zweige.
  • Um die Winkel der Zweige zu berechnen, bestimmen einige Ausführungsformen, wo der Zweig den Kreisverkehr kreuzt, statt den Winkel der Annäherung der Straße. Für Eingangs-/Ausgangskombinationen übernimmt der Prozess den Durchschnitt der zwei Pfade. 39 zeigt konzeptionell die Reduktion einer Kreisverkehr-Kreuzung 3900 zu Kreuzungsdaten. Der obere Pfad unabhängig von dem Annähern bei ungefähr einem 30°-Winkel weg von Norden, wird designiert als ein 0°-Zweig – der Benutzer ist primär an der Distanz interessiert, um den Kreisverkehr für die Kreuzungen, statt am Winkel, in welchem sie eintreten und verlassen. Die anderen drei Zweige sind auch designierte kardinale Richtungen, weil sich ihre Abzweigungen in diesen Richtungen mitteln. Die Datenstruktur 3800 zeigt die Datenstruktur für die Kreisverkehr-Kreuzung 3900. Andere Ausführungsformen jedoch verwenden den Winkel, in welchem der Pfad den Kreisverkehr betritt oder verlässt, statt die Entfernung um den Kreisverkehr, an welchem die Pfade ihn kreuzen.
  • Das Folgende stellt Pseudocode einiger Ausführungsformen dar zum Erzeugen der Daten für eine Kreisverkehr-Kreuzung, sobald die Kreisverkehr-Segmente für die Kreuzung identifiziert worden sind:
    Für Satz von Kreisverkehrsegmenten, welche eine einfache Schleife zu bilden:
    Erfassen aller Nicht-Kreisverkehrsegmente, welche die Schleife berühren, geordnet durch die Richtung der Reise um die Schleife; Zusammengruppieren der Paare von aufeinanderfolgenden Kreisverkehrausgangs-/eingangssegmenten, welche die gleiche Straße repräsentieren;
    Zuweisen eines Winkels zu jedem Paar und jedem nicht-gepaarten Segment;
    Subtrahieren des kleinsten Winkels von allen Winkeln (somit der kleinste Winkel = 0);
    Konstruieren eines Template-Kreuzungsmusters mit Zweig für jeden Winkel;
    Wenn das Muster für vorher erzeugte Kreuzung existiert, Verwenden des existierenden Musters, um Speicherplatz zu sparen (Referenzieren der Kreuzung zu dem existierenden Muster);
    Ansonsten, wenn das Muster nicht existiert, Erzeugen und Speichern des neuen Eintrags für das Muster;
  • Wie in den obigen Beispielen des Pseudocodes angezeigt, führen einige Ausführungsformen zusätzliche Komprimierung beim Speichern der Kreuzungen aus. Die reale Welt enthält Millionen (oder Hunderte von Millionen) von individuellen Kreuzungen, aber viele dieser Kreuzungen haben die gleiche Konfiguration (insbesondere, wenn sehr kleine Winkelvariationen toleriert werden). Statt die separaten Daten für jede der Hunderte von Millionen von Kreuzungen zu speichern, verwenden einige Ausführungsformen Kompression beim Speichern der Kreuzungen. Während jede Kreuzung verarbeitet wird, speichern einige Ausführungsformen ein Template-Muster für diese Kreuzung. Wenn zusätzliche Kreuzungen mit dem Template-Muster identifiziert werden, speichern solche Ausführungsformen eine Referenz zu diesem Muster (während sie weiter eine separate Datenstruktur erzeugen, weil die Ortsinformationen unterschiedlich für zwei Kreuzungen ist, welche dem gleichen Muster folgen.
  • 3. Änderung von Kreuzungsdaten für Navigation
  • Der obige Abschnitt beschrieb die Erzeugung der komplexen Kreuzungsdaten, typischerweise in einem Offline-Prozess vor der Routenerzeugung. Jedoch zum Zeitpunkt der Routenerzeugung modifizieren einige Ausführungsformen die Kreuzungsdaten zur Übertragung an den Benutzer. Der Kartendienst, welcher die Routendaten bereitstellt, modifiziert die Winkel, um sie relativ zur Einfahrtrichtung einzustellen und markiert einen der Zweige als einen Ausfahrtzweig.
  • 40 zeigt konzeptionell einen Prozess 4000 einiger Ausführungsformen zum Modifizieren von Kreuzungsdaten, um Navigationsinformationen für eine Route bereitzustellen. Wie gezeigt, beginnt der Prozess durch Empfangen (bei 4005) einer Route, für welche Kreuzungsinformation erzeugt werden soll. Wie oben erwähnt, erzeugen einige Ausführungsformen eine oder mehrere Routen für jeden Satz von Anfangs- und Endorten, welche durch eine Benutzervorrichtung angefordert wurden. Jede dieser Routen besteht aus einer Serie von Manövern bei verschiedenen Pfadkreuzungen (d. h. bei Kreuzungen).
  • Wie gezeigt mit der identifizierten Route, wählt (bei 4010) der Prozess 4000 die nächste Kreuzung entlang der identifizierten Route aus. Einige Ausführungsformen beginnen mit der ersten Kreuzung (d. h. das erste Manöver, welches ein Benutzer der Route folgend machen wird), startend von dem Startpunkt der Route. Viele Routen umfassen lange Strecken entlang einer speziellen Straße, geradeaus fahrend durch zahlreiche Kreuzungen (möglicherweise umfassend Kreuzungen von zwei Straßensegmenten, welche Teil der gleichen Straße sind und bei welchen keine anderen Straßen kreuzen). In einigen Ausführungsformen umfassen die Navigationsinstruktionen nicht Informationen über die Kreuzungen, bei welchen kein Abbiegemanöver gemacht wird. Dementsprechend ist die nächste Kreuzung tatsächlich die nächste Kreuzung entlang der Route, bei welcher ein Manöver gemacht werden wird.
  • Der Prozess ruft (bei 4015) dann vorberechnete Kreuzungsdaten als einen Satz von Zweigen mit zugehörigen Winkeln ab. Wie oben beschrieben, speichern einige Ausführungsformen eine Datenstruktur für jede Kreuzung, welche die Zweige der Kreuzung zusammen mit Winkeln für jeden Zweig auflistet. 37 und 38 zeigen Beispiele solcher Datenstrukturen, sowohl für eine Punkt-Kreuzung als auch eine Kreisverkehr-Kreuzung.
  • Nach Abrufen der Datenstruktur für die ausgewählte Kreuzung, rotiert der Kartendienst die Definition der Kreuzung, um die Definition auf die Richtung zu normalisieren, bei welcher die Route in die Kreuzung eintritt. Dementsprechend identifiziert (bei 4020) der Prozess 4000 den Eintrittszweig der Kreuzung und stellt den Eintrittszweig auf einen vorbestimmten Winkel ein. Einige Ausführungsformen stellen die Einfahrtrichtung in die Kreuzung als 0° ein und stellen daher den Einfahrtzweig der Kreuzung auf 180° ein.
  • Der Prozess rotiert dann die anderen Zweige der Kreuzung. Wie gezeigt, wählt (bei 4025) der Prozess einen nächsten Zweig der Kreuzung aus. In einigen Ausführungsformen werden die Zweige und Winkel in einem Array, einer Liste oder ähnlichen Datenstruktur gespeichert, und der Prozess durchläuft diese Datenstruktur. Der Prozess stellt (bei 4030) den Winkel des ausgewählten Zweigs basierend auf einer Winkeldistanz von dem Eingangszweig ein. Zum Beispiel, wenn der Eingangszweig bei 0° gespeichert wurde (d. h. nach Norden zeigend), dann wird ein Zweig, welcher bei 95° gespeichert wurde, um 180° auf –85° geändert. Zusätzlich bestimmt (bei 4035) der Prozess, ob der ausgewählte Zweig der Ausfahrtzweig der Kreuzung ist (d. h. der Zweig, bei welchem die Route die Kreuzung verlässt). Um für die Punkt-zu-Punkt-Navigationsinstruktionen auf der Client-Karten-/Navigationsanwendung die Manöver geeignet anzuzeigen, muss die Vorrichtung wissen, längs welchem Zweig die Route die Kreuzung verlässt. Somit, wenn der ausgewählte Zweig der Ausgangszweig ist, markiert (bei 4040) der Prozess 4000 den ausgewählten Zweig als solchen. Der Prozess (bei 4045) bestimmt dann, ob irgendwelche zusätzlichen Zweige der Kreuzung für die Route zu konvertieren verbleiben. Wenn zusätzliche Zweige verbleiben, kehrt der Prozess zu 4025 zurück, um den nächste Zweig der Kreuzung auszuwählen. Wenn alle Zweige für die derzeitige Kreuzung verarbeitet wurden, bestimmt (bei 4060) der Prozess 4000, ob zusätzliche Kreuzungen entlang der Route verbleiben, welche modifiziert werden müssen. Wenn zusätzliche Kreuzungen verbleiben, kehrt der Prozess zu 4010 zurück, um die nächste Kreuzung auszuwählen. Wenn die letzte Kreuzung modifiziert wird, endet der Prozess.
  • 41 zeigt eine konzeptionelle Zeichnung einer Route, welche durch eine Kreuzung 4100 genommen wird, eine Datenstruktur 4105 für die Kreuzung, und die Modifikation der Datenstruktur, um eine neue Datenstruktur 4010 für Punkt-zu-Punkt-Navigationsinstruktionen zu erzeugen. Wie gezeigt, tritt die Route von der rechten Seite (dem 90°-Zweig) in die Kreuzung ein und verlässt diese an der unteren Seite (dem –162°-Zweig). In der modifizierten Datenstruktur ist der Eingangszweig zu 180° rotiert worden, was eine 90°-Rotation der anderen Zweige verursacht. Der Zweig bei 18° rotiert zu 108°, der Zweig bei –65° rotiert zu 25°, und der Zweig bei 1620 rotiert zu –72°. Zusätzlich zu den Rotationswinkeln, hat die Datenstruktur 4410 den letzten Zweig markiert als den Ausgang für die Navigation.
  • Einige Ausführungsformen umfassen ein binäres Ausgangsfeld, wobei der Ausfahrtzweig mit einer „1” markiert ist und alle anderen Zweige mit einer „0”.
  • B. Client-seitige dynamische Erzeugung von adaptiv angezeigten grafischen Indikatoren
  • Der obige Abschnitt beschreibt die Erzeugung von Kreuzungsdaten (d. h. Daten einer Straßenkreuzung) zur Verwendung in der Punkt-zu-Punkt-Navigation. Hat die Vorrichtung/das Gerät des Benutzers die Kreuzungsdaten jedoch einmal erhalten, muss die Client-Kartenanwendung, die auf dem Gerät arbeitet, dynamisch grafische Fahrmanöver-Indikatoren erzeugen, auf der Grundlage der Kreuzungsdaten, um die intuitive Punkt-zu-Punkt-Navigation für eine Fahrtroute zur Verfügung zu stellen.
  • 1. Beispiel verschiedener Indikatoren in unterschiedlichen Kontexten
  • Wenn in einem Navigationssystem einem Benutzer grafische Darstellungen von bevorstehenden Fahrmanövern angezeigt werden, sind zwei im Wettbewerb stehende Ziele zu erfüllen, nämlich die Vollständigkeit der Darstellung und die Klarheit und Lesbarkeit der Darstellung. Die Kartenanwendung einiger Ausführungsformen verwendet einen neuen adaptiven Mechanismus, um diese Ziele entsprechend dem Kontext unterschiedlich auszubalancieren.
  • Für eine aktuell wiedergegebene Instruktion, im Kontext der Punkt-zu-Punkt-Navigation auf dem Vollbildschirm, abstrahiert die Kartenanwendung einiger Ausführungsformen ein Fahrmanöver bis auf zwei Elemente: einen hervorgehobenen stilisierten Pfeil, der ungefähr den Weg des Fahrzeugs durch die Kreuzung wiedergibt und einen nicht hervorgehobenen Satz von Linien und Kurven, die den anderen Elementen der Kreuzung entsprechen. Beispielsweise wird ein Rechtsabbiegen in einer T-Kreuzung dargestellt durch einen großen Pfeil mit einem nach rechts weisenden Winkel, der von einem kleinen, weniger hellen Segment begleitet wird, das parallel zu einem der Segmente des großen Pfeils verläuft. Das kleinere Segment wird auch auf die Seite geschoben, sodass der Weg, der vom Fahrzeug durch die Kreuzung genommen wird, die Wiedergabe dominiert. Eine derartige Darstellung eines Fahrmanövers, die einen Pfeil mit einem Kreuzungskontext enthält, liefert eine weitgehend vollständige Information über das Fahrmanöver und bleibt trotzdem abstrakt und leicht verständlich.
  • Eine alternative Darstellung eines Fahrmanövers kann den Kreuzungskontext vollständig weggelassen und den primären Pfeil zur Anzeige des Fahrmanövers vereinfachen. Wenn ein Benutzer auf Fahrmanöver blickt, die dem aktuellen Fahrmanöver folgen (dem nächsten durchzuführenden Fahrmanöver), kann die detaillierte grafische Darstellung mehr Information liefern als es erforderlich ist und schwerer mit einem Blick erfassbar sein. Selbst wenn beispielsweise Platz zur Verfügung steht, um den Kreuzungskontext für eine zweite Instruktion anzuzeigen, die dem ersten Fahrmanöver folgt, zeigen einige Ausführungsbeispiele der Klarheit halber nur den vereinfachten Pfeil an. Dieser adaptive Ansatz ist auch günstig für die UI-Elemente, deren Platz beschränkt ist. Während des Multitasking oder beim Betrachten von Instruktionslisten, beispielsweise, verwendet die Kartenanwendung einiger Ausführungsformen die einfachere Abstraktion der Fahrmanöver, um etwas leichter Verständliches auf wenig Platz anzuzeigen.
  • 42 veranschaulicht mehrere unterschiedliche Szenarien, in denen die Kartenanwendung verschiedene Arten grafischer Indikatorpfeile anzeigt, um einem Benutzer Fahrmanöver grafisch darzustellen. Das erste Szenario 4205 veranschaulicht die Navigationsanweisungen, die in einer Listenansicht dargestellt sind. Die Listenansicht zeigt eine Reihe von Punkt-zu-Punkt-Instruktionen, um von einem Startpunkt zu einem Endpunkt zu gelangen. In einigen Ausführungsformen kann der Benutzer die Punkt-zu-Punkt-Instruktionen sehen, ohne tatsächlich in einen Navigationsmodus einzutreten und sogar der Fahrtroute zu folgen. In dieser Situation zeigen einige Ausführungsformen eine einfache Version des grafischen Indikators für jedes Abbiegen. Dies erfolgt sowohl aus Gründen der Platzersparnis als auch der Tatsache, dass der Kreuzungskontext nicht besonders hilfreich ist, wenn sich der Benutzer nicht tatsächlich einem Fahrmanöver nähert.
  • Das zweite Szenario 4210 zeigt die Punkt-zu-Punkt-Navigation, wenn das Gerät des Benutzers gesperrt ist, auf dem die Kartenanwendung arbeitet. Wie im Einzelnen unten beschrieben, ist die Anwendung in der Lage, Punkt-zu-Punkt-Navigationsinstruktionen anzuzeigen, selbst wenn das Gerät gesperrt ist, um weiterhin Instruktionen an den Benutzer zu liefern. In diesem Szenario wird, wie dargestellt, in einigen Ausführungsformen auch ein vereinfachter Pfeil angezeigt. Das liefert eine einfache grafische Anzeige des Abbiegens innerhalb des gesperrten Bildschirms (in diesem Fall ein Rechtsabbiegen), ohne die Kontextdaten zu liefern, die ein Benutzer möglicherweise nur schwer in dem gesperrten Bildschirm erkennen kann.
  • Das dritte Szenario 4215 zeigt ebenfalls Punkt-zu-Punkt-Navigation, wenn die Kartenanwendung in dem Gerät, auf dem die Anwendung arbeitet, nicht geöffnet ist (oder aktuell nicht angezeigt wird). Wie im Detail oben beschrieben, zeigt die Anwendung Punkt-zu-Punkt-Navigationsinstruktionen innerhalb des Bereichs des Hinweis-Banners an, wenn die Kartenanwendung nicht angezeigt wird. Sehr ähnlich zum Modus mit gesperrten Bildschirm verwendet die Kartenanwendung einen einfachen grafischen Indikator für das angezeigte Fahrmanöver (in diesem Fall ein Linksabbiegen). Aufgrund der Platzbeschränkung und der oben beschriebenen Gründe für den Modus mit gesperrtem Bildschirm wird der einfache grafische Indikator benutzt.
  • Die vorstehenden drei Szenarien zeigen Situationen, in denen die einfachen grafischen Indikatoren benutzt werden. Der Fachmann wird erkennen, dass einige Ausführungsformen die komplexere stilisierte Kreuzung zusammen mit grafischen Indikatoren für Fahrmanöver in den obigen Situationen verwenden könnten. Die folgenden drei Szenarien veranschaulichen Anzeigen, in denen diese komplexeren Indikatoren verwendet werden.
  • Das vierte Szenario 4220 zeigt Übersichts-Navigationsanweisungen für Fahrtrouten, in denen der Benutzer eine gesamte Fahrtroute von einem Startpunkt zum Endpunkt sieht. Der Benutzer kann durch die verschiedenen Instruktionen wischen (zum Beispiel unter Verwendung von Wischgesten), um die Fahrtrouten-Segmente zwischen den Fahrmanövern zu sehen. Hier wird die komplexe Kreuzungsanzeige verwendet, die den Kreuzungskontext (eine T-Kreuzung) und die Fahrmanöver durch die Kreuzung zeigt, wobei der Pfeil für die Fahrmanöver gegenüber dem Kreuzungskontext hervorgehoben ist.
  • Das fünfte Szenario 4225 zeigt Navigationsinstruktionen im Kontext der Standard Punkt-zu-Punkt-Navigation (d. h. nicht im Modus mit gesperrtem Bildschirm oder mit einer geöffneten anderen Anwendung, usw.). In diesem Fall wird der komplexere Pfeil als grafischer Indikator verwendet. In dem dargestellten Beispiel ist die Straßenkreuzung etwas komplizierter als im vorigen Beispiel, mit einem vierten Zweig, der sich von der Annäherungs- Richtung nach oben und nach rechts erstreckt. Das sechste Szenario 4230 zeigt ebenfalls Navigationsinstruktionen während der Punkt-zu-Punkt-Navigation. In diesem Fall ist das durchgeführte Fahrmanöver ein Wenden (U-Turn). Die Darstellung eines Wendemanövers mit den Kreuzungszweigen wie im Szenario 4225 würde dazu führen, dass der Pfeil im gleichen Zweig (dem unteren Zweig) nach oben und nach unten zeigt. Als Ergebnis zeigt die Anwendung stattdessen einen gespeicherten Anzeigepfeil für ein Wendemanöver.
  • 43 zeigt verschiedene Szenarien für das gleiche Abbiegen und wie die verschiedenen Pfeile für das gleiche Abbiegen verwendet werden können. Das erste Szenario 4305 zeigt ein Rechtsabbiegen in die ist Straße bei den Punkt-zu-Punkt-Navigationsinstruktionen. Wie in 42 wird ein komplexer grafischer Indikator benutzt. Das zweite Szenario 4310 zeigt die Situation während der Punkt-zu-Punkt-Navigation, in der das Rechtsabbiegen auf die 1st Straße das zweite von zwei Fahrmanövern in rascher Folge darstellt. In diesem Fall kommt die zweite Instruktion kurz nach der ersten, sodass die Anwendung eine Anzeige für bevorstehende zwei Fahrmanöver liefert. Dem zweiten Fahrmanöver wird weniger Platz auf der Anzeige zur Verfügung gestellt, so dass der vereinfachte Pfeil genutzt wird. Das dritte Szenario 4315 zeigt die Verwendung des vereinfachten Pfeil-Indikators in der Liste der Routenanweisungen. Zusätzlich ersetzen, wie für das zweite Fahrmanöver in der Liste der Routenanweisungen dargestellt, einige Ausführungsformen den vereinfachten Richtungsindikator durch ein Autobahnschild, wenn das Manöver auf einer Straße endet, für die ein derartiges Verkehrszeichen verfügbar ist. Die vierten und fünften Szenarien 4320 und 4325 zeigen den vereinfachten Pfeilindikator für das Rechtsabbiegen im Modus mit gesperrtem Bildschirm und wenn die Kartenanwendung auf dem Gerät nicht angezeigt wird.
  • 2. Herunterladen von Kreuzungsdaten und Erzeugung von grafischen Indikatoren
  • In einigen Ausführungsformen führt die Kartenanwendung Navigation durch auf der Grundlage einer Fahrtroute, die von einem Benutzer der Kartenanwendung ausgewählt wurde. Beispielsweise kann ein Benutzer die Kartenanwendung auffordern, nach einer Fahrtroute von einem ersten Ort zu einem zweiten Ort zu suchen (z. B. vom Haus des Benutzers zu einem bestimmten Restaurant). In einigen Ausführungsformen sendet die Anwendung die Anforderung an einen zentralisierten Kartendienst (zum Beispiel einen Satz von Servern, auf denen Hintergrundprozesse für die Erzeugung von Karten und Fahrtrouten ablaufen) und erzeugt einen Satz von einer oder mehreren möglichen Fahrtrouten vom ersten Ort zum zweiten. Der Benutzer wählt dann eine der Routen, die er befahren will.
  • 44 zeigt schematisch einen Prozess 4400 einiger Ausführungsformen, um grafische Indikatoren während der Fahrtrouten-Inspektion anzuzeigen. In einigen Ausführungsformen kann ein Benutzer eine Liste von Navigationsanweisungen für eine Fahrtroute sehen (zum Beispiel durch Auswählen einer GUI Taste „Listenansicht”) oder kann die Anweisungen schrittweise eine nach der anderen durchgehen (zum Beispiel durch Wischgesten) während er auch die Fahrtroute auf der Karte betrachtet. In einigen Ausführungsformen wird der Prozess 4400 durchgeführt durch eine Kartenanwendung, die auf dem Gerät arbeitet (zum Beispiel ein mobiles Gerät wie beispielsweise ein Smartphone oder ein Touchpad).
  • Wie dargestellt beginnt der Prozess 4400 einiger Ausführungsformen indem (bei 4410) eine Anforderung für eine Fahrtroute an einen Kartendienst-Server geschickt wird. In einigen Ausführungsformen enthält die Anforderung einen Startort und einen Endort, möglicherweise mit einem oder mehreren Zwischenorten. Der Benutzer gibt diese Orte in die GUI der Kartenanwendung einiger Ausführungsformen ein und die Anwendung überträgt die Anforderung für die Fahrtroute durch eine Geräteschnittstelle an den Kartendienst-Server. Die Operationen des Servers zur Erzeugung einer Fahrtroute und von Navigations-(Kreuzungs-)Instruktionen sind oben im Teilabschnitt A dieses Abschnitts beschrieben.
  • Der Prozess 4400 empfängt dann (bei 4420) die Fahrtroute zusammen mit den kodierten Kreuzungsdaten. In einigen Ausführungsformen überträgt der Kartendienst die Kreuzungsdaten in einem kodierten Format. Dieses Kodieren kann einfach das Identifizieren ähnlicher Kreuzungen und die Bezugnahme darauf beinhalten, statt dieselbe Kreuzungsinformation doppelt zu wiederholen oder sie kann ein zusätzliches Kodieren beinhalten. Andere Ausführungsformen liefern möglicherweise keinerlei Kodierung. Unter der Annahme, dass die Daten codiert sind, dekodiert der Prozess (bei 4430) die kodierten Kreuzungsdaten, um Kreuzungsinformation für jedes Fahrmanöver längs der Fahrtroute zu erhalten. Diese Kreuzungsdaten bestehen in einigen Ausführungsformen aus geometrischer Information, die die Zweige der Kreuzung und die Winkel identifiziert, unter denen diese Zweige in die Kreuzung eintreten oder austreten. Einige Ausführungsformen enthalten auch Fahrmanöver-Information zusammen mit der Kreuzungs-Information, die beschreibt, wie die Fahrmanöver durchzuführen sind (zum Beispiel als ein Rechtsabbiegen, Wenden, Autobahnabfahrt, usw.).
  • Danach erzeugt der Prozess (bei 4440) Richtungsindikatoren für alle Kreuzungen längs der Fahrtroute. Richtungsindikatoren sind grafische Indikatoren von Fahrmanövern längs der Fahrtroute. Beispielsweise kann eine Route ein Rechtsabbiegen an einer ersten Kreuzung enthalten, kein Abbiegen an einer zweiten Kreuzung und ein Halbrechts-Abbiegen bei einer dritten Kreuzung. In diesem Beispiel kann der Satz von Routenindikatoren eine erste grafische Darstellung für das Rechtsabbiegen enthalten (zum Beispiel ein Pfeil, der nach rechts weist), eine zweite grafische Darstellung, die kein Abbiegen anzeigt (zum Beispiel ein gerader Pfeil), und eine dritte grafische Darstellung für ein Halblinksmanöver (zum Beispiel ein diagonaler Pfeil nach links). Einige Ausführungsformen erzeugen jedoch keine grafische Darstellung von Kreuzungen, bei denen die Route geradewegs hindurch geht. Tatsächlich übertragen einige Ausführungsformen keine Kreuzungsdaten für diese Kreuzungen vom Kartendienst-Server. Auf der anderen Seite übertragen einige Ausführungsformen tatsächlich Kreuzungsdaten für jede Kreuzung längs der Fahrtroute und in einigen derartigen Ausführungsformen erzeugt die Kartenanwendung grafische Indikatoren für jede derartige Kreuzung. In einigen Ausführungsformen werden die Richtungsindikatoren durch das Gerät erzeugt unter Verwendung eines Prozesses, wie beispielsweise des Prozesses 4600, der unten in Bezug auf 46 beschrieben wird. In einigen Ausführungsformen erzeugt die Anwendung mindestens zwei Richtungsindikatoren für jedes Fahrmanöver: einen ersten komplexeren Richtungsindikator, der Kontextinformation über die Kreuzung enthält und einen zweiten einfacheren Indikator, der nur das durchzuführende Fahrmanöver zeigt.
  • Der Prozess bestimmt dann (bei 4450), ob eine Anforderung für die Anzeige von Routen-Instruktionen empfangen wurde. Wie im vorherigen Teilabschnitt dargestellt, kann ein Benutzer die Instruktionen schrittweise eine nach der anderen durchlaufen oder eine Listen-Ansicht derartiger Fahrtrouteninstruktionen anfordern. Ist keine Anforderung erhalten, geht der Prozess zu 4480, um festzustellen, ob die Routeninspektion beendet ist (zum Beispiel weil der Benutzer die Fahrtroute gelöscht hat, das Befahren der Fahrtroute begonnen hat, die Kartenanwendung geschlossen hat, usw.). Diese beiden Operationen wirken effektiv als ein Wartezustand, während dessen der Prozess wartet, bis ein Ereignis empfangen wird, das die Anzeige der Routeninstruktionen veranlasst.
  • Wenn die Anwendung eine derartige Anforderung empfangen hat, analysiert der Prozess 4400 (bei 4460) den Kontext zur Anzeige des einen oder mehreren Richtungsindikatoren. In einigen Ausführungsformen hängt der Kontext von verschiedenen Faktoren ab, die damit zusammenhängen, Fahrmanöver klar anzuzeigen, die für das Befahren der Route erforderlich sind. Beispielsweise kann der Kontext basiert sein auf dem verfügbaren Platz zum Darstellen des grafischen Indikators (zum Beispiel aufgrund der Größe des Geräts, auf dem die Fahrtrouteninstruktionen angezeigt werden), die Konditionen, unter denen der Indikator wiedergegeben wird (zum Beispiel, ob es sich um ein aktuelles oder ein zukünftiges Fahrmanöver handelt, die besondere Modalität, in der die Kartenanwendung das Verkehrszeichen anzeigt, usw.).
  • Nachdem der Kontext für die Routeninstruktionen identifiziert ist, zeigt der Prozess 4400 (bei 4470) die Richtungsindikatoren für die Fahrmanöver basierend auf dem Kontext. In einigen Ausführungsformen bestimmt der Kontext zur Anzeige eines bestimmten Richtungsindikators, wie der Richtungsindikator erscheinen soll, wenn er wiedergegeben wird. Die Richtungsindikatoren kommen in einigen Ausführungsformen in unterschiedlichen illustrativen Stilen für unterschiedliche Kontexte vor. Ein statischer (oder einfacher) illustrativer Stil für Richtungsindikatoren beschreibt das Fahrmanöver nur in allgemeiner Erscheinungsform (zum Beispiel ein nach rechts weisender Pfeil, um den Benutzer anzuweisen, nach rechts abzubiegen, oder ein Pfeil nach halb links, um den Benutzer zu veranlassen, Halblinks abzubiegen, usw.). Im Gegensatz dazu passt ein dynamischer illustrativer Stil die Richtungsindikatoren an und stilisiert sie, um wichtige Aspekte jedes Fahrmanövers klar darzustellen. Derartige stilisierte Richtungsindikatoren können auch zusätzliche Linien enthalten, um andere Straßen in der Kreuzung zu zeigen, oder andere Informationen, die zum Fahrmanöver gehören. Einige Ausführungsformen verwenden beispielsweise die komplexeren Richtungsindikatoren, um die Fahrtrouteninstruktionen für ein Fahrmanöver jeweils zu einer Zeit anzuzeigen und verwenden die einfacheren Richtungsindikatoren, um eine Listenansicht aller Instruktionen gleichzeitig darzustellen. Der Prozess stellt dann fest (bei 4480), ob die Routeninspektion beendet ist, wie oben beschrieben. Wenn die Inspektion beendet ist, endet der Prozess.
  • Zusätzlich zur Anzeige von Fahrtrouteninstruktionen werden die Richtungsindikatoren in verschiedenen Kontexten während der Punkt-zu-Punkt-Navigation verwendet. 45 zeigt schematisch einen Prozess 4500 einiger Ausführungsformen, der Navigation über eine derartige Fahrtroute durchführt. In einigen Ausführungsformen wird der Prozess 4500 von einer Kartenanwendung durchgeführt, die auf einem Gerät arbeitet (zum Beispiel einem mobilen Gerät oder einem Touchpad).
  • Wie dargestellt, beginnt der Prozess 4500, indem er feststellt (bei 4510), ob der Benutzer eine Fahrtroute befährt. D. h. die Anwendung bestimmt, ob sich der Ort des Benutzergeräts (der beispielsweise durch die GPS-Fähigkeit des Geräts bereitgestellt wird oder von einem anderen Nachführungsmechanismus für den Ort) längs des Pfades der Fahrtroute befindet oder ob er sich von der Fahrtroute entfernt hat. Wenn sich der Benutzer von der Fahrtroute entfernt (zum Beispiel, weil der Benutzer ein anderes Manöver durchführt als das von der Route bestimmte oder der Ort des Geräts von der Route entfernt wird), fordert die Kartenanwendung eine Aktualisierung der Daten für die Route und die Kreuzungen an. Befindet sich dementsprechend das Gerät, auf dem die Kartenanwendung ausgeführt wird, nicht mehr auf der Fahrtroute, fordert der Prozess (bei 4520) Daten für die neue Fahrtroute und die Kreuzungen vom Kartendienst-Server an. Der Prozess empfängt dann (bei 4530) revidierte Daten für die Route und für alle Kreuzungen längs der Fahrtroute. In einigen Ausführungsformen werden die Kreuzungsdaten durch den Kartendienst-Server für jede Kreuzung längs der Route bestimmt. Wie oben beschrieben, können die Kreuzungsdaten die Winkel der verschiedenen Zweige der Kreuzung enthalten, normalisiert auf die Einfahrtsrichtung zusammen mit einer Angabe des Ausfahrtzweiges der Kreuzung. In einigen Ausführungsformen werden die Kreuzungsdaten vom Server von einer Speicher abgerufen, der einen Satz von bekannten Kreuzungen und Winkeln enthält (zum Beispiel alle öffentliche Straßen in den Vereinigten Staaten). In einigen Fällen erzeugt der Server Kreuzungsdaten aus anderen Quellen (zum Beispiel Transportbehörden von Staaten und Stadtverwaltungen, aktuelle Satellitenfotos mit neuen Straßen, die bisher nicht gespeichert waren, usw.). Zum Aktualisieren der Fahrtroute erzeugen und übertragen einige Ausführungsformen des Kartendienstes nur neue Kreuzungsinformation für die Änderungen der Fahrtroute und beziehen sich auf die vorher empfangenen Daten für Kreuzungen, die der alten und der neuen Fahrtroute gemeinsam sind. In einigen Ausführungsformen werden, wie oben unter Bezug auf 45 beschrieben, die Kreuzungsdaten codiert, wobei in diesem Fall die Anwendung diese Daten auch decodiert, um zur geometrischen Kreuzungsbeschreibung zu gelangen.
  • Nach Empfang der heruntergeladenen Kreuzungsdaten erzeugt der Prozess 4500 (bei 4540) Richtungsindikatoren für alle Kreuzungen längs der Route. Richtungsindikatoren sind grafische Indikatoren für Fahrmanöver längs der Fahrtroute. Beispielsweise kann eine Fahrtroute ein Rechtsabbiegen bei einer ersten Kreuzung beinhalten, kein Abbiegen bei einer zweiten Kreuzung und ein Halblinksabbiegen bei einer dritten Kreuzung. In diesem Fall kann der Satz von Fahrtrouten-Indikatoren enthalten eine erste grafische Darstellung für das Rechtsabbiegen (zum Beispiel Pfeil, der nach rechts weist), eine zweite grafische Darstellung, die kein abbiegen anzeigt (zum Beispiel ein gerader Pfeil) und eine dritte grafische Darstellung für ein Halblinks Fahrmanöver (zum Beispiel ein diagonaler Pfeil nach links). Einige Ausführungsformen erzeugen jedoch keine grafischen Darstellungen für Kreuzungen, bei denen die Fahrtroute direkt in einem geraden Weg verläuft. Tatsächlich übertragen einige Ausführungsformen für diese Kreuzungen keine Kreuzungsdaten vom Kartendienst-Server. Auf der anderen Seite übertragen einige Ausführungsformen tatsächlich Kreuzungsdaten für jede Kreuzung längs der Fahrtroute und in einigen derartigen Ausführungsformen erzeugt die Kartenanwendung grafische Indikatoren für jede derartige Kreuzung. In einigen Ausführungsformen werden die Richtungsindikatoren erzeugt durch das Gerät unter Verwendung eines Prozesses wie beispielsweise des Prozesses 4600, der unten in Bezug auf 46 beschrieben wird.
  • Nach dem Erzeugen des Satzes von grafischen Richtungsindikatoren für die Kreuzungen der Fahrtroute kehrt der Prozess 4500 zu 4510 zurück, um erneut festzustellen, ob der Benutzer die neue Route befährt. Wenn das Benutzergerät immer noch der Fahrtroute folgt, stellt der Prozess 4500 (bei 4550) fest, ob ein neues Navigationszeichen angezeigt werden soll. In einigen Ausführungsformen wird beim Befahren einer Fahrtroute jedes Manöver, das zu einer Kreuzung gehört, dem Benutzer als ein Verkehrszeichen angezeigt (zum Beispiel ein grünes Zeichen mit einem Pfeil und Textinformation, die die Art des Fahrmanövers anzeigt), wenn sich die Kreuzung nähert. Ist kein neues Navigationszeichen erforderlich ist (zum Beispiel weil das durch das aktuelle Zeichen angezeigte Fahrmanöver noch nicht durchgeführt wurde), geht der Prozess 4500 zu 4580, um festzustellen, ob die Navigation beendet wurde. Wenn die Navigation beendet ist, endet der Prozess 4500. Diese beiden Operationen wirken tatsächlich als ein Wartezustand, in dem die Kartenanwendung auf ein Ereignis wartet, das die Anzeige eines neuen Navigationszeichens erfordert oder auf das Ende der Navigation (z. B. da der Endort der Fahrtroute erreicht wurde).
  • Tritt ein Ereignis auf, das die Anzeige eines neuen Zeichens erfordert, identifiziert der Prozess 4500 (bei 4560) den Kontext zum Anzeigen des Zeichens. In einigen Ausführungsformen hängt der Kontext von verschiedenen Faktoren ab, die mit dem klaren Anzeigen der Fahrmanöver zusammenhängen, die für das Navigieren des vom Benutzer ausgewählten Pfades erforderlich sind. Beispielsweise kann der Kontext basiert sein auf dem verfügbaren Platz, um das Zeichen anzuzeigen (zum Beispiel aufgrund der Größe des Geräts, auf dem die Navigationsinstruktionen angezeigt werden), die Konditionen unter denen der Indikator angezeigt wird (zum Beispiel, ob es sich um ein aktuelles oder ein zukünftiges Fahrmanöver handelt, in welcher besonderen Modalität der Kartenanwendung das Zeichen angezeigt wird, usw.)
  • Nach dem Identifizieren des Kontextes für das Navigationszeichen zeigt der Prozess 4500 (bei 4570) den Richtungsindikator für das Fahrmanöver basierend auf dem Kontext. In einigen Ausführungsformen bestimmt der Kontext für das Anzeigen des Zeichens wie der Richtungsindikator erscheint, wenn er auf dem Zeichen angezeigt wird. Die Richtungsindikatoren erscheinen in einigen Ausführungsformen in unterschiedlichen illustrativen Stilen für unterschiedliche Kontexte. Ein statischer (oder einfacher) illustrativer Stil für den Richtungsindikator beschreibt nur das Fahrmanöver im Allgemeinen (zum Beispiel ein nach rechts weisender Pfeil, um den Benutzer zum Rechtsabbiegen zu veranlassen oder ein Pfeil der nach halb links zeigt, um den Benutzer zum Halblinks Abbiegen zu veranlassen, usw.). Im Gegensatz dazu passt ein dynamischer illustrativer Stil die Richtungsindikatoren an und stilisiert sie, um klar die wichtigen Aspekte jedes Fahrmanövers zu illustrieren. Derartige stilisierte Richtungsindikator können auch zusätzliche Linien enthalten, um andere Straßen in der Kreuzung zu illustrieren oder andere Informationen, die mit dem Fahrmanöver zusammenhängen.
  • Nach dem Anzeigen des Richtungsindikators geht der Prozess 4500 zu 4580 über, um festzustellen, ob die Navigation beendet ist. In einigen Ausführungsformen endet die Navigation, wenn der Benutzer die Kartenanwendung stoppt oder wenn der Zielort erreicht ist. Wenn die Navigation beendet ist, endet der Prozess 4500. Sonst kehrt der Prozess 4500 zurück zu 4510, um festzustellen, ob die Fahrtrouten-Navigation immer noch auf der Fahrtroute ist, wie oben beschrieben.
  • In einigen Ausführungsformen vereinfacht die Kartenanwendung die Fahrtrouten-Navigationsinstruktionen, um grafische Richtungsindikatoren (zum Beispiel Pfeile) zu erzeugen für Fahrmanöver (zum Beispiel Anweisungen zum Abbiegen, Geradeausfahren, usw.) längs einer Fahrtroute. 46 zeigt schematisch einen Prozess 4600, der derartige grafische Richtungsindikatoren für die Fahrmanöver einer Fahrtroute erzeugt. In einigen Ausführungsformen wird der Prozess 4600 durchgeführt durch eine Kartenanwendung, die auf einem Gerät arbeitet (zum Beispiel ein mobiles Gerät wie beispielsweise ein Smartphone oder ein Tablett Computer). Die Kartenanwendung führt diesen Prozess 4600 in einigen Ausführungen bei der Phase 4520 des Prozesses 4500 durch, nachdem Kreuzungsdaten für alle Kreuzungen längs einer Fahrtroute erhalten wurden. In einigen Ausführungsformen werden diese Kreuzungsdaten erzeugt und zur Verfügung gestellt durch einen Satz von Servern von einem Kartendienst.
  • Wie dargestellt, beginnt der Prozess 4600 einiger Ausführungsformen indem (bei 4610) ein Fahrmanöver an einer Kreuzung ausgewählt wird. In einigen Ausführungsformen wird das Fahrmanöver ausgewählt aus einem Satz von Fahrmanövern, die zu einer Liste von Kreuzungen längs einer spezifizierten Fahrtroute gehören. Die Kreuzungen für die Fahrtroute werden in einigen Ausführungsformen sequenziell geordnet, entsprechend der spezifizierten Fahrtroute. Die Daten für jede Kreuzung enthalten einen Satz von Zweigen mit spezifischen Winkeln, mit einem Einfahrt- und einem Ausfahrtszweig, die für das Fahrmanöver spezifiziert sind (in einigen Ausführungsformen wird der Einfahrtszweig spezifiziert durch eine Drehung der Kreuzungswinkel, so dass der Einfahrtszweig bei einem spezifischen Winkel liegt).
  • Nach dem Auswählen des Fahrmanövers führt der Prozess 4600 (bei 4620) ein Prozess durch, um die Kreuzung zu vereinfachen, wenn eine derartige Vereinfachung erforderlich und möglich ist. In einigen Ausführungsformen verwendet der Vereinfachungsprozess einen Satz von Einrastregeln, um die Zweige der Kreuzung auf spezifische Winkel anzupassen (zum Beispiel einen Zweig mit einem Winkel von 101.3° auf 100° oder 90°). In einigen Ausführungsformen wird der Vereinfachungsprozess durchgeführt entsprechend dem Prozess 4700 von 47. Einige Ausführungsformen vereinfachen die Kreuzungsdaten, indem versucht wird, jeden der Zweige auf ein Mehrfaches eines bestimmten Winkels einzurasten, während andere Ausführungsformen nur versuchen, den Ausfahrtszweig auf ein Mehrfaches des bestimmten Winkels einzurasten.
  • Als nächstes bestimmt der Prozess 4600 (bei 4630), ob die Kartenanwendung in der Lage war, die Kreuzung zu vereinfachen. Wenn die Kreuzung nicht vereinfacht werden konnte, verwendet der Prozess 4600 (bei 4640) eine Standarddarstellung des Fahrmanövers an (zum Beispiel ein grafisches Icon des Fahrmanöver basierend auf den Typ des Fahrmanövers). Auf der anderen Seite, wenn die Anwendung in der Lage war die Kreuzung zur vereinfachen, erzeugt der Prozess (bei 4650) einen einfachen Richtungsindikator für das Fahrmanöver basierend auf der vereinfachten Kreuzung. In einigen Ausführungsformen ist der einfache Richtungsindikator eine Geometrie ohne irgendwelche Stil- oder andere Elemente (zum Beispiel ein einfacher Pfeil, der die Richtung des Fahrmanövers anzeigt). Beispielsweise kann der einfache Richtungsindikator ein Pfeil sein, der nach oben zeigt und dann direkt nach rechts, um ein Rechtsabbiege-Manöver in einer Standardkreuzung zwischen zwei Straßen anzuzeigen oder es kann ein Pfeil sein, der diagonal nach oben rechts zeigt, um ein Halbrechtsabbiegen anzuzeigen. Der Prozess 4600 erzeugt auch (bei 4660) einen komplexen Richtungsindikator, basierend auf den vereinfachten Kreuzungsdaten. In einigen Ausführungsformen ist der komplexe Richtungsindikator ein stilisierter grafisches Richtungsindikator, der Bezugsmerkmale enthält, die mit dem Fahrmanöver zusammenhängen. Beispielsweise kann der komplexe Richtungsindikator einen hervorgehobene Richtungs-Pfeil enthalten, der das durchzuführende Fahrmanöver an der Kreuzung darstellt und eine oder mehrere nicht hervorgehobene Linien, die andere Straßen der Kreuzung anzeigen. Für die komplexen Indikatoren zeigt die Anwendung die nicht hervorgehobenen Linien für die Zweige der Kreuzung an, durch die der Benutzer weder einfährt noch ausfährt und zeigt den hervorgehobenen Pfeil, der im Einfahrtszweig beginnt und längs des Ausfahrtszweiges endet.
  • Nachdem die einfachen und komplexen Richtungsindikatoren erzeugt wurden, bestimmt der Prozess 4600 (bei 4670), ob die Kreuzung, bei der das Fahrmanöver durchgeführt wird, die letzte Kreuzung auf der Fahrtroute ist. Handelt es sich um die letzte Kreuzung, endet der Prozess 4600. Andererseits, wenn weitere Fahrmanöver bei zusätzlichen Kreuzungen verbleiben, kehrt der Prozess zu 4610 zurück, um das Fahrmanöver bei der nächsten Kreuzung auszuwählen.
  • Wie oben in Bezug auf 46 erwähnt, empfängt die Kartenanwendung einiger Ausführungsformen die Kreuzungsdaten (die möglicherweise eine komplexe Geometrie aufweisen) und vereinfacht die Kreuzungsgeometrie zur Verwendung in der grafischen Benutzerschnittstelle (GUI). In einigen Ausführungsformen vereinfacht die Kartenanwendung die Navigation, indem die Winkel der Fahrtrouten-Kreuzungen auf Mehrfache eines vorbestimmten vereinfachten Winkels angepasst werden. 45 zeigt schematisch einen Prozess 4700 der versucht, die Winkel der Zweige einer Kreuzung längs einer Fahrtroute auf Mehrfache eines vorbestimmten Winkels (zum Beispiel 45°) zu setzen. Dieser Prozess 4700 wird in einigen Ausführungsformen in Phase 4620 von 46 durchgeführt. Der Prozess 4700 wird beschrieben in Bezug auf die 48 und 49, die besondere Kreuzungssituationen illustrieren.
  • Wie dargestellt, beginnt der Prozess 4700, indem (bei 4710) die Winkel der Kreuzung identifiziert werden, durch die ein Fahrmanöver durchgeführt wird. Diese Winkel werden in einigen Ausführungsformen diejenigen sein, die durch den Kartendienst-Server für die Kreuzung spezifiziert werden und zeigen auch einen der Zweige als Ausfahrtszweig an. Der obere Teil von 48 illustriert eine erste Punktkreuzung 4805 auf einer Karte mit Winkeln von ungefähr –55°, 90° und –115° (mit Norden als 0°). Außerdem zeigt die Karte ein Fahrmanöver durch die Kreuzung, das ein Halbrechtsabbiegen vom Zweig mit –115° zum Zweig mit 90° ergibt. Die zweite Stufe in diesem oberen Teil zeigt die Kreuzung und die Fahrmanöver reduziert auf die Geometrie des Kartendienst-Servers, wobei die Kreuzungsdaten so gedreht sind, dass der Einfahrtszweig des Fahrmanövers bei 180° hegt. Dies zeigt den Ausfahrtszweig bei 25° und den dritten Zweig bei ungefähr –60°.
  • Zusätzlich zeigt der untere Teil der Figur eine Kreisverkehr-Kreuzung 4810 auf einer Karte, in die der Benutzer auf einem ersten Zweig bei ungefähr –110° einfährt und auf einem zweiten Zweig bei ungefähr 150° ausfährt, mit einem dritten Zweig bei 0°. Wieder zeigt die zweite Stufe die Kreuzung und die Fahrmanöver, reduziert auf die Geometrie durch den Kartendienst-Server, einschließlich der Drehung der Kreuzung, durch die der Einfahrtszweig auf 180° gesetzt wird. Im Übrigen wird die Kreuzung als Kreisverkehr markiert.
  • Nachdem die Winkel der Kreuzung identifiziert sind, identifiziert der Prozess 4700 (bei 4720) mögliche Modifikationen für jeden der Winkel der Kreuzung, basierend auf einem Satz von Einrastregeln. In einigen Ausführungsformen zeigen die Einrastregeln an, wie ein empfangener Winkel für die Anzeige während der Navigation angepasst werden kann. In einigen Ausführungsformen zeigen die Einrastregeln an, dass empfangene Winkel modifiziert werden sollen auf ein Mehrfaches eines vorbestimmten Winkels. Beispielsweise können die Einrastregeln anzeigen, dass jeder Richtungsindikator einer oder mehreren Achsen mit Mehrfachen von 45° entsprechen soll (zum Beispiel 45°, 90° 135° 180°). In einigen Ausführungsformen spezifizieren die Einrastregeln, dass der empfangene Winkel auf diejenige 45° Achse angepasst werden soll, die dem empfangenen Winkel am nächsten liegt. Beispielsweise wird der empfangene Winkel auf 90° eingerastet für ein Rechtsabbiegemanöver auf einer Straße, die einen Winkel von 110° bezüglich eines Referenz Winkels bildet (d. h. der Fahrtrichtung in die Kreuzung), da die nächste Achse längs der 45° Mehrfachen die Achse bei 90° ist. Auf der anderen Seite wird die Winkelrichtung auf 135° für ein Rechtsabbiegen Manöver eingerastet, wenn die Straße einen Winkel von 115° bildet bezüglich des Bezugspunkts, da der 115° Winkel des Kreuzungszweiges näher bei der 135° Achse liegt als bei der 90° Achse.
  • Nachdem die mögliche Modifikationen der Winkel der ausgewählten Kreuzung identifiziert sind, bestimmt der Prozess 4700 (bei 4730), ob die identifizierte Modifikation inkonsistent ist mit der Art des Fahrmanövers, das mit dem empfangen Winkel verbunden ist. Verlangt beispielsweise ein Fahrmanöver ein Halbrechts-Abbiegen bei einem Winkel von 10° und reduzieren die Einrastregeln den 10° Winkel des Zweiges auf 0° (die gerade Bewegung durch die Kreuzung), würde ein vereinfachter Richtungsindikator für das Fahrmanöver nur eine grafische Darstellung für ein gerades Durchfahren anzeigen. In einem derartigen Indikator wäre jede Anzeige eines Abbiegen oder eines Bewegens nach rechts verloren. In diesem Beispiel ist die gerade Bewegung inkonsistent einem Rechtsabbiegen (und selbst mit einem geringen Rechtsabbiegen).
  • Ist die identifizierte Modifikation mit dem Typ des Fahrmanövers inkonsistent, sucht der Prozess (bei 4740) nach anderen Modifikationen des Winkels des Ausfahrtszweiges der Kreuzung. In einigen Ausführungsformen spezifizieren die Einrastregeln alternative Winkel, die verwendet werden, wenn ein erster Winkel inkonsistent ist. Beispielsweise können die Einrastregeln anzeigen, dass ein 45° Winkel verwendet werden soll, nachdem der 0° Winkel als inkonsistent mit einem Rechtsabbiege-Manöver festgestellt wurde. Als nächstes bestimmt der Prozess (bei 4750), ob eine akzeptable Modifikation gefunden wurde. In einigen Ausführungsformen ist ein alternativer Winkel akzeptabel, wenn der empfangene Winkel für den Ausfahrtszweig (zum Beispiel 10° Winkel) und der identifizierte alternative Winkel (zum Beispiel 45°) innerhalb eines Schwellwerts liegt. Beispielsweise können die Einrastregeln eine Maximaldifferenz von 30° als Schwelle für einen akzeptablen alternativen Winkel spezifizieren. In diesem Beispiel ist der identifizierte alternative 45° Winkel um 35° größer als der empfangene 10° Winkel und würde deshalb als nicht akzeptabel angesehen werden. In einigen Ausführungsformen erfolgt die Bestimmung basierend auf einer oder mehreren heuristischen Regeln, die den Kontext für das Modifizieren des Winkels berücksichtigen. Beispielsweise kann eine heuristische Regel spezifizieren, dass immer ein Rechtsabbiegen dargestellt werden sollte, wenn sich die Straße verzweigt. In diesem Beispiel wird selbst ein geringes Abbiegen nach rechts (zum Beispiel unter einem Winkel von 10°) als alternativer Richtungsindikator illustriert werden (zum Beispiel mit einem 45° Winkel).
  • Wird keine akzeptable Modifikation gefunden, bestimmt und spezifiziert der Prozess (bei 4760), dass keine Vereinfachung kann für die Geometrie der Kreuzung durchgeführt werden, für mindestens einen ihrer Zweige. Wie oben in Bezug auf den Prozess 4600 erwähnt, verwenden einige Ausführungsformen Standarddarstellungen für das Fahrmanöver, wenn die Kreuzungsgeometrie nicht vereinfacht werden kann. Der Prozess endet dann.
  • Wenn eine akzeptable Modifikation für den Ausfahrtzweig gefunden wurde (entweder bei der ursprünglichen Bestimmung 4730 oder der zweiten Bestimmung bei 4750) geht der Prozess zu 4770 über, um festzustellen, ob die Modifikation zu einer Überlappung zweier Zweige der Kreuzung führt (d. h. zwei Zweigen wird derselbe Winkel zugewiesen). Überlappen zwei (oder mehr) Zweige der Kreuzung nach der Modifikation, bestimmt und spezifiziert der Prozess (bei 4760), das die Modifikationen nicht durchgeführt werden sollen. Besteht andererseits keine Überlappung zwischen den Zweigen und ist der resultierende Ausfahrtzweig nicht mit dem Fahrmanöver inkonsistent, setzt der Prozess (bei 4780) die Winkel der Kreuzungszweige auf die Winkel, die für die modifizierte Kreuzung bestimmt wurden. Der Prozess endet dann.
  • Die dritte Stufe in jedem der Teile von 48 illustriert die vereinfachte Geometrie für die beiden Beispiels-Kreuzungen. Im Fall der Punkt-Kreuzung 4805, vereinfacht die Anwendung die Geometrie, um den 25° Zweig auf 45° auszurichten und den –60° Zweig auf –45°. Da diese Ausrichtung keine Probleme hervorruft (zum Beispiel verwirrende Instruktionen oder überlappende Zweige), verwendet die Kartenanwendung die vereinfachte Geometrie, um einen Richtungsindikator für die Kreuzung und das Fahrmanöver zu erzeugen. Im Fall der Kreisverkehr Kreuzung 4810 vereinfacht die Anwendung die Geometrie, um den 80° Zweig auf 90° auszurichten und den –70° Zweig auf –90°. Da diese Ausrichtung ebenfalls keine Probleme hervorruft, verwendet die Kartenanwendung die vereinfachte Geometrie, um einen Kreisverkehr-Richtungsindikator für die Kreuzung und das Fahrmanöver zu erzeugen. In einigen Ausführungsformen wird jedoch der Prozess für Kreisverkehr-Kreuzungen nicht durchgeführt. In vielen Fällen ändert sich die Perspektive des Benutzers (d. h. des Fahrers) während des Durchfahrens eines Kreisverkehrs und manchmal ist der Kreisverkehr so groß, dass der Benutzer anfänglich die Ausfahrtstraße nicht sehen kann. Stattdessen verwendet der Richtungsindikator Winkel, die den tatsächlichen Ausfahrten des Kreisverkehrs eher entsprechen.
  • 49 zeigt zwei Beispiele, in denen Standard-Indikatoren für Kreuzungen und Fahrmanöver verwendet werden anstelle der Geometrie-basierten Indikatoren. Die erste Situation ist ein Wendemanöver bei einer Kreuzung 4905. In diesem Fall sind die für die Kreuzung gespeicherten Kreuzungsdaten eine Standardkreuzung mit vier Zweigen in den Kardinal-Richtungen. Jedoch enthalten die Daten für das Fahrmanöver den Ausfahrtszweig bei 180°, der ebenfalls der Einfahrtszweig ist. Obwohl also keine Vereinfachung für die Geometrie erforderlich ist, wäre der nach Standardregeln erzeugte Richtungsindikator ein nach unten zeigender Pfeil, der den Eintrittspfeil überdeckt. Da dies keine sehr hilfreiche grafische Anzeige des Fahrmanövers wäre, verwendet die Kartenanwendung stattdessen einen gespeicherten Wende-Indikator, wie in der vierten Stufe des oberen Teils dieser Figur dargestellt.
  • Das zweite Beispiel in 49 ist eine Autobahnausfahrt 4910. In diesem Fall enthält die Geometrie für die Kreuzung und das Fahrmanöver den Einfahrtzweig, ein Zweig bei 0° (für die gerade Weiterfahrt längs der Autobahn) und ein Zweig mit einem kleinen Winkel (ungefähr 10°). Der Versuch, die Geometrie zu vereinfachen, reduziert jedoch den Ausfahrtzweig auf 0°. Damit werden mehrfache Vereinfachungsregeln verletzt, da dies zu überlappenden Kreuzungszweigen führt und eine nicht intuitive Beschreibung des Fahrmanövers liefert, da der Ausfahrtzweig anzeigt, dass die Fahrtroute in einer geraden Linie weitergehen sollte. Während einige Ausführungsformen stattdessen den Ausfahrtzweig auf 45° verschieben, verwendet dieses Beispiel stattdessen einen Standard grafischen Indikator „Autobahnausfahrt”. In einigen Ausführungsformen enthält, wie oben erwähnt, jede Kreuzung auch Fahrtrouteninstruktionen, wie beispielsweise „Autobahnausfahrt”. Die Anweisung, dass zum Fahrmanöver das Befahren einer Autobahnausfahrt gehört, kombiniert mit der Kenntnis, dass die Fahrtroute auf der rechten Fahrbahn liegt und dass der Ausfahrtzweig einen geringen Winkel nach rechts bezogen auf die gerade Durchfahrt bildet, zeigt in diesem Fall an, dass der grafische Indikator für eine rechte Autobahnabfahrt verwendet werden sollte. Andere Beispiele von Typen von Fahrmanövern, die Standard Darstellungen verwenden können, sind in einigen Ausführungsformen ”Links fahren” oder „Rechts Fahren”.
  • 50 zeigt ein Beispiel eines Kreisverkehrs 5010, bei dem die vereinfachte Geometrie in einigen Ausführungsformen nicht verwendet wird. In diesem Fall enthält die für den Kreisverkehr empfangene Geometrie den Einfahrtszweig bei ungefähr 110°, einen Zweig bei 85° und den Ausfahrtszweig bei ungefähr –70°. Die versuchte Vereinfachung platziert beide nicht verwendeten Zweige (weder für die Einfahrt noch für die Ausfahrt) auf die 90° Achse. Für eine Punkt-Kreuzung könnten einige Ausführungsformen dies für das Fahrmanöver zulassen, da die Instruktion zum Durchführen eines Linksabbiegens klar wäre. Bewegt sich ein Fahrer jedoch auf einem Kreisverkehr, wird er oft die Anzahl der Ausfahrten zählen, da die Winkel bei sich ändernder Perspektive unklar werden. Das Reduzieren der Anzahl von Zweigen könnte daher potenziell für den Fahrer verwirrend sein. Deshalb entfernt der verwendete Richtungsindikator die Ausfahrten insgesamt und zeigt nur einen Kreis für den Kreisverkehr mit einem Pfeil, der das Fahrmanöver anzeigt. Zusätzlich fügen einige Ausführungsformen begleitende Instruktionen bei, die angeben ”Nimm die dritte Ausfahrt des Kreisverkehrs” oder andere Instruktionen dieser Art.
  • Außerdem veranlassen einige Situationen die Anwendung dazu, den Richtungsindikator vollständig vom Navigationszeichen zu entfernen, da der Nutzer verwirrt werden könnte. Beispielsweise kann eine Kreuzung, die einen Übergang von einer ersten Autobahn zu einer zweiten Autobahn enthält, drei Fahrspuren aufweisen, die in zwei oder mehr unterschiedlichen Richtungen verlaufen. In einigen Fällen wird die vom Server erzeugte Information nicht spezifizieren, welche Fahrspur der Benutzer verwenden soll, um zur gewünschten zweiten Autobahn zu gelangen (das heißt, ob er die linke Fahrspur oder die rechte Fahrspur nehmen soll). Obwohl die Anwendung einiger Ausführungsformen einen generischen Pfeil für ein derartiges Fahrmanöver zeigen könnte, kann das den Benutzer verwirren. Entsprechend unterdrückt die Navigationsanwendung einiger Ausführungsformen den grafischen Richtungsindikator und zentriert den Instruktionstext in dem Navigationszeichen. Wenn ein Autobahnschild für die zweite (Ziel-)Autobahn verfügbar ist, bewegen einige Ausführungsformen die Instruktionen auf die linke Seite des Zeichens und zeigen das Autobahnschild auf der rechten Seite des Zeichens an.
  • 3. Richtungsindikator Software Architektur
  • Wie oben beschrieben, werden in einigen Ausführungsformen die Karten, Fahrtrouten und die Punkt-zu-Punkt-Navigation einem Benutzer durch die Navigationsanwendung dargestellt, die auf einem Gerät arbeitet (zum Beispiel einem handgehaltenen Gerät wie beispielsweise ein Smartphone oder ein Tablett Computer). In einigen Ausführungsformen kann die Kartenanwendung eine eigenständige Anwendung sein oder sie kann mit dem Betriebssystem des Geräts integriert sein.
  • 51 zeigt schematisch eine Kartenanwendung einiger Ausführungsformen, die Richtungsindikatoren für unterschiedliche Kontexte erzeugt. Ein Fachmann wird erkennen, dass die für die Anwendung 5100 dargestellten Module spezifisch für die Erzeugungsprozesse für Pfeile sind und dass die Kartenanwendung einiger Ausführungsformen zahlreiche zusätzliche Module enthält (zum Beispiel für die Anzeige von Karten, die Anzeige der Fahrtroute, zusätzliche Aspekte der Navigation, usw.).
  • Wie dargestellt, überträgt ein Kartendienst-Server 5110 Routen und Kreuzungsdaten durch ein Netzwerk 5115 zu einer Netzwerk-Schnittstelle 5120 des Geräts, auf dem die Kartenanwendung 5100 arbeitet. Der Kartendienst-Server 5110 kann ein Server sein ähnlich dem in 24 oben dargestellten, der eine Fahrtroute-Anforderung von Geräten empfängt, auf denen die Kartenanwendung arbeitet und der für diese Anforderung Routen- und Kreuzungsdaten erzeugt.
  • Die Kartenanwendung 5100 enthält einen Kreuzungsdekodierer 5130, einen Geometrievereinfacher 5145, einen Pfeilgenerator 5160, einen Pfeilselektor 5165, einen Kontextanalysator 5175 und einen Zeichengenerator 5180. Der Kreuzungsdekodierer 5130 empfängt codierte Kreuzungsinformation 5125 für eine Fahrtroute und dekodiert diese Information, um zu einer Serie von Fahrmanövern durch die Kreuzungen zu gelangen. Der Kreuzungsdekodierer 5130 speichert die dekodierten Kreuzungsdaten 5135. Das kann in einem Speicher mit wahlfreiem Zugriff oder anderen flüchtigen Speichern geschehen, zur Verwendung nur während der Navigation der Fahrtroute, oder in einem permanenten Speicher, wie einer Festplatte oder Festkörperspeicher. Wie oben festgestellt, decodieren einige Ausführungsformen die Kreuzungsinformation nicht, wobei in diesem Fall die Anwendung keinen Kreuzungsdekodierer erfordert und die empfangenen Kreuzungsdaten einfach speichert.
  • In einigen Ausführungsformen enthalten die Kreuzungsdaten 5135 eine geometrische Beschreibung der Kreuzung, die den Typ der Kreuzung anzeigt (zum Beispiel Punkt-Kreuzung, Kreisverkehr) ebenso wie die verschiedenen Zweige der Kreuzung mit ihren Winkeln, gemäß einer Analyse der Karte durch den Kartendienst. Da die Kreuzungen den Fahrmanövern entsprechen, die längs einer bestimmten Route durchzuführen sind, zeigen die Kreuzungsdaten auch einen Ausfahrtszweig für jede Kreuzung an. Diese Figur zeigt ein Beispiel einer geometrischen Kreuzungsbeschreibung 5140, mit drei Zweigen und dem Ausfahrtzweig markiert mit einem Pfeil. In einigen Ausführungsformen wird der Zweig bei 180° (der untere Zweig) immer als Einfahrtszweig angenommen.
  • Der Geometrievereinfacher 5145 reduziert die Kreuzungsdaten in eine vereinfachte Form und speichert die vereinfachten Kreuzungsdaten 5155. Wie mit den dekodierten. Kreuzungsdaten 5135 können diese Daten in einem flüchtigen oder einem nicht-flüchtigen Speicher in verschiedenen Ausführungsformen gespeichert werden. In einigen Ausführungsformen versucht der Geometrievereinfacher jeden der Zweige einer Kreuzung auf ein Mehrfaches von 45° einzurasten, gemäß verschiedenen heuristischen Regeln. Die geometrische Kreuzungsbeschreibung 5150 ist eine vereinfachte Version der geometrischen Beschreibung 5140.
  • Der Pfeilgenerator 5160 erzeugt einen oder mehrere grafische Indikatoren für jede Kreuzung/Fahrmanöver unter Verwendung der vereinfachten Kreuzungsdaten. Wenn der Indikator, der gemäß den Kreuzungsdaten erzeugt wird, nicht ideal ist (zum Beispiel für ein Wendemanöver, ein Autobahnausfahrt-Manöver, usw.) verwendet der Pfeilgenerator einiger Ausführungsformen die gespeicherten Standardindikatoren 5170. Für mindestens einige der Kreuzungen erzeugt der Pfeilgenerator einen komplexen Richtungsindikator (der auch eine abgeschwächte Darstellung der Kreuzung enthält) und einen einfachen Richtungsindikator. Der Pfeilgenerator 5160 speichert diesen Richtungsindikator 5162 zur Verwendung bei der Anzeige der Fahrtroute Navigationsinstruktionen, entweder in einem flüchtigen oder nicht-flüchtigen Speicher.
  • Der Pfeilselektor 5165 verwendet einen Kontextanalysator 5175 um festzustellen, welcher der Richtungsindikatoren für ein besonderes Fahrmanöver verwendet werden soll, abhängig vom Kontext, in dem der Indikator angezeigt wird. Diese Kontexte können unterschiedliche Situationen für Navigationsanweisungen oder verschiedene Situationen für Punkt-zu-Punkt-Navigationsinstruktionen enthalten (zum Beispiel Standardmodus, Modus mit gesperrtem Bildschirm, wenn eine andere Anwendung offen ist, usw.). Der Kontextanalysator 5175 analysiert den Kontext und liefert diese Information an den Pfeilselektor 5165. Der Pfeilselektor wählt einen der grafischen Indikatoren 5162 und liefert diese Auswahl an den Zeichengenerator 5180. Der Zeichengenerator 5180 erzeugt ein Navigations-Instruktionszeichen zum Anzeigen, das den gewählten grafischen Indikator enthält. Zeichengenerator 5180 verwendet auch die Ergebnisse des Kontextanalysators, um andere Aspekte des Zeichens zu erzeugen, beispielsweise den Detailgrad der Instruktionen, die innerhalb des Navigationszeichens dargestellt werden
  • IV. Dynamische Erzeugung von adaptiven Instruktionen
  • Wie in vielen der Figuren der obigen Abschnitte dargestellt, zeigt die Kartenanwendung einiger Ausführungsformen, zusätzlich zur Anzeige einer grafischen Indikation eines Manövers während einer Fahrtroute, Instruktionen für Fahrmanöver an (zum Beispiel „Links abbiegen in 0,5 Meilen auf Bahrami Ct.”). Sehr ähnlich den grafischen Indikatoren, erzeugt die Kartenanwendung diese Instruktionen dynamisch unter Verwendung der empfangenen Fahrtrouten/Kreuzungsdaten.
  • A. Beispiele unterschiedlicher Instruktionen für das gleiche Fahrmanöver in unterschiedlichen Kontexten
  • Die Kartenanwendung einiger Ausführungsformen zeigt textförmige Routeninstruktionen in vielen unterschiedlichen Fällen, wobei in einigen der Platz stärker beschränkt ist als in anderen und wobei in einigen anderen Führungselemente Information über ein Fahrmanöver liefern, die anstelle von Textinstruktionen verwendet werden können. Statt eine einzelne Instruktionskette auszuwählen und dann das Schriftbild zu verkleinern oder abzuschneiden, entsprechend den Beschränkungen, verwendet die Anwendung ein raffiniertes Verfahren, um Textketten zu synthetisieren, die am besten für jeden Kontext geeignet sind, aus einer Anzahl von Details über das Fahrmanöver selbst.
  • Für einen gegebenen Kontext wählt die Anwendung Instruktionstext aus, indem,, unter anderem, Faktoren berücksichtigt werden wie beispielsweise der verfügbare Platz, die Menge der Information, die durch andere Mittel als durch Text vermittelt wird (zum Beispiel grafische Indikatoren, Straßenschilder, usw.), die lokalisierte Länge jeder der Instruktionsvarianten. Durch Synthetisieren und Bewerten verschiedener Alternativen lokal auf den Clientgerät (im Gegensatz zum einfachen Empfangen von Instruktionstext vom Kartendienst) kann die Kartenanwendung in jedem Szenario eine optimale Instruktionskette auswählen. Außerdem erlaubt es dieser Ansatz der Anwendung unterschiedliche Instruktionstexte auf Geräten unterschiedlicher Größe zu verwenden (zum Beispiel mehr Text auf einem Tablett Computer zu verwenden, verglichen mit einem kleineren Smartphone). Ein ähnlicher Ansatz kann auch verwendet werden für gesprochene Instruktionen, die in eine bestimmte Zeitspanne passen müssen und wenn Sprachinstruktionen verwendet werden, reduziert die Anwendung einiger Ausführungsformen die Länge der angezeigten Instruktionen.
  • 52 zeigt ein Beispiel der Synthese unterschiedlicher Instruktionen für ein bestimmtes Fahrmanöver an einer Kreuzung gemäß einigen Ausführungsformen. Die 53 und 54 zeigen dann unterschiedliche Szenarien, in denen diese unterschiedlichen Instruktionen für das Fahrmanöver verwendet werden. Wie dargestellt, verwendet die Kartenanwendung empfangene Routeninstruktionen und Kreuzungsdaten, um spezifische Aspekte der Fahrmanöver-Instruktionen zu identifizieren. Die Tabelle 5205 zeigt schematisch wie verschiedene Zeichenketten für eine Kreuzung erzeugt werden können. Im Besonderen enthalten die Fahrmanöver Instruktionen ein „Am” Feld, ein „Abbiege” Feld, ein „auf” Feld, ein „in Richtung” Feld und ein „für” Feld. Für jede Kreuzung besetzt die Anwendung anfänglich diese Zeichenketten Felder, um die Instruktionen aus den Feldern zu erzeugen.
  • In einigen Ausführungsformen basiert das „am” Feld auf Karteninformation, die beispielsweise Information über Verkehrsampeln und Stopp Zeichen enthält. Für die in 52 dargestellten Beispiele liegt die erste Kreuzung bei „am Ende der Straße”, während die zweite Kreuzung „an der nächsten Ampel” liegt. Das „Abbiege” Feld beschreibt das durchzuführende Fahrmanöver; Beispiele für dieses Feld enthalten „Rechts abbiegen” (das an der ersten Kreuzung durchgeführte Fahrmanöver), „Autobahn verlassen”, ”Links fahren”, „halblinks abbiegen”, „Wenden” oder andere Fahrmanöver. Die Routeninstruktionen, die eine Beschreibung des Fahrmanövers enthalten, können auf verschiedene mögliche Zeichenketten für das „Abbiege” Feld abgebildet werden.
  • Das „auf” Feld zeigt die Fahrbahn (zum Beispiel Straße, Autobahn, usw.), auf der das Fahrmanöver die Kreuzung verlässt. In dem Fall der ersten Kreuzung in 52 verlässt das Fahrmanöver die Kreuzung ”auf 1st Straße”. Das „in Richtung” Feld zeigt eine Markierung (die den Kartendaten oder den Kreuzungsdaten entnommen ist), auf die der Ausfahrtzweig zeigt. In einigen Ausführungsformen analysiert die Kartenanwendung den Ausfahrtzweig der nachfolgenden Kreuzung und verwendet den Namen dieser Straße als das ”in Richtung” Feld. In dem Beispiel ist die zweite Kreuzung ein Linksabbiegen auf die B-Straße, sodass das „in Richtung” Feld für die erste Kreuzung anzeigt, dass das Fahrmanöver „in Richtung B Straße” ausfährt. Andere Ausführungsformen verwenden entweder die nächste Straße, die die Ausfahrtsstraße der aktuellen Kreuzung kreuzt, eine Hauptstraße (zum Beispiel eine Autobahn) oder eine andere leicht erkennbare Beschreibung (zum Beispiel eine Stadt usw.). Das „für” Feld zeigt die Entfernung längs der die Fahrtroute der Straße im „auf” Feld folgt (d. h. der Straße, auf der die Kreuzung ausfahrt). In den Beispielinstruktionen kommt daher die nächste Kreuzung in 0,1 Meilen, so dass das „für” Feld anzeigt „für 0,1 Meilen”.
  • Nachdem jede der Zeichenketten für einen Instruktionssatz erzeugt ist, erzeugt die Kartenanwendung als nächstes in einigen Ausführungsformen unterschiedliche Stufen von Instruktionen. Tabelle 5200 illustriert einen Satz von synthetisierten Instruktionen für die erste Kreuzung. Im spezifischen zeigt Tabelle 5200 Instruktionssätze unterschiedlicher Länge für eine bestimmte Kreuzung. Es wird jedoch dem Fachmann klar sein, dass unterschiedliche Ausführungsformen weniger, zusätzliche oder unterschiedliche synthetisierte Zeichenketten enthalten können, basierend auf dem Satz von Zeichenkettenfeldern.
  • Der erste Instruktionssatz verwendet alle fünf Felder. Das ist der längste Instruktionssatz und lautet „Am Ende der Straße rechts abbiegen auf 1st Straße, in Richtung B Straße für 0,1 Meilen”. Da dies der längste Instruktionssatz ist, weist die Anwendung dem Instruktionssatz einen Rang von 1 zu. Der zweite Instruktionssatz entfernt das ”für” Feld und verwendet nur die Felder „bei”, „Abbiegen”, „Auf” und „in Richtung”. Der dritte Instruktionssatz entfernt das „bei” Feld. Diese Felder fügen Kontext hinzu und sind daher nützlich, wenn zusätzlicher Platz verfügbar ist. Jedoch gehören sie weniger direkt zum dem Fahrmanöver selbst und sind die ersten Felder, die entfernt werden, wenn der Instruktionstext verkürzt werden muss. Danach entfernt die Anwendung für den vierten Instruktionssatz das „in Richtung” Feld, da die Felder „Abbiegen” und „Auf” als wichtiger angesehen werden. Zuletzt enthält der Instruktionssatz nur noch das „Abbiege” Feld, und stellt einfach fest ”rechts abbiegen”.
  • Wieder werden einige Ausführungsformen zusätzliche Instruktionssätze enthalten, wenn Instruktionen unterschiedlicher Länge (die immer noch vernünftig sind) verfügbar sind. Beispielsweise werden einige Ausführungsformen einen Instruktionssatz enthalten, der das „bei” Feld entfernt, jedoch das „für” Feld beibehält für den Fall, dass das „für” Feld kürzer ist als das „bei” Feld. Damit wird der Anwendung eine weitere Option für den Fall zur Verfügung gestellt, dass der zweite Satzes (wobei das „für” Feld entfernt ist) gerade etwas zu lang ist für den zugeordneten Platz. Außerdem können einige Ausführungsformen zusätzliche, weitere oder unterschiedliche Felder enthalten. Beispielsweise könne einige Ausführungsformen ein „in” Feld enthalten, das die Entfernung zu einer sich nähernden Kreuzung angibt (d. h. „in 0,5 Meilen...”).
  • 53 und 54 zeigen mehrere unterschiedliche Szenarien, in denen die Kartenanwendung unterschiedliche Beispiele der adaptiven Instruktionen für das bestimmte Fahrmanöver der ersten Kreuzung in Tabelle 5205 in einer Vielzahl von unterschiedlichen Situationen anzeigt. In diesem Fall sind die vollen Instruktionen ”In 0,5 Meilen, am Ende der Straße, rechts abbiegen auf 1st Straße in Richtung B. Straße für 0,1 Meilen”. Da das Beispiel jedoch kein „In” Feld enthält, sind die am höchsten bewerteten Instruktionen geringfügig kürzer als diese. Um den Instruktionssatz zu bestimmen, der für eine besondere Anzeige verwendet werden soll, bestimmt die Kartenanwendung einiger Ausführungsformen eine maximale Länge für den Instruktionssatz, und wählt dann den Satz mit dem höchsten Rang, der in den zugewiesenen Platz passt.
  • Das erste Szenario 5305 zeigt Instruktionen für das bestimmte Fahrmanöver, das während einer Abbiegenavigation angezeigt wird. In diesem Fall weist die Anwendung drei Textzeilen für die Instruktion zu. Die Entfernung (0,5 Meilen) wird schon mit großem Schriftbild oben auf dem Negationszeichen angezeigt, wobei das jedoch nicht als eine der Textzeilen gezählt wird. Mit drei verfügbaren Zeilen kann der Instruktionssatz mit dem höchsten Rang im Navigationszeichen verwendet werden.
  • Das zweite Szenario 5310 zeigt Punkt-zu-Punkt-Navigationsinstruktionen für das bestimmte Fahrmanöver während des Modus mit gesperrtem Bildschirm. In diesem Modus stehen in einigen Ausführungsformen nur zwei Zeilen mit großem Text zur Verfügung gestellt, sodass die Instruktionen mit höchstem Rang, die passen, nur die Felder „abbiegen” und „auf” verwenden. Damit vereinfacht sich die Anweisung auf das Abbiegen und die Straße, in die der Benutzer einbiegt. Das dritte Szenario 5315 zeigt Navigationsinstruktionen für das Fahrmanöver während die Kartenanwendung nicht auf dem Gerät geöffnet ist, wobei sich in diesem Fall die Instruktionen als Achtungs-Banner darstellen. In diesem Fall weist die Anwendung nur eine Zeile für die Instruktionen zu, so dass die Instruktionen mit dem geringsten Rang (”Rechts abbiegen”) verwendet werden.
  • Das vierte Szenario 5320 zeigt die Anzeige von Information in der Listenansicht für Routeninstruktionen. In dieser Ansicht sind, wie oben beschrieben, aufeinanderfolgende Instruktionen für jedes der Fahrmanöver längs einer Fahrtroute aufgeführt. In einigen Ausführungsformen haben die Banner in der Listenansicht für jede Anweisung unterschiedliche Höhe, so dass immer der volle Instruktionssatz benutzt wird. Daher wird der Instruktionssatz mit dem höchsten Rang ”Am Ende der Straße rechts abbiegen auf 1st Straße in Richtung B Straße” für das erste Fahrmanöver in der Liste verwendet. Wie dargestellt, erfordert dieses Fahrmanöver eine extra Textzeile verglichen mit den nächsten beiden Fahrmanövern.
  • Das fünfte Szenario 5325 zeigt Punkt-zu-Punkt-Navigation im 3-D Modus. Verglichen mit dem ersten Szenario 5305 weisen einige Ausführungsformen weniger Platz im Navigationszeichen für die Instruktionsätze zu, wenn im 3D-Modus gearbeitet wird, damit mehr von der 3-D Ansicht dargestellt werden kann. Daher verwendet die Anwendung den Instruktionssatz mit dem dritten Rang, nämlich den größten Instruktionssatz, der in die zwei Zeilen unter Verwendung der gegebenen Textgröße passt.
  • 54 zeigt zusätzliche Szenarien, in denen die Kartenanwendung die synthetisierten Instruktionssätze verwendet. Das sechste Szenario 5405 zeigt die Anzeige einer Routen Übersichtinstruktion, die der Benutzer schrittweise durchlaufen kann (zum Beispiel mit Wischgesten). In einigen Ausführungsformen weist die Anwendung schrittweise durchlaufenen Instruktionen den gleichen Platz zu wie für die Punkt-zu-Punkt-Navigation, so dass die Anwendung wieder den Instruktionssatz mit dem höchsten Rang verwendet, der alle Felder enthält.
  • Das siebte Szenario 5410 ist das gleiche wie das erste Szenario 5305, zeigt jedoch explizit an, dass die gesprochene Navigation ausgeschaltet ist. Damit wird im Gegensatz zum achten Szenario 5415 deutlich gemacht, in dem die Sprachinstruktionen während einer Punkt-zu-Punkt-Navigation freigeschaltet sind. Für die Sprachnavigation bestimmt die Anwendung eine maximale Zeitspanne, die für das Sprechen der Instruktionen zugelassen ist und bestimmt dann den Instruktionssatz mit dem höchsten Rang, der innerhalb dieser zugewiesenen Zeit gesprochen werden kann. In diesem Fall erlaubt die Zeit, die Gesamtheit des Instruktionssatzes mit dem höchsten Rang auszuwählen. Zusätzlich reduziert die Anwendung die Größe der angezeigten Navigationszeichen, wenn die Sprachnavigation aktiviert ist. Damit zeigt die Anwendung innerhalb des Anzeigeschirms den Instruktionssatz mit dem dritten Rang.
  • Schließlich kann die Kartenanwendung einiger Ausführungsformen auf unterschiedlichen Typen von Geräten mit Bildschirmen unterschiedlicher Größe ausgeführt werden. Beispielsweise kann die Anwendung sowohl auf Smartphones oder größeren Tablett Computern ausgeführt werden. Beim Betrieb auf einem größeren Gerät, erlauben einige Ausführungsformen mehr Platz für das Navigationszeichen. Das neunte Szenario 5420 zeigt Abbiege 3-D Navigation auf einem größeren Gerät (einem Tablett Computer). Anders als beim fünften Szenario 5225, stellt das Navigationszeichen ausreichend Platz für die Verwendung des Instruktionssatzes mit dem höchsten Rang zur Verfügung.
  • Die obige Beschreibung erläutert einige Ausführungsformen, die verschiedene unterschiedliche Instruktionssätze für ein Fahrmanöver erzeugen, den Rang der Instruktionssätze festlegen und dann adaptiv bestimmen, welche dieser Instruktionssätze am besten in einen bestimmten Platz passen. In einigen Ausführungsformen identifiziert die Anwendung eine maximale Anzahl von Schriftzeichen, die für die Verwendung in der Instruktionsanzeige verfügbar sind. Die Anwendung beginnt dann mit dem am höchsten eingestuften Instruktionssatz und bestimmt, ob der Instruktionssatz in die identifizierte Anzahl von Schriftzeichen passt. Wenn der Instruktionssatz passt, wählt die Anwendung den Instruktionssatz aus und zeigt ihn an. Wenn der Instruktionssatz nicht passt, geht die Anwendung zum Instruktionssatz mit dem nächsten Rang über und führt den gleichen Test durch. Passt keiner der Instruktionssätze, verwendet die Anwendung den einen, der am ersten passt. Einige Ausführungsformen schneiden dann Instruktionssätze mit einer Ellipse ab, um anzuzeigen, dass der Instruktionssatz nicht vollständig in den Platz passt. Das kann dazu führen, dass Elemente aus der Zeichenkette entfernt werden.
  • Zusätzlich zum Text verwenden einige Ausführungsformen innerhalb der Instruktionsätze Textersatz-Elemente. Im Besonderen verwendet die Anwendung für Straßen, die durch Zeichenschilder dargestellt werden (zum Beispiel Autobahnen, Bundesstraßen), Straßenschild-Darstellungen der Straße statt des Straßennamens (zum Beispiel ein blaues und rotes Schild enthaltend „I-5” statt ”Golden State Freeway” oder ”Interstate 5”. Einige Ausführungsformen behandeln diese Zeichen als eine feste Anzahl von Schriftzeichen, wenn die verschiedenen Instruktionssätze beurteilt werden.
  • Die obige Beschreibung erläutert einige Ausführungsformen der Kartenanwendung, in der die Entscheidung, welche Elemente verwendet werden sollen, im Wesentlichen basiert auf dem Versuch, den Instruktionssatz mit der maximalen Länge zu verwenden. Einige andere Ausführungsbeispiele berücksichtigen auch, ob gewisse Elemente eines Instruktionssatzes dem Benutzer in einer unterschiedlichen visuellen Weise präsentiert werden und entfernen möglicherweise diese Elemente.
  • Beispielsweise werden bei der Anzeige eines detaillierten Instruktionspfeils, der klarmacht, dass ein Abbiegen ein Halbrechts-Abbiegen ist, einige Ausführungsformen die Instruktion kürzen, um das „Halblinks” zu entfernen oder sogar den gesamten Bezug zur Abbiegung, um stattdessen Instruktionen ähnlich der Linie „CA 17 S in Richtung Santa Cruz” zu verwenden. In ähnlicher Weise kann dann der Teil „CA 17 S” der Instruktion weggelassen werden, wenn ein großes Straßenschild-Zeichen dargestellt wird.
  • B. Client-seitige Erzeugung von Instruktionen, die auf den Kontext angepasst sind
  • Der obige Abschnitt erläutert einige Beispiele der Kartenanwendung zum Synthetisieren der Navigationsinstruktionen basierend auf Daten für Fahrtrouten und Kreuzungen und anschließendes Anzeigen unterschiedlicher Varianten dieser Instruktionen gemäß den unterschiedlichen Kontexten. Ein Benutzer kann von der Kartenanwendung anfordern, nach einer Fahrtroute von einem ersten Ort zu einem zweiten Ort zu suchen (zum Beispiel vom Haus des Benutzers zu einem bestimmten Restaurant). In einigen Ausführungsformen schickt die Anwendung die Anforderung an einen zentralisierten Kartendienst (zum Beispiel einen Satz von Servern, die Hintergrundanwendungen mit Erzeugungsprozessen für Karten und Routen durchführen, wie dies die im Abschnitt III. A beschrieben ist) und empfängt einen Satz von einer oder mehreren möglichen Fahrtrouten vom ersten Ort zum zweiten Ort. Der Benutzer wählt dann eine der Routen aus, die er befahren will.
  • 55 zeigt schematisch einen Prozess 5500 einiger Ausführungsformen zur Anzeige von Textinstruktionen während der Routeninspektion. In einigen Ausführungsformen kann ein Benutzer eine Liste von Anweisungen für eine Fahrtroute betrachten (zum Beispiel über eine GUI Taste zur Auswahl einer Listenansicht) oder er kann schrittweise die Anweisungen eine nach der anderen durchlaufen (zum Beispiel durch Wischgesten) während er auch die Fahrtroute auf der Karte betrachtet. In einigen Ausführungsformen wird der Prozess 5500 durchgeführt, indem eine Kartenanwendung auf einem Gerät arbeitet (zum Beispiel einem mobilen Gerät wie ein Smartphone oder ein Touchpad).
  • Wie dargestellt, beginnt der Prozess 5500 einiger Ausführungsformen, indem (bei 5510) eine Anforderung für eine Fahrtroute zu einem Kartendienst-Server geschickt wird. In einigen Ausführungsformen enthält die Anforderung einen Startort und einen Endort, möglicherweise mit einem oder mehreren Zwischenorten. Der Benutzer gibt diese Orte in die GUI der Kartenanwendung einiger Ausführungsformen ein und die Anwendung überträgt die Anforderung für die Fahrtroute durch eine Geräteschnittstelle an den Kartendienst-Server. Die Arbeitsweise des Servers zur Erzeugung von Fahrtrouteninstruktionen und Navigation-(Kreuzung-)Instruktionen zu sind oben im Abschnitt III. A beschrieben.
  • Der Prozess 5500 empfängt dann (bei 5520) die Fahrtroute zusammen mit den kodierten Kreuzungsdaten. In einigen Ausführungsformen überträgt der Kartendienst die Kreuzungsdaten in einem kodierten Format. Dieses Kodieren kann einfach das Identifizieren ähnlicher Kreuzungen beinhalten und die Bezugnahme darauf, statt die gleiche Kreuzungsinformation erneut zu wiederholen oder kann zusätzliches Kodieren enthalten. Andere Ausführungsformen verwenden möglicherweise keinerlei Kodierung. Unter der Annahme, dass die Daten codiert sind, decodiert der Prozess (bei 5530) die kodierten Kreuzungsdaten, um Kreuzungsinformation für jedes Fahrmanöver längs einer Fahrtroute zu erhalten. Diese Kreuzungsdaten bestehen in einigen Ausführungsformen aus geometrischer Information, die die Zweige der Kreuzung identifiziert und die Winkel, unter denen diese Zweige in die Kreuzung eintreten und austreten. Zusammen mit der Kreuzungsinformation enthalten einige Ausführungsformen auch Fahrmanöver Information, die das durchzuführende Fahrmanöver beschreiben (zum Beispiel Rechts abbiegen, Wenden, Abfahrt von der Autobahn, usw.).
  • Als nächstes erzeugt der Prozess (5540) Textinstruktions-Varianten für alle Kreuzungen längs der Fahrtroute. Textinstruktions-Varianten sind Kombinationen von Textzeichenketten, die von der dekodierten Information über Kreuzungen und Fahrmanöver abgeleitet werden. Wie oben in Bezug auf die 5254 beschrieben, enthalten Beispiele derartiger Textzeichenketten „an der zweiten Kreuzung”, „links abbiegen”, „auf 1st Straße”, „in Richtung Wolf Rd.” und „für 0,3 Meilen”. In einigen Ausführungsformen kombiniert der Prozess 5500 Textzeichenketten in Textinstruktions-Varianten. Als ein erstes Beispiel einer derartigen Kombination kann Prozess 5500 kombinieren „bei der zweiten Kreuzung” und „links abbiegen”, um eine kurze Textinstruktions-Variante zu erzeugen, die lautet ”bei der zweiten Kreuzung links abbiegen”. Als ein zweites Beispiel einer derartigen Kombination kann Prozess 5500 alle die vorherigen Textzeichenketten kombinieren, um eine lange Textinstruktions-Variante zu erzeugen, die lautet ”bei der zweiten Kreuzung links abbiegen auf 1st Straße, in Richtung Wolf Rd. für 0,3 Meilen”. In einigen Ausführungsformen bewertet Prozess 5500 die Textinstruktions-Varianten für jede Kreuzung basierend auf der Menge an Information, die in jeder Variante übertragen wird. In einigen Ausführungsformen werden die Textinstruktions-Varianten erzeugt durch das Gerät unter Verwendung z. B. des Prozesses 5800, der später in Bezug auf 58 beschrieben wird.
  • Der Prozess bestimmt dann (bei 5550), ob eine Anforderung zur Anzeige von Routeninstruktion(en) empfangen wurde. Wie im vorherigen Teilabschnitt dargestellt, kann ein Benutzer schrittweise die Instruktionen eine nach der andern durchlaufen oder eine Listenansicht derartiger Routeninstruktionen verlangen. Wenn keine Anforderung empfangen ist, geht der Prozess zu 5580 über, um festzustellen, ob die Fahrtrouten-Inspektion beendet ist (zum Beispiel, da der Benutzer eine Route gelöscht hat, das Befahren der Route begonnen hat, die Kartenanwendung geschlossen hat, usw.). Diese beiden Operationen funktionieren effektiv als ein Wartezustand, in dem der Prozess wartet, bis ein neues Ereignis auf tritt, das die Anzeige der Routeninstruktionen veranlasst.
  • Wenn die Anwendung eine derartige Anforderung erhalten hat, analysiert Prozess 5500 (bei 5560) den Kontext zur Anzeige der einen oder mehreren Textinstruktion(en). In einigen Ausführungsformen hängt der Kontext von verschiedenen Faktoren ab, die mit der klaren Anzeige der Instruktionen zusammenhängen, die für das Befahren der Route erforderlich sind. Beispielsweise kann der Kontext basiert sein auf dem Platz, der für die Anzeige der Textinstruktionen zur Verfügung steht (zum Beispiel aufgrund der Größe des Geräts, auf dem die Routeninstruktionen wiedergegeben werden) oder den Konditionen, unter denen der Indikator wiedergegeben wird (zum Beispiel, ob es sich um ein aktuelles oder zukünftiges Fahrmanöver handelt, in welcher besonderen Modalität die Kartenanwendung das Zeichen wiedergegeben wird, usw.).
  • Nachdem der Kontext für die Routeninstruktionen identifiziert ist, zeigt der Prozess 5500 (bei 5570) die Textinstruktion(en) für die Fahrmanöver an, basierend auf den Kontext. In einigen Ausführungsformen bestimmt der Kontext zum Anzeigen einer besonderen Textinstruktion welche Textinstruktions-Variante angezeigt wird. Die Textinstruktions-Varianten haben in einigen Ausführungsformen unterschiedliche Länge für verschiedene Kontexte. In einigen Ausführungsformen übertragen längere Textinstruktions-Varianten mehr Information als kurze Instruktionsvarianten. Doch können längere Instruktionsvarianten nicht in kleine Banner passen oder verursachen ein Überlaufen über Textzeilen hinaus. Einige Ausführungsformen verwenden beispielsweise längere Textinstruktions-Varianten, um Fahrtrouten Instruktionen eines Fahrmanöver jeweils zu einer Zeit anzuzeigen in der standardmäßigen Punkt-zu-Punkt-Navigationsansicht, verwenden aber kurze Textinstruktions-Varianten, um dieselben Manöver anzuzeigen, wenn weniger Platz zugewiesen ist, beispielsweise, wenn die Navigation zwar aktiv ist, das Gerät aber in einer anderen Anwendung arbeitet. Der Prozess bestimmt dann (bei 5580), ob die Routeninspektion beendet ist, wie oben beschrieben. Sobald die Routeninspektion beendet ist, endet der Prozess.
  • Zusätzlich zur Anzeige der Routeninstruktionen bevor tatsächlich einer Fahrtroute gefolgt wird, werden die Textinstruktionen in verschiedenen Kontexten verwendet während der Punkt-zu-Punkt-Navigation. 56 zeigt schematisch einen Prozess 5600 einiger Ausführungsformen, der Navigation für eine derartige Route durchführt. In einigen Ausführungsformen wird der Prozess 5600 durch eine Kartenanwendung durchgeführt, die auf einem Gerät arbeitet (zum Beispiel einem mobilen Gerät wie beispielsweise einem Smartphone oder einem Touchpad).
  • Wie dargestellt, beginnt der Prozess 5600, indem festgestellt wird (bei 5610), ob der Benutzer die Route befährt. D. h. die Anwendung bestimmt, ob der Ort des Benutzergeräts (das beispielsweise durch die GPS Fähigkeit des Geräts oder einen anderen Ortsnachführungsmechanismus zur Verfügung gestellt wird) längs des Pfades der Fahrtroute liegt oder sich von der Fahrtroute entfernt hat. Wenn sich der Benutzer von der Fahrtroute entfernt (zum Beispiel, da der Benutzer ein anderes Fahrmanöver durchführt als das von der Fahrtroute spezifizierte, oder den Ort des Geräts von der Route entfernt), fordert die Kartenanwendung eine Aktualisierung der Daten für die Fahrtroute und die Kreuzungsdaten an. Ist dementsprechend das Gerät, auf dem die Kartenanwendung ausgeführt wird, nicht mehr auf der Fahrtroute, fordert der Prozess (bei 5620) neue Fahrtrouten Daten und Kreuzungsdaten vom Kartendienst-Server an. Der Prozess empfängt dann (bei 5630) revidierte Fahrtrouten Daten und Kreuzungsdaten für alle Kreuzungen längs der Fahrtroute. In einigen Ausführungsformen werden die Kreuzungsdaten vom Kartendienst-Server für jede Kreuzung längs der Fahrtroute bestimmt. Wie oben beschrieben, können die Kreuzungsdaten Winkel der verschiedenen Zweige der Kreuzung enthalten, die auf die Einfahrtsrichtung normalisiert sind, zusammen mit einer Anzeige des Ausfahrtzweiges der Kreuzung. In einigen Ausführungsformen werden die Kreuzungsdaten vom Server aus einem Speicher ausgelesen, der einen Satz bekannter Kreuzungen und Winkel enthält (z. B. alle öffentlichen Straßen in den Vereinigten Staaten). In einigen Fällen erzeugt der Server Kreuzungsdaten aus anderen Quellen (zum Beispiel von Transportbehörden von Staaten und von Stadtverwaltungen, aktuelle Satellitenfotos mit neuen, noch nicht gespeicherten Straßen, usw.). Zur Routenaktualisierung erzeugen und übertragen einige Ausführungsformen des Kartendienstes neue Kreuzungsinformation nur für die Änderungen der Fahrtroute und beziehen sich auf schon empfangene Daten für Kreuzungen, die sowohl in den alten und den neuen Fahrtrouten enthalten sind.
  • Danach dekodiert Prozess 5600 (bei 5640) die kodierten Kreuzungsdaten, um Kreuzungsinformation für jedes Fahrmanöver längs der revidierten Fahrtroute zu erhalten. Diese Kreuzungsdaten bestehen in einigen Ausführungsformen aus Geometrieinformation, die die Zweige der Kreuzung und die Winkel identifiziert, unter denen diese Zweige in die Kreuzung eintreten und austreten. Zusammen mit der Kreuzungsinformation enthalten einige Ausführungsformen auch Fahrmanöver Information, die das durchzuführende Fahrmanöver beschreibt (zum Beispiel rechts abbiegen, Wenden, Abfahren von der Autobahn, usw.).
  • Der Prozess erzeugt dann (bei 5650) Textinstruktions-Varianten für die Kreuzungen in der revidierten Route. Textinstruktions-Varianten sind Kombinationen von Textzeichenketten, die von der dekodierten Information über Kreuzungen und Fahrmanöver abgeleitet werden. Wie oben in Zusammenhang mit 5254 diskutiert, enthalten Beispiele derartiger Textzeichenketten „bei der zweiten Kreuzung”, „links abbiegen”, ”auf 1st Straße”, ”in Richtung Wolfe St”, „für 3 Meilen”. In einigen Ausführungsformen kombiniert der Prozess 5500 die Textzeichenketten in Textinstruktions-Varianten. Ein erstes Beispiel einer derartigen Kombination kann Prozess 5500 kombinieren ”bei der zweiten Kreuzung” und „links abbiegen” um eine kurze Textinstruktions-Variante zu erzeugen, die lautet ”bei der zweiten Kreuzung, links abbiegen”. Als ein zweites Beispiel einer derartigen Kombination kann Prozess 5500 alle die vorherigen Textzeichenketten kombinieren, um eine lange Textinstruktions-Variante zu erzeugen, die lautet ”an der zweiten Kreuzung, links abbiegen auf 1st Straße, in Richtung Wolf Rd. für 0,3 Meilen”. In einigen Ausführungsformen stellt der Prozess 550 für die Textinstruktions-Varianten eine Rangfolge für jede Kreuzung auf, basierend auf der Menge von Information, die in jeder Variante übertragen wird. In einigen Ausführungsformen werden die Textinstruktions-Varianten erzeugt durch das Gerät unter Verwendung eines Prozesses wie beispielsweise des Prozesses 5800, der unten in Bezug auf 58 beschrieben wird.
  • Nachdem der Satz von Textinstruktions-Varianten für die Kreuzungen der revidierten Route generiert wurde, kehrt der Prozess 5610 wieder zurück, um erneut festzustellen, ob der Benutzer die neue Route befährt. Wenn das Gerät des Benutzers immer noch der Fahrtroute folgt, stellt der Prozess 5600 fest (bei 5660), ob eine neue Navigationsinstruktion angezeigt werden soll. In einigen Ausführungsformen wird beim Befahren einer Route jedes Manöver, das mit einer Kreuzung zusammenhängt, dem Benutzer als ein Zeichen angezeigt (zum Beispiel ein grünes Zeichen mit einem Pfeil und einer Textinstruktion, die das Fahrmanöver in einem bestimmten Detailgrad beschreibt) wenn sich die Kreuzung nähert.
  • Wenn eine neue Navigationsinstruktion nicht erforderlich ist (zum Beispiel, da das durch die aktuell dargestellte Instruktion angezeigte Fahrmanöver noch nicht durchgeführt wurde) bestimmt der Prozess (bei 5675), ob die aktuell angezeigte Instruktion aktualisiert werden soll. Wie in den vorherigen Talabschnitt gezeigt, enthält das Navigationszeichen in einigen Ausführungsformen einen Indikator der Entfernung, die bis zu dem Fahrmanöver bleibt. In einigen Ausführungsformen aktualisiert die Kartenanwendung regelmäßig diesen Entfernungsindikator, wenn sich das Fahrmanöver nähert (zum Beispiel jede Meile, dann jede 1/10. Meile, dann jede 50 Fuß, usw.). Wenn ein Schwellwert für die Entfernung erreicht wurde, sodass die angezeigte Instruktion aktualisiert werden muss, aktualisiert der Prozess 5600 (bei 5680) die angezeigte Instruktion. In einigen Ausführungsformen gehört dazu die Aktualisierung der Zahl und/oder der Entfernungseinheit (zum Beispiel Umschalten von Meilen auf Fuß für das letzte Zehntel einer Meile). Einige Ausführungsformen liefern auch eine Aktualisierung der verbleibenden Entfernung über die Sprachausgabe des Geräts, auf dem der Prozess arbeitet.
  • Der Prozess schreitet dann zu 5685, um festzustellen, ob die Navigation beendet wurde. Wenn die Navigation beendet ist, endet der Prozess 5600. Die Operationen 5660, 5675, und 5685 funktionieren effektiv zusammen als ein Wartezustand, in dem die Kartenanwendung auf ein Ereignis wartet, das entweder die Anzeige einer neuen Navigationsinstruktion erfordert oder eine Aktualisierung der angezeigten Navigationsinstruktion oder auf das Ende der Navigation (zum Beispiel, da der Endpunkt der Fahrtroute erreicht ist).
  • Tritt ein Ereignis auf, das die Anzeige einer neuen Navigationsinstruktion erfordert, analysiert der Prozess (bei 5665) den Kontext zur Anzeige der Textinstruktion. In einigen Ausführungsformen hängt der Kontext von mehreren Faktoren ab, die mit der klaren Anzeige der Fahrmanöver zusammenhängen, die für das Befahren der Route erforderlich sind. Beispielsweise kann der Kontext basiert sein auf dem Platz, der verfügbar ist, um die Textinstruktionen anzuzeigen (zum Beispiel aufgrund der Größe des Geräts, auf dem die Fahrtrouten-Instruktionen angezeigt werden) oder der Bedingungen, unter denen der Indikator wiedergegeben wird (zum Beispiel, ob es sich um ein aktuelles oder ein zukünftiges Fahrmanöver handelt, die besondere Modalität, in der die Kartenanwendung das Zeichen anzeigen wird, usw.). Zusätzliche Kontextfaktoren können enthalten, ob die Instruktion dem Benutzer auch über die Sprachführung geliefert wird, die Orientierung des Geräts oder andere Faktoren in einigen Ausführungsformen
  • Nachdem der Kontext zur Anzeige der Textinstruktionen identifiziert ist, zeigt der Prozess 5600 (bei 5670) eine Textinstruktions-Variante für die sich nähernde Kreuzung, basierend auf den Kontext. In einigen Ausführungsformen bestimmt der Kontext der Anzeige einer bestimmten Textinstruktion welche Textinstruktions-Variante angezeigt wird. Die Textinstruktions-Varianten kommen in einigen Ausführungsformen in verschiedener Länge für unterschiedliche Kontexte vor. In einigen Ausführungsformen übertragen die längeren Textinstruktions-Varianten mehr Information als die kürzeren Instruktionsvarianten. Jedoch können die längeren Instruktionsvarianten nicht in kleine Banner passen oder sie können Überlaufeffekte von Textzeilen hervorrufen. Einige Ausführungsformen verwenden beispielsweise längere Textinstruktions-Varianten zum Anzeigen der Routen Instruktion für ein Manöver zu einem Zeitpunkt und verwenden kürzere Textinstruktions-Varianten um eine in einer Listeansicht alle Instruktionen gleichzeitig anzuzeigen. Einige Ausführungsformen setzen eine Grenze für die Zeichen oder die Größe, basierend auf dem Kontext und wählen die Textinstruktions-Variante aus, die die meiste Information überträgt aber immer noch in den Anzeigebereich passt, der der Navigationsinstruktion zugeordnet ist und die geeignete Textgröße beibehält.
  • Nach dem Anzeigen der neuen Instruktionen geht der Prozess 5600 zu 5685 über um festzustellen, ob die Navigation beendet wurde. In einigen Ausführungsformen endet die Navigation wenn der Benutzer die Kartenanwendung stoppt oder wenn der Zielort erreicht ist. Wenn die Navigation beendet ist, endet der Prozess 5600. Sonst kehrt der Prozess 5600 zurück zu 5610 um festzustellen, ob die Routennavigation immer noch auf dem Pfad ist, wie oben beschrieben.
  • Wie oben beschrieben, dekodiert und synthetisiert die Kartenanwendung einiger Ausführungsformen die empfangenen Kreuzungsdaten, um Zeichenkettendaten zu erhalten, mit denen die Navigationsinstruktionen erzeugt werden. 57 zeigt schematisch einen Prozess 5700 einiger Ausführungsformen zum Dekodieren der kodierten Kreuzungsdaten und zum Synthetisieren von Instruktionselementen aus den Routendaten und Kreuzungsdaten, die von einem Kartendienst erhalten wurden. In einigen Ausführungsformen wird der Prozess 5700 durch eine Kartenanwendung durchgeführt. Die Kartenanwendung führt den Prozess 570 in einigen Ausführungsformen bei der Phase 5530 des Prozesses 5000 durch, nachdem die Kreuzungsdaten für alle Kreuzungen längs der Fahrtroute erhalten wurden.
  • Wie dargestellt, beginnt der Prozess 5700 bei (5710), indem codierte Kreuzungsdaten für alle Kreuzungen in der Fahrtroute erhalten werden. In einigen Ausführungsformen lädt der Prozess die kodierten Kreuzungsdaten von einem Kartendienst-Server herunter. In einigen Ausführungsformen kann dieses Kodieren nur darin bestehen, ähnliche Kreuzungen zu identifizieren und sich auf diesen Satz von Kreuzungen zu beziehen, statt diese gleiche Kreuzungsinformation doppelt zu wiederholen oder es kann zusätzliches Kodieren enthalten. Zusätzlich empfangen einige Ausführungsformen Fahrtrouten Instruktion Information, die einen Typ von durchzuführenden Manöver zeigt (zum Beispiel „Rechtsabbiegen”, „links fahren”, usw.).
  • Als nächstes wählt der Prozess (bei 5720) eine noch nicht bearbeitete Kreuzung aus. In einigen Ausführungsformen wird der Prozess die Kreuzungen geordnet vom Start der Fahrtroute zum Ende der Fahrtroute auswählen, wobei jedes Fahrmanöver durch die Routeninstruktionen angezeigt wird. Nachdem eine Kreuzung ausgewählt ist, analysiert der Prozess (bei 5730) irgendwelche Beziehungen, die die ausgewählte Kreuzung zu den vorhergehenden oder nachfolgenden Kreuzungen aufweist, ebenso wie die spezifische Aspekte der ausgewählten Kreuzung. In einigen Ausführungsformen kann eine derartige Analyse enthalten das Feststellen der Entfernungen zwischen den vorhergehenden und nachfolgenden Kreuzungen in der Fahrtroute, das Bestimmen des Abbiegegrades, das Identifizieren der primären Manöver, die an einer ausgewählten Kreuzung durchzuführen sind, das Identifizieren der Namen der Straßen an jedem Zweig der Kreuzung, das Identifizieren von Straßen oder anderen Identifizierern auf der Karte, die die Fahrtroute durchläuft, nachdem das Manöver an der ausgewählten Kreuzung durchgeführt wurde.
  • Nachdem die Beziehungen der Kreuzung analysiert sind, synthetisiert der Prozess (bei 5740) die Instruktionselemente für die ausgewählte Kreuzung unter Verwendung der analysierten Kreuzungsdaten. Die synthetisierten Instruktionselemente werden mit der ausgewählten Kreuzung assoziiert. In einigen Ausführungsformen enthalten die synthetisierten Instruktionselemente einen Satz von Textzeichenketten. Wie oben in Bezug auf 52 diskutiert, enthalten Beispiele derartiger Textzeichenketten „Am Ende der Straße”, „Rechtsabbiegen”, „auf 1st Straße”, „in Richtung B Straße” und „für 0,1 Meilen”.
  • In einigen Ausführungsformen ist jede Textzeichenkette mit einer Element-Kategorie verknüpft. Beispiele von Element-Kategorien enthalten: „bei” Elemente, die den Ort definieren, an dem das hauptsächliche Fahrmanöver erfolgen wird, „abbiegen” Elemente, die die primären Manöver zusammenfassen, die an der ausgewählten Kreuzung durchzuführen sind, ”auf” Elemente, die das Objekt (d. h. die Straße) identifizieren, auf die das Hauptmanöver abbiegen wird, „in Richtung” Elemente, die das nächste Objekt identifizieren, zu dem das hauptsächliche Fahrmanöver führen wird, und „für” Elemente, die die Entfernung zwischen der ausgewählten Kreuzung und der nächsten Kreuzung identifizieren. In anderen Ausführungsformen können jedoch zusätzliche, weniger oder andere Elementkategorien verwendet werden als die oben aufgelisteten.
  • Als nächstes bestimmt der Prozess (5750), ob irgendwelche Kreuzungen zur Bearbeitung übrig bleiben. Wenn zusätzliche Kreuzungen verarbeitet werden müssen (d. h. für die noch keine Elemente synthetisiert werden), kehrt der Prozess 5700 zur Operation 5720 zurück, um die nächste Kreuzung auszuwählen. Nachdem alle Kreuzungen bearbeitet sind, endet der Prozess 5700.
  • Der Ausgang des Prozesses 5700 ist ein Satz von Instruktionselementen für jede Kreuzung einer Fahrtroute, die vom Kartendienst-Server erhalten wurde. In einigen Ausführungsformen verwendet die Kartenanwendung auf dem Clientgerät dann diese synthetisierten Instruktionselemente, um mehrere verschiedene Text-Navigationsinstruktionsvarianten für jede Kreuzung zu erzeugen. 58 zeigt schematisch einen Prozess 5800 einiger Ausführungsformen zur Erzeugung von Navigation Instruktionsvarianten zur Anzeige in unterschiedlichen Kontexten. In einigen Ausführungsformen wird der Prozess 5800 durch eine Kartenanwendung durchgeführt, die auf einem Gerät arbeitet (zum Beispiel ein mobiles Gerät wie beispielsweise ein Smartphone oder ein Touchpad). In einigen Ausführungsformen führt die Kartenanwendung die Prozesse 5700 und 5800 nacheinander durch (d. h. das Synthetisieren der Elemente für jede Kreuzung und dann die Verwendung der Elemente, um Instruktionstext zu erzeugen).
  • Wie dargestellt beginnt der Prozess 5800, indem Sätze von Instruktionselementen empfangen werden (bei 5810), die jeweils zu einer bestimmten Kreuzung gehören. Wie oben in Bezug auf 52 diskutiert, enthalten in einigen Ausführungsformen die Sätze von Instruktionselementen Text-Zeichenketten, die mit Elementkategorien verknüpft sind (zum Beispiel „bei”, „abbiegen”, „auf”, „in Richtung” und „für” Kategorien).
  • Als nächstes wählt der Prozess 5800 (bei 5820) einen noch nicht verarbeiteten Satz von Instruktionselementen für eine bestimmte Kreuzung der Fahrtroute aus. Während die Prozesse 5700 und 5800 darstellen, wie die Kartenanwendung zuerst die Elemente für jede Kreuzung synthetisiert und anschließend den Instruktionstext erzeugt, führt in einigen Ausführungsformen die Kartenanwendung alle diese Operationen in einer einzigen Schleife für jede Kreuzung durch. D. h. die Kartenanwendung einiger Ausführungsformen wählt eine Kreuzung, synthetisiert ihre Elemente, erzeugt dann die Instruktionstext varianten, bevor sie zur nächsten Kreuzung fortschreitet.
  • Für den ausgewählten Satz von Instruktionselementen kombiniert der Prozess 5800 (bei 5830) die Instruktionselemente des Satzes in Instruktionsvarianten. Als ein erstes Beispiel einer derartigen Kombination kann der Prozess 5800 kombinieren ”am Ende der Straße” und „Rechtsabbiegen”, um eine kürzere Textinstruktions-Variante zu erzeugen, die lautet „am Ende der Straße, Rechtsabbiegen”. Als ein zweites Beispiel einer derartigen Kombination kann Prozess 5800 alle die vorherigen Textzeichenketten kombinieren, um eine längere Text Instruktionsvariante zu erzeugen, die lautet ”Am Ende der Straße Rechtsabbiegen in 1st Straße, in Richtung B Straße für 0,1 Meilen” Einige Ausführungsformen erzeugen die gleichen Kombinationen von Elementen für jede Kreuzung. Beispielsweise erzeugt in einigen Ausführungsformen die Anwendung eine erste Instruktionstextvariante für jede Kreuzung von allen diesen Elementen, eine zweite Instruktionstextvariante nur aus den Elementen „abbiegen” und „auf”, eine dritte Instruktionstextvariante aus den Elementen ”abbiegen” „auf” und „in Richtung”. Andere Ausführungsformen können andere Faktoren berücksichtigen, um unterschiedliche Instruktionstextvarianten aus den synthetisierten Elementen zu erzeugen.
  • Nach dem Erzeugen der Instruktionstextvarianten für eine ausgewählte Kreuzung stellt Prozess 5800 (bei 5850) eine Rangfolge der Instruktionsvarianten auf gemäß der Menge von Information, die in jeder Variante übertragen wird. In einigen Ausführungsformen verwendet die Anwendung die Länge (z. B. die Anzahl der Schriftzeichen) als ein Stellvertreter für die übertragene Information. Andere Ausführungsformen ziehen spezifische Kombinationen von Elementen anderen Kombinationen vor, selbst wenn diese Methodologie dazu führt, dass eine geringfügig kürzere Variante im Rang vor einer längeren Variante steht. Einige Ausführungsformen verwenden beispielsweise spezifische Kombination von Elementen für jede Kreuzung, wobei jede spezifische Kombination die gleiche Rangfolge für jede Kreuzung aufweist.
  • Der Prozess 5800 bestimmt dann (5860), ob noch nicht bearbeitete Sätze von Instruktionselementen verbleiben (d. h. ob Instruktionen erzeugt wurden für alle Kreuzungen der Fahrtroute). Wenn zusätzliche, nicht verarbeitete Sätze von Instruktionselementen verbleiben, kehrt der Prozess 5800 zur Operation 5820 zurück, um den nächsten Satz von Instruktionselementen auszuwählen. Im anderen Fall, wenn alle Kreuzungen ihre Instruktionen erzeugt haben, endet der Prozess 5800.
  • C. Navigation-Instruktion Software Architektur
  • Wie oben dargestellt, werden in einigen Ausführungsformen die Karten, die Fahrtrouten und die Punkt-zu-Punkt-Navigation einem Benutzer durch eine Navigationsanwendung präsentiert, die auf einem Gerät arbeitet (z. B. ein handgehaltenes Gerät wie ein Smartphone oder ein Tablett Computer). Die Navigationsanwendung kann in einigen Ausführungsformen eine eigenständige Anwendung sein oder mit dem Betriebssystem des Geräts integriert sein. 59 zeigt schematisch eine Systemarchitektur mit einer Karten- und Navigationsanwendung 5900 einiger Ausführungsformen, die Textinstruktionen für verschiedene Kontexte erzeugt. Ein Fachmann wird erkennen, dass die dargestellten Module für die Anwendung 5900 spezifisch für den Erzeugungsprozess für Textinstruktionen sind und dass die Karten- und Navigationsanwendung einiger Ausführungsformen zahlreiche zusätzliche Module enthalten wird (zum Beispiel für die Kartenanzeige, Fahrtroutenanzeige, zusätzliche Aspekte der Navigation, usw.)
  • Wie dargestellt, überträgt ein Kartendienst-Server 5910 Daten für die Fahrtroute und die Kreuzungen durch ein Netzwerk 5915 zu einer Netzwerkschnittstelle 5920 des Geräts, auf dem die Karten- und Navigationsanwendung 5900 arbeitet. In einigen Ausführungsformen empfängt der Kartendienst-Server 5910 eine Anforderung für eine Fahrtroute von Geräten, auf denen die Navigationsanwendung 5900 arbeitet und erzeugt Daten für die Fahrtroute und die Kreuzungen für die Anforderungen.
  • Die Navigationsanwendung 5900 enthält einen Kreuzungsdekodierer 5930, einen Instruktionsgenerator 5945, einen Instruktionsanforderer 5960, einen Kontextanalysator 5965, einen Zeichengenerator 5970, einen Pfeilselektor 5975 und eine Zeichen-Engine 5980. Der Kreuzungsdekodierer 5930 empfängt codierte Kreuzungsinformation 5925 für eine Fahrtroute, decodiert diese Information, um Information zu erhalten, die jede Kreuzung und die an den Kreuzungen durchgeführten Fahrmanöver beschreibt und synthetisiert einen Satz von Instruktionselementen für jede Kreuzung in der Fahrtroute. In einigen Ausführungsformen führt der Kreuzungsdekodierer 5930 den Prozess 5700 von 57 aus, der oben beschrieben ist. Der Kreuzungsdekodierer 5930 decodiert codierte Kreuzungen 5925, um decodierte Kreuzungsdaten 5935 zu erzeugen.
  • In einigen Ausführungsformen können die kodierten Kreuzungen 5925 und die dekodierten Kreuzungen 5935 auf dem Gerät in einem Speicher mit wahlfreiem Zugriff oder einem anderen flüchtigen Speicher gespeichert werden, zur Verwendung nur während der Navigation der Route oder in einem permanenten Speicher, wie beispielsweise einer Festplatte oder Festkörperspeichern. Wie in Beispielstabelle 5940 gezeigt, speichern einige Ausführungsformen einen Satz von Textzeichenkettenelementen für jede Kreuzung, zum Beispiel in einer Tabelle, einer Matrix oder ähnlichen Datenstruktur. Die oben beschriebene 52 zeigt ein Beispiel einer derartigen Tabelle, die für einen bestimmten Satz von Kreuzungen gespeichert ist.
  • Der Instruktionsgenerator 5945 erzeugt bewertete Textinstruktions-Varianten 5955 zur Anzeige auf einem Gerät, basierend auf den synthetisierten Instruktionselementen 5935, die vom Kreuzungsdekodierer 5930 erhalten werden. In einigen Ausführungsformen führt der Instruktionsgenerator 5945 den Prozess 5800 von 58 aus, der oben beschrieben ist. In einigen Ausführungsformen können die bewerteten Textinstruktions-Varianten 5955 auf dem Gerät in einem Speicher mit wahlfreiem Zugriff oder einem anderen flüchtigen Speicher gespeichert werden, zur Verwendung nur während der Navigation der Route oder in einem permanenten Speicher, wie beispielsweise einer Festplatte oder Festkörperspeicher. Die oben beschriebene 52 zeigt auch ein Beispiel von bewerteten Instruktionsvarianten 5955, die vom Instruktionsgenerator 5945 erzeugt werden. Die Beispieltabelle 5950 zeigt das Ergebnis des Synthetisierens der Elemente 5940 in verschiedene Textinstruktions-Varianten zur Verwendung in verschiedenen Kontexten der Navigationsanzeigen.
  • Der Instruktionsanforderer 5960 verwendet einen Kontextanalysator 5965, um festzustellen, welche Instruktionsvarianten für eine bestimmte Anzeige eines Fahrmanövers ausgewählt werden, abhängig vom Kontext, in dem die Textinstruktionen angezeigt werden wird. Diese Kontexte können unterschiedliche Situationen für Routenanweisungen oder unterschiedliche Situationen für Abbiege Navigationsinstruktionen darstellen (zum Beispiel Standardmodus, Modus mit gesperrtem Bildschirm, wenn eine andere Anwendung geöffnet ist, wenn Sprach-Navigation aktiviert ist, usw.). In einigen Ausführungsformen hängt der Kontext von verschiedenen Faktoren ab, die damit zusammenhängen, dass die Fahrtrouten Manöver, die zum Befahren der Route erforderlich sind, klar dargestellt werden. Beispielsweise kann der Kontext basiert sein auf dem verfügbaren Platz, um die Textinstruktionen anzuzeigen (zum Beispiel aufgrund der Größe des Geräts, auf dem die Routeninstruktionen angezeigt werden), die Bedingungen, unter denen der Indikator angezeigt wird (zum Beispiel, ob es sich um ein aktuelles oder ein zukünftiges Fahrmanöver handelt, in welcher besonderen Modalität der Navigationsanwendung das Zeichen angezeigt wird, usw.) oder andere Faktoren. Viele derartige Kontexte sind oben im Teil Abschnitt A dieses Abschnitts dargestellt. Der Instruktionsanforderer 5960 wählt eine Instruktionsvariante zur Verwendung für eine bestimmte Fahrmanöver Anzeige aus und liefert diese Information an den Zeichengenerator 5970.
  • Der Pfeilselektor 5975 verwendet auch den Kontextanalysator 5965 um festzustellen, welche der Richtungsindikatoren für ein bestimmtes Fahrmanöver verwendet werden sollen, abhängig vom Kontext, in dem der Indikator angezeigt wird. Der Pfeilselektor wählt einen der grafischen Indikatoren aus, die im vorigen Abschnitt beschrieben werden (zum Beispiel entweder eine komplexe oder einfache Darstellung eines Fahrmanövers) und liefert diese Auswahl an den Zeichengenerator 5970. Zeichengenerator 5970 erzeugt ein Navigation Instruktionszeichen für die Anzeige, das einen ausgewählten grafischen Indikator und eine Instruktionstextvariante enthält. Zeichengenerator 5970 verwendet auch die Ergebnisse des Kontextanalysators, um andere Aspekte des Zeichens zu erzeugen, zum Beispiel wie oft die Entfernungsinformationen aktualisiert werden soll und ob Straßenschilder-Zeichen anstelle von Straßennamen verwendet werden sollen.
  • Die Zeichen-Engine 5980 empfängt die erzeugten Zeichen vom Zeichengenerator 5970 und baut das Zeichen in eine Anzeige ein, um sie an ein Anzeigegerät zu geben (oder an einen Frame Puffer/Bildschirmseiten Puffer, der sie an das Anzeigegerät liefert). In einigen Ausführungsformen vereinigt die Zeichen Engine 5980 das Zeichen mit einer 2-D Karte, einer 3-D Karte oder anderen GUI Elementen, die von der Karten und Navigationsanwendung dargestellt werden.
  • V. Elektronisches System
  • Viele der oben beschriebenen Merkmale und Anwendungen werden durch Softwareprozesse implementiert, die spezifiziert sind als ein Satz von Instruktionen, der auf einem Computerlesbaren Speichermedium aufgezeichnet ist (auch als computerlesbares Medium bezeichnet). Wenn diese Instruktionen durch eine oder mehrere Rechen- oder Bearbeitungseinheiten ausgeführt werden (zum Beispiel eine oder mehrere Prozessoren, Kerne von Prozessoren oder andere Verarbeitungseinheiten) veranlassen sie die Verarbeitungseinheiten, die durch die Instruktionen angezeigten Aktionen durchzuführen. Beispiele von computerlesbaren Medien enthalten, sind aber nicht beschränkt auf, CD-ROMs, Flash Speicher, Speicherchips mit wahlfreiem Zugriff (RAM), Festplatten, löschbare programmierbare Nur-Lese Speicher (EPROMS), elektrisch löschbare programmierbare Nur-Lese Speicher (EEPROMS), usw. Zu den computerlesbaren Medien gehören nicht Trägerwellen und elektronische Signale, die drahtlos oder über Drahtverbindungen weitergegeben werden.
  • In dieser Beschreibung wird der Ausdruck Software so verstandenen, dass auch Firmware enthalten ist, die in Nur-Lese Speichern untergebracht ist oder Anwendungen, die in einem magnetischen Speicher gespeichert sind, der in den (Haupt-)Speicher zur Bearbeitung durch einen Prozessor ausgelesen werden kann. In einigen Ausführungsformen können auch mehrfache Software Erfindungen als Teile eines größeren Programms implementiert sein, obwohl sie eigenständige Software Erfindungen darstellen. In einigen Ausführungsformen können mehrfache Software Erfindungen auch als getrennte Programme implementiert werden. Schließlich liegt auch jede Kombination von getrennten Programmen, die zusammen eine Software Erfindung implementieren, im Rahmen der Erfindung. In einigen Ausführungsformen definieren die Softwareprogramme, wenn sie installiert sind, um auf einem oder mehreren elektronischen Systemen zu arbeiten, eine oder mehrere spezifische Maschinenimplementierungen, die die Operationen der Softwareprogramme ausführen.
  • A. Mobile Geräte
  • Die Karten-/Navigationsanwendungen einiger Ausführungsformen arbeiten auf mobilen Geräten, beispielsweise Smartphones (auf zum Beispiel iPhone® und Tablett Computer (zum Beispiel iPad®). 60 zeigt ein Beispiel einer Architektur 6000 eines derartigen mobilen Rechengeräts. Beispiele von mobilen Rechengeräten enthalten Smartphones, Tablett Computer, Laptops, usw. Wie dargestellt, enthält das Rechengerät 6000 eine oder mehrere Verarbeitungseinheiten 6005, eine Speicherschnittstelle 6010 und eine Peripherieschnittstelle 6015.
  • Die Peripherie-Schnittstelle 6015 ist mit verschiedenen Sensoren und Subsystemen gekoppelt, einschließlich eines Kamera Subsystems 6020, eines drahtlosen Kommunikation Subsystems (6025, eines Audio Subsystems 6030, eines I/O Subsystem 6035, usw. Die Peripherie-Schnittstelle 6015 ermöglicht Kommunikation zwischen den Verarbeitungseinheiten 6005 und verschiedenen Peripheriegeräten. Beispielsweise kann ein Orientierungssensor 6045 (zum Beispiel ein Gyroskop) und ein Beschleunigungsmesser (zum Beispiel ein Accelerometer) mit der Peripherie-Schnittstelle 6015 gekoppelt sein, um Orientierungs- und Beschleunigungsfunktionen zu erleichtern.
  • Das Kamerasubsystem 6020 ist mit einem oder mehreren optischen Sensoren 6040 gekoppelt (z. B. ladungsgekoppelte Einheit (CCD), komplementäre Metall Oxid Halbleiter (CMOS), usw.). Das mit den optischen Sensoren 6040 gekoppelte Kamera Subsystem 6020 erleichtert Kamerafunktionen, zum Beispiel das Erfassen von Bild und/oder Videodaten. Das drahtlose Kommunikations-Subsystem 6025 dient zur Erleichterung von Kommunikationsfunktionen. In einigen Ausführungsformen enthält das drahtlose Kommunikationssubsystem 6025 Radiofrequenzempfänger und Sender, und optische Empfänger und Sender (die in 60 nicht gezeigt sind). Diese Empfänger und Sender einiger Ausführungsformen sind implementiert, um über eine oder mehrere Kommunikationsnetzwerke zu arbeiten, wie beispielsweise einem GSM Netzwerk, einem Wi-Fi Netzwerk, einem Bluetooth Netzwerk usw. Das Audiosubsystem 6030 ist mit einem Lautsprecher gekoppelt, um Audio auszugeben (zum Beispiel zur Ausgabe von Sprachnavigationsinstruktionen). Zusätzlich ist das Audiosubsystem 6030 mit einem Mikrofon gekoppelt, um Sprachbezogene Funktionen zu erleichtern, wie beispielsweise Spracherkennung (zum Beispiel für das Suchen), digitale Aufnahmen, usw.
  • Das I/O Subsystem 6035 betrifft die Übertragung zwischen Eingabe/Ausgabe Peripheriegeräten, wie beispielsweise einem Anzeigegerät, einen berührungsempfindlichen Bildschirm, usw. und dem Datenbus der Verarbeitungseinheiten 6005 durch die Peripherie-Schnittstelle 6015. Das I/O Subsystem 6035 enthält einen Controller 6055 für einen berührungsempfindlichen Bildschirm, und andere Eingabecontroller 6060, um die Übertragung zwischen Eingabe/Ausgabe Peripheriegeräten und dem Datenbus der Verarbeitungseinheit 6005 zu erleichtern. Wie dargestellt, ist der Controller 6055 für den berührungsempfindlichen Bildschirm mit einem berührungsempfindlichen Bildschirm 6065 gekoppelt. Der Controller 6055 für den berührungsempfindlichen Bildschirm detektiert Berührung und Bewegung auf dem berührungsempfindlichen Bildschirm 6065 und verwendet dazu eine von mehreren Technologien, die auf Berührungen ansprechen. Die anderen Eingabe Controller 6060 sind mit den anderen Eingabe/Steuer Elementen verbunden, beispielsweise einem oder mehreren Tastflächen. Einige Ausführungsformen enthalten einen Bildschirm, der auf Fast-Berührungen anspricht und einen entsprechenden Controller, der Interaktionen durch Fast-Berührungen erkennen kann, zusätzlich oder anstelle von Berührungs-Interaktionen.
  • Die Speicher Schnittstelle 6010 ist mit einem Speicher 6070 gekoppelt. In einigen Ausführungsformen enthält der Speicher 6070 einen flüchtigen Speicher (zum Beispiel Speicher mit wahlfreiem Zugriff und hoher Geschwindigkeit), nicht flüchtige Speicher (zum Beispiel Flash Speicher), eine Kombination von flüchtigen und nicht-flüchtigen Speichern und/oder irgendwelche anderen Arten von Speicher. Wie in 60 dargestellt, speichert der Speicher 6070 ein Betriebssystem (OS) 6072. Das OS 6072 enthält Instruktionen zur Behandlung von Grunddiensten des Systems und zum Durchführen von hardwareabhängigen Aufgaben.
  • Der Speicher 6070 enthält auch Kommunikationsinstruktionen 6074, um die Kommunikation mit einem oder mehreren zusätzlichen Geräten zu erleichtern; grafische Benutzerschnittstellen-Instruktionen 6070, um die Bearbeitung grafischer Benutzerschnittstellen zu erleichtern; Bildverarbeitungsinstruktionen 6078, um Bildbezogene Arbeiten und Funktionen zu erleichtern; Eingabeverarbeitungsinstruktionen 6080, um eingabebezogene Prozesse und Funktionen (zum Beispiel Berührungseingabe) zu erleichtern; Audiobearbeitungs-Instruktionen 6082, um Audio-bezogene Prozesse und Funktionen zu erleichtern; und Kamerainstruktionen 6084, um kamerabezogene Prozesse und Funktionen zu erleichtern. Die oben beschriebenen Funktionen dienen nur als Beispiele und Speicher 6070 enthält zusätzliche und/oder andere Instruktionen in einigen Ausführungsformen. Beispielsweise kann der Speicher eines Smartphones Telefoninstruktionen enthalten, um telefonbezogene Prozesse und Funktionen zu erleichtern. Zusätzlich kann der Speicher Instruktionen für eine Kartennavigationsanwendung enthalten sowie für andere Anwendungen. Die oben beschriebenen Instruktionen müssen nicht als getrennte Softwareprogramme oder Module implementiert sein. Unterschiedliche Funktionen des mobilen Rechengeräts können in Hardware und/oder in Software implementiert sein, einschließlich einer oder mehreren Schaltungen für Signalverarbeitung und/oder anwendungsspezifischen integrierten Schaltungen.
  • Während die in 60 dargestellten Komponenten als separate Komponenten gezeigt sind, wird der Fachmann erkennen, dass zwei oder mehr Komponenten in einer oder mehreren integrierten Schaltungen zusammengefasst werden können. Außerdem können zwei oder mehr Komponenten durch ein oder mehrere Kommunikationsbusse oder Signalleitungen miteinander gekoppelt sein. Obwohl viele der Funktionen beschrieben wurden als würden sie durch eine Komponente ausgeführt, wird der Fachmann auch erkennen, dass die in Bezug auf 60 beschriebenen Funktionen in zwei oder mehr integrierte Schaltungen aufgespalten werden können.
  • B. Computersystem
  • 61 zeigt schematisch ein weiteres Beispiel eines elektronischen Systems 6100, mit dem einige Ausführungsformen der Erfindung implementiert sind. Das elektronische System 6100 kann ein Computer sein (zum Beispiel ein Desktop Computer, Personal Computer, Tablett Computer, usw.) ein Telefon, ein PDA oder eine andere Art von elektronischem Gerät oder Rechengerät. Ein derartiges elektronisches System enthält verschiedene Arten von computerlesbaren Medien und Schnittstellen für verschiedene andere Typen von computerlesbaren Medien. Das elektronische System 6100 enthält einen Bus 6105, Verarbeitungseinheiten 6110, eine Grafikverarbeitungseinheit (GPU) 6115, einen Systemspeicher 6120, ein Netzwerk 6125, einen Nur-Lese Speicher 6130, ein Permanentspeicher-Gerät 6135, Eingabegeräte 6140 und Ausgabegeräte 6145.
  • Der Bus 6105 steht kollektiv für alle System-, Peripherie- und Chipsatz-Busse, die die verschiedenen internen Geräte des elektronischen Systems 6100 kommunikativ miteinander verbinden.
  • Beispielsweise stellt der Bus 6105 Kommunikationsverbindungen her zwischen der/den Verarbeitungseinheit(en) 6110, dem Nur-Lese-Speicher 6130, der GPU 6110, dem Systemspeicher 6120 und dem permanenten Speichergerät 6135.
  • Von diesen verschiedenen Speichereinheiten liest die Verarbeitungseinheit(en) 6110 Instruktionen zur Ausführung und Daten zur Verarbeitung aus, um die Prozesse der Erfindung durchzuführen. Die Verarbeitungseinheit(en) kann ein einzelner Prozessor oder ein Mehrkern-Prozessor in verschiedenen Ausführungsformen sein. Einige Instruktionen werden an die GPU 6115 übergeben und dort ausgeführt. Die GPU 6115 kann verschiedene Berechnungen übernehmen oder die Bildverarbeitung ergänzen, die von der Verarbeitungseinheit(en) 6110 geleistet wird. In einigen Ausführungsformen kann eine derartige Funktionalität unter Verwendung der Kernel Shading Language von CoreImage durchgeführt werden.
  • Der Nur-Lese-Speicher (ROM) 6130 speichert statische Daten und Instruktionen, die von der Verarbeitungseinheit(en) 6110 und anderen Modulen des elektronischen Systems benötigt werden. Das Permanent-Speichergerät 6135 ist andererseits ein Lese- und Schreibspeicher. Dieses Gerät ist eine nicht-flüchtige Speichereinheit, die Instruktionen und Daten speichert, selbst wenn das elektronische System 6100 ausgeschaltet ist. Einige Ausführungsformen der Erfindung verwenden Massenspeichergeräte (zum Beispiel magnetische oder optische Platten und ihre entsprechenden Laufwerke, integrierte Flashspeicher) als die permanenten Speichergeräte 6135.
  • Andere Ausführungsformen verwenden austauschbare Speicherelemente (beispielsweise Floppy Disk, Flashspeicher usw. und die entsprechenden Lesegeräte) als Permanentspeicher. Wie das Permanentspeichergerät 6135 ist der Systemspeicher 6120 ein Lese-/Schreibspeicher. Anders als jedoch das Speichergerät 6135 ist der Systemspeicher 6120 ein flüchtiger Lese-/Schreibspeicher, wie beispielsweise ein Speicher mit wahlfreiem Zugriff. Der Systemspeicher 6120 speichert einige der Instruktionen und Daten, die der Prozessor während der Laufzeit benötigt. In einigen Ausführungsformen können die Prozesse der Erfindung im Systemspeicher 6120 gespeichert sein, dem Permanentspeicher 6135 und dem Nur-Lese-Speicher 6130. Beispielsweise können die verschiedenen Speichereinheiten Instruktionen enthalten zur Verarbeitung von Multimediaclips gemäß einigen Ausführungsformen. Von diesen verschiedenen Speichereinheiten liest die Verarbeitungseinheit(en) 6110 Instruktionen zur Ausführung und Daten zur Verarbeitung aus, um die Prozesse einiger Ausführungsformen durchzuführen.
  • Der Bus 6105 stellt auch Verbindungen her zu Eingabe- und Ausgabegeräten 6140 und 6145. Die Eingabegeräte 6140 ermöglichen es dem Benutzer, Information zu übermitteln und Befehle auszuwählen für das elektronische System. Die Eingabegeräte 6140 umfassen alphanumerische Tastaturen und Zeigegeräte (auch als Cursorsteuergeräte bekannt), Kameras (zum Beispiel Webcams), Mikrofone oder ähnliche Geräte zum Empfangen von Sprachbefehlen usw. Die Ausgabegeräte 6145 zeigen Bilder an, die vom elektronischen System erzeugt werden oder geben sonstige Daten aus. Die Ausgabegeräte 6180 umfassen Drucker und Anzeigegeräte, wie beispielsweise Elektronenstrahlröhren (CRT) oder Flüssigkristallanzeigen (LCD) ebenso wie Lautsprecher oder ähnliche Audioausgabegeräte. Einige Ausführungsformen enthalten Geräte wie beispielsweise einen berührungsempfindlichen Bildschirm, die sowohl als Eingabe- als auch als Ausgabegeräte dienen.
  • Schließlich wie in 61 gezeigt, verbindet der Bus 6105 auch das elektronische System 6100 mit einem Netzwerk 6125 über einen (nicht dargestellten) Netzwerkadapter. Auf diese Weise kann der Computer ein Teil eines Netzwerks von Computern werden (beispielsweise ein lokales Bereichsnetzwerk (LAN), ein Weitbereichsnetzwerk (WAM) oder ein Internet), oder ein Netzwerk von Netzwerken, wie beispielsweise das Internet. Einige oder alle Komponenten des elektronischen Systems 6100 können im Zusammenhang mit der Erfindung benutzt sein.
  • Einige Ausführungsformen enthalten elektronische Komponenten, wie beispielsweise Mikroprozessoren, Speicher, die Computerprogramm-Instruktionen in einem maschinenlesbaren oder computerlesbaren Medium speichern (alternativ bezeichnet als computerlesbare Speichermedien, maschinenlesbare Medien oder Maschinenlesbare Speichermedien). Einige Beispiele derartiger computerlesbaren Medien enthalten RAM, ROM, Nur-Lese-Platten (CD-ROM), beschreibbare Platten (CD-R), wiederbeschreibbare Platten (CD-RW), Nur-lesbare digitale Platten (zum Beispiel DVD-ROM, Zwei Schichten DVD-ROM), eine Vielzahl von beschreibbaren und wiederbeschreibbaren DVDs (zum Beispiel DVD-RAM, DVD-RW, DVD+RW, usw.,), Flashspeicher (zum Beispiel SD Karten, Mini SD Karten, Micro SD Karten, usw.) magnetische und/oder Festkörper-Platten, Nur-Lese- und beschreibbare BlueRay-Platten, ultradichte optische Platten, und andere optische oder magnetische Medien und Floppy Disks. Die computerlesbaren Medien können ein Computerprogramm speichern, das durch mindestens eine Verarbeitungseinheit(en) ausführbar ist und enthalten Sätze von Instruktionen zur Durchführung verschiedener Operationen. Beispiele von Computerprogrammen oder Computercode enthalten Maschinencode, wie er beispielsweise durch einen Compiler erzeugt wird, und Dateien mit Code in höheren Programmiersprachen, der durch einen Computer ausgeführt wird, eine elektronische Komponente oder einen Mikroprozessor unter Verwendung eines Interpreters.
  • Während die obige Diskussion sich hauptsächlich auf Mikroprozessoren und Mehrkernprozessoren bezieht, die Software ausführen, werden einige Ausführungsformen durch eine oder mehrere integrierte Schaltungen durchgeführt, wie beispielsweise anwendungsspezifische integrierte Schaltungen (ASIC) oder feldprogrammierbare Matrizen (FPGAs). In einigen Ausführungsformen führen derartige integrierte Schaltkreise Instruktionen aus, die auf dem Schaltkreis selbst gespeichert sind. Zusätzlich können einige Ausführungsformen Software ausführen, die in programmierbaren logischen Geräten gespeichert ist (PLD's), ROM oder RAM Geräten.
  • Entsprechend der Verwendung in dieser Beschreibung und den Ansprüchen dieser Anmeldung beziehen sich die Ausdrücke „Computer”, ”Server”, „Prozessor” und „Speicher” alle auf elektronischen oder andere technologischen Geräte. Diese Ausdrücke schließen Menschen oder Gruppen von Menschen aus. Für die Zwecke dieser Beschreibung bedeuten der Ausdrucke „anzeigen” das Anzeigen auf einem elektronischen Gerät. Entsprechend der Verwendung dieser Beschreibung und den Ansprüchen dieser Anmeldung sind die Ausdrücke „computerlesbares Medium”, „computerlesbare Medien” und „maschinenlesbares Medium” ausschließlich beschränkt auf physikalische Objekte, die Information in tangibler Form speichern und durch einen Computer lesbar sind. Diese Ausdrücke schließen alle drahtlosen Signale, Signale die über Draht heruntergeladen werden und alle anderen ephemeren Signale aus.
  • VI. Kartendienst Umgebung
  • Verschiedene Ausführungsformen können innerhalb einer Betriebsumgebung eines Kartendienstes arbeiten. 62 illustriert eine Betriebsumgebung mit einem Kartendienst entsprechend einigen Ausführungsformen. Ein Kartendienst 6230 (der auch als Abbildungsdienst bezeichnet wird) kann Kartendienste für eine oder mehrere Clientgeräte 6202a6202c zur Verfügung stellen, die mit dem Kartendienst 6230 über verschiedene Kommunikationsverfahren und Protokolle verbunden sind. Ein Kartendienst 6032 liefert in einigen Ausführungsformen Karteninformation und andere kartenbezogene Daten, beispielsweise ein zweidimensionale Kartenbild-Daten (zum Beispiel Luftbilder von Straßen unter Verwendung von Satellitenbildern), dreidimensionale Kartenbild-Daten (zum Beispiel durchschreitbare Karte mit dreidimensionalen Merkmalen, beispielsweise Gebäuden), Berechnungen von Routen und Richtungen (zum Beispiel Fährrouten-Berechnungen oder Navigationsanwendungen zwischen zwei Punkten für Fußgänger), Echtzeitnavigationsdaten (zum Beispiel visuelle Punkt-zu-Punkt Navigationsdaten in zwei oder drei Dimensionen), Ortsdaten (zum Beispiel wo sich ein Clientgerät gegenwärtig aufhält) und andere geographischen Daten (zum Beispiel die Abdeckung durch Drahtlos-Netzwerke, Wetter, Verkehrsinformation oder nahe gelegene Punkte von Interesse). In verschiedenen Ausführungsformen können die Kartendienstdaten enthalten lokalisierte Bezeichnungen für unterschiedliche Länder. Lokalisierte Bezeichnungen können verwendet werden, um Kartenbezeichnungen (zum Beispiel Straßennamen, Städtenamen, Punkte von Interesse) in unterschiedlichen Sprachen auf den Clientgeräten anzuzeigen.
  • Clientgeräte 6202a bis 6202c können diese Karten verwenden, indem sie die Kartendienst-Daten erhalten. Die Clientgeräte 6202a6202c können verschiedene Techniken implementieren, um Kartendienstdaten zu verarbeiten. Clientgeräte 6202a6202c können dann Kartendienstdaten an verschiedene Einheiten abgeben, einschließlich, aber nicht beschränkt auf, Benutzer, interne Software- oder Hardwaremodule und/oder andere Systeme oder Geräte die extern zu den Clientgeräten 6202a6202c sind.
  • In einigen Ausführungsformen ist ein Kartendienst implementiert durch einen oder mehrere Knoten in einem verteilten Computersystem. Jeder Knoten kann einem oder mehreren Diensten oder Komponenten des Kartendienstes zugeordnet werden. Einige Knoten können dem gleichen Kartendienst oder Komponenten eines Kartendienstes zugeordnet sein. Ein Knoten zum Lastausgleich verteilt in einigen Ausführungsformen Zugriffe oder Anforderungen an andere Knoten innerhalb eines Kartendienstes. In einigen Ausführungsformen ist ein Kartendienst als ein einzelnes System, beispielsweise ein einzelner Server implementiert. Unterschiedliche Module oder Geräte innerhalb eines Servers können einen oder mehrere der verschiedenen Dienste implementieren, die von einem Kartendienst geleistet werden.
  • Ein Kartendienst liefert in einigen Ausführungsformen Kartendienste, indem Kartendienstdaten in verschiedenen Formaten erzeugt werden. In einigen Ausführungsformen ist ein Format von Kartendienstdaten die Kartenbilddaten. Kartenbilddaten liefern Bilddaten an ein Clientgerät, so dass das Clientgerät die Bilddaten verarbeiten kann (zum Beispiel Rendern und/oder Anzeigen der Bilddaten als eine zweidimensionale oder dreidimensionale Karte). Kartenbilddaten, unabhängig davon ob in zwei oder drei Dimensionen, können eine oder mehrere Kartenkacheln spezifizieren. Eine Kartenkachel kann ein Teil eines größeren Kartenbildes sein. Durch Zusammensetzen der Kartenkacheln einer Karte kann die ursprüngliche Karte erzeugt werden. Kacheln können erzeugt werden von Kartenbilddaten, Routen- oder Navigationsdaten oder irgendwelchen anderen Kartenbilddaten. In einigen Ausführungsformen sind Kartenkacheln rasterbasierte Kartenkacheln, wobei die Größe der Kacheln sowohl kleiner als auch größer sein kann als die üblicherweise verwendeten Kacheln mit 256 Pixel×256 Pixel. Rasterbasierte Kartenkacheln können in irgendeiner der Standard Digitalbild-Darstellungen codiert sein, einschließlich, aber nicht beschränkt auf, Bitmap (.bmp), Graphics Interchange Format (.gif), Joint Photographic Experts Group (.jpg, .jpeg, usw.), Portable Networkd Graphics (.png), oder Tagged Image File Format (.tiff). In einigen Ausführungsformen können Kartenkacheln vektorbasierte Kartenkacheln sein, codiert unter Verwendung von Vektorgrafik einschließlich, aber nicht beschränkt auf, Scalable Vector Graphics, (.svg), oder Drawing File (.drw). Einige Ausführungsformen können auch Kacheln enthalten mit einer Kombination von Vektor- und Rasterdaten. Metadaten oder andere Informationen, die sich auf die Kartenkacheln beziehen, können auch innerhalb oder zusammen mit einer Kartenkachel vorhanden sein, um so weitere Kartendienstdaten an ein Clientgerät zu liefern. In verschiedenen Ausführungsformen kann eine Kartenkachel für den Transport codiert werden unter Verwendung verschiedener Standards und/oder Protokolle, von denen einige im Beispiel unten beschrieben werden.
  • In verschiedenen Ausführungsformen können Kartenkacheln konstruiert werden aus Bilddaten unterschiedlicher Auflösung, abhängig von einer Zoomstufe. Beispielsweise braucht für geringe Zoomstufe (zum Beispiel Welt- oder Globalansicht) die Auflösung einer Karte oder der Bilddaten nicht so hoch zu sein wie die Auflösung bei einer hohen Zoomstufe (Stadt oder Straßenstufe). Beispielsweise kann es bei der globalen Ansicht nicht nötig sein, Artefakte auf Straßenniveau zu rendern, da derartige Objekte so klein wären, dass sie in vielen Fällen vernachlässigt werden können.
  • In einigen Ausführungsformen führt ein Kartendienst verschiedene Techniken durch, um eine Kartenkachel zu analysieren, bevor die Kachel für den Transport codiert wird. Diese Analyse kann die Leistung des Kartendienstes sowohl für Clientgeräte als auch einen Kartendienst optimieren. In einigen Ausführungsformen werden Kartenkacheln bezüglich ihrer Komplexität analysiert, gemäß vektorbasierten Grafiktechniken und konstruiert unter Verwendung von komplexen und nicht komplexen Schichten. Kartenkacheln können auch in Bezug auf gemeinsame Bilddaten oder Muster analysiert werden, die als Bildtexturen gerendert und konstruiert werden können, in dem auf Bildmasken zurückgegriffen wird. In einigen Ausführungsformen enthalten rasterbasierte Bilddaten in einer Kartenkachel gewisse Maskenwerte, die zu einer oder mehreren Texturen gehören. Einige Ausführungsformen analysieren auch Kartenkacheln in Bezug auf bestimmte Merkmale, die zu gewissen Kartenstilen gehören, die Stil-Identifizierer enthalten.
  • Andere Kartendienste erzeugen Kartendienstdaten und verwenden dazu in einigen Ausführungsformen verschiedene Datenformate, getrennt von einer Kartenkachel. Beispielsweise können Kartendienste Ortsdaten zur Verfügung stellen, die Datenformate verwenden entsprechend Ortsdienst-Protokollen, beispielsweise, aber nicht beschränkt auf, Radio Resource Location services Protocol (RRLP), TIA 801 für Code Division Multiplex (CDMA), Radio Resource Control (RRC) position control oder LTE Positioning Protocol (LLP). Ausführungsformen können auch Daten empfangen oder anfordern von Clientgeräten, die die Fähigkeiten oder Attribute des Geräts identifizieren (zum Beispiel Hardwarespezifikationen oder die Version des Betriebssystems) oder die Kommunikationsfähigkeiten (zum Beispiel die Kommunikationsbandbreite des Geräts entsprechend der Stärke des drahtlosen Signals oder des drahtgebundenen oder drahtlosen Netzwerks).
  • Ein Kartendienst kann Kartendienstdaten von internen oder externen Quellen beziehen. Beispielsweise können Satellitenbilder, die in Kartenbilddaten verwendet werden, bezogen werden von externen Diensten oder internen Systemen, Speichergeräten oder Knoten. Andere Beispiele können enthalten, sind aber nicht beschränkt auf, GPS Assistenz Server, Datenbanken mit der Abdeckung durch Drahtlos-Netzwerke, Personen- oder Geschäftsverzeichnisse, Wetterdaten, Regierungsinformation (zum Beispiel Aktualisierungen von Bauarbeiten oder Änderung von Straßennamen) oder Verkehrsberichten. Einige Ausführungsformen eines Kartendienstes können die Kartendienstdaten aktualisieren (zum Beispiel die Abdeckung durch eine drahtloses Netzwerk), um zukünftige Anforderungen von Clientgeräten zu analysieren.
  • Verschiedene Ausführungsformen eines Kartendienstes können auf Anforderungen eines Clientgeräts von Kartendiensten reagieren. Diese Anforderungen können sich auf eine spezifische Karte oder Teile einer Karte beziehen. Einige Ausführungsformen formatieren die Anforderungen einer Karte als Anforderungen gewisser Kartenkacheln. In einigen Ausführungsformen können die Anforderungen dem Kartendienst auch Startpunkte (oder den aktuellen Ort) und Zielpunkte für eine Routenberechnung liefern. Ein Clientgerät kann auch Rendering-Information vom Kartendienst anfordern, beispielsweise Kartentexturen oder Stylesheets. In mindestens einigen Ausführungsformen können Anforderungen auch eine Reihe von Anforderungen enthalten, die eine Punkt-zu-Punkt Navigation implementieren. Anforderungen nach anderen geographischen Daten können enthalten, sind aber nicht beschränkt auf, Anforderungen nach der aktuellen Position, die Abdeckung durch Drahtlos-Netzwerke, Wetter, Verkehrsinformation oder nahe gelegene Punkte von Interesse.
  • In einigen Ausführungsformen analysiert ein Kartendienst Anforderungen von Clientgeräten, um die Operation des Geräts oder des Kartendienstes optimieren. Beispielsweise kann ein Kartendienst erkennen, dass der Ort eines Clientgeräts in einem Gebiet mit schlechten Kommunikationsverbindungen ist (zum Beispiel ein schwaches drahtloses Signal) und mehr Kartendaten schicken, um ein Clientgerät für den Fall des Kommunikationsverlustes mit Daten zu versorgen oder Instruktionen senden, um unterschiedliche Client Hardware zu benutzen (zum Beispiel Orientierungssensor) oder Software (verwende Drahtloslokationsdienste oder Wi-Fi Positionierung statt der GPS-basierten Dienste). In einem anderen Beispiel kann ein Kartendienst eine Anforderung des Clientgeräts in Bezug auf vektorbasierte Bild Kartenbilddaten analysieren und feststellen, dass rasterbasierte Kartendaten die Kartenbilddaten besser optimieren aufgrund der Komplexität des Bildes. Ausführungsformen anderer Kartendienste können ähnliche Analysen von Anforderungen der Clientgeräte durchführen, so dass die oben genannten Beispiele nicht als beschränkend aufzufassen sind.
  • Verschiedene Ausführungsformen von Clientgeräten (zum Beispiel Clientgeräte 6202a bis 6202c) sind implementiert auf unterschiedlichen tragbaren Typen von Multifunktionsgeräten. Clientgeräte 6202a6202c verwenden Kartendienste 6230 über verschiedene Kommunikationsverfahren und Protokolle. In einigen Ausführungsformen können Clientgeräte 6202a6202c Kartendienstdaten erhalten vom Kartendienst 6230. Clientgeräte 6202a6202c fordern Kartendienstdaten an oder empfangen sie. Clientgeräte 6202a6202c verarbeiten dann die Kartendienstdaten (zum Beispiel Rendern und/oder Anzeigen die Daten) und können die Daten zu einem anderen Software- oder Hardware-Modulen auf dem Gerät schicken oder zu einem externen Gerät oder System.
  • Ein Clientgerät implementiert gemäß einiger Ausführungsformen Techniken, um Karten zu rendern und/oder anzuzeigen. Diese Karten können in verschiedenen Formaten angefordert oder empfangen werden, beispielsweise als die oben beschriebenen Kartenkacheln. Ein Clientgerät kann eine Karte in zweidimensionaler oder dreidimensionaler Ansicht rendern. Einige Ausführungsformen eines Clientgeräts zeigen eine gerenderte Karte an und erlauben es einem Benutzer, System oder Gerät Eingaben zu liefern, um eine virtuelle Kamera in der Karte zu manipulieren und dadurch die Anzeige-Karte gemäß der Position der virtuellen Kamera, ihrer Orientation und ihres Blickwinkels zu ändern. Verschiedene Formen und Eingabegeräte können implementiert werden, um eine virtuelle Kamera zu manipulieren. In einigen Ausführungsformen manipuliert eine Berührungseingabe, durch bestimmte einzelne Gesten oder Kombinationsgesten (zum Beispiel berühren und halten oder ein Wischen) die virtuelle Kamera. Andere Ausführungsformen erlauben die Manipulation des physikalischen Orts des Geräts, um eine virtuelle Kamera zu manipulieren. Beispielsweise kann ein Clientgerät von seiner aktuellen Position geneigt werden, um die virtuelle Kamera nach oben zu drehen. In einem anderen Beispiel kann ein Clientgerät von seiner aktuellen Position nach vorne geneigt werden, um die virtuelle Kamera nach vorne zu bewegen. Andere Eingabegeräte für das Clientgerät können auch implementiert sein, einschließlich, aber nicht beschränkt auf, hörbare Eingabe (zum Beispiel gesprochene Wörter) eine physikalische Tastatur, Maus und/oder ein Joystick.
  • Einige Ausführungsformen stellen verschiedene visuelle Rückmeldungen zur Manipulation der virtuellen Kamera zur Verfügung, beispielsweise durch Anzeige einer Animation möglicher Manipulationen der virtuellen Kamera, wenn von einer zweidimensionalen Kartenansicht zu einer dreidimensionalen Kartenansicht übergegangen wird. Einige Ausführungsformen erlauben auch eine Eingabe, um ein Kartenmerkmal oder ein Objekt auszuwählen (zum Beispiel ein Gebäude) und das Objekt hervorzuheben, um damit einen Unschärfeeffekt zu erzeugen, der die Wahrnehmung des dreidimensionalen Raums durch die aktuelle Kamera beibehält.
  • In einigen Ausführungsformen implementiert ein Clientgerät ein Navigationssystem (zum Beispiel eine Punkt-zu-Punkt Navigation). Ein Navigationssystem liefert Navigationsanweisungen oder Routeninformation, die einem Benutzer angezeigt werden können. Einige Ausführungsformen eines Clientgeräts fordern Navigationsanweisungen oder eine Routenberechnung von einem Kartendienst an. Ein Clientgerät kann Kartenbilddaten und Routendaten von einem Kartendienst erhalten. In einigen Ausführungsformen implementiert ein Clientgerät ein Punkt-zu-Punkt Navigationssystem, das in Echtzeit Routen- und Navigationsanweisungen zur Verfügung stellt, basierend auf der Ortsinformation und der Routeninformation, die von einem Kartendienst und/oder anderen Lokalisationssystemen erhalten werden, beispielsweise Global Positioning System (GPS). Ein Clientgerät kann Kartenbilddaten anzeigen, die den aktuellen Ort des Clientgeräts reflektieren und die Kartenbilddaten in Echtzeit aktualisieren. Ein Navigationssystem kann hörbare oder visuelle Navigationsanweisungen ausgeben, um einer gewissen Route zu folgen
  • Eine virtuelle Kamera ist implementiert, um Navigationskartendaten zu manipulieren gemäß einigen Ausführungsformen. Einige Ausführungsformen erlauben es dem Clientgerät, die Orientierung der Anzeige der virtuellen Kamera auf die Straßen Richtung anzupassen. Einige Ausführungsformen erlauben es der virtuellen Kamera auch, einer Abbiegung zu folgen, indem die Trägheitsbewegung der virtuellen Kamera simuliert wird.
  • Clientgeräte implementieren verschiedene Techniken, um Kartendienstdaten von einem Kartendienst zu benutzen. Einige Ausführungsformen verwenden einige Techniken, um das Rendern von zweidimensionalen und dreidimensionalen Kartenbild-Daten zu optimieren. In einigen Ausführungsformen speichert ein Clientgerät lokal die Rendering-Information. Beispielsweise speichert ein Client ein Stylesheet, das Rendering-Anweisungen für Bilddaten liefert, die Stil-Identifizierer enthalten. In einem anderen Beispiel können gemeinsame Bildtexturen gespeichert werden, um die Menge von Kartenbilddaten zu reduzieren, die von einem Kartendienst übertragen werden. Clientgeräte verschiedener Ausführungsformen implementieren unterschiedliche Modellierungstechniken, um zweidimensionale und dreidimensionale Kartenbilddaten zu rendern. Beispiele dafür enthalten, sind aber nicht beschränkt auf: erzeugen dreidimensionaler Gebäude aus zweidimensionalen Grundrissdaten; modellieren zweidimensionaler und dreidimensionaler Kartenobjekte, um die Kommunikationsumgebung des Clientgeräts zu bestimmen; erzeugen von Modellen, um festzustellen, ob Kartenbeschriftungen von einer bestimmten Position der virtuellen Kamera gesehen werden; und erzeugen von Modellen, um Übergänge zwischen den Kartenbilddaten zu glätten. In einigen Ausführungsformen ordnen oder priorisieren die Clientgeräte Kartendienstdaten in bestimmten Techniken. Beispielsweise stellt ein Clientgerät eine Bewegung oder eine Geschwindigkeit einer virtuellen Kamera fest, um Bilddaten für gewisse Gebiete mit geringeren Details zu laden und zu rendern, wenn gewisse Schwellenwerte überschritten sind. Andere Beispiele enthalten: Rendern von vektorbasierten Kurven als eine Reihe von Punkten, Vorausladen von Kartenbilddaten für Gebiete geringer Kommunikation mit einem Kartendienst, Adaptieren von Texturen basierend auf der Zoomstufe der Anzeige oder rendern von Kartenbilddaten entsprechend ihrer Komplexität.
  • In einigen Ausführungsformen kommunizieren Clientgeräte unter Verwendung verschiedener Datenformate getrennt von einer Kartenkachel. Beispielsweise implementieren einige Clientgeräte Assisted Global Positioning System (A-GPS) und kommunizieren mit Ortsdiensten, die Datenformate verwenden entsprechend Ortsdienst-Protokollen wie beispielsweise, aber nicht beschränkt auf, Radio Resource Location services (RRLP), TIA 801 für Code Division Multiplex Access (CDMA). Radio Resource Control (RRC) position protocol, oder LTE Positioning Control (LPP). Ausführungsformen können auch Daten senden, mit oder ohne Aufforderung durch einen Kartendienst, die die Fähigkeiten eines Clientgeräts oder dessen Attribute identifizieren (zum Beispiel Hardwarespezifikationen oder die Version des Betriebssystems) oder die Kommunikationsfähigkeiten (zum Beispiel die Kommunikationsbandbreite entsprechend der Stärke des drahtlosen Signals oder des Typs des drahtlosen oder drahtgebundenen Netzwerks).
  • 62 veranschaulicht eine mögliche Ausführungsform einer Betriebsumgebung 6200 für einen Kartendienst 6230 und Clientgeräte 6202a6202c. In einigen Ausführungsformen kommunizieren die Geräte 6202a, 6202b und 6202c über eine oder mehrere drahtgebundene oder Drahtlos-Netzwerke 6210. Beispielsweise kann ein Drahtlos-Netzwerk 6210, beispielsweise ein Mobilfunk-Netzwerk kommunizieren mit einem Weitbereichsnetzwerk (WAN) 6220, beispielsweise dem Internet, unter Verwendung eines Gateways 6214. Ein Gateway 6214 stellt in einigen Ausführungsformen einen paketorientierten mobilen Datendienst zur Verfügung, beispielsweise General Packet Radio Service (GPRS) oder einen anderen mobilen Datendienst, der es Drahtlos-Netzwerken erlaubt, Daten an andere Netzwerke zu übertragen, beispielsweise ein Weitbereichsnetzwerk 6220. In ähnlicher Weise kann Zugriffsgerät 6212 (zum Beispiel die IEEE 802.11g Drahtloszugangsgerät) Kommunikationszugang zu WAN 6220 liefern. Die Geräte 6202a und 6202b können beliebige tragbare elektronische oder Computergeräte sein, die in der Lage sind, mit einem Kartendienst zu kommunizieren. Gerät 6202c kann irgendein nicht-tragbares elektronisches oder Computergerät sein, das in der Lage ist, mit einem Kartendienst zu kommunizieren.
  • In einigen Ausführungsformen werden sowohl Sprach- als auch Datenkommunikation über ein Drahtlos-Netzwerk 6210 und das Zugangsgerät 6212 vermittelt. Beispielsweise kann Gerät 6202a Telefonanrufe absetzen und empfangen (zum Beispiel unter Verwendung von Voice Over Internet Protokoll (VoIP)), E-Mail Nachrichten senden und empfangen (zum Beispiel unter Verwendung von Simple Mail Transfer Protocol (SMTP) oder Post Office Protokoll 3 (POP)) und elektronische Dokumente und/oder Streams abrufen, wie beispielsweise Webseiten, Fotografieren und Videos über das Drahtlos-Netzwerk 6210, Gateway 6214 und WAN 6220 (zum Beispiel unter Verwendung von Transmission Control Protokoll (TCP/IP) oder User Datagram Protocol (UDP)). In ähnlicher Weise können die Geräte 6202b und 6202c in einigen Ausführungsformen Telefonanrufe absetzen und empfangen, E-Mail Nachrichten senden und empfangen, und elektronische Dokumente über Zugriffsgerät 6212 und WAN 6220 abrufen. In einigen Ausführungsformen kann irgendeines der oben illustrierten Clientgeräte mit einem Kartendienst 6230 und/oder anderen Diensten 6250 kommunizieren unter Verwendung einer dauernden Verbindung, die gemäß einem oder mehreren Sicherheitsprotokollen aufgebaut ist, beispielsweise dem Secure Socket Layer (SSL) Protokoll oder dem Transport Layer Security (TLS) Protokoll.
  • Geräte 6202a und 6202b können Kommunikation auch auf anderem Wege einrichten, beispielsweise kann Drahtlosgerät 6202a mit anderen drahtlosen Geräten kommunizieren (zum Beispiel anderen Geräten 6202b, Mobiltelefonen, usw.) über das Drahtlos-Netzwerk 6210. In ähnlicher Weise können Geräte 6202a und 6202b eine peer-to-peer Kommunikation 6240 aufbauen (zum Beispiel ein Personenbereichsnetzwerk) unter Verwendung eines oder mehrerer Kommunikationsuntersysteme, beispielsweise Bluetooth Kommunikation von Bluetooth Special Interest Group, Inc. von Kirkland, Washington. Gerät 6202c kann auch eine (nicht gezeichnete) peer-to-peer Kommunikation mit Geräten 6202a oder 6202b aufbauen. Andere Kommunikationsprotokolle und Topologien können auch implementiert werden. Geräte 6202a und 6202b können auch GPS Signale von GPS Satelliten 6260 empfangen.
  • Geräte 6202a, 6202b und 6202c können mit dem Kartendienst 6230 über eines oder mehrere drahtgebundene und/oder Drahtlos-Netzwerke 6212 oder 6210 kommunizieren. Beispielsweise kann Kartendienst 6230 Kartendienstdaten liefern an die Rendering-Geräte 6202a, 6202b und 6202c. Kartendienst 6230 kann auch mit anderen Diensten 6250 kommunizieren und Daten zu erhalten, die Kartendienste implementieren. Kartendienst 6230 und andere Dienste 6250 können auch GPS Signale von GPS Satelliten 6260 erhalten.
  • In verschiedenen Ausführungsformen sind der Kartendienst 6230 und/oder andere Dienste 6250 konfiguriert, um Suchanfragen von einem der Clientgeräte zu verarbeiten. Suchanforderungen können enthalten, sind aber nicht beschränkt auf, Anfragen nach Geschäften, Adressen, Wohnorten, Punkten von Interesse, oder eine Kombination davon. Kartendienst 6230 und/oder andere Dienste 6250 können konfiguriert werden, um Ergebnisse zurückzugeben, die sich auf eine Vielzahl von Parametern beziehen, einschließlich, aber nicht beschränkt auf, einen Ort, der in eine Adresszeile oder eine anderes Texteingabefeld eingegeben wird (einschließlich Abkürzungen und/oder Kurznotation), eine aktuelle Kartenansicht (zum Beispiel kann der Benutzer einen Ort auf dem Multifunktionsgerät betrachten, während er sich an einen anderen Ort aufhält), der aktuelle Ort des Benutzers (zum Beispiel in Fällen, wenn die aktuelle Kartenansicht die Suchresultate nicht enthält) und die aktuelle Route (wenn überhaupt). In verschiedenen Ausführungsformen können diese Parameter die Zusammensetzung der Suchergebnisse beeinflussen (und/oder das Ordnen der Suchergebnisse), basierend auf verschiedenen unterschiedlichen Prioritätsgewichtungen. In verschiedenen Ausführungsformen können die Suchergebnisse, die zurückgegeben werden, eine Untermenge der Ergebnisse darstellen, die entsprechend spezifischen Kriterien ausgewählt wurden, einschließlich, aber nicht beschränkt auf, wie oft die Suchresultate angefordert wurden (zum Beispiel ein besonderer Punkt von Interesse), ein Maß der Qualität, das mit dem Suchresultat verbunden ist (höchste Bewertung durch Benutzer oder Zeitungsbesprechungen) und/oder den Umfang der Besprechungen für die Suchresultate (zum Beispiel, wie oft das Suchresultat besprochen oder bewertet wurde).
  • In verschiedenen Ausführungsformen sind der Kartendienst 6230 und/oder andere Dienste 6250 konfiguriert, um selbst-ergänzende Suchresultate zu liefern, die auf dem Clientgerät angezeigt werden, beispielsweise innerhalb einer Kartenanwendung. Zum Beispiel können selbst-ergänzende Suchresultate einen Teil des Bildschirms füllen, wenn der Benutzer eines oder mehrere Suchschlüsselworte in das Multifunktionsgerät eingibt. In einigen Fällen kann dieses Merkmal dem Benutzer Zeit sparen, da das gewünschte Suchresultat angezeigt werden kann, bevor der Benutzer die volle Suchanfrage eingibt. In verschiedenen Ausführungsformen können selbst-ergänzende Suchresultate solche sein, die vom Klienten auf dem Gerät gefunden werden (zum Beispiel Lesezeichen oder Kontakte), Suchresultate, die anderswo gefunden werden (zum Beispiel vom Kartendienst 6130 und/oder anderen Dienste 6250 und/oder eine Kombination davon). Wie im Fall von Befehlen, können irgendwelche der Suchanfragen von einem Benutzer über Sprache oder durch Eintippen eingegeben werden. Das Multifunktionsgerät kann konfiguriert sein, um die Suchresultate grafisch innerhalb der Kartenanzeige ausgeben, die hier beschrieben ist. Beispielsweise kann eine Nadel oder ein anderer grafischer Indikator die Orte von Suchresultaten als Punkte von Interesse spezifizieren. In verschiedenen Ausführungsformen ist das Multifunktionsgerät so konfiguriert, dass als Antwort auf die Auswahl des Benutzers einer dieser Punkte von Interesse (zum Beispiel durch Berührung, Tippen) zusätzlich Information über den ausgewählten Punkt angezeigt wir, einschließlich, aber nicht beschränkt auf, Bewertungen, Besprechungen oder Besprechungsausschnitte, Öffnungszeiten, Status des Geschäftes (geöffnet, dauernd geschlossen usw.) und/oder Bilder einer Gebäudefront des Punktes von Interesse. In verschiedenen Ausführungsformen kann irgendeine dieser Informationen auf einer grafischen Informationskarte angezeigt werden, die als Antwort auf die Auswahl des Benutzers des Punktes von Interesse angezeigt wird.
  • In verschiedenen Ausführungsformen liefert der Kartendienst 6230 und/oder andere Dienste 6250 einen oder mehreren Rückmeldemechanismen, um Rückmeldungen von den Clientgeräten 6202a6202c zu empfangen. Beispielsweise können Clientgeräte Rückmeldungen über Suchresultate an den Kartendienst 6230 und/oder andere Dienste 6250 liefern (zum Beispiel Rückmeldungen zu Bewertungen, Besprechungen, temporären oder dauernden Öffnungszeiten, Fehler etc.); diese Rückmeldungen können verwendet werden, um Information über Punkte von Interesse zu aktualisieren und in Zukunft genauere oder aktuellere Suchresultate zur Verfügung zu stellen. In einigen Ausführungsformen kann der Kartendienst 6230 und/oder andere Dienste 6250 Testinformation an ein Clientgerät (zum Beispiel einen A/B Test) liefern, um festzustellen, welche Suchresultate die besten sind. Beispielsweise kann das Clientgerät in unregelmäßigen Abständen zwei Suchresultate empfangen und einem Benutzer anzeigen, um es dem Benutzer zu erlauben, das beste Resultat anzugeben. Das Clientgerät kann die Testresultate an den Kartendienst 6230 und/oder andere Dienste 6250 zurückmelden, um zukünftige Suchresultate zu verbessern, basierend auf der ausgewählten Testtechnik, beispielsweise einer A/B-Testtechnik, bei der ein Vergleichsmuster mit einer Vielzahl von Testfällen mit einer einzigen Variablen verglichen wird, um die Ergebnisse zu verbessern.
  • Obwohl die Erfindung mit Bezug auf zahlreiche spezifische Details beschrieben wurde, erkennt der Fachmann, dass die Erfindung in anderen spezifischen Formen verkörpert werden kann ohne vom Geist der Erfindung abzuweichen. Beispielsweise zeigen viele der Figuren verschiedene Berührungsgesten (zum Beispiel Tippen, Doppeltippen, Wischgesten, und Haltegesten). Jedoch können viele der illustrierten Operationen über andere Berührungsgesten durchgeführt werden (zum Beispiel Wischen statt Tippen, usw.) oder mit einer Eingabe, die nicht auf Berührung beruht (zum Beispiel Verwendung eines Zeigercontrollers, Tastatur, eines berührungsempfindlichen Feldes, eines Fast-Berührungsempfindlichen Schirms, usw.). Außerdem illustriert eine Reihe von Figuren die Prozesse in schematischer Weise. Die spezifischen Operationen dieser Prozesse brauchen nicht in genau der gleichen Reihenfolge durchgeführt zu werden, wie sie dargestellt und beschrieben ist. Die spezifischen Operationen brauchen auch nicht in ununterbrochener Folge durchgeführt werden. Andere spezifische Operationen können in unterschiedlichen Ausführungsformen durchgeführt werden. Außerdem könnte der Prozess implementiert werden unter Verwendung von verschiedenen Unterprozessen, oder als Teil eines größeren Prozesses.

Claims (68)

  1. Maschinenlesbares Medium, das ein Navigationsprogramm zur Ausführung durch mindestens eine Verarbeitungseinheit eines Geräts speichert, wobei das Programm Sätze von Instruktionen enthält zum: Identifizieren eines Orts des Geräts; Identifizieren eines Stils von Verkehrszeichen, die mit dem identifizierten Ort des Geräts zusammenhängen; Erzeugen von Navigationsinstruktionen in Form von Verkehrszeichen, die mit dem identifizierten Stil übereinstimmen.
  2. Maschinenlesbares Medium nach Anspruch 1, worin der Satz von Instruktionen zur Erzeugung von Navigationsinstruktionen Sätze von Instruktionen enthält zum: Identifizieren eines Verkehrszeichen-Musterbildes für den identifizierten Stil; für jede einer Vielzahl von Navigationsinstruktionen, Zusammensetzen des identifizierten Verkehrszeichenmusters mit mindestens einer von einer Textinstruktion und einer grafischen Instruktion, um eine zusammengesetzte Verkehrszeichen-Instruktion zu erzeugen.
  3. Maschinenlesbares Medium nach Anspruch 2, worin der Satz von Instruktionen zum Zusammensetzen einen Satz von Instruktionen enthält zur Erzeugung eines zusammengesetzten strukturierten Bildes, das eine Struktur und ein Aussehen aufweist, die mit den Verkehrszeichen am identifizierten Ort zusammenhängen.
  4. Maschinenlesbares Medium nach Anspruch 2, worin die Textinstruktion ein Fahrmanöver an einer Kreuzung längs einer navigierten Fahrtroute spezifiziert, während die grafische Instruktion einen Richtungsindikator enthält, der das Fahrmanöver an der Kreuzung durch ein Bild illustriert.
  5. Maschinenlesbares Medium nach Anspruch 1, worin das Programm weiter Sätze von Instruktionen enthält zum: Anzeigen eines bestimmten Verkehrszeichens mit einem ersten Aussehen während einer Zeitspanne; Modifizieren des Aussehens des bestimmten Verkehrszeichens nach der Zeitspanne, um Aufmerksamkeit auf das Verkehrszeichen zu lenken.
  6. Maschinenlesbares Medium nach Anspruch 5, worin der Satz von Instruktionen zum Modifizieren des Aussehens des Verkehrszeichens enthält einen Satz von Instruktionen zum Modifizieren des Aussehens des bestimmten Verkehrszeichens während einer weiteren Zeitspanne bevor zur Anzeige des bestimmten Verkehrszeichens mit dem ersten Aussehen zurückgekehrt wird.
  7. Maschinenlesbares Medium nach Anspruch 5, worin der Satz von Instruktionen zum Modifizieren des Aussehens des bestimmten Verkehrszeichens einen Satz von Instruktionen enthält zum Erzeugen eines Lichteffektes, der das bestimmte Verkehrszeichen ganz oder teilweise zum Leuchten bringt.
  8. Maschinenlesbares Medium nach Anspruch 7, worin der Satz von Instruktionen zum Erzeugung des Lichteffektes einen Satz von Instruktionen enthält zum Projizieren von Licht, das sich über das bestimmte Verkehrszeichen bewegt.
  9. Maschinenlesbares Medium nach Anspruch 7, worin der Lichteffekt eine Sequenz von zusammenhängenden Segmenten des bestimmten Verkehrszeichens erhellt, um einen Effekt einer Lichtquelle zu erzeugen, die sich über das bestimmte Verkehrszeichen erstreckt.
  10. Maschinenlesbares Medium, das ein Navigationsprogramm zur Ausführung durch mindestens eine Verarbeitungseinheit eines Geräts speichert, wobei das Programm Sätze von Instruktionen enthält zum: Identifizieren zweier aufeinanderfolgender Fahrmanöver, die längs einer navigierten Fahrtroute nahe beieinander liegen; gleichzeitiges Anzeigen zweier Verkehrszeichen, um die beiden Fahrmanöver zu beschreiben.
  11. Maschinenlesbares Medium nach Anspruch 10, worin der Satz von Instruktionen zum Anzeigen der beiden Verkehrszeichen Sätze von Instruktionen enthält zum: Erzeugen eines ersten Verkehrszeichens innerhalb dessen Navigationsinstruktionen für ein erstes Fahrmanöver platziert werden; Erzeugen eines zweiten Verkehrszeichens innerhalb dessen Navigationsinstruktionen für ein zweites Fahrmanöver platziert werden; gleichzeitiges Anzeigen des ersten und des zweiten Verkehrszeichens.
  12. Maschinenlesbares Medium nach Anspruch 11, worin alle Navigationsinstruktionen mindestens eine von einer Textinstruktion und einer grafischen Instruktion enthalten.
  13. Maschinenlesbares Medium nach Anspruch 11, worin das zweite Verkehrszeichen kleiner ist als das erste Verkehrszeichen.
  14. Maschinenlesbares Medium nach Anspruch 13, worin das Programm weiter Sätze von Instruktionen enthält zum: Entfernen des ersten Verkehrszeichens, nachdem das Gerät das Navigationsfahrmanöver passiert hat, das mit dem ersten Verkehrszeichen zusammenhängt; Ersetzen des zweiten Verkehrszeichens durch ein größeres drittes Verkehrszeichen, das das zweite Fahrmanöver beschreibt.
  15. Verfahren zum Erzeugen einer Navigationsansicht, wobei das Verfahren enthält: Identifizieren eines Orts des Geräts; Identifizieren eines Stils von Verkehrszeichen, die mit dem identifizierten Ort des Geräts zusammenhängen; Erzeugen von Navigationsinstruktionen in Form von Verkehrszeichen, die mit dem identifizierten Stil übereinstimmen.
  16. Verfahren nach Anspruch 15, worin das Erzeugen von Navigationsinstruktionen enthält: Identifizieren eines Verkehrszeichen-Musterbildes für den identifizierten Stil; für jede einer Vielzahl von Navigationsinstruktionen, Zusammensetzen des identifizierten Verkehrszeichenmusters mit mindestens einer von einer Textinstruktion und einer grafischen Instruktion, um eine zusammengesetzte Verkehrszeichen-Instruktion zu erzeugen.
  17. Verfahren nach Anspruch 16, worin das Zusammensetzen enthält das Erzeugen eines zusammengesetzten strukturierten Bildes, das eine Struktur und ein Aussehen aufweist, die mit den Verkehrszeichen am identifizierten Ort zusammenhängen.
  18. Verfahren nach Anspruch 15, weiter enthaltend: Anzeigen eines bestimmten Verkehrszeichens mit einem ersten Aussehen während einer Zeitspanne; und Modifizieren des Aussehens des bestimmten Verkehrszeichens nach der Zeitspanne, um Aufmerksamkeit auf das Verkehrszeichen zu lenken.
  19. Verfahren nach Anspruch 15, worin das Modifizieren des Aussehens des Verkehrszeichens umfasst das Modifizieren des Aussehens des bestimmten Verkehrszeichens während einer weiteren Zeitspanne bevor zur Anzeige des bestimmten Verkehrszeichens mit dem ersten Aussehen zurückgekehrt wird.
  20. Verfahren nach Anspruch 15, worin das Modifizieren des Aussehens des bestimmten Verkehrszeichens umfasst das Erzeugen eines Lichteffektes, der das bestimmte Verkehrszeichen ganz oder teilweise zum Leuchten bringt.
  21. Maschinenlesbares Medium, das ein Navigationsprogramm zur Ausführung durch mindestens eine Verarbeitungseinheit eines Geräts speichert, wobei das Gerät einen berührungsempfindlichen Bildschirm und eine Schnittstelle für Berührungseingaben umfasst, wobei das Programm Sätze von Instruktionen enthält zum: Erzeugen und Anzeigen einer zweidimensionalen (2D) Navigationsansicht; Erzeugen und Anzeigen einer dreidimensionalen (3D) Navigationsansicht; und Anzeigen einer 3-D Steuerung, um von der 2D Navigationsansicht zur 3D Navigationsansicht überzugehen.
  22. Maschinenlesbares Medium nach Anspruch 21, worin das Programm weiter Sätze von Instruktionen enthält zum: Empfangen einer Auswahl der 3D Steuerung; und als Antwort auf die Auswahl, Anweisen des Programms, um von der 2D Ansicht zur 3D Ansicht umzuschalten.
  23. Maschinenlesbares Medium nach Anspruch 21, worin das Gerät einen berührungsempfindlichen Bildschirm und eine Schnittstelle für Berührungseingaben enthält, und das Programm weiter Sätze von Instruktionen enthält zum: Empfangen, von der Schnittstelle für Berührungseingaben, einer erste Berührungseingabe zum Auswählen der 3D Steuerung; Empfangen, von der Schnittstelle für Berührungseingaben, einer zweite Berührungseingabe; Feststellen, dass die zweite Berührungseingabe eine Mehrfach-Berührungsgesteneingabe ist, um von der 2D Ansicht zur 3D Ansicht überzugehen; und als Antwort auf die erste oder zweite Berührungseingabe, Anweisen des Programms, um von der 2D Ansicht zur 3D Ansicht umzuschalten.
  24. Maschinenlesbares Medium nach Anspruch 21, worin das Gerät einen berührungsempfindlichen Bildschirm und eine Schnittstelle für Berührungseingaben enthält, und das Programm weiter Sätze von Instruktionen enthält zum: Empfangen, von der Schnittstelle für Berührungseingaben, einer Berührungseingabe; Feststellen, dass die Berührungseingabe eine Mehrfach-Berührungsgesteneingabe ist, um von der 2D Ansicht zur 3D Ansicht überzugehen; und als Antwort auf die erste oder die zweite Berührungseingabe Anweisen des Programms, um von der 2D Ansicht zur 3D Ansicht umzuschalten.
  25. Maschinenlesbares Medium nach Anspruch 24, worin die zweite Mehrfach-Berührungseingabe eine Mehrfachberührungs-Ziehoperation in einer bestimmten Richtung ist, worin die Mehrfach-Berührungs-Ziehoperation mindestens zwei unterschiedliche Berührungskontakte enthält, die längs des Bildschirms in einer bestimmten Richtung gezogen werden oder innerhalb eines Schwellwerts der bestimmten Richtung.
  26. Maschinenlesbares Medium nach Anspruch 25, worin die bestimmte Richtung nach oben längs einer vertikalen Achse der Karte verläuft und die Mehrfachberührungs-Ziehoperation eine Zwei-Finger-Zieh-Operation ist.
  27. Maschinenlesbares Medium nach Anspruch 24,, worin mindestens eine der Navigationsansichten den nachgeführten aktuellen Ort des Geräts an einem bestimmten Ort innerhalb der Ansicht zeigt, worin die Navigationsansicht den nachgeführten aktuellen Ort des Geräts in einer Karte eines Gebiets anzeigt, das das Gerät umgibt, worin das Programm weiter Sätze von Instruktionen enthält zum: Empfangen einer dritten Berührungseingabe durch die Schnittstelle für Mehrfach-Berührungseingaben während der Navigationsansicht; Feststellen, dass die dritte Berührungseingabe eine Gesteneingabe ist, um die Ansicht zu ändern, die während der Navigationsansicht dargestellt wird; und als Antwort auf die dritte Berührungseingabe Ändern der Navigationsansicht, indem die Position des aktuellen Orts des Geräts in der Navigationsansicht geändert wird, um einen Teil der Karte zu zeigen, die vorher während der Navigationsansicht nicht dargestellt wurde.
  28. Maschinenlesbares Medium nach Anspruch 27, worin das Programm weiter enthält einen Satz von Instruktionen um, nach einer Zeitspanne, den angezeigten aktuellen Ort des Geräts in der Navigationsansicht zu seiner ursprünglichen Position in der Ansicht zurückzuführen, bevor er als Antwort auf die dritte Berührungseingabe geändert wurde.
  29. Maschinenlesbares Medium nach Anspruch 28, worin die dritte Berührungseingabe eine Einzel-Berührungs-Zieh-Operation ist.
  30. Maschinenlesbares Medium nach Anspruch 21, worin der Satz von Instruktionen zur Anzeige der 3D Steuerung Sätze von Instruktionen enthält zum: Anzeigen der 3D Steuerung mit einem ersten Aussehen wenn die 2D Navigationsansicht angezeigt wird; Anzeigen der 3D Steuerung mit einem zweiten Aussehen wenn die 3D Navigationsansicht angezeigt wird.
  31. Maschinenlesbares Medium nach Anspruch 30, worin der Satz von Instruktionen zur Anzeige der 3D Steuerung weiter enthält einen Satz von Instruktionen zum Anzeigen der 3D-Steuerung mit einem dritten Aussehen, wenn keine Daten zur Verfügung stehen, um die 3D Navigationsansicht darzustellen.
  32. Maschinenlesbares Medium nach Anspruch 21, worin der Satz von Instruktionen zur Erzeugung der 3D Navigationsansicht enthält einen Satz von Optionen zum Rendern einer 3D Ansicht von einer bestimmten perspektivischen Ansicht der 3D Kartenszene eines Gebiets in der Karte, das den aktuellen Ort des Geräts umgibt.
  33. Maschinenlesbares Medium nach Anspruch 32, worin die 3D Kartenszene Konstrukte in der Karte enthält, wobei die Konstrukte enthalten Straßen und Gebäude.
  34. Maschinenlesbares Medium nach Anspruch 32, worin der Satz von Instruktionen zum Rendern Sätze von Instruktionen enthält zum: Definieren einer virtuellen Kamera, um eine bestimmte perspektivische Ansicht zu repräsentieren; und Bewegen der virtuellen Kamera als Antwort auf die empfangene Berührungseingabe, um die perspektivische Ansicht zum Rendern der 3D Kartenszene zu ändern.
  35. Maschinenlesbares Medium nach Anspruch 21, worin das Programm weiter enthält einen Satz von Instruktionen zum Nachführen der Position des Geräts während eine der Navigationsansichten gezeigt wird, worin die Navigationsansicht einen nachgeführten aktuellen Ort des Geräts an einem bestimmten Ort innerhalb der Präsentation anzeigt, worin die Navigationsansicht den nachgeführten aktuellen Ort des Geräts in einer Karte eines Gebiets anzeigt, das das Gerät umgibt.
  36. Maschinenlesbares Medium nach Anspruch 35, worin das Programm weiter Sätze von Instruktionen enthält zum: Korrelieren der nachgeführten Position mit den Navigationsanweisungen längs der navigierten Fahrtroute; Erzeugen eines neuen Satzes von Navigationsanweisungen wenn festgestellt wird, dass sich das Gerät nicht länger auf der navigierten Fahrtroute befindet, basierend auf der nachgeführten Position des Geräts; und Liefern eines neuen Satzes von Navigationsanweisungen während der Navigationsansicht, der die neue navigierte Fahrtroute beschreibt.
  37. Maschinenlesbares Medium nach Anspruch 36, worin der Satz von Instruktionen zum Nachführen der Position des Geräts enthält einen Satz von Instruktionen zur Verwendung von Satellitennavigationsdaten (GPS), die durch einen GPS Empfänger des Geräts erzeugt werden, um den Ort des Geräts zu identifizieren.
  38. Maschinenlesbares Medium beansprucht 35, worin das Programm weiter Sätze von Instruktionen enthält zum: Feststellen, dass sich das Gerät einer Kreuzung nähert während das Programm eine 3D Navigationsansicht anzeigt; und Umschalten von der 3D Navigationsansicht zur 2D Navigationsansicht, um eine bessere Sicht auf die Kreuzung längst der navigierten Route zu liefern.
  39. Maschinenlesbares Medium nach Anspruch 38, worin das Programm weiter Sätze von Instruktionen enthält zum: Feststellen, dass das Gerät die Kreuzung passiert hat, nachdem in die 2D Navigationsansicht umgeschaltet wurde; und Umschalten von der 2D Navigationsansicht zur 3D Navigationsansicht, um die 3D Ansicht wieder aufzunehmen.
  40. Verfahren zum Liefern von Navigationsinstruktionen auf einem Gerät, das einen berührungsempfindlichen Bildschirm und eine Schnittstelle für Berührungseingaben umfasst, wobei das Verfahren umfasst: Erzeugen und Anzeigen einer zweidimensionalen (2D) Ansicht einer Karte; Empfangen, von der Schnittstelle für Berührungseingaben, einer Berührungseingabe; Feststellen, dass die Berührungseingabe eine Mehrfachberührungsgesteneingabe ist, um von der 2D Ansicht zu einer dreidimensionalen (3D) Ansicht überzugehen; und als Antwort auf die Berührungseingabe Erzeugen und Anzeigen einer 3-D Ansicht der Karte.
  41. Gerät enthaltend mindestens eine Verarbeitungseinheit, wobei das Gerät ein Navigationsprogramm zur Ausführung durch die genannte mindestens eine Verarbeitungseinheit speichert und das Programm eine Benutzerschnittstelle (UI) enthält, wobei die UI enthält: einen Anzeigebereich zum Anzeigen einer zweidimensionalen (2D) Navigationsansicht oder einer dreidimensionalen (3D) Navigationsansicht; und eine auswählbare 3D Steuerung, um das Programm anzuweisen, zwischen der 2D und der 3D Ansicht überzugehen.
  42. Gerät nach Anspruch 41, worin die 3D Steuerung ein erstes Aussehen aufweist, wenn die 2D Navigationsansicht angezeigt wird und ein zweites Aussehen, wenn die 3D Navigationsansicht angezeigt wird.
  43. Gerät nach Anspruch 41, worin der Bildschirm ein berührungsempfindlicher Bildschirm ist, worin das Gerät einen Bildschirm und eine Mehrfachberührungs-Schnittstelle aufweist, um Mehrfachberührungsgesteneingaben über den Bildschirm zu empfangen, worin die UI weiter enthält ein Gestenverarbeitungsmodul, um Gesteneingaben von der Mehrfachberührungs-Schnittstelle zu erhalten und einen ersten Typ von Gesteneingaben in eine Instruktion umzuwandeln, die das Programm anweist, zwischen den 2D und 3D Ansichten umzuschalten.
  44. Gerät nach Anspruch 43, worin der erste Typ von Gesteneingaben eine Ziehoperation in einer bestimmten Richtung ist.
  45. Das Gerät nach Anspruch 43, worin jede Gesteneingabe des ersten Typs mindestens zwei unterschiedliche Berührungskontakte aufweist, die längs des Bildschirms in einer bestimmten Richtung gezogen werden oder innerhalb eines Schwellwerts der bestimmten Richtung.
  46. Navigationsanwendung zur Ausführung durch mindestens eine Verarbeitungseinheit eines Geräts, wobei die Anwendung enthält: eine Schnittstelle zum Empfang von Daten, die Kreuzungen längs einer Fahrtroute von einem ersten Ort zu einem zweiten Ort enthalten, worin die Daten für jede Kreuzung einen Satz von Winkeln enthalten, unter denen die Straßen die Kreuzung verlassen; einen Kreuzungs-Vereinfacher zum Vereinfachen der Winkel für die empfangenen Kreuzungen; einen Pfeilgenerator zum Erzeugen mindestens zweier unterschiedlicher Darstellungen der vereinfachten Kreuzung, wobei die Darstellung zur Verwendung bei der Anzeige der Navigationsinformation dienen, die ein Fahrmanöver beschreiben, das an der Kreuzung während der Fahrtroute durchzuführen ist; und einen Pfeilselektor zum Auswählen einer der verschiedenen Darstellungen der vereinfachten Kreuzung zur Anzeige gemäß einem Kontext, in dem die Darstellung angezeigt werden wird.
  47. Navigationsanwendung nach Anspruch 46, weiter enthaltend einen Kontextanalysator zum Bestimmen des Kontextes, in dem die Darstellung angezeigt werden wird.
  48. Navigationsanwendung nach Anspruch 46, weiter enthaltend einen Zeichengenerator zum Einbauen des ausgewählten Pfeils in ein Zeichen zur Anzeige an einen Benutzer der Navigationsanwendung.
  49. Navigationsanwendung nach Anspruch 48, worin das Zeichen Textinstruktionen für das Fahrmanöver enthält zusätzlich zum ausgewählten Pfeil, worin die Textinstruktionen basieren auf dem Kontext, in dem die Instruktionen dargestellt werden sollen.
  50. Navigationsanwendung der Anspruch 48, worin das Zeichen so ausgelegt ist, dass es ähnlich einem Verkehrszeichen erscheint.
  51. Navigationsanwendung nach Anspruch 48, worin das Zeichen für die Anzeige als Überlagerung einer animierten Karte der Fahrtroute dient.
  52. Navigationsanwendung nach Anspruch 46, worin die Kreuzungsdaten für jede Kreuzung eine Markierung enthalten, die eine der Straßen, die die Kreuzung verlassen, als Ausfahrtzweig für das an der Kreuzung durchzuführende Fahrmanöver markiert.
  53. Navigationsanwendung nach Anspruch 46, worin die Navigationsanwendung eine Karten- und Navigationsanwendung ist, die auf einem handgehalten Gerät arbeitet.
  54. Maschinenlesbares Medium, das eine Navigations-Anwendung zur Ausführung durch mindestens eine Verarbeitungseinheit speichert, wobei die Navigationsanwendung Sätze von Instruktionen enthält zum: Empfangen, für eine Fahrtroute von einem ersten Ort auf einer Karte zu einem zweiten Ort der Karte, von Kreuzungsdaten, die die Kreuzungen längs der Fahrtroute beschreiben, bei denen Fahrmanöver erforderlich sind, worin die Kreuzungsdaten für eine bestimmte Kreuzung einen Satz von Winkeln enthalten, unter denen Straßen die Kreuzung verlassen, wobei einer der Winkel als eine Ausfahrtstraße für ein Fahrmanöver markiert ist, das an der bestimmten Kreuzung durchzuführen ist; automatisches Vereinfachen der Winkel für die bestimmte Kreuzung, durch Einrasten der Winkel auf einen bestimmten Satz von Achsen; und Erzeugen eines Navigationspfeils für das an der bestimmten Kreuzung durchzuführende Fahrmanöver unter Verwendung der vereinfachten Winkel.
  55. Maschinenlesbares Medium nach Anspruch 54, worin die Achsen acht mögliche Einrastpunkte bei Mehrfachen von 45° umfassen.
  56. Maschinenlesbares Medium nach Anspruch 55, worin die Achse bei 0° ein Fahrmanöver darstellt, das gerade durch die Kreuzung verläuft.
  57. Maschinenlesbares Medium nach Anspruch 54, worin der Satz von Instruktionen zum automatischen Vereinfachen der Winkel einen Satz von Instruktionen enthält, um zu verhindern, dass mehrfache Winkel auf die gleiche Achse einrasten.
  58. Maschinenlesbares Medium nach Anspruch 54, worin der Satz von Instruktionen zum automatischen Vereinfachen der Winkel einen Satz von Instruktionen enthält, um zu verhindern, dass der Winkel, der als Ausfahrtstraße für das Fahrmanöver markiert ist, auf eine Achse einrastet, die mit dem Fahrmanöver nicht kompatibel ist.
  59. Maschinenlesbares Medium nach Anspruch 58, worin der Satz von Instruktionen zur Erzeugung einer Navigationspfeils einen Satz von Instruktionen enthält, um einen Standard Navigationspfeil für das Fahrmanöver zu verwenden, wenn die Ausfahrtstraße sonst auf eine Achse einrasten würde, die nicht mit dem Manöver kompatibel ist.
  60. Navigationsanwendung zur Ausführung durch mindestens eine Verarbeitungseinheit eines Geräts, wobei die Anwendung enthält: eine Schnittstelle zum Empfang von Daten, die Kreuzungen längst einer Fahrtroute von einem ersten Ort auf einer Karte zu einem zweiten Ort auf der Karte beschreiben, worin die Daten für jede Kreuzung einen Satz von Winkeln enthalten, unter denen Straßen die Kreuzung verlassen; einen Kreuzungsdekodierer zum Synthetisieren, aus den Kreuzungsdaten, von Instruktionselementen für jede Kreuzung, die unterschiedlichen Aspekte eines Fahrmanövers beschreiben, das an der Kreuzung durchzuführen ist; einen Instruktionsgenerator zur Erzeugung mindestens zweier unterschiedlicher Sätze von Instruktionen für ein Fahrmanöver durch Kombinieren eines oder mehrerer der Instruktionselemente für die Kreuzung, an der das Fahrmanöver durchzuführen ist; und einen Instruktionsabrufer zum Auswählen einer der verschiedenen Sätze von Instruktionen für das Manöver gemäß einem Kontext, in dem der Instruktionssatz angezeigt werden wird.
  61. Navigationsanwendung nach Anspruch 60, weiter enthaltend einen Kontextanalysator zum Feststellen des Kontextes, in dem der Instruktionssatz angezeigt werden wird.
  62. Navigationsanwendung nach Anspruch 60, weiter enthaltend einen Zeichengenerator zum Einbauen des ausgewählten Instruktionssatzes in ein Zeichen zur Anzeige an einen Benutzer der Navigationsanwendung.
  63. Navigationsanwendung nach Anspruch 62, worin das Zeichen eine grafische Indikation des Fahrmanövers enthält, zusätzlich zum ausgewählten Instruktionssatz, worin die grafische Indikation auf dem Kontext basiert, in dem das Zeichen angezeigt werden wird.
  64. Navigationsanwendung nach Anspruch 62, worin das Zeichen ausgelegt ist, um ähnlich einem Verkehrszeichen zu erscheinen.
  65. Navigationsanwendung nach Anspruch 62, worin das Zeichen als Anzeige dient, die eine animierte Karte der Fahrtroute überlagert.
  66. Navigationsanwendung nach Anspruch 60, worin die Navigationsanwendung eine Karten- und Navigationsanwendung ist, die auf einem handgehalten Gerät arbeitet.
  67. Navigationsanwendung der Anspruch 60, worin die Instruktionselemente für eine bestimmte Kreuzung basieren auf den Kreuzungsdaten für die bestimmte Kreuzung.
  68. Navigationsanwendung nach Anspruch 60, worin der Instruktionsgenerator weiter dazu dient, die erzeugten Sätze von Instruktionen für ein bestimmtes Fahrmanöver zu bewerten gemäß der Menge von Information über das Fahrmanöver, die von den unterschiedlichen Instruktionssätzen übertragen wird.
DE201311002792 2012-06-05 2013-05-21 Navigationsanwendung Pending DE112013002792T5 (de)

Applications Claiming Priority (33)

Application Number Priority Date Filing Date Title
US201261655995P 2012-06-05 2012-06-05
US201261655997P 2012-06-05 2012-06-05
US61/655,997 2012-06-05
US61/655,995 2012-06-05
US201261656043P 2012-06-06 2012-06-06
US201261656015P 2012-06-06 2012-06-06
US201261656032P 2012-06-06 2012-06-06
US201261656080P 2012-06-06 2012-06-06
US61/656,015 2012-06-06
US61/656,032 2012-06-06
US61/656,043 2012-06-06
US61/656,080 2012-06-06
US201261657864P 2012-06-10 2012-06-10
US201261657880P 2012-06-10 2012-06-10
US61/657,864 2012-06-10
US61/657,880 2012-06-10
US201261699853P 2012-09-11 2012-09-11
US201261699851P 2012-09-11 2012-09-11
US201261699842P 2012-09-11 2012-09-11
US201261699855P 2012-09-11 2012-09-11
US61/699,851 2012-09-11
US61/699,855 2012-09-11
US61/699,842 2012-09-11
US61/699,853 2012-09-11
US13/632,122 2012-09-30
US13/632,116 US9418672B2 (en) 2012-06-05 2012-09-30 Navigation application with adaptive instruction text
US13/632,122 US9182243B2 (en) 2012-06-05 2012-09-30 Navigation application
US13/632,130 US8880336B2 (en) 2012-06-05 2012-09-30 3D navigation
US13/632,116 2012-09-30
US13/632,117 2012-09-30
US13/632,130 2012-09-30
US13/632,117 US9146125B2 (en) 2012-06-05 2012-09-30 Navigation application with adaptive display of graphical directional indicators
PCT/US2013/042029 WO2013184348A2 (en) 2012-06-05 2013-05-21 Navigation application

Publications (1)

Publication Number Publication Date
DE112013002792T5 true DE112013002792T5 (de) 2015-03-26

Family

ID=49775104

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201311002792 Pending DE112013002792T5 (de) 2012-06-05 2013-05-21 Navigationsanwendung

Country Status (6)

Country Link
US (1) US9182243B2 (de)
EP (2) EP2672225A3 (de)
CN (1) CN104335008B (de)
AU (2) AU2013272077B2 (de)
DE (1) DE112013002792T5 (de)
WO (1) WO2013184348A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019068827A1 (de) * 2017-10-05 2019-04-11 Volkswagen Aktiengesellschaft Verfahren zum betrieb eines navigationssystems

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700331B2 (en) 2011-06-03 2014-04-15 Apple Inc. Systems and methods for printing maps and directions
AU2012261938B2 (en) 2011-06-03 2015-03-19 Apple Inc. Devices and methods for comparing and selecting alternative navigation routes
US8965697B2 (en) * 2011-11-10 2015-02-24 Mitsubishi Electric Corporation Navigation device and method
US9997069B2 (en) 2012-06-05 2018-06-12 Apple Inc. Context-aware voice guidance
US9146125B2 (en) 2012-06-05 2015-09-29 Apple Inc. Navigation application with adaptive display of graphical directional indicators
US9429435B2 (en) 2012-06-05 2016-08-30 Apple Inc. Interactive map
US9230556B2 (en) 2012-06-05 2016-01-05 Apple Inc. Voice instructions during navigation
US9886794B2 (en) 2012-06-05 2018-02-06 Apple Inc. Problem reporting in maps
US9418672B2 (en) 2012-06-05 2016-08-16 Apple Inc. Navigation application with adaptive instruction text
US8983778B2 (en) 2012-06-05 2015-03-17 Apple Inc. Generation of intersection information by a mapping service
US8880336B2 (en) 2012-06-05 2014-11-04 Apple Inc. 3D navigation
US9482296B2 (en) 2012-06-05 2016-11-01 Apple Inc. Rendering road signs during navigation
US9182243B2 (en) 2012-06-05 2015-11-10 Apple Inc. Navigation application
US9052197B2 (en) 2012-06-05 2015-06-09 Apple Inc. Providing navigation instructions while device is in locked mode
USD712421S1 (en) * 2012-06-06 2014-09-02 Apple Inc. Display screen or portion thereof with graphical user interface
USD732077S1 (en) * 2013-01-04 2015-06-16 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated icon
US9261380B2 (en) 2013-02-01 2016-02-16 Apple Inc. Intelligent adjustment of map viewports at launch
US8676431B1 (en) 2013-03-12 2014-03-18 Google Inc. User interface for displaying object-based indications in an autonomous driving system
USD750663S1 (en) 2013-03-12 2016-03-01 Google Inc. Display screen or a portion thereof with graphical user interface
USD754190S1 (en) * 2013-03-13 2016-04-19 Google Inc. Display screen or portion thereof with graphical user interface
USD754189S1 (en) * 2013-03-13 2016-04-19 Google Inc. Display screen or portion thereof with graphical user interface
US9317813B2 (en) 2013-03-15 2016-04-19 Apple Inc. Mobile device with predictive routing engine
US9303997B2 (en) 2013-03-15 2016-04-05 Apple Inc. Prediction engine
US9857193B2 (en) 2013-06-08 2018-01-02 Apple Inc. Mapping application with turn-by-turn navigation mode for output to vehicle display
US9418485B2 (en) 2013-05-31 2016-08-16 Apple Inc. Adjusting heights for road path indicators
US9396697B2 (en) 2013-06-01 2016-07-19 Apple Inc. Intelligently placing labels
US9412275B2 (en) 2013-06-01 2016-08-09 Apple Inc. Architecture for distributing transit data
US9103681B2 (en) 2013-06-08 2015-08-11 Apple Inc. Navigation application with several navigation modes
US20140365459A1 (en) 2013-06-08 2014-12-11 Apple Inc. Harvesting Addresses
US9678651B2 (en) 2013-06-08 2017-06-13 Apple Inc. Mapping application with interactive compass
US9404766B2 (en) 2013-06-08 2016-08-02 Apple Inc. Navigation peek ahead and behind in a navigation application
US20140365944A1 (en) 2013-06-09 2014-12-11 Apple Inc. Location-Based Application Recommendations
US9500494B2 (en) 2013-06-09 2016-11-22 Apple Inc. Providing maneuver indicators on a map
US9536325B2 (en) 2013-06-09 2017-01-03 Apple Inc. Night mode
US9170122B2 (en) 2013-06-09 2015-10-27 Apple Inc. Direction list
USD757752S1 (en) * 2014-01-03 2016-05-31 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US10311633B2 (en) * 2014-01-17 2019-06-04 Nokia Technologies Oy Method and apparatus for visualization of geo-located media contents in 3D rendering applications
US9500492B2 (en) 2014-03-03 2016-11-22 Apple Inc. Map application with improved navigation tools
US10113879B2 (en) 2014-03-03 2018-10-30 Apple Inc. Hierarchy of tools for navigation
US11080777B2 (en) 2014-03-31 2021-08-03 Monticello Enterprises LLC System and method for providing a social media shopping experience
US10511580B2 (en) 2014-03-31 2019-12-17 Monticello Enterprises LLC System and method for providing a social media shopping experience
US11250493B2 (en) 2014-03-31 2022-02-15 Monticello Enterprises LLC System and method for performing social media cryptocurrency transactions
US10726472B2 (en) 2014-03-31 2020-07-28 Monticello Enterprises LLC System and method for providing simplified in-store, product-based and rental payment processes
US11004139B2 (en) 2014-03-31 2021-05-11 Monticello Enterprises LLC System and method for providing simplified in store purchases and in-app purchases using a use-interface-based payment API
US10121186B2 (en) 2014-03-31 2018-11-06 Monticello Enterprises LLC System and method of using a browser application programming interface for making payments
US10002396B2 (en) 2014-03-31 2018-06-19 Monticello Enterprises LLC System and method for transitioning from a first site to a second site
US11282131B2 (en) 2014-03-31 2022-03-22 Monticello Enterprises LLC User device enabling access to payment information in response to user input
US20240013283A1 (en) 2014-03-31 2024-01-11 Monticello Enterprises LLC System and method for providing a social media shopping experience
US20180019984A1 (en) 2014-03-31 2018-01-18 Monticello Enterprises LLC System and method for providing a credential management api
US10643266B2 (en) 2014-03-31 2020-05-05 Monticello Enterprises LLC System and method for in-app payments
US10152756B2 (en) 2014-03-31 2018-12-11 Monticello Enterprises LLC System and method for providing multiple payment method options to browser
US9922380B2 (en) 2014-03-31 2018-03-20 Monticello Enterprises LLC System and method for providing messenger application for product purchases
US10497037B2 (en) 2014-03-31 2019-12-03 Monticello Enterprises LLC System and method for managing cryptocurrency payments via the payment request API
US10832310B2 (en) 2014-03-31 2020-11-10 Monticello Enterprises LLC System and method for providing a search entity-based payment process
DE102014015903B4 (de) * 2014-10-29 2016-12-29 Preh Car Connect Gmbh Ausgeben einer Richtungsanweisung mit einer Navigationseinrichtung
KR102390853B1 (ko) * 2015-03-26 2022-04-27 삼성전자주식회사 컨텐츠 제공 방법 및 이를 수행하는 전자 장치
US20160291806A1 (en) * 2015-04-02 2016-10-06 Ford Global Technologies, Llc Customizable instrument cluster user interface
CN104794198B (zh) * 2015-04-21 2018-05-29 范文鲜 网络地图泛区域搜索方法
US11100797B2 (en) 2015-06-05 2021-08-24 Apple Inc. Traffic notifications during navigation
US10514271B2 (en) 2015-06-06 2019-12-24 Apple Inc. Mapping application with transit mode
US9702724B2 (en) 2015-06-06 2017-07-11 Apple Inc. Mapping application with transit mode
US10401180B2 (en) 2015-06-07 2019-09-03 Apple Inc. Frequency based transit trip characterizations
US10302442B2 (en) * 2015-06-07 2019-05-28 Apple Inc. Transit incident reporting
US9891065B2 (en) 2015-06-07 2018-02-13 Apple Inc. Transit incidents
CN106441323B (zh) * 2015-08-12 2021-04-23 阿里巴巴(中国)有限公司 一种路线导航提示方法及装置
CN107924195B (zh) * 2015-09-08 2020-11-10 苹果公司 意图识别
US9971470B2 (en) * 2015-09-30 2018-05-15 Apple Inc. Navigation application with novel declutter mode
CN106855417A (zh) * 2015-12-08 2017-06-16 腾讯科技(深圳)有限公司 地图导航信息的处理方法、定位设备及定位系统
US10254123B2 (en) 2016-05-24 2019-04-09 Telenav, Inc. Navigation system with vision augmentation mechanism and method of operation thereof
US10845199B2 (en) * 2016-06-10 2020-11-24 Apple Inc. In-venue transit navigation
CN106125883A (zh) * 2016-06-15 2016-11-16 乐视控股(北京)有限公司 智能终端及其控制方法
CN106371693B (zh) * 2016-08-26 2019-07-26 维沃移动通信有限公司 一种显示导航信息的方法及移动终端
CN108072375B (zh) * 2016-11-09 2020-01-10 腾讯科技(深圳)有限公司 一种导航中的信息识别方法及终端
CN106611056B (zh) * 2016-12-27 2020-06-26 广州都市圈网络科技有限公司 三维仿真地图的切图方法及装置
US10352717B2 (en) * 2017-02-28 2019-07-16 Google Llc Navigation application programming interface
CN107491522B (zh) * 2017-08-16 2020-07-10 城市生活(北京)资讯有限公司 一种二维地图与三维地图之间的切换方法及装置
US20190113350A1 (en) * 2017-10-12 2019-04-18 Mitac International Corp. Route-planning method and navigational system of converting route description into machine-readable predefined route
WO2019112565A1 (en) * 2017-12-05 2019-06-13 Google Llc Routes on digital maps with interactive turn graphics
CN110741227B (zh) 2017-12-05 2024-03-29 谷歌有限责任公司 地标辅助导航
CN108896060A (zh) * 2018-04-25 2018-11-27 上海博泰悦臻电子设备制造有限公司 点触摸的导航方法、系统、计算机可读存储介质及终端
TWI691932B (zh) * 2018-06-12 2020-04-21 大陸商光寶電子(廣州)有限公司 影像處理系統及影像處理方法
US11567632B2 (en) 2018-07-03 2023-01-31 Apple Inc. Systems and methods for exploring a geographic region
CN108871366B (zh) * 2018-07-10 2022-12-02 京东方科技集团股份有限公司 基于快门眼镜的路标导航方法及系统
CN109117071A (zh) * 2018-07-16 2019-01-01 华为技术有限公司 一种屏幕显示控制方法和装置
CN109240563A (zh) * 2018-08-21 2019-01-18 珠海格力电器股份有限公司 移动终端三维图标显示方法、程序启动方法和移动终端
CN109388471B (zh) * 2018-10-18 2022-01-28 维沃移动通信有限公司 一种导航方法及装置
CN109685909B (zh) * 2018-11-12 2022-12-20 腾讯科技(深圳)有限公司 图像的显示方法、装置、存储介质和电子装置
USD912695S1 (en) * 2019-01-17 2021-03-09 Beijing Baidu Netcom Science And Technology Co., Ltd. Mobile phone or portion thereof with graphical user interface
USD911371S1 (en) * 2019-01-17 2021-02-23 Beijing Baidu Netcom Science And Technology Co., Ltd. Mobile phone or portion thereof with graphical user interface
USD911374S1 (en) * 2019-01-17 2021-02-23 Beijing Baidu Netcom Science And Technology Co.. Ltd. Mobile phone or portion thereof with graphical user interface
USD922415S1 (en) * 2019-01-17 2021-06-15 Beijing Baidu Netcom Science And Technology Co., Ltd. Mobile phone or portion thereof with graphical user interface
USD911375S1 (en) * 2019-01-17 2021-02-23 Beijing Baidu Netcom Science And Technology Co., Ltd. Mobile phone or portion thereof with graphical user interface
DE102020104415A1 (de) * 2019-02-22 2020-08-27 Apple Inc. Bewegung in einer umgebung
USD949159S1 (en) 2019-06-02 2022-04-19 Apple Inc. Display screen or portion thereof with graphical user interface
JP7382201B2 (ja) * 2019-10-11 2023-11-16 株式会社日立製作所 車両管制システム、演算装置
CN110796733A (zh) * 2019-10-24 2020-02-14 深圳市商汤科技有限公司 数据处理方法和装置
US11768083B2 (en) 2020-05-15 2023-09-26 Apple Inc. User interfaces for providing navigation directions
US11846515B2 (en) 2020-06-11 2023-12-19 Apple Inc. User interfaces for customized navigation routes
US20220018679A1 (en) * 2020-07-16 2022-01-20 Brandon Biggs Systems and Methods for Digital Auditory Mapping
CN112580561B (zh) * 2020-12-25 2023-11-03 上海高德威智能交通系统有限公司 目标检测方法、装置、电子设备及存储介质
USD1015342S1 (en) * 2021-01-08 2024-02-20 Sony Group Corporation Display screen or portion thereof with animated graphical user interface
US20220390248A1 (en) * 2021-06-07 2022-12-08 Apple Inc. User interfaces for maps and navigation

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5289572A (en) 1989-10-24 1994-02-22 Mitsubishi Denki Kabushiki Kaisha Electronic map combined with user service information
DE69217311T2 (de) 1991-09-25 1997-07-24 Philips Electronics Nv Gerät und Verfahren für Kartenanzeige in der Fahrzeugnavigation
US5654892A (en) 1991-10-18 1997-08-05 Zexel Usa Corporation Navigation system displaying forthcoming turns
US6029111A (en) 1995-12-28 2000-02-22 Magellan Dis, Inc. Vehicle navigation system and method using GPS velocities
US5862511A (en) 1995-12-28 1999-01-19 Magellan Dis, Inc. Vehicle navigation system and method
JP3226153B2 (ja) * 1996-03-18 2001-11-05 シャープ株式会社 マルチメディアデータ表示装置
US5878368A (en) 1996-09-13 1999-03-02 Magellan Dis, Inc. Navigation system with user definable cost values
KR100338573B1 (ko) 1997-05-09 2002-05-30 하기와라 가즈토시 높이 데이터를 효율적으로 갖고 사용하는 지도 데이터베이스 장치, 지도표시장치 및 기록매체
US6192314B1 (en) 1998-03-25 2001-02-20 Navigation Technologies Corp. Method and system for route calculation in a navigation application
US6178380B1 (en) 1998-10-22 2001-01-23 Magellan, Dis, Inc. Street identification for a map zoom of a navigation system
JP3918326B2 (ja) 1998-10-26 2007-05-23 株式会社デンソー 経路設定装置及びナビゲーション装置
US6292743B1 (en) 1999-01-06 2001-09-18 Infogation Corporation Mobile navigation system
US6360167B1 (en) 1999-01-29 2002-03-19 Magellan Dis, Inc. Vehicle navigation system with location-based multi-media annotation
DE19944067A1 (de) * 1999-09-14 2001-03-15 Mannesmann Vdo Ag Verfahren zur Anzeige von Primär- und Sekundärinformationen
DE19956112A1 (de) 1999-11-22 2001-05-23 Mannesmann Vdo Ag Navigationssystem mit verbesserter Objektauswahl
US6615130B2 (en) 2000-03-17 2003-09-02 Makor Issues And Rights Ltd. Real time vehicle guidance and traffic forecasting system
US6480783B1 (en) 2000-03-17 2002-11-12 Makor Issues And Rights Ltd. Real time vehicle guidance and forecasting system under traffic jam conditions
US20030078729A1 (en) 2000-08-04 2003-04-24 Eriko Ohdachi Route guide information generator, route guide information generating method, and navigation system
US6374180B1 (en) 2000-09-18 2002-04-16 Magellan Dis, Inc. Points of interest for a navigation system
US7149625B2 (en) 2001-05-31 2006-12-12 Mathews Michael B Method and system for distributed navigation and automated guidance
US7130743B2 (en) 2001-08-06 2006-10-31 Matsushita Electric Industrial Co., Ltd. Information providing method and information providing device
JP2003161624A (ja) 2001-11-28 2003-06-06 Alpine Electronics Inc ナビゲーション装置及び交差点案内方法
JP4031282B2 (ja) * 2002-04-17 2008-01-09 株式会社ザナヴィ・インフォマティクス ナビゲーション装置およびナビゲーション制御プログラム
JP2004101366A (ja) 2002-09-10 2004-04-02 Hitachi Ltd 携帯通信端末及びこれを用いたナビゲーションシステム
KR100648342B1 (ko) * 2003-02-10 2006-11-23 엘지전자 주식회사 네비게이션 시스템 및 그 동작 방법
JP4138574B2 (ja) * 2003-05-21 2008-08-27 株式会社日立製作所 カーナビゲーション装置
US20040243307A1 (en) 2003-06-02 2004-12-02 Pieter Geelen Personal GPS navigation device
US7620494B1 (en) * 2003-07-17 2009-11-17 Mapquest, Inc. Using routing symbols to describe a driving maneuver
JP4486331B2 (ja) 2003-08-12 2010-06-23 クラリオン株式会社 ナビゲーション装置の経路探索方法
US7054745B1 (en) * 2003-09-03 2006-05-30 Microsoft Corporation Method and system for generating driving directions
JP4170178B2 (ja) 2003-09-04 2008-10-22 三菱電機株式会社 経路探索装置
JP4026071B2 (ja) * 2003-09-25 2007-12-26 ソニー株式会社 車載装置及びコンテンツ提供方法
GB0324800D0 (en) 2003-10-24 2003-11-26 Trafficmaster Plc Route guidance system
US7233861B2 (en) 2003-12-08 2007-06-19 General Motors Corporation Prediction of vehicle operator destinations
US20050273251A1 (en) 2004-05-21 2005-12-08 Axel Nix Turn-by-turn navigation system with special routing features
US7546207B2 (en) 2004-05-21 2009-06-09 Gm Global Technology Operations, Inc. Turn-by-turn navigation system with enhanced turn icon
JP4130441B2 (ja) 2004-07-16 2008-08-06 三菱電機株式会社 地図情報処理装置
DE102004037900A1 (de) * 2004-08-05 2006-03-16 Robert Bosch Gmbh Verfahren zur Darstellung von Navigationshinweisen
JP4599932B2 (ja) 2004-08-06 2010-12-15 アイシン・エィ・ダブリュ株式会社 ナビゲーションシステム
EP1626250B1 (de) 2004-08-13 2010-05-19 Alpine Electronics, Inc. Fahrzeugnavigationssystem
JP2006184256A (ja) 2004-12-28 2006-07-13 Nissan Motor Co Ltd 案内システム、案内方法、案内システム用サーバー、案内システム用移動体端末装置、案内情報提供処理プログラム、及び、案内システム端末装置用プログラム
EP1681537A1 (de) 2005-01-18 2006-07-19 Harman Becker Automotive Systems (Becker Division) GmbH Navigationssystem mit einer animierten Kreuzungsansicht
KR101035805B1 (ko) 2005-02-14 2011-05-20 삼성전자주식회사 이동체가 주행할 목적지까지 경로를 안내하는 방법
JP3987073B2 (ja) 2005-04-20 2007-10-03 株式会社ナビタイムジャパン ナビゲーションシステム、経路探索サーバ、経路探索方法およびプログラム
US7933929B1 (en) * 2005-06-27 2011-04-26 Google Inc. Network link for providing dynamic data layer in a geographic information system
US8375325B2 (en) * 2005-12-30 2013-02-12 Google Inc. Customizable, multi-function button
ATE527520T1 (de) 2006-03-08 2011-10-15 Harman Becker Automotive Sys Verfahren und system zur routenbestimmung und fahrerwarnung
US20070233371A1 (en) * 2006-03-31 2007-10-04 Arne Stoschek Navigation system for a motor vehicle
CN101101217A (zh) * 2006-07-07 2008-01-09 逢甲大学 模拟三维实境导航系统
JP4827644B2 (ja) * 2006-07-27 2011-11-30 アルパイン株式会社 遠隔用入力装置およびこれを用いた電子装置
US7590487B2 (en) * 2006-08-10 2009-09-15 Alpine Electronics, Inc. Method and apparatus of displaying three-dimensional arrival screen for navigation system
KR100821503B1 (ko) * 2006-11-08 2008-04-14 팅크웨어(주) 차량 항법 시스템에서의 동적 디스플레이 모드 변경 방법및 그 장치
WO2008079889A2 (en) * 2006-12-20 2008-07-03 Johnson Controls Technology Company System and method for providing route calculation and information to a vehicle
CN1995917B (zh) * 2006-12-21 2011-05-18 深圳市凯立德科技股份有限公司 一种电子地图俯视角度显示控制方法、装置及设备
AU2007343394A1 (en) * 2007-01-10 2008-07-17 Tomtom International B.V. Improved navigation system
US20080167812A1 (en) * 2007-01-10 2008-07-10 Pieter Geelen Navigation device and method for fuel pricing display
DE102007030345A1 (de) 2007-02-28 2008-09-04 Navigon Ag Navigationseinrichtung und Verfahren zur grafischen Ausgabe von Navigationsanweisungen
DE102007024061A1 (de) 2007-05-22 2008-11-27 Deutsche Telekom Ag Verfahren und Vorrichtung zur adaptiven Zielermittlung bei Navigationssystemen
US8302033B2 (en) 2007-06-22 2012-10-30 Apple Inc. Touch screen device, method, and graphical user interface for providing maps, directions, and location-based information
US9109904B2 (en) 2007-06-28 2015-08-18 Apple Inc. Integration of map services and user applications in a mobile device
DE102007036627A1 (de) 2007-08-02 2009-02-05 Navigon Ag Verfahren zum Betrieb eines Navigationssystems
JP4509153B2 (ja) 2007-08-31 2010-07-21 三洋電機株式会社 ナビゲーション装置及び方法
US8233670B2 (en) 2007-09-13 2012-07-31 Cognex Corporation System and method for traffic sign recognition
US7917288B2 (en) * 2007-10-11 2011-03-29 Microsoft Corporation Abbreviated directions for route navigation
JP2009145234A (ja) * 2007-12-14 2009-07-02 Sony Corp ガイド情報提示システム、ガイド情報提示方法、サーバ装置、端末装置
US9341494B2 (en) 2007-12-21 2016-05-17 Nokia Technologies Oy Apparatuses and methods for managing route navigation via mobile devices
KR20090071077A (ko) 2007-12-27 2009-07-01 엘지전자 주식회사 네비게이션 장치 및 이의 턴 지점 정보 제공방법
US8229669B2 (en) 2007-12-31 2012-07-24 Wavemarket, Inc. Navigation system implementing dynamic route correction
DE102008025053B4 (de) 2008-01-18 2023-07-06 Garmin Switzerland Gmbh Navigationseinrichtung
EP2080985B1 (de) 2008-01-18 2012-10-24 Navigon AG Navigationseinrichtung
DE102008036748A1 (de) 2008-03-17 2009-10-08 Navigon Ag Verfahren zum Betrieb einer Navigationseinrichtung
EP2297550B1 (de) 2008-07-11 2014-03-26 TomTom Global Content B.V. Vorrichtung und verfahren zur kreuzungsansichtsanzeige
US20100057358A1 (en) 2008-08-28 2010-03-04 TeleType Co., Inc. Portable gps map device for commercial vehicle industry
US8493408B2 (en) 2008-11-19 2013-07-23 Apple Inc. Techniques for manipulating panoramas
JP5398738B2 (ja) 2008-11-28 2014-01-29 三菱電機株式会社 ナビゲーション装置
DE102008061988A1 (de) * 2008-12-12 2010-06-17 Volkswagen Ag Verfahren und Vorrichtung zum Anzeigen von Informationen
US8990004B2 (en) 2008-12-17 2015-03-24 Telenav, Inc. Navigation system with query mechanism and method of operation thereof
CA2725564A1 (en) * 2008-12-19 2010-06-24 Tele Atlas B.V. Dynamically mapping images on objects in a navigation system
WO2010072236A1 (en) * 2008-12-23 2010-07-01 Elektrobit Automotive Software Gmbh Method for generating manoeuvre graphics in a navigation device
US8294766B2 (en) * 2009-01-28 2012-10-23 Apple Inc. Generating a three-dimensional model using a portable electronic device recording
DE102010006702A1 (de) 2009-02-26 2010-09-02 Navigon Ag Verfahren und Vorrichtung zur Berechnung alternativer Routen in einem Navigationssystem
US20100225644A1 (en) 2009-03-05 2010-09-09 Navteq North America, Llc Method and System for Transitioning Between Views in a Traffic Report
WO2010105712A1 (en) 2009-03-16 2010-09-23 Tele Atlas B.V. System and method for verifying map update reports using probe data
US8260550B2 (en) 2009-06-19 2012-09-04 GM Global Technology Operations LLC Presentation of navigation instructions using variable levels of detail
JP2011002395A (ja) * 2009-06-22 2011-01-06 Aisin Aw Co Ltd 地点検索装置、地点検索方法及びプログラム
US8374390B2 (en) 2009-06-24 2013-02-12 Navteq B.V. Generating a graphic model of a geographic object and systems thereof
US20110054775A1 (en) 2009-08-25 2011-03-03 Thomas David Snyder Electronic device with gps application triggered display
US20110077852A1 (en) 2009-09-25 2011-03-31 Mythreyi Ragavan User-defined marked locations for use in conjunction with a personal navigation device
US20110099507A1 (en) 2009-10-28 2011-04-28 Google Inc. Displaying a collection of interactive elements that trigger actions directed to an item
WO2011076989A1 (en) 2009-12-25 2011-06-30 Nokia Corporation Method and apparatus for persistent display of navigation content
US20120259539A1 (en) 2009-12-28 2012-10-11 Clarion Co., Ltd. Navigation Device and Guiding Method Thereof
WO2011146141A1 (en) 2010-05-21 2011-11-24 Telecommunication Systems, Inc. Personal wireless navigation system
AP2012006600A0 (en) * 2010-06-01 2012-12-31 Nokia Corp A method, a device and a system for receiving userinput
CN101936740A (zh) * 2010-08-24 2011-01-05 深圳市凯立德欣软件技术有限公司 三维电子地图导航方法及装置
US20130173159A1 (en) 2010-09-13 2013-07-04 Jeroen Trum Navigation device
DE102010062633A1 (de) 2010-12-08 2012-06-14 Robert Bosch Gmbh Verfahren und Vorrichtung zur Erkennung von Verkehrszeichen in der Umgebung eines Fahrzeuges und Abgleich mit Verkehrszeicheninformationen aus einer digitalen Karte
DE102011012791A1 (de) * 2011-03-02 2012-09-06 Audi Ag Kraftfahrzeug
EP2503289B1 (de) 2011-03-22 2016-06-22 Harman Becker Automotive Systems GmbH Verwaltung von Symbolen für digitalen Karten
US20120303263A1 (en) 2011-05-23 2012-11-29 Microsoft Corporation Optimization of navigation tools using spatial sorting
CN202204518U (zh) * 2011-05-25 2012-04-25 上海汽车集团股份有限公司 一种可实现2d/3d切换的导航系统
US20130035853A1 (en) 2011-08-03 2013-02-07 Google Inc. Prominence-Based Generation and Rendering of Map Features
EP2565583B1 (de) * 2011-08-29 2018-08-01 Harman Becker Automotive Systems GmbH Navigationsvorrichtung, Verfahren zur Ausgabe einer Karte und Verfahren zur Erzeugung einer Datenbank
US8855925B2 (en) 2012-01-20 2014-10-07 GM Global Technology Operations LLC Adaptable navigation device
US9182243B2 (en) 2012-06-05 2015-11-10 Apple Inc. Navigation application
US9230556B2 (en) 2012-06-05 2016-01-05 Apple Inc. Voice instructions during navigation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019068827A1 (de) * 2017-10-05 2019-04-11 Volkswagen Aktiengesellschaft Verfahren zum betrieb eines navigationssystems
US11663835B2 (en) 2017-10-05 2023-05-30 Volkswagen Aktiengesellschaft Method for operating a navigation system

Also Published As

Publication number Publication date
WO2013184348A3 (en) 2014-03-20
AU2013272077A1 (en) 2014-12-18
AU2016203177A1 (en) 2016-06-09
EP3407019A1 (de) 2018-11-28
AU2016203177B2 (en) 2017-08-24
EP3407019B1 (de) 2023-05-17
AU2013272077B2 (en) 2016-02-18
WO2013184348A2 (en) 2013-12-12
WO2013184348A4 (en) 2014-05-08
US20130345959A1 (en) 2013-12-26
CN104335008A (zh) 2015-02-04
EP2672225A3 (de) 2014-02-26
US9182243B2 (en) 2015-11-10
EP2672225A2 (de) 2013-12-11
CN104335008B (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
DE112013002792T5 (de) Navigationsanwendung
DE112013002796B4 (de) Bereitstellen von Navigationsinstruktionen während eine Vorrichtung im Sperrmodus ist
US10318104B2 (en) Navigation application with adaptive instruction text
US9146125B2 (en) Navigation application with adaptive display of graphical directional indicators
US8880336B2 (en) 3D navigation
DE112013002790T5 (de) Virtuelle Kamera für 3D-Karten
DE112013002799T5 (de) Sprachinstruktionen während Navigation
DE112013002794T5 (de) Anzeigen einer Ortsvorschau
TWI545536B (zh) 一地圖繪製應用程式中之旋轉操作
TWI592913B (zh) 用於呈現地圖之方法、機器可讀媒體及電子器件
TWI521187B (zh) 整合式地圖繪製及導航應用程式
TWI533264B (zh) 路線顯示及檢閱
TW201407562A (zh) 具新穎搜尋欄位之地圖繪製應用程式
EP4235634A2 (de) Navigationsanwendung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication