CN104335008A - 导航应用程序 - Google Patents

导航应用程序 Download PDF

Info

Publication number
CN104335008A
CN104335008A CN201380028724.0A CN201380028724A CN104335008A CN 104335008 A CN104335008 A CN 104335008A CN 201380028724 A CN201380028724 A CN 201380028724A CN 104335008 A CN104335008 A CN 104335008A
Authority
CN
China
Prior art keywords
crossing
navigation
map
point
instruction
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.)
Granted
Application number
CN201380028724.0A
Other languages
English (en)
Other versions
CN104335008B (zh
Inventor
M·范奥斯
C·布鲁门伯格
E·沃尔卡诺
B·A·摩尔
S·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 Computer 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,117 external-priority patent/US9146125B2/en
Priority claimed from US13/632,130 external-priority patent/US8880336B2/en
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN104335008A publication Critical patent/CN104335008A/zh
Application granted granted Critical
Publication of CN104335008B publication Critical patent/CN104335008B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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/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

一些实施例提供了一种在设备上呈现一种新型导航呈现的导航应用程序。该应用程序标识设备的位置,并且标识与所标识的设备位置相关联的道路标志的样式。该应用程序然后以匹配所标识的样式的道路标志的形式生成导航指令。为了生成道路标志,该应用程序在一些实施例中标识用于所标识的样式的道路标志模板图像,并且通过将所标识的道路标志模板与文本指令和图形指令中的至少一者合成来生成道路标志。在一些实施例中,道路标志被生成为具有与所标识位置处的道路标志相关联的纹理和外貌的复合纹理图像。

Description

导航应用程序
发明内容
本发明的一些实施例提供了一种包括具有多个新型特征的导航应用程序的设备。在一些实施例中,该设备具有显示该应用程序的输出的触敏屏幕和允许用户通过该屏幕提供触摸和手势输入以与该应用程序交互的多点触摸界面。
在一些实施例中,该导航应用程序的新型特征包括(1)多个不同视图(例如二维逐向视图、三维逐向视图、总体路线视图等等)和导航期间在这些视图之间的平滑过渡,(2)用于导航的新型用户界面(UI)控件,(3)用于标识沿所导航道路的操控的外貌逼真的道路标志,(4)动态地生成用于道路标志的指令和方向指示器以及所标识操控的其他呈现,(5)在导航应用程序在设备上运行于后台中时的信息导航显示,(6)新型语音识别导航引导,和(7)与设备上可用的或对于设备可用的其他路线规划应用程序的集成。
虽然所有这些特征在一些实施例中都是该导航应用程序的一部分,但是其他实施例在该导航应用程序中不采用所有这些特征。此外,在一些实施例中,导航应用程序是提供几个其他有用操作的集成地图绘制应用程序的一部分,所述其他有用操作包括位置浏览、地图搜索、和路线标识操作。但是,普通技术人员将认识到,在其他实施例中,导航应用程序是不包括这些其他操作中一些或所有操作的独立应用程序。
在这里介绍上述特征中的每一者。如上所述,一些实施例的导航应用程序提供导航期间的多个不同视图以及这些视图之间的平滑过渡。在一些实施例中,此类视图的示例包括二维(2D)逐向视图、三维(3D)逐向视图、和总体路线视图。一些实施例中的该应用程序在设备渲染的3D导航场景内从一透视渲染位置生成逐向视图。这个透视渲染位置在一些实施例中是能调节的,并且可以被视为能够从多个不同透视(例如从多个不同位置和取向)捕获3D导航场景的虚拟相机。因此,在一些实施例中,逐向导航是所导航路线的动画渲染,其是从基于携带设备的用户的穿行方向和速度沿路线指引穿行的虚拟相机的视点渲染的,携带设备的用户的穿行方向和速度在一些实施例中是由与该设备相关联的方向数据(例如GPS数据、三角蜂窝塔数据等)捕获的。
在导航期间,一些实施例的导航应用程序允许用户通过设备屏幕上的手势输入来改变虚拟相机的位置(即以下位置,从该位置渲染所导航路线)。虚拟相机的移动(即对路线进行渲染所源自的位置的移动)允许导航应用程序呈现另选的3D视图。一些实施例甚至使用虚拟相机来渲染用于逐向导航的俯视2D视图,而其他实施例通过放大和缩小2D地图来渲染俯视2D视图。
在一些实施例中,导航应用程序呈现用作为3D指示器和3D启动器/切换器二者的3D控件(例如按钮)。3D控件在一些实施例中被实现为悬浮控件,悬浮控件在被需要时可以“悬浮”在2D或3D导航呈现上方,而在不被需要时可以“悬浮”离开该呈现。这个控件还用作为关于当前视图是3D视图的指示器。3D控件可以具有不同外观(例如被着以灰色、黑色、蓝色等)来提供不同指示。在一些实施例中,3D控件在3D数据对于用户当前位置不可用时为灰色,在3D数据可用但是用户当前正在查看2D地图时为黑色,在用户当前正在3D模式中查看地图时为紫色。在一些实施例中,3D控件在用户处于某个缩放水平时显示建筑物图像,并且在被用户选择时提供区域中建筑物的“空拍图”。其还提供进入和退出3D导航的一种快速机制。如下文中进一步所述,导航应用程序允许通过设备的多点触摸界面的其他手势输入来在2D和3D导航视图之间进行转换。
一些实施例中的导航应用程序使用悬浮控件以便将屏幕上控件保持为最少,并且从而尽可能多地显示交互式导航。在一些实施例中,悬浮控件是当用户在不同导航视图之间移动、或者对于导航仅仅是另一应用程序的几个模态中的一者的实施例在不同应用程序模态之间移动时通过以动画方式调节其内容来适配于眼前任务的一组控件的一部分。这个自适应特征允许导航应用程序针对不同任务进行优化,同时当在那些任务之间移动期间保持一致的外貌和交互模型。
当导航应用程序开始导航呈现时,一些实施例中的该应用程序(1)自动地隐藏悬浮控件以及对导航进行显示所沿着的地图顶部上的条栏(包含其他UI控件),以及(2)开始全屏逐向导航呈现。在这个模式中,该应用程序限制与地图的触摸交互。在一些实施例中,需要轻击来访问被自动隐藏的控件。在一些实施例中,这些控件朝向全屏导航外貌被适配,包括在沿顶部的条栏中预计到达时间(ETA)的突出显示。
在一些实施例中,顶部条栏中的控件中的一者是概览按钮。通过在导航期间的任何时间选择该按钮,用户可以无缝地在全屏;显示针对逐向指引优化的视图的逐向呈现;和显示剩余路线视图的概览呈现之间切换,这更好地适应浏览。
在一些实施例中,恒定的控件组和地图中的原位转变提供了概览模式和全屏模式之间的连续性。这些控件还包括允许用户在概览模式或全屏模式中结束导航的控件。一些实施例还允许在导航的同时执行搜索。例如,一些实施例提供下拉柄,其允许当在概览模式中导航期间将搜索栏拉入到概览显示中。替代地或者结合地,一些实施例允许在导航期间通过一些实施例的设备的语音识别输入来执行搜索。此外,在一些实施例中,该应用程序允许用户在逐向导航期间执行搜索(例如语音发起的和/或基于文本的搜索)。一些实施例的导航应用程序还允许通过设备的语音识别输入来发起导航。
在导航期间,一些实施例的导航应用程序还允许用户提供一些手势输入,而不引用悬浮控件或顶部条栏控件。例如,不同实施例提供不同手势输入来在逐向导航期间调节2D/3D视图。在一些实施例中,手势输入是用于调节缩放水平的两指张合操作。对缩放水平的这个调节固有地调节相机相对于路线指引的位置和旋转,并且从而改变路线指引的2D/3D透视图。
或者,作为对于缩放操作的替代或附加,其他实施例提供其他手势输入(例如手指拖动操作)来改变相机的位置。在再一些其他实施例中,手势输入(例如手指拖动操作)立即改变相机的查看方向以允许用户立即扫视所导航路线的侧面。在这些实施例中,该应用程序在一个短的时间段之后将相机返回到其先前沿路线的视图。
导航应用程序的另一新型特征是在导航期间使用的看起来逼真的道路标志。在一些实施例中,这些标志是与实际公路标志非常相像的纹理图像。一些实施例中的这些标志包括指令箭头、文本、标牌、和距离。一些实施例的导航应用程序在大量不同上下文中呈现大量标志变体。此外,在一些实施例中,该应用程序根据地区规范以不同颜色呈现标志。
对于靠近在一起的多个操控,一些实施例中的该应用程序在主标志下面呈现次标志。此外,随着经过一个操控,导航应用程序用模拟在公路上标志在头顶经过的运动来动画地显示该标志消失。在即将到来的操控正在接近时,导航应用程序用微妙动画(例如整个标志上闪光)来吸引对该标志的注意。
在一些实施例中,导航应用程序基于该应用程序正在显示与导航操控相关联的道路标志或其他呈现(例如列表视图)时所处的上下文,动态地生成用于该标志和呈现的指令。对于某一上下文,通过考虑多个因素来选择指令文本,这些因素诸如是可用空间、借助于除了文本之外的其他方式传送的信息的可用性(例如语音引导的可用性)、这些指令变体中每一者的局部长度、设备显示屏幕的尺寸等。通过本地地合成和评估几个可选方案,该应用程序可以在每个场景中挑选一最佳指令串。
类似地,一些实施例的导航应用程序基于该应用程序正在显示与导航操控相关联的道路标志或其他呈现(例如列表视图)时所处的上下文,自适应地生成用于该标志和呈现的方向图形指示器。例如,当在标志或呈现上有足够的空间供较大标志使用时,一些实施例的导航应用程序通过使用较大的图形方向指示器来标识在沿路线的交叉点处要执行的操控,所述较大的图形方向指示器包括:(1)大致表示车辆路径的突出的样式化箭头、和(2)对应于交叉点其他元素的不强调的一组线条和曲线。在使用该方法的一些实施例中,T型交叉点处的右转由具有直角的大箭头表示,该直角与平行于该大箭头的区段中的一者延伸的较小的闪烁区段连接。一些实施例中的这个较小区段也被推向侧面偏移,使得车辆所走的路径占主要位置。
操控的此类表示(其包括突出的样式化箭头和不强调的一组线条)提供了关于操控的相当完备的信息,同时仍然保持概括性和容易理解。但是,在其他上下文中可能在该标志或其他呈现上没有足够空间用于此类表示。因此,对于这样的情况,一些实施例的导航应用程序使用操控的另选表示,所述另选表示省略显示交叉点,而是只显示运动方向上的箭头。
为了生成用于沿路线的交叉点操控的突出样式化箭头或简化箭头,一些实施例中的导航应用程序从服务器接收交叉点和操控的描述。在一些实施例中,服务器执行自动过程来基于地图数据生成这个描述,并且以压缩的几何点数据来提供该信息。此外,在路线导航开始时,一些实施例中的服务器向导航应用程序提供沿路线的所有交叉点和操控的描述,并且间或地在用户偏离路线并且服务器计算出新路线时对该描述进行更新。
当导航应用程序接收到交叉点和操控描述时,一些实施例的该应用程序首先执行对交叉点和操控的表征进行简化的过程,然后使用这个所简化的表征来生成用于交叉点的突出的样式化图形方向指示器。为了显示交叉点处的操控,一些导航应用程序经常提供不对于交叉点进行表述也不传递太多信息的纯箭头,而其他导航应用程序提供交叉点的非常详细的表示和通过这个详细表示提供复杂的方向表示。因此,一种现有方法提供非常少的信息,而另一方法提供太多信息而使得信息实际上无用。通过基于交叉点的简化描述生成突出的样式化方向指示器,一些实施例的导航应用程序显示交叉点处操控的详细表示,同时消除交叉点的某些不必要的复杂性。
在一些实施例中,导航应用程序在该应用程序在后台中工作期间提供导航指令,并且甚至在设备被锁定期间提供导航指令。在一些实施例中,在只有减少的一组控件可以用来提供对设备的输入时,设备被锁定。例如,在一些实施例中,设备的锁定大大地限制了用户可以通过设备的触敏屏幕提供的输入的数量。
在一些实施例中,语音引导指令是在导航应用程序工作于后台中期间或在设备被锁定期间可以提供的指令的一个示例。作为语音引导的替代或与语音引导结合,导航应用程序可以在工作于后台中期间在至少两个模式中提供文本和/或图形指令。
首先,一些实施例的该应用程序将实时导航视图(例如逐向视图)结合在锁定屏幕背景中,所述实时导航视图包括在锁定屏幕显示中的文本和图形导航描述。利用这个呈现,用户可以在该应用程序运行于后台中期间看到导航指令,而无需对设备解锁。在一些实施例中,该应用程序还通过将正常情况下会占据导航显示所使用的空间的通知发送到锁定屏幕显示中的抽屉来改善锁定屏幕体验,其在一些实施例中是立即进行的,而在其他实施例中是在该通知在锁定屏幕视图中被显示了一个短的时间段之后进行的。此外,只要用户对设备解锁,一些实施例就在没有动画的情况下返回到导航显示,以便使体验无缝。
在一些实施例中,如果没有操控即将发生,在该应用程序在一时间段之后关闭锁定屏幕导航显示。但是,该应用程序在这些实施例中的一些实施例中在接近即将发生的操控和/或需要提供新导航指令时点亮屏幕。这相对于每个步骤的一段时间而言是小的时间量,从而导航指令的显示不会以显著地劣化电池寿命为代价。为了增强该体验,一些实施例中的导航应用程序在导航提示之前早早地激活环境光传感器,使得环境光设置可以被用来在到了显示导航地图的时间时将屏幕点亮到正确的亮度。
其次,在一些实施例中,甚至在设备未锁定时,导航应用程序也工作于后台中。在导航应用程序运行于执行几个其他应用程序的设备(例如智能电话)上时是这样的情况。在这样的设备中,在设备正在呈现设备的操作系统提供的视图(例如页面)或者设备上另一应用程序提供的视图时,导航应用程序会工作于后台中。
在导航应用程序在未锁定的设备上工作于后台中时,该设备在一些实施例中(1)在与即将到来的操控相距较远时,使用双倍高度状态栏来指示导航应用程序的后台运行,并且(2)在接近操控或者在能听到引导指令时,使用包括动态更新的与操控相距的距离的标志一样的导航标幅。此外,该应用程序保持所述标志一样的标幅直到操控完成,并且在该空间中抑制其他通知。在一些实施例中,对双倍高度状态栏或导航标幅的选择就指示设备切换到导航应用程序生成的导航视图。
下面将进一步介绍上述特征以及一些实施例的导航应用程序的一些其他特征。在上文和下文的描述中,很多这些特征被描述为是提供新型位置浏览、位置搜索、路线标识和路线导航操作的集成地图绘制应用程序的一部分。但是,普通技术人员将认识到,这些新型操作在其他实施例中由不执行所有这些操作、或者除了这些操作之外还执行其他操作的应用程序来执行。
上述发明内容旨在用作对本发明的一些实施例的简单介绍。其并非意味着对在本文档中所公开的所有发明主题进行介绍或概述。随后的具体实施方式以及在具体实施方式中所参照的附图将进一步描述发明内容中所述的实施例以及其他实施例。因此,为了理解该文档所描述的所有实施例,需要全面审阅发明内容、具体实施方式和附图。此外,受权利要求书保护的题材不被发明内容、具体实施方式及附图中的示例性细节所限定,而是被所附权利要求所限定,这是因为受权利要求书保护的题材在不脱离本题材的实质的情况下能够以其他特定形式而体现。
附图说明
在所附的权利要求中阐述了本发明的新型特征。但是,为了解释的目的,在以下附图中给出了本发明的几个实施例。
图1例示了执行本发明一些实施例的集成地图绘制应用程序的设备的一个示例。
图2以用户与地图绘制应用程序交互以获得路线规划方向的三个阶段例示了一个示例。
图3例示了一些实施例的导航应用程序如何提供3D控件作为用于进入3D导航模式的快速机制。
图4例示了在地图绘制应用程序从用于地图浏览的非沉浸式地图视图转换到用于导航的沉浸式地图视图时显示该应用程序的设备。
图5呈现了用于例示虚拟相机概念的一个简化示例。
图6例示了一些实施例的地图绘制应用程序改变3D控件的外观以指示地图视图的不同2D和3D状态。
图7例示了一些实施例中从3D模式到2D模式的切换。
图8例示了通过收缩和扩展手势对虚拟相机的距离进行的调节。
图9例示了角度可以通过手势调节的相机的一个实施例。
图10概念性地例示了一些实施例的地图绘制应用程序所提供的用于将虚拟相机的位置保持在沿弧线的限定范围内的特征。
图11例示了一些实施例的全屏模式。
图12例示了一些实施例中在设备上有电话呼叫期间控件被隐藏和显现的导航应用程序。
图13例示了一些实施例中所编程路线的结束。
图14例示了一些实施例中的导航程序结束控件。
图15例示了在一些实施例中当用户将地图推向侧面时地图的旋转。
图16和17例示了一些实施例中的概览控件。
图18概念性地例示了一些实施例的地图绘制应用程序为了渲染用于在客户端设备处显示的地图而执行的处理或地图渲染流水线。
图19A和19B概念性地例示了描述一些实施例的集成地图、搜索、和导航应用程序(例如上面章节中所述的应用程序)的不同状态以及这些状态之间的转换的状态图。
图20例示了在一些实施例中使用此类公路标牌的几个GUI场景。
图21以四个阶段例示了一些实施例的用于移除一导航标志并引入下一标志的动画。
图22通过四个阶段例示了一些实施例中的此类闪烁动画,这四个阶段将显示的背景示为灰色,以便在闪烁在标志上移动时与闪烁形成对比。
图23通过四个阶段例示了一些实施例中用于快速连续的操控的两个标志的显示。
图24概念性地例示了一些实施例的地图服务为了为提出请求的设备生成路线并且将路线和导航指令提供给提出请求的设备而执行的操作。
图25概念性地例示了一些实施例的地图服务为了生成和传输路线和交叉口数据给用户而执行的过程。
图26概念性地例示了一些实施例的用于确定应该一起作为单个交叉口对待的多组交叉点之间的路径区段的过程。
图27例示了交叉点的一个示例,并且表明了在一些实施例中不要求路径区段以直角相会或者路径直线地继续通过交叉点。
图28例示了一些实施例中具有两个双幅路径和一单向道路的交叉口。
图29概念性地例示了一些实施例中用于将几个交叉点一起联结成单个交叉口以及标识该交叉口的分支的过程。
图30例示了一些实施例中在一具有两个路径的双幅路和一具有两个路径的双幅路之间的经常存在的交叉口。
图31例示了一些实施例中左转通道被定义为单独路径区段的交叉口。
图32例示了一些实施例中的交叉口中的交流道。
图33例示了一些实施例中的交叉口中的交流道。
图34例示了一些实施例中的交叉口中的附加的双向路径。
图35例示了一些实施例中将八路径交叉口简化为四个分支,其中右侧分支的角度相对于水平线的偏离为右侧出口路径偏离的一半,因为右侧入口路径位于水平线上。
图36例示了一些实施例中将另一八路径交叉口简化为五个分支。
图37概念性地例示了一些实施例的用于点型交叉口的数据结构的一个示例。
图38例示了一些实施例的用于环岛交叉口的数据结构。
图39概念性地例示了一些实施例中将环岛交叉口简化为交叉口数据。
图40概念性地例示了一些实施例的用于修改交叉口数据以便提供用于路线的导航信息的过程。
图41例示了通过交叉口时所走的路线的概念绘图、用于该交叉口的数据结构、和修改该数据结构以便生成用于逐向导航指令的新数据结构。
图42例示了一些实施例中地图绘制应用程序显示不同类型的图形指示器箭头来向用户视觉地表示操控的几个不同场景。
图43例示了一些实施例中用于同一转弯的几个场景、以及这些不同箭头可如何用于这同一转弯。
图44概念性地例示了一些实施例的用于在路线检测期间显示图形指示器的过程。
图45概念性地例示了一些实施例的在这样的路线上执行导航的过程。
图46概念性地例示了为路线的操控生成此类图形方向指示器的过程。
图47概念性地例示了一些实施例中试图将沿路线的交叉点的分支的角度设置为预先指定的角度的倍数的过程。
图48例示了一些实施例中的一特定交叉点情形。
图49例示了一些实施例中使用默认交叉点/操控指示器代替基于几何形状的指示器的两个示例。
图50例示了一些实施例不使用简化的几何形状的环岛的示例。
图51概念性地例示了一些实施例的生成用于不同上下文的方向指示器的地图绘制应用程序。
图52例示了根据一些实施例的用于交叉点处特定操控的不同指令的合成的一个示例。
图53例示了几个不同场景,其中地图绘制应用程序在多个不同情形中为第一交叉点的特定操控显示自适应指令的不同示例。
图54例示了地图绘制应用程序在一些实施例中使用合成的指令集的另外的场景。
图55概念性地例示了一些实施例的用于在路线检测期间显示文本指令的过程。
图56概念性地例示了一些实施例的在这样的路线上执行导航的过程。
图57概念性地例示了一些实施例的用于对编码后的交叉点数据进行解码以及由从地图服务接收的路线和交叉点数据合成指令元素的过程。
图58概念性地例示了一些实施例的用于生成用于在不同上下文中显示的导航指令变体的过程。
图59概念性地例示了包括一些实施例的生成用于不同上下文的文本指令的地图和导航应用程序的一种系统架构。
图60是一些实施例的移动计算设备的架构的一示例。
图61概念性地例示了用以实现本发明的一些实施例的电子系统的一个示例。
图62例示了根据一些实施例的地图服务操作上下文。
具体实施方式
在本发明的以下具体实施方式中,提出并描述了本发明的许多细节、实例和实施例。然而,对于本领域的技术人员来说将清楚和显而易见的是,本发明并不限于所示出的实施例,并且本发明可在没有所讨论的具体细节和实例的情况下被实施。
I.导航用户界面
A.启动
一些实施例的导航应用程序是包括几个可用模态的集成地图绘制应用程序的一部分,所述几个有用模态包括位置浏览、地图搜索、路线标识和路线导航操作。这个集成应用程序(在下文中称为地图绘制应用程序、导航应用程序、或集成应用程序)在一些实施例中被定义为由具有显示该应用程序的输出的触敏屏幕的设备执行。在一些实施例中,这个设备具有多点触摸界面,用于允许用户通过屏幕提供触摸和手势输入以与该应用程序交互。此类设备的示例有智能电话(例如苹果公司售卖的运行操作系统的电话、运行操作系统的电话等等)。
图1例示了执行本发明一些实施例的集成地图绘制应用程序的设备100的一个示例。这个图还例示了在这个应用程序中发起路线导航的一个示例。这个应用程序具有新型用户界面(UI)设计,其通过使用最少集合的悬浮在内容上面的屏幕上控件以便尽可能多地显示内容,来无缝地紧密地集成用于其不同模态中每一者的控件。此外,这个集群适配于眼前任务,从而在用户在不同模态之间(例如在浏览、搜索、路线规划和导航之间)移动时以动画方式调节其内容。具有自适应本质的这个公共元素使地图绘制应用程序能够对于不同任务进行优化,同时当在那些任务之间移动时保持一致的外貌和交互模型。
图1示出了与地图绘制应用程序交互的六个阶段105、110、115、117、119、121。第一阶段105示出了设备的UI 120,其在任务栏区域125中以及在UI的页面上具有几个应用程序的几个图标。这个页面上的图标中的一者是用于地图绘制应用程序130的图标。第一阶段显示了用户通过在设备的屏幕上地图绘制应用程序的位置处与该屏幕的触摸接触而选择该地图绘制应用程序。
第二阶段110显示了在地图绘制应用程序已经打开之后的设备。如这个阶段中所示,地图绘制应用程序的UI具有起始页面,该起始页面在一些实施例中显示(1)设备的当前位置的地图和(2)设置在顶部条栏140中的以及作为悬浮控件的几个UI控件。如图1中所示,悬浮控件包括指示器145、3D控件150、和卷页控件155,而顶部条栏140包含指引控件160、搜索栏165、和书签控件170。
在一些实施例中,用户可以通过在搜索栏165中轻击来发起搜索。这就指示该应用程序呈现(1)呈现屏幕上键盘和(2)打开充满重要补全的搜索表格的动画。这个表格具有一些重要的精妙之处。在搜索栏被轻击时并且在词项被编辑之前,或者在搜索栏为空时,该表格包含“最近词项”列表,其在一些实施例中是用户已经请求过的最近搜索和路线指引。这使得非常容易快速地调出最近访问过的结果。
在搜索栏上的任何输入之后,该表格被填充以来自本地来源(例如书签、联系人、最近搜索、最近路线指引等等)和远程服务器的搜索补全。将用户的联系人卡结合到搜索界面中就为该设计增加了附加的灵活性。在显示最近词项时,从当前位置到用户家的路线在一些实施例中始终被提供,而在其他实施例中其在被认为是“适当”的上下文中被提供。此外,在一些实施例中,当搜索词与地址标签的至少一部分(例如“Work”的“ork”)匹配时,该应用程序将用户的带标签的地址作为补全呈现在搜索表格中。这些行为一起使得搜索UI成为一种强有力的方式来从多个来源获得结果到地图上。除了允许用户发起搜索之外,一些实施例中主地图视图中文本字段的呈现还允许用户看到对应于地图上搜索结果的查询以及通过清除该查询来移除那些搜索结果。
书签控件170(例如按钮)允许该应用程序对位置和路线加书签。位置指示器145允许设备的当前位置被具体地标记在地图上。一旦这个指示器被选择,该应用程序就将设备的当前位置保持在地图中央。在一些实施例中,其还可以标识设备当前指向的方向。
3D控件150是用于三维(3D)地查看地图或检测路线的控件。地图绘制应用程序提供该3D控件作为进入和退出3D的一种快速机制。这个控件还用作(1)关于当前视图是3D视图的指示器、(2)关于3D透视可用于某个地图视图的指示器(例如,被缩小的地图视图可能没有3D视图可用)、(3)关于3D透视不可用的指示器(例如对于地图区域没有3D数据可用)、和(4)关于在这个给定缩放水平有空拍图动画可用的指示器。3D控件可以提供对应于每个指示的不同外观。例如,3D控件可以在3D视图不可用时被着以灰色,在3D视图可用但是地图处于2D视图中时被着以黑色,在地图处于3D视图中时被着以蓝色。在一些实施例中,在对于地图上用户的给定缩放水平和位置有空拍图动画可用时,3D控件变为建筑物图像。
卷页控件155是通过将某些较不常用的动作放置在能通过显示在地图上的卷页控件访问的次UI屏幕中来允许该应用程序使屏幕上控件的数量最少的一种控件。在一些实施例中,卷页被永久地显示在该应用程序提供的地图视图中的至少一些地图视图上。例如,在一些实施例中,该应用程序在起始页面上永久地显示卷页(例示在第二阶段110中),其提供来用于允许用户浏览或搜索位置或者标识路线。
指引控件160打开指引输入页面180,用户通过该页面可以请求在起始位置和结束位置之间标识的路线。图1的第三阶段115例示了对指引控件160的选择就打开指引输入页面180,该页面在第四阶段117中被示出。指引控件是可以用来指示地图绘制应用程序标识和显示两个位置之间的路线的三个机制中的一者;另外两个机制是(1)为地图中所选项目显示的信息标幅中的控件、(2)在搜索栏165中显示的设备所标识的最近路线。因此,信息标幅控件和搜索栏165是该应用程序用来使不同模态之间的转换无缝的两个UI工具。
第四阶段117示出了指引输入页面180包括用于提供路线的起始和结束位置的起始和结束字段、和列出该应用程序已经提供给用户的最近路线的表格。这个页面上的其他控件是用于开始路线、用于将起始位置和结束位置对调、用于取消指引请求、用于挑选步行、驾车、或公交路线的控件。这些控件和地图绘制应用程序的其他方面在提交于2012年9月30日的名称为“Problem Reporting in Maps”的美国专利申请13/632,102中进行了描述。美国专利申请13/632,102以引用方式并入本文。
第四阶段例示了用户选择被自动填充在表格182中的最近方向中的一者。第五阶段119然后在2D地图视图上显示在通过页面180指定的所指定起始和结束位置之间的三条路线。其还示出了选择第二路线以及在布局顶部的条栏中显示了关于这条路线的一些信息。这个条栏被显示为包括开始和结束按钮。在第五阶段中,开始按钮被显示为被选中。
如第六阶段中所示,对开始按钮的选择就指示该应用程序进入逐向导航模式。在这个示例中,该应用程序已经进入2D逐向导航模式。在其他实施例中,该应用程序将默认地进入3D逐向导航模式。在这个模式中,该应用程序显示逼真的标志184,其标识在所导航路线中从设备的当前位置到下一交叉点操控的距离以及一些其他相关信息。在其他实施例中,该应用程序还显示顶部条栏,其包括关于导航的一些信息以及分别用于结束导航和获得所导航路线的剩余部分或所导航路线的整个部分的概览的结束和概览按钮。
一些实施例的地图绘制应用程序利用该设备在设备位置处所接收的GPS信号中的坐标(例如经度、高度、和纬度坐标)标识设备位置。另选地或结合地,地图绘制应用程序使用其他方法(例如蜂窝塔三角测量)来计算当前位置。在携带该设备的用户偏离路线时,一些实施例的地图绘制应用程序追踪设备的位置并且从偏离后的位置重新计算新的路线以便将用户从偏离后的位置重新引导到目的地位置。换言之,工作于导航模式中的一些实施例的地图绘制应用程序要求设备始终在路线上。
该应用程序还显示悬浮3D控件和悬浮列表控件,它们在上文中已经介绍过。应当指出的是,列表控件是在进入路线检测和路线导航模态时自适应地添加到悬浮控件集群,而位置指示器是在进入路线导航模态时从悬浮控件中移除。此外,在从路线检测模式转到路线导航模式时,该应用程序在一些实施例中执行涉及在该应用程序转入导航呈现之前卷页完全舒展开的动画。
在一些实施例中,这个动画过渡包括在启动导航呈现后一短时间段,从导航呈现中移除顶部条栏、其相关联控件和悬浮控件,以及将标志184移动到呈现的顶部边缘。如下文中进一步所述,在一些实施例中,该应用程序要求用户在所导航地图上轻击来恢复顶部条栏、其控件和悬浮控件,并且要求另一轻击来再次从地图中将它们移除。其他实施例提供其他机制用于查看和移除这些控件。
作为允许用户获得导航体验的另一方式,一些实施例的地图绘制应用程序在信息标幅中提供UI项目,该UI项目通过表示兴趣点(POI)的图钉来显现。图2例示了关于用户与地图绘制应用程序交互以获得路线规划方向的三个阶段205-215的一个示例。这个示例是在使用汽车图标230的上下文中提供的。
第一阶段205例示了3D地图视图中的地图。如图所示,3D控件250显示为高亮以指示地图处于3D地图视图中。第一阶段205还例示了通过运行如图所示的搜索查询为“Pizza”的搜索而得到的用于搜索的两个图钉的两个信息标幅。用户选择汽车图标230。如上所述,汽车图标230用于显示到由包括汽车图标230的标幅相关联的图钉表示的位置的一条或多条路线。包括汽车图标230的标幅240还示出了该场所的简要描述、星级评定、和用于发起用于该POI的“舞台”的箭头。
第二阶段210例示了一些实施例的地图绘制应用程序响应于在前一阶段205中选择汽车图标230而显示的两条路线:路线1和路线2。用户已经选择了路线1,这通过路线1上的高亮来表示。用户还选择了开始按钮。如上所述,一些实施例中的开始按钮是用于启动根据所选路线的导航。
第三阶段215例示了地图绘制应用程序显示指令标志260,其为用于第一指令的标志。地图绘制应用程序在顶部条栏140中已经用结束按钮270和概览控件275代替了清除控件255和开始按钮。结束按钮用于结束路线的导航,概览控件275用于如果为了显示整条路线必须调节缩放水平的话,通过调节所显示地图的缩放水平来在地图视图中显示整条路线。在一些实施例中,如图所示,地图绘制应用程序在顶部条栏140中显示ETA、到达目的地所需的时间量、和到达目的地还剩余的距离。
当地图绘制应用程序在地图绘制应用程序工作于路线检测模式中期间接收到对结束按钮的选择时,一些实施例的地图绘制应用程序通过返回到地图浏览模式而停止对所选路线的检测。一些实施例的地图绘制应用程序通过从地图中移除所选路线、放回卷页、以及用包括指引控件、搜索栏、和书签控件的一组其他控件替换顶部条栏中的信息和控件,来返回到地图浏览模式。也就是说,地图绘制应用程序将UI页面的外观返回到与第一阶段205中所示的UI页面类似的UI页面。一些实施例的地图绘制应用程序在从检测模式切换到地图浏览模式时,不将地图转移到另一区域。
B.2D和3D导航
一些实施例的导航应用程序可以以2D模式或3D模式显示导航。如上所述,悬浮控件中的一者为3D控件250,其允许用户查看三维(3D)的导航呈现。图3例示了一些实施例的导航应用程序如何提供3D控件250作为进入3D导航模式的一种快速机制。这个图在三个阶段305-315中例示了这个操作。第一阶段305例示了用户在查看二维导航呈现期间选择3D控件150。
第二阶段310例示了在过渡到3D呈现的过程中的导航呈现。如这个图中所示,3D控件在这个阶段中显现为高亮,以指示导航呈现已经进入3D模式。如上所述,导航应用程序在一些实施例中通过从三维场景中可以被概念性地视为正在捕获地图视图的虚拟相机的位置的特定位置渲染地图视图来生成所导航地图的3D视图。这个渲染在下文中参考图5进一步描述。
第三阶段315然后例示在过渡到其3D外观中完成时的导航呈现。如第二和第三阶段中建筑物高度之间的差别所示,从2D到3D导航的过渡在一些实施例中包括显示所导航地图中的三维对象变得更大的动画。在提交于2012年9月30日的名称为“Displaying 3D Objects in a 3D MapPresentation”的美国专利申请13/632,027中介绍了生成此类的显示对象升高/降低及变得更大/更小的动画。美国专利申请13/632,027以引用方式并入本文。
一些实施例使用从2D地图视图到3D地图视图或者反方向的影片过渡。例如,在地图绘制应用程序在显示路线的起始位置期间接收到对3D控件250的选择时,地图绘制应用程序从2D地图视图开始并且平滑地从用于2D的第一虚拟相机视图过渡到进一步放大并且指向路线起点方向的新的虚拟相机3D视图。这样,虚拟相机执行平移、缩放、和旋转操作的组合,以便到达用于导航的路线的起点。也就是说,虚拟相机在弧线上移动并且在相机沿该弧线向下移动时向上旋转。另外,地图绘制应用程序可以旋转弧线自身,以将虚拟相机视点对准路线的初始道路区段。换言之,地图绘制应用程序在影片过渡期间旋转地图。
图4通过六个阶段405-430例示了在地图绘制应用程序从用于地图浏览的非沉浸式地图视图过渡到用于导航的沉浸式地图视图时显示该应用程序的设备400。
第一阶段405例示了用户为位置“Pizza Place”选择了快速路线按钮以便生成从用户的当前位置(设备400的屏幕中央附近)到所选位置的路线。第二阶段410例示了地图绘制应用程序显示前往位置“Pizza Place.”的路线435。在第二阶段410,用户选择了“开始”UI控件440。因此,该应用程序开始进入导航。
如第三到第六阶段415-430所示,一些实施例使用从2D(或3D)非沉浸式地图视图到3D沉浸式地图视图的影片过渡。该应用程序显示从其当前状态(在410显示)开始,并且平滑地从第一虚拟相机视图过渡到进一步放大并且指向路线起点方向的新的虚拟相机视图。这样,虚拟相机可以执行平移、缩放、和旋转操作的组合,以便到达用于导航的路线的起点。如这些阶段中所示,虚拟相机移动并旋转到第六阶段430中所示的导航位置指示器(即圆块)后面的其最终位置。
此外,在一些实施例中,地图绘制应用程序提供两个不同类型的3D呈现:沉浸式3D呈现和非沉浸式3D呈现。沉浸式呈现在一些实施例中不仅显示更多几何形状,而且为在非沉浸式呈现中显示的几何形状显示更多细节。地图绘制应用程序还提供非沉浸式和沉浸式呈现之间的平滑过渡。
为了实现这样的平滑过渡以及生成其它新型效应,一些实施例的地图绘制应用程序使用一种新型图像处理流水线。这个流水线执行多个预加载操作以下载、检索和/或解压缩导航呈现所需要的地图图块、准备其用于其渲染操作的渲染流水线、和准备用于在沉浸式和非沉浸式3D呈现之间平滑过渡的复制流水线。为了显示沉浸式和非沉浸式3D地图呈现,一些实施例必须生成多个图块供客户端设备渲染以便生成道路、建筑物和周围景物。在一些实施例中,此类图块的示例包括用于非沉浸式3D呈现的道路和建筑物图块、和用于沉浸式3D呈现的导航和建筑物图块。这个流水线在提交于2012年9月30日的名称为“Problem Reporting in Maps”的美国专利申请13/632,102中进行了描述。这个流水线还在提交于2012年9月30日的名称为“Virtual Camera for 3D Maps”的美国专利申请13/632,040中进行了描述。美国专利申请13/632,040以引用方式并入本文。
在一些实施例中,非沉浸式和沉浸式查看模式是用于查看具有不同构建体和/或几何形状的不同3D地图的查看模式。例如,一些实施例的非沉浸式查看模式用于查看包括道路、建筑物、土地覆盖等的3D地图。沉浸式查看模式用于查看包括与用于非沉浸式查看模式的3D地图相同或类似的元素(例如道路、建筑物、土地覆盖等)的更详细的3D地图。但是,这个更详细的3D地图还包括提供更逼真和丰富的3D地图的更高细节的构建体(例如树、叶、行人步道、隔离带、道路车道、道路沥青、隔离带、人行横道等)。
此外,非沉浸式和沉浸式查看模式可以被定义用于以不同的缩放水平范围查看3D地图。例如,一些实施例的非沉浸式查看模式被定义用于以低缩放水平(例如缩放水平0-14)查看3D地图,而一些实施例的沉浸式查看模式被定义用于以高缩放水平(例如缩放水平16-21)查看3D地图。在不同实施例中,查看模式可以被定义为查看任意数量的不同缩放水平。在一些情况下,沉浸式查看模式的缩放水平范围被定义为是相对于为非沉浸式查看模式定义的缩放水平更高、更低、相同、或重叠的缩放水平。这些查看模式和地图绘制应用程序的其他方面在提交于2012年9月30日的名称为“Virtual Camera for 3D Maps”的美国专利申请13/632,040中进行了描述。美国专利申请13/632,040以引用方式并入本文。.
1.虚拟相机
一些实施例的导航应用程序能够从多个透视显示导航地图。该应用程序可以在三维(3D)或二维(2D)中显示地图。模仿虚拟相机所看到的虚拟场景来生成3D地图。图5呈现了一个简化示例来例示虚拟相机512的概念。在渲染3D导航地图时,虚拟相机是3D地图场景中设备从那里渲染该场景的3D视图的位置的概念化。图5例示了包括四个对象的3D导航地图场景510中的位置,这四个对象是两个建筑物和两个相交的道路。为了例示虚拟相机概念,这个图例示了三个情景,其中每一个对应于不同虚拟相机位置(即不同渲染位置)和在设备上显示的不同的所得到的视图。
第一阶段501显示虚拟相机512位于第一位置以一角度(例如30度角)向下朝向3D场景510指向。通过从阶段501中所示的位置和角度渲染3D场景,该应用程序生成3D地图视图518。从这个位置,相机正指向作为设备前方的移动位置的位置。虚拟相机512保持在设备的当前位置后面。“在当前位置后面”在这个情况下是指以与设备正在移动的当前方向相反的方向沿导航应用程序的所限定路径向后。
导航地图视图518看起来好像其是由相机在设备的位置指示器516后面从上面拍摄的一样。虚拟相机的位置和角度将位置指示器516放置在导航地图视图518的底部附近。这还导致屏幕的大部分被填充以设备的当前位置前方的街道和建筑物。相反,在一些实施例中,位置指示器516位于屏幕中央,屏幕的一半表示设备前方的事物,而另一半表示设备后方的事物。为了简化附图,对于视图518、528、和538没有描绘道路标志。
第二阶段502显示了虚拟相机512位于另一位置,以更大的第二角度(例如-45°)向下朝向场景510指向。该应用程序从这个角度渲染场景510,从而得到3D导航地图视图528。建筑物和道路比其在第一导航地图视图518中的显示小。再一次,虚拟相机512在场景510中位置指示器516后面上方。这又再次导致位置指示器出现在3D地图视图528的下面部分中。相机的位置和取向也再次导致屏幕的大部分显示位置指示器516(即携带该设备的车辆的位置)前方的事物,这是进行导航的人需要知道的。
第三阶段503显示了虚拟相机512位于俯视视图,其向下看向先前用来渲染3D视图518和528的3D地图场景510中的一个位置。从这个透视渲染的场景是2D地图视图538。与在一些实施例中是透视3D渲染操作的第一阶段和第二阶段的3D渲染操作不同,第三阶段中的渲染操作相对简单,因为其只需要裁剪由该应用程序或用户所指定的缩放水平标识的2D地图的一部分。因此,在这种情形中的虚拟相机表征在一定程度上不必要地使该应用程序的操作的描述复杂化,因为裁剪2D地图的一部分不是透视渲染操作。
在第三阶段503,一些实施例中的地图绘制应用程序在相机从3D透视视图切换到2D俯视视图时从自特定透视方向渲染3D场景切换到裁剪2D场景。这是因为在这些实施例中,该应用程序被设计用于使用更简单的并且不生成不必要的透视人工痕迹的简化渲染操作。但是,在其他实施例中,地图绘制应用程序使用透视渲染操作来从俯视虚拟相机位置渲染3D场景。在这些实施例中,所生成的2D地图视图在一定程度上不同于在第三阶段503中所例示的地图视图538,因为不在视图中央的任何对象都变形,其中对象距离视图中央的距离越远,变形越大。
虚拟相机512在不同实施例中沿不同轨线移动。在图5中例示了两个这样的轨线550和555。在这两个轨线中,相机在弧线中移动并且在相机沿弧线向上移动时向下旋转。轨线555与轨线550的不同之处在于在轨线555中,相机在其沿弧线向上移动时从当前位置向后移动。
在沿这些弧线中的一者移动的同时,相机旋转以将位置指示器前方的一个点保持在相机的焦点处。在一些实施例中,用户可以关闭三维视图,而以纯二维视图前进。例如,一些实施例的该应用程序允许利用3D按钮560来开启和关闭三维模式。3D按钮560对于逐向导航特征而言是必要的,因为其具有指示器和切换器的功能。当3D被关闭时,相机将保持2D导航体验,但是当3D被开启时,在3D查看角度不适当时(例如当绕过在3D模式中会被阻挡的拐角时)仍然可能存在某些俯视透视。
2.3D控件
图6在六个不同阶段605-630中例示了一些实施例的地图绘制应用程序改变3D控件的外观以指示地图视图的不同2D和3D状态。第一阶段605例示了地图绘制应用程序正在显示地图和包括3D控件150的悬浮控件。如图所示,地图绘制应用程序正在以某个低缩放水平(地图还没有被放大太多)在2D中显示地图。3D控件150利用第一外观(例如灰色字母“3D”)被显示以指示在这个特定缩放水平没有3D地图数据可用。第一阶段605还显示了地图绘制应用程序正在接收用户的放大地图(即提高缩放水平)的手势输入。
第二阶段610显示了地图绘制应用程序正在以比前一阶段605中更高的缩放水平显示地图。但是,3D控件150正保持第一外观,因为即使在这个特定的更高缩放水平仍然没有3D地图数据可用。第二阶段610还显示了地图绘制应用程序正在接收进一步放大地图的另一手势输入。
第三阶段615显示了地图绘制应用程序正在以比前一阶段610中更高的缩放水平显示地图。地图绘制应用程序已经将3D控件150的外观改变为第二外观(例如黑色字母的“3D”)以指示在这个缩放水平有3D地图数据可用。在地图绘制应用程序接收到对3D控件150的选择时,一些实施例的地图绘制应用程序会将3D控件150的外观改变为第三外观(例如蓝色字母的“3D”)并且在3D中显示地图(例如通过从用于2D的直向下视图改变为透视视图)。第三外观因此会指示地图是在3D中显示。第三阶段615显示了地图绘制应用程序正在接收用于将地图甚至进一步放大到更高缩放水平的再另一手势输入。第三阶段615显示了地图绘制应用程序在这个缩放水平正将地图中的建筑物显示为灰色盒体。
第四阶段620显示了地图绘制应用程序正以比前一阶段615更高的缩放水平显示地图。地图绘制应用程序已经将3D控件150的外观改变为第四外观(例如如图所示的第一颜色的建筑物图标)以便指示在这个缩放水平有用于渲染沉浸式3D地图视图的3D沉浸式地图数据可用。第四阶段620还显示了一些实施例的地图绘制应用程序正在接收对3D控件150的选择。
第五和第六阶段625和630显示了地图绘制应用程序在开始提供3D沉浸式地图视图之后提供的后续视图(但是不必然是连续视图)。在一些实施例中,在第五和第六阶段之间缩放水平不改变,但是地图视图中建筑物的高度增大以提供表明视图正从2D视图移动进入3D沉浸式地图视图的动画。此外,从第四阶段620到第五阶段625,地图绘制应用程序已经将3D控件的外观改变为第五外观(例如如图所示的第二颜色的建筑物图标),以便指示地图是在3D沉浸式视图中显示。
3.视图的自动改变
一些实施例的该应用程序允许使用任何特定的虚拟相机角度,而不仅仅是这里所指出的30度和60度角度。一些实施例的该应用程序允许用户设置相机的向下角度。一些实施例的该应用程序出于多种原因(例如为了将特定焦点保持在屏幕顶部附近)自动地调节相机的角度。在再一些实施例中,导航应用程序自动地设置相机的角度,但是允许用户否决自动设置的角度。
在一些实施例中,当在3D模式中运行导航应用程序的设备就要到达具有转弯的交叉点时,导航应用程序切换到2D模式以便使用户能够更清楚地识别这个转弯。图7例示了一些实施例的从3D模式到2D模式的切换。在五个阶段701-705中示出了这个图。在阶段701中,该应用程序在3D视图中显示导航地图。导航框710显示50英尺后右转。如果位置标识符714一样,地图712是3D的。
随着设备在阶段702中接近交叉点(如导航框720所示),3D地图712切换到2D地图722,其中位置指示器724也为2D的。地图绘制应用程序还改变3D控件150的外观以指示地图现在是2D的。在设备在阶段703中绕过该拐角时,地图722保留在2D中。随着设备绕过该拐角,阶段703中具有指令“右转进入A街”的导航框730在阶段704中被具有指令“在A街上继续直行0.5英里”的导航框740代替。地图在阶段704中保持为2D,直到该拐角已经完全被导航,在那时,在阶段705,地图返回到3D视图,在导航框750中具有新的指令“0.3英里后,目的地将在您左侧”。地图绘制应用程序还已经改变3D控件150的外观以指示地图现在回到3D中。
在一些实施例中,导航应用程序为每次位置更新(例如每秒一次)确定以下五条信息中的一些或全部。第一,导航应用程序确定基准点的位置(即用户的位置)。
第二,导航应用程序确定虚拟相机的焦点的位置,其被用来确定虚拟相机应该面向哪个方向。如果用户偏离了路线,则焦点将在沿用户行进方向(如果可以确定的话)用户前方固定距离处或者用户北方固定距离处(如果不能确定用户行进方向的话)。如果用户在路线上,则焦点将在沿该路线用户前方固定距离处,从用户到这个焦点的矢量与用户的行进方向之间的角度上限为一最大值。这就允许虚拟相机在用户实际转弯之前绕过转弯进行隐约窥视。例如,如果路线在前方很近的地方转过拐角,则焦点将是从设备的当前位置绕过该拐角的一个点。因为转动虚拟相机面对那个实际点可能会导致虚拟相机直接面对建筑物,所以针对虚拟相机可以偏离当前方向可以看多远对虚拟相机施以了上限。第三,导航应用程序确定兴趣点的位置(例如即将到来的交叉口的位置)。
第四,导航应用程序确定虚拟相机视图样式(俯视居中、俯视向前、或屋顶)。“俯视居中”是指虚拟相机应该直向下俯视用户的位置,使得用户的位置位于屏幕中央。“俯视向前”是指虚拟相机应该直向下俯视用户的位置,使得用户的位置朝屏幕的底部。“屋顶”是指虚拟相机应该在用户位置后面并且俯仰使得其正沿从用户位置到焦点的矢量向前看。如果用户偏离路线或者用户的行进方向不能确定(例如在用户停好车时),则虚拟相机将处于俯视居中视图样式中。否则,视图样式将通过用户是否已经请求了“2D”导航来确定。如果用户已经请求了2D导航,则视图样式将为俯视向前。否则,视图样式将为屋顶。
第五,导航应用程序确定虚拟相机对焦样式(例如巡航或硬对焦)。“巡航对焦样式”是指虚拟相机应该基于视图样式采用预设高度和俯仰角度。“硬对焦”是指虚拟相机应该调节其高度(在俯视居中或俯视向前视图样式的情况下)或俯仰(在屋顶视图样式的情况下)使得给定的兴趣点正好在屏幕上(即虚拟相机应该在用户接近兴趣点时对焦在其上)。当远离交叉口时,导航应用程序将虚拟相机置于巡航对焦模式中。当接近“感兴趣”的交叉口时,导航应用程序将虚拟相机置于如上所述的硬对焦模式中,并且交叉口(兴趣点)的位置将被传递给虚拟相机。当在硬对焦模式中时,该应用程序调节虚拟相机的高度(在俯视居中或俯视向前视图样式的情况下)或俯仰(在屋顶视图样式的情况下),使得交叉口位于屏幕上适当的位置处。利用用户将以何角度离开给定交叉口来确定这个交叉口是足够“感兴趣”以聚焦在上面。如果该角度足够大(例如90度右转),则交叉口被认为是“感兴趣”的,并且虚拟相机将聚焦在其上。如果角度太小(例如并上公路),则虚拟相机将保持在巡航对焦模式中。
根据这五条信息,导航应用程序计算虚拟相机的期望位置和取向。从所述期望位置和取向,可以获得以下三个关键点的位置:(1)虚拟相机的位置、(2)虚拟相机的向前矢量与地面之间的交点、和(3)沿虚拟相机右矢量的点。这三个点相互独立地动画显示如下:(1)在有新的点可用时,该应用程序在用于该点的最后估计的位置/切线和这个新的点之间拟合三次多项式,以及(2)对于动画的每个步骤,导航应用程序为每个曲线估计这些三次多项式并且从中提取虚拟相机位置和取向。
4.相机高度的用户调节
除了(或代替)使导航应用程序控制相机(例如在绕过拐角时从3D变为2D),一些实施例还允许用户调节相机的水平。一些实施例允许用户用两根手指进行命令手势来调节相机的距离(高度)和角度。一些实施例甚至允许多种类型的手势来控制相机。图8例示了通过收缩和扩展手势调节虚拟相机的距离。这个图以三个阶段801-803示出。在阶段801中,该应用程序显示基本场景810,其中虚拟相机812位于用于3D查看的默认水平,屏幕视图814是从场景810渲染的。基本场景包含两个建筑物和一T型交叉点。在阶段801中,建筑物是从45度向下角度以及使其看起来为特定尺寸的特定高度查看的。位置指示器816也以特定尺寸被显示。
在阶段802,用户通过在屏幕视图824上将两根手指相互靠近地放置在设备的屏幕上并且在它们位于屏幕上期间移动这些手指使其分开,来进行手势。移动这些手指使其分开就具有使地图(手指之间的部分和地图的其余部分二者)更大的效果。为了使地图中的事物看起来更大,该应用程序使虚拟相机812拉近镜头。在一些实施例中,地图绘制应用程序用来使虚拟相机812沿其移动的线条850是虚拟相机812的正面与虚拟相机812的焦点形成的线条。一些实施例的地图绘制应用程序沿由虚拟相机812的正面和3D地图810中基于用户输入的位置形成的线条移动虚拟相机812,以放大到3D地图810的视图中。
在阶段802的放大之后,用户对于阶段803决定缩小。在这个阶段,用户已经将两根手指放置在屏幕上并且使它们更靠近到一起。使这些手指更靠近到一起就具有缩小地图(手指之间的部分和地图其余部分二者)的效果。缩小调节是通过沿线条855移动虚拟相机812进一步远离3D地图810来实现的。在一些实施例中,地图绘制应用程序用来使虚拟相机812沿其移动的线条855是由虚拟相机812的正面和虚拟相机812的焦点形成的线条。一些实施例的地图绘制应用程序沿由虚拟相机812的正面和3D地图810中基于用户输入的位置形成的线条移动虚拟相机812,以放大到3D地图810的视图中
利用这个位置处的虚拟相机812渲染3D地图视图就得到3D地图视图834,其中建筑物和街道看起来比3D地图视图824中所显示的位置更远。如虚拟相机812的虚线版本所示,虚拟相机812沿线条855移动进一步远离3D地图810。
除了能通过放大和缩小控制之外,一些应用程序还允许用户改变虚拟相机的角度。图9例示了角度可以通过手势调节的相机的一个实施例。这个图在三个阶段901-903中示出。在阶段901中,相机以45度向下指向场景910。场景910包含两个建筑物和一T型交叉点,它们在场景视图914中显示。建筑物是从特定角度和特定尺寸显示的。位置指示器916也以特定尺寸被显示。
在阶段902中,用户已经将两根手指920相互近似水平地放置在屏幕上并且向上拖动。这具有用手指将场景向上拖动的明显效果。场景上升是通过虚拟相机912降低并将其视角从45度改变到30度来实现的。在场景视图924中,建筑物和位置指示器看起来比阶段901中高。
在用户在阶段902中将场景向上拖动之后,用户然后在阶段903中将场景向下拖动。为此,用户再次将两根手指930放置在屏幕上并且将它们向下拖动。这就将场景与手指930一起向下拖动。场景降低是通过虚拟相机912上升并且将其与场景910的角度改变为向下60度来实现的。与阶段901中相比,在阶段903中,相机912已经进一步向上移动,并且向下角度更大。因此,建筑物和位置标识符916在阶段903中又一次比阶段901中看起来更短和更小。
在一些实施例中,地图绘制应用程序为不同操作(例如平移、旋转、从2D进入到3D)提供惯性效应。在用户提供特定类型的输入(例如以比阈值速度大的速度终止的输入)来平移3D地图时,地图绘制应用程序生成惯性效应,该惯性效应使3D地图继续平移并且减速以停止。惯性效应在一些实施例中为用户提供了模拟真实世界中行为的与3D地图更逼真的交互。惯性效应的细节以及惯性效应的实现在提交于2012年9月30日的名称为“Virtual Camera for 3D Maps”的美国专利申请No.13/632,040中进行了描述;美国专利申请13/632,040以引用方式并入本文。
一些实施例的该应用程序允许独立地控制相机的距离和角度。例如,其允许通过收缩和扩展手指手势来控制距离以及通过拖动水平放置的手指来控制角度。其他实施例使用正在执行的任何手势来设置相机的距离或角度,而另一变量被自动设置。虽然图8和9显示了按某个方向执行手势导致某些结果,但是在一些实施例中,这些手势中一者或二者可以是相反方向的。例如,在一些实施例中,将水平放置的手指向下拖动可以使相机降低,而不是使场景降低。这会具有在手指向上移动时将场景向下移动、而在手指向下移动时将场景向上移动的效果。
图10概念性地例示了一些实施例的地图绘制应用程序所提供的用于将虚拟相机的位置保持在沿弧线的限定范围内的特征。具体地,图10例示了在三个不同阶段1005-1015的虚拟相机1000,这三个不同阶段显示了保持在弧线1050的限定范围内的虚拟相机1000的位置。如图10中所示,3D地图1035中的一位置包括两个建筑物和形成T型交叉点的两个道路。
第一阶段1005显示了位于沿弧线1050的特定位置处的虚拟相机1000。如图所示,弧线1050表示虚拟相机1000在其中能够移动的限定范围(例如角度范围)。第一阶段1005还显示了沿弧线1050的三个位置1055-1065(例如透视视图角度)。在这个示例中,以与上文中参考图9所示类似的方式,地图绘制应用程序沿弧线1050在弧线1050的高透视端(例如在虚拟相机1000最向下倾斜时沿弧线1050的位置)和位置1055之间移动虚拟相机1000。在第一阶段1005中基于虚拟相机1000的位置渲染3D地图视图就得到3D地图视图1025。
当虚拟相机1000在朝向弧线1050的低透视端移动期间经过位置1055时,地图绘制应用程序降低虚拟相机1000朝向弧线1050的低透视端移动的速度(例如减速),而不管用户提供何种输入。在一些实施例中,地图绘制应用程序以恒定速率降低虚拟相机1000的速度,而在其他实施例中,地图绘制应用程序以指数速率降低虚拟相机1000的速度。在一些实施例中使用用于降低虚拟相机1000的速度的附加的和/或不同的方法。
第二阶段1010显示了虚拟相机1000已经沿弧线1050移动到弧线1050的低透视端处或附近的位置。如图所示,用户正通过将两个手指在屏幕上触摸并且在向上方向上拖动这两个手指(例如轻扫手势)提供用于调节3D地图1035的视图透视的输入。响应于该输入,地图绘制应用程序将虚拟相机1000朝向弧线1050的低透视端移动,同时将虚拟相机1050向上倾斜。当虚拟相机到达沿弧线1050的位置1065时,地图绘制应用程序阻止虚拟相机1000移动得更低超过位置1065,即使在用户继续提供降低3D地图1035的视图透视的输入(例如用户继续在触摸屏上向上拖动这两根手指)时也是这样。
在一些实施例中,当用户停止提供用于降低3D地图1035的视图透视的输入(例如用户将这两根手指提起离开触摸屏)时,地图绘制应用程序将虚拟相机1000的位置从位置1065“反弹”或“回跳”直到沿弧线1050的位置1060。因为地图绘制应用程序在反弹或回跳运动期间正基于虚拟相机1000的视图生成或渲染3D地图1035的3D地图视图,所以所生成的3D地图视图提供显示3D地图视图短暂地向下反弹或回跳的反弹动画,以便向用户指示地图视图的透视不能进一步降低。利用位于这个角度的虚拟相机1000来渲染3D地图视图就得到3D地图视图1030,其中建筑物和道路与地图视图1025相比更高。
第三阶段1015显示了在地图绘制应用程序响应于用户停止提供输入而已经将虚拟相机1000的位置反弹或回跳到位置1060时的虚拟相机1000。不同实施例使用不同技术来实现虚拟相机1000的反弹或回跳。例如,一些实施例的地图绘制应用程序开始沿弧线1050快速地加速虚拟相机1000某一限定距离或者直到虚拟相机1000达到限定速度。然后,地图绘制应用程序对于沿弧线1050直到位置1060的剩余距离对虚拟相机1000减速。在一些实施例中使用其他方式来实现反弹或回跳效应。在第三阶段1015中利用位于沿弧线1050的位置1060处的虚拟相机1000渲染3D地图视图就得到3D地图视图1040,其中与地图视图1030相比,建筑物看起来略微更小和更平,道路看起来略微更小。
如上所述,图10例示了一种用于阻止虚拟相机移动超过弧线低透视端的技术。替代地或者与阻止虚拟相机移动超过弧线的低透视端结合地,一些实施例的地图绘制应用程序利用类似的技术来阻止虚拟相机移动超过弧线的高透视端。此外,图10显示了沿弧线的在那里对虚拟相机减速的位置、沿弧线的用于阻止虚拟相机移动通过的位置、和沿弧线的虚拟相机回跳或反弹返回到的位置的一个示例。不同实施例以任意数量的不同方式限定这些位置。例如,在一些实施例中,沿弧线的在那里对虚拟相机减速的位置与沿弧线的虚拟相机回跳或反弹返回到的位置相同或相邻。
C.其他用户交互
1.显现和消除控件
一些实施例的该应用程序在导航期间具有全屏模式。也就是说,在方向的实际提供期间,通常占据一些屏幕表面的控件被隐藏。图11例示了一些实施例的全屏模式。这个图在六个阶段1101-1106中显示。在阶段1101中,通过选择开始按钮1110,激活一组导航指令。通过选择开始按钮,用户从两个可能路线中选择被加亮的路线。在阶段1102中,未加亮的路线消失,并且更小比例的导航地图1121显现。第一阶段1101显示了道路名称在道路上,因为地图绘制应用程序正在显示地图视图。第一阶段1101还显示了位置控件1130被显示,因为地图绘制应用程序正在显示地图视图。对列表控件1132的选择将使地图绘制应用程序以列表格式显示可用的路线。
此外在阶段1102中,第一指令1120与结束控件1122、旅程状态区域1124(包括ETA、旅程一段时间估计、和所计划路线距离指示器)、概览按钮1126、状态栏1127、和3D控件1128一起被显示。结束按钮1122结束导航指令的运行。状态区域1124显示关于所计划路线的信息。概览按钮1126显示路线的概览。3D控件是关于导航应用程序正在显示3D还是2D场景的指示器以及用于进入和离开3D模式的切换器。在这个阶段选择列表控件1132就将使地图绘制应用程序以列表格式显示这组导航指令。这个阶段还显示了道路名称被显示在标幅中而不是显示在道路上,因为地图绘制应用程序正工作于导航模式中。
在短暂的时间量之后,结束控件1122、列表控件1132、状态区域1124、概览按钮1126、和3D控件1128消失。在一些实施例中,控件突然消失,而在其他实施例中,控件逐渐消隐。在一些实施例中,屏幕顶部的状态栏1127也消失,并且导航框1120移动到屏幕顶部。
在阶段1103中示出了控件的不存在以及导航框1120的移动,其中看到导航地图1121而除了上升的导航框1120之外没有控件。在一些实施例中,用户可以通过轻击屏幕来恢复隐藏的控件。这在阶段1104和1105中示出。在阶段1104中,用户用手指1140轻击屏幕。在阶段1105中,由于前一阶段中的轻击,控件回来了,并且导航框1120已经下降回到其原始位置。所恢复的控件包括结束控件1122、状态区域1124、概览按钮1126、状态栏1127、和3D控件1128。一旦控件返回了,用户就可以通过轻击再次使这些控件消失,如阶段1105中所示,在阶段1105中用户用手指1150轻击屏幕以在阶段1106中将导航应用程序恢复到全屏模式。除了隐藏的控件之外,在一些实施例中在全屏中,与地图的触摸交互大大地受到限制。在一些实施例中,有更多控件在一些模式中显示、但在全屏模式中隐藏(例如列表控件)。
在一些实施例中,当控件被显示并且存在对状态栏的添加(例如显示持续呼叫长度的电话呼叫状态栏)时,导航框被缩短,以便提供更多控件用于扩展的状态栏。这在图12中显示,图12例示了在设备上电话呼叫期间控件隐藏和显现的导航应用程序。图12包括阶段1201和1202。在阶段1201中,导航应用程序的控件被隐藏,并且导航框1210和地图1215可见。用户在触摸屏上用手指1217轻击,以命令导航应用程序显示其控件。在阶段1202中,导航应用程序显示其控件1220,并且在状态栏1224下方显示电话呼叫状态栏1222。由于电话呼叫状态栏1222,导航应用程序具有更少的空间。为了补偿可用于导航应用程序的更小屏幕量,一些实施例的导航应用程序在电话呼叫状态栏1222在屏幕上时缩小导航框1210。在一些实施例中,当导航框缩小时,框中的文本和/或方向箭头被改变以适应可用于该文本和箭头的减少的面积量。
2.结束导航
在导航应用程序运行一组导航指令的普通过程中,在设备到达需要导航指令的每个新交叉点时,用于下一个这样的交叉点的指令出现。这继续直到设备到达其目的地。当到达目的地时,导航应用程序停止提供指令,并且所编程路线的运行结束。图13在四个阶段1301-1304中例示了所编程路线的结束。在阶段1301中,该应用程序正以具有隐藏的控件的方式运行,导航框1310正显示目的地仅仅在1000英尺之外。目的地在地图上被显示为具有圆头的图钉1312。但是,本领域的普通技术人员将认识到,在其他实施例的应用程序中可以使用其它符号,并且在一些实施例中不使用符号并且线条仅仅结束。随着设备移动更靠近其目的地,导航应用程序对距离进行倒数。在阶段1302中,导航框1320显示仅仅还有100英尺就到达目的地。在阶段1303中,设备刚刚已经到达其目的地。导航框1330指示目的地在左侧,并且包括指向标靶中央的箭头的符号。最后,在阶段1304中,随着设备已经到达其目的地,导航应用程序已经关闭导航框1320,从而为用户留下地图1340,但是没有进一步的方向。
在一些实施例中,目的地可以在汽车不能到达的地方,例如终点图钉可以在公园中央。在一些这样的实施例中,驾车方向将结束,但是将有用于步行的继续方向。在其他这样的实施例中,该应用程序当在地图模式或在锁定模式中显示地图时,不会提供用于步行的文本指引,但是仍然将会将图钉保持在该位置(例如公园中央)。在一些这样的实施例中,行程的汽车部分结束之后的最后指令将是指令“请步行前往”。
图13例示了在导航应用程序将用户一直引导到其最终目的地时所发生的情形。但是,在一些实施例中,用户可能改变关于获得方向的用户想法。用户可能希望沿路停止、改变目的地,或者由于一些其他原因可能希望结束这组导航指令的运行。因此,一些实施例的该应用程序包括“结束”按钮。结束按钮停止运行一组导航指令,并且在一些实施例中将用户留在相同情形中如同其已经到达目的地(例如没有指令但是具有地图)。图14例示了导航程序结束控件。这个图在两个阶段1401和1402中显示。阶段1401显示了其控件可见的导航应用程序。这些控件包括“结束”按钮1410。用户正在用手指1412轻击该按钮。导航应用程序远离其目的地,如导航框1414和路线1416所指示,导航框1414陈述了下一交叉点在20英里外,路线1416延伸到位置指示器1418前方的距离中。在阶段1402中,因为用户已经轻击结束按钮1410,所以导航框1414与路线1416一样消失。位置指示器1418在这个阶段中也消失,由球形位置指示器1428代替。
3.用于在导航期间查看路线侧面的手势
如上所述,虚拟相机的默认行为是沿循设备位置通过虚拟世界并且在设备正在移动的方向上向下指向,或者至少到其路线的设备当前位置前方很近的一部分。但是,并非总是希望使相机径直向前指向。相反,有时用户希望相机成一角度指向。因此,一些实施例的导航应用程序在用户将地图向侧面拖动时旋转虚拟相机。
图15例示了在用户将地图推向侧面时的地图旋转。这个图包括四个阶段1501-1504。在阶段1501中,该应用程序在其默认模式中被显示,其中街道1510(主街)和当前线路1512在3D地图1514上平行于屏幕侧面延伸。在这个阶段1501中,用户开始将地图向左边推。在下一阶段1502中,虚拟相机已经移动到左边并且向右边旋转。即,3D地图1514已经改变为如同虚拟相机已经移动到左边并且向右边旋转。地图1514已经被旋转,现在显示街道右侧的建筑物的墙面。在一些实施例中,对于地图将旋转多远具有最大阈值。在一些实施例中,除了能够将地图左右移动之外,用户还可以移动到位置指示器略前方或略后方的视图(例如通过用一根手指向下或向上拖动)。在一些这样的实施例中,通过拖动可以向前或向后移动地图的量也被施加以上限。
在所示实施例中,该应用程序只在用户正向左(或向右)拖动地图的同时、或者在其后的短时间内(例如以模拟的惯性)旋转建筑物。一旦用户停止拖动地图1514或将其手指保持在原地以将地图1514保持在原地,地图1514就返回到在相机正采取的路线指引上的其默认视图。这在阶段1503中显示,在阶段1503中,用户已经停止拖动地图1514,并且虚拟相机随着其在其路线上移动而正在旋转和/或移动回到其原来正位于设备后面的位置。通过阶段1504,地图1514已经恢复其先前取向。在一些实施例中,虚拟相机在地图被拖向侧面时只旋转,而非移动且旋转。而在其他实施例中,相机绕位置标识符旋转,使得位置标识符在地图绕其旋转时看起来是固定点。
4.路线概览模式
在一些情况下,不是只查看显示下一交叉点的小比例地图,一些用户有时可能希望查看大图片。即,用户可能希望在用户正行进于其导航应用程序的所计划路线上期间查看该路线全部。因此,一些实施例提供为用户显示整条路线的概览选项。图16和17例示了概览控件。图16包括两个阶段1601和1602。在阶段1601中显示了导航地图1610、概览按钮1612、手指1614、和列表控件1617。在导航地图1610中,位置指示器1616显示设备位于主街上靠近第一大街。阶段1601还显示了地图绘制应用程序正在标幅1618中显示道路名称,因为地图绘制应用程序正工作于导航模式中。在这个阶段中,手指1614击中概览按钮1612,从而导致在阶段1602中显示概览。
在阶段1602中,导航应用程序已经显示了概览地图1620、恢复按钮1622、位置指示器图钉1626、终点图钉1628和位置指示器控件1630。概览地图1620为用户显示从当前位置开始的其整个计划路线。在所例示的实施例中,概览地图关注于剩余路径,而非从起点开始的整条路线,因为其没有显示指示先前行进过的路线的浅着色线条。但是,在一些实施例中,概览地图显示整条路线,而不仅仅是从设备的当前位置开始的路线。在一些实施例中,列表控件1617在概览地图中也被呈现,以允许用户直接从概览地图进入操控列表(例如即将到来的转弯)。第二阶段1602还示出了道路名称被显示在道路上,因为地图绘制应用程序正在显示概览地图(即不是在导航模式中)。需要指出的是,一些实施例的地图绘制应用程序另选地或结合地使用标幅来显示道路名称,而不管地图绘制应用程序正工作于哪个模式中。
恢复按钮1622将导航应用程序切换回到阶段1601的导航视图。位置指示器图钉1626和终点图钉1628分别显示设备的当前位置和导航路线的最终目的地。在一些实施例中,该应用程序允许用户对地图进行移动、放大和缩小、以及以其他方式关注于概览地图1620的不同部分。位置指示器控件1630在一些实施例中使地图定中心于位置指示器图钉1626上。
在一些实施例中,概览模式具有搜索框,其允许用户输入针对在概览地图中可以找到的项目的搜索查询。例如,用户可以在地图上搜索加油站,从而用户可以确定到哪里去给其汽车加油。另一示例会是对咖啡馆的搜索,从而用户可以停下来买杯咖啡。一些实施例允许用户在恢复导航之前从原来的最终目的地切换到搜索中找到的目的地。
在一些实施例中,所有概览地图都是2D的。在其他实施例中,一些或所有概览地图是3D的。例如,一些实施例使用2D概览地图用于涵盖长距离的路线,而使用3D概览地图用于涵盖短距离的导航路线。图17例示了使用3D概览地图的一个实施例。图17包括两个阶段1701和1702。在阶段1701中,导航地图1710、概览按钮1712、手指1714、和列表按钮1617被显示。在导航地图1710中,位置指示器1716表明设备位于主街上靠近第一大街。在这个阶段中,手指1714击中概览按钮1712,从而导致在阶段1702中显示概览。
在阶段1702中,导航应用程序已经显示了概览地图1720、恢复按钮1722、位置指示器图钉1726、终点图钉1728和位置指示器控件1730。概览地图1720为用户显示其整个计划路线。恢复按钮1722将导航应用程序切换回到阶段1701的导航视图。位置指示器图钉1726和终点图钉1728分别显示设备的当前位置和导航线路的最终目的地。位置指示器控件1730将地图定中心于位置指示器图钉1726上。
在一些实施例中,3D概览地图包括参考图16所述的搜索功能。此外,在一些实施例中,概览地图包括用于将地图定中心于终点图钉上的控件。在一些实施例中,位置指示器控件允许用户在定中心于设备的当前位置上和定中心于设备的目的地上之间进行切换。在一些实施例中,概览模式可以在导航期间的任何时候被激活。
D.多模式应用程序
1.渲染模块
图18概念性地例示了一些实施例的地图绘制应用程序为了渲染用于在客户端设备(例如在客户端设备的显示器上)显示的地图而执行的处理或地图渲染流水线1800。在一些实施例中,地图渲染流水线1800可以被统称为地图渲染模块。这个处理流水线的更详细的版本在提交于2012年9月30日的名称为“Virtual Camera for 3D Maps”的美国专利申请13/632,040中进行了描述。美国专利申请13/632,040以引用方式并入本文。如图所示,处理流水线1800包括图块检索器1805、一组网格构建器1815、一组网格构建处理器1810、图块提供器1820、虚拟相机1830、和地图渲染引擎1825。
图块检索器1805在一些实施例中根据来自网格构建器1815的对地图图块的请求执行用于检索地图图块的多个过程。如下文中所述,网格构建器1815标识构建其相应网格所需的现有地图图块(其被存储在地图服务服务器上或者在执行处理流水线1800的设备上的高速缓存中)。图块检索器1805接收对地图图块的请求,确定从那里检索地图图块的最佳位置(例如从地图服务、从设备上的高速缓存),并在需要的情况下对地图图块进行解压缩。
一些实施例的网格构建器1815(也被称为图块源)由图块提供器1820实例化,以便构建不同层的视图图块。根据地图绘制应用程序所显示的地图的类型,图块提供器1820可以实例化不同数量和不同类型的网格构建器1815。例如,对于空拍图(或卫星)视图地图,图块提供器1820可只实例化一个网格构建器1815,因为一些实施例的空拍图地图图块不包含多层数据。实际上,在一些实施例中,空拍图地图图块包含在地图服务处生成的已经构建的网格,对于其,(由卫星、飞机、直升机等拍摄的)空拍图图像被用作为纹理。但是,在一些实施例中,在该应用程序处于混合模式中时,附加的网格构建器可以被实例化用于生成叠置在空拍图图像上的标签。对于2D或3D渲染的矢量地图(即非卫星图像地图),一些实施例实例化单独的网格构建器1815来构建用于土地覆盖多边形数据(例如公园、水域等)、道路、名胜标记、指向标签(例如用于公园的标签等)、道路标签、交通(如果显示交通的话)、建筑物、栅格数据(用于某些缩放水平的某些对象)、以及要结合到地图中的其他数据层的网格。
一些实施例的网格构建器1815从图块提供器1820接收“空”视图图块,并且将“构建后的”视图图块返回给图块提供器1820。即,图块提供器1820向这些网格构建器1815中每一者发送一个或多个视图图块(未示出)。这些视图图块中每一者指示为其绘制网格的世界区域。在接收到这样的视图图块后,网格构建器1815标识地图服务所需要的地图图块,并且将其列表发送给图块检索器1805。
在从图块检索器1805接收回这些图块后,网格构建器使用存储在这些图块中的矢量数据来构建用于视图图块所描述区域的多边形网格。在一些实施例中,网格构建器1815使用几个不同网格构建处理器1810来构建网格。这些功能可以包括网格生成器、三角仪、阴影生成器、和/或纹理解码器。在一些实施例中,这些功能(和附加网格构建功能)可供每个网格构建器使用,其中不同网格构建器1815使用不同功能。在构建其网格之后,每个网格构建器1815将其视图图块返回到图块提供器1820,其中填充有其网格层。
图块提供器1820从控制器1875接收表示要被显示的地图视图的特定视图(即体积或视锥)(即从虚拟相机1830可见的体积)。图块提供器执行任何挑拣(例如标识在视图图块中要显示的表面区域),然后将这些视图图块发送到网格构建器1815。
图块提供器1820然后从网格构建器接收构建后的视图图块,并且在一些实施例中利用来自虚拟相机1830的特定视图对所构建的网格进行挑拣(例如移除太远的表面区域、移除将完全位于其他对象后面的对象等等)。在一些实施例中,图块提供器1820在不同时间从不同网格构建器接收构建后的视图图块(例如由于用于完成更复杂或更不复杂的网格的不同处理时间、在从图块检索器1805接收到所必需的地图图块之前经过的不同时间等等)。一旦视图图块的所有层都已经被返回,一些实施例的图块提供器1820就将这些层放在一起,并且将数据释放给控制器1875以用于渲染。
虚拟相机1830生成用于供流水线1800进行渲染的体积或表面,并且将该信息发送给控制器1875。基于地图将从那里被渲染的特定位置和取向(即3D空间中用户从那里“查看”地图的点),虚拟相机标识用于实际发送给图块提供器1820的视场。在一些实施例中,在地图绘制应用程序正在渲染用于导航的3D透视视图时,根据一算法确定虚拟相机的视场,该算法基于用户设备的运动以规则的时间间隔生成新的虚拟相机位置和取向。
在一些实施例中,控制器1875负责管理图块提供器1820、虚拟相机1830、和地图渲染引擎1825。在一些实施例中,实际上可以实例化多个图块提供器,并且控制器将几个视图图块(例如地图图块和建筑物图块)放在一起以创建传递给地图渲染引擎1825的场景。
地图渲染引擎1825负责基于从虚拟相机发送的网格图块(未示出)生成用以输出到显示设备的绘图。一些实施例的地图渲染引擎1825具有几个子过程。在一些实施例中,每种不同类型的地图元素由不同子过程渲染,其中渲染引擎1825处理不同层对象的遮挡(例如将标签放置在不同建筑物上方或后面、在土地覆盖上方生成道路等等)。此类渲染过程的示例包括道路渲染过程、建筑物渲染过程、标签渲染过程、植被渲染过程、栅格交通渲染过程、栅格道路渲染过程、卫星渲染过程、多边形渲染过程、背景栅格渲染过程等等。
现在将介绍一些实施例中的渲染流水线1800的操作。基于用于在特定缩放水平查看特定地图区域的用户输入,虚拟相机1830指定从那里查看地图区域的位置和取向,并且将这个视锥或体积发送到控制器1875。控制器1875实例化一个或多个图块提供器。虽然在这个图中示出了一个图块提供器1820,但是一些实施例允许一次实例化多个图块提供器。例如,一些实施例实例化用于建筑物图块和用于地图图块的分开的图块提供器。
图块提供器1820执行为了生成标识对于其需要构建网格的地图区域的空视图图块所必需的任何挑拣,并且将这些空的视图图块发送给网格构建器1815,网格构建器被实例化用于所绘制地图的不同层(例如道路、土地覆盖、POI标签等等)。网格构建器1815使用从地图服务接收的清单,其标识在地图服务服务器上可用的不同图块(例如作为四叉树的节点)。网格构建器1815从图块检索器1805请求特定地图图块,图块检索器1805将所请求的地图图块返回给网格构建器1815。
一旦特定网格构建器1815已经接收到其地图图块,其就开始使用地图图块中所存储的矢量数据来构建用于从图块提供器1820所发送的视图图块的网格。在为其地图层构建网格之后,网格构建器1815将构建后的视图图块发送回图块提供器1820。图块提供器1820等待直到其已经从这各个网格构建器1815接收到所有视图图块,然后将它们层叠在一起并且将完成的视图图块发送给控制器1875。控制器将从所有其图块提供器返回的图块(例如地图视图图块和建筑物视图图块)缝合在一起,并且将这个场景发送到渲染引擎1825。地图渲染引擎1825使用地图图块中的信息来绘制用于显示的场景。
2.不同模式的状态图
图19概念性地例示了状态图1900,其描述一些实施例的集成地图、搜索、和导航应用程序(例如前面章节中所述的应用程序)的不同状态及这些状态之间的转换。本领域的普通技术人员将认识到,一些实施例的该应用程序将具有与所有不同类型的输入事件相关的多个不同状态,并且状态图1900具体针对这些事件的一个子集。状态图1900描述和涉及用于改变该应用程序状态的多个手势交互(例如多点触摸手势)。本领域的普通技术人员将认识到,也可以使用多个其他交互(诸如光标控制器手势和按钮点击、键盘输入、触控板/轨迹板输入等等)用于类似的选择操作。
在用户最初打开地图绘制应用程序时,该应用程序处于状态1905中,即地图浏览状态。在这个状态1905,该应用程序将已经生成并显示了地图视图。为了生成并显示这个地图视图,一些实施例的该应用程序标识对于区域的所需要的一组地图图块,请求这些地图图块(例如向地图服务服务器请求),从虚拟相机的特定位置、取向、和透视生成这些地图图块的视图,并且将地图视图渲染给设备显示。在处于状态1905中时,地图视图是静态的。利用处于状态1905中的该应用程序,用户可以执行多个操作来修改地图视图,搜索实体(例如名胜、地址等等),检索用于导航的路线等等。
在一些实施例中,该集成应用程序被显示在集成有触敏显示器的设备上。地图上的各种手势交互可以使该应用程序对地图视图执行不同修改(例如平移、旋转、缩放、修改地图透视等等)。在该集成应用程序接收到地图显示上的手势交互(而不是叠置在地图显示上的各种悬浮或非悬浮控件上的触摸输入)时,该应用程序转到状态1910以执行手势输入识别。
手势输入识别状态1910区分不同类型的手势输入,并且将这些类型的输入转化为不同地图视图修改操作。在一些实施例中,地图绘制应用程序接收由集成有触敏显示器的设备的操作系统转化的手势输入。操作系统将触摸输入转化为手势类型和位置(例如坐标(x,y)处的“轻击”、具有在两个不同位置处的分开的触摸输入的“捏合”操作等等)。在状态1910,一些实施例的集成地图绘制应用程序将这些转化为不同地图视图修改操作。
在该应用程序接收到第一类型的手势输入(例如地图视图上两个独立的触摸输入一起按旋转运动移动)时,该应用程序转到状态1915以旋转地图。为了旋转地图视图,一些实施例修改决定地图的哪个部分被渲染以创建地图视图的虚拟相机的位置和/或取向。例如当在3D模式中时,地图绘制应用程序将虚拟相机绕特定位置(例如触摸输入的中心、显示中心、标识用户位置的位置指示器等等)旋转。在第一类型的手势输入继续时,地图绘制应用程序保持在状态1915中以继续旋转地图。
在用户释放第一类型的手势输入时,一些实施例的该应用程序转到状态1930以执行惯性计算。在一些实施例中,在用户释放某些类型的触摸输入之后,该应用程序继续执行相关联的地图视图修改特定时间量和/或距离。在这种情况下,在用户释放了旋转输入之后,该应用程序转到惯性计算状态1930以计算该旋转应该被执行的附加旋转量和时间。在一些实施例中,该应用程序将旋转从地图先前被旋转的(角)速度减速,就好像“摩擦”力被施加到地图。同样,一些实施例的惯性计算基于第一类型手势输入的速度。从状态1930,该应用程序转回到该应用程序先前所位于的地图修改状态。即,当该应用程序从状态1915(旋转状态)转到惯性计算状态1930时,其于是在执行了惯性计算之后转回到状态1915。在地图的旋转完成之后,该应用程序转回到状态1905。
在该应用程序接收到第二类型的手势输入(例如单个触摸输入在地图视图上移动)时,该应用程序转到状态1920以平移地图。为了平移地图视图,一些实施例修改决定地图的哪个部分被渲染以创建地图视图的虚拟相机的位置。这使地图看起来在源自第二类型手势输入的方向的方向上滑动。在一些实施例中,在地图视图处于3D透视模式中时,平移过程涉及执行触摸输入的位置与平面地图上一位置的相关,以便避免地图视图中突然的不希望的跳转。在第二类型的手势输入继续时,地图绘制应用程序保持在状态1920中以继续平移地图。
在用户释放第二类型的手势输入时,一些实施例的该应用程序转到状态1930以执行惯性计算。在一些实施例中,在用户释放了某些类型的触摸输入之后,该应用程序继续执行相关联的地图视图修改特定时间量和/或距离。在这种情况下,在用户释放了平移输入之后,该应用程序转到惯性计算状态1930以计算移动地图视图(即移动虚拟相机)的附加量以及该运动应该被执行的时间。在一些实施例中,该应用程序将平移运动从地图先前正被平移的速度减速,就如同“摩擦”力施加于地图。同样,一些实施例的惯性计算基于第二类型的手势输入的速度。从状态1930,该应用程序转回到该应用程序先前所处于的地图修改状态。即,在该应用程序从状态1920(平移状态)转到惯性计算状态1930时,其然后在执行了惯性计算之后转回到状态1920。在地图的平移完成之后,该应用程序转回到状态1905。
在该应用程序接收到第三类型的手势输入(例如两个分开的触摸输入移动更靠近到一起或者相互远离)时,该应用程序转到状态1925以放大或缩小地图。为了改变地图视图的缩放水平,一些实施例修改决定地图的哪个部分被渲染以创建地图视图的虚拟相机的位置(即高度)。这使地图视图包括地图的更多面积(如果缩小的话)或更少面积(如果放大的话)。在一些实施例中,随着用户放大或缩小,该应用程序检索不同地图图块(用于不同缩放水平)以生成和渲染新地图视图。在第三类型的手势输入继续时,地图绘制应用程序保持在状态1925中以继续放大或缩小地图。
在用户释放第二类型的手势输入时,一些实施例的该应用程序转到状态1930以执行惯性计算。在一些实施例中,在用户释放某些类型的触摸输入之后,该应用程序继续执行相关联的地图视图修改特定时间量和/或距离(即将虚拟相机移动得更高或更低)。在这种情况下,在用户释放了缩放输入之后,该应用程序转到惯性计算状态1930以计算缩放地图视图(即移动虚拟相机)的附加量以及该运动应该被执行的时间。在一些实施例中,该应用程序将缩放运动从地图先前被放大或缩小的速度(即虚拟相机改变高度的速度)减速,就如同“摩擦”力施加于相机。同样,一些实施例的惯性计算基于第三类型的手势输入的速度。从状态1930,该应用程序转回到该应用程序先前处于的地图修改状态。即,在该应用程序从状态1925(缩放状态)转到惯性计算状态1930时,其然后在执行了惯性计算之后转回到状态1925。在地图的缩放完成之后,该应用程序转回到状态1905。
为了简化,状态图1900例示了地图平移、缩放、和旋转过程使用同一惯性计算过程(状态1930)。但是,在一些实施例中,这些不同地图修改过程中每一者实际上使用不同惯性计算来标识其特定运动类型的减速和停止。此外,一些实施例是在接收到输入时,而不是在用户移除手势输入时计算和修改惯性变量。
在该应用程序接收到第四类型的手势输入(例如两个分开的触摸输入一致地向上或向下移动触敏显示)时,该应用程序转到状态1935以修改地图的透视图。为了改变地图的透视视图,一些实施例在地图上沿弧线移动虚拟相机,从而修改虚拟相机的位置和取向二者(因为相机将其视场中心保持在地图上的特定位置处)。在一些实施例中,不同缩放水平使用不同弧线来让虚拟相机沿其移动。这些弧线中每一者具有顶部点,虚拟相机在该顶部点处径直向下指向,从而提供地图的2D透视视图。此外,每个弧线具有底部点,其是虚拟相机可以移动到的该弧线的最低点。因此,在一些实施例中,第四类型的手势输入可以使该应用程序在2D地图视图和3D透视地图视图之间改变。在第四类型的手势输入继续时,地图绘制应用程序保持在状态1935中以继续修改地图的透视视图。
在用户释放第四类型的手势输入时,一些实施例的该应用程序转到状态1940以执行惯性计算。在一些实施例中,在用户释放了某些类型的触摸输入之后,该应用程序继续执行相关联的地图视图修改特定时间量和/或距离(即将虚拟相机移动得更高或更低)。在这种情况下,在用户释放了透视视图改变输入之后,该应用程序转到惯性计算状态1940以计算修改地图视图的透视(即沿其弧线移动虚拟相机)的附加量以及该运动应该被执行的时间。在一些实施例中,该应用程序将该运动从地图先前改变透视的速度(即虚拟相机沿其弧线移动的速度)减速,就如同“摩擦”力施加于相机。同样,一些实施例的惯性计算基于第四类型的手势输入被执行的速度。
此外,对于透视改变操作,一些实施例转到回弹计算状态1945。如所述,透视改变操作在一些实施例中具有允许的最大和最小透视偏移,其可以取决于当前地图视图的缩放水平。因此,除了惯性计算之外,该应用程序还在状态1945执行回弹计算。回弹计算使用惯性计算来确定是否将到达沿虚拟相机弧线的最大点,并且如果是,则确定虚拟相机在该点处的速度。一些实施例允许虚拟相机移动略微超过该最大点碰到“回弹”点,该应用程序在该回弹点使虚拟相机在其弧线上掉头,从而将其朝向该最大点向回移动。一些实施例只在虚拟相机弧线的一端(例如弧线的底部)具有这样的反弹回功能,而其他实施例在弧线两端都具有该功能。从回弹计算状态1945,该应用程序转回到惯性计算状态1940,然后转回到透视改变状态1935以显示地图视图移动。此外,在用户执行第四类型的触摸输入足够久并且透视到达其最大点时,该应用程序直接从状态1935转到状态1945以计算回弹信息,然后转回到状态1935。在对地图的透视视图的修改完成之后,该应用程序转回到状态1905。
以上状态涉及地图呈现上的多个多点触摸手势,集成地图、搜索、和导航应用程序将其转化为对地图呈现的不同修改。多种其它触摸输入也可以使该应用程序改变状态和执行各种功能。例如,一些实施例将3D可选项目叠置在地图视图上(例如作为悬浮控件),并且(例如通过轻击输入)选择该3D项目就使该应用程序转到1935以修改地图视图的透视。在地图视图开始于3D透视视图时,该应用程序将透视修改为2D视图;当地图视图开始于2D视图时,该应用程序将透视修改为3D视图。在修改后,该应用程序返回到状态1905。
在用户正在状态1905中查看地图时,该应用程序呈现多个标签作为地图视图的部分。这些标签中的一些指示名胜、或其它位置。在用户选择某些标签(例如用于某些商铺、公园等)时,该应用程序转到状态1950以显示用于所选位置的标幅(例如信息显示标幅),然后返回到地图浏览状态(具有标幅显示在地图上)。在一些实施例中,该标幅包括(1)使该应用程序在不离开地图视图的情况下检索从设备的当前位置到所选位置的路线(例如驾车路线)的快速路线导航UI控件(例如按钮)以及(2)使该应用程序提供关于该位置的附加信息的信息UI控件(例如按钮)。
在用户选择UI控件按钮时,该应用程序从状态1905转到状态1955以显示用于所选位置的演示区域。在一些实施例中,这个演示区域显示所选位置的媒体呈现(例如3D视频呈现,所选位置的空拍图视图,为该位置捕获的一系列图像等等)、以及用于所选位置的多种信息(联系信息、评论等等)。在用户执行各种操作来对演示区域导航以及查看演示区域内的信息时,该应用程序保持在状态1955中。在用户选择用于转回到地图视图的UI控件时,该应用程序转到状态1905。
从地图浏览视图,用户也可以容易地访问该应用程序的搜索功能。在特定UI控件(例如搜索栏)被选择时,该应用程序转到搜索输入建议状态1960。在搜索输入状态,一些实施例显示触摸屏键盘,用户可以用其来输入搜索词。搜索词可以是商铺名称、地址、位置类型(例如咖啡馆)等。在用户输入字符期间,该应用程序保持在状态1960中,并且基于最近搜索、已经输入的字母等提供建议。一些实施例可以使用基于前缀的建议(例如以已经输入的字符为开头的建议)以及其他建议(例如进行拼写纠正以在已经输入的串的开头添加字符、对字符移位等等)。在一些实施例中,除了位置之外,选择也可以包括最近输入的路线。如果用户在这个阶段选择取消UI控件,则该应用程序转回到状态1905而不执行搜索。
在用户选择搜索词(所建议的词或者用户完整输入的词)时,该应用程序转到状态1965以在地图视图上显示搜索结果,然后转到状态1905,其中搜索结果被显示。一些实施例将搜索结果显示为地图上的可选项目(例如图钉);对这些项目中的一者的选择就导致转到状态1950以显示用于所选项目的标幅。此外,作为状态1965的一部分,一些实施例的该应用程序自动地选择搜索结果中的一者(例如“最佳”结果)并且显示该标幅。
在该应用程序是紧密集成的地图、搜索、路线规划、和导航应用程序时,用户可以从地图浏览状态容易地访问路线规划功能。在特定UI控件(例如路线输入按钮)被选择时,该应用程序转到路线输入状态1970。在路线输入状态,一些实施例显示触摸屏键盘,用户可以利用其输入位置(例如地址、场所名称、场所类型等)到“终点”和“起点”字段二者中以便请求路线。在用户输入字符期间,该应用程序保持在状态1970中,并且基于最近路线、最近搜索、与为搜索输入所述类似的自动补全等来提供建议。如果用户在这个阶段选择取消UI控件,则该应用程序转回到状态1905而不检索路线。
在用户选择路线(例如通过输入“终点”位置和“起点”位置)时,该应用程序转到路线显示状态1975。在这个阶段,该应用程序在地图视图上显示从第一所选位置到第二所选位置的一条或多条路线(例如通过将路线线条叠置在地图视图上)。一些实施例自动地选择这些路线中的第一个。用户可以选择任何其它路线(例如通过在未选中路线上轻击),其中该应用程序保持在状态1975中(但是修改路线线条的显示以指示对这另一路线的选择)。此外,当在状态1975中时,一些实施例的该应用程序显示关于路线规划和导航的不同UI控件,包括方向列表控件、导航开始控件等。
此外,在路线显示于其上的地图上的各种手势交互使该应用程序对地图视图执行不同修改(例如平移、旋转、缩放、修改地图透视等)。在集成应用程序在处于路线显示状态1975中期间接收到地图显示上的手势交互时,该应用程序转到状态1910以执行手势输入识别,其中所有这些手势地图修改操作(例如对状态1915-1945的推论)都可用。即,该应用程序将手势输入转化为与上文中为状态1915-1945所述的那些类似的平移、旋转、缩放、和/或透视改变操作,具有用于虚拟相机运动的类似惯性和回弹特征。操作1915-1945返回到地图浏览状态1905,而从路线显示状态1975访问的推论操作返回到路线显示状态1975。
在一些实施例中,路线显示状态1975也能从其他状态访问。例如,如果用户在处于状态1905中期间选择标幅上的快速路线UI控件,则该应用程序检索从设备的当前位置到标幅所关联的位置的一条或多条路线。此外,一些实施例在状态1960在搜索建议中显示先前请求过的路线。在用户选择这些所建议的路线中的一者时,该应用程序直接从状态1960转到状态1975以在地图上显示一条或多条路线。
根据用户所选择的不同控件,该应用程序可以从路线显示状态1975转入多个不同模式。在用户选择清除路线的UI控件时,该应用程序转回到状态1905以显示没有任何路线的地图。此外,集成地图可以从路线显示状态1975进入一个或多个导航模态。
当在状态1975显示的所选择路线开始于设备的当前位置并且用户选择导航启动控件时,该应用程序转到导航状态1980。在一些实施例中,该应用程序显示从地图视图到用于导航的更加沉浸式3D视图的影片过渡。在一些实施例的导航状态1980内,虚拟相机沿所选路线跟随用户的位置,以便呈现路线的即将出现的部分。在路线完成(设备到达目的地位置)或用户选择用于结束导航的控件时,该应用程序转到状态1905以呈现地图浏览视图1905。
在一些实施例中,在路线显示于其上的地图上的各种手势交互可以使该应用程序在处于导航模式1980中期间对地图视图执行不同修改(例如平移、旋转、缩放、修改地图透视等)。在一些实施例中,在导航模式中只有所述地图修改操作中的一些可用。例如,一些实施例允许用户放大或缩小,但是不允许对地图的任何其他修改。因此,在用户提供手势输入时,手势输入识别状态1910滤除不与缩放操作相关联的手势输入类型(并且随后,该应用程序返回到状态1980)。在接收到与缩放操作相关联的手势输入类型时,手势输入识别状态识别该输入,并且该应用程序转到类似于状态1925的状态,以改变地图的缩放水平(在一些实施例中具有惯性计算)。
其他实施例可以支持不同地图修改操作。例如,在一些实施例中,在处于导航模式中期间,所有这些手势地图修改操作(例如对状态1915-1945的推论)都是可用的。一些实施例允许手势地图修改操作的一个子集,诸如缩放和受限平移操作。在接收到与平移相关联的手势输入类型后,一些实施例的平移操作将虚拟相机向侧面移动(在处于导航模式中期间),然后将虚拟相机返回到沿路线指向。操作1915-1945返回到地图浏览状态1905,而从导航状态1980访问的推论操作返回到导航状态1980。
当在状态1975显示的所选路线开始于并非设备当前位置的位置(或者路线是步行路线)并且用户选择导航启动控件时,该应用程序在状态1985转到步进模式、或路线检测模式。在一些实施例中,该应用程序一次一个地显示沿路线执行的操控(例如作为导航标志)。通过对这些操控提供手势输入(例如轻扫手势),用户可以在处于路线检测模式中期间查看不同操控。操控被叠置载地图上,并且路线的至少一部分被显示在地图中。
当在路线显示模式中时,地图上的各种手势交互可使该应用程序对地图视图执行不同修改(例如平移、旋转、缩放、修改地图透视等)。在集成应用程序在处于步进模式1985中期间接收到在地图显示上的手势交互时,该应用程序转到状态1910以执行手势输入识别,其中所有这些手势地图修改操作(例如对状态1915-1945的推论)都可用。即,该应用程序将手势输入转化为与上文中为状态1915-1945所述的那些类似的平移、旋转、缩放、和/或透视改变操作,具有用于虚拟相机运动的类似惯性和回弹特征。操作1915-1945返回到地图浏览状态1905,而从步进模式1985访问的推论操作返回到步进模式1985。
此外,在一些实施例中,手势输入识别识别所显示的操控上的至少一种类型的手势输入,以便在操控之间切换。当在所显示的操控上(而不是在地图视图上)接收到特定类型的手势输入(例如轻扫手势)时,该应用程序转到用于改变所显示操控的状态(未示出),然后返回到状态1985。
当集成应用程序在处于步进状态1985中期间接收到所显示的地图上的手势交互时,该应用程序转到状态1910以执行手势输入识别,其中所有这些手势地图修改操作(例如对状态1915-1945的推论)都可用。当修改操作完成时,该应用程序返回到状态1985。当用户选择用于结束逐步查看操控的控件时,该应用程序转到状态1905以呈现地图浏览视图。
此外,在一些实施例中,该应用程序可以从步进模式1985转到自动步进状态1990。当用户在该应用程序处于状态1985中期间选择位置追踪控件时,该应用程序转到自动步进模式1990,其是另一导航模态。当在一些实施例的自动步进模式中时,集成地图、搜索、和导航应用程序显示设备的位置最接近的操控(例如由执行该操控时所处于的交叉点来量度)。当设备(例如沿路线)移动到更接近另一操控的位置时,自动步进模式自动显示这另一操控。当用户取消选择位置追踪控件时,该应用程序转回到步进模式1985。当用户在处于自动步进状态1990中期间选择用于结束导航的控件时,该应用程序转到状态1905以呈现地图浏览视图。
当在步进模式1985中时,在地图上的各种手势交互可使该应用程序对地图视图执行不同修改(例如平移、旋转、缩放、修改地图透视等)。当集成应用程序在处于自动步进模式1990中期间接收到在地图显示上的手势交互时,该应用程序转到状态1910以执行手势输入识别,其中所有这些手势地图修改操作(例如对状态1915-1945的推论)都可用。即,该应用程序将手势输入转化为与上文中为状态1915-1945所述的那些类似的平移、旋转、缩放、和/或透视改变操作,具有用于虚拟相机运动的类似惯性和回弹特征。操作1915-1945返回到地图浏览状态1905,而从自动步进模式1990访问的推论操作返回到自动步进模式1990。此外,一些实施例在用户将地图平移特定距离时自动地将位置追踪控件关闭,在这种情况下,该应用程序返回到步进模式状态1985,而不是自动步进状态1990。
II.导航标志的显示
以上章节介绍了一些实施例的逐向导航特征。一个此类特征是地图绘制应用程序所提供的导航标志描述供用户执行的操控。这些标志可以包括转弯、继续直行的距离、何时走公路出口匝道、或供用户执行的其他操控。一些实施例为这些标志提供了多种动画,包括在3D模式中将标志显示为在用户位置指示器上方通过、修改标志的外观以指示即将到来的操控、和当将快速连续地执行两个操控时使用次标志。
A.不同上下文中的逼真外貌和不同格式
在一些实施例中,导航标志在不同上下文中可具有不同外观。下面将进一步更详细地介绍这些区别中的一些。具体地,要执行的操控的图形指示器(例如下文中将进一步介绍的方向指示器)和描述那些操控的指令文本可以被适配以符合正显示导航标志的上下文。例如,不同尺寸的标志可以具有简单和复杂的操控描述,并且指令文本可以被适配于标志的尺寸并且可以基于在标志内显示的其他信息。
一些实施例将导航标志显示为使得为这些标志提供真实道路标志的外观。一些实施例将导航标志显示为丰富的纹理图像(例如利用阴影、着色等),而不是简单地在地图显示上显示平面图像。此外,一些实施例为导航标志使用与该应用程序正导航通过的地区中道路标志的颜色匹配的着色。在一些实施例中,该应用程序还使用真实公路标牌来标记道路。例如,对于编号的州和联邦公路,该应用程序将在导航标志(例如标志的侧边拦)内使用与该道路相关联的公路标牌,用公路标牌代替导航指令中的道路名称、或以其他方式将公路标牌包括在图形显示中。这些道路标志的生成和使用在提交于2012年9月30日提交的名称为“Context-Aware VoiceGuidance”的美国专利申请13/632,121中进行了描述。美国专利申请13/632,121以引用方式并入本文。
图20例示了其中使用此类公路标牌的几个GUI情景。第一个此类情景2005例示了在逐向导航模式中的地图绘制应用程序,显示在US-101北向上直行20英里的指令。在这个示例中,用于US-101的道路标志内联地显示在文本指令“在US-101North上直行”内,作为对实际文本“US-101”的替代。一些实施例在道路具有标志并且该标志可作为图像用于地图绘制应用程序时用道路标志代替道路的文本名称。
第二示例2010例示了公路标牌显示在导航标志的右侧,而不是内联在文本指令中。该情景例示了一些实施例为与示例2005中相同的指令使用的另一可选显示。在这个情形中,公路标牌被显示为与导航标志左侧的图形指示器箭头相同的大小。此外,因为在道路标志中呈现信息,所以该应用程序移除否则会被呈现的文本的“在101North上”部分。
第三示例2015例示了其中导航标志被着色以匹配公路标牌中所示的道路类型的情形。在这个情景中,指令告诉用户在CA-1 North上直行。“CA-1”由用于CA-1的公路标牌标志代替。虽然一些实施例利用绿色(用于加利福利亚州公路的标志颜色)对这个标志着色,但是其他实施例利用沿实际公路找到的道路标牌标志的颜色来对导航标志着色。其他实施例使用绿色来匹配在设备所位于的地区中公路上找到的道路指令标志的颜色(例如对于加利福利亚为绿色)。
第四情景2020例示了在导航标志内的并上5号州际公路的操控。很大程度上类似于第一示例2005,这例示了道路标牌标志作为内联文本。此外,在道路标牌内使用着色以便匹配实际州际标志的外貌,其中顶部被着以红色而底部被着以蓝色。如所提及的,一些实施例相反而是使用这些颜色的组合来对整个导航标志着色。
虽然图20没有例示方向指示器2090的不同外观,但是一些实施例的地图绘制应用程序使用不同外观以便适配方向指示器来适应导航标志被显示的上下文。
B.标志的动态和动画呈现
图20的上述情形例示了导航标志的静态显示(即不显示对标志进行的任何改变)。一些实施例提供这些导航标志的动画或其他动态显示。这些显示包括随着用户进行操控和标志被移除,显示标志在地图显示中的用户表示(导航圆块)头顶上经过的现象。此外,在操控靠近时可以为标志施加微妙动画,以便使用户注意到即将到来的操控。最后,当两个操控在短时间连续地发生时,该应用程序将用于第二操控的导航标志显示为在第一标志后面排队等候。
1.导航标志的动画移除和呈现
图21通过四个阶段2105-2120例示了一些实施例的用于移除一导航标志并引入下一标志的动画。在一些实施例中,被移除标志的动画模仿道路标志在公路上在头顶经过的动画。虽然这个图例示了在3D模式上下文内的动画,但是一些实施例还包括2D模式中的动画。其他实施例具体地提供用于3D模式的动画。
第一阶段2105例示了导航标志2125指示用户在100英尺后执行的并上主街的操控。第二阶段2110例示了随着用户执行该操控而移除导航标志2125的动画。随着用户物理地并上主街,导航标志2125放大并且开始从视场中消失,如同道路标志在公路上那样。在一些实施例中,地图绘制应用程序还对标志应用透视倾斜,以进一步模仿标志在头顶经过的现象。
在第三阶段2115,后一导航标志2130开始从地平线或者地平线的更靠近附近显现。一些实施例实际上在3D模式中从地平线一直不渲染地图,并从3D渲染结束处的距离开始动画显示即将到来的导航标志。这个动画旨在模仿在公路上朝向道路标志接近,但是经常以更快的速度(以便快速地使导航标志达到全尺寸,以及避免冗长动画分散注意力)。第四阶段2120例示了所得到的显示,其中后一导航标志2130在正常位置中显示于屏幕顶部。
除了图21中所示的动画之外,一些实施例在一些情形下还包括更复杂的动画。作为一个示例,一些实施例随着导航标志在用户进行转弯操控时退出显示而旋转导航标志,以便模仿用户在标志下面转弯的现象。
2.临时强调
在一些情况下,地图绘制应用程序可以在导航标志所描述的操控将被执行之前早早地显示该导航标志。例如,如果用户进入公路,并且下一操控涉及15英里后的公路出口,则该应用程序可以在用户需要开始准备实际驶离公路之前早早地显示指示即将到来的公路出口的导航标志。当到了提醒用户正在接近执行操控的交叉点的时候时,不同实施例使用不同技术。一些实施例包括音频警示,其中用户设备提供语音导航来指出该交叉点正在接近。
要么与语音警示结合地要么只要语音警示被关闭,一些实施例通过标志显示来提供视觉指示以表明操控即将到来。例如,在一些实施例中,该应用程序修改标志的颜色(例如从绿色变为白色或者从绿色变为黄色)以及图形指示器箭头的颜色(例如从白色变为黑色)。其他实施例在导航标志上显示较不刺眼的闪烁,旨在吸引用户注意而不过度刺眼。
图22通过四个阶段2205-2220例示了这样的闪烁动画。这些阶段将显示的背景例示为灰色,以便在闪烁在标志上移动时与闪烁形成对比(表示为白色)。第一阶段2205例示了导航标志2225,当前指示1000英尺后的右转操控。
在第二阶段2210,右转现在只在500英尺外。该应用程序已经判断这是合适的距离来向用户警示即将到来的操控,并且因此已经开始在导航标志2225上显示闪烁。第三和第四阶段2215和2220例示了这个动画的延续。在一些实施例中,该动画好像光在标志上从左向右移动。其他实施例显示从右向左的类似动画、或者其他此类动画(例如光从标志中央向外辐射等等)。
一些实施例基于多种因素修改动画开始时之处与操控相距的距离,所述因素诸如是设备正在移动的速度(基于位置追踪信息)和用户当前所行进于的道路的限速。例如,一些实施例具有动画应该显示时在交叉口之前的设定时间,并且使用这个速度信息来计算适当的距离。一些实施例还基于进行的操控的类型来改变该距离(例如与右转驶离驶离单车道道路相比,对于驶离公路允许更多时间)。
3.次标志
当路线要求快速连续的两个不同操控时,一些实施例将用于第二操控的导航标志显示为堆叠在用于第一操控的导航标志下面。这就向用户警示第二操控的即将发生的本质。当几个操控将连续被执行时,一些实施例将不止两个导航标志相互重叠地堆叠。
图23通过四个阶段2305-2320例示了用于快速连续的操控的两个标志的显示。在第一阶段2305,第一导航标志2325指示距离1000英尺处的即将到来的操控是左转上东街。因为这是全尺寸逐向导航标志,所以该应用程序为这个操控显示第一类型的图形指示器箭头(即复杂箭头)。如以比可能可用于驾驶者(其将主要是看着道路)的更加仔细的查看在地图上可以看到的那样,在左转上东街后不久就将要求右转上南街,以便跟随所给定的路线。为了使其对于用户而言更明显,该应用程序将第二导航标志2330显示在第一导航标志2325下面。第二标志包括第二类型的图形指示器箭头(即更简单的箭头),因为较少的空间被提供。此外,在第二标志2330中,较少的信息被提供给用户。
第二阶段2310例示了用户现在已经行进了900英尺,因此距离左转操控仅仅还有100英尺。除了在导航标志2325中对距离的更新(以及3D地图的移动)之外,显示还没有被改变。第三阶段2315例示了在已经执行了左转上东街的操控之后立即出现的显示。如图所示,第二导航标志2330现在是全尺寸导航标志,具有复杂图形指示器箭头和附加文本信息(50英尺的距离和右转的文本指令)。一些实施例动画显示从较小标志到全尺寸标志的过渡,而其他实施例简单地用其中一个代替另一个。
第四阶段2320例示了在用户已经进行了第二操控(右转上南街)之后的显示。该应用程序现在显示用于下一操控(左转上西街)的导航标志2335。因为这个操控在2.8英里之外,所以该应用程序不将标志2335堆叠在标志2330下面。因为导航是在3D模式中,所以一些实施例确实显示上文中参考图21所述的动画。
在上一示例中,该应用程序堆叠用于相距50英里发生的操控的标志,但是不堆叠用于相隔几个操控发生的操控的标志。针对何时将两个操控考虑为附随的阈值距离可取决于多个因素。一些实施例存储不是变量的设定距离。其他实施例考虑操控中所涉及的道路类型(例如基于后端地图数据中描述道路的功能道路分类变量)或限速,假设操控后用户的可能速度,并基于该数据(即基于操控之间的阈值时间,诸如30秒)设置阈值距离。
III.自适应方向指示器的动态生成上一章节描述了为逐向导航提供的导航标志的多个特征。如图所示,这些导航标志包括图形地描述用户要执行的操控的方向指示器,并且在一些情况下还通过指示执行操控所处于的交叉口的其他分支来显示操控的上下文。这些方向指示器可以在多种不同上下文中贯穿地图和导航应用程序地出现,在逐向导航的多个方面以及在路线检测二者中。
为了生成方向指示器,地图绘制应用程序接收关于每个交叉口(在下文中某些地方也被称为交叉点)的数据,该数据指示交叉口的不同分支并且标注操控通过哪些分支进入和离开交叉口。在一些实施例中,这个交叉口信息由地图服务存储,地图绘制应用程序访问地图服务以便检索地图数据以及路线和导航信息。在本章节中,A小节首先介绍地图服务服务器对这个交叉口数据的生成。B小节然后介绍运行于客户端设备上的地图绘制应用程序对方向指示器的动态生成。
A.交叉口数据的服务器侧生成
一些实施例的地图服务接收指定道路区段的每个交叉点的数据。在一些实施例中,地图服务自动地为存储在地图数据中的这些交叉点中每一者生成附加数据,并且在一些实施例中将交叉点数据转换为交叉口数据。这个交叉点信息将每个所接收的交叉点(或在真实世界中被视为单个交叉口的一组相关交叉点)简化为以不同角度离开交叉点的一组分支。当用户通过运行于设备上的地图绘制应用程序请求路线时,设备将该请求发送给地图服务,地图服务生成从起始位置到终止位置的路线。地图服务在一些实施例中还利用交叉口数据生成用于路线的逐向导航指令。地图服务标识进行操控时所处于的交叉口,并且将交叉口数据修改为特定于在路线期间进行的操控。这个数据然后被发送到客户端地图绘制应用程序运行于其上的用户设备。下面的小节首先介绍用于路线的导航数据的创建,然后讨论地图服务对交叉口数据的预计算(从而数据可供在生成导航数据时使用),最后介绍为所请求的路线对交叉口数据进行的特定类型的修改。
1.导航数据创建
图24概念性地例示了一些实施例的地图服务为了为提出请求的设备生成路线并且将路线与导航指令一起提供给提出请求的设备而执行的操作。图24通过六个阶段2410-2460例示了这个操作,其中地图服务接收对路线的请求,生成路线,生成用于路线的交叉口数据,并且将路线提供给设备,设备利用该信息来显示导航指令。
如图所示,图24的每个阶段例示了设备2405和地图服务2400。设备2405在一些实施例中可以是手持设备(例如智能电话、平板设备等等),或者可以是专用导航设备(例如内置到汽车内的导航系统、便携式导航设备等等)。此外,在一些实施例中,设备2405可以是非便携式设备,诸如台式计算机或其他非便携式计算设备。
地图服务2400是设备2405为了请求和接收地图数据、路线数据、逐向导航数据、以及附加信息(例如关于位于地图上的场所的信息等等)而(例如经由有线连接、无线连接,诸如蜂窝网络、Wi-Fi等等)连接到的服务。如图所示,地图服务2400存储地图数据2415和交叉口数据2425,并且包括地图生成器2435和路线生成器2445以及其他模块(未示出)。
地图数据2415提供可以用以生成能查看的地图区域和路线的数据。这个地图数据在一些实施例中包括纬度和经度数据、名称数据、以及关于道路和其他路径(例如行人步道、渡轮线路、自行车道等等)、自然特征(例如河流、湖泊、山脉等)、名胜(例如建筑物、商铺、公园等等)、和其他地图项目的描述性数据。例如在一些实施例中,路径被定义为一系列纬度/经度顶点、名称、和描述性数据。这个描述性数据可以包括路途形式(即路径是单幅路还是双幅路的一部分,路径是否是单向路径)、路径所属于的道路等级(例如机动车道、地方道路、私家道路、自行车道等等)、以及其他信息)。在一些实施例中,这个地图数据由外部来源(即地图提供方)编辑并且被提供给地图服务,而在其他实施例众,地图服务提供其自己的地图数据。地图数据也可以是外部提供的数据和内部生成的数据的混合。此外,地图数据可以包括用于多种地图构建体(诸如道路、土地覆盖等)的几何数据。
交叉口数据2425提供用于地图数据中道路路径的交叉口的预先制表的数据。在一些实施例中,如下文中所述,地图服务利用地图数据自动地计算用于道路路径交叉口的交叉口数据。这个交叉口数据2425可以通过指代交叉口类型(例如点、环岛)和以不同角度进入和离开交叉口的一系列分支来被存储。虽然地图数据2415和交叉口数据2425被显示为分开的存储装置,但是它们二者可以存储在同一物理存储装置上或者分开的物理存储装置上,交叉口数据2425实际上可以是地图数据2415的一部分。此外,地图和交叉口数据中的一者或二者可分布在几个物理存储装置上(例如用于存储地图数据的一系列盘)。
一些实施例的地图生成器2435生成传输给请求者设备的地图信息(例如地图图块)。请求者设备请求用于特定区域的地图(例如利用纬度/经度信息),并且地图生成器2435创建(或使用预先生成的)用于该区域的地图图块,然后将用于这些图块的数据(例如作为编码后的矢量和/或图像数据)传送给该设备。
路线生成器2445响应于用户请求计算两个或更多个点之间的最佳路线。在一些实施例中,路线生成器2445利用优化算法,基于地图数据计算路线。路线可以被定义为一系列交叉口、一系列道路路径、或以其他方式定义。此外,在用户请求路线时,路线生成器2445提供交叉口数据供设备在逐向导航中使用。在一些实施例中,交叉口分析器2455检索交叉口数据2425,并且为路线的导航而修改该数据,如下文中所述。
如图所示,在阶段2410,设备2405发送对路线的请求到地图服务2400。在一些实施例中,用户输入起始地址(或场所)和结束地址(或场所),可能包括附加的中间点位置(例如从A开始前往B,然后从B到C)。该设备然后将位置信息传输给地图服务。在一些实施例中,该设备将位置转化为纬度和经度数据,而在其他实施例中,这个转换是由地图服务执行的。
在阶段2420,路线生成器2445访问地图数据2415以便生成用于这一系列位置的一条或多条路线。在一些实施例中,路线生成器2445使用优化算法来寻找连接这一系列位置的最佳(和次佳、第三最佳等等)路线。
在阶段2430,交叉口分析器2455标识沿路线的对于其需要生成导航指引的操控,并且检索用于这些操控的交叉口数据。一些实施例生成逐向导航指引以与路线一起提供给设备。为了生成这些方向,地图服务2400标识路线的每次改变路径,在那个点,遵循方向的用户将必须执行操控(例如右转、略微左转、掉头、并道等)。在一些实施例中,这些路径改变中的每一者对应于存储在交叉口数据2425中的预先制表的交叉口。交叉口分析器2455检索这个交叉口数据。在一些实施例中,每个交叉口被存储为以多个角度(例如基于相对于北的偏离,北=0°)离开交叉口的一系列分支。在一些实施例中,除了交叉口数据之外,路线生成器还创建路线规划方向,其一般描述要执行的操控。此类描述的示例包括“左转”、“公路出口匝道”、“掉头”等等。在其他实施例中,这个描述由客户端地图绘制应用程序基于所接收的交叉口数据而获得。
然后,在阶段2440,交叉口分析器2455生成被设计用于路线的交叉口信息。在一些实施例中,这涉及修改角度以将进入交叉点的行进方向设置为0°(即将路线在其上进入交叉点的分支设置为180°)。这有效地将交叉口描述旋转了正北方与路线的行进进入方向之间的差别。此外,交叉口分析器2455将这些分支中的一者标记为出口分支。一些实施例还标记入口分支,而其他实施例依赖于设备来将180°分支标识为入口分支。
阶段2450例示了地图服务2400然后将路线数据(即用于导航的交叉口数据和路线数据)传输(例如经由设备用来传输路线请求的相同网络)到设备2405。如阶段2460所示,设备2405然后使用地图服务所生成的交叉口和路线数据来为设备的用户显示导航指令。在一些实施例中,导航指令包括交叉口与表示通过该交叉口的操控(在这个例子中是右转)的样式化箭头的显示。
虽然地图服务2400被显示为包括地图生成器模块和路线生成器模块,但是本领域的普通技术人员将认识到,地图绘制应用程序可以包括附加模块、或者模块的不同分解。地图服务可以由存储所有这些功能性和数据的单个计算设备(例如服务器)构成,或者功能性可以分布在几个服务器之间(例如一个过程在第一服务器上而第二过程在第二服务器上,并行地为不同用户执行相同操作的大量服务器,或执行本文所述功能性的计算设备的其他配置)。
图25概念性地例示了一些实施例的地图服务为了生成和传输路线和交叉口数据给用户而执行的过程2500。如图所示,过程2500开始于(在2505)接收到对地图上两个位置之间的路线的请求。在一些实施例中,当用户请求一系列不止两个位置时,每个区段被视为独立的路线(即从点A到点B是第一路线,然后点B到点C是第二路线)。
该过程然后(在2510)利用地图数据生成这些位置之间的至少一条路线。在一些实施例中,该过程使用优化算法来标识这两个位置之间的最佳(或两个最好、三个最好、等等)路线。这些路线可以被描述为沿路径的一系列顶点、路径之间的一系列交叉口、或者具有其他描述。
对于为起点和终点位置生成的路线,过程2500(在2515)选择所生成的路线中的一者以便创建用于该路线的逐向指令。该过程然后(在2520)标识沿路线进行的操控。在一些实施例中,地图服务标识每次路线改变路径,在那个点,遵循方向的用户将必须执行操控(例如右转、略微左转、掉头、并道等等)。
然后,该过程(在2525)检索这些操控中的每一者的交叉口。在一些实施例中,这些路径改变中的每一者对应于地图服务所存储的预先制表的交叉口。下面详细地介绍这些交叉口的生成。在一些实施例中,每个交叉口被存储为以各种角度(例如基于相对于北的偏离,北=0°)离开交叉口的一系列分支。此外,交叉口数据在一些实施例中存储交叉口类型(例如点、环岛、交通广场等)。
该过程然后(在2530)为这些操控中的每一者修改交叉口信息。在一些实施例中,这涉及修改角度以将行进进入交叉点的方向设置为0°(即将路线在其上进入交叉点的分支设置为180°)。这有效地将交叉口描述旋转了正北方与路线行进进入方向之差。此外,一些实施例将这些分支中的一者标记为出口分支。一些实施例还标记入口分支,而其他实施例依赖于设备来将180°分支标识为入口分支。
过程2500然后(在2535)确定是否还有另外的路线需要为其生成操控/交叉口信息。在还有另外的路线时,该过程返回到2515以选择下一路线。从起点位置到终点位置的路线的不同变体可部分重叠,在这种情况下,一些实施例为重叠部分重复使用已经生成的那组交叉口。
一旦为所有这些线路都生成了交叉口,该过程就(在2540)将路线和交叉口信息传输给请求者(例如提出请求的设备)。如所提及的,提出请求的设备在一些实施例中使用该信息以便生成逐向导航,包括样式化的交叉点/操控箭头。
2.交叉口数据的预计算
如上所述,一些实施例由所存储的地图数据(例如路线区段和交叉点数据)来预计算交叉口数据。地图服务然后存储这个交叉口数据以供在生成逐向导航指令时使用。以下章节介绍用于生成这个交叉口数据的几个过程,其中地图服务接收供应方提供的交叉点,标识所接收的交叉点中是否有任何集合应该被合并为单个交叉口,标识应该在交叉口内联结在一起的道路区段对,并且生成交叉口的角度。在本章节内,术语“交叉点”将一般性地用于指代供应方提供的关于两个路径区段在那里相交的信息,而术语“交叉口”将指代由交叉点生成的表示真实世界中两个或更多道路在哪里相会的信息。因此,在一些实施例中,多个交叉点可合并为一个交叉口,实际上仅仅是单个道路延续的两个道路区段之间的交叉点可根本不被认为是交叉口。
以下表示一些实施例的用于生成用于点交叉口的交叉口数据的伪代码:
标识所有内部区段;
标识所有内部转弯通道并将它们标记为内部区段;
对于每个内部区段:
聚集所有邻接的内部区段;
将所聚集的内部区段标记为已处理;
由内部区段的这个集合构建交叉口;
除了其他数据(例如公园、水路、商铺等的位置)之外,地图数据还存储关于路径(例如道路、行人步道、自行车道等)的信息。在一些实施例中,每个路径作为一系列区段(例如道路区段)而被从地图提供方接收。对于某个区段,在一些实施例中,所存储的数据包括该区段的起始和结束交叉点、定义起始和结束交叉点之间的路径所采取的线路的几何数据、路径表征(或路途形式)、行进方向(其在一些实施例中可涉及单向标记)、路径的一个或多个名称(例如“1-405南向”、“圣地亚哥公路”等等)、指示路径重要性等级的分类、和网络分类(路径所属于的联结的路径图)。在一些实施例中,几何信息包括路径行进通过的一系列纬度/经度顶点。路途形式属性在一些实施例中包括以下表征:单幅路、双幅路、机动车道、交流道、连接道、行人步道、阶梯。一些实施例可以包括附加表征。
图26概念性地例示了一些实施例的用于确定应该被一起作为单个交叉口对待的交叉点集合之间的路径区段的过程2600。如图所示,过程2600开始于(在2605)接收至少两个路径区段(例如道路区段)之间的交叉点。在一些实施例中,地图服务接收一组道路区段和一组交叉点(例如作为来自地图供应方的预计算数据)。每个道路区段跟随两个此类交叉点之间的路径,并且每个交叉点标引进入和/或离开该交叉点的至少两个道路路径。另一方面,在一些实施例中,交叉点不是从地图数据供应方接收的,地图服务遍历路径数据以标识路径之间的交叉口并且分析这些交叉口以便预先制表交叉点。
该过程然后(在2610)确定在所接收交叉点处的路径区段中是否有任何路径区段是双幅路。如所提及的,双幅路是在一些形式的地图数据中使用的路径表征。被分隔开(例如利用隔离带、双黄线等)的很多道路被接收(和绘制)为两个独立的路径区段,每个方向一个路径区段。这些路径区段中每一者然后被标记以行进方向并且被标记为双幅路的一半。因为用户通常将会把二者都被隔离带分隔开的两条道路的交叉口看作为单个交叉口(而不是四个独立的交叉口),所以交叉点生成过程试图将这四个所接收的交叉点统一为单个交叉口来呈现给用户用于导航目的。
在这些路径区段中没有任何一个被标记为双幅路时,该过程(在2615)只利用在所接收的交叉点中指定的路径区段来计算交叉口分支(即交叉口将只包括这一个所接收的交叉点)。在一些实施例中,交叉点分支的计算涉及计算为交叉点指定的每个区段离开交叉点位置的角度。随后,该过程结束。图27例示了此类交叉点2700的一个示例,还例示了不要求路径区段以直角相会或者路径沿直线继续通过交叉点。
在为所接收的交叉点指定的至少一个路径区段是双幅路时,该过程(在2620)确定在交叉点处是否存在横跨交通转弯驶离双幅路。横跨交通转弯是在将横跨通过双幅路的配对另一半(即道路的另一方向)(假设其存在的话)的方向上转弯驶离双幅路。在美国,左转是横跨交通转弯。虽然在本文中所示的示例涉及右侧驾驶(即在道路右侧驾驶),但是普通技术人员将认识到这些示例同样也适用于左侧驾驶地区(例如英国)。图28例示了一个交叉口2800,其包括两个双幅路径2805和2806以及单向道路2810。在交叉点2815,没有横跨交通转弯驶离双幅路,因为仅有的选项是右转驶离双幅路径2805或左转驶离单向街道2810。在没有此类转弯存在时,过程2600(在2625)存储所接收的交叉点,同时认识到其可能仍然是较大交叉口的一部分,以便确定是否将这个所接收的交叉点与其他所接收的交叉点(例如单向道路2810和双幅路径2806之间的交叉点2820)包括在较大交叉口中。例如,在交叉口2800中,该过程将希望将所接收的交叉点2820与所接收的交叉点2815联结为单个较大交叉口。随后,该过程结束。
当在交叉点处(例如在交叉点2820处)存在横跨交通转弯驶离双幅路时,该过程(在2630)沿横跨交通转弯的方向移动直到到达下一双幅路径。在一些实施例中,因为路径区段开始和停止于交叉点处,所以将在另一所接收的交叉点(但并不必然是下一交叉点,如果诸如左转车道这样的道路被接收作为独立的路径区段的话)处到达下一双幅路径。例如,从交叉口2820,该过程会从交叉点2820横穿路径2810,直到在达交叉点2815处到达下一双幅路。
过程2600然后(在2635)确定在2630处到达的双幅路径是否具有沿起源双幅路径相反方向的行进方向。这基本上是快速确定第二双幅路是否可能是第一双幅路的配对路径(即它们是否可能是同一道路的两侧)。在大多数情况下,由于通常构建道路的方式的本质,这个下一双幅路将是配对路径。
在第二双幅路不是沿起源路径的相反方向的情况下,该过程前进到2625以存储新到达的交叉点,以供随后在确定是否将其与任何其他所接收的交叉点一起包括时使用。例如,如果左转驶离路径2806到达了具有向下行进方向的另一双幅路,则路径2806可被认为在数据中没有配对对象(至少对于考虑交叉点而言),但是新标识的路径可能自己具有配对对象。
另一方面,如果两个双幅路具有相反的行进方向,则该过程(在2640)标识和存储横跨交通转弯所横穿的区段。在图28的示例中,从交叉点2820到交叉点2815的区段会被存储。在一些实施例中,这个区段将被用作附加交叉点合并过程的一部分。随后,该过程结束。
以上过程2600在应用于地图区域内的所有交叉点时将生成双幅路之间的一组区段。一些实施例使用这些区段来将所接收的交叉点联结在一起以及标识要包括在单个交叉口定义中的附加的所接收的交叉点。以下表示一些实施例的用于标识用于复杂交叉口的所有此类“内部”区段的伪代码:
对于是双幅路的每个区段;
对于路径在那里可以被集合到交叉口另一侧的具有横跨交通转弯的每个连接;
将路径上到另一侧的所有区段标记为内部区段;
该伪代码包括确定路径是否可以从区段被集合到交叉口的另一侧。以下包括一些实施例的用于这样的确定的伪代码:
添加第一区段到路径;
获得来自路径上上一区段的连接;
迭代通过每个连接以寻找到另一侧的连接或者寻找作为最佳延续的连接;
如果连接是另一侧,则标记成功并结束;
如果没有连接是另一侧并且没有连接是最佳延续,则标注失败并结束;
否则:
添加区段到路径末端;
如果路径太远,则标记失败并结束;
如果太多横跨,则标记失败并结束;
否则返回以获得用于所添加区段的连接并且迭代通过连接;
图29概念性地例示了用于将几个交叉点一起联结为单个交叉口并标识交叉口的分支的过程2900。过程2900开始于(在2905)接收双幅路之间的一组相交区段。在一些实施例中,这些区段可以利用诸如图26中所示过程那样的过程来标识。地图服务然后将相互相交(即在所接收的交叉点处)的此类区段的集合分组在一起。图30例示了在具有路径3005和3006的双幅路与具有路径3010和3011的双幅路之间的常常存在的交叉口3000。这组相交区段在这个图中被示为较粗的线条。
该过程然后(在2910)标识所有交叉点以及在交叉点处直接连接到这组相交区段的路径区段。即,这组相交路径在交叉点处相交,但是这些交叉点可包含另外的路径区段。例如,在示例性交叉口3000中,离开交叉口的八个双幅路径区段都在这四个交叉点处与内部(较粗)路径区段相交。因此,这四个交叉点和八个外部路径区段全都包括在这个交叉口中。
另一方面,图31例示了交叉口3100,其中左转通道被定义为独立的路径区段。在这种情况下,因为左转通道在初始地图数据中所接收的交叉点处与内部区段相交,所以这些通道被过程2900标识。在大多数情况下,左转通道在地图数据中可以被表征为交流道或单幅路。
以下表示一些实施例的用于标识被作为对于交叉口而言为“内部的”对待的所有转弯通道的伪代码:
对于是双幅路的每个区段;
对于路径在那里可以集合到内部区段的具有横跨交通转弯的每个连接;
将路径上到内部区段的所有区段标记为内部区段本身;
这个伪代码包括确定路径是否可以从区段(例如转弯通道)集合到内部区段。以下包括一些实施例的用于这样的确定的伪代码:
添加第一区段到路径;
获得来自路径上上一区段的连接(即在交叉点处连接到上一区段的区段);
迭代通过每个连接以寻找内部区段或者寻找作为最佳延续的连接;
如果连接是内部区段,则标记成功并结束;
如果没有连接是内部区段并且没有连接是最佳延续,则标注失败并结束;
否则:
添加区段到路径末端;
如果路径太远,则标记失败并结束;
如果太多横跨,则标记失败并结束;
否则返回以获得用于所添加区段的连接并迭代通过连接;
然后,过程2900(在2915)定义新交叉口作为包括所有所标识的交叉点和路径区段,包括直接与初始那组路径区段相交的那些。在一些实施例中,在图31中所例示的示例中,左转通道在那里离开其起源双幅区段的交叉点以及与初始区段相交的左转通道会被包括。在这种情况下,一些实施例标识用于交流道或单幅路径区段的另一交叉点(即起始交叉点),其将是路径区段在进入交叉口之前与双幅路径区段中的一者相交的地方。当单幅路径区段保持为是内部于(假定的)一对双幅路径达阈值距离(例如1km)时,一些实施例假设该路径区段为双幅路径所限定的道路的一部分,并且不考虑该交叉点。
在处理双幅路外的交流道或其他连接道(例如图32的交叉口3200中所示的交流道3205)时,一些实施例不将该交流道视为进入双幅交叉口的路径。相反,一些实施例将该路径表征标识为交流道,并且尝试形成包括该交流道的起始和结束交叉点的闭合环路。当这个闭合环路与新限定的交叉口共享公共交叉点(通常将是这样的情况)时,交流道可以与交叉口相关联,但是不被视为这个交叉口的内部路径。另一方面,当新限定的双幅交叉口由于存在例如左转通道而扩展,使得交流道交叉点被现在包括相交单幅路的交叉口涵盖(如同图33的交叉口3300中的交流道3305)时,一些实施例将交流道视为内部于新限定的交叉口。在交叉口的描述中,这些左转通道、交流道等通常将被消除,因为用户一般不会希望复杂指令,相反而是希望指令“右转上圣维森特大道”或类似指令。
对于形成所限定的交叉口的这组区段和交叉点,该过程需要将双幅路并入单交叉点分支。过程2900然后(在2920)限定进入交叉口的所有路径的集合,并且(在2925)限定离开交叉口的所有路径的集合。对于是单向路径(双向道路的一半)的双幅路,路径通常将具有出口侧和入口侧。为了合并的目的,一些实施例将每个区段(离开交叉口的区段和进入交叉口的区段)视为分开的路径。一些实施例中,不内部于双幅路(例如图34的交叉口3400中的附加双向路径3405)的单幅路通常将被视为独立分支,并且不是合并分析的一部分。
然后,该过程(在2930)确定入口路径集合是否包括任何未配对的双幅路径。当在该集合中没有这样的路径剩余(或开始就不存在任何这样的路径)时,该过程(在2935)将出口路径集合中剩余的任何未配对双幅路存储为交叉点的独立分支。一般而言,这将在地图数据错误标签(道路实际上是单向街道)或者合并标准过于严苛(留下一对入口和出口路径未配对)的情况下发生。
当存在未配对的入口路径时,该过程(在2940)选择这些入口路径中的一者。该过程然后(在2945)确定在出口集合中是否存在潜在的配对对象。潜在的配对对象在一些实施例中是通过向左(对于左侧驾驶区域而言向右)横穿先前所标识区段或者按顺时针方式贯穿交叉口而找到的双幅路。
当不存在潜在的匹配对象(例如横穿中的下一所标识的双幅路也是入口路径,或者出口集合为空)时,该过程(在2950)将该入口路径存储为交叉口的独立分支,然后返回到2930以寻找下一未配对的入口路径。另一方面,当存在潜在的配对对象时,一些实施例(在2955)确定潜在的配对是否满足一组双幅匹配标准。这些是在一些实施例中确定一对双幅路实际上是否是同一道路的两侧的标准。一些实施例确定(1)这两个路径在这些路径进入/离开交叉口处是否在阈值距离(例如25m、50m等)内,以及(2)这些路径在交叉口内碰到其交叉点的角度是否在相互的阈值范围内(例如5°、10°等)。为了计算角度,一些实施例使用与交叉口的边缘最接近的顶点(或者路径区段与交叉口内的其他区段相交的交叉点位置)以及位于特定的预定距离(例如50m)之外的顶点。该过程然后为这两个顶点之间的线条计算偏离北方的角度。
在一些实施例中,地图绘制应用程序附加地还考虑路径的名称来确定它们是否匹配。当名称匹配时,这样的实施例可以放松用于配对对的几何标准(即允许路径之间更大的距离或者路径之间更大的角度差)。匹配名称可以是例如“CA-1南向”和“CA-1北向”,或者如果两条路径都包括“威尔希尔大道”作为其名称中的一者。一些实施例还可以考虑道路分类数据来信任配对的双幅路。
如果这两个路径匹配,则该过程(在2960)将这些路径合并为新限定的交叉口的单个分支。如上文所指示,交叉口被存储为以不同角度的一组分支。对于合并路径,一些实施例将角度存储为构成该分支的两个路径的角度的平均值。图35例示了将八路径交叉口3500简化为四个分支,其中右分支3510的角度相对于水平线的偏离为右出口路径3505相对于水平线的偏离的一半,因为右入口路径位于水平线上。如概念性地所示,在一些实施例中不为交叉口分支存储方向(入口/出口)。地图服务利用地图数据生成路线,其包括交叉口和道路的行进方向,从而路线将不会在交叉口的分支上行进错误路途。
另一方面,当路径不匹配时,该过程(在2965)将这些路径中每一者存储为交叉口的独立分支。图36例示了将另一八路径交叉口3600简化为五个分支。在这种情况下,右侧的双幅路径3605和3606不合并,并且因此被视为简化交叉口的独立分支3610和3611。在这个示例中,这些分支中每一者离开交叉口的角度是为该分支存储的角度(不进行平均)。过程2900然后返回到2930以确定是否还有任何入口路径。如所述,一旦入口路径集合为空,则该过程前进到2935,并且随后结束。
以下表示一些实施例的用于一旦已经为交叉口标识了内部区段(例如过程2900的一些或所有所执行的操作)就生成用于交叉口的数据的伪代码:
聚集触碰交叉口内部区段的所有外部区段;
标识被交叉口中内部区段包围的外部区段并且将它们标记为内部的;
将表示同一道路的入内和外出区段对分组在一起;
为每个对以及为每个未配对道路计算外出角度;
构建对于每个角度具有一个分支的模板交叉口图案;
如果对于先前生成的交叉口存在图案,则使用已有图案以节省空间(将交叉口标引到已有图案);
否则如果图案不存在,则创建和存储图案的新条目;
如所指出的那样,一些实施例将每个交叉口存储为数据结构。这个数据结构指示交叉口的分支以及分支进入和/离开交叉口的角度。图37概念性地例示了一些实施例的用于点型交叉口的此类数据结构3700的一个示例。如图所示,交叉口包括交叉口ID(其在一些实施例中是唯一标识符)、地图数据关联、和一组具有角度和类型的分支。地图数据关联在一些实施例中将交叉口数据结构与地图内的实际位置相关联。在一些实施例中,这简单的是纬度/经度点,但是在其他实施例中也可以由其他数据构成(例如在交叉口处相会的路径区段或聚集路径的列表)。每个分支包括类型和角度。类型在一些实施例中是交叉口类型。一些实施例定义两个交叉口类型:点和环岛。但是,其他实施例可以包括附加交叉口类型,诸如交通广场。一些实施例将交叉口类型存储为交叉口的属性,而不是单独为每个分支存储,但是其他实施例认识到交叉口可能部分地为环岛但部分地为点交叉口这种可能性。数据结构3700包括四个分支,位于基本方向0°(北)、90°(东)、180°(南)、和-90°(西)。在一些实施例中,交叉口数据结构还包括对任何交叉点(即从地图数据提供方接收的数据)的标引和包含在所限定的交叉口内的路径区段。对于两个双幅路的一种典型交叉口,此类数据结构涉及四个交叉点。
图38例示了一些实施例的用于环岛交叉口的数据结构3800。一些实施例为环岛交叉口提供专门的处理。以下表示一些实施例的用于生成用于环岛交叉口的交叉口数据的伪代码:
标识所有环岛区段;
对于每个环岛区段:
聚集所有邻接的环岛区段;
将所聚集的环岛区段标记为已处理;
由这个集合的环岛区段构建环岛交叉口;
在一些情况下,地图数据标识环岛(例如作为路途形式或通过另一指示器)。这允许地图服务交叉口计算器开始其专门的自动化环岛处理。具体地,当执行环岛处理时,地图服务尝试标识扩口连接道(即道路的扩口进入和离开环岛的部分)对。在一些实施例中,交叉口计算器贯穿环岛(例如对于右侧驾驶按逆时针方式)来寻找在特定距离(例如角度距离)内跟随有入口路径的出口路径。该过程然后确定是否组合这些路径,考虑与用于在点交叉口处合并双幅路的那些因素类似的因素。例如,所使用的因素可包括名称是否相似、出口/入口路径之间的距离是否足够小、以及可能的其他因素。由于这个处理,在任意道路在否则看起来是入口/出口组合的路径之间与环岛相交时,一些实施例将这当作三个独立的分支。
为了计算分支的角度,一些实施例确定分支在哪里与环岛相交,而不是道路的接近角度。对于入口/出口组合,该过程取这两个路径的平均值。图39概念性地例示了将环岛交叉口3900简化为交叉口数据。顶部路径虽然以大约偏离北方30°的角度接近,但是被指定为0°分支-用户主要感兴趣的是围绕交叉口的交通圆环的距离,而不是它们进入和离开的角度。其他三个分支也被指定以基本方向,因为它们的扩口平均为这些方向。数据结构3800显示了用于环岛交叉点3900的数据结构。但是,其他实施例使用路径进入或离开环岛的角度,而不是路线与环岛相交处围绕环岛的距离。
以下表示一些实施例的用于一旦已经为交叉口标识了环岛区段就生成用于环岛交叉口的数据的伪代码:
对于形成简单环路的环岛区段集合:
聚集触碰环路的所有非环岛区段,按绕环路的行进方向排序;
将表示同一道路的连续的环岛出口/入口区段对分组到一起;
为每个对以及每个未配对区段分配角度;
从所有角度减去最小角度(从而最小角度=0);
构建模板交叉口图案,其中对于每个角度有一个分支;
如果对于先前生成的交叉口存在图案,则使用已有图案以节省空间(将交叉口标引到已有图案);
否则如果不存在图案,则创建和存储新的图案条目;
如以上伪代码示例所指出的那样,一些实施例在存储交叉口时执行附加压缩。真实世界具有数百万(或数亿)独特交叉口,但是这些交叉口中很多都具有相同的构型(尤其是在容许非常小的角度变化的时候)。因此,不是为这数亿交叉口中每一者存储单独的数据,一些实施例在存储交叉口时使用压缩。在每个交叉口被处理时,一些实施例存储用于该交叉口的模板图案。在标识到具有模板图案的附加交叉口时,这样的实施例存储对该图案的标引(同时仍然创建单独的数据结构,因为对于遵循同一图案的两个交叉口而言,位置信息是不同的)。
3.修改交叉点数据用于导航
上一章节介绍了复杂交叉口数据的生成,其通常是作为路线生成之前的离线过程来进行的。但是,在路线生成时,一些实施例修改交叉口数据以传输给用户。提供路线数据的地图服务修改角度以使它们相对于驶入方向并且将这些分支中的一者标记为出口分支。
图40概念性地例示了一些实施例的用于修改交叉口数据以便提供用于路线的导航信息的过程4000。如图所示,该过程开始于(在4005)接收要为其生成交叉口信息的路线。如上所述,一些实施例为用户设备请求的每一组起点位置和终点位置生成一条或多条路线。这些路线中每一者都包括在多个路径交叉口处(即在道路交叉口处)的一系列操控。
如图所示,在路线被标识情况下,过程4000(在4010)选择沿路线的下一交叉口。一些实施例开始于从路线的起点开始的第一个交叉口(即遵循路线的用户将进行的第一个操控)。
很多路线涉及沿特定道路的长延伸,直行通过多个交叉口(可能包括作为同一道路的部分的两个道路路径的交叉点,并且在那里没有其他道路相交)。在一些实施例中,导航指令不包括关于在那里不进行转弯操控的交叉口的信息。因此,下一交叉口实际上是沿路线的在那里将进行操控的下一交叉口。
该过程然后(在4015)检索预计算的交叉口数据作为具有相关联角度的一组分支。如上所述,一些实施例为每个交叉口存储数据结构,其列出交叉口的分支以及每个分支的角度。图37和38对于点交叉口和环岛交叉口二者例示了此类数据结构的示例。
在检索所选择交叉口的数据结构之后,地图服务旋转交叉口定义以将该定义规范化到路线进入交叉口的方向。因此,过程4000(在4020)标识交叉口的入口分支,并且将入口分支设置为预先确定的角度。一些实施例将进入交叉口的运动方向设置为0°,并且因此将交叉口的入口分支设置为180°。
该过程然后旋转交叉口的其他分支。如图所示,该过程(在4025)选择交叉口的下一分支。在一些实施例中,分支和角度以数列、列表、或类似的数据结构存储,并且该过程遍历这个数据结构。该过程(在4030)基于相对于入口分支的角度距离设置所选分支的角度。例如,如果入口分支被存储为0°(即指向北),则被存储为95°的分支将被偏移180°到-85°。此外,该过程(在4035)确定所选分支是否是交叉点的出口分支(即路线离开交叉口的分支)。为了逐向导航指令在客户端地图/导航应用程序处正确地显示操控,设备需要知道路线沿交叉口的哪个分支离开。因此,当所选分支是出口分支时,过程4000(在4040)将所选分支标记为出口分支。该过程然后(在4045)确定是否还有该交叉口的任何另外的分支要被转换用于该路线。当还有另外的分支时,该过程返回到4025以选择交叉点的下一分支。当对于当前交叉口已经处理了所有分支时,过程4000(在4060)确定沿该路线是否还有另外的交叉口需要被修改。当还有另外的交叉口时,该过程返回到4010以选择下一交叉口。
当最后一个交叉口被修改时,该过程结束。
图41例示了通过交叉口4100所采取的路线的概念性绘图、用于该交叉口的数据结构4105、和对数据结构修改以创建用于逐向导航指令的新数据结构4110。如图所示,路线从右侧(90°分支)进入交叉口,并且在底部(-162°分支)离开该交叉口。在修改后的数据结构中,入口分支已经被旋转到180°,从而导致其他分支的90°旋转。18°处的分支旋转到108°,-65°处的分支旋转到25°,-162°处的分支旋转到-72°。除了旋转角度之外,数据结构4110还将最后一个分支标记为用于导航的出口。一些实施例提供二进制出口字段,其中出口分支被标记以“1”,而所有其他分支被标记以“0”。
B.自适应显示的图形指示器的客户端侧动态生成
上一章节介绍了在逐向导航中使用的交叉点(即交叉口)数据的生成。但是,一旦用户设备接收到这个交叉点数据,运行于该设备上的地图客户端应用程序就必须基于交叉点数据动态地生成图形操控指示器,以便提供用于路线的直观逐向导航。
1.不同上下文中的不同指示器的示例
在导航系统中,在向用户呈现即将到来的操控的图形表示时,有两个相互矛盾的目标要实现,即表示的完整性以及表示的清晰性和易识性。一些实施例的地图绘制应用程序使用一种新型自适应机制来根据上下文不同地平衡这些目标。
对于当前显示的指令,在全屏逐向导航的上下文中,一些实施例的地图绘制应用程序将操控抽象为两个元素:表示车辆通过交叉点的路径的突出的样式化箭头、和对应于交叉点其他元素的不强调的一组线条和曲线。例如,T型交叉点处的右转由具有直角的大箭头表示,该直角与平行于这个大箭头的区段中的一者延伸的较小的较暗区段联结。较小区段还将向侧面偏移,从而车辆通过交叉点所走的路径在显示中占主导。操控的包括具有交叉点上下文的箭头的此类表示提供了关于操控的相当完备的信息,同时保持了概括性和容易理解。
操控的另一表示可以完全省略交叉点上下文,并简化指示操控的主箭头。在用户考虑超过当前操控的操控(要进行的下一操控)时,更详细的图形表示可能提供比所要求的更多并且难以以快速扫视阅读的信息。例如,即使有空间显示用于当前操控之后的次指令的交叉点上下文,一些实施例为了清楚起见也只显示简化箭头。这个自适应方法还有利于空间受限的UI元素。例如在多任务或者查看指令列表时,一些实施例的地图绘制应用程序绘制较简单的操控概要,以便提供在较小区域中更容易识别的对象。
图42例示了几个不同情境,其中地图绘制应用程序显示不同类型的图形指示器箭头来向用户视觉地表示操控。第一情景4205例示了路线指引显示在列表视图中。列表视图显示从起点位置前往终点位置的一系列逐向指令。在一些实施例中,用户可以在不实际进入导航模式、或者甚至跟随路线的情况下查看逐向指令。在这个情况下,一些实施例为每个转弯显示图形指示器的简单版本。这样做是出于节省空间的原因,以及因为在用户实际上没有接近操控时,交叉口上下文不特别有帮助。
第二情景4210例示了在地图绘制应用程序运行于其上的用户设备被锁定时的逐向导航。如下文中详细所述,该应用程序即使在设备被锁定时也能够显示逐向导航指令,以便继续为用户提供指令。在这个情景中,如图所示,在一些实施例中也显示简化箭头。这在锁定屏幕内提供转弯(在这个示例中是右转)的简单图形指示,而不提供用户在锁定屏幕中可能难以辨认的上下文数据。
第三情景4215还例示了在地图绘制应用程序工作于其上的设备上地图绘制应用程序没有打开(或者当前没有显示)时的逐向导航。如上详细所述,该应用程序在地图绘制应用程序没有被显示时在通知标幅内显示逐向导航指令。很大程度上与锁定屏幕模式类似,地图绘制应用程序使用简单图形指示器用于所指示的操控(在这个示例中是左转)。由于空间限制以及上面为锁定屏幕模式所述的原因,使用简单图形指示器。
前面三个情景例示了使用简单图形指示器的情况。本领域的普通技术人员将认识到,在一些实施例中,在以上情况中可使用更复杂的样式化的交叉点和操控图形指示器。下面三个情景例示了其中使用这些更复杂指示器的指示。
第四情景4220例示了路线概览方向,其中用户可以查看从起点位置到终点位置的整条路线。用户可以轻扫不同指令(例如利用轻扫手势)以查看操控之间的路线区段。这里,使用复杂交叉点指示,显示交叉口上下文(T型交叉口)和通过交叉口进行的操控,具有在交叉口上下文上强调的操控箭头。
第五情景4225例示了在标准逐向导航的上下文下(即不是在锁定屏幕模式中或者有另一应用程序打开等)的导航指令。在这种情况下,使用更复杂的箭头图形指示器。在例示的示例中,道路交叉点比前一示例略微更复杂,其中第四分支从接近方向向右并且向上成角度。第六情景4230也例示了在逐向导航期间的导航指令。在这个情况下,正在执行的操控是掉头。用情景4225中的交叉点分支来表示掉头会导致箭头在同一分支(底部分支)上指向上和下。因此,该应用程序而是显示所存储的掉头指示器箭头。
图43例示了用于同一转弯的几个情景、以及可以如何使用不同箭头用于同一转弯。第一情景4305显示逐向导航指令中的右转上第一大街。与图42一样,使用复杂图形指示器。第二情景4310例示了逐向导航期间右转上第一大街是两个快速连续操控中第二个操控的情形。在这种情况下,第二指令在第一指令后不久就出现,从而该应用程序提供即将到来的两个操控的指示。第二操控在显示上被分配较少空间,并且因此使用简化箭头。第三情景4315例示了在路线指引列表中使用简化箭头指示器。此外,如路线指引列表中为第二操控所示,一些实施例在该操控结束于有公路标牌/标志可用的公路上时用公路标志(标牌)来代替简化的方向指示器。第四和第五情景4320和4325例示了在锁定屏幕模式中和在地图绘制应用程序没有显示在设备上时用于右转的简化箭头指示器。
2.交叉点数据的下载和图形指示器的生成
在一些实施例中,地图绘制应用程序基于地图绘制应用程序的用户所选的路线来执行导航。例如,用户可请求地图绘制应用程序搜索从第一位置到第二位置(例如从用户家到某个餐馆)的路线。在一些实施例中,该应用程序发送请求到集中式地图服务(例如一组运行后端地图和路线生成过程的服务器)并且接收从第一位置到第二位置的一组一个或多个可能路线。用户然后选择这些路线中的一者来遵循。
图44概念性地例示了一些实施例的用于在路线检测期间显示图形指示器的过程4400。在一些实施例中,用户可以查看用于路线的方向列表(例如通过选择列表查看GUI按钮),或者可以在也在地图上查看路线的同时一次一个地逐步查看方向(例如经由轻扫手势)。在一些实施例中,过程4400由工作于设备(例如移动设备,诸如智能电话或触控板)上的地图绘制应用程序来执行。
如图所示,一些实施例的过程4400开始于(在4410)发送对路线的请求到地图服务服务器。在一些实施例中,请求包括起点位置和终点位置,可能具有一个或多个中间位置。用户将这些位置输入到一些实施例的地图绘制应用程序GUI,并且该应用程序通过设备接口将路线请求传输到地图服务服务器。服务器生成路线和导航(交叉点)指令的操作在上文中在本章节A小节中进行了描述。
过程4400然后(在4420)接收路线和编码后的交叉点数据。在一些实施例中,地图服务以编码后的格式传输交叉点数据。这个编码可以仅仅涉及标识类似交叉点以及标引它们而不是重复相同交叉点信息两次,或者可以涉及附加编码。其他实施例不提供任何编码。假设数据被编码,则该过程(在4430)对编码后的交叉点数据进行解码,以得到沿路线的每个操控的交叉点信息。这个交叉点数据在一些实施例中包括标识交叉点的分支以及那些分支进入/离开交叉点的角度的几何信息。与交叉点信息一起,一些实施例还包括操控信息,其描述进行的操控(例如作为右转、掉头、公路出口匝道等等)。
然后,该过程(在4440)为沿路线的所有交叉点生成方向指示器。方向指示器是沿路线的路线操控的图形指示器。例如,路线可能包括第一交叉点处的右转、第二交叉点处没有转弯、以及第三交叉点处的略微靠左。在这个示例中,这组路线指示器可以包括用于右转的第一图形表示(例如指向右的箭头)、指示没有转弯的第二图形表示(例如直箭头)、和用于略微靠左操控的第三图形表示(例如向左的对角箭头)。但是,一些实施例不为路线按径直路线继续通过的交叉点生成图形表示。实际上,一些实施例对于这些交叉点不从地图服务服务器传输交叉点数据。另一方面,一些实施例确实为沿路线的每个交叉点传输交叉点数据,并且在一些这样的实施例中,地图绘制应用程序为每个这样的交叉点生成图形指示器。在一些实施例中,方向指示器是由设备利用诸如下文中参考图46所述的过程4600这样的过程来生成的。在一些实施例中,该应用程序为每个操控生成至少两个方向指示器:包括关于交叉点的上下文信息的更复杂的第一指示器、和只显示要进行的操控的较简单的第二指示器。
该过程然后(在4450)确定是否已经接收到对显示路线指令的请求。如前一小节中所示,用户可以一次一个地逐步查看指令,或者请求查看这样的路线指令的列表。在没有接收到请求时,该过程转到4480,以确定路线检测是否已经结束(例如因为用户已经取消路线、开始路线导航、关闭地图绘制应用程序等)。这两个操作有效地用作“等待”状态,其中该过程等待直到接收到导致显示路线指令的事件。
当该应用程序已经接收到这样的请求时,过程4400(在4460)分析用于显示这一个或多个方向指示器的上下文。在一些实施例中,上下文取决于与清楚地显示为了路线进行导航而要求的路线操控相关联的几个因素。例如,上下文可以基于可用于显示图形指示器的空间量(例如由于路线指引被显示在其上的设备的尺寸)、将显示指示器的条件(例如操控是否是当前或未来的路线操控、标志将在地图绘制应用程序的哪个具体模态中被显示等)。
在标识了用于路线指令的上下文之后,过程4400(在4470)基于上下文显示用于操控的方向指示器。在一些实施例中,用于显示特定方向指示器的上下文确定方向指示器在显示时如何显现。方向指示器在一些实施例中对于不同上下文以不同图示样式出现。用于方向指示器的静态(或简单)图示式样仅仅通过一般性外观来描述操控(例如箭头右转指示用户右转、或者箭头略微左转指示用户略微左转等)。相反,动态图示样式适配和样式化方向指示器以清楚地图示每个操控的重要方面。这样的样式化方向指示器还可以包括附加线条来示出交叉点处的其他道路、以及与操控相关联的其他信息。例如,一些实施例使用更复杂的方向指示器来一次一个操控地显示路线指令,而使用较简单的方向指示器来一次显示所有指令的列表视图。该过程然后(在4480)确定路线检测是否已经结束一旦路线检测已经结束,则该过程结束。
除了显示路线指令之外,方向指示器还在逐向导航期间在多种上下文中使用。图45概念性地例示了一些实施例的在这样的路线上执行导航的过程4500。在一些实施例中,过程4500由运行于设备(例如移动设备,诸如智能电话或触控板)上的地图绘制应用程序来执行。
如图所示,过程4500开始于(在4510)确定用户是否正在对路线进行导航。即,该应用程序确定用户设备的位置(例如由设备的GPS能力或其他位置追踪机制来提供)是沿着路线的路径,还是已经偏离路线。当用户偏离路线(例如由于用户进行了与路线所指定的那些操控不同的操控,从而使设备的位置离开路线)时,地图绘制应用程序请求对路线和交叉点数据的更新。因此,如果运行地图绘制应用程序的设备不再在路线上,则该过程(在4520)向地图服务服务器请求新路线和交叉点数据。该过程然后(在4530)接收修改后的路线和用于沿该路线的所有交叉点的交叉点数据。在一些实施例中,交叉点数据由地图服务服务器为沿路线的每个交叉点进行确定。如上所述,交叉点数据可以包括交叉点的不同分支的角度(相对于入口方向规范化)以及交叉点的出口分支的指示。在一些实施例中,交叉点数据由服务器从包含一组已知交叉点和角度(例如美国的所有公共道路)的存储装置检索。在一些情况下,服务器由其他来源(例如州和市的运输部门、示出先前未存储的道路的最近卫星照片等)来生成交叉点数据。对于路线更新,地图服务的一些实施例只为路线的改变生成和传输新交叉点信息,而对于新旧路线共享的交叉点则标引已经接收的数据。在一些实施例中,如上文中参考图45所述,交叉点数据被编码,在这种情况下,该应用程序还对该数据解码以得到几何交叉点描述。
在接收到所下载的交叉点数据之后,过程4500(在4540)为沿路线的所有交叉点生成方向指示器。方向指示器是沿路线的路线操控的图形指示器。例如,路线可以包括在第一交叉点处的右转、在第二交叉点处不转弯、以及在第三交叉点处的略微靠左。在这个示例中,这组路线指示器可以包括用于右转的第一图形表示(例如指向右的箭头)、指示不转弯的第二图形表示(例如直箭头)、和用于略为靠左操控的第三图形表示(例如向左的对角箭头)。但是,一些实施例不为路线按径直路径继续通过的交叉点生成图形表示。实际上,一些实施例对于这些交叉点不从地图服务服务器传输交叉点数据。另一方面,一些实施例确实为沿路线的每个交叉点传输交叉点数据,并且在一些这样的实施例中,地图绘制应用程序为每个这样的交叉点生成图形指示器。在一些实施例中,方向指示器是由设备利用诸如下文中参考图46描述的过程4600这样的过程来生成的。
在生成了用于路线的交叉点的这组图形方向指示器之后,过程4500返回到4510以再次确定用户是否正在对新路线进行导航。当用户设备仍然遵循路线时,过程4500(在4550)确定是否显示新导航标志。在一些实施例中,在对路线导航时,与交叉点相关联的每个操控在该交叉点接近时作为标志(例如具有箭头和指示操控类型的文本信息的绿色标志)图示给用户。当不需要新导航标志(例如因为当前所显示的标志指示的操控还没有被执行)时,过程4500转到4580以确定导航是否已经结束。当导航已经结束时,过程4500结束。这两个操作有效地用作“等待”状态,其中地图绘制应用程序等待要求显示新导航标志的事件或者等待导航结束(例如因为路线的终点位置已经到达)。
在发生要求显示新标志的事件时,过程4500(在4560)标识用于显示该标志的上下文。在一些实施例中,上下文取决于与清楚地显示为了对用户所选路径进行导航而要求的路线操控相关联的几个因素。例如,上下文可以基于可用于显示标志的空间量(例如由于导航指令显示在其上的设备的尺寸)、将显示指示器的条件(例如操控是否是当前或未来路线操控、标志将在地图绘制应用程序的哪个具体模态中被显示等等)。
在标识了用于导航标志的上下文之后,过程4500(在4570)基于上下文显示用于操控的方向指示器。在一些实施例中,用于显示标志的上下文决定方向指示器在被显示在标志上时如何显现。方向指示器在一些实施例中对于不同上下文以不同图示样式出现。用于方向指示器的静态(或简单)图示样式通过一般性外观来描述操控(例如箭头右转指示用户右转、或者箭头略微左转指示用户略微左转等等)。相反,动态图示样式适配和样式化方向指示器以清楚地示出每个操控的重要方面。这样样式化的方向指示器还可以包括附加线条来图示交叉点处的其他道路、以及与操控相关联的其他信息。
在显示方向指示器之后,过程4500转到4580以确定导航是否已经结束。在一些实施例中,导航在用户停止地图绘制应用程序时或者在到达目的地时结束。如果导航已经结束,则过程4500结束。否则,过程4500转回到4510以确定路线导航是否仍然在路线上,如上所述。
在一些实施例中,地图绘制应用程序通过为沿路线的操控(例如转弯、继续直行等的方向)生成图形方向指示器(例如箭头)来简化路线导航指令。图46概念性地例示了为路线的操控生成这样的图形方向指示器的过程4600。在一些实施例中,过程4600由运行于设备(例如移动设备,诸如智能电话或触控板)上的地图绘制应用程序来执行。在接收到沿路线的所有交叉点的交叉点数据之后,地图绘制应用程序执行这个过程4600,在一些实施例中是在过程4500的阶段4520执行。在一些实施例中,这个交叉点数据由地图服务处的一组服务器生成和提供。
如图所示,一些实施例的过程4600开始于(在4610)选择交叉点处的路线操控。在一些实施例中,从与沿所指定路线的交叉点列表相关联的一组路线操控中选择路线操控。用于路线的交叉点按顺序排序,在一些实施例中是根据所指定的路线排序。每个交叉点的数据包括一组位于特定角度的分支,具有为操控指定的入口和出口分支(在一些实施例中,入口分支通过旋转交叉点角度使得入口分支位于特定角度来指定)。
在选择了路线操控之后,过程4600(在4620)执行简化交叉点的过程,如果这样的简化是需要和可能的话。在一些实施例中,简化过程使用一组折合规则来将交叉点分支适应到特定角度(例如将角度为101.3°的分支折合到100°或90°)。在一些实施例中,根据图47的过程4700来执行简化过程。一些实施例通过尝试将每个分支折合为特定角度的倍数来简化交叉点数据,而其他实施例只尝试将出口分支折合为该特定角度的倍数。
然后,过程4600(在4630)确定地图绘制应用程序是否能够简化交叉点。如果交叉点不能被简化,则过程4600(在4640)使用路线操控的默认表示(例如基于操控类型的路线操控的图形图标)。另一方面,如果该应用程序能够简化交叉点,则该过程(在4650)基于简化的交叉点生成用于操控的简单的方向指示器。在一些实施例中,简单的方向指示器是没有任何样式化或其他特征的几何形状(例如指示操控方向的简单箭头)。例如,简单的方向指示器可以是用于在两个道路之间的标准交叉点处的右转操控的指向上、然后直指向右的箭头,或者可以是用于略微右转的指向上、然后对角地指向右上的箭头。过程4600还(在4660)基于简化的交叉点数据生成复杂的方向指示器。在一些实施例中,复杂的方向指示器是包括与路线操控相关联的标引特征的样式化的图形方向指示器。例如,复杂的方向指示器可以包括表示在交叉点处进行的操控的强调的方向箭头、和指示交叉点处其他道路的一个或多个不强调的线条。对于复杂的指示器,该应用程序为交叉点的用户既不通过其进入也不通过其离开的分支显示不强调的线条,并且显示开始于入口分支且沿出口分支结束的强调的箭头。
在生成了简单和复杂的方向指示器之后,过程4600(在4670)确定在那里进行路线操控的交叉点是否是路线上的最后一个交叉点。如果交叉点是最后一个,则过程4600结束。否则,当还有在另外的交叉点处的另外的路线操控时,该过程转回到4610以选择下一交叉点处的路线操控。
如上文中参考图46所提到的,一些实施例的地图绘制应用程序接收交叉点数据(其可能具有复杂几何形状)并且简化交叉点几何形状以在图形用户界面(GUI)中使用。在一些实施例中,地图绘制应用程序通过将路线交叉点角度适配到预先指定的简化角度的倍数来简化路线导航。图47概念性地例示了尝试将沿路线的交叉点的分支的角度设置为预先指定的角度(例如45°)的倍数的过程4700。这个过程4700在一些实施例中在图46的阶段4620处执行。过程4700将参考图48和49来介绍,图48和49例示了特定交叉点情形。
如图所示,过程4700开始于(在4710)标识进行路线操控所通过的交叉点的角度。这些角度在一些实施例中是地图服务服务器为交叉点所指定的那些角度,并且还将这些分支中的一者指示为出口分支。图48的上部分例示了地图上的第一点交叉点4805,具有大概-55°、90°、和-115°的角度(以北为0°)。此外,地图显示了通过交叉点的操控,从而得到从-115°分支略微右转到90°分支。这个上部分中的第二阶段显示了被地图服务服务器简化为几何形状的交叉点和操控,其中交叉点数据被旋转使得操控入口分支位于180°处。这显示了出口分支在25°处,而第三分支在-60°附近。
此外,该图的下部分例示了地图上的环岛交叉点4810,其中用户在大约-110°处的第一分支上进入并且在大约150°处的第二分支上离开,其中第三分支在0°处。再次,第二阶段例示了被地图服务服务器简化为几何形状的交叉点和操控,包括旋转交叉点使得入口分支被设置到180°。此外,交叉点被标记为环岛。
在标识了交叉点的角度之后,过程4700(在4720)基于一组折合规则标识对交叉点的每个角度的可能修改。在一些实施例中,折合规则指示如何适配所接收的角度以用于在导航期间显示。在一些实施例中,折合规则指示所接收的角度应该被修改为预先指定的角度的倍数。例如,折合规则可以指示每个方向指示器应该符合位于45度的倍数(例如45°、90°、135°、180°)处的几个轴线中的一者。在一些实施例中,折合规则指定所接收的角度应该被适配到与所接收的角度最接近的45°轴线。
例如,对于右转上相对于基准角度(即行进进入交叉点的方向)位于110°角度的道路的右转操控,所接收的角度被折合到90°,因为45°倍数中的最接近的轴线是位于90°的轴线。另一方面,如果道路相对于基准点位于115°角度处,则对于右转操控,角度方向被折合到135°,因为交叉点分支的115°角度更接近135°轴线,而不是90°轴线。
在标识了对所选择的交叉点的角度的可能修改之后,过程4700(在4730)确定所标识的修改是否与和所接收的角度相关联的操控类型相抵触。例如,如果操控涉及在角度10°处的略微右转,并且折合规则将10°分支角度修改为0°角度(直行通过交叉点),则用于操控的简化方向指示器会仅仅显示用于直行的图形表示。这样的指示器的丢失会是转弯、转向、或向右移动的任何指示。在这个示例中,直行与右转(甚至略微右转)相抵触。
在所标识的修改与操控类型相抵触时,则该过程(在4740)搜索对交叉点的出口分支的角度的其他修改。在一些实施例中,折合规则指定在第一角度相抵触时使用的另选角度。例如,折合规则可指示在0°角度被确定为与右转操控相抵触时应该使用45°角度。
然后,该过程(在4750)确定是否找到了可接受的修改。在一些实施例中,如果所接收的用于出口分支的角度(例如10°角度)与所标识的另选角度(例如45°角度)之差在阈值内,则另选角度是可接受的。例如,折合规则可以将30°最大差指定为用于可接受的另选角度的阈值。在这个示例中,所标识的45°另选角度比所接收的10°角度大35°,并且因此会被认为是不可接受的。在一些实施例中,基于考虑角度修改上下文的一个或多个启发式规则来进行该确定。例如,启发式规则可以指定在道路中有分叉时应该始终显示右转。在这个示例中,甚至略微右转(例如以角度10°)也可以由另选的方向指示器(例如以45°角度)显示。
在没有找到可接受的修改时,该过程(在4760)确定并指定对于分支中至少一个,不能对交叉点的几何形状进行简化。如上文中参考过程4600所述,一些实施例在不能对交叉点几何形状进简化时使用用于操控的默认表示。随后,该过程结束。
在对于出口分支找到了可接受的修改(在4730的初始确定中或者在4750的二次确定中)时,该过程转到4770以确定修改是否导致交叉点的两个分支重叠(即两个分支被分配给相同角度)。在修改后交叉点的两个(或更多个)分支重叠时,该过程(在4760)确定和指定不应该进行该修改。另一方面,在没有分支之间的重叠并且所得到的出口分支不与操控相抵触时,则该过程(在4780)将交叉点分支的角度设置到为修改后的交叉点确定的角度。随后,该过程结束。
图48的每个部分中的第三阶段例示了用于这两个示例性交叉口的简化几何形状。在点交叉点4805的情况下,该应用程序简化几何形状以将25°分支对准45°并且将-60°分支对准-45°。因为这些对准没有产生任何问题(例如令人困惑的指令或者重叠的分支),所以地图绘制应用程序使用简化几何形状来生成用于交叉点和操控的方向指示器。在环岛交叉点4810的情况下,该应用程序简化几何形状以将80°分支对准90°并且将-70°分支对准-90°。因为这些对准没有产生任何问题,所以地图绘制应用程序使用简化几何形状来生成用于交叉点和操控的环岛方向指示器。但是在一些实施例中,简化过程并不应用于环岛交叉点。在很多情况下,用户(即驾驶者)的视角随着环岛操控的过程而改变,并且有时环岛大到用户最初不能看到出口道路。相反,方向指示器使用更加接近地类似于环岛实际出口的角度。
图49例示了其中使用默认交叉点/操控指示器而不是基于几何形状的指示器的两个示例。第一情形是交叉点4905处的掉头操控。在这种情况下,为交叉点存储的交叉点数据是标准交叉点,具有位于基本方向的四个分支。但是,用于操控的数据包括位于180°的出口分支,其也是入口分支。因此,虽然对于几何形状没有必要进行简化,但是根据标准规则会生成的方向指示器会仅仅是向下指向的箭头,与该箭头的入口部分重叠。因为这不会是该操控的非常有用的图形指示器,所以地图绘制应用程序而是使用所存储的掉头指示器,如这个图的上部分的第四阶段中所示。
图49中的第二示例是公路出口4910。在这个情况下,用于交叉点和操控的几何形状包括入口分支、位于0°的分支(用于沿公路继续直行)、和位于小角度(大约10°)的分支。但是,简化几何形状的尝试将出口分支减小到0°。这违反了多个简化规则,因为其导致重叠的交叉点分支并且生成操控的不直观的描述,因为出口分支现在指示路线应该沿直线继续。虽然一些实施例而是将会将出口分支偏移到45°,但是这个示例而是使用默认的公路出口图形指示器。在一些实施例中,如上所提及的,每个交叉点还包括路线规划方向,诸如“公路出口匝道”。在这种情况下,表明操控涉及走公路出口匝道的方向结合知道路线是在右侧驾驶地区并且出口分支是在直线通过右边的小角度处就指示应该使用右侧公路出口匝道图形指示器。可以使用默认表示的操控类型的其他示例在一些实施例中包括“保持靠左”或“保持靠右”操控。
图50例示了一些实施例不使用简化几何形状的环岛5010的一个示例。在这种情况下,为环岛所接收的几何形状包括进入分支、位于大约110°处的分支、位于85°处的分支、和位于大约-70°处的分支。所尝试的简化将两个不使用的(既非入口又非出口)分支都放在90°轴线上。对于点交叉口,一些实施例可允许其用于该操控,因为进行左转的指令会是清楚的。但是,当驾驶者绕过环岛时,他们经常将数出口数,因为角度随着视角变化而变得不清楚。因此,减少分支数量可能会潜在地使驾驶者困惑。照此,所使用的方向指示器完全消除出口,并且只显示具有表示操控的箭头的圆形环岛。此外,一些实施例包括附随指令“走环岛第三个出口”或者其他类似指令。
此外,某些情形将导致该应用程序由于可能使用户困惑而从导航标志中完全消除方向指示器。例如,涉及从第一公路到第二公路的立交桥的交叉口可能具有沿两个或三个不同方向前进的三条车道。在某些情况下,在服务器上生成的信息没有指定用户为了前往期望的第二公路应该走哪条车道(即是使用左侧车道还是右侧车道)。虽然一些实施例的该应用程序可以为这样的操控显示一般性箭头,但是这可能使用户困惑。因此,一些实施例的导航应用程序抑制图形方向指示器,并且将指令文本在导航标志中居中。当对于第二(目的)公路有公路标牌可用时,一些实施例将指令移动到标志的左侧,并且在标志的右侧显示公路标牌。
3.方向指示器软件架构
如上所述,在一些实施例中,地图、路线、和逐向导航由工作于设备(例如手持设备,诸如智能电话或平板电脑)上的地图绘制应用程序呈现给用户。地图绘制应用程序在一些实施例中可以是独立应用程序,或者与设备的操作系统集成。图51概念性地例示了一些实施例的为不同上下文生成方向指示器的地图绘制应用程序5100。本领域的普通技术人员将认识到,为应用程序5100显示的模块是针对箭头生成过程的,并且一些实施例的地图绘制应用程序包括多个附加模块(例如用于地图显示、路线显示、导航的附加方面等等)。
如图所示,地图服务服务器5110通过网络5115将路线和交叉点数据传输到地图绘制应用程序5100运行于其上的设备的网络接口5120。地图服务服务器5110可以是与上面图24中所示类似的服务器,其从地图绘制应用程序工作于的设备接收路线请求并且为请求生成路线和交叉点数据。
地图绘制应用程序5100包括交叉点解码器5130、几何形状简化器5145、箭头生成器5160、,箭头选择器5165、上下文分析器5175、和标志生成器5180。交叉点解码器5130接收用于路线的编码后交叉点信息5125并且对该信息进行解码以得到通过交叉点的一系列操控。交叉点解码器5130存储解码后的交叉点数据5135。这可以是在随机存储存储器或其他易失性存储装置中以供只在路线导航期间使用,或者是在更持久性的存储装置中,诸如硬盘和固态存储器。如上所述,一些实施例不对交叉点信息进行编码,在这种情况下,该应用程序不需要交叉点解码器,而是简单地存储所接收的交叉点数据。
交叉点数据5135在一些实施例中包括根据地图服务对地图进行的分析的交叉口的几何描述,其指示交叉口类型(例如点、环岛)以及交叉口的位于各自角度处的不同分支。因为交叉点对应于沿特定路线进行的操控,所以交叉点数据还指示每个交叉点的出口分支。这个图例示了一个示例性几何交叉点描述5140,具有三个分支并且出口被标记有箭头。、在一些实施例中,180°处的分支(底部分支)总是被假设为是入口分支。
几何形状简化器5145将交叉点数据简化为简化形式,并且存储所简化的交叉点数据5155。与解码后的交叉点数据5135一样,这个数据在不同实施例中可以被存储在易失性或非易失性存储器中。在一些实施例中,几何形状简化器试图根据多个启发式规则将交叉点的每个分支折合到45°的倍数。几何交叉点描述5150是几何描述5140的简化版本。
箭头生成器5160利用所简化的交叉点数据为每个交叉点/操控生成一个或多个图形指示器。在根据交叉点数据生成的指示器不理想(例如对于掉头、公路出口操控等)时,一些实施例的箭头生成器使用所存储的默认指示器5170。对于交叉点中的至少一些,箭头生成器创建复杂方向指示器(其还包括交叉点的不强调的表示)和简单方向指示器。箭头生成器5160在易失性或非易失性存储器中存储这些方向指示器5162以供在显示路线和导航指令中使用。
箭头选择器5165使用上下文分析器5175来根据指示器将在哪个上下文中被显示来确定对于特定操控使用哪个方向指示器。这些上下文可以包括用于路线规划方向的不同情形或者用于逐向导航指令的不同情形(例如标准模式、锁定屏幕模式、在另一应用程序被打开时等等)。上下文分析器5175标识上下文并且将该信息提供给箭头选择器5165。
箭头选择器挑选图形指示器5162中的一者并且将这个选择提供给标志生成器5180。标志生成器5180生成包括所选图形指示器的用于显示的导航指令标志。标志生成器5180还使用上下文分析器结果来生成标志的其他方面,诸如导航标志内显示的指令的详细等级。
IV.自适应指令的动态生成
如上面章节中很多附图中所示,除了显示路线期间的操控的图形指示器之外,一些实施例的地图绘制应用程序还显示操控指令(例如“0.5英里后左转上Bahrami Ct.”)。很大程度上与图形指示器类似,地图绘制应用程序利用所接收的路线/交叉点数据动态地生成这些指令。
A.不同上下文中用于相同操控的不同指令的示例
一些实施例的地图绘制应用程序在大量情形中显示文本路线指令,这些情形中的一些比其他情形更加空间受限,并且在一些情形中,代替文本指令的其他引导元素提供关于操控的信息。不是选择单个指令串、然后受限制的约束而缩小字体或者截短,该应用程序使用精密方法来由关于操控本身的多个细节合成最佳地适配于每个上下文的串。
对于某个上下文,该应用程序通过考虑因素而选择指令文本,所述因素诸如是可用空间、除了文本之外的方式(例如图形指示器、道路标志等等)传递的信息量、每个指令变体的局部长度等。通过在客户端设备上本地地合成和评估几个可选方案(而不是简单地从地图服务接收指令文本),地图绘制应用程序可以在每个情景中挑选最佳指令串。此外,这个方法允许该应用程序在不同尺寸的设备上使用不同指令文本(例如与较小的智能电话相比,在平板电脑上使用更多文本)。类似的方法也可以用于需要适应在特定时间量内的口头指令,并且在使用语音指令时,一些实施例的该应用程序将减小所显示的指令的长度。
图52例示了根据一些实施例的为交叉点处的特定操控合成不同指令的一个示例。图53和54然后例示了在其中使用这些用于该操控的不同指令的情景。如图所示,地图绘制应用程序使用所接收的路线指令和交叉点数据来标识操控指令的具体方面。表格5205概念性地例示了可以如何为交叉点生成各个串。具体地,操控指令包括“位于”字段、“转弯”字段、“上到”字段、“朝向”字段、和“行驶”字段。对于每个交叉点,该应用程序首先填充这些串字段,以便由这些字段合成指令。
在一些实施例中,“位于”字段基于包括交通信号灯和停车标志信息等的地图信息。对于图52中所示的示例,第一交叉点发生“在道路尽头”,而第二交叉点发生“在下一交通信号灯处”。“转弯”字段描述要进行的操控;这个字段的示例包括“右转”(在第一交叉点处执行的操控)、“驶离公路”、“靠左”、“略微左转”、“掉头”、或其他操控。包括操控描述的路线指引可以被映射到用于“转弯”字段的不同的可能串。
“上到”字段指示操控离开交叉点而上到的路径(即街道、公路等)。在图52中第一交叉点的情况下,操控离开交叉点“上第一大街”。“朝向”字段指示出口分支指向朝向的标记(从地图数据或交叉点数据获得)。在一些实施例中,地图绘制应用程序分析后一交叉点的出口分支,并且使用这个道路的名称作为“朝向”字段。在这个示例中,第二交叉点是左转上B街,从而用于第一交叉点的“朝向”字段指示该操控“朝向B街”离开。其他实施例使用当前交叉点的出口街道相交的下一街道、主要道路(例如公路)、或其他容易识别的描述(例如城市等)。“行驶”字段指示路线将沿循“上到”字段中道路(即交叉点离开上到的道路)行驶的距离。因此,在示例性指令中,下一交叉点将在0.1英里后,从而“行驶”字段是“行驶0.1英里”。
然后,在为一组指令生成每个组分串之后,一些实施例的地图绘制应用程序生成不同等级的指令。表格5200例示了用于第一交叉点的一组合成的指令。具体地,表格5200例示了对于特定交叉点的长度不同的五组指令。但是,本领域的普通技术人员将认识到,不同实施例可基于这组串字段包括更少的、附加的、或不同的合成串。
第一指令集使用所有这五个字段。这是最长的指令集“在道路尽头右转上第一大街,朝向B街行驶0.1英里”。因为这是最长的指令集,所以该应用程序为该指令集分配等级1。第二指令集移除了“行驶”字段,只使用“位于”、“转弯”、“上到”、和“朝向”字段。第三指令集移除了“位于”字段。这些字段添加上下文,并且因此在有附加空间可用时具有这些字段是很好的。但是,它们对于操控本身而言较不必需,并且因此是在缩短指令文本时首先移除的字段。然后,对于第四指令集,该应用程序移除“朝向”字段,因为“转向”和“上到”字段被认为更重要。最后,第五指令集只包含“转向”字段,仅仅陈述“右转”。
再次,一些实施例在(仍然说得通的)不同长度指令可用时将包括另外的指令集。例如,一些实施例在“行驶”字段比“位于”字段短的情况下将包括移除“位于”字段但是保留“行驶”字段的指令集。这使该应用程序能够在第二指令集(“行驶”字段被移除)对于所分配的空间而言仅仅略微过大的情况下具有另一选项。此外,一些实施例可以包括附加的、更少的、或不同的字段。例如,一些实施例可包括“之后”字段,其给出与即将到来的交叉点相距的距离(即“0.5英里后...”)。
图53和54例示了几个不同情境,其中地图绘制应用程序在多个不同情形中为表格5205中的第一交叉点的特定操控显示自适应指令的不同示例。在这种情况下,全长指令是“0.5英里后,在道路尽头右转上第一大街,朝向B街行驶0.1英里”。但是,因为示例不包括“之后”字段,所有最高等级的指令略短于此。为了确定对于特定显示使用哪个指令集,一些实施例的地图绘制应用程序确定用于指令集的最大长度,然后选择适合到所分配空间内的最高等级的集。
第一情景5305例示了在逐向导航期间显示的用于特定操控的指令。在这种情况下,该应用程序为指令分配三个文本行。距离(0.5英里)已经以大字体显示在导航标志顶部,但是这不算作文本行中的一者。有三个行可用,在导航标志中可以使用最高等级的指令集。
第二情景5310例示了在处于锁定屏幕模式中期间用于特定操控的逐向导航指令。在这个模式中,在一些实施例中只分配两行大文本,从而适合的最高等级的指令只使用“转向”和“上到”字段。这简化为转弯方向和用户转上的街道。第三情景5315例示了在地图绘制应用程序在设备上没有打开期间用于该操控的导航指令,在该情形下,指令作为警示标幅而出现。在这种情况下,该应用程序只为指令分配一行,从而使用最低等级指令(“右转”)。
第四情景5320例示了在路线指引的列表视图中的信息显示。这个视图如上所述列出后续用于沿路线的每个操控的指令。在一些实施例中,列表视图中用于每个方向的标幅具有可变的高度,并且因此总是使用全长指令集。因此,在列表中对于第一操控使用最高等级的指令集“在道路尽头右转朝向B街上第一大街”。如图所示,该操控与下两个操控相比使用额外的文本行。
第五情景5325例示了3D模式中的逐向导航。与第一情景5305相比,一些实施例当处于3D模式中时在导航标志中为指令集分配较少空间,以便能看到更多3D显示。同样,该应用程序使用第三等级的指令集,因为这是利用给定的文本尺寸适合在两行中的最大指令。
图54例示了地图绘制应用程序在其中使用合成的指令集的另外的情景。第六情景5405例示了用户可以逐步查看(例如通过掠扫手势)的路线概览指令的显示。在一些实施例中,该应用程序为逐步查看指令分配与逐向导航相同的空间量,并且因此该应用程序又使用包括所有字段的最高等级指令集。
第七情景5410与第一情景5305相同,但是明确地指出口头导航被关闭。在这里提供这个情景是为了与第八情景5415对比,在第八情景中,在逐向导航期间语音指令被启用。对于语音导航,该应用程序确定允许用于读出指令的最大时间量,然后确定在这个所分配的时间内可以读出的最高等级的指令集。在这种情况下,该时间允许选择最高等级指令集的整体。此外,在语音导航被激活时,该应用程序减小所显示的导航标志的尺寸。这样,该应用程序在显示内显示第三等级的指令集。
最后,一些实施例的地图绘制应用程序可以工作于具有不同尺寸显示屏幕的不同类型的设备上。例如,该应用程序可工作于智能电话和更大的平板电脑上。当工作于较大设备上时,一些实施例允许更多空间用于导航标志。第九情景5420例示了在较大设备(平板电脑)上的逐向3D导航。不同于第五情景5325,导航标志提供足够的空间供最高等级指令集使用。
以上描述介绍了一些实施例,其为操控生成几个不同指令集、对这些指令集划分等级、然后自适应地确定这些指令集中哪一个最佳地适合到特定空间内。在一些实施例中,该应用程序标识可用于指令显示的最大字符数量。该应用程序然后从最高等级指令集开始,并且确定该指令集是否适合所标识的字符数量。当指令集适合时,该应用程序选择并显示这个指令集。在指令集不适合时,该应用程序移到下一等级指令集并且执行相同测试。如果这些指令集中没有任何指令集适合,则该应用程序使用最接近适合的那个。一些实施例然后截短指令集,并且用省略号指示指令集不完全适合在空间内。这可能导致从串中移除元素。
除了文本之外,一些实施例在指令集中使用文本替代物。具体地,对于由标牌标志表示的道路(例如州际公路、州级道路),该应用程序使用道路的标牌表示,而不是道路名称(例如里面有“I-5”的蓝红标牌来代替“金州公路”或“5号州际公路”)。一些实施例在评估不同指令集时将这些标志视为固定字符数量。
以上描述介绍了地图绘制应用程序的一些实施例,其中关于使用哪些元素的决定主要是基于试图使用最大长度指令集。一些其他实施例考虑指令集的某些元素是否以另一视觉方式呈现给用户,并且可以潜在地移除这些元素。
例如,在显示清楚地表明转弯是略微右转的详细指令箭头时,一些实施例缩短指令以移除“略微”或甚至移除对转弯的整个标引,而是使用沿行“CA-17S,朝向圣塔克鲁兹”的指令。类似地,如果显示大的道路标牌标志,则指令的“CA-17S”部分可以被省略。
B.适配于上下文的指令的客户端侧生成
上一章节例示了地图绘制应用程序基于路线和交叉点数据合成导航指令、然后根据不同上下文显示这些指令的不同变体的几个示例。用户可请求地图绘制应用程序搜索从第一位置到第二位置(例如从用户家到某个餐馆)的路线。在一些实施例中,该应用程序将请求发送到集中式地图服务(例如一组运行后端地图和路线生成过程的服务器,诸如上文中在章节III.A中所述的那些)并且接收一组丛第一位置到第二位置的一个或多个可能路线。用户然后选择这些路线中的一者来遵循。
图55概念性地例示了一些实施例的用于在路线检测期间显示文本指令的过程5500。在一些实施例中,用户可以查看用于路线的方向列表(例如通过选择列表查看GUI按钮),或者可以在还在地图上查看路线期间一次一个地逐步查看这些方向(例如经由轻扫手势)。在一些实施例中,过程5500由工作于设备(例如移动设备,诸如智能电话或触控板)上的地图绘制应用程序来执行。
如图所示,一些实施例的过程5500开始于(在5510)发送对路线的请求到地图服务服务器。在一些实施例中,请求包括起点位置和终点位置,可能具有一个或多个中间位置。用户将这些位置输入到一些实施例的地图绘制应用程序GUI中,并且该应用程序通过设备接口将路线请求传输到地图服务服务器。服务器生成路线和导航(交叉点)指令的操作在上面在章节III.A中进行了描述。
过程5500然后(在5520)接收路线以及编码后的交叉点数据。在一些实施例中,地图服务以编码后的格式传输交叉点数据。这个编码可以仅仅涉及标识类似交叉点并且标引这些交叉点而不是重复相同交叉点信息两次,或者可以涉及附加编码。其他实施例不提供任何编码。假设数据被编码,则该过程(在5530)对编码后的交叉点数据解码以得到用于沿路线的每个操控的交叉点信息。这个交叉点数据在一些实施例中包括几何信息,其标识交叉点的分支以及那些分支进入/离开交叉点的角度。与交叉点信息一起,一些实施例还包括操控信息,其描述进行的操控(例如作为右转、掉头、公路出口匝道等)。
然后,该过程(在5540)为沿路线的所有交叉点生成文本指令变体。文本指令变体是由解码后的交叉点和操控信息得到的文本串组合。如上文中参考图52-54所述,这样的文本串的示例包括“在第二交叉口处”、“左转”、“上第一大街”,“朝向乌尔夫道”、和“行驶0.3英里”。在一些实施例中,过程5500将文本串组合为文本指令变体。作为这样的组合的第一示例,过程5500可以将“在第二交叉口处”和“左转”组合生成短文本指令变体“在第二交叉口处左转”。作为这样的组合的第二示例,过程5500可以组合所有前述文本串而生成长文本指令变体“在第二交叉口处左转上第一大街,朝向沃尔夫路行驶0.3英里”。在一些实施例中,过程5500基于在每个变体中传递的信息量来为每个交叉点对文本指令变体划分等级。在一些实施例中,文本指令变体由设备利用诸如下文中参考图58所述的过程5800这样的过程来生成。
该过程然后(在5550)确定是否已经接收到对显示路线指令的请求。如前一子节中所示,用户可以一次一个地逐步查看指令,或者请求查看这样的路线指令的列表。在没有接收到请求时,该过程转到5580,以确定路线检测是否已经结束(例如因为用户已经取消路线、开始路线导航、关闭地图绘制应用程序等)。这两个操作有效地用作“等待”状态,其中该过程等待直到接收到导致显示路线指令的事件。
在该应用程序已经接收到这样的请求时,过程5500(在5560)分析用于显示这一个或多个文本指令的上下文。在一些实施例中,上下文取决于与清楚地显示为了对路线进行导航而需要的指令相关联的几个因素。例如,上下文基于可用于显示文本指令的空间量(例如由于路线指引所显示于的设备的尺寸)或将显示指示器的条件(例如操控是否是当前或未来路线操控,标志将在地图绘制应用程序的哪个具体模态中被显示等等)。
在标识了用于路线指令的上下文之后,过程5500(在5570)基于上下文显示用于操控的文本指令。在一些实施例中,用于显示特定文本指令的上下文决定显示哪个文本指令变体。文本指令变体在一些实施例中对于不同上下文以不同长度出现。在一些实施例中,与较短指令变量相比,较长的文本指令变量传递更多信息。但是,较长指令变量可能不适合小标幅,或者可能导致文本行上的卷绕效果。例如,一些实施例使用较长文本指令变量用于在标准逐向导航视图中一次一个操控地显示路线指令,但是使用较短文本指令变量用于在较少空间被分配时(诸如在导航开启但是设备处于另一应用程序中时)显示相同操控。该过程然后(在5580)确定路线检测是否已经结束,如上所述。一旦路线检测已经结束,则该过程结束。
除了在实际沿路线行进之前显示路线指令之外,文本指令还在逐向导航期间在多个上下文中使用。图56概念性地例示了一些实施例的在这样的路线上执行导航的过程5600。在一些实施例中,过程5600由运行于设备(例如移动设备,诸如智能电话或触控板)上的地图绘制应用程序执行。
如图所示,过程5600开始于(在5610)确定用户是否正在对路线导航。即,该应用程序确定用户设备的位置(例如由设备的GPS功能或其他位置追踪机制提供)是沿路线的路径还是已经偏离路线。在用户偏离路线(例如因为用户进行了与路线所指定的那些操控不同的操控,从而使设备的位置偏离路线)时,地图绘制应用程序要求对路线和交叉点数据的更新。因此,如果运行地图绘制应用程序的设备不再在路线上,则该过程(在5620)向地图服务服务器请求新的路线和交叉点数据。该过程然后(在5630)接收修改后的路线和沿路线的所有交叉点的交叉点数据。在一些实施例中,交叉点数据由地图服务服务器为沿路线的每个交叉点确定。如上所述,交叉点数据可以包括交叉点的不同分支的角度(相对于入口方向规范化)以及交叉点的出口分支的指示。在一些实施例中,交叉点数据由服务器从具有一组已知交叉点和角度(例如美国的所有公共道路)的存储装置检索。在一些情况下,服务器从其他来源(例如州或市的运输部门、显示先前未存储的新道路的最近卫星照片等)生成交叉点数据。对于路线更新,地图服务的一些实施例只为对路线的改变生成和传输新的交叉点信息,而对于新老路线共享的交叉点则标引已经接收的数据。
然后,过程5600(在5640)对编码后的交叉点数据解码以得到用于沿修改后的路线的每个操控的交叉点信息。这个交叉点数据在一些实施例中包括几何信息,其标识交叉点的分支以及那些分支进入/离开交叉点的角度。除了交叉点信息之外,一些实施例还包括操控信息,其描述进行的操控(例如作为右转、掉头、公路出口匝道等)。
该过程然后(在5650)生成用于修改后的路线中交叉点的文本指令变体。文本指令变体是从解码后的交叉点和操控信息得到的文本串的组合。如上文中结合图52-54所述,这样的文本串的示例包括“在第二个交叉口处”、“左转”、“上第一大街”,“朝向沃尔夫路”、和“行驶0.3英里”。在一些实施例中,过程5500将文本串组合成文本指令变体。作为这样的组合的第一示例,过程5500可以将“在第二交叉口处”和“左转”组合生成短的文本指令变体“在第二交叉口处左转”。作为这样的组合的第二示例,过程5500可以组合所有前述文本串而生成长文本指令变体“在第二交叉口处左转上第一大街,朝向沃尔夫路行驶0.3英里”。在一些实施例中,过程5500基于每个变体中所传递的信息量为每个交叉点对文本指令变体划分等级。在一些实施例中,文本指令变体由设备利用诸如下文中参考图58所述的过程5800这样的过程来生成。
在为修改后的路线中的交叉点生成了这组文本指令变体之后,该过程返回到5610以再次确定用户是否正在对新路线进行导航。当用户设备仍然沿循该路线时,过程5600(在5660)确定是否显示新导航指令。在对路线进行导航时,在一些实施例中,与交叉点相关联的每个操控在该交叉点接近时作为标志(例如具有箭头和以某详细等级描述该操控的文本指令的绿色标志)图示给用户。
当不需要新导航指令(例如由于当前所显示的指令指示的操控还没有被执行)时,该过程(在5675)确定是否更新当前显示的指令。如前一章节中所示,在一些实施例中,导航标志包括在操控之前还剩余的距离的指示器。在一些实施例中,地图绘制应用程序随着操控接近而定期地更新这个距离指示器(例如每英里、然后每0.1英里、然后每50英尺等等)。当已经到达距离阈值从而所显示的指令必须更新时,过程5600(在5680)更新所显示的指令。在一些实施例中,这涉及更新数字和/或距离单位(例如对于最后0.1英里,从英里切换到英尺)。一些实施例还经由该过程工作于的设备的语音输出特征来提供对剩余距离的更新。
该过程然后前进到5685以确定导航是否已经结束。在导航已经结束时,过程5600结束。操作5660、5675、和5685一起有效地用作“等待”状态,其中地图绘制应用程序等待要求显示新道行指令或更新所显示导航指令的事件、或者等待导航结束(例如因为到达路线的终点位置)。
在发生要求显示新导航指令的事件时,该过程(在5665)分析用于显示文本指令的上下文。在一些实施例中,上下文取决于与清楚地显示为了对路线进行导航而要求的路线操控相关联的几个因素。例如,上下文可以基于可用于显示文本指令的空间量(例如由于路线指引显示于其上的设备的尺寸)或者将显示指示器的条件(例如操控是否是当前或未来路线操控、标志将在地图绘制应用程序的哪个具体模态中被显示等等)。附加的上下文因素可以包括指令是否还正经由语音引导特征提供给用户、设备的取向、和一些实施例中的其他因素。
在标识用于显示文本指令的上下文之后,过程5600(在5670)基于上下文显示用于即将到来的交叉点的文本指令变体。在一些实施例中,用于显示特定文本指令的上下文决定显示哪个文本指令变体。文本指令变体在一些实施例中对于不同上下文以不同长度出现。在一些实施例中,与较短指令变体相比,较长的文本指令变体传递更多信息。但是,较长指令变体可能不适合小标幅,或者可能导致文本行的卷绕效果。例如,一些实施例使用较长文本指令变体用于一次一个操控地显示路线指令,而使用较短文本指令变体用于一次显示所有指令的列表视图。一些实施例基于上下文设置字符或尺寸限制,并且选择在仍然适合于为导航指令分配的显示区域并且保持适当文本尺寸的同时传递最多信息的文本指令变体。
在显示了新指令之后,过程5600转到5685以确定导航是否已经结束。在一些实施例中,在用户停止地图绘制应用程序时或在到达目的地时,导航结束。如果导航已经结束,则过程5600结束。否则,过程5600转回到5610以确定路线导航是否仍然在路径上,如上所述。
如上所述,一些实施例的地图绘制应用程序解码并合成所接收的交叉点数据以便得到用以生成导航指令的串数据。图57概念性地例示了一些实施例的用于对编码后的交叉点数据进行解码并且由从地图服务接收的路线和交叉点数据合成指令元素的过程5700。在一些实施例中,过程5700由地图绘制应用程序执行。地图绘制应用程序在接收到沿路线的所有交叉点的交叉点数据之后执行这个过程5700,在一些实施例中是在过程5500的阶段5530处执行。
如图所示,过程5700开始于(在5710)接收路线中所有交叉点的编码后的交叉点数据。在一些实施例中,该过程从地图服务服务器下载编码后的交叉点数据。在一些实施例中,这个编码可以仅仅涉及标识类似交叉点并在这组交叉点内标引这些交叉点而不是重复相同交叉点信息两次,或者可以涉及附加编码。此外,一些实施例接收路线指令信息,其指示要执行的操控的类型(例如“右转”、“靠左”等等)。
然后,该过程(在5720)选择未处理过的交叉点。在一些实施例中,该过程按从路线起点到路线终点的顺序在路线指令所指示的每个操控处选择交叉点。一旦选择了交叉点,该过程就(在5730)分析所选择的交叉点与前后交叉点的任何关系、以及所选择的交叉点的特定方面。在一些实施例中,这样的分析可以包括确定路线中前后交叉点之间的距离、确定转弯角度、标识在所选择的交叉点处执行的主操控、标识交叉点的每个分支处的道路名称、标识当在所选择的交叉点处执行了操控之后路线行进所朝向的道路或地图上的其它标识符。
在分析了交叉点关系之后,该过程(在5740)利用所分析的交叉点数据合成用于所选择的交叉点的指令元素。合成的指令元素与所选择的交叉点相关联。在一些实施例中,合成的指令元素包括一组文本串。如上文中参考图52所述,这样的文本串的示例包括“在道路尽头”、“右转”、“上第一大街”,“朝向B大街”、和“行驶0.1英里”。
在一些实施例中,每个文本串与一元素类别相关联。元素类别的示例包括:限定主要操控将在那里发生的位置的“位于”元素、概述在所选择的交叉点处进行的主操控的“转弯”元素、标识主要操控将转上的对象(即道路)的“上到”元素、标识主要操控将引导朝向的下一对象的“朝向”元素、以及标识所选择的交叉点与下一交叉点之间距离的“行驶”元素。但是,与这里所列出的那些相比,其他实施例可使用附加的、更少的、或不同的元素类别。
然后,该过程(在5750)确定是否还有任何交叉点要处理。当还有另外的交叉点用于处理(即对于其还没有合成元素)时,过程5700返回到操作5720以选择下一交叉点。一旦所有交叉点都已经被处理了,过程5700就结束。
过程5700的输出是从地图服务服务器所接收的路线的每个交叉点的一组指令元素。在一些实施例中,客户端设备上的地图绘制应用程序然后使用这些合成的指令元素为每个交叉点生成几个文本导航指令变体。
图58概念性地例示了一些实施例的用于生成用于在不同上下文中显示的导航指令变体的过程5800。在一些实施例中,过程5800由运行于设备(例如移动设备,诸如智能电话或触控板)上的地图绘制应用程序来执行。在一些实施例中,地图绘制应用程序连续执行过程5700和5800(即为每个交叉点合成元素、然后使用元素来生成指令文本)。
如图所示,过程5800开始于(在5810)接收分别与特定交叉点相关联的指令元素组。如上文中参考图57所述,在一些实施例中,这些指令元素组包括与元素类别(即“位于”、“转弯”、“上到”、“朝向”、和“行驶”类别)相关联的文本串。
然后,过程5800(在5820)为路线的特定交叉点选择未处理的一组指令元素。虽然过程5700和5800例示了地图绘制应用程序首先为每个交叉点合成元素、然后生成指令文本,但是在一些实施例中,地图绘制应用程序对每个交叉点在单个循环中执行所有这些操作。即,一些实施例的地图绘制应用程序选择交叉点,合成其元素,然后生成指令文本变体,之后才移到下一交叉点。
对于所选的指令元素组,过程5800(在5830)将这组指令元素组合成文本变体。作为这样的组合的第一示例,过程5800可以将“在道路尽头”和“右转”组合生成较短文本指令变体“在道路尽头右转”。作为这样的组合的第二示例,过程5800可以组合所有前述文本串以生成较长文本指令变体“在道路尽头右转上第一大街,朝向B大街行驶0.1英里”。一些实施例为每个交叉点生成相同的元素组合。例如在一些实施例中,该应用程序为每个交叉点用所有这些元素生成第一指令文本变体、只用“转弯”和“上到”元素生成第二指令文本变体、用“转弯”、“上到”、和“朝向”元素生成第三指令文本变体等等。其他实施例考虑其他因素来由合成的元素生成不同的指令文本变体。
在为所选择的交叉点生成了指令文本变体之后,过程5800(在5850)根据每个变体中传递的信息量来对指令变体划分等级。在一些实施例中,该应用程序使用长度(例如字符数量)作为用于所传送信息的代理。其他实施例相对于其他元素组合而言更偏好特定元素组合,即使这个方法导致将略微更短的变体划分等级到更长变体之前。例如,一些实施例为每个交叉点使用特定元素组合,其中对于每个交叉点,每个特定组合具有相同等级。
过程5800然后(在5860)确定是否还有任何未处理的指令元素组(即是否已经为路线的所有交叉点生成了指令)。在还有另外的未处理的指令元素组时,过程5800返回到操作5820以选择下一组指令元素。否则,一旦所有交叉点都已经具有生成的其指令,过程5800就结束。
C.导航指令软件架构
如上所述,在一些实施例中,地图、路线、和逐向导航由运行于设备(例如手持设备,诸如智能电话或平板电脑)上的导航应用程序呈现给用户。导航应用程序在一些实施例中可以是独立应用程序,或者与设备的操作系统集成。图59概念性地例示了包括一些实施例的为不同上下文生成文本指令的地图和导航应用程序5900的一种系统架构。本领域的普通技术人员将认识到,为应用程序5900所示的模块是针对文本指令生成过程的,一些实施例的地图和导航应用程序将包括多个附加模块(例如用于地图显示、路线显示、导航的附加方面等等)。
如图所示,地图服务服务器5910通过网络5915将路线和交叉点数据传输到地图和导航应用程序5900所运行于的设备的网络接口5920。在一些实施例中,地图服务服务器5910从导航应用程序5900所运行于的设备接收路线请求,并且为请求生成路线和交叉点数据。
导航应用程序5900包括交叉点解码器5930、指令生成器5945、指令检索器5960、上下文分析器5965、标志生成器5970、箭头选择器5975、和绘图引擎5980。交叉点解码器5930接收用于路线的编码后的交叉点信息5925,对该信息进行解码以得到描述每个交叉点和在交叉点处执行的操控的信息,并且为路线中的每个交叉点合成一组指令元素。在一些实施例中,交叉点解码器5930执行图57的过程5700,如上所述。交叉点解码器5930对编码后的交叉点5925进行解码以生成解码后的交叉点数据5935。
在一些实施例中,编码后的交叉点5925和解码后的交叉点5935可以在设备上存储在随机存取存储器或其他易失性存储装置中以只在路线导航期间使用,或者存储在更持久性的存储装置(诸如硬盘或固态存储器)中。如示例性表格5940所示,一些实施例例如以表格、数列、或类似数据结构为每个交叉点存储一组文本串元素。如上所述,图52例示了为特定一组交叉点存储的这样的表格的一个示例。
指令生成器5945基于从交叉点解码器5930接收的合成的指令元素5935生成用于在设备上显示的划分等级的文本指令变体5955。在一些实施例中,指令生成器5945执行图58的过程5800,如上所述。在一些实施例中,划分等级的文本指令变体5955可以在设备上存储在随机存取存储器或其他易失性存储装置中以只在路线导航期间使用,或者存储在更持久性的存储装置(诸如硬盘或固态存储器)中。如上所述,图52还例示了指令生成器5945生成的划分等级的指令变体5955的一个示例。示例性表格5950例示了将元素5940合成为用于在导航显示的不同上下文中使用的几个文本指令变体的结果。
指令检索器5960使用上下文分析器5965来根据文本指令将在什么上下文中被显示,确定为操控的特定显示选择哪个指令变体。这些上下文可以包括用于路线规划方向的不同情形或者用于逐向导航指令的不同情形(例如标准模式、锁定屏幕模式、在另一应用程序打开时、在语音导航激活时等等)。在一些实施例中,上下文取决于与清楚地显示为了对路线进行导航而要求的路线操控相关联的几个因素。例如,上下文可以基于可用于显示文本指令的空间量(例如由于路线指引被显示于其上的设备的尺寸)、将显示指示器的条件(例如操控是否是当前或未来操控、标志将在导航应用程序的哪个具体模态中被显示等等)、或其他因素。很多这样的上下文在上文中示于本章节的A小节内。指令检索器5960选择用于特定操控显示的指令变体并且将该信息提供给标志生成器5970。
箭头选择器5975也使用上下文分析器5965来根据指示器将在什么上下文中被显示,确定为特定操控使用哪个方向指示器。箭头选择器挑选在前一章节中所述的图形指示器中的一者(例如复杂或简单的操控表示),并且将该选择提供给标志生成器5970。标志生成器5970生成包括所选图形指示器和指令文本变体的用于显示的导航指令标志。标志生成器5970还使用上下文分析器结果来生成标志的其他方面,诸如多频繁地更新距离信息以及是否使用道路标志标牌来代替道路名称。
绘图引擎5980从标志生成器5970接收所生成的标志,并且将标志结合到显示中以输出给显示设备(或者输出到馈入显示设备的帧缓冲区)。在一些实施例中,绘图引擎5980将标志与2D地图、3D地图、或地图和导航应用程序显示的其他GUI元素一起结合。
V.电子系统
上文所述的特征和应用程序中的许多可被实现为被指定为在计算机可读存储介质(还称为计算机可读介质)上记录的指令集的软件过程。在这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器的内核或者其他处理单元)执行时,这些指令使得一个或多个处理单元能够执行指令中所指示的动作。计算机可读介质的实例包括但不限于CD-ROM、闪存驱动器、随机存取存储器(RAM)芯片、硬盘驱动器、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)等。计算机可读介质不包括无线地传送或通过有线连接的载波和电信号。
在本说明书中,术语“软件”是指包括可以被处理器读入到存储器中进行处理的驻留在只读存储器中的固件或者存储在磁存储装置中的应用程序。另外,在一些实施例中,可在保留不同的软件发明的同时,将多个软件发明实现为更大程序的子部分。在一些实施例中,还可将多个软件发明实现为单独程序。最后,共同实施这里所述的软件发明的单独程序的任何组合均在本发明的范围之内。在一些实施例中,当被安装以在一个或多个电子系统上运行时,软件程序定义执行和施行软件程序的操作的一个或多个特定机器具体实施。
A.移动设备
一些实施例的地图和导航应用程序运行于移动设备上,移动设备诸如是智能电话(例如)和平板电脑(例如)。图60是此类移动计算设备的架构6000的一个实例。移动计算设备的例子包括智能电话、平板电脑、膝上型电脑等。如图所示,移动计算设备6000包括一个或多个处理单元6005、存储器接口6010以及外围设备接口6015。
外围设备接口6015耦接到各种传感器和子系统,包括相机子系统6020、一个或多个无线通信子系统6025、音频子系统6030、输入/输出子系统6035等。外围设备接口6015允许处理单元6005与各种外围设备之间的通信。例如,取向传感器6045(例如,陀螺仪)和加速度传感器6050(例如,加速度计)耦接到外围设备接口6015,以便有利于取向和加速度功能。
相机子系统6020耦接到一个或多个光学传感器6040(例如,电荷耦合设备(CCD)光学传感器、互补金属氧化物半导体(CMOS)光学传感器等)。与光学传感器6040耦接的相机子系统6020有利于相机功能,诸如图像和/或视频数据捕获。无线通信子系统6025用于有利于通信功能。在一些实施例中,无线通信子系统6025包括射频接收器和发射器、以及光学接收器和发射器(图60中未示出)。一些实施例的这些接收器和发射器被实现为工作于一个或多个通信网络上,通信网络诸如是GSM网络、Wi-Fi网络、蓝牙网络等等。音频子系统6030耦接到扬声器以输出音频(例如以输出语音导航指令)。此外,音频子系统6030耦接到麦克风以有助于语音使能功能,诸如语音识别(例如用于搜索)、数字录制等等。
输入/输出子系统6035涉及输入/输出外围设备(诸如显示器、触摸屏等)和处理单元6005的数据总线之间通过外围设备接口6015的传输。输入/输出子系统6035包括触摸屏控制器6055和其他输入控制器6060以有利于输入/输出外围设备和处理单元6005的数据总线之间的传输。如图所示,触摸屏控制器6055耦接到触摸屏6065。触摸屏控制器6055使用任何多点触感技术来检测触摸屏6065上的接触和移动。所述其他输入控制器6060耦接到其他输入/控制设备,诸如一个或多个按钮。一些实施例包括近触感屏和对应控制器,该控制器代替触摸交互或除了触摸交互之外可检测近触摸交互。
存储器接口6010耦接到存储器6070。在一些实施例中,存储器6070包括易失性存储器(例如,高速随机存取存储器)、非易失性存储器(例如,闪存存储器)、易失性存储器和非易失性存储器的组合,和/或任何其他类型的存储器。如图60所示,存储器6070存储操作系统(0S)6072。OS6072包括用于处理基础系统服务和用于执行硬件相关任务的指令。
存储器6070还包括:有利于与一个或多个另外设备通信的通信指令6074;有利于图形用户界面处理的图形用户界面指令6076;有利于图像相关的处理和功能的图像处理指令6078;有利于输入相关(例如,触摸输入)的过程和功能的输入处理指令6080;有利于音频相关的过程和功能的音频处理指令6082;以及有利于相机相关的过程和功能的相机指令6084。上述指令仅是示例性的,并且在一些实施例中,存储器6070包括另外和/或其他指令。例如,用于智能电话的存储器可包括有利于电话相关的过程和功能的电话指令。此外,存储器可以包括用于地图和导航应用程序以及其他应用程序的指令。以上所识别的指令无需实现为独立的软件程序或模块。可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中,实现移动计算设备的各种功能。
虽然图60中例示的组件被示出为独立的组件,但是本领域的普通技术人员将认识到,两个或更多个组件可集成到一个或多个集成电路中。另外,两个或更多个组件可由一条或多条通信总线或信号线来耦接在一起。另外,虽然许多功能已描述为是由一个组件执行,但是本领域的技术人员将认识到,参照图60所述的功能可分到两个或更多个集成电路中。
B.计算机系统
图61概念性地例示实现本发明的一些实施例所利用的电子系统6100的另一个实例。电子系统6100可以为计算机(例如,台式计算机、个人计算机、平板电脑等)、电话、PDA、或任何其他种类的电子或计算设备。此类电子系统包括各种类型的计算机可读介质以及用于各种其他类型的计算机可读介质的接口。电子系统6100包括总线6105、一个或多个处理单元6110、图形处理单元(GPU)6115、系统存储器6120、网络6125、只读存储器6130、永久性存储设备6135、输入设备6140、以及输出设备6145。
总线6105总体表示在通信上连接电子系统6100的许多内部设备的所有系统、外围设备、以及芯片组总线。例如,总线6105在通信上将这一个或多个处理单元6110与只读存储器6130、GPU 6115、系统存储器6120、以及永久性存储设备6135连接。
这一个或多个处理单元6110从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本发明的过程。在不同实施例中,一个或多个处理单元可以为单个处理器或者多核处理器。一些指令被传送至GPU 6115并由该GPU执行。GPU 6115可卸载各种计算,或补充由这一个或多个处理单元6110提供的图像处理。在一些实施例中,此类功能可以利用Corelmage的内核着色语言来提供。
只读存储器(ROM)6130存储这一个或多个处理单元6110和电子系统的其他模块所需的静态数据和指令。另一方面,永久性存储设备6135是读写存储器设备。此设备是即使在电子系统6100关闭时也存储指令和数据的非易失性存储器单元。本发明的一些实施例使用海量存储设备(诸如磁盘或光盘以及其相应盘驱动器、集成的闪存存储器)作为永久性存储设备6135。
其他实施例将可移动的存储设备(诸如软盘、闪存存储器设备等,及其对应的驱动器)用作永久性存储设备。与永久性存储设备6135一样,系统存储器6120也是读写存储器设备。但是,与存储设备6135不同的是,系统存储器6120是易失性读写存储器,诸如随机存取存储器。系统存储器6120存储处理器在运行时所需的指令和数据中的一些。在一些实施例中,本发明的过程存储在系统存储器6120、永久性存储设备6135、和/或只读存储器6130中。例如,各种存储器单元包括用于根据一些实施例处理多媒体片段的指令。这一个或多个处理单元6110从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
总线6105还连接至输入设备6140和输出设备6145。输入设备6140允许用户将信息传递至电子系统以及选择要传递至电子系统的命令。输入设备6140包括字母数字键盘和指示设备(也称为“光标控制设备”)、相机(例如网络摄像头)、麦克风或用于接收语音命令的类似设备等等。输出设备6145显示电子系统所生成的图像或者以其他方式输出数据。输出设备6145包括打印机和诸如阴极射线管(CRT)或液晶显示器(LCD)的显示设备,以及扬声器或类似的音频输出设备。一些实施例包括充当输入设备和输出设备两者的设备,诸如触摸屏。
最后,如图61所示,总线6105还通过网络适配器(未示出)将电子系统6100耦接到网络6125。这样,计算机可以是计算机网络(诸如局域网(“LAN”)、广域网(“WAN”)、或内联网)的一部分、或者是网络的网络(诸如互联网)的一部分。电子系统6100的任何或所有组件均可与本发明结合使用。
一些实施例包括将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的电子部件,诸如微处理器、存储装置以及存储器。这样的计算机可读介质的一些示例包括RAM、ROM、只读压缩盘(CD-ROM)、可记录压缩盘(CD-R)、可写压缩盘(CD-RW)、只读数字多功能盘(例如DVD-ROM、双层DVD-ROM)、多种可记录/可写DVD(例如DVD-RAM、DVD-RW、DVD+RW等等)、闪存存储器(例如SD卡、迷你SD卡、微型SD卡等等)、磁和/或固态硬盘驱动器、只读和可记录盘、高密度光盘、任何其他光学或磁介质、和软盘。计算机可读介质可存储计算机程序,该计算机程序可由至少一个处理单元来执行并且包括用于执行各种操作的指令集。计算机程序或者计算机代码的实例包括机器代码,诸如由编译器所产生的机器代码,以及包括可由计算机、电子部件或微处理器使用解译器来执行的更高级别代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但一些实施例由一个或多个集成电路来执行,该一个或多个集成电路诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施例中,此类集成电路执行存储在电路自身上的指令。此外,一些实施例执行存储在可编程逻辑设备(PLD)、ROM或RAM设备中的软件。
如本说明书和本专利申请的任何权利要求中所使用的那样,术语“计算机”、“服务器”、“处理器”、和“存储器”都指代电子或其他技术设备。这些术语不包括人或者人的群组。出于本说明书的目的,术语显示或正在显示意指在电子设备上显示。如本说明书和本专利申请的任何权利要求中所使用的那样,术语“计算机可读介质”、“计算机可读媒介”、和“机器可读介质”都完全限于以计算机可读的形式存储信息的有形物理对象。这些术语不包括任何无线信号、有线下载信号以及任何其他短暂信号。
VI.地图服务上下文
各种实施例可工作于地图服务操作上下文内。图62例示了根据一些实施例的一种地图服务操作上下文。地图服务6230(也称为地图绘制服务)可以为通过各种通信方法和协议与地图服务6230通信的一个或多个客户端设备6202a-6202c提供地图服务。地图服务6230在一些实施例中提供地图信息和其它地图相关数据,诸如二维地图图像数据(例如利用卫星图像的道路鸟瞰图)、三维地图图像数据(例如具有三维特征(诸如建筑物)的能穿过的地图)、路线和方向计算(例如渡轮航线计算或两点之间的步行方向)、实时导航数据(例如二维或三维中的逐向视觉导航数据)、位置数据(例如客户端设备当前位于哪里)、和其他地理数据(例如无线网络覆盖、天气、交通信息、或附近兴趣点)。在各种实施例中,地图服务数据可以包括不同国家或地区的局域标签。局域标签可以用来在客户端设备上以不同语言呈现地图标签(例如街道名称、城市名称、兴趣点)。客户端设备6202a-6202c可以通过获得地图服务数据来利用这些地图服务。客户端设备6202a-6202c可以实现各种技术来处理地图服务数据。客户端设备6202a-6202c然后可以提供地图服务给各种实体,包括但不限于用户、内部软件或硬件模块、和/或客户端设备6202a-6202c外部的其他系统或设备。
在一些实施例中,地图服务由分布式计算系统中的一个或多个节点来实现。可以为每个节点分配地图服务的一个或多个服务或组件。可以为一些节点分配地图服务的相同地图服务或者组件。负载平衡节点在一些实施例中将访问或请求分配给地图服务内的其他节点。在一些实施例中,地图服务被实现为单个系统,诸如单个服务器。服务器内的不同模块或硬件设备可以实现地图服务提供的各种服务中的一个或多个。
地图服务在一些实施例中通过以各种格式生成地图服务数据来提供地图服务。在一些实施例中,地图服务数据的一种格式是地图图像数据。地图图像数据提供图像数据给客户端设备,使得客户端设备可以处理图像数据(例如将图像数据渲染和/或显示为二维或三维地图)。地图图像数据不管是二维还是三维的,都可以指定一个或多个地图图块。地图图块可以是更大地图图像的一个部分。将地图的地图图块组合在一起就生成原始地图。图块可以由地图图像数据、路线规划或导航数据、或者其他任何地图服务数据生成。在一些实施例中,地图图块是基于栅格的地图图块,其中图块尺寸涵盖从比常用的256像素乘256像素图块小的任何尺寸到比常用的256像素乘256像素图块大的任何尺寸。基于栅格的地图图块可以任意数量的标准数字图像表示来编码,标准数字图像表示包括但不限于位图(.bmp)、图形交换格式(.gif)、联合图像专家组(.jpg、.jpeg等等)、可移植网络图像(.png)、或标记图像文件格式(.GIFf)。在一些实施例中,地图图块是基于矢量的地图图块,其利用矢量图编码,包括但不限于可缩放矢量图形(.svg)或画图文件(.drw)。一些实施例还包括具有矢量和栅格数据组合的图块。元数据或关于地图图块的其他信息也可以包括在地图图块内或与地图图块一起包括,从而提供进一步的地图服务数据给客户端设备。在各种实施例中,地图图块被编码,以利用各种标准和/或协议进行传输,在下面的示例中描述了其中的一些。
在各种实施例中,地图图块可以根据缩放水平而由不同分辨率的图像数据来构造。例如,对于低缩放水平(例如世界或全球视图),地图或图像数据的分辨率相对于高缩放水平(例如城市或街道级别)的分辨率不需要是高的。例如,当在全球视图中,可能不需要渲染街道级别的人造物体,因为这样的对象在很多情况下会小到可以忽略。
地图服务在一些实施例中执行各种技术来在为了传输而对图块进行编码之前分析地图图块。这个分析可以对于客户端设备和地图服务二者优化地图服务性能。在一些实施例中,根据基于矢量的图形技术针对复杂性来分析地图图块,并且利用复合和非复合层来构建地图图块。还可以针对公共图像数据或图案对地图图块进行分析,公共图像数据或图案可以作为图像纹理被渲染并且通过依赖于图像掩模来构建。在一些实施例中,地图图块中的基于栅格的图像数据包含与一个或多个纹理相关联的某些掩模值。一些实施例还针对可能与包含样式标识符的某些地图样式相关联的指定特征来分析地图图块。
其他地图服务在一些实施例中依赖于独立于地图图块的各种数据格式生成地图服务数据。例如,提供位置数据的地图服务可以利用符合位置服务协议的数据格式,位置服务协议诸如是、但不限于无线电资源位置服务协议(RRLP)、码分多址(CDMA)的TIA 801、无线电资源控制(RRC)定位协议、或者LTE定位协议(LPP)。实施例还可以从客户端设备接收或请求标识设备能力或属性(例如硬件参数或操作系统版本)或者通信能力(例如通过无线信号强度或者有线或无线网络类型确定的设备通信带宽)的数据。
地图服务可以从内部或外部来源获得地图服务数据。例如,在地图图像数据中使用的卫星图像可以从外部服务、或者内部系统、存储设备、或节点获得。其他示例可以包括但不限于GPS辅助服务器、无线网络覆盖数据库、商用或个人目录、天气数据、政府信息(例如建设更新或道路名称改变)、或交通报告。地图服务的一些实施例可以更新地图服务数据(例如无线网络覆盖)以分析来自客户端设备的未来请求。
地图服务的各种实施例可以响应客户端设备对地图服务的请求。这些请求可以是针对特定地图或地图部分的。一些实施例将对地图的请求格式化为对某些地图图块的请求。在一些实施例中,请求还向地图服务提供用于路线计算的起点位置(或当前位置)和目的地位置。客户端设备还可以请求地图服务渲染信息,诸如地图纹理或样式表。在至少一些实施例中,请求还是实现逐向导航的一系列请求中的一者。对其他地理数据的请求可以包括但不限于请求当前位置、无线网络覆盖、天气、交通信息、或附近兴趣点。
地图服务在一些实施例中分析客户端设备请求以优化设备或地图服务操作。例如,地图服务可以识别出客户端设备的位置在通信弱(即无线信号弱)的区域中,并且发送更多地图服务数据以在通信丢失的情况下提供给客户端设备或者发送使用其他客户端硬件(例如取向传感器)或软件(例如利用无线位置服务或Wi-Fi定位,而非基于GPS的服务)的指令。在另一示例中,地图服务可分析客户端设备对基于矢量的地图图像数据的请求,并且确定根据图像复杂性,基于栅格的地图数据更好地优化地图图像数据。其他地图服务的实施例可以对客户端设备请求执行类似分析,并且因此,上述示例并非旨在是限制性的。
客户端设备(例如客户端设备6202a-6202c)的各种实施例在不同便携式多功能设备类型上实现。客户端设备6202a-6202c通过各种通信方法和协议利用地图服务6230。在一些实施例中,客户端设备6202a-6202c从地图服务6230获得地图服务数据。客户端设备6202a-6202c请求或接收地图服务数据。客户端设备6202a-6202c然后处理地图服务数据(例如渲染和/或显示数据),并且可以将数据发送到设备上的另一软件或硬件模块或者发送到外部设备或系统。
根据一些实施例,客户端设备实现用于渲染和/或显示地图的技术。这些地图可以以各种格式被请求或接收,诸如上述地图图块。客户端设备可以在二维或三维视图中渲染地图。客户端设备的一些实施例显示所渲染的地图,并且允许用户、系统、或设备提供输入来操纵地图中的虚拟相机,从而根据虚拟相机的位置、取向、和视场改变地图显示。各种形式的输入设备被实现来操纵虚拟相机。在一些实施例中,触摸输入通过某些单手势或组合手势(例如触摸并保持或者轻扫)操纵虚拟相机。其他实施例允许操纵设备的物理位置来操纵虚拟相机。例如,客户端设备可以从其当前位置向上倾斜,以操纵虚拟相机来向上旋转。在另一示例中,客户端设备可以被从其当前位置向前倾斜以将虚拟相机向前移动。可以实现对客户端设备的其他输入设备,包括但不限于音频输入(例如口头字词)、物理键盘、鼠标、和/或操纵杆。
一些实施例为虚拟相机操纵提供多种视觉反馈,诸如在从二维地图视图过渡到三维地图视图时显示可能的虚拟相机操纵的动画。一些实施例还允许输入来选择地图特征或对象(例如建筑物)以及突出显示该对象,从而产生保持虚拟相机的三维空间感知的模糊效果。
在一些实施例中,客户端设备实现导航系统(例如逐向导航)。导航系统提供方向或路线信息,其可以被显示给用户。客户端设备的一些实施例向地图服务请求方向或路线计算。客户端设备可以从地图服务接收地图图像数据和路线数据。在一些实施例中,客户端设备实现逐向导航系统,其基于从地图服务和/或其他位置系统(诸如全球定位卫星(GPS))接收的位置信息和路线信息提供实时路线和方向信息。客户端设备可以显示反映客户端设备当前位置的地图图像数据并且实时地更新地图图像数据。导航系统可以提供用于遵循某条路线的听觉或视觉方向。
根据一些实施例,虚拟相机被实现为操纵导航地图数据。在一些实施例中,客户端设备允许设备调节虚拟相机显示取向以朝向路线目的地偏置。一些实施例还允许虚拟相机通过模拟虚拟相机的惯性运动来对转弯进行导航。
客户端设备实现各种技术来利用来自地图服务的地图服务数据。一些实施例实现一些技术来优化二维和三维地图图像数据的渲染。在一些实施例中,客户端设备本地地存储渲染信息。例如,客户端存储样式表,其提供包含样式标识符的用于图像数据的渲染指示。在另一示例中,公共图像纹理可以被存储,以减少从地图服务传送的地图图像数据量。不同实施例中的客户端设备实现各种建模技术来渲染二维和三维地图图像数据,其示例包括但不限于:由二维建筑物占地轮廓生成三维建筑物;对二维和三维地图对象进行建模以确定客户端设备通信上下文;生成用于确定从特定虚拟相机位置是否看到地图标签的模型;和生成用于在地图图像数据之间平滑过渡的模型。在一些实施例中,客户端设备还以某些技术对地图服务数据排序或划分优先顺序。例如,客户端设备检测虚拟相机的运动或速度,如果其超过某些阈值,则为某些区域加载和渲染详细度更低的图像数据。其他示例包括:将基于矢量的曲线渲染为一系列点、对于与地图服务的通信弱的区域预加载地图图像数据、基于显示缩放水平来调整纹理、或者根据复杂性渲染地图图像数据。
在一些实施例中,客户端设备利用独立于地图图块的各种数据格式进行通信。例如,一些客户端设备实现辅助全球定位卫星(A-GPS),并且与利用符合位置服务协议的数据格式的位置服务通信,位置服务协议诸如是但不限于无线电资源位置协议(RRLP)、码分多址(CDMA)的TIA 801、无线电资源控制(RRC)定位协议、或LTE定位协议(LPP)。客户端设备还可以直接接收GPS信号。实施例还可以在地图服务要求或没有要求的情况下发送标识客户端设备能力或属性(例如硬件参数或操作系统版本)或者通信能力(例如通过无线信号强度或者有线或无线网络类型确定的设备通信带宽)的数据。
图62例示了用于地图服务6230和客户端设备6202a-6202c的操作上下文6200的一个可能实施例。在一些实施例中,设备6202a、6202b、和6202c通过一些或多个有线或无线网络6210通信。例如,无线网络6210(诸如蜂窝网络)可以利用网关6214与广域网(WAN)6220(诸如互联网)通信。网关6214在一些实施例中提供面向分组的移动数据服务(诸如通用分组无线电服务(GPRS))、或者允许无线网络传输数据到其他网络(诸如广域网6220)的其他移动数据服务。同样地,接入设备6212(例如IEEE802.11g无线接入设备)提供对WAN 6220的通信接入。设备6202a和6202b可以是能够与地图服务通信的任何便携式电子或计算设备。设备6202c可以是能够与地图服务通信的任何非便携式电子或计算设备。
在一些实施例中,通过无线网络6210和接入设备6212建立语音和数据通信二者。例如,设备6202a可以通过无线网络6210、网关6214、和WAN 6220(例如利用传输控制协议/互联网协议(TCP/IP)或用户数据报协议(UDP))发起和接收电话呼叫(例如利用互联网协议语音技术(VoIP)协议),发送和接收电子邮件消息(例如利用简单邮件传输协议(SMTP)或邮局协议3(POP3)),以及检索电子文档和/或流,诸如网页、照片、和视频。同样,在一些实施例中,设备6202b和6202c可以通过接入设备6212和WAN 6220发起和接收电话呼叫、发送和接收电子邮件消息、以及检索电子文档。在各种实施例中,任何所例示的客户端设备都可以利用根据一个或多个安全协议建立的持久性连接与地图服务6230和/或一个或多个其他服务6250通信,安全协议诸如是安全套接层(SSL)协议或传输层安全(TLS)协议。
设备6202a和6202b也可以通过其他方式建立通信。例如,无线设备6202a可以通过无线网络6210与其他无线设备(例如其他设备6202b、蜂窝电话等)通信。同样,设备6202a和6202b可以利用一个或多个通信子系统建立对等通信6240(例如个人局域网),诸如来自Washington的Kirkland的Bluetooth Special Interest Group,Inc.的通信。设备6202c也可以与设备6202a或6202b建立对等通信(未示出)。也可实现其他通信协议和拓扑结构。设备6202a和6202b还可以从全球定位系统(GPS)卫星6260接收GPS信号。
设备6202a、6202b、和6202c可以通过一个或多个有线和/或无线网络6212或6210与地图服务6230通信。例如,地图服务6230可以将地图服务数据提供给进行渲染的设备6202a、6202b、和6202c。地图服务6230还可以与其他服务6250通信,以获得用于实现地图服务的数据。地图服务6230和其他服务6250还可以从GPS卫星6260接收GPS信号。
在各种实施例中,地图服务6230和/或一个或多个其他服务6250被配置为处理来自任何所述客户端设备的搜索请求。搜索请求可以包括但不限于对商铺、地址、住宅位置、兴趣点、或它们的某种组合的查询。地图服务6230和/或一个或多个其他服务6250可以被配置为返回与多个参数相关的结果,所述参数包括但不限于输入到地址栏或其他文本输入字段中的位置(包括缩写和/或其他简写形式)、当前地图视图(例如用户可能正在多功能设备上查看一个位置而同时身处另一位置)、用户的当前位置(例如在当前地图视图不包括搜索结果的情况下)、和当前路线(如果有的话)。在多种实施例中,这些参数可基于不同优先权重影响搜索结果的组成(和/或搜索结果的排序)。在各种实施例中,返回的搜索结果可以是基于特定标准选择的结果子集,特定标准包括但不限于搜索结果(例如某个兴趣点)已经被请求的次数、与搜索结果相关联的质量量度(例如最高用户或编辑评论评级)、和/或搜索结果的评论量(例如搜索结果已经被评论或评级的次数)。
在各种实施例中,地图服务6230和/或一个或多个其他服务6250被配置为提供在客户端设备上(诸如在地图绘制应用程序内)显示的自动完成搜索结果。例如,自动完成搜索结果可以在用户在多功能设备上输入一个或多个搜索关键词时填充屏幕的一部分。在一些情况下,该特征可以节省用户时间,因为所期望的搜索结果可能在用户输入完整搜索查询之前就被显示。在各种实施例中,自动完成搜索结果可以是客户端在客户端设备上找到的搜索结果(例如书签或联系人)、地图服务6230和/或一个或多个其他服务6250在其他地方(例如从互联网)找到的搜索结果、和/或其某种组合。与命令的情况一样,任何搜索查询可以由用户经由语音或者通过打字来输入。多功能设备可以被配置为在本文所述的任何地图显示内图形地显示搜索结果。例如,图钉或其他图形指示器可以将搜索结果的位置指定为兴趣点。在各种实施例中,响应于用户选择这些兴趣点中的一者(例如触摸选择,诸如轻击),多功能设备被配置为显示关于所选兴趣点的附加信息,包括但不限于该兴趣点的评级、评论或评论摘录、营业时间、店铺状态(例如开业、永久关闭等)、和/或店面图像。在各种实施例中,任何这个信息可以被显示在响应于用户选择兴趣点而显示的图形信息卡上。
在各种实施例中,地图服务6230和/或一个或多个其他服务6250提供一个或多个反馈机制以接收来自客户端设备6202a-6202c的反馈。例如,客户端设备可以将对搜索结果的反馈提供给地图服务6230和/或一个或多个其他服务6250(例如指定评级、评论、临时或永久关闭、错误等的反馈);这个反馈可用于更新关于兴趣点的信息,以便未来提供更精确或更切合当时情况的搜索结果。在一些实施例中,地图服务6230和/或一个或多个其他服务6250可以提供测试信息给客户端设备(例如A/B测试)以确定哪些搜索结果最佳。例如,以随机间隔,客户端设备可以接收并呈现两个搜索结果给用户,并且允许用户指定最佳结果。客户端设备可以将测试结果报告给地图服务6230和/或一个或多个其他服务6250以基于所选测试技术改善未来搜索结果,测试技术诸如是A/B测试技术,其中将基线对照样本与多个单变量测试样本进行比较以便改善结果。
虽然已参考许多特定细节描述了本发明,但本领域的普通技术人员将认识到,可在不脱离本发明的实质的情况下以其他特定形式来体现本发明。例如,许多图例示各种触摸手势(例如,轻击、双击、横扫手势、按下并保持手势等)。然而,所例示操作中的许多操作可经由不同触摸手势(例如,横扫而非轻击等)或由非触摸输入(例如,使用光标控制器、键盘、触摸板/触控板、近触感屏等)来执行。此外,多个附图概念性地例示了过程。这些过程的特定操作可不以所示出和描述的确切顺序被执行。可不在操作的一个连续系列中执行该特定操作,并且可在不同实施例中执行不同的特定操作。此外,该过程可使用若干子过程来实施,或者作为更大宏过程而实施。
权利要求书(按照条约第19条的修改)
1.一种存储供设备的至少一个处理单元执行的导航程序的机器可读介质,所述导航程序包括用于以下操作的指令集:
标识所述设备的当前位置和目标位置;
标识与所标识的所述设备的当前位置相关联的道路标志的样式;
沿从所述当前位置到所述目标的路线生成多个导航指令;以及
在所述设备沿所述路线行进时,以匹配所标识的样式的道路标志的形式呈现所述多个导航指令。
2.根据权利要求1所述的机器可读介质,其中用于呈现所述多个导航指令的指令集包括用于以下操作的指令集:
标识用于所标识的样式的道路标志模板图像;以及
对于一组所述导航指令中的每一者,将所标识的道路标志模板与文本指令和图形指令中的至少一者合成以生成复合道路标志指令。
3.根据权利要求2所述的机器可读介质,其中用于合成的指令集包括用于生成复合纹理图像的指令集,所述复合纹理图像具有与所标识位置处的道路标志的样式相关联的纹理和外貌。
4.根据权利要求2所述的机器可读介质,其中所述文本指令指定沿所导航路线的交叉点处的操控,而所述图形指令包括图示说明所述交叉点处的所述操控的方向指示器。
5.根据权利要求1所述的机器可读介质,其中所述导航程序还包括用于以下操作的指令集:
呈现具有外观的特定道路标志一段时间;以及
在所述一段时间之后修改所述特定道路标志的外观以吸引对所述特定道路标志的注意。
6.根据权利要求5所述的机器可读介质,其中用于修改所述特定道路标志的外观的指令集包括用于在返回呈现具有所述外观的所述特定道路标志之前修改所述特定道路标志的外观另一段时间的指令集。
7.根据权利要求5所述的机器可读介质,其中用于修改所述特定道路标志的外观的指令集包括用于生成使所述特定道路标志部分或全部发光的照明效果的指令集。
8.根据权利要求7所述的机器可读介质,其中用于生成所述照明效果的指令集包括用于投射横穿所述特定道路标志的光的指令集。
9.根据权利要求7所述的机器可读介质,其中所述照明效果照亮所述特定道路标志的一系列邻接区段,以便生成光源横贯所述特定道路标志的效果。
10.一种存储供设备的至少一个处理单元执行的导航程序的机器可读介质,所述导航程序包括用于以下操作的指令集:
标识沿所述导航程序为其提供指令的所导航路线的相互邻近的两个连续操控;
同时呈现第一道路标志和第二道路标志以描述所述两个操控。
11.根据权利要求10所述的机器可读介质,其中用于呈现所述第一道路标志和第二道路标志的指令集包括用于以下操作的指令集:
生成所述第一道路标志,在所述第一道路标志内放置有用于第一操控的导航指令;
生成所述第二道路标志,在所述第二道路标志内放置有用于第二操控的导航指令,其中所述第一道路标志具有比所述第二道路标志更多的导航信息;以及
同时呈现所述第一道路标志和第二道路标志。
12.根据权利要求10所述的机器可读介质,其中所述导航程序还包括用于以下操作的指令集:
标识沿所导航路线的第三操控,所述第三操控沿所导航路线不具有任何邻近的操控;以及
在没有任何附加道路标志的情况下呈现第三道路标志,以便描述所述第三操控。
13.根据权利要求11所述的机器可读介质,其中所述第二道路标志小于所述第一道路标志。
14.根据权利要求13所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
在所述设备经过了与所述第一道路标志相关联的第一操控之后移除所述第一道路标志;以及
用描述所述第二操控的具有附加导航信息的更大的第三道路标志替代所述第二道路标志。
15.一种生成导航呈现的方法,所述方法包括:
标识设备的当前位置和目标位置;
标识与所标识的所述设备的当前位置相关联的道路标志的样式;以及
沿从所述当前位置到所述目标位置的路线生成多个导航指令;以及
在所述设备沿所述路线行进时,以匹配所标识的样式的道路标志的形式呈现所述多个导航指令。
16.根据权利要求15所述的方法,其中呈现所述多个导航指令包括:
标识用于所标识的样式的道路标志模板图像;以及
对于一组所述导航指令中的每一者,将所标识的道路标志模板与文本指令和图形指令中的至少一者合成以生成复合道路标志指令。
17.根据权利要求16所述的方法,其中合成包括生成具有与所标识位置处的道路标志的样式相关联的纹理和外貌的复合纹理图像。
18.根据权利要求15所述的方法,还包括:
呈现具有外观的特定道路标志一段时间;以及
在所述一段时间之后修改所述特定道路标志的外观以吸引对所述特定道路标志的注意。
19.根据权利要求18所述的方法,其中修改所述特定道路标志的外观包括在返回呈现具有所述外观的所述特定道路标志之前修改所述特定道路标志的外观另一段时间。
20.根据权利要求18所述的方法,其中修改所述特定道路标志的外观包括生成使所述特定道路标志部分或全部发光的照明效果。
21.一种存储供设备的至少一个处理单元执行的导航程序的机器可读介质,所述设备包括触敏屏幕和触摸输入界面,所述程序包括用于以下操作的指令集:
生成并显示二维(2D)导航呈现;
生成并显示三维(3D)导航呈现;以及
显示用于从所述2D导航呈现转换到所述3D导航呈现的3D控件。
22.根据权利要求21所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
接收对所述3D控件的选择;以及
响应于所述选择,指示所述程序从所述2D呈现切换到所述3D呈现。
23.根据权利要求21所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
从所述触摸输入界面接收用于选择所述3D控件的第一触摸输入;
从所述触摸输入界面接收第二触摸输入;
确定所述第二触摸输入是用于从所述2D呈现转换到所述3D呈现的多点触摸手势输入;以及
响应于所述第一触摸输入或第二触摸输入,指示所述程序从所述2D呈现切换到所述3D呈现。
24.根据权利要求21所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
从所述触摸输入界面接收第一触摸输入;
确定所述第一触摸输入是用于从所述2D呈现转换到所述3D呈现的多点触摸手势输入;以及
响应于所述第一触摸输入,指示所述程序从所述2D呈现切换到所述3D呈现。
25.根据权利要求24所述的机器可读介质,
其中所述多点触摸手势输入是在特定方向上的多点触摸拖动操作,并且
其中所述多点触摸拖动操作包括沿所述触敏屏幕在所述特定方向上或在所述特定方向的阈值内被拖动的至少两个不同的触摸触点。
26.根据权利要求25所述的机器可读介质,其中所述特定方向是沿所述触敏屏幕的竖直轴线的向上方向,并且所述多点触摸拖动操作是两个手指拖动操作。
27.根据权利要求24所述的机器可读介质,
其中所述导航呈现中的至少一者将所追踪的所述设备的当前位置显示在所述呈现内的特定位置处,
其中所述导航呈现在围绕所述设备的区域的地图中显示所追踪的所述设备的当前位置,并且
其中所述程序还包括用于以下操作的指令集:
在所述导航呈现期间通过所述触摸输入界面接收第二触摸输入;
确定所述第二触摸输入是用于改变在所述导航呈现期间呈现的视图的手势输入;以及
响应于所述第二触摸输入,通过改变所述设备的所追踪的当前位置在所述导航呈现中的位置以便显示所述地图的先前在所述导航呈现期间未呈现的部分来改变所述导航呈现。
28.根据权利要求27所述的机器可读介质,其中所述程序还包括用于在一段时间之后将在所述导航呈现中所显示的所述设备的所追踪的当前位置返回到在响应于所述第二触摸输入改变所述视图之前在所述呈现中的所述位置的指令集。
29.根据权利要求28所述的机器可读介质,其中所述第二触摸输入是单点触摸拖动操作。
30.根据权利要求21所述的机器可读介质,其中用于显示所述3D控件的指令集包括用于以下操作的指令集:
在显示所述2D导航呈现时显示具有第一外观的所述3D控件;以及
在显示所述3D导航呈现时显示具有第二外观的所述3D控件。
31.根据权利要求30所述的机器可读介质,其中用于显示所述3D控件的指令集还包括用于在数据不可用于呈现所述3D导航呈现时显示具有第三外观的所述3D控件的指令集。
32.根据权利要求21所述的机器可读介质,其中用于生成所述3D导航呈现的指令集包括用于由围绕所述设备的当前位置的区域的3D地图场景的特定透视图来渲染3D呈现的指令集。
33.根据权利要求32所述的机器可读介质,其中所述3D地图场景包括所述3D地图中的构建体,所述构建体包括道路和建筑物。
34.根据权利要求32所述的机器可读介质,其中用于渲染的指令集包括用于以下操作的指令集:
定义虚拟相机以表示所述特定透视图;以及
响应于所接收的触摸输入来移动所述虚拟相机,以便改变用于渲染所述3D地图场景的透视图。
35.根据权利要求21所述的机器可读介质,其中所述程序还包括用于在提供所述导航呈现中的一者期间追踪所述设备的位置的指令集,其中所述导航呈现将所追踪的所述设备的当前位置显示在所述呈现内的特定位置处,其中所述导航呈现在围绕所述设备的区域的地图中显示所追踪的所述设备的当前位置。
36.根据权利要求35所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
使所追踪的位置与沿所导航路线的导航指引相关;
在基于所追踪的所述设备的位置检测到所述设备不再在所导航路线上时,生成新的一组导航指引;以及
在描述新的所导航路线的导航呈现期间提供所述新的一组导航指引。
37.根据权利要求36所述的机器可读介质,其中用于追踪所述设备的位置的指令集包括用于使用由所述设备的全球定位系统(GPS)接收器生成的GPS数据来标识所述设备的所追踪的当前位置的指令集。
38.根据权利要求35所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
在所述程序正在显示3D导航呈现期间检测到所述设备正到达交叉口;以及
从所述3D导航呈现切换到所述2D导航呈现,以提供沿所导航路线的所述交叉口的更好视图。
39.根据权利要求38所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
在切换到所述2D导航呈现之后检测到所述设备已经经过了所述交叉口;以及
从所述2D导航呈现切换到所述3D导航呈现以恢复所述3D呈现。
40.一种在具有触敏屏幕和触摸输入界面的设备上提供导航指令的方法,所述方法包括:
生成并显示地图的二维(2D)呈现,用于沿路线进行导航;
在沿所述路线进行导航期间,从所述触摸输入界面接收触摸输入;
确定所述触摸输入是用于从所述2D呈现转换到三维(3D)呈现的多点触摸手势输入;以及
响应于所述触摸输入,生成并显示所述地图的所述3D呈现,用于沿所述路线进行导航。
41.一种包括至少一个处理单元的设备,所述设备存储供所述至少一个处理单元执行的导航程序,所述导航程序包括用户界面(UI),所述UI包括:
用于显示二维(2D)导航呈现或三维(3D)导航呈现的显示区域;和
用于指示所述程序在所述2D导航呈现和所述3D导航呈现之间转换的能够选择的3D控件。
42.根据权利要求41所述的设备,其中所述能够选择的3D控件在显示所述2D导航呈现时具有第一外观,并且在显示所述3D导航呈现时具有第二外观。
43.根据权利要求41所述的设备,
其中所述设备包括触敏屏幕和用于通过所述屏幕接收多点触摸手势输入的多点触摸界面,并且
其中所述UI还包括手势处理模块,其用于从所述多点触摸界面接收手势输入并且将第一类型的手势输入转化为指示所述导航程序在所述2D呈现和3D呈现之间切换的指令。
44.根据权利要求43所述的设备,其中所述第一类型的手势输入是在特定方向上的拖动操作。
45.根据权利要求43所述的设备,其中每个第一类型的手势输入都包括沿所述触敏屏幕在特定方向上或在所述特定方向的阈值内拖动的至少两个不同的触摸触点。
46.一种供设备的至少一个处理单元执行的导航应用程序,所述导航应用程序包括:
用于接收描述沿从第一位置到第二位置的路线的交叉点的数据的接口,其中每个交叉点的所述数据包括道路离开所述交叉点的一组角度;
交叉点简化器,其用于为所描述的交叉点简化所述角度;
箭头生成器,其用于生成所简化的交叉点的至少两个不同表示,所述表示用于在显示描述在所述路线期间在所述交叉点处执行的操控的导航信息时使用;和
箭头选择器,其用于根据所述表示将在其中被显示的上下文来选择所简化的交叉点的所述不同表示中的一者用于显示。
47.根据权利要求46所述的导航应用程序,还包括上下文分析器,所述上下文分析器用于确定所述表示将在其中被显示的上下文。
48.根据权利要求46所述的导航应用程序,还包括标志生成器,所述标志生成器用于将所选择的箭头结合到用于显示给所述导航应用程序的用户的标志中。
49.根据权利要求48所述的导航应用程序,其中所述标志除了所选择的箭头之外还包括用于所述操控的文本指令,其中所述文本指令基于所述指令将在其中被显示的上下文。
50.根据权利要求48所述的导航应用程序,其中所述标志被设计为看起来类似于道路标志。
51.根据权利要求48所述的导航应用程序,其中所述标志覆盖所述路线的动画显示的地图进行显示。
52.根据权利要求46所述的导航应用程序,其中每个交叉点的所述交叉点数据包括将离开所述交叉点的所述道路中的一者标记为用于在所述交叉点处执行的操控的出口分支的标签。
53.根据权利要求46所述的导航应用程序,其中所述导航应用程序是运行于手持设备上的地图绘制应用程序和导航应用程序。
54.一种存储供设备的至少一个处理单元执行的导航应用程序的机器可读介质,所述导航应用程序包括用于以下操作的指令集:
对于从地图上的第一位置到所述地图上的第二位置的路线,接收描述沿所述路线的在那里需要操控的交叉点的交叉点数据,其中用于特定交叉点的所述交叉点数据包括道路离开所述交叉点的一组角度,其中所述角度中的一者被标记为用于在所述特定交叉点处执行的操控的出口道路;
通过将所述角度折合到一组轴线来自动地简化用于所述特定交叉点的所述角度;以及
利用所简化的角度生成用于在所述特定交叉点处执行的操控的导航箭头。
55.根据权利要求54所述的机器可读介质,其中所述轴线包括位于45°的倍数处的八个可能折合点。
56.根据权利要求55所述的机器可读介质,其中位于0°的轴线表示继续直行通过所述交叉点的操控。
57.根据权利要求54所述的机器可读介质,其中用于自动地简化所述角度的指令集包括用于阻止多个角度折合到同一轴线的指令集。
58.根据权利要求54所述的机器可读介质,其中用于自动地简化所述角度的指令集包括用于阻止被标记为用于所述操控的出口道路的角度折合到与所述操控不兼容的轴线的指令集。
59.根据权利要求58所述的机器可读介质,其中用于生成导航箭头的指令集包括用于在所述出口道路否则会折合到与所述操控不兼容的轴线时使用用于所述操控的默认导航箭头的指令集。
60.一种供设备的至少一个处理单元执行的导航应用程序,所述导航应用程序包括:
用于接收描述沿从地图上的第一位置到所述地图上的第二位置的路线的交叉点的数据的接口,其中每个交叉点的所述数据包括道路离开所述交叉点的一组角度;
交叉点解码器,其用于由所述交叉点数据为每个交叉点合成描述要在所述交叉点处执行的操控的不同方面的指令元素;
指令生成器,其用于通过为在那里要执行操控的交叉点组合所述指令元素中的一个或多个来为所述操控生成至少两个不同指令集;和
指令检索器,其用于根据所述指令集将在其中被显示的上下文为所述操控选择所述不同指令集中的一者。
61.根据权利要求60所述的导航应用程序,还包括上下文分析器,所述上下文分析器用于确定所述指令集将在其中被显示的上下文。
62.根据权利要求60所述的导航应用程序,还包括标志生成器,所述标志生成器用于将所选择的指令集结合到用于显示给所述导航应用程序的用户的标志中。
63.根据权利要求62所述的导航应用程序,其中所述标志除了所选择的指令集之外还包括所述操控的图形指示,其中所述图形指示基于所述标志将在其中被显示的上下文。
64.根据权利要求62所述的导航应用程序,其中所述标志被设计为看起来类似于道路标志。
65.根据权利要求62所述的导航应用程序,其中所述标志覆盖所述路线的动画显示的地图进行显示。
66.根据权利要求60所述的导航应用程序,其中所述导航应用程序是运行于手持设备上的地图绘制和导航应用程序。
67.根据权利要求60所述的导航应用程序,其中特定交叉点的所述指令元素基于用于所述特定交叉点的所述交叉点数据。
68.根据权利要求60所述的导航应用程序,其中所述指令生成器还用于根据所述不同指令集关于所述操控传递的信息量来对所生成的用于特定操控的指令集划分等级。

Claims (68)

1.一种存储供设备的至少一个处理单元执行的导航程序的机器可读介质,所述程序包括用于以下操作的指令集:
标识所述设备的位置;
标识与所标识的所述设备的位置相关联的道路标志的样式;
生成匹配所标识的样式的道路标志的形式的导航指令。
2.根据权利要求1所述的机器可读介质,其中用于生成导航指令的指令集包括用于以下操作的指令集:
标识用于所标识的样式的道路标志模板图像;
对于多个导航指令中的每一者,将所标识的道路标志模板与文本指令和图形指令中的至少一者合成以生成复合道路标志指令。
3.根据权利要求2所述的机器可读介质,其中用于合成的指令集包括用于生成复合纹理图像的指令集,所述复合纹理图像具有与所标识位置处的道路标志相关联的纹理和外貌。
4.根据权利要求2所述的机器可读介质,其中所述文本指令指定沿所导航路线的交叉点处的操控,而所述图形指令包括图示说明所述交叉点处的所述操控的方向指示器。
5.根据权利要求1所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
呈现具有第一外观的特定道路标志一段时间;
在所述一段时间之后修改所述特定道路标志的外观以吸引对所述道路标志的注意。
6.根据权利要求5所述的机器可读介质,其中用于修改所述道路标志的外观的指令集包括用于在返回呈现具有所述第一外观的所述特定道路标志之前修改所述特定道路标志的外观另一段时间的指令集。
7.根据权利要求5所述的机器可读介质,其中用于修改所述特定道路标志的外观的指令集包括用于生成使所述特定道路标志部分或全部发光的照明效果的指令集。
8.根据权利要求7所述的机器可读介质,其中用于生成所述照明效果的指令集包括用于投射横穿所述特定道路标志的光的指令集。
9.根据权利要求7所述的机器可读介质,其中所述照明效果照亮所述特定道路标志的一系列邻接区段,以便生成光源横贯所述特定道路标志的效果。
10.一种存储供设备的至少一个处理单元执行的导航程序的机器可读介质,所述程序包括用于以下操作的指令集:
标识沿所导航路线的相互邻近的两个连续操控;
同时呈现两个道路标志以描述所述两个操控。
11.根据权利要求10所述的机器可读介质,其中用于呈现所述两个道路标志的指令集包括用于以下操作的指令集:
生成第一道路标志,在所述第一道路标志内放置有用于第一操控的导航指令;
生成第二道路标志,在所述第二道路标志内放置有用于第二操控的导航指令;
同时呈现所述第一道路标志和第二道路标志。
12.根据权利要求11所述的机器可读介质,其中每个导航指令包括文本指令和图形指令中的至少一者。
13.根据权利要求11所述的机器可读介质,其中所述第二道路标志小于所述第一道路标志。
14.根据权利要求13所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
在所述设备经过了与所述第一道路标志相关联的导航操控之后移除所述第一道路标志;
用描述所述第二操控的更大的第三道路标志替代所述第二道路标志。
15.一种生成导航呈现的方法,所述方法包括:
标识设备的位置;
标识与所标识的所述设备的位置相关联的道路标志的样式;以及
生成匹配所标识的样式的道路标志的形式的导航指令。
16.根据权利要求15所述的方法,其中生成导航指令包括:
标识用于所标识的样式的道路标志模板图像;
对于多个导航指令中的每一者,将所标识的道路标志模板与文本指令和图形指令中的至少一者合成以生成复合道路标志指令。
17.根据权利要求16所述的方法,其中合成包括生成具有与所标识位置处的道路标志相关联的纹理和外貌的复合纹理图像。
18.根据权利要求15所述的方法,还包括:
呈现具有第一外观的特定道路标志一段时间;以及
在所述一段时间之后修改所述特定道路标志的外观以吸引对所述道路标志的注意。
19.根据权利要求15所述的方法,其中修改所述道路标志的外观包括在返回呈现具有所述第一外观的所述特定道路标志之前修改所述特定道路标志的外观另一段时间。
20.根据权利要求15所述的方法,其中修改所述特定道路标志的外观包括生成使所述特定道路标志部分或全部发光的照明效果。
21.一种存储供设备的至少一个处理单元执行的导航程序的机器可读介质,所述设备包括触敏屏幕和触摸输入界面,所述程序包括用于以下操作的指令集:
生成并显示二维(2D)导航呈现;
生成并显示三维(3D)导航呈现;以及
显示用于从所述2D导航呈现转换到所述3D呈现的3D控件。
22.根据权利要求21所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
接收对所述3D控件的选择;以及
响应于所述选择,指示所述程序从所述2D呈现切换到所述3D呈现。
23.根据权利要求21所述的机器可读介质,其中所述设备包括触敏屏幕和触摸输入界面,所述程序还包括用于以下操作的指令集:
从所述触摸输入界面接收用于选择所述3D控件的第一触摸输入;
从所述触摸输入界面接收第二触摸输入;
确定所述第二触摸输入是用于从所述2D呈现转换到所述3D呈现的多点触摸手势输入;以及
响应于所述第一触摸输入或第二触摸输入,指示所述程序从所述2D呈现切换到所述3D呈现。
24.根据权利要求21所述的机器可读介质,其中所述设备包括触敏屏幕和触摸输入界面,所述程序还包括用于以下操作的指令集:
从所述触摸输入界面接收触摸输入;
确定所述触摸输入是用于从所述2D呈现转换到所述3D呈现的多点触摸手势输入;以及
响应于所述第一触摸输入或第二触摸输入,指示所述程序从所述2D呈现切换到所述3D呈现。
25.根据权利要求24所述的机器可读介质,
其中所述第二多点触摸输入是在特定方向上的多点触摸拖动操作,
其中所述多点触摸拖动操作包括沿所述屏幕在所述特定方向上或在所述特定方向的阈值内被拖动的至少两个不同的触摸触点。
26.根据权利要求25所述的机器可读介质,其中所述特定方向是沿地图的竖直轴线的向上方向,并且所述多点触摸拖动操作是两个手指拖动操作。
27.根据权利要求24所述的机器可读介质,
其中所述导航呈现中的至少一者将所追踪的所述设备的当前位置显示在所述呈现内的特定位置处,
其中所述导航呈现在围绕所述设备的区域的地图中显示所追踪的所述设备的当前位置,
其中所述程序还包括用于以下操作的指令集:
在所述导航呈现期间通过所述多点触摸输入界面接收第三触摸输入;
确定所述第三触摸输入是用于改变在所述导航呈现期间呈现的视图的手势输入;以及
响应于所述第三触摸输入,通过改变所述设备的当前位置在所述导航呈现中的位置以便显示所述地图的先前在所述导航呈现期间未呈现的部分来改变所述导航呈现。
28.根据权利要求27所述的机器可读介质,其中所述程序还包括用于在一段时间之后将在所述导航呈现中所显示的所述设备的当前位置返回到其在响应于所述第三触摸输入进行的所述改变之前在所述呈现中的原始位置的指令集。
29.根据权利要求28所述的机器可读介质,其中所述第三触摸输入是单点触摸拖动操作。
30.根据权利要求21所述的机器可读介质,其中用于显示所述3D控件的指令集包括用于以下操作的指令集:
在显示所述2D导航呈现时显示具有第一外观的所述3D控件;
在显示所述3D导航呈现时显示具有第二外观的所述3D控件。
31.根据权利要求30所述的机器可读介质,其中用于显示所述3D控件的指令集还包括用于在数据不可用于呈现所述3D导航呈现时显示具有第三外观的所述3D控件的指令集。
32.根据权利要求21所述的机器可读介质,其中用于生成所述3D导航呈现的指令集包括用于由围绕所述设备的当前位置的地图中区域的3D地图场景的特定透视图来渲染3D呈现的指令集。
33.根据权利要求32所述的机器可读介质,其中所述3D地图场景包括所述地图中的构建体,所述构建体包括道路和建筑物。
34.根据权利要求32所述的机器可读介质,其中用于渲染的指令集包括用于以下操作的指令集:
定义虚拟相机以表示所述特定透视图;以及
响应于所接收的触摸输入来移动所述虚拟相机,以便改变用于渲染所述3D地图场景的透视图。
35.根据权利要求21所述的机器可读介质,其中所述程序还包括用于在提供所述导航呈现中的一者期间追踪所述设备的位置的指令集,其中所述导航呈现将所追踪的所述设备的当前位置显示在所述呈现内的特定位置处,其中所述导航呈现在围绕所述设备的区域的地图中显示所追踪的所述设备的当前位置。
36.根据权利要求35所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
使所追踪的位置与沿所导航路线的导航指引相关;
在基于所追踪的所述设备的位置检测到所述设备不再在所导航路线上时,生成新的一组导航指引;以及
在描述新的所导航路线的导航呈现期间提供所述新的一组导航指引。
37.根据权利要求36所述的机器可读介质,其中用于追踪所述设备的位置的指令集包括用于使用由所述设备的全球定位系统(GPS)接收器生成的GPS数据来标识所述设备的位置的指令集。
38.根据权利要求35所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
在所述程序正在显示3D导航呈现期间检测到所述设备正到达交叉口;以及
从所述3D导航呈现切换到所述2D导航呈现,以提供沿所导航路线的所述交叉口的更好视图。
39.根据权利要求38所述的机器可读介质,其中所述程序还包括用于以下操作的指令集:
在切换到所述2D导航呈现之后检测到所述设备已经经过了所述交叉口;以及
从所述2D导航呈现切换到所述3D导航呈现以恢复所述3D呈现。
40.一种在具有触敏屏幕和触摸输入界面的设备上提供导航指令的方法,所述方法包括:
生成并显示地图的二维(2D)呈现;
从所述触摸输入界面接收触摸输入;
确定所述触摸输入是用于从所述2D呈现转换到三维(3D)呈现的多点触摸手势输入;以及
响应于所述触摸输入,生成并显示所述地图的3D呈现。
41.一种包括至少一个处理单元的设备,所述设备存储供所述至少一个处理单元执行的导航程序,所述程序包括用户界面(UI),所述UI包括:
用于显示二维(2D)导航呈现或三维(3D)导航呈现的显示区域;和
用于指示所述程序在所述2D呈现和3D呈现之间转换的能够选择的3D控件。
42.根据权利要求41所述的设备,其中所述3D控件在显示所述2D导航呈现时具有第一外观,并且在显示所述3D导航呈现时具有第二外观。
43.根据权利要求41所述的设备,
其中所述屏幕是触敏屏幕,
其中所述设备包括屏幕和用于通过所述屏幕接收多点触摸手势输入的多点触摸界面,
其中所述UI还包括手势处理模块,其用于从所述多点触摸界面接收手势输入并且将第一类型的手势输入转化为指示所述程序在所述2D呈现和3D呈现之间切换的指令。
44.根据权利要求43所述的设备,其中所述第一类型的手势输入是在特定方向上的拖动操作。
45.根据权利要求43所述的设备,其中每个第一类型的手势输入都包括沿所述屏幕在所述特定方向上或在所述特定方向的阈值内拖动的至少两个不同的触摸触点。
46.一种供设备的至少一个处理单元执行的导航应用程序,所述应用程序包括:
用于接收描述沿从第一位置到第二位置的路线的交叉点的数据的接口,其中每个交叉点的所述数据包括道路离开所述交叉点的一组角度;
交叉点简化器,其用于为所接收的交叉点简化所述角度;
箭头生成器,其用于生成所简化的交叉点的至少两个不同表示,所述表示用于在显示描述在所述路线期间在所述交叉点处执行的操控的导航信息时使用;和
箭头选择器,其用于根据所述表示将在其中被显示的上下文来选择所简化的交叉点的所述不同表示中的一者用于显示。
47.根据权利要求46所述的导航应用程序,还包括上下文分析器,所述上下文分析器用于确定所述表示将在其中被显示的上下文。
48.根据权利要求46所述的导航应用程序,还包括标志生成器,所述标志生成器用于将所选择的箭头结合到用于显示给所述导航应用程序的用户的标志中。
49.根据权利要求48所述的导航应用程序,其中所述标志除了所选择的箭头之外还包括用于所述操控的文本指令,其中所述文本指令基于所述指令将在其中被显示的上下文。
50.根据权利要求48所述的导航应用程序,其中所述标志被设计为看起来类似于道路标志。
51.根据权利要求48所述的导航应用程序,其中所述标志覆盖所述路线的动画显示的地图进行显示。
52.根据权利要求46所述的导航应用程序,其中每个交叉点的所述交叉点数据包括将离开所述交叉点的所述道路中的一者标记为用于在所述交叉点处执行的操控的出口分支的标签。
53.根据权利要求46所述的导航应用程序,其中所述导航应用程序是运行于手持设备上的地图绘制和导航应用程序。
54.一种存储供至少一个处理单元执行的导航应用程序的机器可读介质,所述导航应用程序包括用于以下操作的指令集:
对于从地图上的第一位置到所述地图上的第二位置的路线,接收描述沿所述路线的在那里需要操控的交叉点的交叉点数据,其中用于特定交叉点的所述交叉点数据包括道路离开所述交叉点的一组角度,其中所述角度中的一者被标记为用于在所述特定交叉点处执行的操控的出口道路;
通过将所述角度折合到一组轴线来自动地简化用于所述特定交叉点的所述角度;以及
利用所简化的角度生成用于在所述特定交叉点处执行的操控的导航箭头。
55.根据权利要求54所述的机器可读介质,其中所述轴线包括位于45°的倍数处的八个可能折合点。
56.根据权利要求55所述的机器可读介质,其中位于0°的轴线表示继续直行通过所述交叉点的操控。
57.根据权利要求54所述的机器可读介质,其中用于自动地简化所述角度的指令集包括用于阻止多个角度折合到同一轴线的指令集。
58.根据权利要求54所述的机器可读介质,其中用于自动地简化所述角度的指令集包括用于阻止被标记为用于所述操控的出口道路的角度折合到与所述操控不兼容的轴线的指令集。
59.根据权利要求58所述的机器可读介质,其中用于生成导航箭头的指令集包括用于在所述出口道路否则会折合到与所述操控不兼容的轴线时使用用于所述操控的默认导航箭头的指令集。
60.一种供设备的至少一个处理单元执行的导航应用程序,所述应用程序包括:
用于接收描述沿从地图上的第一位置到所述地图上的第二位置的路线的交叉点的数据的接口,其中每个交叉点的所述数据包括道路离开所述交叉点的一组角度;
交叉点解码器,其用于由所述交叉点数据为每个交叉点合成描述要在所述交叉点处执行的操控的不同方面的指令元素;
指令生成器,其用于通过为在那里要执行操控的交叉点组合所述指令元素中的一个或多个来为所述操控生成至少两个不同指令集;和
指令检索器,其用于根据所述指令集将在其中被显示的上下文为所述操控选择所述不同指令集中的一者。
61.根据权利要求60所述的导航应用程序,还包括上下文分析器,所述上下文分析器用于确定所述指令集将在其中被显示的上下文。
62.根据权利要求60所述的导航应用程序,还包括标志生成器,所述标志生成器用于将所选择的指令集结合到用于显示给所述导航应用程序的用户的标志中。
63.根据权利要求62所述的导航应用程序,其中所述标志除了所选择的指令集之外还包括所述操控的图形指示,其中所述图形指示基于所述标志将在其中被显示的上下文。
64.根据权利要求62所述的导航应用程序,其中所述标志被设计为看起来类似于道路标志。
65.根据权利要求62所述的导航应用程序,其中所述标志覆盖所述路线的动画显示的地图进行显示。
66.根据权利要求60所述的导航应用程序,其中所述导航应用程序是运行于手持设备上的地图绘制和导航应用程序。
67.根据权利要求60所述的导航应用程序,其中特定交叉点的所述指令元素基于用于所述特定交叉点的所述交叉点数据并且。
68.根据权利要求60所述的导航应用程序,其中所述指令生成器还用于根据所述不同指令集关于所述操控传递的信息量来对所生成的用于特定操控的指令集划分等级。
CN201380028724.0A 2012-06-05 2013-05-21 导航应用程序 Active CN104335008B (zh)

Applications Claiming Priority (33)

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

Publications (2)

Publication Number Publication Date
CN104335008A true CN104335008A (zh) 2015-02-04
CN104335008B CN104335008B (zh) 2016-12-21

Family

ID=49775104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380028724.0A Active CN104335008B (zh) 2012-06-05 2013-05-21 导航应用程序

Country Status (6)

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

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794198A (zh) * 2015-04-21 2015-07-22 范文鲜 网络地图泛区域搜索方法
CN106055212A (zh) * 2015-04-02 2016-10-26 福特全球技术公司 可定制的组合仪表用户界面
CN106371693A (zh) * 2016-08-26 2017-02-01 维沃移动通信有限公司 一种显示导航信息的方法及移动终端
CN106441323A (zh) * 2015-08-12 2017-02-22 高德软件有限公司 一种路线导航提示方法及装置
CN106855417A (zh) * 2015-12-08 2017-06-16 腾讯科技(深圳)有限公司 地图导航信息的处理方法、定位设备及定位系统
CN107491522A (zh) * 2017-08-16 2017-12-19 城市生活(北京)资讯有限公司 一种二维地图与三维地图之间的切换方法及装置
CN107924195A (zh) * 2015-09-08 2018-04-17 苹果公司 意图识别
CN108139226A (zh) * 2015-09-30 2018-06-08 苹果公司 具有新型简易模式的导航应用程序
CN108509194A (zh) * 2017-02-28 2018-09-07 谷歌有限责任公司 导航应用编程接口
CN108629443A (zh) * 2017-10-12 2018-10-09 环达电脑(上海)有限公司 将路径描述转换为机器可读格式的路径规划方法和导航系统
CN108871366A (zh) * 2018-07-10 2018-11-23 京东方科技集团股份有限公司 基于快门眼镜的路标导航方法及系统
CN108896060A (zh) * 2018-04-25 2018-11-27 上海博泰悦臻电子设备制造有限公司 点触摸的导航方法、系统、计算机可读存储介质及终端
CN109240563A (zh) * 2018-08-21 2019-01-18 珠海格力电器股份有限公司 移动终端三维图标显示方法、程序启动方法和移动终端
CN109388471A (zh) * 2018-10-18 2019-02-26 维沃移动通信有限公司 一种导航方法及装置
CN110753827A (zh) * 2017-12-05 2020-02-04 谷歌有限责任公司 具有交互式转弯图形的数字地图上的路线
TWI691932B (zh) * 2018-06-12 2020-04-21 大陸商光寶電子(廣州)有限公司 影像處理系統及影像處理方法
CN111612916A (zh) * 2019-02-22 2020-09-01 苹果公司 在环境内的移动
CN112580561A (zh) * 2020-12-25 2021-03-30 上海高德威智能交通系统有限公司 目标检测方法、装置、电子设备及存储介质
CN113029177A (zh) * 2015-06-07 2021-06-25 苹果公司 基于频率的通行行程表征
US11920945B2 (en) 2017-12-05 2024-03-05 Google Llc Landmark-assisted navigation

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012167154A2 (en) 2011-06-03 2012-12-06 Apple Inc. Systems and methods for printing maps and directions
KR20140014262A (ko) 2011-06-03 2014-02-05 애플 인크. 대안 내비게이션 경로들을 비교 및 선택하기 위한 장치들 및 방법들
US8965697B2 (en) * 2011-11-10 2015-02-24 Mitsubishi Electric Corporation Navigation device and method
US9182243B2 (en) 2012-06-05 2015-11-10 Apple Inc. Navigation application
US9886794B2 (en) 2012-06-05 2018-02-06 Apple Inc. Problem reporting in maps
US9230556B2 (en) 2012-06-05 2016-01-05 Apple Inc. Voice instructions during navigation
US9997069B2 (en) 2012-06-05 2018-06-12 Apple Inc. Context-aware voice guidance
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
US9429435B2 (en) 2012-06-05 2016-08-30 Apple Inc. Interactive map
US9146125B2 (en) 2012-06-05 2015-09-29 Apple Inc. Navigation application with adaptive display of graphical directional indicators
US20130321400A1 (en) 2012-06-05 2013-12-05 Apple Inc. 3D Map Views for 3D Maps
US9418672B2 (en) 2012-06-05 2016-08-16 Apple Inc. Navigation application with adaptive instruction text
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
USD754189S1 (en) 2013-03-13 2016-04-19 Google Inc. Display screen or 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
US10655979B2 (en) 2013-06-08 2020-05-19 Apple Inc. User interface for displaying predicted destinations
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
US9418485B2 (en) 2013-05-31 2016-08-16 Apple Inc. Adjusting heights for road path indicators
US9412275B2 (en) 2013-06-01 2016-08-09 Apple Inc. Architecture for distributing transit data
US9396697B2 (en) 2013-06-01 2016-07-19 Apple Inc. Intelligently placing labels
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
US9404766B2 (en) 2013-06-08 2016-08-02 Apple Inc. Navigation peek ahead and behind in a navigation application
US9678651B2 (en) 2013-06-08 2017-06-13 Apple Inc. Mapping application with interactive compass
US20140365944A1 (en) 2013-06-09 2014-12-11 Apple Inc. Location-Based Application Recommendations
US9273980B2 (en) 2013-06-09 2016-03-01 Apple Inc. Direction list
US9536325B2 (en) 2013-06-09 2017-01-03 Apple Inc. Night mode
US9500494B2 (en) 2013-06-09 2016-11-22 Apple Inc. Providing maneuver indicators on a map
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
US10113879B2 (en) 2014-03-03 2018-10-30 Apple Inc. Hierarchy of tools for navigation
US9500492B2 (en) 2014-03-03 2016-11-22 Apple Inc. Map application with improved navigation tools
US10152756B2 (en) 2014-03-31 2018-12-11 Monticello Enterprises LLC System and method for providing multiple payment method options to browser
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
US10643266B2 (en) 2014-03-31 2020-05-05 Monticello Enterprises LLC System and method for in-app payments
US10832310B2 (en) 2014-03-31 2020-11-10 Monticello Enterprises LLC System and method for providing a search entity-based payment process
US10002396B2 (en) 2014-03-31 2018-06-19 Monticello Enterprises LLC System and method for transitioning from a first site to a second site
US11915303B2 (en) 2014-03-31 2024-02-27 Monticello Enterprises LLC System and method for providing a social media shopping experience
US10121186B2 (en) 2014-03-31 2018-11-06 Monticello Enterprises LLC System and method of using a browser application programming interface for making payments
US10621653B2 (en) 2014-03-31 2020-04-14 Monticello Enterprises LLC System and method for providing payments for users in connection with a device software module having a payment application programming interface
US11282131B2 (en) 2014-03-31 2022-03-22 Monticello Enterprises LLC User device enabling access to payment information in response to user input
US10511580B2 (en) 2014-03-31 2019-12-17 Monticello Enterprises LLC System and method for providing a social media shopping experience
US10504193B2 (en) 2014-03-31 2019-12-10 Monticello Enterprises LLC System and method for providing a universal shopping cart
US11080777B2 (en) 2014-03-31 2021-08-03 Monticello Enterprises LLC System and method for providing a social media shopping experience
US10497037B2 (en) 2014-03-31 2019-12-03 Monticello Enterprises LLC System and method for managing cryptocurrency payments via the payment request API
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
US11250493B2 (en) 2014-03-31 2022-02-15 Monticello Enterprises LLC System and method for performing social media cryptocurrency transactions
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 삼성전자주식회사 컨텐츠 제공 방법 및 이를 수행하는 전자 장치
US11100797B2 (en) 2015-06-05 2021-08-24 Apple Inc. Traffic notifications during navigation
US9702724B2 (en) 2015-06-06 2017-07-11 Apple Inc. Mapping application with transit mode
US10514271B2 (en) 2015-06-06 2019-12-24 Apple Inc. Mapping application with transit mode
US9891065B2 (en) 2015-06-07 2018-02-13 Apple Inc. Transit incidents
US10302442B2 (en) * 2015-06-07 2019-05-28 Apple Inc. Transit incident reporting
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 乐视控股(北京)有限公司 智能终端及其控制方法
CN108072375B (zh) * 2016-11-09 2020-01-10 腾讯科技(深圳)有限公司 一种导航中的信息识别方法及终端
CN106611056B (zh) * 2016-12-27 2020-06-26 广州都市圈网络科技有限公司 三维仿真地图的切图方法及装置
DE102017217747A1 (de) 2017-10-05 2019-04-11 Volkswagen Aktiengesellschaft Verfahren zum Betrieb eines Navigationssystems
US11567632B2 (en) 2018-07-03 2023-01-31 Apple Inc. Systems and methods for exploring a geographic region
CN109117071A (zh) * 2018-07-16 2019-01-01 华为技术有限公司 一种屏幕显示控制方法和装置
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
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
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
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
US11788851B2 (en) 2020-06-11 2023-10-17 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
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

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6693564B2 (en) * 2001-11-28 2004-02-17 Alpine Electronics, Inc. Navigation apparatus and intersection guidance method
US20060184323A1 (en) * 2005-02-14 2006-08-17 Samsung Electronics Co., Ltd. Method for providing route guidance to a destination to which a vehicle is driven
CN1995917A (zh) * 2006-12-21 2007-07-11 凯立德欣技术(深圳)有限公司 一种电子地图俯视角度显示控制方法、装置及设备
CN101101217A (zh) * 2006-07-07 2008-01-09 逢甲大学 模拟三维实境导航系统
CN101114204A (zh) * 2006-07-27 2008-01-30 阿尔派株式会社 远程输入装置及使用其的电子装置
US20080167801A1 (en) * 2007-01-10 2008-07-10 Pieter Geelen Navigation device and method for establishing and using profiles
US20090171577A1 (en) * 2007-12-31 2009-07-02 Wavemarket, Inc. Navigation system implementing dynamic route correction
US20100100310A1 (en) * 2006-12-20 2010-04-22 Johnson Controls Technology Company System and method for providing route calculation and information to a vehicle
CN101936740A (zh) * 2010-08-24 2011-01-05 深圳市凯立德欣软件技术有限公司 三维电子地图导航方法及装置
US7933395B1 (en) * 2005-06-27 2011-04-26 Google Inc. Virtual tour of user-defined paths in a geographic information system
WO2011151501A1 (en) * 2010-06-01 2011-12-08 Nokia Corporation A method, a device and a system for receiving user input
CN102388406A (zh) * 2009-01-28 2012-03-21 苹果公司 使用便携式电子设备记录产生三维模型
CN202204518U (zh) * 2011-05-25 2012-04-25 上海汽车集团股份有限公司 一种可实现2d/3d切换的导航系统
US8190326B2 (en) * 2003-09-25 2012-05-29 Sony Corporation On-vehicle apparatus and content providing method
CN102967304A (zh) * 2011-08-29 2013-03-13 哈曼贝克自动系统股份有限公司 导航装置、输出地图的方法和生成数据库的方法

Family Cites Families (90)

* 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
EP0926652A4 (en) 1997-05-09 2009-04-01 Zanavy Informatics Kk CARD DATABASE DEVICE, DISPLAY DEVICE, AND CARD RECORDING MEDIUM HAVING AND EFFICIENTLY UTILIZING HEIGHT DATA
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
CN1330937C (zh) 2001-08-06 2007-08-08 松下电器产业株式会社 信息提供方法
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 三菱電機株式会社 経路探索装置
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 アイシン・エィ・ダブリュ株式会社 ナビゲーションシステム
DE602004027236D1 (de) 2004-08-13 2010-07-01 Alpine Electronics Inc Fahrzeugnavigationssystem
JP2006184256A (ja) 2004-12-28 2006-07-13 Nissan Motor Co Ltd 案内システム、案内方法、案内システム用サーバー、案内システム用移動体端末装置、案内情報提供処理プログラム、及び、案内システム端末装置用プログラム
EP1681537A1 (en) 2005-01-18 2006-07-19 Harman Becker Automotive Systems (Becker Division) GmbH Navigation system with animated junction view
JP3987073B2 (ja) 2005-04-20 2007-10-03 株式会社ナビタイムジャパン ナビゲーションシステム、経路探索サーバ、経路探索方法およびプログラム
US8375325B2 (en) * 2005-12-30 2013-02-12 Google Inc. Customizable, multi-function button
EP1832843B1 (en) 2006-03-08 2011-10-05 Harman Becker Automotive Systems GmbH Method and system for determining a route and for warning a driver
US20070233371A1 (en) * 2006-03-31 2007-10-04 Arne Stoschek Navigation system for a motor vehicle
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 팅크웨어(주) 차량 항법 시스템에서의 동적 디스플레이 모드 변경 방법및 그 장치
EP2102604A1 (en) * 2007-01-10 2009-09-23 TomTom International B.V. A navigation device and a method of operating the navigation device with emergency service access
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 엘지전자 주식회사 네비게이션 장치 및 이의 턴 지점 정보 제공방법
EP2080985B1 (de) 2008-01-18 2012-10-24 Navigon AG Navigationseinrichtung
DE102008025053B4 (de) 2008-01-18 2023-07-06 Garmin Switzerland Gmbh Navigationseinrichtung
DE102008036748A1 (de) 2008-03-17 2009-10-08 Navigon Ag Verfahren zum Betrieb einer Navigationseinrichtung
JP5279904B2 (ja) 2008-07-11 2013-09-04 トムトム グローバル コンテント ベスローテン フエンノートシャップ 分岐点ビューを表示する装置及び方法
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
WO2010061528A1 (ja) 2008-11-28 2010-06-03 三菱電機株式会社 ナビゲーション装置
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
KR20110102873A (ko) * 2008-12-19 2011-09-19 텔레 아틀라스 비. 브이. 내비게이션 시스템에서 이미지들의 대상체들로의 동적 매핑
WO2010072236A1 (en) * 2008-12-23 2010-07-01 Elektrobit Automotive Software Gmbh Method for generating manoeuvre graphics in a navigation device
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
WO2010105714A1 (en) 2009-03-16 2010-09-23 Tele Atlas B.V. Method for updating digital maps using altitude information
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
US20130176328A1 (en) 2009-12-25 2013-07-11 Nokia Corporation Method and apparatus for persistent display of navigation content
WO2011081154A1 (ja) 2009-12-28 2011-07-07 クラリオン株式会社 ナビゲーション装置およびその案内方法
WO2011146141A1 (en) 2010-05-21 2011-11-24 Telecommunication Systems, Inc. Personal wireless navigation system
EP2616775B1 (en) 2010-09-13 2016-01-06 TomTom International B.V. Navigation device with alternative navigation instructions
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 (en) 2011-03-22 2016-06-22 Harman Becker Automotive Systems GmbH Management of icons for digital maps
US20120303263A1 (en) 2011-05-23 2012-11-29 Microsoft Corporation Optimization of navigation tools using spatial sorting
US20130035853A1 (en) 2011-08-03 2013-02-07 Google Inc. Prominence-Based Generation and Rendering of Map Features
US8855925B2 (en) 2012-01-20 2014-10-07 GM Global Technology Operations LLC Adaptable navigation device
US9230556B2 (en) 2012-06-05 2016-01-05 Apple Inc. Voice instructions during navigation
US9182243B2 (en) 2012-06-05 2015-11-10 Apple Inc. Navigation application

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6693564B2 (en) * 2001-11-28 2004-02-17 Alpine Electronics, Inc. Navigation apparatus and intersection guidance method
US8190326B2 (en) * 2003-09-25 2012-05-29 Sony Corporation On-vehicle apparatus and content providing method
US20060184323A1 (en) * 2005-02-14 2006-08-17 Samsung Electronics Co., Ltd. Method for providing route guidance to a destination to which a vehicle is driven
US7933395B1 (en) * 2005-06-27 2011-04-26 Google Inc. Virtual tour of user-defined paths in a geographic information system
CN101101217A (zh) * 2006-07-07 2008-01-09 逢甲大学 模拟三维实境导航系统
CN101114204A (zh) * 2006-07-27 2008-01-30 阿尔派株式会社 远程输入装置及使用其的电子装置
US20100100310A1 (en) * 2006-12-20 2010-04-22 Johnson Controls Technology Company System and method for providing route calculation and information to a vehicle
CN1995917A (zh) * 2006-12-21 2007-07-11 凯立德欣技术(深圳)有限公司 一种电子地图俯视角度显示控制方法、装置及设备
US20080167801A1 (en) * 2007-01-10 2008-07-10 Pieter Geelen Navigation device and method for establishing and using profiles
US20090171577A1 (en) * 2007-12-31 2009-07-02 Wavemarket, Inc. Navigation system implementing dynamic route correction
CN102388406A (zh) * 2009-01-28 2012-03-21 苹果公司 使用便携式电子设备记录产生三维模型
WO2011151501A1 (en) * 2010-06-01 2011-12-08 Nokia Corporation A method, a device and a system for receiving user input
CN101936740A (zh) * 2010-08-24 2011-01-05 深圳市凯立德欣软件技术有限公司 三维电子地图导航方法及装置
CN202204518U (zh) * 2011-05-25 2012-04-25 上海汽车集团股份有限公司 一种可实现2d/3d切换的导航系统
CN102967304A (zh) * 2011-08-29 2013-03-13 哈曼贝克自动系统股份有限公司 导航装置、输出地图的方法和生成数据库的方法

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055212A (zh) * 2015-04-02 2016-10-26 福特全球技术公司 可定制的组合仪表用户界面
CN104794198A (zh) * 2015-04-21 2015-07-22 范文鲜 网络地图泛区域搜索方法
CN104794198B (zh) * 2015-04-21 2018-05-29 范文鲜 网络地图泛区域搜索方法
CN113029177B (zh) * 2015-06-07 2024-03-01 苹果公司 基于频率的通行行程表征
CN113029177A (zh) * 2015-06-07 2021-06-25 苹果公司 基于频率的通行行程表征
CN106441323A (zh) * 2015-08-12 2017-02-22 高德软件有限公司 一种路线导航提示方法及装置
CN107924195B (zh) * 2015-09-08 2020-11-10 苹果公司 意图识别
US11423665B2 (en) 2015-09-08 2022-08-23 Apple Inc. Intention recognition
CN107924195A (zh) * 2015-09-08 2018-04-17 苹果公司 意图识别
CN108139226B (zh) * 2015-09-30 2021-12-17 苹果公司 具有新型简易模式的导航应用程序
CN108139226A (zh) * 2015-09-30 2018-06-08 苹果公司 具有新型简易模式的导航应用程序
US11567622B2 (en) 2015-09-30 2023-01-31 Apple Inc. Navigation application with novel declutter mode
CN106855417A (zh) * 2015-12-08 2017-06-16 腾讯科技(深圳)有限公司 地图导航信息的处理方法、定位设备及定位系统
CN106371693B (zh) * 2016-08-26 2019-07-26 维沃移动通信有限公司 一种显示导航信息的方法及移动终端
CN106371693A (zh) * 2016-08-26 2017-02-01 维沃移动通信有限公司 一种显示导航信息的方法及移动终端
CN108509194A (zh) * 2017-02-28 2018-09-07 谷歌有限责任公司 导航应用编程接口
CN108509194B (zh) * 2017-02-28 2021-09-21 谷歌有限责任公司 导航应用编程接口
CN107491522A (zh) * 2017-08-16 2017-12-19 城市生活(北京)资讯有限公司 一种二维地图与三维地图之间的切换方法及装置
CN107491522B (zh) * 2017-08-16 2020-07-10 城市生活(北京)资讯有限公司 一种二维地图与三维地图之间的切换方法及装置
CN108629443A (zh) * 2017-10-12 2018-10-09 环达电脑(上海)有限公司 将路径描述转换为机器可读格式的路径规划方法和导航系统
CN108629443B (zh) * 2017-10-12 2022-02-01 环达电脑(上海)有限公司 将路径描述转换为机器可读格式路径规划方法和导航系统
US11920945B2 (en) 2017-12-05 2024-03-05 Google Llc Landmark-assisted navigation
CN110753827A (zh) * 2017-12-05 2020-02-04 谷歌有限责任公司 具有交互式转弯图形的数字地图上的路线
CN108896060A (zh) * 2018-04-25 2018-11-27 上海博泰悦臻电子设备制造有限公司 点触摸的导航方法、系统、计算机可读存储介质及终端
TWI691932B (zh) * 2018-06-12 2020-04-21 大陸商光寶電子(廣州)有限公司 影像處理系統及影像處理方法
CN108871366B (zh) * 2018-07-10 2022-12-02 京东方科技集团股份有限公司 基于快门眼镜的路标导航方法及系统
CN108871366A (zh) * 2018-07-10 2018-11-23 京东方科技集团股份有限公司 基于快门眼镜的路标导航方法及系统
US11391589B2 (en) 2018-07-10 2022-07-19 Boe Technology Group Co., Ltd. Signpost-based navigation method, computer readable storage medium and electronic device
CN109240563A (zh) * 2018-08-21 2019-01-18 珠海格力电器股份有限公司 移动终端三维图标显示方法、程序启动方法和移动终端
CN109388471B (zh) * 2018-10-18 2022-01-28 维沃移动通信有限公司 一种导航方法及装置
CN109388471A (zh) * 2018-10-18 2019-02-26 维沃移动通信有限公司 一种导航方法及装置
CN111612916B (zh) * 2019-02-22 2023-06-27 苹果公司 在环境内的移动
CN111612916A (zh) * 2019-02-22 2020-09-01 苹果公司 在环境内的移动
CN112580561B (zh) * 2020-12-25 2023-11-03 上海高德威智能交通系统有限公司 目标检测方法、装置、电子设备及存储介质
CN112580561A (zh) * 2020-12-25 2021-03-30 上海高德威智能交通系统有限公司 目标检测方法、装置、电子设备及存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
CN104335008B (zh) 导航应用程序
US10318104B2 (en) Navigation application with adaptive instruction text
US10508926B2 (en) Providing navigation instructions while device is in locked mode
US9146125B2 (en) Navigation application with adaptive display of graphical directional indicators
US8880336B2 (en) 3D navigation
TWI545536B (zh) 一地圖繪製應用程式中之旋轉操作
US9047691B2 (en) Route display and review
US9311750B2 (en) Rotation operations in a mapping application
US20130326425A1 (en) Mapping application with 3d presentation
US20130325343A1 (en) Mapping application with novel search field
US20130326384A1 (en) Displaying location preview
CN104335012A (zh) 导航期间的语音指令
CN104321622A (zh) 情景感知语音引导
TWI625706B (zh) 用於呈現地圖之方法、機器可讀媒體及電子器件
TW201411097A (zh) 整合式地圖繪製及導航應用程式
TWI533264B (zh) 路線顯示及檢閱
TW201407562A (zh) 具新穎搜尋欄位之地圖繪製應用程式
EP4235634A2 (en) Navigation application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant