CN104321622B - 情景感知语音引导 - Google Patents
情景感知语音引导 Download PDFInfo
- Publication number
- CN104321622B CN104321622B CN201380027822.2A CN201380027822A CN104321622B CN 104321622 B CN104321622 B CN 104321622B CN 201380027822 A CN201380027822 A CN 201380027822A CN 104321622 B CN104321622 B CN 104321622B
- Authority
- CN
- China
- Prior art keywords
- audio
- group
- navigation
- map
- audio prompt
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3415—Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3626—Details of the output of route guidance instructions
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3626—Details of the output of route guidance instructions
- G01C21/3632—Guidance using simplified or iconic instructions, e.g. using arrows
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3626—Details of the output of route guidance instructions
- G01C21/3635—Guidance using 3D or perspective road maps
- G01C21/3638—Guidance using 3D or perspective road maps including 3D objects and buildings
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3664—Details of the user input interface, e.g. buttons, knobs or sliders, including those provided on a touch screen; remote controllers; input using gestures
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3667—Display of a road map
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
- G09B29/006—Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
- G09B29/007—Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/10—Map spot or coordinate position indicators; Map reading aids
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Educational Administration (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Educational Technology (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Ecology (AREA)
- Navigation (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
许多现今可用的基于地图的应用程序被设计用于多种不同设备(例如,台式计算机、膝上型计算机、平板设备、智能电话、手持式全球定位系统(GPS)接收器等),并且用于各种不同目的(例如,导航、浏览、运动等)。这些应用程序中的大多数基于描述街道、公路、感兴趣的点等在地图中的相对位置的地图数据来生成地图显示。此类应用程序中使用的地图通常是二维(2D)地图或三维(3D)地图。然而,部分地由于查看3D地图的密集处理需求,众多应用程序使用2D地图。出于同一原因,使用3D地图的应用程序通常缓慢、低效、简陋和/或简单以至于使应用程序无用。
Description
背景技术
许多现今可用的基于地图的应用程序设计用于多种不同设备(例如,台式计算机、膝上型计算机、平板设备、智能电话、手持式全球定位系统(GPS)接收器等)并且用于各种不同目的(例如,导航、浏览、运动等)。这些应用程序中的大多数基于描述街道、公路、感兴趣的点等在地图中的相对位置的地图数据来生成地图显示。
此类应用程序中使用的地图通常是二维(2D)地图或三维(3D)地图。然而,部分地由于查看3D地图的密集处理需求,众多应用程序使用2D地图。出于同一原因,使用3D地图的应用程序通常缓慢、低效、简陋和/或简单以至于使应用程序无用。
发明内容
本发明的一些实施例提供一种包括具有若干新型特征的导航应用程序的设备。在一些实施例中,该设备具有:触敏屏幕,该触敏屏幕显示应用程序输出;以及多点触摸界面,该多点触摸界面允许用户通过屏幕提供触摸输入和手势输入以便与应用程序进行交互。
在一些实施例中,导航应用程序的新型特征包括:(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透视图。可替代地,代替或除了缩放操作,其它实施例提供改变摄像机的位置的其它手势输入(例如,手指拖动操作)。在其它实施例中,手势输入(例如,手指拖动操作)暂时改变摄像机的查看方向,以便允许用户暂时扫视导航路线的一侧。在这些实施例中,在短时间段后,应用程序使摄像机沿路线返回至其先前视角。
导航应用程序的另一新型特征是在导航期间所使用的逼真道路标志。在一些实施例中,标志是与实际公路标志极其相似的纹理化图像。在一些实施例中,这些标志包括指令箭头、文本、路盾(shield)和距离。一些实施例的导航应用程序呈现众多不同情景中的很多种标志变体。另外,在一些实施例中,应用程序根据区域规范以不同颜色呈现标志。
对于紧接在一起的操纵,在一些实施例中,应用程序在第一标志下方呈现第二标志。另外,在一个操纵结束时,导航应用程序利用模仿标志在公路顶上经过的运动来动画绘制标志的离开。当将到来的操纵正在接近时,导航应用程序利用精妙动画(例如,整个标志上的闪光)将注意力吸引至标志上。
在一些实施例中,导航应用程序基于应用程序正在显示标志或展示的情景动态生成用于与导航操纵相关联的道路标志和其它展示(例如,列表视图)的指令。对于给定情景,通过考虑诸如以下因素选择指令文本:可用空间、通过本文之外的手段传达的信息的可用性(例如,语音引导的可用性)、指令变体中的每一个的局部长度、设备的显示屏的大小等。通过局部合成和评估若干替代形式,应用程序可挑选每个场景中的最佳指令串。
类似地,一些实施例的导航应用程序基于应用程序正在显示标志或展示的情景自适应地生成用于与导航操纵相关联的道路标志和其它展示(例如,列表视图)的方向图形指示器。例如,当标志或展示上存在足够空间以供使用较大标志时,一些实施例的导航应用程序通过使用较大图形方向指示来辨识要在沿路线的路口处执行的操纵,较大图形方向指示器包括:(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例示一些实施例的用户界面,其中当导航应用程序正在另一个应用程序的后台运行时给出导航指令。
图63例示一些实施例中的显示在应用程序的顶部处的导航条。
图64例示一些实施例中的设备的用户界面,其中在导航应用程序正在另一个应用程序的后台运行时,设备到达其目标。
图65例示呼叫状态条和导航指令条之间的交互。
图66例示进入锁定模式时导航应用程序在后台运行并且离开锁定模式时导航应用程序在前台运行的一些实施例的设备。
图67例示进入锁定模式时导航应用程序在前台运行并且离开锁定模式时导航应用程序在前台运行的一些实施例的设备。
图68例示本发明的一些实施例中的在锁定设备上给出指引的导航应用程序。
图69例示当设备到达其目标时的一些实施例的锁定模式视图。
图70例示一些实施例的锁定视图通知系统。
图71例示本发明的一些实施例中的在解锁设备之后查看通知消息。
图72例示本发明的一些实施例中的用于在接近导航点时打开设备屏幕的过程。
图73例示本发明的一些实施例中的在导航应用程序在后台运行时未向设备给出命令时设备所经历的多个阶段。
图74概念性地例示用于在接收到通知消息时打开屏幕的一些实施例的过程。
图75概念性地例示本发明的一些实施例中的用于执行与交互式地图的语音激活交互的过程。
图76例示本发明的一些实施例中的在锁定屏幕未活动时的用户设备。
图77例示本发明的一些实施例中的锁定屏幕活动情况下的用户设备。
图78概念性地例示本发明的一些实施例中的用于在激活锁定屏幕时提供语音激活导航的过程。
图79概念性地例示本发明的一些实施例中的用于在用户沿路线行进时接收自然语言话语并且检索和呈现用户的当前导航状态的过程。
图80例示本发明的一些实施例中的在语音激活导航期间使用自然语言话语时的用户设备。
图81例示本发明的一些实施例中的在语音激活导航期间使用自然语言话语时的用户设备。
图82例示在用户基于当前对话进行查询之后的图80的用户设备。
图83例示在用户基于当前对话进行查询之后的图80的用户设备。
图84概念性地例示本发明的一些实施例中的用于提供语音激活搜索和导航的过程。
图85A-85D例示一些实施例的用户界面的12个阶段,其中用户正在使用语音激活服务搜索感兴趣点和目标。
图86概念性地例示本发明的一些实施例中的用于提供语音激活搜索和导航的另选过程。
图87例示本发明的一些实施例中的在导航期间的用户设备。
图88例示本发明的一些实施例中的在导航期间的用户设备。
图89例示用户不想选择第一间咖啡店时的图87的用户设备。
图90A-90E概念性地例示在搜索操作期间使用的、本发明的一些实施例的语音激活服务的部分。
图91例示本发明的一些实施例中的一些实施例的用户界面的4个阶段,其中导航被并入到语音激活服务输出中。
图92概念性地例示本专利申请的一些实施例中的语音激活服务用来将导航输出并入的过程。
图93概念性地例示本发明的一些实施例中的基于当前在电子设备上活动的音频会话在设备上提供不同类型的可听提示的过程。
图94概念性地例示本发明的一些实施例中的用于在另一音频会话活动时提供可听提示的过程。
图95概念性地例示本发明的一些实施例中的用于在电子设备上提供不同类型的可听提示的更详细的过程。
图96概念性地例示本发明的一些实施例中的用于提供具有方向性信息的非言语提示的过程。
图97例示本发明的一些实施例中的在导航会话和电话呼叫正在进行时的用户设备。
图98例示本发明的一些实施例中的通过非言语提示来提供方向信息的另一实例。
图99A例示本发明的一些实施例中的通过平移非言语提示来提供方向信息的实例。
图99B例示本发明的一些实施例中的通过在非言语提示期间执行平移来提供方向信息的实例。
图100例示本发明的一些实施例中的用于设定导航应用程序的相关提示水平的用户界面。
图101概念性地例示本发明的一些实施例中的用于在另一音频会话活动时提供言语导航提示的过程。
图102概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。
图103例示本发明的一些实施例中的在语音提示的相关音量水平设定为高并且固有地响亮的内容正在播放时在设备上提供语音提示。
图104概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。
图105例示本发明的一些实施例中的在相关提示音量水平设定为低并且正在播放固有地轻柔的内容时在设备上提供语音提示。
图106概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。
图107概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。
图108例示本发明的一些实施例中的在提示的相关音量水平设定为正常并且以与语音提示类似的响度水平记录内容时在设备上提供语音提示。
图109概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。
图110概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。
图111概念性地例示本发明的一些实施例中的用于在另一音频会话活动时播放语音提示的过程。
图112例示本发明的一些实施例中的在正在播放可暂停的内容时在设备上提供语音提示。
图113概念性地例示一些实施例的情景感知引导系统的高级软件架构。
图114是一些实施例的移动计算设备的架构的实例。
图115概念性地例示实现本发明的一些实施例所利用的电子系统的实例。
图116例示根据一些实施例的地图服务操作环境。
具体实施方式
在本发明的以下具体实施方式中,提出并描述了本发明的许多细节、实例和实施例。然而,对于本领域的技术人员来说将清楚和显而易见的是,本发明并不限于所示出的实施例,并且本发明可在没有所讨论的具体细节和实例的情况下被实施。
I.导航用户界面
A.开始
一些实施例的导航应用程序是集成地图绘制应用程序的一部分,集成地图绘制应用程序包括若干有用模态,包括位置浏览操作、地图搜索操作、路线辨识操作以及路线导航操作。在一些实施例中,此集成应用程序(以下称为地图绘制应用程序、导航应用程序或集成应用程序)被限定由具有显示应用程序的输出的触敏屏幕的设备来执行。在一些实施例中,此设备具有多点触摸界面,用于允许用户通过屏幕提供触摸输入和手势输入以与应用程序交互。此类设备的示例是智能电话(例如,Apple Inc.所销售的操作操作系统的电话、操作操作系统的电话等)。
图1例示执行本发明的一些实施例的集成地图绘制应用程序的设备100的实例。此图另外例示在此应用程序中开始路线导航的实例。此应用程序具有新型用户界面(UI)设计,该UI设计通过使用浮在内容顶部以便尽可能多地显示内容的最小屏幕上控件集,针对应用程序的不同模态中的每个无缝并内聚地集成控件。另外,此集适于当前任务,从而在用户在不同模态之间(例如,在浏览、搜索、路线规划和导航之间)变动时以动画的方式调整该集的内容。具有自适应性质的此公共元素允许地图绘制应用程序针对不同任务进行优化,同时当在这些任务之间进行变动时维持一致的外观和交互模型。
图1示出与地图绘制应用程序交互的六个阶段105、110、115、117、119、121。第一阶段105示出设备的UI 120,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屏幕上,该次级UI屏幕是可通过显示在地图上的翻页控件来访问的。在一些实施例中,翻页永久地显示在应用程序所提供的至少一些地图视图上。例如,在一些实施例中,应用程序在允许用户浏览或搜索位置或辨识路线的开始页面(第二阶段110中所例示)上永久地显示翻页。
指引控件160打开指引输入页面180,用户可通过指引输入页面180请求要在起点位置和终点位置之间辨识出的路线。图1的第三阶段115例示对指引控件160的选择打开第四阶段117中所示的指引输入页面180。指引控件是可指引地图绘制应用程序辨识并显示两个位置之间的路线所借助的三种机制之一;另外两种机制是:(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,该逼真标志184辨识导航路线中从设备的当前位置到下一路口操纵的距离以及一些其它相关信息。在其它实施例中,应用程序还显示:顶部条,该顶部条包括关于导航的一些信息;以及结束按钮和概览按钮,该结束按钮和概览按钮分别用于结束导航和获得导航路线的剩余部分或导航路线的整个部分的概览。
一些实施例的地图绘制应用程序使用设备在设备的位置处接收到的GPS信号中的坐标(例如,经度、海拔和纬度坐标)来辨识设备的位置。可替代地或相结合地,地图绘制应用程序使用其它方法(例如,蜂窝塔三角测量法)来计算当前位置。当携有设备的用户与路线偏离时,一些实施例的地图绘制应用程序跟踪设备的位置并且重新计算从偏离位置开始的新路线,以便将用户从偏离位置重新导向至目标位置。换句话讲,以导航模式操作的一些实施例的地图绘制应用程序要求设备一直在路线上。
应用程序还显示上文描述的浮置3D控件和浮置列表控件。应当指出的是,列表控件在进入路线检查和路线导航模态时被自适应地添加至浮置控件集,而位置指示器在进入路线导航模态时从浮置控件中被移除。另外,在从路线检查模式转变成路线导航模式时,在一些实施例中,应用程序执行动画,动画涉及在应用程序转变至导航展示之前完全展开的翻页效果。
在一些实施例中,动画转变包括:从导航展示中移除顶部条、顶部条相关联的控件以及浮置控件,以及在开始导航展示短时间段之后将标志184移动到展示的顶部边缘。如下文进一步描述,在一些实施例中,应用程序要求用户在导航地图上轻击以使顶部条、顶部条的控件以及浮置控件返回,并且要求进行另一轻击以再次将这些控件从地图中移除。其它实施例提供用于查看和移除这些控件的其它机制。
作为允许用户获得导航体验的另一种方式,一些实施例的地图绘制应用程序在信息横幅中提供UI项目,横幅以表示感兴趣点(POI)的图针(pin)展来呈现。图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,指令标志260是第一指令的标志。地图绘制应用程序已经在顶部条140中用结束按钮270和概览控件275来替换清除控件255和启动按钮。结束按钮用于结束路线的导航,并且概览控件275用于在地图视图中示出整个路线,如果示出整个路线必须调整缩放水平,那么通过调整所显示地图的缩放水平来示出整个路线。在一些实施例中,地图绘制应用程序在顶部条140中显示ETA、即到达目标的时间量,以及距目标的剩余距离,如图所示。
当地图绘制应用程序接收对结束按钮的选择、同时地图绘制应用程序在路线检查模式下操作时,一些实施例的地图绘制应用程序通过返回地图浏览模式来停止对所选择路线的检查。一些实施例的地图绘制应用程序通过以下方式返回地图浏览模式:从地图中移除所选择路线,撤销翻页,以及用包括指引控件、搜索栏和书签控件的一组其它控件来替换顶部条中的信息和控件。即,地图绘制应用程序使得UI页面的外观返回类似第一阶段205中示出的UI页面的UI页面。一些实施例的地图绘制应用程序在从检查模式切换至地图浏览模式时并不使地图朝另一区域偏移。
B.2D和3D导航
一些实施例的导航应用程序可以2D模式或3D模式显示导航。如上所述,浮置控件中的一个是允许用户查看三维(3D)导航展示的3D控件250。图3例示一些实施例的导航应用程序将3D控件250提供作为用于进入3D导航模式的快速机制的方式。此图以三个阶段305-315例示这个操作。第一阶段305例示用户在查看二维导航展示时选择3D控件150。
第二阶段310例示应用程序转变至3D展示的过程中的导航展示。如此图中所示,3D控件在此阶段呈现为被加亮,以便指示导航展示已经进入3D模式。如上所述,在一些实施例中,导航应用程序通过从三维场景中的特定位置渲染地图视图来生成导航地图的3D视图,该特定位置可概念性地被认为是捕获地图视图的虚拟摄像机的位置。以下参照图5来进一步描述这种渲染。
随后,第三阶段315例示该应用程序转变至其3D外观结束时的导航展示。如第二阶段和第三阶段中建筑物的高度之间的差异所示,在一些实施例中,从2D导航转变至3D导航包括示出导航地图中的三维对象正在变大的动画。生成示出对象上升/下降和变大/变小的此类动画进一步描述在于2012年9月30日提交的名称为“Displaying 3D Obiects in a 3DMap Presentation”的美国专利申请13/632,027中。美国专利申请13/632,027以引用方式并入本文。
一些实施例使用从2D地图视图到3D地图视图或反之亦然的电影式转变。例如,当地图绘制应用程序在示出路线的起点位置时接收对3D控件250的选择时,地图绘制应用程序从2D地图视图开始,并且从2D第一虚拟摄像机视图平滑地转变至新的虚拟摄像机3D视图,该3D视图更加放大并且指向路线的起点方向。如此,虚拟摄像机执行平移、缩放和旋转操作的组合以便到达导航的路线的起点。即,虚拟摄像机沿弧移动,并且在该摄像机沿弧向下移动时向上旋转。另外,地图绘制应用程序可旋转该弧自身,以使虚拟摄像机视点与路线的初始路段对准。换句话讲,地图绘制应用程序在电影式转变期间使地图旋转。
图4例示一种设备400,该设备400以六个阶段405-430显示在地图绘制应用程序从用于地图浏览的非沉浸式地图视图转变成用于导航的沉浸式地图视图时的该应用程序。
第一阶段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展示,一些实施例不得不生成要供客户端设备渲染的多个图块,以便生成道路、建筑物和周围景物。在一些实施例中,此类图块的示例包括用于非沉浸式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地图的更高程度细节构建体(例如,树木、叶、人行道、路中部分、道路的车道、路面沥青、路中部分、人行横道等)。
此外,非沉浸式查看模式和沉浸式查看模式可限定用于在不同范围的缩放水平下查看3D地图。例如,一些实施例的非沉浸式查看模式限定用于在低缩放水平(例如,缩放水平0-14)下查看3D地图,而一些实施例的沉浸式查看模式限定用于在高缩放水平(例如,缩放水平16-21)下查看3D地图。在不同实施例中,查看模式可限定在任何数目的不同缩放水平下查看。在一些情况下,与针对非沉浸式查看模式所限定的缩放水平相比,沉浸式查看模式的缩放水平的范围限定为更高缩放水平、更低缩放水平、相同缩放水平,或者限定为与针对非沉浸式查看模式所限定的缩放水平重叠的缩放水平。这些查看模式和地图绘制应用程序的其它方面描述在上文所并入的于2012年9月30日提交的名称为“Virtual Camera for3D Maps”的美国专利申请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按钮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英尺处右转。地图712呈3D形式,位置标识符714也是如此。
当设备在阶段702中接近路口时(如由导航框720所指示),3D地图712切换成2D地图722,其中位置指示器724也呈2D形式。地图绘制应用程序还改变3D控件150的外观,以便指示地图现在呈2D形式。地图722在设备在阶段703中绕过拐角时保持呈2D形式。在设备绕过拐角时,阶段703中具有指令“右转进入A大街”的导航框730被替换成阶段704中具有指令“沿A大街继续直走0.5英里”的导航框740。地图在阶段704中保持呈2D形式直到已经完全导航通过拐角,这时,在阶段705中,地图返回3D视图,该3D视图在导航框750中具有新指令“目标在您左侧0.3英里处”。地图绘制应用程序还改变3D控件150的外观,以便指示地图现在返回呈3D形式。
在一些实施例中,导航应用程序针对每一位置更新(例如,每秒一次)确定以下五条信息中的一些或所有信息。第一,导航应用程序确定参考点的位置(即,用户的位置)。
第二,导航应用程序确定虚拟摄像机的焦点的位置,该位置用于确定虚拟摄像机可能面对的方向。如果用户偏离路线,焦点将沿用户的行进方向(如果可确定用户的行进方向)在用户前方的固定距离处,或在用户北方的固定距离处(如果无法确定用户的行进方向)。如果用户在路线上,焦点将沿路线在用户前方的固定距离处,其中从用户到此焦点的向量与用户的行进方向之间的角度限制在最大值。这允许虚拟摄像机在用户实际转弯之前稍微窥视转弯的四周。例如,如果路线在前方不远处转过拐角,焦点将是从设备的当前位置开始、围绕拐角的点。由于使虚拟摄像机转动以面对该实际点可导致虚拟摄像机直接面对建筑物,虚拟摄像机就其可沿目前方向看到多远距离受到限制。第三,导航应用程序确定感兴趣点的位置(例如,即将到来的交叉路口的位置)。
第四,导航应用程序确定虚拟摄像机查看样式(居中俯视、向前俯视、或屋顶)。“居中俯视”是指虚拟摄像机应笔直向下看用户的位置,使得用户的位置位于屏幕中心。“向前俯视”是指虚拟摄像机应笔直向下用户的位置,使得用户的位置朝向屏幕底部。“屋顶”是指虚拟摄像机应位于用户的位置后方并且倾斜,使得其沿从用户的位置到焦点的向量向前看。如果用户偏离路线或无法确定用户的行进方向(例如,当用户停车时),虚拟摄像机将采用居中俯视查看样式。否则,查看样式将由用户是否已经请求“2D”导航来确定。如果用户已经请求2D导航,查看样式将是向前俯视。否则,查看样式将是屋顶。
第五,导航应用程序确定虚拟摄像机聚焦样式(例如,巡航聚焦或硬聚焦)。“巡航聚焦样式”是指虚拟摄像机应基于查看样式采用预设高度和俯仰角。“硬聚焦”是指虚拟摄像机应调整其高度(在居中俯视或向前俯视查看样式的情况下)或俯仰角(在屋顶查看样式的情况下),使得给定感兴趣点正好在屏幕上(即,在用户接近感兴趣点时,虚拟摄像机应聚焦于感兴趣点上)。当远离交叉路口时,导航应用程序使虚拟摄像机处于巡航聚焦模式。当接近“有趣的”交叉路口时,导航应用程序使虚拟摄像机处于如上所述的硬聚焦模式,并且交叉路口的位置(感兴趣点)将被传送到虚拟摄像机。当处于硬聚焦模式时,应用程序调整虚拟摄像机的高度(在居中俯视或向前俯视查看样式的情况下)或俯仰角(在屋顶查看样式的情况下),使得交叉路口位于屏幕上的合理位置。使用用户将离开交叉路口时所处的角度来确定给定交叉路口是“有趣”到足以聚焦在其上。如果角度足够大(例如,向右转90度),交叉路口被认为是“有趣”并且虚拟摄像机将聚焦在交叉路口上。如果角度太小(例如,汇入高速公路),虚拟摄像机将停留在巡航聚焦样式。
根据这五条信息,导航应用程序计算虚拟摄像机的期望位置和取向。根据期望位置和取向,可求出以下三个关键点的位置:(1)虚拟摄像机的位置,(2)虚拟摄像机的向前向量与地面之间的交叉点,以及(3)沿虚拟摄像机的右向量的点。这三个点彼此独立地如下来动画绘制:(1)当新点可用时,应用程序拟合最近估评位置/该点的切线与新点之间的三次多项式;并且(2)针对动画绘制的每个步骤,导航应用程序评估每条曲线的三次多项式,并且根据三次多项式求出虚拟摄像机位置和取向。
4.用户对摄像机高度的调整
除了(或代替)使导航应用程序控制摄像机(例如,在围绕拐角行走时从3D转到2D),一些实施例还允许用户调整摄像机的水平。一些实施例允许用户用两指做出命令手势,以便调整摄像机的距离(高度)和角度。一些实施例甚至允许多种类型的手势来控制摄像机。图8例示通过收缩手势和展开手势对虚拟摄像机的距离进行的调整。该图以三个阶段801-803示出。在阶段801中,应用程序示出虚拟摄像机812处于默认3D查看水平情况下的基本场景810以及从场景810渲染的屏幕视图814。基本场景包含两个建筑物和一个T形路口。在阶段801中,建筑物是从45度向下角度并且以使得建筑物看起来为特定尺寸的特定高度来查看。位置指示器816也被显示为具有特定尺寸。
在阶段802中,用户通过以下方式做出手势:使两个指尖在设备的屏幕上、即在屏幕视图824上位于彼此附近,并且在指尖位于屏幕上时使指尖移动分开。使指尖移动分开具有使地图(指间部分和地图的其余部分两者)变大的作用。为了使地图中的事物看起来更大,应用程序使得虚拟摄像机812放大。在一些实施例中,地图绘制应用程序使用来使虚拟摄像机812沿着移动的线850是由虚拟摄像机812的前部和虚拟摄像机812的焦点形成的线。一些实施例的地图绘制应用程序基于用户的输入使虚拟摄像机812沿由虚拟摄像机812的前部和3D地图810中的一个位置形成的线移动,以便放大3D地图810的视图。
在阶段802的放大之后,用户决定在阶段803进行缩小。在此阶段中,用户使两指位于屏幕上并且使得手指更靠近在一起。使得手指更靠近在一起具有使地图(指间部分和地图的其余部分两者)收缩的作用。缩小调整通过使虚拟摄像机812沿线855移动离3D地图810更远来实现。在一些实施例中,地图绘制应用程序使用以使虚拟摄像机812沿着移动的线855是由虚拟摄像机812的前部和虚拟摄像机812的焦点形成的线。一些实施例的地图绘制应用程序基于用户的输入使虚拟摄像机812沿由虚拟摄像机812的前部和3D地图810中的一个位置形成的线移动,以便放大3D地图810的视图。
在此位置使用虚拟摄像机812渲染3D地图视图产生3D地图视图834,其中建筑物和道路看起来比3D地图视图824中例示的位置更远。如由虚拟摄像机812的虚线型式所示,虚拟摄像机812沿线855移动离3D地图810更远。
除了可通过放大和缩小控制之外,一些应用程序允许用户改变虚拟摄像机的角度。图9例示角度可通过手势来调整的摄像机的实施例。该图以三个阶段901-903示出。在阶段901中,摄像机以45度向下指向场景910。场景910包含屏幕视图914中示出的两个建筑物和一个T形路口。建筑物是从特定角度并且以特定尺寸示出。位置指示器916也被显示为具有特定尺寸。
在阶段902中,用户已使两指920彼此近似水平地位于屏幕上并且向上拖动它们。这具有使用手指向上拖动场景的明显作用。场景上升通过虚拟摄像机912下降并且将其视角从45度改变成30度来实现。在屏幕视图924中,建筑物和位置指示器看起来比阶段901中高。
在用户在阶段902中向上拖动场景之后,用户随后在阶段903中向下拖动场景。为此,用户再次使两指930位于屏幕上并且向下拖动它们。这使场景随着手指930一起向下拖动。场景下降通过虚拟摄像机912上升并且将其向下与场景910所成的角度改变成60度来实现。在阶段903中,摄像机912已经向上移动更远,并且比在阶段901中向下成更大角度。因此,建筑物和位置标识符916在阶段903中同样看起来比在阶段901中更矮且更小。
在一些实施例中,地图绘制应用程序针对不同操作(例如,平移、旋转、从2D进入到3D)提供一种惯性效应。当用户提供特定类型的输入(例如,以比阈值速度大的速度终止的输入)来使3D地图平移时,地图绘制应用程序产生使得3D地图继续平移并且减速直至止点的惯性效应。在一些实施例中,惯性效应为用户提供模仿现实世界中的行为的与3D地图的更真实交互。惯性效应和惯性效应的具体实施的细节描述在以上所并入的名称为“VirtualCamera for 3D Maps”的美国专利申请13/632,040中。
一些实施例的应用程序允许摄像机的距离和角度被独立地控制。例如,应用程序允许由收缩和展开手指手势来控制距离,并且允许通过拖动水平放置的手指来控制角度。其它实施例使用正在执行的任一手势来设定摄像机的距离或角度,而其它变量自动地被设定。虽然图8和图9示出在某一方向上执行手势从而引起某些结果,但在一些实施例中,可使这些手势之一或二者颠倒。例如,在一些实施例中,向下拖动水平放置的手指可使摄像机向下而非使场景向下。这将具有以下作用:在手指向上移动时使场景向下移动,在手指向下移动时使场景向上移动。
图10概念性地例示一些实施例的地图绘制应用程序所提供的特征,该特征用于维持虚拟摄像机的位置在沿弧的限定范围内。具体地,图10例示处于三个不同阶段1005-1015的虚拟摄像机1000,这些阶段1005-1015显示虚拟摄像机1000的位置维持在弧1050的限定范围内。如图10所示,3D地图1035中的位置包括两个建筑物和形成一个T形路口的两条道路。
第一阶段1005示出虚拟摄像机1000沿弧1050处于特定位置。如图所示,弧1050表示限定范围(例如,角度范围),虚拟摄像机1000在该限定范围内是可移动的。第一阶段1005还示出沿弧1050的三个位置1055-1065(例如,透视视角角度)。在该示例中,地图绘制应用程序使虚拟摄像机1000沿弧1050在弧1050的高视点端(例如,在虚拟摄像机1000最大程度地向下倾斜时沿弧1050的位置)与位置1055之间移动,其方式类似于以上参考图9所述的方式。在第一阶段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的位置沿弧1050从位置1065向上“回弹”或“回跳”到位置1060。当地图绘制应用程序正在回弹或回跳运动期间基于虚拟摄像机1000的视角生成或渲染3D地图1035的3D地图视图时,所生成的3D地图视图提供简要显示3D地图视图的向下回弹或回跳的回弹动画,以向用户指示地图视图的视点无法更进一步减小。使用定位成具有此角度的虚拟摄像机1000来渲染3D地图视图产生3D地图视图1030,与地图视图1025相比,3D地图视图1030中建筑物和道路更高。
第三阶段1015示出在地图绘制应用程序已响应于用户停止提供输入而使虚拟摄像机1000的位置回弹或回跳至位置1060之后的虚拟摄像机1000。不同实施例使用用于实现虚拟摄像机1000的回弹或回跳的不同技术。例如,一些实施例的地图绘制应用程序开始使虚拟摄像机1000沿弧1050快速加速达到限定距离,或直至虚拟摄像机1000达到限定速度。随后,地图绘制应用程序使虚拟摄像机1000沿弧1050在到位置1060的剩余距离上减速。在一些实施例中,使用实现回弹或回跳效果的其它方式。在第三阶段1015中使用沿弧1050定位在位置1060处的虚拟摄像机1000来渲染3D地图视图产生3D地图视图1040,与地图视图1030相比,3D地图视图1040中的建筑物看起来稍小且稍平并且道路看起来稍小。
如上所述,图10例示一种用于阻止虚拟摄像机移动超过弧的低视点端的技术。另选地或结合阻止虚拟摄像机移动超过弧的低视点端,一些实施例的地图绘制应用程序利用用于阻止虚拟摄像机移动超过弧的高视点端的类似技术。此外,图10示出以下位置的示例:沿弧的使虚拟摄像机减慢的位置、沿弧的阻止虚拟摄像机移动经过的位置、以及沿弧的虚拟摄像机往回回跳或回弹到的位置。不同实施例以任何数目的不同方式限定位置。例如,在一些实施例中,沿弧的使虚拟摄像机减慢的位置与沿弧的虚拟摄像机回跳或回弹到的位置相同或在其附近。
C.其它用户交互
1.控件的显现和消失
一些实施例的应用程序在导航时具有全屏模式。即,在指引的实际提供期间,通常占据一部分屏幕表面的控件被隐藏。图11例示一些实施例的全屏模式。该图以六个阶段1101-1106示出。在阶段1101中,通过选择启动按钮1110来激活导航指令集。通过选择启动按钮,用户从两条可能路线中选择加亮路线。未加亮的路线消失,并且较小比例尺导航地图1121在阶段1102中显现。第一阶段1101示出道路名称在道路上,这是因为地图绘制应用程序正在显示地图视图。第一阶段1101还示出了位置控件1130因地图绘制应用程序正在显示地图视图而显示出来。对列表控件1132的选择将会使得地图绘制应用程序以列表格式显示可用路线。
另外在阶段1102中,连同结束控件1122、行程状态区域1124(包括ETA、行程持续时间估计值以及计划路线指示器的距离)、概览按钮1126、状态条1127和3D控件1128示出第一指令1120。结束按钮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中所示,其中用户用手指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轻击按钮。导航应用程序距其目标很远,如由表明距下一路口20英里的导航框1414和延伸到位置指示器1418的前方一定距离的路线1416所指示。在阶段1402中,由于用户已经轻击结束按钮1410,导航框1414消失,路线1416同样如此。位置指示器1418也在此阶段中消失,被替换为球形位置指示器1428。
3.用于在导航期间看到路线一侧的手势
如上所述,虚拟摄像机的默认行为是在虚拟世界中遵循设备的位置,并且向下指向设备移动的方向,或至少指向其路线的在设备的目前位置前方短距离处的一部分。然而,并非总是期望使摄像机指向正前方。有时,用户反而想要摄像机指向一定角度。因此,一些实施例的导航应用程序在用户向一旁拖动地图时使虚拟摄像机四处旋转。
图15例示当用户向一旁推动地图时的地图的旋转。该图包括四个阶段1501-1504。在阶段1501中,应用程序被示出为处于其默认模式下,其中街道1510(主街)和当前路线1512平行于屏幕的侧边在3D地图1514上延伸。在这个阶段1501中,用户开始向左推动地图。在下一阶段1502中,虚拟摄像机已经移动到左侧并旋转到右侧。即,3D地图1514已经改变,好像虚拟摄像机已经移动到左侧并旋转到右侧一样。已经旋转的地图1514现在示出位于街道右侧的建筑物的样子。在一些实施例中,地图将旋转的程度存在最大阈值。在一些实施例中,除了能够使地图左右移动之外,用户可移动到位于位置指示器稍前方或稍后方的视图(例如,通过用一个手指向下或向上拖动)。在一些这样的实施例中,地图通过拖动可向前或向后移动的量也受到限制。
在例示的实施例中,在用户正向左(或向右)拖动地图时、或在之后短时间内(例如,利用模拟惯性),应用程序仅使建筑物旋转。一旦用户停止拖动地图1514、或保持用户的手指在适当的位置以将地图1514保持在适当的位置,地图1514就还原到其在摄像机正在拍摄的路线的方向上的默认视图。这在阶段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中。如图所示,处理流水线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,其中每个网格构建器1815的网格的层被填满。
图块提供器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执行生成辨识地图中需要构建网格的区域的空视图图块所必要的任何挑选,并且将空视图图块发送至针对所绘制地图的不同层(例如,道路、土地覆盖、POI标签等)实例化的网格构建器1815。网格构建器1815使用从地图绘制服务接收的清单,该清单辨识地图绘制服务服务器上可用的不同的图块(即,作为四元树的节点)。网格构建器1815从图块检索器1805请求特定地图图块,图块检索器1805向网格构建器1815返回所请求的地图图块。
一旦特定网格构建器1815已接收到其地图图块,它就开始使用存储在地图图块中的向量数据来构建从图块提供器1820发送的视图图块的网格。网格构建器1815在构建其地图层的网格之后,将构建好的视图图块发送回图块提供器1820。图块提供器1820等待直到其已经从各种网格构建器1815接收所有视图图块,随后将这些图块层叠在一起并且将完整的视图图块发送到控制器1875。控制器将从其所有图块提供器返回的图块(例如,地图视图图块和建筑物视图图块)缝接在一起,并且将此场景发送至渲染引擎1825。地图渲染引擎1825使用地图图块中的信息来绘制用于显示的场景。
2.不同模式的状态图
图19A和19B概念性地例示描述一些实施例的集成地图绘制、搜索和导航应用程序(例如,以上节段中描述的应用程序)的不同状态以及这些状态之间的转变的状态图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控件(例如,按钮),该UI控件使得应用程序检索从设备的当前位置到所选择位置的路线(例如,驾驶路线)而不离开地图视图;以及(2)信息UI控件(例如,按钮),该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.不同情景中的逼真外观和不同格式
在一些实施例中,导航标志在不同情景中可具有不同外观。以下将更进一步详细地描述这些差异中的一些。具体地,要执行的操纵的图形指示器(例如,以下将进一步描述的方向指示器)以及描述这些操纵的指令文本可适于配合正在显示的导航标志的情景。例如,不同尺寸的标志可具有简单或复杂的操纵描述,并且指令文本可适于标志的尺寸并且可基于标志内显示的其它信息。
一些实施例以给予导航标志以逼真道路标志的外观这种方式来显示标志。一些实施例将导航标志显示为丰富的纹理化图像(例如,使用阴影、着色等),这与只是在地图显示上显示平面图像形成对比。此外,一些实施例对导航标志使用着色,从而匹配应用程序正导航通过的区域中的道路标志的颜色。在一些实施例中,应用程序还使用逼真公路路盾来标记道路。例如,对于编号的州和联邦公路,应用程序将会在导航标志内(例如,远离标志的侧边)使用与道路相关联的公路路盾,用公路路盾替换导航指令中的道路名称,或以其它方式在图形显示中包括公路路盾。
图20例示使用此类公路路盾的若干GUI场景。第一此类场景2005例示处于逐向导航模式、示出沿US-101北向继续直行20英里的地图绘制应用程序。在该示例中,用于US-101的道路标志显示为替代实际文本“US-101”内嵌在文本指令“沿US-101北向直走”内。当道路具有标志并且该标志作为图像可用于地图绘制应用程序时,一些实施例用道路标志来替换道路的文本名称。
第二实例2010例示显示在导航标志的右侧上而非内嵌在文本指令中的公路路盾。这个场景例示由一些实施例针对与实例2005中相同的指令所使用的另选显示。在这种情况下,公路路盾显示为具有与导航标志的左侧上的图形指示器箭头相同的尺寸。此外,由于信息以道路标志形式呈现,应用程序移除文本中的“沿101北向”部分,否则该部分将呈现出来。
第三实例2015例示以下情况:导航标志被着色以匹配公路路盾中所示的道路类型。在这个场景中,指令告知用户沿CA-1Nonh直走。“CA-1”被替换成用于“CA-1”的公路路盾标志。虽然一些实施例使用绿色(用于加利福尼亚州公路的标志的颜色)来为此标志着色,但是其它实施例使用沿着实际公路找到的道路路盾标志的颜色来为导航标志着色。其它实施例使用绿色来匹配设备所在区域中的高速公路上找到的道路指令标志的颜色(例如,加利福尼亚是绿色)。
第四场景2020例示导航标志内的到Interstate-5上的汇入操纵。与第一实例2005非常像,第四场景2020例示道路路盾标志作为内嵌文本。此外,在道路路盾内使用着色以便匹配实际洲际公路标志的外观,其中顶部部分着红色并且底部部分着蓝色。如所提及的,一些实施例替代地使用这些颜色的组合来为整个导航标志着色。
虽然图20并未例示方向指示器2090的不同外观,但是一些实施例的地图绘制应用程序使用不同外观,以便使方向指示器适于配合正在显示的导航标志的情景。
B.标志的动态和动画展示
图20的上述情况例示导航标志的静态显示(即,未示出任何对标志做出的改变)。一些实施例提供这些导航标志的动画或其它动态显示。这些显示包括在用户做出操纵并且标志被移除时经过地图显示中的用户表示(导航定位器)上方的标志的外观。此外,在操纵逼近时可对标志应用精妙动画,以便使得用户注意将到来的操纵。最后,当两个操纵快速连续发生时,应用程序将第二操纵的导航标志显示为排列在第一标志之后。
1.导航标志的动画移除和展示
图21以四个阶段2105-2120例示用于移除导航标志并且引入下一标志的一些实施例的动画。在一些实施例中,所移除标志的动画模拟道路标志在公路上方经过的动画。虽然该图例示在3D模式的情景内的动画,但是一些实施例还包括处于2D模式的动画。其它实施例具体地提供用于3D模式的动画。
第一阶段2105例示导航标志2125,导航标志2125指示用户在100英尺处执行汇入主街的操纵。第二阶段2110例示在用户执行操纵时移除导航标志2125的动画。当用户在物理上汇入主街时,导航标志2125放大并且开始从视场中消失,如同高速公路上方的道路标志那样。在一些实施例中,地图绘制应用程序还对标志应用视点倾斜,以进一步模仿在上方经过的标志的外观。
在第三阶段2115,后续导航标志2130开始从水平面或很靠近水平面的逼近位置显现出来。直到水平面,一些实施例实际上并非始终以3D模式渲染出地图,并且从3D渲染结束时的距离处开始以动画方式显示将到来的导航标志。这个动画意图类似于关于高速公路上的道路标志的方法,但是通常是以更快的速度进行(以便快速地使导航标志达到实际尺寸,并且避免冗长动画的干扰)。第四阶段2120例示所得的显示,其中后续导航标志2130以正常位置显示在屏幕的顶部处。
除了图21中所示的动画之外,在一些情况下,一些实施例还包括更复杂的动画。举例来说,当导航标志在用户做出转弯操纵时离开显示时,一些实施例使导航标志旋转,以便模仿用户在标志下方转弯的景象。
2.偶尔强调
在一些情况下,地图绘制应用程序可在由导航标志所描述的操纵将被执行很久之前就显示导航标志。例如,如果用户进入高速公路,并且下一操纵涉及15英里处的高速公路出口,应用程序可显示以下导航标志,该导航标志在用户需要开始准备实际离开高速公路很久之前就指示将到来的高速公路出口。在警示用户正在接近要执行操纵的路口时,不同实施例使用不同技术。一些实施例包括音频警示,其中用户设备提供语音导航以指示正在接近路口。
结合音频警示或无论何时关闭音频警示,一些实施例通过标志的显示来提供操纵即将到来的视觉指示。例如,在一些实施例中,应用程序修改标志的颜色(例如,从绿色到白色或从绿色到黄色)以及图形指示器箭头的颜色(例如,从白色到黑色)。其它实施例在导航标志上显示不太突出的闪光,该闪光旨在捕捉用户的注意力而不会过度突出。
图22以四个阶段2205-2220例示这种闪光动画。这些阶段将显示的背景例示为灰色,以便当闪光在标志上移动(以白色示出)时与闪光形成对比。第一阶段2205例示当前指示1000英尺处的右转操纵的导航标志2225。
在第二阶段2210,现在距离右转仅500英尺。应用程序已经判断这是向用户警示将到来的操纵的适当距离,并且因此已经开始在导航标志2225上显示闪光。第三阶段2215和第四阶段2220例示此动画的继续部分。在一些实施例中,动画类似于光在标志上从左向右移动。其它实施例显示从右到左的类似动画,或其它此类动画(例如,光从标志的中心辐射出等)。
一些实施例基于各种因素来改变动画开始时距操纵的距离,这些因素诸如设备移动的速度(基于位置跟踪信息)和用户当前行进的道路的速度限制。例如,一些实施例在交叉路口之前具有应显示动画的设定时间,并且使用这种速度信息来计算适当距离。一些实施例还基于所做出的操纵的类型来改变距离(例如,与用于右转离开单行道路相比留有更多时间用于离开高速公路)。
3.第二标志
当路线要求快速连续做出两个不同操纵时,一些实施例将用于第二操纵的导航标志显示为叠堆在用于第一操纵的导航标志下方。这就第二操纵的将发生性警示用户。当将连续地执行若干操纵时,一些实施例将多于两个导航标志叠堆在彼此之上。
图23以四个阶段2305-2320例示用于快速连续的操纵的两个标志的显示。在第一阶段2305,第一导航标志2325指示在1000英尺的距离处将到来的操纵是左转到东大街。由于这是实际尺寸的逐向导航标志,应用程序为此操纵显示第一类型的图形指示器箭头(即,复杂箭头)。如通过与驾驶员(将主要是着眼于道路)可进行相比更仔细的查看在地图上可见,为了遵循给定路线,将要求在左转到东大街之后不久右转到南大街。为了使用户对此更加清楚,应用程序在第一导航标志2325下方显示第二导航标志2330。因为提供更少空间,第二标志包括第二类型的图形指示器箭头(即,更简单的箭头)。此外,在第二标志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辨识遵循指引的用户将必须在哪一点执行操纵(例如,右转、略微左转、U形转弯、汇入等)。在一些实施例中,这些途径改变中的每个对应于存储在交叉数据2425中的预制表交叉路口。交叉路口分析器2455检索此交叉路口数据。在一些实施例中,每个交叉路口被存储为以各种角度(例如,基于北=0°)离开交叉路口的一系列支路。在一些实施例中,除了交叉路口数据之外,路线生成器创建大体描述要执行的操纵的路线规划指引。此类描述的示例包括“左转”、“驶出公路”、“U形转弯”等。在其它实施例中,此描述由客户端地图绘制应用程序基于所接收的交叉路口数据得出。
接着,在阶段2440,交叉路口分析器2455生成设计用于路线的交叉路口信息。在一些实施例中,这需要修改角度以将行进到路口中的方向设定为0°(即,将路线沿着进入路口的支路设定为180°)。这有效地使交叉路口描述旋转正北与路线将到来的行进方向之间的差值。此外,交叉路口分析器2455将支路之一标记为出口支路。一些实施例也标记入口支路,而其它实施例依靠设备来将180°支路辨识为入口支路。
阶段2450例示地图绘制服务2400随后向设备2405传输(例如,通过设备用来传输路线请求的同一网络)路线数据(即,用于导航的路线数据和交叉路口数据)。如在阶段2460所示,设备2405随后使用地图绘制服务生成的交叉路口数据和路线数据来为设备的用户显示导航指令。在一些实施例中,导航指令包括交叉路口的显示,连同示出通过交叉路口的操纵(在这种情况下,右转)的风格化箭头。
虽然地图绘制服务2400显示为包括地图生成器模块和路线生成器模块,但是本领域的普通技术人员将认识到,地图绘制服务可包括另外的模块或不同的模块分解结构。地图绘制服务可由存储所有功能和数据的单个计算设备(例如,服务器)组成,或功能可分布在多个服务器之间(例如,一个过程在第一服务器上并且第二过程在第二服务器上,许多服务器针对不同用户并行执行相同操作,或执行本文所述功能的计算设备的其它配置)。
图25概念性地例示由一些实施例的地图绘制服务执行以便生成路线和交叉路口数据并且将数据传输给用户的过程2500。如图所示,过程2500以接收(在2505)对地图上两个位置之间的路线的请求开始。在一些实施例中,当用户请求一系列多于两个位置时,每个路段被视为是独立路线(即,从点A到点B是第一路线,然后点B到点C是第二路线)。
过程随后使用地图数据来生成(在2510)位置之间的至少一条路线。在一些实施例中,过程使用最佳算法来辨识两个位置之间的最佳(或两条最佳、三条最佳等)路线。这些路线可描述为沿途径的一系列交点、途径之间的一系列交叉路口,或具有另一描述。
在针对起点位置和终点位置生成路线的情况下,过程2500选择(在2515)所生成的路线之一,以便创建该路线的逐向指令。过程随后辨识(在2520)要沿路线所做出的操纵。在一些实施例中,每次路线改变途径时,地图绘制服务辨识遵循指引的用户将必须在哪一点执行操纵(例如,右转、略微左转、U形转弯、汇入等)。
接着,过程检索(在2525)每个操纵的交叉路口。在一些实施例中,这些途径改变中的每个对应于由地图绘制服务所存储的预制表交叉路口。这些交叉路口的生成在以下详细描述。在一些实施例中,每个交叉路口被存储为以各种角度(例如,基于北=0°)离开交叉路口的一系列支路。此外,在一些实施例中,交叉路口数据存储交叉路口的类型(例如,点状、环状、交通广场式等)。
过程随后修改(在2530)每个操纵的交叉路口信息。在一些实施例中,这需要修改角度以将行进到路口中的方向设定为0°(即,将路线沿着进入路口的支路设定为180°)。这有效地使交叉路口描述旋转正北与路线将到来的行进方向之间的差值。此外,一些实施例将支路之一标记为出口支路。一些实施例也标记入口支路,而其它实施例依靠设备来将180°支路辨识为入口支路。
过程2500接着确定(在2535)是否剩余要生成操纵/交叉路口信息的另外路线。当剩余另外路线时,过程返回2515以选择下一路线。从起点位置到终点位置的路线的不同变型形式可部分地重叠,在这种情况下,一些实施例针对重叠部分重复使用已生成的一组交叉路口。
一旦为所有路线生成交叉路口,过程就向请求方(例如,请求设备)传输(在2540)路线和交叉路口信息。如所提及的,在一些实施例中,请求设备使用此信息以便生成逐向导航,包括风格化路口和/操纵箭头。
2.对交叉路口数据的预计算
如上所述,一些实施例对来自所存储的地图数据(例如,道路路段和路口数据)的交叉路口数据进行预计算。地图绘制服务随后存储此交叉路口数据以供用于生成逐向导航指令。以下章节描述用于生成此交叉路口数据的若干过程,其中地图绘制服务接收供应商提供的路口,辨识任何一组所接收的路口是否应合并成单个交叉路口,辨识应当在交叉路口内接合在一起的成对道路路段,并且生成交叉路口的角度。在这个章节中,术语路口将大体用于指示供应商提供的两条路径路段相交处的信息,而该术语交叉路口将指示从表示现实世界中两条或更多条道路相遇的地方的路口生成的数据。因此,在一些实施例中,多个路口可合并成一个交叉路口,并且实际上仅是单条道路的继续部分的两个道路路段之间的路口可能根本不被视作交叉路口。
以下表示用于生成点状交叉路口的交叉路口数据的一些实施例的伪码:
辨识所有内部路段;
辨识所有内部转弯通道并且将它们标记为内部路段;
对于每个内部路段:
收集所有邻接内部路段;
将所收集的内部路段标记为已处理;
从此内部路段集合构建交叉路口;
除了其它数据(例如,公园的位置、水道、企业等),地图数据存储关于途径的信息(即,道路、人行道、自行车道等)。在一些实施例中,每条途径作为一系列路段(例如,道路路段)从地图提供器接收。对于给定路段,在一些实施例中,所存储的数据包括路段的起点路口和终点路口、限定起点路口和终点路口之间的路径所采取路程的几何形状数据、路径表征(或“路的形式”)、行进的方向(在一些实施例中,可涉及单向标记)、路径的一个或多个名称(例如,“1-405S”、“圣地亚哥高速公路”等)、指示路径的重要水平的类以及网络类(路径所属的路径连通图)。在一些实施例中,几何形状信息包括路径行进通过的一系列纬度/经度交点。在一些实施例中,路的形式属性包括以下表征:单车行道、双车行道、机动车道、高速公路岔道、接驳车道、人行道、楼梯道。一些实施例可包括另外的表征。
图26概念性地例示用于确定各组应被一起视为单个交叉路口的路口之间的路径路段的一些实施例的过程2600。如图所示,过程2600以接收(在2605)至少两个路径路段(例如,道路路段)之间的路口开始。在一些实施例中,地图绘制服务接收(例如,作为预计算数据从地图供应商接收)一组道路路段和一组路口。每个道路路段遵循两个这种路口之间的路径,并且每个路口涉及进入和/或离开路口的至少两条道路路段。另一方面,在一些实施例中,路口并不是从地图数据供应商接收,并且地图绘制服务遍历路径数据以辨识路径之间的交叉路口并且分析这些交叉路口,以便将路口预先制成表。
过程随后确定(在2610)所接收的路口处的任何路径路段是否是双车行道。如所提及的,双车行道是一些形式的地图数据中使用的路径表征。被分开(例如,由路中部分、双黄线等分开)的许多道路作为两个独立路径路段被接收,每个方向一个路径路段。每个路径路段随后用行进的方向来标记并且被标记为双车行道的一半。由于用户通常会将都由路中部分分隔的两条道路的交叉路口视为单个交叉路口(而非四个独立交叉路口),路口生成过程尝试将这四个所接收的路口一体形成为单个交叉路口,以便出于导航目的来呈现给用户。
当没有路径路段被标记为双车行道时,过程仅使用所接收的路口中指定的路径路段来计算(在2615)交叉路口支路(即,交叉路口将仅包括所接收的一个路口)。在一些实施例中,对路口支路的计算必须计算针对路口所指定的每个路段离开路口位置时所处的角度。随后,该过程结束。图27例示这种路口2700的实例,还例示并不要求路径路段以直角相遇、或并不要求路径以直线继续通过路口。
当针对所接收的路口所指定的至少一个路径路段是双车行道时,过程确定(在2620)在路口处是否存在双车行道的十字交通转弯。假设存在十字交通转弯,那么十字交通转弯是双车行道在将横穿双车行道的匹配半部的方向(即,道路的其它方向)上的转弯。在美国,左转是十字交通转弯。虽然本文档中所示的实例涉及右侧驾驶(即,在道路的右侧驾驶),但是普通技术人员将认识到,实例也同样适用于左侧驾驶区域(例如,英国)。图28例示包括两条双车行道路径2805和2806以及一条单向道路2810的交叉路口2800。在路口2815处,不存在双车行道的十字交通转弯,因为右转离开双车行道路径2805或左转离开单向街道2810是仅有的选项。当不存在这种转弯时,过程2600存储(在2625)所接收的路口同时识别所接收的路口仍可为更大交叉路口的一部分,以便确定是否将所接收的路口与其它所接收的路口(例如,单向道路2810与双车行道路径2806之间的路口2820)一起包括在更大交叉路口中。例如,在交叉路口2800中,过程将想要将所接收的路口2820与所接收的路口2815接合成单个更大交叉路口。随后,该过程结束。
当在路口处(例如,在路口2820处)存在双车行道的十字交通转弯时,过程在十字交通转弯的方向上移动(在2630)直至到达下一双车行道路径。在一些实施例中,因为路径路段在路口处开始和结束,所以将在不同的所接收的路口处到达下一双车行道路径(虽然不一定是下一路口:如果道路诸如左转车道作为独立路径路段被接收的话)。例如,从交叉路口2820起,过程将遍历路径2810远离路口2820,直至在路口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-1South”和“CA-1North”,或者,如果两条路径都包括“维尔摄大道”作为它们的名称之一也是匹配名称。为了匹配双行车道方面的置信度,一些实施例还可考虑道路类数据。
如果两条路径匹配,过程就将路径汇入(在2960)新限定的交叉路口的单条支路中。如以上所指示,交叉路口被存储为处于不同角度的一组支路。对于汇入的路径,一些实施例将角度存储为构成支路的两条路径的角度的平均值。图35例示八道交叉路口3500到四条支路的简化,其中右侧支路3510的角度是右侧出口路径3505与水平线的偏移量的一半,因为右侧入口路径是在水平线上。如图概念性地示出,在一些实施例中,并未针对交叉路口支路存储指引(入口/出口)。地图绘制服务使用包括交叉路口以及道路的行进方向的地图数据生成路线,因此,路线将不会在交叉路口的支路上沿着错路行进。
另一方面,当路径并不匹配时,过程存储(在2965)每条路径作为交叉路口的独立支路。图36例示不同的八道交叉路口3600到五条支路的简化。在这种情况下,在右侧的双车行道路径3605和3606并不汇合,并且因此被视为简化交叉路口的独立支路3610和3611。在该示例中,这些支路中的每条离开交叉路口所处的角度是针对支路所存储的角度(并未求平均值)。过程2900随后返回2930以确定是否剩余任何入口路径。如上所述,一旦入口路径集为空,过程继续2935并且随后结束。
以下表示用于一旦已经针对交叉路口辨识出内部路段(例如,过程2900的一部分或全部所执行的操作)就生成交叉路口的数据的一些实施例的伪码:
收集触及交叉路口的内部路段的所有外部路段;
辨识交叉路口中的内部路段所环绕的外部路段并且将它们标记为内部;
将表示相同道路的成对进入和离开路段分组在一起;
针对每对道路并且针对每个不成对道路计算离开角度;
构造模板交叉路口图案,其中每个角度一条支路
如果针对先前所生成的交叉路口存在图案,使用现有图案以便节省空间(使交叉路口参考现有图案);
否则如果图案不存在,针对图案创建并且存储新条目;
如所指出的那样,一些实施例将每个交叉路口存储为数据结构。此数据结构指示交叉路口的支路和支路进入和/或离开路口所处的角度。图37概念性地例示用于点型交叉路口的一些实施例的这种数据结构3700的实例。如图所示,交叉路口包括交叉路口ID(在一些实施例中,交叉路口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还例示逐向导航期间的导航指令。在这种情况下,正在执行的操纵是U形转弯。如在场景4225中用路口支路表示U形转弯将会导致箭头向上再向下指向同一支路(底部支路)。因此,应用程序替代显示所存储的U形转弯指示器箭头。
图43例示用于同一转弯的若干场景以及不同箭头可用于同一转弯的方式。第一场景4305在逐向导航指令中例示右转到第一大街。如同在图42中,使用复杂图形指示器。第二场景4310例示逐向导航期间的情况,其中右转到第一大街是快速连续进行的两个操纵中的第二操纵。在这种情况下,第二指令在第一指令之后很快到来,所以应用程序提供对将到来的两个操纵的指示。第二操纵在显示上被分配较少空间,并且因此使用简化箭头。第三场景4315例示路线指引列表中的简化箭头指示器的使用。此外,如就路线指引列表中的第二操纵所示,一些实施例在以下情况下用公路标志(路盾)替换简化方向指示器:操纵在这种路盾/标志可用的道路上结束。第四场景4320和第五场景4325例示处于锁屏模式下和在地图绘制应用程序未显示在设备上时的用于右转的简化箭头指示器。
2.路口数据的下载和图形指示器的生成
在一些实施例中,地图绘制应用程序基于地图应用程序的用户选择的路线执行导航。例如,用户可请求地图绘制应用程序搜索从第一位置到第二位置的路线(例如,从用户的住宅到特定餐厅)。在一些实施例中,应用程序将请求发送到集中式地图绘制服务(例如,一组运行后端地图和路线生成过程的服务器),并且接收一组从第一位置到第二位置的一条或多条可能路线。用户随后选择路线中的一条来遵循。
图44概念性地例示用于在路线检查期间显示图形指示器的一些实施例的过程4400。在一些实施例中,用户可查看路线指引的列表(例如,通过选择列表视图GUI按钮)或可一次一个地逐步查看指引(例如,通过横扫手势),同时还查看地图上的路线。在一些实施例中,过程4400是由在设备(例如,移动设备,诸如智能电话或触摸板)上操作的地图绘制应用程序执行。
如图所示,一些实施例的过程4400以向地图绘制服务服务器发送(在4410)对路线的请求开始。在一些实施例中,请求包括起点位置和终点位置,可能具有一个或多个中间位置。用户将这些位置输入到一些实施例的地图绘制应用程序GUI中,并且应用程序通过设备接口将路线请求传输至地图绘制服务服务器。用于生成路线和导航(路口)指令的服务器的操作在以上在这个章节的小节A中描述。
过程4400随后接收(在4420)路线以及编码的路口数据。在一些实施例中,地图绘制服务以编码格式传输路口数据。这种编码可以只是涉及辨识类似路口和标引这些路口而非重复相同路口信息两次,或可涉及另外的编码。其它实施例不提供任何编码。假设数据被编码,那么过程解码(在4430)编码的路口数据,以便得出沿路线的每个操纵的路口信息。在一些实施例中,此路口数据是由辨识路口的支路和那些支路进入/离开路口所处的角度的几何形状信息组成。除了路口信息,一些实施例还包括描述正做出的操纵(例如像右转、U形转弯、驶出高速公路等)的操纵信息。
接着,过程生成(在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是由在设备(例如,移动设备,诸如智能电话或触摸板)上操作的地图绘制应用程序执行。在一些实施例中,地图绘制应用程序在接收沿路线的所有路口的路口数据之后在过程4500的阶段4520执行此过程4600。在一些实施例中,此路口数据由地图绘制服务处的一组服务器生成和提供。
如图所示,一些实施例的过程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来描述。
如图所示,过程4700以辨识(在4710)做出路线操纵所通过的路口的角度开始。在一些实施例中,这些角度是由地图绘制服务服务器针对路口所指定的角度,并且还指示支路中的一条作为出口支路。图48的顶部部分例示地图上的第一点状路口4805,第一点状路口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°对齐,因为与比90°轴线相比,路口支路的115°角度更靠近135°轴线。
在辨识对所选择路口的角度的可能修改之后,过程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处的U形转弯操纵。在这种情况下,针对路口存储的路口数据是具有在基本方向上的四条支路的标准路口。然而,用于操纵的数据包括处于180°的出口支路,出口支路也是入口支路。因此,当无需简化几何形状时,根据标准规则将生成的方向指示器将正好是向下指向的箭头,与箭头的入口部分重叠。因为这将不是对操纵的极有用的图形指示时,地图绘制应用程序替代地使用所存储的U形转弯指示器,如在此图的顶部部分的第四阶段中所示。
图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使用简化的路口数据生成每个路口/操纵的一个或多个图形指示器。当根据路口数据生成的指示器不理想(例如,针对U形转弯、高速公路出口操纵等)时,一些实施例的箭头生成器使用所存储的默认指示器5170。针对路口中的至少一些,箭头生成器创建复杂方向指示器(还包括对路口的去强调的表示)和简单方向指示器。箭头生成器5160将用于显示路线和导航指令的这些方向指示器5162存储在易失性或非易失性存储器中。
箭头选择器5165使用情景分析器5175根据其中指示器将被显示的情景来针对特定操纵确定使用哪个方向指示器。这些情景可包括用于路线规划指引的不同情况或用于逐向导航指令的不同情况(例如,标准模式、锁屏模式,不同应用程序打开时等)。情景分析器5175辨识情景并且向箭头选择器5165提供此信息。
箭头选择器选择图形指示器5162中的一个并且向标志生成器5180提供此选择。标志生成器5180生成要显示的导航指令表示,该导航指令标志包括所选择的图形指示器。标志生成器5180还使用情景分析器结果生成标志的其它方面,诸如导航标志内所示指令的细节的程度。
IV.自适应指令的动态生成
如在以上章节中的许多图中所示,除了显示路线中的操纵的图形指示之外,一些实施例的地图绘制应用程序显示操纵指令(例如,“行进0.5英里左转到达Bahrami Ct.”)。与图形指示器很像,地图绘制应用程序使用所接收的路线/路口数据动态地生成这些指令。
A.用于不同情景中的相同操纵的不同指令的实例
一些实施例的地图绘制应用程序在各种情况下显示文本路线指令,其中一些情况比其它情况更加受空间约束,并且在其中一些情况下,其它引导元素提供关于操纵的可替代文本指令的信息。应用程序不是选择单个指令串并且随后如约束所决定那样缩小字体或截短,而是使用极其复杂的方法根据关于操纵本身的许多细节来合成最佳适于每个情景的字串。
对于给定情景,应用程序通过考虑因素诸如可用空间、由除文本外的手段(例如,图形指示器、道路标志等)传达的信息的量、每个指令变体的局部长度以及其它因素来选择指令。通过合成并且评估本地位于客户端设备上的若干替代形式(而非只是从地图绘制服务接收指令本文),地图绘制应用程序可在每个场景下选取最佳指令串。此外,这种方法允许应用程序在不同尺寸的设备上使用不同指令文本(例如,与较小智能电话相比,在平板电脑上使用更多文本)。类似方法也可用于需要配合在特定的时间量内的说出指令,并且当使用语音指令时,一些实施例的应用程序将会减少所显示指令的长度。
图52例示根据一些实施例的合成路口处的特定操纵的不同指令的实例。图53和图54随后例示其中使用操纵的这些不同指令的不同场景。如图所示,地图绘制应用程序使用所接收的路线指令和路口数据来辨识操纵指令的具体方面。表5205概念性地例示可针对路口生成各种字串的方式。具体地,操纵指令包括“在”字段、“转弯”字段、“到达”字段、“朝向”字段和“行进”字段。针对每个路口,应用程序初始填充这些字串字段,以便合成来自字段的指令。
在一些实施例中,“在”字段基于包括交通灯和停车标志信息等的地图信息。针对图52中所示的实例,第一路口出现“在道路的终点处”,而第二路口出现“在下一个灯”处。“转弯”字段描述要做出的操纵;此字段的实例包括“右转”(在第一路口处执行的操纵)、“离开高速公路”、“靠左”、“略微左转”、“U形转弯”或其它操纵。包括操纵描述的路线指引可映射至“转弯”字段的不同的可能的字串。
“到达”字段指示操纵离开路口所到达的途径(即,街道、高速公路等)。在图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相同,但明确地指示说出导航已关闭。这里提供第七场景5410以与第八场景5415形成对比,在第八场景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)编码的路口数据,以便得出沿路线的每个操纵的路口信息。在一些实施例中,此路口数据是由辨识路口的支路和那些支路进入/离开路口所处的角度的几何形状信息组成。连同路口信息,一些实施例还包括描述正做出的操纵(例如像右转、U形转弯、驶出高速公路等)的操纵信息。
接着,该过程生成(在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),以便得出沿修订的路线的每个操纵的路口信息。在一些实施例中,此路口数据是由辨识路口的支路和那些支路进入/离开路口所处的角度的几何形状信息组成。连同路口信息,一些实施例还包括描述正做出的操纵(例如像右转、U形转弯、驶出高速公路等)的操纵信息。
随后,该过程生成(在5650)修订的路线中的路口的文本指令变体。文本指令变体是从解码的路口和操纵信息所导出的文本字串的组合。如以上结合图52-54所讨论,此类文本字串的示例包括“在第二交叉路口处”、“左转”、“到达第一大街”、“朝向沃尔夫路”、以及“行进0.3英里”。在一些实施例中,过程5500将文本字串组合成文本指令变体。作为这种组合的第一实例,过程5500可组合“在第二交叉路口处”和“左转”以产生短的文本指令变体,读作“在第二交叉路口处,左转”。作为这种组合的第二实例,过程5500可组合所有先前文本字串以产生长的文本指令变体,读作“在第二交叉路口处,左转到达第一大街,朝向沃尔夫路,行进0.3英里”。在一些实施例中,过程5500基于每个变体中传达的信息的量来对用于每个路口的文本指令变体分等级。在一些实施例中,文本指令变体是由设备使用诸如以下参考图58所述过程5800的过程生成。
在生成修订的路线中的路口的一组文本指令变体之后,该过程返回5610以再次确定用户是否正在导航新路线。当用户设备仍在遵循路线时,过程5600确定(在5660)是否显示新导航指令。当正在导航路线时,在一些实施例中,在路口接近时,作为标志(例如,具有箭头和以一定细节水平描述操纵的文本指令的绿色标志)向用户示出与路口相关联的每个操纵。
当不需要新导航指令时(例如,因为尚未执行由当前所显示的指令指示的操纵),该过程确定(在5675)是否更新当前所显示的指令。如在先前小节中所示,在一些实施例中,导航标志包括直至操纵所剩余的距离的指示器。在一些实施例中,在操纵接近时,地图绘制应用程序定期更新此距离指示器(例如,每一英里,然后每十分之一英里,然后每五十英尺等)。当已经达到距离阈值使得必须更新所显示的指令时,过程5600更新(在5680)所显示的指令。在一些实施例中,这必需更新数字和/或距离单位(例如,对于最后十分之一英里,从英里切换成英尺)。一些实施例还通过该过程在其上操作的设备的语音输出特征来提供对剩余距离的更新。
该过程随后继续5685以确定导航是否已经结束。当导航已经结束时,过程5600结束。操作5660、5675和5685一起有效地起到‘等待’状态的功能,其中地图绘制应用程序等待要求显示新导航指令或对所显示的导航指令的更新的事件,或等待导航结束(例如,因为到达了路线的终点位置)。
当要求显示新导航指令的事件发生时,该过程分析(在5665)用于显示导航指令的情景。在一些实施例中,情景取决于与清楚显示导航路线所要求的路线操纵相关联的若干因素。例如,情景可基于可用于显示文本指令的空间的量(例如,由于在其上显示路线指引的设备的尺寸)、指示器将被显示时所处的状况(例如,操纵是当前还是未来的路线操纵,标志将在地图绘制应用程序的哪个特定模态下显示等)。在一些实施例中,另外情景因素可包括指令是否还通过语音引导特征提供给用户、设备的取向以及其它因素。
在辨识用于显示文本指令的情景之后,过程5600基于情景显示(在5670)将到来的路口的文本指令变体。在一些实施例中,显示特定文本指令的情景确定显示哪个文本指令变体。在一些实施例中,文本指令变体针对不同情景具有不同长度。在一些实施例中,较长文本指令变体比较短指令变体传达更多信息。然而,较长指令变体可能并不配合在小的横幅中,或可在文本行上引起包裹效应。例如,一些实施例使用较长文本指令变体来一次一个操纵地显示路线指令,并且使用较短文本指令变体来一次显示所有指令的列表视图。一些实施例基于情景设定字符或尺寸限制,并且选择传达最多信息同时仍配合在分配用于导航指令的显示区域中并且维持适当文本尺寸的文本指令变体。
在显示新指令之后,过程5600转至5685以确定导航是否已经结束。在一些实施例中,导航在用户停止地图绘制应用程序时或在到达目标时结束。如果导航已经结束,过程5600结束。否则,过程5600转回5610以确定路线导航是否仍在路径上,如上所述。
如以上所讨论,一些实施例的地图绘制应用程序对所接收的数据进行解码和合成,以便得出用以生成导航指令的字串数据。图57概念性地例示用于对编码的路口数据进行解码并且合成来自从地图绘制服务接收的路线和路口数据的指令元素的一些实施例的过程5700。在一些实施例中,过程5700是由地图绘制应用程序执行。在一些实施例中,地图绘制应用程序在接收沿路线的所有路口的路口数据之后在过程5500的阶段5530执行此过程5700。
如图所示,过程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.不处于导航应用程序时的导航指令
A.当设备解除锁定并且导航正在后台操作时的指令
一些实施例允许导航应用程序在其它应用程序在前台运行的同时在后台运行。这些实施例在前台提供不突出的导航指令,即使在主导航应用程序正在后台运行并且另一个应用程序或应用程序启动器正在前台运行时也是如此。在后台运行的应用程序的示例包括语音激活个人助理、邮件、浏览器、电话、日历、或设备上可用的任何其它应用程序。
一些实施例的导航应用程序在屏幕上提供导航条(有时称作“横幅”或“导航横幅”)以及常规的状态条。一些实施例在没有提供导航指令时提供导航状态条,并且在给出导航指令时提供导航指令条。图60例示本发明的一些实施例中的当导航正在后台操作时的用户设备显示6000。用户设备显示6000以四个阶段6001-6004示出。
在阶段6001中,显示6000示出导航应用程序6005、状态条6080和按钮6015。状态条6080示出不同信息,诸如电池水平、时间、接收条等。在一些实施例中,状态条显示指示器诸如箭头,该指示器指示导航应用程序或地图应用程序正在运行。在这个阶段6001中,导航应用程序6005正在前台运行,直到设备接收对按钮6015的选择(例如,点击)从而从导航应用程序切换至应用程序启动视图,应用程序启动视图本身可表征为应用程序启动应用程序。在一些实施例中,替代或除了按钮,存在将导航应用程序切换至另一个应用程序(例如,应用程序启动视图或其它应用程序)的其它控件。阶段6001还示出:道路名称显示在道路标志上而不是在横幅中。如上所述,一些实施例的地图绘制应用程序可在道路上和/或在横幅中显示道路名称,无论地图绘制应用程序操作时所处的模式如何。
在阶段6002中,应用程序启动器6075在前台显示。前台应用程序启动器6075具有图标6025,图标6025在导航应用程序在后台运行时具有它们的正常功能(例如,启动其它应用程序)。在阶段6002中,后台导航状态条6010被示出在状态条6080下方。一些实施例以与导航未在后台运行时(如阶段6001中所示)的状态条颜色(例如,灰色)不同的颜色(例如,绿色)在导航在后台运行时(如阶段6002中所示)显示状态条6080和/或导航状态条6010。在其它实施例中,状态条6080在导航应用程序正在后台运行、导航应用程序关闭、或导航应用程序正在前台运行时具有相同颜色。在一些实施例中,导航状态条的厚度与导航应用程序当前未在导航指令条中显示指引时的状态条的厚度相同或近似地相同(例如,厚度的75%至125%)。
在一些实施例中,导航状态条6010既是导航应用程序正在后台运行的指示器又是用于使导航应用程序进入前台的控件。在一些实施例中,导航状态条6010并不限于仅仅随着应用程序启动屏幕6075一起显示,而是显示在正在前台运行的任何应用程序的顶部处、位于状态条6080下方。
在阶段6003中,通过触摸屏幕上的导航状态条6010来选择导航状态条6010。一些实施例还允许由其它基于触摸或基于运动的输入设备以及非基于触摸或基于运动的输入设备对导航条进行选择。在一些实施例中,用于选择的一些设备包括键盘、鼠标、操纵杆、触摸板等(例如,选择可以是来自鼠标的点击)。对导航状态条6010的选择(如阶段6003中所示)使得导航应用程序6005在阶段6004中返回前台。除了利用导航状态条6010返回导航应用程序(即,使得导航应用程序进入前台)之外,在一些实施例中,导航条具有其它功能。例如,导航状态条6010在一些实施例中用于在导航应用程序本身仍在后台时提供导航指令(例如,逐向指引)。在其它实施例中,导航状态条在各种时间由提供指令的导航指令条替换。
图61概念性地例示用于在导航应用程序正在后台运行时提供指引的一些实施例的过程6100。图61将会相对于首先简要描述的图62来描述。图62例示一些实施例的用户界面,其中当导航应用程序正在后台运行并且另一个应用程序正在前台运行时给出导航指令。该图示出六个阶段6201-6206。第一阶段包括状态条6280、导航状态条6210和前台应用程序6215。剩余阶段6202-6206示出在设备向前移动并且随后通过导航点(本文有时称为操纵,一些导航点表示道路中的路口)时对导航状态条6210的改变(即,导航状态条6210由导航指令条6220-6250的替换)。
如图61中所示,过程6100在前台显示(在6105)导航应用程序。该过程随后确定(在6110)是否已经激活控件(例如,图60的按钮6015)。如果没有激活,该过程保持在前台显示导航应用程序直到控件被激活(或在一些实施例中,直到一些其它控件被激活或设备进入睡眠模式)。当控件被激活时,该过程在前台显示(在6115)应用程序启动模式,并且显示(也在6115)导航状态条6210以指示导航正在后台运行。这在图62中的阶段6201中示出。
本领域的普通技术人员将会理解,在一些实施例中,导航条(导航指令条和/或导航状态条)显现在一些或所有前台应用程序而非仅仅应用程序启动应用程序的顶部处。在一些实施例中,一个或多个控件的激活使得启动应用程序之外的应用程序移动至前台。此外,在一些实施例中,在一个前台应用程序和另一个之间进行切换之后,而非仅仅在从导航应用程序直接切换至特定前台应用程序时,导航条继续显现在前台应用程序的上方。正显示在另一个应用程序上方的导航条的示例在下述图63中示出。
过程6100随后确定(在6120)用户设备是否在导航点(例如,在路点转弯处)附近。当应用程序确定(在6120)设备并不在导航点附近时,显示保持如图62的阶段6201中所示。
阶段6201示出设备在导航应用程序作为后台应用程序活动并且前台应用程序6215是应用程序启动屏幕时的状态。尚未关闭导航应用程序,但替代地,已经使导航应用程序在后台开启。导航应用程序正在后台开启的阶段6201中的可见指示是导航状态条6210。另外,一些实施例在导航正在后台运行时以与状态条6280的通常颜色不同的颜色来显示状态条6280。在一些实施例中,状态条6280和导航状态条6210以不同色调的绿色示出。在一些实施例中,状态条和导航条之一或二者的颜色或色调随时间而改变,以便注意以下事实:导航应用程序正在后台执行。
在这个阶段6201,设备(和携带设备的人或车辆)远离下一个导航点。一些实施例的应用程序(包括图62中例示的应用程序)并不在应用程序正在后台运行的整个时间跨度上显示转弯信息。在一些此类实施例中,当设备并不在导航点附近时(例如,当没有转弯迫近时),设备在导航状态条6210中显示“触摸查看导航”或“触摸返回导航”、或指示选择导航条将使导航应用程序进入前台的一些其它消息。在其它实施例中,无论设备是否在导航点附近,导航指令都被显示。
重新参见图61,当过程6100确定(在6120)设备正在接近下一个导航点时,该过程将导航状态条6210改变(在6125)成显示新导航指令的导航指令条6220。这在图62的阶段6202中示出。在阶段6202中,设备正在接近导航点(500英尺处的左转)。在这个阶段6202中,导航指令条6220显示导航指令,导航指令包括指示左转的箭头以及距左转的距离(500英尺)。过程6100随后显示(在6130)倒计数(以英尺计)直到过程6100确定(在6135)已通过导航点。
在一些实施例中,阶段6201和6202中的导航条被视为是偶然占据屏幕上的类似地方的独立实体。在此类实施例中,阶段6201的导航条可表征为“导航状态条”,而在阶段6202中具有导航指令的导航条可表征为“导航指令条”或“导航指引条”。在一些实施例中,导航指令条6220比导航状态条6210厚(例如,两倍厚度或更多倍厚度)并且盖住状态条。在其它实施例中,当导航条显示导航指引时,导航条被视为是扩展(例如,扩展到其先前厚度的两倍或更多倍)以盖住或替换状态条的单个实体。
在阶段6203和6204中,随着设备移动得更靠近导航点,在导航指令条6230(100英尺)和6240(0英尺)中的导航指令中倒计数距导航点的距离。在阶段6204中,指令已开始切换到下一指令。
在阶段6204中,实际转弯已经发生。导航指令条6250(在阶段6205中示出)中的导航指令正在以用于下一个导航点的指令替换导航指令条6240中的先前导航点指令。在包括例示的实施例的一些实施例中,导航指令以模拟具有多个面的翻动标志的形式来切换。因此,在指令6240开始翻动时,指令6240示出指令“0英尺左转”。在一些实施例中,标志上翻;在一些实施例中,标志下翻。在其它实施例中,设备使用其它转变方法来移除导航指令条6240中的旧导航指令,并且以导航指令条6250中的新导航指令来替换旧导航指令(在阶段6205中)。例如,一些实施例在旧指令向上、向下或向一旁滑动时模拟新指令在相同方向上的滑动。其它实施例模拟使新指令在旧指令之上滑动。其它实施例只是使得旧指令消失来由新指令替换。
当到达导航点时,过程6100确定(在6140)是否已经到达最终目标。如果已经到达最终目标,导航结束(这在下述图64中例示)。如果尚未到达最终目标,那么存在新导航点要显示(在6145)。这在图62的阶段6205中示出。
阶段6205紧接在已经完成左转之后发生。导航指令条6250中的导航指令已经完全替换导航指令条6240中的导航指令。导航指令条6250中的新导航指令指示距下一个导航点的有效距离。如上所述,一些设备的应用程序被编程主要在设备位于导航点附近时而非任何时间显示导航指令。因此,在导航指令条6250中显示下一导航指令持续预设时段之后(或在一些实施例中,在行进预设距离之后),在一些实施例中,应用程序在阶段6206中返回示出导航状态条6210(并且过程6100返回操作6115)。然而,当确定(在图61的6150)新导航点在附近时,过程6100立即开始倒计数(在6130)距下一个导航点的距离。不同实施例的不同应用程序使用各种不同距离来确定是否示出导航状态条6210或导航指令(例如,导航指令条6220中的指令)。在一些实施例中,应用程序在1英里、或半英里、或四分之一英里、或1000英尺、或750英尺、或500英尺、或250英尺、或一些其它距离处切换指令。
图63例示显示在应用程序的顶部处的导航条。该图表明,导航条显示在除应用程序启动应用程序之外的应用程序中。该图以阶段6301-6303示出。在阶段6301中,导航应用程序处于前台,并且用户已经输入命令(例如,双按按钮6310)以调出当前在后台运行的应用程序的列表。在阶段6302中,设备正在显示一组图标6320,这组图标6320表示当前处于后台运行的应用程序。在一些实施例中,这组图标6320向上推动在前台的应用程序的UI,如图所示。在其它实施例中,在前台的应用程序的UI被这组图标6320覆盖,而非是被向上推动。
第二阶段6302还示出:用户选择图标6325,图标6325命令由图标6325所表示的应用程序(例如,web浏览器)移至前台并且导航应用程序移至后台。本领域的普通技术人员将会理解,这仅仅是一些实施例将导航应用程序切换至后台并且将另一个应用程序切换至前台的许多方式之一。例如,用户可切换至应用程序启动视图并且启动应用程序,该应用程序随后将替换应用程序启动视图作为前台应用程序。
在阶段6303中示出设备切换到前台的web浏览器6330。导航指令条6335在屏幕的顶部处,导航指令条6335指示导航应用程序正在后台运行并且指引用户在50英尺处右转。在一些实施例中,当导航应用程序当前并未提供指引时,状态条和导航状态条(例如,如图60中所示)将会显现。
在遵循由设备示出的导航指令之后,用户将会到达他的预期目标。图64例示一些实施例中的设备6400的用户界面,其中在导航应用程序正在另一个应用程序的后台运行时,设备到达其目标。该图示出三个阶段6401-6403。第一阶段6401示出导航指令条6410和前台应用程序6440。如图所示,导航指令条6410中的指令指示“直走50英尺”。
阶段6402例示接近目标时的用户设备6400。如这个阶段中所示,导航指令条6410指示“目标位于左侧”。阶段6403例示到达目标后的用户设备6400。如图所示,阶段6401和6402的导航指令条6410从屏幕移除,以便指示完成导航指令并且状态条6480返回屏幕。在一些实施例中,导航应用程序保持在后台打开,但在这个阶段6403未视觉地显示出来。在其它实施例中,导航应用程序在这个阶段6403自行关闭。在其它实施例中,设备在到达目标之后继续显示导航条。此外,一些实施例的应用程序辨识一个位置作为车辆导航的终点,并且指示其余路程必须步行完成,这是导航应用程序所指引的(例如,在导航指令条中)。
阶段6403还示出图标6490尚未移动。然而,在其它实施例中,当导航指令条从屏幕移除时,图标6490可上移以占据在一些实施例中用于由导航指令条6410在先前阶段占据的空间的至少一部分。
如上所述,在一些实施例中,导航状态条和导航指令条被视为不同组件。上述图示出导航状态条位于状态条的下方。然而,在一些实施例中,当导航应用程序正在后台运行时,状态条本身被替换为导航横幅。在一些实施例中,这个导航横幅是常规状态条高度的两倍。一些实施例的导航横幅显示一些或所有与其所替换的状态条相同的信息。在一些实施例中,导航横幅在设备未在导航点附近时显示该信息,并且在设备正位于导航点附近时并不显示该信息。当设备正位于导航点附近时,一些或所有状态信息被移除,使得可更清楚地看到与将到来的导航点相关的指引。
执行一些实施例的导航应用程序的设备包括电话设备。在一些实施例中,当电话呼叫正由设备处理并且导航应用程序正在后台运行时,关于电话呼叫的数据(例如,呼叫时间)以电话呼叫状态条替换导航状态条或指令条。
图65例示呼叫状态条和导航指令条之间的交互。该图以三个阶段6501-6503示出。在阶段6501中,呼叫正在继续,同时设备正在显示应用程序启动视图。呼叫是由状态条6510下方的呼叫状态条6515指示。在一些实施例中,呼叫状态条指示呼叫正在进行,包含呼叫的持续时间的指示器,并且允许用户选择呼叫状态条以返回通常用于处理呼叫的屏幕视图。在一些实施例中,初始状态条6510(示出电池寿命等)转变成指示呼叫正在进行的颜色(例如,红色或绿色)。在一些实施例中,电话呼叫状态条6515的颜色与初始状态条在呼叫期间所显示的颜色类似(例如,都是红色调或都是绿色调)。
在一些实施例中,导航指令条6520在一些情况下重现并且替换电话数据。在阶段6502中,设备位于导航点附近。因此,导航指令条6520替换呼叫状态条6515和状态条6510。在通过导航点之后,重新显示呼叫状态条6515和状态条6510,如阶段6503中所示。在图65的例示实施例中,一通过导航点,就重新显示呼叫状态条。然而,在一些实施例中,直到在导航指令条6520中显示下一导航指令之后,才重新显示电话呼叫状态条。
阶段6402和6403示出图标6490尚未移动。然而,在其它实施例中,图标可上移或下移以占据不同空间,这取决于呼叫状态条6515和导航指令条6520的存在。
B.设备锁定时的指令
1.布局
在一些实施例中,具有多个功能的设备(例如,运行多个应用程序的移动电话)可从各种应用程序被置于锁定模式。在一些实施例中,存在将设备置于锁定模式的多种方式。一些实施例的锁定模式是以下模式:其中大多数的控件被禁用并且具有有限功能,直到设备解除锁定。在一些实施例中,这有益于防止用户意外地过早结束导航模式。在一些实施例中,解锁设备要求屏幕的特定部分上的特定手势命令。
一些设备具有关闭屏幕和/或将设备置于锁定模式的按钮。一些设备具有在用户命令之间已经经过一定时间之后关闭屏幕和/或将设备置于锁定模式的超时功能。无论应用程序进入锁定模式的方式如何,大多数此类设备离开锁定模式时在前台运行的应用程序与在进入锁定模式时在前台运行的应用程序相同。然而,在一些实施例的设备中,无论设备锁定时是哪个应用程序(或应用程序启动器)正在前台运行,如果导航应用程序正在后台运行,那么应用程序从锁定模式直接返回到导航应用程序。
图66例示进入锁定模式时导航应用程序在后台运行并且离开锁定模式时导航应用程序在前台运行的一些实施例的设备6600。该图以四个阶段6601-6604示出设备6600。在阶段6601中,应用程序启动器6620在前台,并且导航应用程序正在后台运行。正在后台运行的导航应用程序由屏幕的顶部处的导航条6610指示,导航条6610正好位于状态条6615下方并且位于前台应用程序启动器6620上方。如图所示,在阶段6601中,用户推动控件6690以锁定屏幕。
在阶段6602中,设备处于锁定模式(如由屏幕上的解锁滑块6630所指示)。在这个阶段中,地图6640示出在锁定屏幕上并且逐向指引示出在信息条6650上。
在阶段6603中,用户已经开始向右滑动解锁滑块6630以便解锁设备。在这个阶段中,地图6640显示在屏幕上并且逐向导航指引示出在信息条6650上。在一些实施例(未示出)中,当滑块始终向右移动时,用户就被要求输入密码以便解锁屏幕。在用户成功输入密码之后,屏幕解除锁定。在一些实施例中,在锁定模式下,在一些情况下并不示出指引和/或地图。例如,用于回答来电的界面可在呼叫进入设备时显示,并且用于处理呼叫的界面可在呼叫正在进行时显示。这种界面可覆写指引在信息条中的显示、地图的显示、或两者。类似地,在一些实施例中,其它显示视图可替换信息条、地图、或两者,即使导航应用程序仍在设备上运行也是如此。
然而,在屏幕解除锁定之后,导航地图6640留在前台(而非显示屏幕锁定之前在前台运行的应用程序6620)。如阶段6604中所示,导航应用程序在前台以全屏显现。在这个阶段中,屏幕解除锁定,并且导航指令6660和地图6640显示在屏幕上。在一些实施例中,导航应用程序包括与锁定屏幕视图中的地图6640在相同位置中的地图6640。因此,在一些实施例中,甚至对于在从锁定模式返回时通常使用锁定屏幕视图和其它视图之间的转变(例如,新屏幕视图从屏幕的中心划变或扩展开)的设备,在从阶段6603到阶段6604的转变中的设备将地图留在适当位置并且切换屏幕中的其它元素。即,在从阶段6603到阶段6604的转变期间,在导航条6610和解锁滑块6630消失并且替代地导航指令6660显现时,恒定地显示地图。如阶段6604所示,设备已从锁定模式直接返回导航应用程序,即使在设备锁定之前在阶段6601中导航应用程序正在后台而非在前台运行。
图67例示进入锁定模式时导航应用程序在前台运行并且离开锁定模式时导航应用程序在前台运行的一些实施例的设备6700。该图以四个阶段6701-6704示出设备。在阶段6701中,导航应用程序正在前台运行,并且地图6740和导航指令6760显示在屏幕上。如图所示,用户推动控件6790以锁定屏幕。
在阶段6702中,设备被置于锁定模式(如由屏幕上的解锁滑块6730所指示)。在这个阶段中,地图6740示出在锁定屏幕上并且逐向指引示出在信息条6750上。
在阶段6703中,用户已经开始向右滑动解锁滑块6730以便解锁设备。在这个阶段中,地图6740显示在屏幕上并且逐向导航指引示出在信息条6750上。当滑块始终向右移动时,用户被提示(未示出)输入密码以便解锁屏幕。在用户成功输入密码之后,屏幕解除锁定。如以上相对于66所述,在一些实施例中,在锁定模式下,在一些情况下并不示出指引和/或地图。例如,用于回答来电的界面在呼叫进入设备时显示,并且用于处理呼叫的界面在呼叫正在进行时显示。这种界面覆写指引在信息条中的显示、地图的显示、或两者。类似地,在一些实施例中,其它显示视图可替换信息条、地图、或两者,即使导航应用程序仍在设备上运行也是如此。
如阶段6704中所示,导航应用程序在前台显现。在这个阶段中,屏幕解除锁定,并且地图6740和导航指令6760显示在屏幕上。在一些实施例中,导航应用程序包括与在锁定屏幕视图中处于相同位置中的相同地图6740。因此,在一些实施例中,甚至对于在从锁定模式返回时将会具有转变屏幕(例如,新屏幕视图从中心划变或扩展开)的设备,在从阶段6703到阶段6704的转变中的设备将地图留在适当位置,并且在一些实施例中,切换屏幕中的其它元素。即,在从阶段6703到阶段6704的转变期间,在信息条6750和解锁滑块6730消失并且导航指令6760显现在显示上时,恒定地显示地图。如阶段6704所示,设备已从锁定模式返回导航应用程序。
在先前两图中,用户推动控件以进入锁定模式。在一些实施例中,用户推动这种控件以关闭显示。稍后,当通过再次按下相同控件或通过按下另一个控件来重新打开显示时,设备随后在显示再次打开时示出锁定模式。类似地,在一些实施例中,设备具有超时功能,超时功能使显示在设备未接收命令的情况下已经经过某一特定的时间量之后关闭。在一些实施例中,当显示在这种锁定之后打开时,设备处于锁定模式。
除了(或在一些实施例中替代)在其它应用程序在前台时在导航条上给出导航指令,一些实施例的导航应用程序还在设备处于锁定模式时提供导航指令。图68例示本发明的一些实施例中的在锁定设备上给出指引的导航应用程序。该图以四个阶段6801-6804示出。在阶段6801中,设备屏幕正在显示状态条6880、导航条6810、地图6812、位置指示器6814和解锁滑块6816。本领域的普通技术人员将会理解,其它配置和控件在一些实施例的范围内是可能的。
在阶段6801中,设备靠近下一导航点,因此,导航条6810显示在500英尺处右转的指令。在一些实施例(包括例示的实施例)中,导航条6810是半透的,从而允许透过导航条6810看到地图6812的特征。位置指示器6814相对于地图6812的特征指示设备的位置。地图本身包括设备所在的道路(Curb路)以及导航应用程序指引用户朝向的道路(T路)。还显示:暗色线条6818,示出所指引的设备行程;以及较淡的线条6819,示出设备沿导航应用程序所选择的路线的先前位置。解锁滑块6816在激活时解锁设备。然而,在此图中并未使用解锁滑块6816。
当设备到达距导航点250英尺的点时,导航条改变指令,如在阶段6802中的导航条6820中所显示。位置指示器6814处于相同位置,但是地图6812已经相对于位置指示器6814下移。地图相对于位置指示器6814的新位置是导航应用程序示出设备已经移动得更靠近导航点的另一种方式。
类似地,在阶段6803中,导航条6830指示距导航点仅100英尺,并且位置指示器6814更靠近地图上的转弯。最终,在阶段6804中,设备已经绕过拐角,并且导航条6840正在显示下一导航指令。虽然并未在此图中示出导航指令之间的转变,但在一些实施例中,转变类似于所描述的后台模式下的转变(其中一个指令看似上翻,好像在标志的一侧那样,并且由看上去在标志的另一侧的另一个指令替换)。在其它实施例中,使用其它转变方法来移除旧导航指令6830并且用新导航指令6840来替换旧导航指令6830(在阶段6804中)。例如,一些实施例在旧指令向上或向一旁滑动时模拟新指令在相同方向上的滑动。其它实施例模拟使新指令在旧指令之上滑动。其它实施例只是使得旧指令消失并且替换成新指令。
新指令不是已经做出的转弯的唯一指示。地图6812已经旋转,使得设备所行进的方向(沿T路)在地图6812上被示出为向上。地图6812上的较淡的线条6819现在包括设备刚刚已转过的拐角。
虽然位置指示器6814在图68中被示出为始终具有相同尺寸,但在一些实施例中,在锁定模式和常规导航模式之一或二者下,根据缩放水平,位置指示器具有不同尺寸。例如,在一些实施例中,地图放大越多,位置指示器就变得越大。类似地,位置指示器6814始终被示出为具有箭头。然而,在一些实施例中,在一些情况下并不示出箭头。例如,在一些实施例中,当设备在建筑物(或以其它方式偏离所有道路)中而非在道路上时,并不示出箭头。位置指示器6814在图68中被示出为不透明的,然而在一些实施例中,位置指示器是半透的、半透明的、或透明的,以便示出在其“下面”的道路。
当在锁定模式下操作时,一些实施例的导航应用程序提供指引,直到设备到达其目标。图69例示当设备到达其目标时的一些实施例的锁定模式视图。该图以四个阶段6901-6904示出。在阶段6901中,地图6940示出在当前位置指示器6914后方的较淡的线条6919。在位置指示器6914前方,较暗的线条6918在指示目标的圆圈6912处结束。根据导航条6910,目标位于前方50英尺处。
在阶段6902中,一旦设备到达其目标,导航条6920就示出目标位于右侧,较暗的线条6918不会再示出在地图6940上。在一些实施例中,设备随后显示设备已“到达”的消息,如阶段6903中所示。随后在阶段6904中,当导航应用程序并不提供导航指令时,导航应用程序将锁定屏幕释放成其任何默认配置的情况。在例示的实施例中,默认配置包括时间和日期指示器6930。
此图以2D地图例示锁定模式视图。然而,一些实施例的地图绘制应用程序可在以3D形式示出地图时在锁定模式下操作。
2.通知管理
在一些实施例中,设备向它们的用户通知将到来的消息和其它值得注意的事件。甚至在此类设备处于锁定模式时,一些此类设备仍可显示通知。然而,使通知留在屏幕上持续延长的时间段可能从也显示在屏幕上的导航指令分心。因此,一些实施例在屏幕上简要地显示通知,并且随后使得通知可访问但不可见。在一些实施例中,存在指示存在通知项目等待阅读的可见但不突出的标志。图70例示一些实施例的锁定视图通知系统。该系统以四个阶段7001-7004示出。
在阶段7001中,导航条7010正在屏幕的顶部处的状态条7080下方显示导航指令。通知消息7012在地图7040之上显示在屏幕上,用于指示已经接收文本消息。未在例示的实施例中显示实际文本消息,但是显示实际文本消息的实施例在本发明的范围内。一些实施例在通知消息7012中显示文本消息发送者的名字(如果已知的话)或文本消息所来自的电话号码。
一些实施例的应用程序在通知消失而使完整地图7040再次可见之前显示通知持续预设长度的时间。一些应用程序显示通知持续少于5秒,一些持续5秒,并且一些持续超过5秒。一旦通知消失,抽屉控件7022在阶段7002中在导航条7010中显现。一些实施例的应用程序、包括所例示的应用程序允许抽屉控件7022扩展(例如,通过在抽屉控件上向下拖动的触摸手势),以便打开所接收的通知项目的列表。其它实施例的应用程序允许轻击抽屉控件以打开列表,或双击抽屉控件以打开列表。类似地,其它应用程序允许通过其它手段(例如,选择,诸如对相关联的光标控制设备的点击)来选择抽屉控件。
在例示的实施例中,抽屉7034在阶段7003中被视为是打开的。在这个阶段7003中,抽屉(在这种情况下,包括仅仅一个文本消息7032和一个未接呼叫7033)以列表形式示出,该列表从导航条7010的底部向解锁滑块7015的顶部覆盖地图。然而,在一些实施例中,抽屉是半透的、半透明的、或透明的,从而允许透过列表看到地图。在一些实施例中,抽屉仅仅部分地覆盖地图7040(例如,覆盖地图的一半,或仅覆盖地图的示出抽屉中的所有文本消息和其它通知项目所需要的那部分)。在一些实施例中,如果通常将会发送给抽屉的新消息或通知在抽屉打开时到达,消息将立刻被添加至抽屉(在各种实施例中,在显示或不显示弹出通知的情况下)。
在一些实施例中,当消息列表太长以致无法配合在屏幕上时,如果必要的话,列表可向上和向下滚动。在一些实施例中,当用户结束查看消息列表时,用户可通过激活控件来关上抽屉(例如,硬件或屏幕上控件,诸如关闭显示的控件)。在一些实施例中,抽屉将会保持打开直到用户关闭显示,并且随后再次重新打开。在一些实施例中,控件还可包括通过手势命令诸如在列表上或在屏幕上的其它位置上的轻击、双击或滑动手势(例如,抽屉的一部分或全部作为控件情况下的向上滑动手势)激活的任何数量的控件。在一些实施例中,控件还可包括鼠标或其它光标控制设备的按钮或其它组件等。
另外,除了或替代使得控件关上抽屉,一些实施例显示打开的抽屉,在打开的抽屉消失而使得完整地图7040再次可见之前持续变化长度的时间,如阶段7004中所示。阶段7004包括抽屉控件7022。然而,在一些实施例中,在抽屉7034关上之后,抽屉控件7022直到新消息到达才被示出。
假设导航仍是活动的,在关上抽屉之后,如果另一文本消息或通知到达,阶段7001-7004以新消息重复。在一些实施例中,阶段7004只有在用户关上抽屉时发生。在一些实施例中,如果抽屉保持打开,那么显示在阶段7003中保持。此外,抽屉打开阶段7003可不是紧随阶段7001和7002。在一些实施例中,如果用户并未打开抽屉,那么在新消息通知显现时显示抽屉控件7022的情况下,阶段7001-7002在多个消息中的每个消息进入并且抽屉保持关上时重复。
在一些情况下,用户可决定在打开抽屉7034之前解锁设备。在一些实施例中,设备在具有通知情况下退出锁定模式的正常行为是在屏幕上列出通知。然而,在一些实施例中,当导航应用程序正在运行时,打开进入导航应用程序比显示通知消息优先。因此,那些实施例的设备解锁并且打开进入导航应用程序,而非打开进入通知消息的列表。在一些此类实施例中,用户可选择在打开导航应用程序之后打开通知消息的列表。图71例示本发明的一些实施例中的在解锁设备之后查看通知消息。该图以六个阶段7101-7106示出。
在阶段7101中,导航条7110正在屏幕的顶部处的状态条7180下方显示导航指令。通知消息7112在地图7140之上显示在屏幕上,用于指示已经接收文本消息。未在例示的实施例中显示实际文本消息,但是显示实际文本消息的实施例在本发明的范围内。一些实施例在通知消息7112中显示发送者的名字、发送者的电话号码、或两者。不同实施例的应用程序显示通知,在通知消失而使得完整地图7140再次可见之前持续变化长度的时间。一些应用程序显示通知持续少于5秒,一些持续5秒,并且一些持续超过5秒。
一旦通知消失,抽屉控件7122在阶段7102中在导航条7110中显现。阶段7101与图70的阶段7001相同。然而,在阶段7102中,用户不是打开抽屉7122,而是利用解锁滑块7116解锁设备。用户已经利用正在后台运行的导航应用程序解锁设备,因此在阶段7103中,导航应用程序在前台显现。如图所示,导航应用程序要比显示通知消息优先。
在一些实施例中,导航应用程序并不示出抽屉控件。然而,通过向下拖动屏幕的上死点(如阶段7104中所示),用户可使抽屉7144下来(如阶段7105中所示)。在一些实施例中,当手指向下拖动抽屉7144时,抽屉控件7122在正在拖动的手指下方显现。在其它实施例中,当导航应用程序在前台时,必须采用多次拖动。例如,在一些实施例中,屏幕的顶部处的一个拖动手势用于暴露抽屉控件7122,并且抽屉控件7122上的独立拖动手势用于打开抽屉。阶段7105示出抽屉7144完全延伸并且覆盖整个屏幕。文本消息7152在屏幕的顶部处显现。
在一些实施例中,抽屉保持打开,直到用户关上抽屉(此时,导航应用程序再次显现)或锁定设备。在一些实施例中,抽屉可通过向上拉动抽屉控件7122来关上。在其它实施例中,抽屉无法通过向上拉动抽屉控件7122来关上,但可通过一些其它控件(例如,按钮或手势命令)来关上。例如,在一些实施例中,可例如通过激活控件7190来锁定设备,这也关上抽屉。一些实施例还在预先确定的时间量之后自动关上抽屉。在一些实施例中,在打开抽屉之后,处于锁定模式或解锁模式下,一旦抽屉被关上,抽屉就清空并且不再可从锁定模式视图访问,如阶段7106中所示,其中抽屉控件7122不再呈现。即,将仅在接收新通知时再次显示抽屉控件7122。然而,在其它实施例中,抽屉控件7122不被移除,仅在采用关上抽屉的某些方法时被移除,或在解锁模式下打开抽屉的情况下而不是在锁定模式下打开抽屉的情况下被移除。
在一些实施例中,抽屉在独立区域中显示不同类型的消息。例如,一些实施例在不同于“未接呼叫”消息的独立区域中显示文本消息。在一些实施例中,当抽屉在解锁模式下被打开时,抽屉在独立区域中显示不同类型的消息,但是锁定模式下的抽屉不在独立区域中显示不同类型的消息。在其它实施例中,当抽屉在解锁模式下被打开时,抽屉在独立区域中显示不同类型的消息,并且锁定模式下的抽屉也在独立区域中显示不同类型的消息。在其它实施例中,锁定模式下的抽屉针对不同消息类型使用独立区域,并且解锁模式下的抽屉并不如此。在其它实施例中,抽屉也不区分消息类型。
3.动态打开
功率节省是应用程序的一些实施例的特征。在一些实施例中,在锁定模式下操作的导航应用程序仅在设备接近导航点或接收通知时打开屏幕。图72例示本发明的一些实施例中的用于在接近导航点时打开设备屏幕的过程7200。图72将会相对于首先简要描述的图73来描述。图73例示本发明的一些实施例中的在导航应用程序在后台运行时未向设备给出命令时设备所经历的多个阶段。图73以从7301至7306的六个阶段来例示。将在描述图72期间在适当地方描述各个阶段。
图72的过程7200在屏幕关闭之前通过利用在后台运行的导航应用程序来显示(在7205)应用程序开始。图73的阶段7301例示设备的锁定前状态。这个阶段7301包括前台应用程序7312(应用程序启动视图),其中导航条7310在屏幕的顶部处的状态条7380下方指示导航应用程序正在后台运行。
在一些实施例中,当设备在预先指定的时间量(例如,5分钟、15分钟等)内未接收到命令时,设备关闭屏幕并且进入锁定模式。该过程确定(在7210)任何控件是否已经在针对锁定设备并且关闭屏幕而预先指定的时间量内被激活。如果任何控件(不是立即关闭显示和/或锁定设备的控件)已经被激活,那么设备重置其要关闭显示并且进入锁定模式的倒计数。
当该过程确定已经经过足够时间时,该过程关闭屏幕(在7215)。在一些实施例中,替代或除了超时屏幕去激活,存在用户可选择以将设备置于锁定模式的控件(例如,按钮)。在一些实施例中,超时屏幕去激活在一些应用程序正在运行时而不是在其它应用程序正在运行时发生。例如,在一些实施例中,当导航应用程序正在前台运行时,设备不会在预设时间之后关闭屏幕。此外,在一些实施例中,当导航应用程序正在后台运行时,设备也不超时。
操作7215在图73的阶段7302中例示。阶段7302示出屏幕是黑色,因为屏幕已经通过超时、控件或以某种其它方式关闭。当屏幕关闭并且设备朝向下一导航点行进时,过程7200重复确定(在7220)设备是否在下一导航点附近。如果设备不在下一导航点附近,设备将会继续检查设备是否在导航点附近。“附近”在不同实施例的应用程序中意指不同距离。
在不同实施例中,当设备距导航点1000英尺、或500英尺、或250英尺、或任何其它特定距离时,设备确定它在导航点附近。一旦过程7200确定(在7220)设备在导航点附近,该过程就打开(在7225)环境光线传感器。在一些实施例中,环境光线传感器是设备的摄像机的一部分。在其它实施例中,环境光线传感器不是设备的摄像机的一部分。在一些实施例中,环境光线传感器始终打开。在一些实施例中,环境光线传感器是无需供电以运作的无源元件。环境光线传感器确定设备周围存在多少光线。如果存在大量光线,那么屏幕将必须以高亮度水平打开,以便在现有光线可见。然而,如果存在低量环境光线,那么屏幕能以较暗水平打开并且仍亮到足以在较弱环境光线下可见。
一旦确定光线水平,过程7200就根据环境光线传感器所检测的环境光线水平来以一定亮度水平打开(在7230)屏幕。屏幕随后显示(在7235)到下一导航点的倒计数。这在图73的阶段7303中例示。该图示出导航条7330,导航条7330具有指示右转的箭头和在1000英尺处右转的指令。该过程随后确定(在7240)是否已经过导航点。如果尚未经过导航点,那么过程7200返回操作7235。该过程随后继续显示到下一导航点的倒计数。倒计数的一部分在图73中的阶段7304中示出。在阶段7304中,导航条7340指示距右转还有200英尺。一旦设备经过导航点(在这种情况下,进行右转),过程7200就确定(在7245)设备是否位于其目标处。如果设备位于其目标处,那么导航过程结束。如果设备不在其目标处,那么该过程显示(在7250)下一导航指令。这在图73的阶段7305中例示。在这个阶段中,导航条7350显示直走2.8英里。
如果过程7200确定(在7255)下一导航点在附近,那么该过程返回操作7235并且对下一导航点进行倒计数。然而,这不是图73中的情况。如果该过程确定(在7255)设备并不在下一导航点附近,那么过程7200关闭屏幕(在7215)。这在阶段7306中示出,阶段7306示出黑屏。本领域的普通技术人员将会理解,在一些实施例中,图73的阶段7302和7306中的词语“功率节省模式”意指概念性地例示显示已关闭并且这些词语在功率节省模式期间并不物理地显示在屏幕上。
上述附图示出设备在其位于预先确定的导航点附近时打开显示,并且在其并不位于预设导航点附近时关闭显示。然而,在一些实施例中,如果用户偏离规定路线(例如,用户错误转弯),设备也打开显示。在一些此类实施例中,设备显示“重新规划路线”消息,直到设备已计算出新路线。在一些实施例中,设备随后显示下一导航指令,并且随后关闭显示,除非下一导航点在阈值距离内。
以与一些实施例的导航应用程序在设备接近导航点时在锁定模式下打开屏幕的方式类似的方式,一些实施例的设备在导航应用程序正在运行时接收到通知时打开屏幕。图74概念性地例示用于在接收到通知消息时打开屏幕的一些实施例的过程7400。过程7400将会参考先前所述图70来描述。过程7400以关闭屏幕(在7405)开始。可出于相对于图72讨论的任何原因关闭屏幕。该过程随后等待(在7410)直到它接收到通知。当过程7400接收通知时,该过程打开(在7415)环境光线传感器(如以上在图72的操作7225中所述)。该过程随后根据环境光线传感器所检测的环境光线水平以一定亮度水平打开(在7420)屏幕。该过程随后显示(在7425)通知。这在图70中的阶段7001中示出为弹出消息7012。该过程随后将通知放在(在7430)如相对于图70的阶段7002所述的抽屉中。
该过程随后确定(在7435)是否已经在期限之前打开抽屉(例如,通过用户滑动抽屉控件7022)。如果在期限内尚未打开抽屉,那么该过程再次关闭屏幕(在7405)。如果已经在期限之前打开抽屉,那么消息被显示(在7440),例如,如图70中所示(如阶段7003,其中显示消息7032)。该过程随后确定(在7445)是否已经关上抽屉。如果已经关上抽屉,那么该过程返回操作7405并且在超时时段之后关闭屏幕。即,在一些实施例的应用程序中,在关闭屏幕之前,应用程序在抽屉关闭之后等待一定时间量。
在一些实施例中,如果过程7400确定(在7445)抽屉保持打开,那么该过程确定(在7450)是否已经达到超时时段。如果尚未达到超时时段,那么该过程继续显示(在7440)消息。如果期限在由用户关上抽屉之前耗尽,那么该过程关闭屏幕(在7405)。在一些实施例中,如果用户正在向设备发送命令(例如,滚动通过消息),那么到期限的倒计数将不会开始,直到设备停止接收来自用户的命令。
本领域的普通技术人员将会理解,尽管单独描述图74的过程7400和图72的过程7200的流程图,但是在一些实施例中,它们同时进行并且在这些过程中的任一过程要求屏幕打开时屏幕将会打开。在一些情况下,当导航点变成在附近时,屏幕将会出于通知原因而已经打开。在这些情况中,屏幕不是如过程7200所指示那样打开(在7230),而是将只是保持打开,即使过程7400要求屏幕关闭(在7405)也是如此。类似地,在一些实施例中,过程7200和7400将会继续,直到设备解锁、或到达目标(如图72中的过程7200的操作7245中所示)。
如上所述,处于锁定模式下的设备具有数量有限的活动控件。然而,在一些实施例中,当锁定模式可操作时,锁定屏幕上的地图可通过在用户希望移动地图的方向上的手势命令来更大或更小程度地向一侧、向上和向下移动。在一些实施例中,当释放设备时,地图返回到其默认位置。
VI.免提导航
A.语音导航
除了以视觉形式提供信息并且通过各种基于触摸或基于运动的输入设备(例如,键盘、鼠标、操纵杆、触摸板、触敏屏等)接收输入和命令,一些实施例的导航应用程序支持并不要求用户的视觉注意和/或用户身体或手的物理移动的另选模式的用户交互。例如,在一些实施例中,导航应用程序包括交互式地图应用程序(或交互式导航应用程序),该应用程序以可听形式向用户提供信息(例如,像自然语言语音),并且接收言语形式的用户输入和命令(例如,像自然语言语音)。通过使交互式地图免除用户的视觉注意和物理移动,交互式地图允许用户在从交互式地图获得信息时参与其它活动(例如,驾驶、步行、调查周围环境或打包旅行)。另外,通过交互式地图的音频/言语用户接口,用户能够更容易地从交互式地图调用并且索取信息或援助(例如,一旦需要信息或援助),而不脱离用户的当前活动。
1.在锁定屏幕活动时访问交互式地图并且导航
在一些实施例中,移动设备实现锁定屏幕,从而防止访问移动设备上安装的各种应用程序,直到从用户接收到密码或其它输入。移动设备任选地允许用户以言语方式调用并且访问移动设备上安装的交互式地图,而无需解锁锁定屏幕。在一些实施例中,语音激活服务通过激活按钮或控件来发起。在其它实施例中,当在设备音频输入端处接收到的语音水平响于一定阈值(和/或由设备识别自然语言词语)时,语音激活服务自动激活。
在一些实施例中,当设备锁定屏幕活动时,设备接收请求访问交互式地图的语音输入。语音输入可为对指引的言语请求、对执行本地搜索(例如,对餐厅、加油站、住所等的搜索)的言语请求,或只是激活交互式地图的言语命令。响应于语音输入,设备通过音频输出和语音输入用户接口来使功能(例如,提供指引和执行搜索)的至少一个子集对用户可用,而无需去激活设备锁定屏幕。在一些实施例中,交互式地图响应于用户的语音输入而通过锁定屏幕提供仅音频输出。
在一些实施例中,在操作的仅音频模式下,禁用与交互式地图的基于触摸和基于键盘的交互。通过允许用户通过仅音频用户接口来直接从锁定屏幕访问交互式地图,使得交互式地图对用户来说更容易访问,而不会显著地危害用户设备的安全。在一些实施例中,响应于语音输入,连同音频输出(例如,向用户读出信息),在锁定屏幕上向用户提供视觉信息(例如,搜索结果的列表)。在一些实施例中,设备处理用户的语音输入,以便确定用户的身份并且确定是否应当允许对交互式地图的访问。
在一些实施例中,当未使用语音激活导航时,导航要求至少三个步骤:找到若干结果(搜索);示出对结果的指引或示出到单个目标地址的若干路线(示出概览);以及随后使用所选择的路线开始导航(示出逐向指引)。然而,利用语音激活导航,一些实施例预期免持交互并且利用单个搜索结果发起导航。为了有利于语音激活(或免持)导航,这些实施例仅显示一条路线(而非通常的若干路线)。
例如,交互式导航找到使用高速公路的短路线、使用另选高速公路的较长路线、以及不使用高速公路从当前位置到特定目标的路线。一些实施例在语音激活导航期间选择所找到的若干路线之一(例如,基于默认设定、用户偏好设定、过去用户偏好等),并且任选地显示路线的概览并等待路线加载。设想免持交互,单条路线被显示,并且显示转变成全屏逐向导航显示。如下所述,当搜索期间找到若干目标(例如,沿路线的若干加油站)时,在一些实施例中,语音激活服务使用列表读出机制来以顺序方式循环通过结果。
图75概念性地例示本发明的一些实施例中的用于执行与交互式地图的语音激活交互的过程7500。如图所示,该过程接收(在7505)开始与交互式地图的交互的语音命令。语音命令可以是诸如“去道奇体育场”的去目标的命令,“找到地中海餐厅”的开始搜索的命令、或“开始导航”的启动交互式地图的命令。
该过程随后将导航模式设定(在7510)成语音激活模式。该过程随后确定(在7515)设备锁定屏幕是否活动。如果是,该过程转到下所7540。否则,该过程加载(在7520)路线的概览。在一些实施例中,该过程仅显示一条路线(而非通常的若干路线),以便有利于语音激活(或免持)导航。在一些实施例中,当未使用语音激活导航时,导航要求至少三个步骤:找到若干结果(搜索);示出对结果的指引或示出到单个目标地址的若干路线(示出概览);以及随后使用所选择的路线开始导航(示出逐向指引)。然而,利用语音激活导航,一些实施例设想免持交互并且利用单个搜索结果发起导航。如以下参见图84和86进一步所述,一些实施例以成批方式循环通过若干搜索结果,以便允许用户选择搜索结果。在这些实施例中,在用户选择特定目标之后,将来自若干可能路线中的单条路线设定到所选择的目标。即使找到若干路线,这些实施例也仅显示一条路线,并且如果语音激活导航未在使用,将会显示所有找到的路线。
该过程随后从概览屏幕转变(在7525)成全屏逐向显示。该过程随后更新(在7530)屏幕,并且提供逐向音频和视觉指引。该过程随后确定(在7535)导航是否已经结束(例如,到达目标)。如果已经结束,该过程退出。否则,该过程转到所述7530。
图76例示本发明的一些实施例中的在锁定屏幕未活动时的用户设备7600。该图示出四个阶段7601-7604。如阶段7601中所示,用户激活语音激活导航(例如,通过触摸按钮7605),并且做出对导航至办公室的言语请求(如由箭头7610所示)。在阶段7602中,屏幕显示用户和语音激活服务之间的可听交互。在一些实施例中,语音激活服务提示(在这种情况下,“我能为您做些什么?”)并且用户的言语请求被转换成文本并且显示在屏幕上,以便向用户示出言语命令如何由语音激活服务解释。用户和语音激活服务之间的音频交互的显示有利于例如在嘈杂地方进行的通信。为了简化附图,在本说明书中描述的一些附图中,示出通信的转录本的屏幕(诸如阶段7602中的屏幕)并不针对用户和语音激活服务之间的每次通信示出。
另外,一些实施例在导航期间并不在屏幕上显示用户和语音激活服务之间的通信的转录本,使得地图和导航指引的显示不被中断。其它实施例将通信的转录本显示在相同屏幕上(例如,当显示导航屏幕时),而非使用独立屏幕、诸如阶段7602中示出的屏幕。
对言语导航命令的接收导致概览屏幕7615得以显示,如在阶段7603中所示。一些实施例在通过言语命令激活导航时仅显示一条路线7635,从而有利于免持导航。如图所示,路线是由两个标记或图针来辨识。一个标记7640辨识路线的起点,并且另一标记7645辨识路线的终点。在短延迟之后,显示转变成全屏逐向显示7620,如阶段7604中所示。语音激活导航服务继续提供可听指引(如箭头7625所示)以及视觉逐向指引(如箭头7630所示)。
重新参见图75,当该过程确定锁定屏幕活动时,该过程确定(在7540)选项是否被设定在屏幕锁定时进行导航。一些实施例提供用于允许在屏幕锁定时导航的用户可选选项。其它实施例在锁定屏幕活动时始终允许至少有限的导航功能。当选项并不允许在锁定屏幕活动时导航时,该过程退出。
否则,该过程确定(在7545)开始导航的音频命令是否被识别为授权用户。一些实施例使用语音识别来将针对音频命令所接收(在7505)的语音与来自设备的授权用户的语音样本进行比较,以便防止已经获得具有锁定屏幕的设备的未授权用户使用设备。并不对授权用户的语音进行校验的实施例绕过操作7545。如果未识别出语音,该过程结束。否则,该过程选择到目标的一条路线。如上所述,一些实施例仅显示到特定目标的一条路线(而非通常的若干路线),以便有利于语音激活(或免持)导航。在这些实施例中,即使找到若干路线,也仅显示一条路线,并且如果语音激活导航未在使用,将会显示所有找到的路线。当存在多于一个目标(例如,沿路线找到若干意大利餐厅)时,一些实施例(如在以下参见图84和86进一步描述)以成批方式循环通过若干搜索结果,以便允许用户选择搜索结果之一。在用户选择特定目标之后,将来自若干可能路线中的单条路线设定到所选择的目标。
随后,该过程确定(在7550)锁定屏幕情况下的导航是否只允许通过音频进行。如果是,该过程转到下述的7570。否则,该过程示出(在7555)使用导航功能、诸如提供指引和示出搜索结果的列表的至少一个子集在锁定屏幕中运行的导航。该过程还提供(在7560)可听信息,诸如逐向指引、向用户读出搜索信息等。
图77例示本发明的一些实施例中的锁定屏幕活动情况下的用户设备7700。该图以四个阶段7701-7704示出。在阶段7701中,屏幕被锁定。锁定屏幕要求(如由解锁滑块7705所示)解锁屏幕并且输入密码以解锁屏幕,以便访问不同应用程序。然而,用户设备允许用户以言语方式调用并且访问移动设备上安装的交互式地图,而无需解锁锁定屏幕。
如阶段7702中所示,用户激活语音激活导航(例如,通过触摸按钮7715),并且做出对导航至住宅的言语请求(如由箭头7710所示)。在阶段7703中,在屏幕上转录用户和语音激活服务之间的交互。在阶段7704中,语音激活服务利用交互式地图应用程序来显示其中显示单条路线7780的地图7720并且开始提供逐向导航指引。在一些实施例中,提供视觉指引(如信息横幅7770中所示)以及可听指令(如箭头7725所示)。一些实施例显示路线的概览(类似于上述屏幕7615),并且在短延迟之后,转变成在锁定屏幕中示出逐向指引的屏幕。其它实施例在锁定屏幕活动时并不示出路线概览,并且直接转变成逐向导航屏幕。另外,由于用户请求(即,回家)产生仅一个目标,路线在没有与用户的任何进一步交互的情况下显示。另一方面,当找到多于一个目标(例如,响应于对找到旅馆的请求)时,允许用户选择搜索结果之一,如以下参见图84、85A-85D和86所述。
重新参见图75,该过程随后确定(在7565)导航是否已经结束(例如,当到达目标或由用户停止导航时)。如果如此,该过程结束。否则,该过程转到上述7555。
当该过程仅允许通过音频进行时,该过程提供(在7570)可听信息,诸如逐向指引、向用户读出搜索信息等。该过程随后确定(在7575)导航是否已经结束(例如,当到达目标或由用户停止导航时)。如果如此,该过程结束。否则,该过程转到上述7570。
在一些实施例中,当锁定屏幕活动并且仅允许通过音频进行导航时,不允许所有其它用户输入,诸如通过基于触摸或基于运动的输入设备。图78概念性地例示本发明的一些实施例中的用于在激活锁定屏幕时提供语音激活导航的过程7800。在一些实施例中,结合语音激活服务所使用的其它过程利用此过程,以便确定是否应当仅允许语音激活命令。如图所示,该过程接收(在7805)开始导航的言语命令。该过程随后将导航模式设定(在7810)成语音激活模式。
该过程随后通过基于触摸或基于运动的输入设备接收(在7815)用户命令。该过程确定(在7820)锁定屏幕是否活动。如果不是,该过程响应用户命令(在7830)。随后,该过程退出。在过程7800与其它语音激活过程一起使用的实施例中,过程使控件返回(在7830)至其它语音激活过程,以便响应用户请求。当锁定屏幕活动时,该过程确定(在7825)是否仅允许通过音频进行导航。如果不是,该过程转到上述7830。否则,该过程任选地发出(在7835)短警告声(例如,哔声)。随后,该过程忽略(在7840)用户输入。随后,该过程退出。
2.使用自然语言话语的导航
在一些实施例中,允许用户通过自然语言语音查询诸如“我如何从时代广场到帝国大厦?”从交互式地图请求点到点的指引。交互式地图通过例如视觉地和/或可听地向用户提供点到点的指引来响应于用户的查询。当用户从一个位置行进到下一位置时,交互式地图任选地(例如,根据用户的言语请求)以可听形式向用户提供信息,诸如到目标的时间、距目标的距离以及当前位置。在一些实施例中,向用户提供来自交互式地图的可听响应,而无需去激活用户的设备的锁定屏幕。
在一些实施例中,当用户在各个位置间进行导航时,交互式地图提供子指引。子指引是基于用户的当前位置、计划路线、目标和/或用户对信息的请求来提供。例如,当沿路线驾驶到预先确定的目标时,用户可向交互式地图询问“我右侧的建筑物是什么?”、“我下面应走哪条路?”、“我在哪儿可以加油?”或“我在哪儿可找到意大利餐厅?”。对于这些问题中的每个,交互式地图考虑到用户的当前位置、用户当前所行走的路线和/或目标,并且提供概念性地相关的响应,诸如“那是轮渡大厦”、“在下一拐角处左转”、“这里是下五个出口附近的加油站的列表:......)”、或“这是您目标附近的意大利餐厅的列表......)”。
在一些实施例中,当用户正沿路线行进时,交互式地图处理来自用户的各种自然语言话语,并且响应于话语检索并呈现用户的当前导航状态。示例性导航状态信息包括关于以下各项的信息:用户的当前位置和用户的目标之间的距离、到达用户的目标的估计时间、用户的当前位置和沿当前或计划路线的下一路点(例如,下一转弯、下一出口或下一地标)之间的距离、到达沿当前或计划路线的下一路点的估计时间、对沿路线的下一路点的描述、对目标的描述等。
图79概念性地例示本发明的一些实施例中的用于在用户沿路线行进时接收自然语言话语并且检索和呈现用户的当前导航状态的过程7900。响应是基于用户设备的当前设定可听地和/或视觉地提供。如图所示,该过程接收(在7905)导航或地图相关的自然语言话语。该过程随后确定(在7907)话语是否具体地与导航相关(例如,我的下一转弯是什么)。如果不是,该过程转到下述7925。否则,当话语具体地与导航相关时,该过程确定(在7910)导航是否继续。一些实施例在导航开始时(例如,在选择目标、找到搜索结果、或通过命令明确开始导航时)设定指示器或标记。过程7900利用这个导航指示器来确定导航是否继续。在一些实施例中,这个指示器偏向语音识别,以便将言语命令与用于导航的自然语言短语的列表进行比较。一些实施例支持导航期间就基本体而言的多个免持问答任务,这些基本体例如像剩余时间、剩余距离、沿路线的建筑物或对象的辨识、沿路线的不同服务诸如加油站的位置、将到来的导航指引、如何到达某处、基于当前对话情景的问题等。
当话语与导航相关并且导航并不继续时,该过程播报在7915)导航未在进行。例如,响应于“我的下一转弯是什么”,该过程可回答“尚未设定路线”或“尚未选择目标”。该过程随后忽略(在7920)话语。随后,该过程结束。
当话语正好与地图相关(例如,距下一加油站有多远)时或当话语与导航相关并且导航继续时,该过程确定(在7925)话语是否与距目标、距路点的距离相关、或与导航或地图相关的任何其它基于距离的问题。如果不是,该过程转到下述7930。否则,该过程确定(在7935)当前位置和目标或路点之间的距离。例如,用户话语“距我多远”及其自然语言变型(例如,“距我们多远”、“我还要走多远”等)将使得交互式地图基于用户的当前位置和目标的位置来检索和呈现距目标距离的信息。
类似地,用户话语“下一转弯距我多近”及其自然语言变型(例如,“下一转弯距我多远”)将会使得基于用户的当前位置以及当前或计划路线上的下一路点的位置来检索和呈现距下一路点距离的信息。该过程随后基于所确定的距离提供(在7940)响应。随后,该过程结束。
该过程确定(在7930)话语是否与到目标的时间、到路点的时间或与导航相关的任何其它基于时间的问题相关。如果不是,该过程转到下述7955。否则,该过程基于当前时间、当前位置、当前速度、当前位置和另一位置之间的速度限制、当前交通状况等来确定所查询的时间。
例如,用户话语“我还要走多久”及其自然语言变型(例如,“我何时才能到达那里”、“距我多近”、“我要多久才能到那里”、“我们要多久才能到那里”、“我何时将到达那里”、“我何时到达那里”、“我应何时到达那里”、“我们应何时到达那里”、“要走多长的路”、“我将何时到达[目标名称]”等)将会使得对到目标时间的信息进行检索并向用户呈现。在一些实施例中,到目标时间的信息是基于当前时间、当前位置、当前速度、强加在当前位置和目标之间的速度限制、以及当前位置和目标之间的当前交通状况等来确定。该过程随后基于所确定的时间提供(在7950)响应。随后,该过程退出。
该过程确定(在7955)话语是否是关于沿路线的位置。如果不是,该过程转到下述7960。否则,该过程基于当前位置、目标、或沿路线的其它点提供(在7965)对话语的回答。例如,用户可通过说出“我的目标是什么”、“下面是什么”、“请告诉我下一转弯”、“我的目标在哪儿”、“请告诉我必须做些什么”、“请告诉我下面必须做些什么”等来就目标或下一路点进行询问。作为响应,交互式地图基于用户的当前位置、或当前或计划路线上的目标或下一路点来提供关于目标或下一路点的信息(例如,对目标或路点的描述)。随后,该过程退出。
该过程确定(在7960)话语是否是基于用户和交互式地图之间的当前对话。如果不是,该过程转到下述7975。否则,该过程基于当前对话提供(在7970)响应。随后,该过程退出。在一些实施例中,用户的话语基于当前对话情景来解释。例如,如果用户刚就较早路点进行询问,用户话语“我将何时到达那里”被解释为是对关于下一路点的导航状态信息(例如,到下一路点的估计时间)的请求。相比之下,如果用户刚就目标进行询问,那么同一话语被解释为是对关于目标的导航状态信息(例如,到目标的估计时间)的请求。
该过程确定(在7975)话语是否是基于任何其它可识别的导航或地图问题。如果是,该过程基于与问题相关的导航或地图信息提供(在7980)回答。否则,该过程退出。
图80例示本发明的一些实施例中的在语音激活导航期间使用自然语言话语时的用户设备8000。该图以三个阶段8001-8003示出。在阶段8001中,用户使用自然语言话语“我的下一转弯是什么”(如箭头8005所示)来获得指引。在阶段8002中,屏幕任选地显示用户和语音激活服务之间的可听交互。在阶段8003中,语音激活导航通过提供可听响应(如箭头8010所示)“您的下一转弯将是在50英尺处到达第三大街”来做出响应。类似视觉指引8015也显示在屏幕上的横幅8020上。
图81例示本发明的一些另选实施例中的在语音激活导航期间使用自然语言话语时的用户设备8100。该图以四个阶段8101-8104示出。阶段8101类似于图80的阶段8001。然而,如阶段8102和8103中所示,显示并非自动地切换成再次示出地图,直到用户激活控件(诸如按钮8120)。如阶段8104中所示,一旦用户指示(通过激活控件)用户当前并无问题要询问,那么就显示地图8130。
图82例示在用户基于当前对话进行查询之后的图80的用户设备8000。该图以三个阶段8201-8203示出。在阶段8201中,用户询问(如箭头8205所示)“我何时将到达那里”。在阶段8202中,屏幕任选地显示用户和语音激活服务之间的可听交互。在阶段8203中,由于当前对话是关于路线中的下一转弯,语音激活导航以“在两分钟内”响应(如箭头8210所示)。语音激活导航基于当前位置、距下一路点的距离、当前速度、当前位置和下一路点之间的交通状况等做出响应。
图83例示本发明的一些另选实施例中的在语音激活导航期间使用自然语言话语时的用户设备8000。该图以四个阶段8301-8304示出。阶段8301类似于图82的阶段8201。然而,如阶段8302和8303中所示,显示并非自动地切换成再次示出地图,直到用户激活控件(诸如按钮8320)。如阶段8304中所示,一旦用户指示(通过激活控件)用户当前并无问题要询问,那么就显示地图8330。
以下是一些实施例中识别的自然语言话语的示例。本领域的普通技术人员将认识到,类似于这些示例的许多其它自然语言话语可用来询问导航相关的问题。
“距我多远?”
“距我们多远?”
“我还要走多久?”
“我的下一转弯在何时?”
“距我的下一转弯多近?”
“我要多久才到那里?”
“我们要多久才到那里?”
“我的下一转弯在哪里?”
“我将何时到达那里?”
“我们将何时到达那里?”
“我将何时到达我的目标?”
“我们将何时到达我们的目标?”
“我何时到达那里?”
“我应何时到达那里?”
“我应将何时到达那里?”
“我们应将何时到达那里?”
“我何时到家?”
“还有多久?”
“还要继续多久?”
“下一步是什么?”
“请告诉我下一转弯”
“请告诉我必须做些什么”
“请告诉我下面必须做些什么”
“请告诉我我将何时到达那里”
“请告诉我我们将何时到达那里”
“我目标在哪儿?”
“我左侧的建筑是什么?
“下面我应走哪条路?”
“我在哪儿可以加油?”
“我在哪儿可以找到旅馆?”
3.语音激活搜索和导航
为了有利于免持导航,一些实施例利用语音激活服务来执行用户发起的搜索。在一些实施例中,这种语音激活服务是交互式导航应用程序的一部分。在其它实施例中,这种语音激活服务是通过语音激活个人助理服务来提供,
语音激活个人助理服务使得宽泛范围的服务对于设备的用户而言可用。这些服务的示例是基于用户言语命令和查询来发送消息、发出电话呼叫、安排会议、找到企业、获得指引、搜索网络等。这种语音激活个人助理的示例是中提供的这些实施例中的一些辨识搜索结果中的项目之一,并且设定从设备的当前位置到所辨识的项目的路线。随后向用户呈现所辨识的搜索结果以及路线。用户被提供导航至所呈现的项目或跳至搜索结果中的下一项目的选项。
图84概念性地例示本发明的一些实施例中的用于提供语音激活搜索和导航的过程8400。图84相对于图85A-85D来描述。图85A-85D例示一些实施例的用户界面的12个阶段8501-8512,其中用户正在使用语音激活服务搜索感兴趣点和目标。
如图84中所示,过程8400接收(在8405)搜索请求。搜索请求可通过言语命令做出。如图85A中的阶段8501中所示,用户发起言语搜索请求(如箭头8515所示)。在一些实施例中,语音激活服务是通过激活按钮(诸如按钮8520)来发起。在其它实施例中,当在设备音频输入端处接收到的语音水平响于一定阈值(和/或由设备识别自然语言词语)时,语音激活服务自动激活。
该过程随后确定(在8410)导航是否继续。例如,该过程确定是否已经设定目标。如果是,该过程检索(在8415)路线感知搜索结果。在一些实施例中,交互式地图应用程序维持路线信息,并且与过程8400共享剩余路线信息以便执行路线感知搜索。例如,响应于“寻找咖啡店”,该过程不是找到离当前位置最近的咖啡店,而是找到靠近当前路线的咖啡店,即使一些搜索结果沿路线更远。该过程随后继续下述8420。在图85A的实例中,地图8525和导航指引8537在屏幕上示出。地图辨识用户设备的当前位置8530以及当前设定用于导航的路线8535。例如,如果路线被设定成从洛杉矶到加利福尼亚州的库珀蒂诺并且用户设备已经沿路线移动,阶段8501示出从洛杉矶到库珀蒂诺的路线在设备当前所处位置附近的一部分。
如阶段8502中所示,一些实施例显示用户和语音激活服务之间的言语交互的转录本8540,以便有利于进行更好的通信。一些实施例(诸如例示的实施例)将转录本作为独立显示示出,如阶段8502中所示。其它实施例(未示出)在用户开始搜索请求(诸如阶段8501中所示的显示)时将转录本写在在前台显示的同一页面上。另外,如阶段8502中所示,在语音激活搜索正在进行时,在屏幕上示出导航横幅8542,以便有利于沿初始路线8535的导航。虽然路线感知搜索在语音激活搜索的情景下描述,但一些实施例在导航继续并且用户使用基于触摸或基于运动的输入设备时执行路线感知搜索。
当在导航并不继续时接收到搜索请求(图85A-85C中未示出)时,该过程8400检索(在8450)在用户设备的当前位置附近(而非如以上在操作8415中所述的路线附近)的搜索结果。该过程随后准备(在8420)搜索结果的顺序列表。不同实施例使用不同准则来对列表进行分类以确定首先向用户呈现哪个搜索结果。例如,一些实施例首先使用最靠近的位置。其它实施例利用搜索结果中的每个项目进行不同分等级来对列表进行分类。例如,首先示出具有较高等级的餐厅。其它实施例通过明确设定或使用用户的过去偏好来利用用户偏好。例如,可首先呈现价格较低的餐厅。
该过程随后确定(在8425)在列表中是否剩余任何搜索结果。如图所示,该过程迭代通过操作8425-8437来处理搜索结果列表中的每个项目。因此,针对搜索结果列表中的第一项目,该过程确定(在8425)搜索是否已经返回任何结果。针对列表中的后续项目,该过程确定(在8425)是否已经向用户呈现列表中的所有项目。如果是,该过程通知(在8445)用户:搜索未返回结果(对于第一迭代)或没有更多的搜索结果(对于后续迭代)。随后,该过程结束。
否则,当在搜索结果列表中存在更多项目时,该过程将一条路线设定(在8430)列表中的下一项目并且向用户呈现搜索结果。为了有利于免持导航,该过程自动从找到的多条路线中选择单条路线,并且将路线设定到所呈现搜索结果。如图85A中的阶段8503中所示,语音激活服务以视觉(8550)形式和可听(8552)形式向用户提供搜索结果。例如,语音激活服务指示:“我已在您所在区域找到5间咖啡店。第一间是艾德咖啡店。您想去那里吗?)”。在一些实施例中,语音激活服务在言语和书面展示中利用常用的缩略语,以便有利于容易的通信。
如图所示,语音激活服务示出地图8555,地图8555辨识设备8557的当前位置、所呈现搜索结果8559的位置以及两个位置之间的单条路线8558。屏幕还示出其它有用信息8551(例如,所呈现搜索结果的名称以及可用时的等级)。用户还可看到(或听到)关于搜索结果的更多信息(例如,通过轻击横幅8551、或选择示出搜索结果名称的横幅8551上的控件8553,或者通过言语地询问关于目前搜索结果的更多细节)。
一些实施例并不示出阶段8503中示出的信息中的一些(例如,评级仅在用户轻击横幅8551或言语地询问更多信息时显示)。在一些实施例中,选择控件8553启动第三方应用程序,或在同时在导航应用程序正在其上运行的设备上运行的浏览器应用程序中打开第三方的网站。例如,一些实施例的导航应用程序启动第三方应用程序(例如,应用程序),以示出所呈现搜索结果的全本文信息、评论、照片等等。
由于用户尚未决定导航至所呈现搜索结果8559,初始路线8535(在该示例中,从洛杉矶到库珀蒂诺,如阶段8501中所示)仍用于实际导航,并且沿路线8535(而非所显示的路线8558)的逐向导航指引在阶段8503中的导航横幅8542中示出。因此,在通过语音激活服务向用户呈现搜索结果的同时,用户可继续沿初始路线8535导航。
另外,如图所示,阶段8503中显示的地图不同于阶段8501中显示的地图。阶段8501中的地图是全屏逐向导航显示(例如,任选地3D地图),示出当前所导航路线的一部分;而在阶段8503中显示的地图是概览地图,示出从设备的当前位置到所建议搜索结果的路线。例如,概览地图是2D地图,其中所呈现搜索结果靠近地图的中心。此外,一些实施例例如以不同边框、不同尺寸等显示阶段8503中的地图,以便在语音激活服务所显示的到所建议目标的地图和交互式导航应用程序所显示的到所选择目标的地图之间进行区分。在其它实施例中,阶段8503中显示的地图类似于概览地图(例如,图76中所示的地图7615)。又如以下进一步所描述,在一些实施例中,地图由交互式导航应用程序显示(例如,当语音激活服务请求时)。
重新参见图84,该过程随后确定(在8435)用户是否想要导航至所呈现搜索结果。如果是,该过程转到下述8440。否则,该过程确定(在8437)用户是否想要终止搜索。如果是,该过程终止呈现搜索结果。在一些实施例中,在终止语音激活搜索之后,屏幕显示在开始搜索之前在前台运行的应用程序。在一些实施例中,语音激活服务使控件返回在开始搜索之前在前台运行的应用程序。例如,如果交互式导航应用程序在搜索开始之前运行,屏幕再次显示导航信息。
如图85B中的阶段8504中所示,用户要求语音激活服务终止搜索(如箭头8560所示)。在阶段8505中,显示任选地示出言语通信的转录本8565。在阶段8506中,阶段8501中显示的地图8525重新显示在屏幕上。导航指引8537、路线8535和设备的当前位置8530也被恢复。然而,设备的当前位置8530已经因设备在搜索过程期间的移动而改变。因此,初始路线8535在屏幕上恢复,并且导航继续朝向目标库珀蒂诺,因为用户并未选择任何所呈现搜索结果。
当过程8400确定用户不想导航到所呈现搜索结果或终止搜索时,该过程回到8425以呈现下一搜索结果。该过程继续,直到(i)用户决定要导航到搜索结果;(ii)用户决定终止搜索,或者(iii)没有更多的项目要呈现。例如,如果列表中存在更多项目,该过程设定(在8430)到下一搜索结果的路线并且重复操作8430-8435。
如图85C中的阶段8507中所示,用户想要跳过“艾德咖啡店”(如箭头8570所示)。在阶段8508中,可听通信的转录本8572任选地显示在屏幕上。在阶段8509中,向用户呈现(如箭头8573和8574所示)搜索列表中的下一项目(在该示例中,“Venice Cucina”)。当前位置8530(自阶段8501起已经略微改变,因为设备在搜索期间进行移动)、新搜索结果的位置8575、从当前位置到所呈现搜索结果的路线8577、以及关于搜索结果的另外信息8579显示在屏幕上。
如果用户决定转到所提供的搜索结果,图84的过程8400示出(在8440)路线的所选择的部分并且提供对所选择的搜索结果的音频和/或视觉导航指引。虽然操作8440概念性地被示出为过程8400的一部分,但在一些实施例中,过程8400将控件变换至交互式导航应用程序以便提供导航地图和指引,如整个本说明书中所述。随后,该过程结束。
如图85D中的阶段8510中所示,用户决定(如箭头8580所示)转到所提供的搜索结果。如图所示,一些实施例还提供控件8582,控件8582可被选择(例如,通过轻击)以便选择当前所提供的搜索结果并且转到这个搜索结果。在阶段8511中,可听通信的转录本8571任选地在屏幕上示出。在阶段8512中,语音激活服务确认(如箭头8590所示)用户的选择。全屏逐向导航地图8525以及从当前位置8530到所选择的搜索结果的路线8587的一部分显示在屏幕上。如图所示,阶段8512中的地图8525类似于阶段8501中的地图8525,然而,路线8587是到所选择的搜索结果的路线。在一些实施例中,控件返回交互式导航应用程序以提供导航指引。在一些实施例中,也保存初始路线8535,以防用户想要在访问搜索结果之后继续沿初始路线的导航(在该示例中,在访问Venice Cucina之后继续从洛杉矶行进到库珀蒂诺)。
图86概念性地例示本发明的一些实施例中的用于提供语音激活搜索和导航的另选过程8600。在这些实施例中,语音激活服务在显示上显示所有搜索结果,并且随后以成批方式一次一个地辨识搜索结果,并且询问用户是否想要导航至所辨识的搜索结果。如图所示,该过程接收(在8605)搜索请求。搜索请求可通过言语命令做出。该过程随后确定(在8610)导航是否继续。例如,该过程确定是否已经设定目标。如果不是,该过程转到下述8645。
当导航继续时,该过程检索(在8615)路线感知搜索结果。在一些实施例中,交互式地图应用程序维持路线信息,并且与过程8600共享剩余路线信息以便执行路线感知搜索。例如,响应于“寻找咖啡店”,该过程不是找到离当前位置最近的咖啡店,而是找到靠近当前路线的咖啡店,即使一些搜索结果沿路线更远。
在一些实施例中,当搜索是音频-视觉形式(而非例如锁定屏幕仅音频形式)时,该过程在预览显示上示出(在8620)搜索结果,并且将图针落在搜索结果的位置处。在一些实施例中,搜索结果以3D或2D形式示出,这取决于多个因素,诸如搜索中找到的数字结果、路线的长度等。其它实施例切换至2D概览显示来示出搜索结果,并且随后在导航开始或继续时切换至3D显示。
该过程还基于一定准则诸如与当前位置的接近度来准备(在8625)搜索结果的顺序列表。该过程随后通过循环通过列表中的条目来以成批方式读出(在8630)条目。该过程基于从用户接收的言语命令跳过或继续通过列表。在一些实施例中,交互式地图向用户读出信息的列表。例如,当提供下五个出口附近的加油站的列表时,交互式地图向用户逐个读出加油站的名称。用户可通过说出“Skip(跳过)”或其它触发词语来在列表中的项目之间跳过,以便前进通过列表。当交互式地图接收用户的跳至列表上的下一项目(例如,加油站名称和相关信息,诸如品牌、油价、与最近出口的距离等)的语音输入时,交互式地图读出列表中的下一项信息、或报告已经到达列表的最后。
图87例示本发明的一些实施例中的在导航期间的用户设备8700。如图所示,已经在地图8750上确定路线8705,并且已经在路线8705上辨识用户设备的当前位置8710。用户例如通过按下按钮8715来启动语音激活服务。
随后,用户做出言语搜索请求(如箭头8720所示)。随后,显示任选地示出言语通信的转录本8770。随后,沿路线执行搜索(而非仅在用户设备的当前位置附近)。显示转变成概览8725并且示出具有标记或图针8730所辨识的搜索结果的路线。如图所示,概览8725示出搜索结果8730以及到第一选择(在该示例中,山姆咖啡时光)的建议路线。这个概览地图8725不同于导航地图8750或用于导航路线8705的概览。概览地图8725通过语音激活服务显示并且示出基于用户的言语搜索请求所找到的搜索结果。语音激活服务还播报(如箭头8735所示)搜索结果并且以辨识第一搜索结果开始。在例示的实施例中,在地图上示出所有搜索结果。
图88例示本发明的一些实施例中的在导航期间的用户设备8800。图88例示其中语音激活服务已经接收与图87中相同的搜索准则的另一个实施例。然而,在图88中所示的实施例中,示出标记或图针8830的概览地图8825通导航应用程序而非语音激活服务来显示。
在其它实施例中,语音激活服务通过选择第一搜索结果并且将一条路线设定到搜索结果而有利于免持导航。在这些实施例中,显示到第一搜索结果的路线(例如,通过将第一搜索结果置于地图的中心和示出从当前位置到第一搜索结果的路线)。语音激活服务随后给出第一搜索结果的名称和/或描述,并且询问用户是否希望将目标设定成第一搜索结果。如果用户希望到达第一搜索结果,则到第一搜索结果的逐向导航开始。否则,语音激活服务通过以下方式以成批方式循环通过搜索结果:选择下一搜索结果,将一条路线设定到下一搜索结果,向用户提供对结果的描述,以及查询用户是否希望到达所提供的搜索结果。这个过程继续,直到用户选择搜索结果或所有搜索结果都被呈现给用户。
图89例示用户不想选择第一间咖啡店时的图87的用户设备8700。如图所示,用户做出跳过当前搜索项目的言语请求(如箭头8905所示)。随后,显示任选地示出言语通信的转录本8920。随后,语音激活导航做出对搜索结果中的项目的可听展示(如箭头8910所示)。这种交互继续,直到用户选择项目或终止搜索。如上所述,一些实施例自动将一条路线设定到下一搜索结果,向用户提供对结果的描述,并且查询用户是否希望到达所提供的搜索结果。在这些实施例中,仅下一搜索结果(在该示例中,Venice Cucina)显示在屏幕上,其中显示从当前位置到搜索结果的路线。如果用户选择搜索结果(例如,通过言语命令,诸如“go(行进)”或“proceed(继续)”),则到搜索结果的逐向导航开始。否则,显示下一搜索结果,并且该过程以成批方式继续。
重新参见图86,该过程确定(在8635)用户是否已经选择特定搜索结果。如果不是,该过程结束(或在一些实施例中,该过程返回8630并且继续循环通过列表,直到通过用户命令终止)。否则,该过程将一条路线设定(在8640)到所选择的搜索结果。基于用户决定,保存初始路线或以到所选择的搜索结果的路线来替换初始路线。随后,该过程结束。
当在导航并不继续时接收到搜索请求时,该过程检索(在8645)用户设备的当前位置附近(而非如以上在操作8615中所述的路线附近)的搜索结果。该过程随后根据当前设定来以音频和/或视觉形式提供(在8650)搜索结果。随后,该过程结束。在一些实施例中,该过程在检索搜索结果(在8645)之后转到上述8620。在这些实施例中,搜索结果被呈现给用户,如以上参考操作8620-8640而非操作8650所述。
图90A-90E概念性地例示在搜索操作期间使用的、本发明的一些实施例的语音激活服务的部分。过程8400和8600的操作以及当前“语音引导”章节中的用户界面中示出的不同操作是由图90A-90E中的一个或多个模块执行。本领域的普通技术人员将认识到,图90A-90E中所示的模块式特定于一些实施例的语音激活搜索过程,并且一些实施例的语音激活服务、交互式导航应用程序和地图服务包括未在这些图中示出的许多另外模块(例如,用于地图显示、路线显示、导航的另外方面、文本指令生成、箭头生成等)。
附图以五个阶段9001-9005示出一些实施例的语音激活服务9005、地图服务9010和交互式导航应用程序9015的不同模块之间的交互。在一些实施例中,语音激活服务和交互式导航应用程序驻留在用户设备上,而地图服务驻留在用户设备的外部。一些实施例的地图服务的更多细节在以下在“地图服务环境”章节中进行描述。
如图所示,语音激活服务9005包括以下模块:语音输入9020、语音识别9025、自然语言解释器9030、显示界面9090、语音到文本转换器9035、搜索列表呈现器9040、搜索列表生成器9045、语音合成器9050和语音输出9055。另外,语音激活服务9005包用于存储一组导航和地图相关的自然语言话语的存储装置9060。地图服务9010包括以下模块:地图生成器9085、路线生成器9065和搜索引擎9070。此外,地图服务9010包括地图数据存储装置9075和感兴趣点存储装置9080。在一些实施例中,这些存储装置是分布式的和/或包括来自若干不同源(例如,来自不同供应商、不同数据库等)的数据。交互式导航应用程序9015的不同模块在整个本说明书中进行描述,并且为了简单,并未在此示出。
如图90A中的阶段9001中所示,语音输入模块9020接收来自用户的搜索请求。例如,用户通过激活按钮或以大于阈值的响度对着设备麦克风(或物理地或无线地连接到设备的外部麦克风)讲话来启动语音激活服务。语音输入模块9020将用户的语音请求传送至语音识别模块9025,语音识别模块9025将语音转换成词语。
语音识别模块9025将所识别的语音请求发送至语音至文本转换器模块9035,语音至文本转换器模块9035生成用户和语音激活服务之间的可听通信的转录本。显示界面9090接收通信的转录本并且将转录本显示在用户设备上。
自然语言解释器9030接收语音识别模块9025的输出,并且将所接收的词语与存储在自然语言话语存储装置9060中的自然语言短语(诸如以上在“使用自然语言话语的导航”章节中描述的短语)的列表进行比较。在一些实施例中,自然语言解释器9030模块使用启发法来识别类似于所识别的自然语言话语的不完整词语或不完整短语。
此外,在一些实施例中,自然语言话语存储装置9060存储若干不同语言的导航相关话语。这些组中的一组或多组是根据用户设备的用户设定来使用。自然语言解释器9030基于所识别的导航相关自然语言话语构建搜索准则,并且向地图服务9010的搜索引擎模块9070发送准则。搜索准则包括感兴趣点或用户正在查找的其它目标,以及当前设备位置、当前路线、搜索半径、价格、等级、评论或与搜索相关的其它准则中的一个或多个。
如图90B中的阶段9002中所示,搜索引擎9070使用存储在地图数据存储装置9075中的地图数据和存储在感兴趣点存储装置9080中的感兴趣点数据来针对给定搜索准则找出结果。地图服务9010的搜索引擎模块9070将搜索结果发送到语音激活服务9005的搜索列表生成器模块9045。
搜索列表生成器模块准备搜索结果的列表(如在上述操作8420或8625中所述)。搜索列表呈现器模块9040接收搜索列表、选择搜索项目,并且向地图服务9010的地图生成器模块9085发送对地图和从当前设备位置到搜索结果的位置的路线的请求。
如图90C中的阶段9003中所示,地图生成器模块9085与路线生成器模块9065通信,并且利用来自地图数据存储装置9075和感兴趣点存储装置9080的数据生成地图(例如,类似图85A中的8555或图88中的8825的地图)和到所辨识的搜索结果的路线。搜索列表呈现器模块9040接收地图和路线的信息,并且将信息发送至显示界面模块9090以显示在用户设备上。
搜索列表呈现器模块9040还为用户准备可听展示的转录本,并且将副本发送至语音合成器模块9050以生成可听语音,并且将副本发送至显示界面模块9090以显示在用户设备屏幕上。语音合成器模块9050合成语音并且发送至语音输出模块9055以在设备扬声器或耳机上播放。
如图90D中的阶段9004所示,语音输入模块9020接收用户(i)对搜索结果的选择、(ii)对跳过当前所呈现搜索结果的请求或者(iii)对终止搜索的请求。语音识别模块9025接收用户请的求,并且将所识别的词语的副本发送至语音到文本转换器模块9035和自然语言解释器模块9030。语音到文本转换器模块将可听通信的转录本发送至显示界面模块9090来显示。自然语言解释器模块9030通过使用存储在自然语言话语存储装置9060中的短语并且根据请求的类型确定用户的请求:(i)将命令发送至搜索列表呈现器9040以便设定到下一搜索结果的路线并且显示下一搜索结果,如上所述;(ii)将对所选择的路线的辨识发送至交互式导航应用程序9015;或者(iii)终止搜索。
一旦辨识用户所选择的搜索结果,交互式导航应用程序就呈现导航地图和逐向指引,如图90E中的阶段9005中所示。如本说明书中所述的交互式导航应用程序将设备位置信息发送至地图服务9010、接收地图和导航信息、并且将地图和导航信息呈现在用户设备上。
4.将导航并入语音激活服务输出
一些实施例将导航并入语音激活服务输出以便提供更好的用户体验。例如,当用户在导航期间利用语音激活服务时,语音激活服务将言语逐向导航指引并入与用户进行的语音激活服务交互。
图91例示其中导航并入语音激活服务输出的一些实施例的用户界面的4个阶段9101-9104。如图所示,地图9125和导航指引9190在屏幕上示出。地图辨识用户设备的当前位置9130以及当前设定用于导航的路线9135。在该示例中,导航应用程序在设备到达下一转弯的50英尺内时提供言语引导。如阶段9101中所示,用户设备距下一转弯(如9190所示)仍有60英尺。因此,导航应用程序并不提供言语指引引导。
如阶段9101中所示,用户发起语音激活服务(如箭头9115所示)。在一些实施例中,语音激活服务是通过激活按钮(诸如按钮9120)来发起。在其它实施例中,当在设备音频输入端处接收到的语音水平响于一定阈值(和/或由设备识别自然语言词语)时,语音激活服务自动激活。阶段9101中的用户正在查询与导航并不相关的天气状况(如9115所示)。
如阶段9102中所示,一些实施例显示用户和语音激活服务之间的言语交互的转录本9140,以便有利于进行更好的通信。一些实施例(诸如例示的实施例)将转录本作为独立显示示出,如阶段9102中所示。其它实施例(未示出)在用户开始搜索请求(诸如阶段9101中所示的显示)时将转录本写在在前台显示的相同页面上。
另外如阶段9102中所示,在屏幕上示出导航横幅9142,以便有利于沿路线9135的导航。这个导航横幅9142比导航横幅9190狭窄。在一些实施例中,较狭窄导航横幅用于在导航应用程序正在后台运行并且另一应用程序(在该示例中,语音激活服务)正在前台运行时示出导航指引。导航横幅9142示出设备已经到达下一转弯的50英尺内。一旦设备在下一转弯的50英尺内,导航应用程序就准备言语语音引导播报,诸如“在50英尺处左转到达主街”。然而,为了不干扰与用户进行的语音激活服务交互,导航应用程序向语音激活服务提供可听输出(例如,以音频文件或指向音频文件的指针的形式),以便允许语音激活服务在适当时间做出导航引导播报(例如,通过输出所接收的音频文件)。
如阶段9102中所示,语音激活服务正在接收并且转录言语用户输入(用户输入被示出为短语9186,以便概念性地示出用户仍在提供输入、或语音激活服务正在等待确保用户确实正在做出言语请求)。语音激活服务正在利用语音识别来解释用户的请求。如果在用户正对着语音激活服务说话时通过扬声器来播放导航引导,导航引导输出通过麦克风返回并且使得语音激活服务难以识别用户实际所说的内容。此外,播放导航引导可能使得用户混淆(例如,因为用户正期望来自语音激活服务的回答)。
一旦语音激活服务接收用户输入,语音激活服务确定是否已经做出导航引导播报。在该示例中,存在导航引导播报。如阶段9103中所示,语音激活服务告知用户(如9180所示)存在导航指引要播报,并且继续做出播报(例如,通过输出从导航应用程序接收的音频文件)。如阶段9104中所示,语音激活服务提供对用户请求的响应(如9185所示)。将导航输出集成到语音激活服务输出中为用户提供统一体验。在一些实施例中,语音激活服务和导航使用同一语音合成器来为用户做出统一音频接口。
图92概念性地例示本专利申请的一些实施例中的语音激活服务用来将导航输出并入的过程9200。如图所示,该过程接收(在9205)来自导航应用程序用于导航指引播报的音频信息。例如,如以上参见图91所述,在阶段9102中,设备到达路线上的导航应用程序必须要向用户提供言语警示的一点。
过程9200随后确定(在9210)用户是否当前正向语音激活服务提供言语输入(例如,如图91的阶段9101和9102中所示)。如果这样,该过程转到下述9225。否则,该过程确定(在9215)语音激活服务是否当前正向用户提供可听响应(例如,如图91的阶段9104中所示)。如果不是,该过程转到下述9230。否则,该过程确定(在9220)可听响应是否在可中断的点处(例如,介于句子之间)。如果不是,该过程转到下述9225。
否则,该过程输出从导航应用程序接收的用于导航指引的音频信息。随后,该过程结束。在一些实施例中,从导航应用程序接收的信息是呈可在设备音频系统上播放的音频文件形式。在其它实施例中,从导航应用程序接收的信息是文本形式,文本由语音合成器转换成语音。
当无法立即播放可听导航信息时,该过程存储(在9225)从导航应用程序接收的音频信息(例如,在存储器或存储装置中)。该过程随后回到上述9210。在一些实施例中,该过程在预先确定的延迟之后执行操作9210-9220。在其它实施例中,该过程自动检查(例如,在接收用户输入之后,在完成对用户的响应之后,在对用户的响应到达可中断的点之后等)要播放的来自导航应用程序的任何播报。
虽然过程9200参考语音激活服务从导航应用程序接收的播报来描述,但一些实施例利用类似过程将来自其它应用程序的可听播报(例如,当已做出将到来的文本消息的播报时)并入语音激活服务输出,以便使得用户得到更好的总体体验。
B.情景感知语音引导
一些实施例提供情景感知语音引导。语音引导与用户设备的其它语音服务交互。例如,当用户正在做出对任何语音激活服务的言语请求时,语音引导并不提供可听引导。相反,当通过麦克风接收来自用户的言语请求时,语音引导将其输出转录在屏幕上。在一些实施例中,当麦克风被打开时(例如,当输入语音的音量大于一定阈值时),语音引导确定必须抑制可听引导。
在一些实施例中,当用户正在说话(例如,进行电话呼叫)、或另一语音激活服务正在提供对用户的查询的可听响应时,语音引导仅提供短警告声诸如微小哔声作为获得用户注意的不突出的指示器(例如,在路线上的转弯处)。在一些实施例中,导航横幅显示在屏幕上,以便显示引导信息。
在一些实施例中,语音引导以与截短指令文本以便显示相同的方式来截短语音引导。在一些实施例中,语音引导自动使音乐被降音(即,减小音乐的音量),但是自动暂停有声读物的说出词语,以便向用户提供语音引导。在一些实施例中,语音引导区分可降音的音乐与用户想要暂停而非跳过的说出词语(例如,来自有声读物)。
在导航时,导航语音音量使可用硬件按钮或触摸按钮调整的。针对音频的标准行为是在回放音频时仅调整回放音量。由于语音引导是不定时的、短的、并且在一定程度上是不可预测的,因此非常难以使用标准机制来调整语音引导音量。此外,如果音量被降低至不可听的点,那么将无法使音量返回可听水平。因此,替代使用标准机制,在导航正在进行时,甚至是在不提供可听导航指引时,硬件音量键始终对语音提示音量进行调整。
一些实施例根据当前在设备上活动的是其它什么音频会话来提供不同类型的语音提示。虽然若干示例参考导航系统来描述,但在其它音频服务在设备上活动时,本发明的一些实施例利用相同技术来为其它服务提供语音提示(例如,将到来的文本消息、电子邮件、可访问性助理提示等的播报)。图93概念性地例示本发明的一些实施例中的基于当前在电子设备上活动的音频会话在设备上提供不同类型的可听提示的过程9300。可听提示的示例包括:导航期间向用户提供的导航警示、指示接收到文本消息的警示、指示接收到电子邮件的警示等。活动音频会话的示例是进行中的电话呼叫、个人助理(诸如)与用户的交互、视频呼叫(诸如)、基于IP的语音(VoIP)会话、播放音乐、播客或其它说出词语等。
在一些实施例中,系统级别(例如,设备音频系统或设备操作系统)的设备感知每次在设备上活动的不同类型的音频会话,并且感知音频是否正由不同设备服务播放或接收。一些实施例对正在播放或接收的音频的类型进行分类和定义。音频分类和关于活动音频会话的分类的信息是由音频系统维持。
不同活动音频会话的示例包括:使用设备电话服务正进行的电话呼叫或视频呼叫、设备所提供的VoIP服务、设备正进行的音频记录、正活动的设备语音激活个人助理服务、设备正输出的音乐、正进行的播客、正向用户读出的有声读物等。要求提供音频警示的任何应用程序(诸如导航、文本消息、电子邮件等)就可在特定时间播放的提示的类型查询系统。音频系统利用关于当前在设备上活动的音频会话的类型的信息,并且告知应用程序关于当前可播放的语音提示的类型。应用程序随后向音频系统提供适当音频文件来播放。
如图所示,过程9300接收(在9305)关于当前可在设备上播放的语音提示的类型的查询。例如,该过程从应用程序、诸如需要向用户播放在50英尺处左转到达主街的警示的导航应用程序接收查询。该过程随后确定(在9310)音频会话在音频服务正在认知地聆听用户语音的情况下是否是活动的。例如,该过程确定语音识别服务或显式音频文件记录当前是否正在从用户接收语音输入。如果不是,该过程转到下述9320。
否则,当语音识别服务或显式音频文件记录当前正在从用户接收语音输入时,该过程告知(在9315)进行查询的应用程序:此时不允许语音提示。随后,该过程退出。在一些实施例中,过程9300不仅告知进行查询的应用程序不应播放语音提示,而且在系统上强制执行:如果应用程序尝试在此期间播放提示(例如,来自导航应用程序或任何其它应用程序),提示在系统级别被抑制,以便确保在质量最重要的情况下(例如,当个人助理正在接收用户的言语输入或正在记录语音备忘时)不会对用户音频输入造成附带音频干扰。在一些实施例中,当不允许音频提示时,进行查询的设备提供其它类型警示(例如,在设备的显示器上提供音频提示的转录本)。
不被语音提示所中断的音频会话包括其中设备服务正在认知地从用户接收输入并且音频输入的质量很重要的会话。当前正在接收语音输入的语音识别服务的示例是个人助理服务聆听用户时。例如,用户正在询问特定城市的天气状况。如果在用户正对着语音识别服务说话时播放语音提示(例如,用于警示用户在50英尺处左转的导航提示),提示可能使用户混淆。此外,当提示通过扬声器来播放时,输出通过麦克风返回并且使得语音识别服务难以识别用户实际所说的内容。
显式音频文件记录的示例是当用户正在创建语音备忘并且用户的语音是活动地被记录时。无论何时语音输入的质量都很重要(例如,当语音识别服务正在聆听用户或正在记录语音备忘时),希望抑制语音提示以便不会在所记录的语音备忘的中间包括导航语音提示。
该过程确定(在9320)具有说出词语的会话式音频会话(不是以上在操作9310中描述的服务)当前是否是活动的。会话式音频会话包括:正进行的电话呼叫;正进行的视频呼叫;活动VoIP会话;个人助理已经接收用户的请求并且正在提供回答或正在寻找答案的过程中的情况下,用户与语音激活个人助理的交互等。这种类型的会话式音频会话包括其中用户涉及双向交互(例如,打电话或利用语音激活个人助理)的会话,在双向交互中,可容许短的非言语中断(与不期望有中断情况下的语音备忘或用户到语音识别服务的命令形成对比)。
当具有说出词语的会话式音频会话当前活动时,该过程转到下述9325。否则,该过程告知(在9330)进行查询的应用程序可播放长的言语提示。该过程随后任选地接收(在9335)要播放的言语语音提示的音频文件或音频信号。该过程随后播放(在9340)言语语音提示。随后,该过程退出。长的言语提示的示例是警示用户在100英尺处右转到达维尔摄大道的导航提示。这种长的言语提示在当前活动的音频会话不要求用户的言语输入时(例如,当不播放音频时,当正在播放非说出词语音频诸如音乐时,当正在播放说出词语播客时等)使用。
当具有说出词语的会话式音频活动时,该过程告知(在9325)进行查询的应用程序:当前可播放短的非言语提示。该过程随后任选地接收(在9345)要播放的短的非言语可听提示的音频文件或音频信号。该过程随后播放(在9350)非言语可听提示。随后,该过程退出。这个类别中的说出词语的示例是使用设备的电话会话或在语音激活个人助理已经接收用户输入并且正在寻找结果时。例如,当个人助理正在基于用户输入检查特定城市的天气状况时,短的非言语导航提示被播放以警示用户即将到来的转弯。如以下进一步所描述,一些实施例利用平移、音调响度和/或不同音调顺序来以非言语提示提供方向信息。
一些实施例提供语音提示和活动音频会话所播放的音频之间的另一情景感知交互。在这些实施例中,活动音频是基于设备音响系统(例如,设备扬声器)或设备所连接的音响系统(例如,汽车立体音响系统)的当前音量设定来播放。在这些实施例中,提供音频提示的应用程序具有独立相关音量设定。例如,在一些实施例中,设备导航应用程序具有高音量、正常音量、低音量或无声的相关音量设定。以某些相关音量水平播放语音提示和/或并发音频,使得用户感知到导航提示水平和并发音频水平是在相同水平。相关音量水平是基于对正播放的音频做出的测量或基于正播放的音频的类型来确定。
图94概念性地例示本发明的一些实施例中的用于在另一音频会话活动时提供可听提示的过程9400。如图所示,该过程接收(在9405)做出可听语音提示的请求。例如,该过程在过程9300确定在当前时间可播放长的或短的可听提示时接收请求。该过程随后确定(在9410)信号测量值是否可用于确定当前所播放的内容的响度。如果不是,该过程转到下述9415。
当信号测量值可用时,该过程动态评估用户如何感知正在播放的内容的音量。例如,一些实施例提供音频信号的功率以及其它属性的测量值。基于测量值以及正在提供提示的特定应用程序的相关音量设定,该过程以多个音量水平播放(在9420)语音提示和并发音频,使得用户感知到导航提示水平和并发音频水平是在相同水平。随后,该过程退出。
当信号测量值不可用时,该过程基于正在播放的音频的类型以及提供提示的特定应用程序的相关音量设定来播放(在9415)语音提示和并发音频。以多个音量水平播放语音提示和并发音频内容,使得用户感知到导航提示水平和并发音频水平是在相同水平。随后,该过程退出。过程9400的操作的细节在以下参见图101和过程10100来进一步描述。一些实施例利用过程9300和9400的组合来提供(或抑制)语音提示。
1.基于活动音频会话的类型提供不同类型的可听提示
图95概念性地例示本发明的一些实施例中的用于在电子设备上提供不同类型的可听提示的更详细的过程9500。如图所示,该过程接收(在9505)做出语音播报的请求。这种语音播报的示例参考以上操作9305来描述。该过程随后确定(在9510)语音识别服务当前是否正在接收语音输入。如果是,该过程转到下述9525。否则,该过程确定(在9515)当前是否正在记录语音备忘。当前正在接收语音输入的语音识别服务以及当前正在记录的语音备忘的示例参考以上操作9315来提供。如果是,该过程转到下述9525。
否则,该过程确定(在9520)具有说出词语的音频会话当前是否是活动的。这种类型的音频会话包括正进行的电话会话、视频呼叫和VoIP会话。这种类型的音频会话还包括语音激活个人助理会话,其中语音激活个人助理已经接收用户输入并且现在正向用户回话或正在搜索以找到用户请求的答案的过程中。如果不是,该过程转到下述9545。
a)使用非言语可听提示提供方向信息
当具有说出词语的音频会话当前是活动的时,过程9500提供(在9535)非言语提示。该过程还任选地显示(在9540)播报。随后,该过程退出。在一些实施例中,非言语提示(诸如导航期间的非言语提示)提供方向性信息。图96概念性地例示本发明的一些实施例中的用于提供具有方向性信息的非言语提示(例如,在导航期间)的过程9600。当活动音频会话正在进行并且决定做出非言语可听提示以提供方向性信息时,过程9600例如在过程9500的操作9535期间活动。如图所示,过程9600接收(在9605)对做出包括方向性信息(例如,以便警示用户在导航期间改变方向)的非言语可听提示的请求。
过程9600随后确定(在9610)是否可能以立体声形式提供提示。例如,如果当前活动的音频会话是立体声(例如,语音激活个人助理会话),那么可能以立体声形式提供非言语提示。另一方面,如果单声道音频会话(例如,单声道电话呼叫)是活动的,则不可能以立体声形式提供提示。当活动音频会话是立体声形式时,该过程转到下述9620。
否则,该过程通过使用一组音调做出(在9615)非言语可听提示,这组音调通过利用对应于导航所要求的不同指引的不同音调顺序和/或不同音调响度来提供方向性。图97例示本发明的一些实施例中的在导航会话和电话呼叫正在进行时的用户设备9700。该图以三个阶段9701-9703示出。在阶段9701中,已使用设备进行电话呼叫的设备用户和语音正在通过设备的单扬声器播放的另一人之间正在进行电话会话(如标记为1和2的短语所示)。此外,导航会话正在进行(如路线9710所示),并且用户设备距下一转弯仍有500英尺(如导航指引9705所示)。
在阶段9702中,电话会话仍在进行(如标记为3和4的短语所示)。在这个阶段中,设备已经到达导航应用程序必须提供语音提示以警示用户在50英尺处右转的点(如导航指引9715和设备在路线9710上的位置9720所示)。然而,由于电话呼叫正在进行,替代言语播报诸如“在50英尺处右转到达自由大街”,导航应用程序提供非言语提示。如标记为5的短语所示,语音提示(在该示例中,叮咚声)被播放。
在阶段9703中,电话会话仍在进行(如标记为6和8的短语所示)。在这个阶段中,设备已经到达导航应用程序必须提供语音提示以警示用户在50英尺处左转的下一转弯点(如导航指引9725和设备沿路线的位置9730所示)。由于转弯是向左,这次播放不同顺序的音调(在该示例中,咚叮声)。通过使用不同顺序的音调(叮咚声对咚叮声),向用户提供正确导航所要求的方向信息。在其它实施例中,替代改变音调的顺序,针对不同指引使用不同音调。例如,叮声(或叮叮声)用于右转并且咚声(或咚咚声)用于左转,或反之亦然。
图98例示本发明的一些实施例中的通过非言语提示来提供方向信息的另一实例。该图例示本发明的一些实施例中的在导航会话和电话呼叫正在进行时的用户设备9800。为了简单,图98中示出与图97相同的电话会话和导航指引的场景。如阶段9802中所示,导航应用程序提供非言语提示以警示用户进行右转。提示包括响亮音调(叮声,如标记为5的短语中的较大字符概念性地示出)和轻柔音调(咚声,如标记为5的短语中的较小字符概念性地示出)。
在阶段9803中,由于下一转弯点是左转,提示包括与右转相同的音调。然而,第一音调是轻柔音调(叮声,如标记为5的短语中的较小字符概念性地示出)和响亮音调(咚声,如标记为5的短语中的较大字符概念性地示出)。通过使用具有不同响度的同一组音调,向用户提供正确导航所要求的方向信息。在其它实施例中,以不同响度使用相同音调或相同顺序的音调来示出指引(例如,响亮叮声用于左转并且轻柔叮声用于右转,或反之亦然)。
重新参见图96,当活动音频会话是立体声形式时,该过程平移提示以便示出方向。在一些实施例中,除了平移,该过程任选地使用(在9620)一组非言语音调,这组非言语音调通过利用对应于不同方向的不同音调顺序和/或不同音调响度来提供方向性。使用方向的非言语音调的示例在以上参见图97和图98描述。该过程随后通过在对应于导航所要求的方向的改变的方向上平移一个或多个非言语音调来做出(在9625)非言语提示。随后,该过程退出。
图99A例示本发明的一些实施例中的通过平移非言语可听提示来提供方向信息的实例。该图以两个阶段9901和9902中例示用户设备9900。在该示例中,用户设备9900连接至汽车扬声器9905(例如,通过汽车音频系统的辅助输入线或通过使用)。在用户设备具有立体声扬声器时,同一示例适用。
如阶段9901中所示,用户已经激活语音激活个人助理(例如,通过激活控件9910)或以高于预先确定的阈值的响度来说话。语音激活个人助理正在询问(如标记为1的短语所示)用户“(我能为您做些什么?)”。用户正在就洛杉矶的天气状况进行查询(如标记为2的短语所示)。
在阶段9902中,当语音激活个人辅助正在搜索天气状况时,设备接近导航的下转弯(如9915所示)。如图所示,非言语提示被平移至右扬声器,以便警示用户下一导航转弯并且提供用于右转的方向信息。类似地,当下一导航动作是左转时,提示被平移至左扬声器。如上所述,一些实施例组合平移和特定顺序或响度的音调以提供另外的方向信息。
在图99A的实例中,音频在非言语提示之间被平移以提供对导航的方向的指示。例如,针对将到来的右转在右扬声器上播放非言语指令提示,并且针对将到来的左转在左扬声器上播放非言语指令提示。因此,如果必须在左转之前右转,初始在右扬声器上播放声音以指示将到来的右转,并且随后在左扬声器上播放声音以指示将到来的左转。
在其它实施例中,设备在非言语提示期间执行平移操作,以便进一步增强非言语提示所提供的方向信息。例如,为了指明向右转,非言语提示可在车辆左侧的扬声器上开始播放并且在车辆右侧的扬声器上结束播放。类似地,为了指明向左转,非言语提示可在车辆右侧的扬声器上开始播放并且在车辆左侧的扬声器上结束播放。
图99B例示本发明的一些实施例中的通过在非言语可听提示期间执行平移来提供方向信息的实例。该图以三个阶段9951-9953例示用户设备9950。在该示例中,用户设备9950连接至汽车扬声器9955(例如,通过汽车音频系统的辅助输入线或通过使用)。在用户设备具有立体声扬声器时,同一示例适用。
如阶段9951中所示,用户已经激活语音激活个人助理(例如,通过激活控件9960)或以高于预先确定的阈值的响度来说话。语音激活个人助理正在询问(如标记为1的短语所示)用户“我能为您做些什么?”。用户正在就洛杉矶的天气状况进行查询(如标记为2的短语所示)。
在阶段9952中,当语音激活个人辅助正在搜索天气状况时,设备接近导航的下一转弯(如所显示的导航指令9965所示)。非言语提示在阶段9952中以在左侧一组车辆扬声器上播放曲调或一组曲调(如9970所示)开始。阶段9953在阶段9952之后仅较短时间发生。如图所示,所显示的导航指令9980并未改变。另外,如当前位置指示器9985所指示,车辆位置在阶段9952和9953之间并未显著地改变。在阶段9953中,非言语提示以在右侧一组车辆扬声器上播放曲调或一组曲调(如9975所示)继续。
在非言语指令提示期间执行平移进一步增强非言语指令提示所提供的方向信息。例如,在左扬声器上播放第一曲调之后在右扬声器上播放第二曲调增强非言语提示所提供的从左到右方向信息。类似地,为了播报将到来的左转,非言语提示通过以下方式开始:首先在右侧一组扬声器上播放第一组曲调,之后在右侧一组扬声器上播放第二组曲调,以便增强从右到左方向信息。
在图99B中,可听方向信息通过在左扬声器和右扬声器上平移和播放不同曲调(例如,“叮”声和“咚”声)两者来提供。由于平移提供对方向的感测,一些实施例在左扬声器和右扬声器两者上播放相同曲调(或同一组曲调),并且仅通过执行平移操作来提供可听方向信息。此外,上述声音平移约定将声音从左扬声器平移到右扬声器以指示将到来的右转,并且将声音从右扬声器平移到左扬声器以指示将到来的左转。其它实施例使用相反约定,并且将声音从左扬声器平移到右扬声器以指示将到来的左转,并且将声音从右扬声器平移到左扬声器以指示将到来的右转。
b)以被感知处于媒体内容当前正被播放的水平的音量水平提供言语提示
重新参见图95,过程9500确定(在9545)设备当前是否正在播放不涉及双向用户参与的音频诸如音乐或说出词语。不涉及用户参与的说出词语的示例是播放包括说出词语的播客。如果是,该过程转到下所9550。否则,当没有声音被播放时(即,当安静时),该过程以一定音量来播放(在9560)言语播报,该音量是基于提供提示的应用程序的当前相关音量设定来确定的和/或处于被确定为能被用户最佳感知到的水平。随后,该过程退出。
在当前正在播放不涉及双向用户参与的音频诸如音乐或说出词语时,该过程任选地使当前所播放的音频声音降音(在9550)。该过程随后以一定音量来播放(在9555)言语播报,该音量是基于当前所播放的声音的类型、提供提示的应用程序的当前相关音量设定来确定的和/或处于被确定为能被用户最佳感知到的水平。随后,该过程退出。操作9550和9555的细节在以下参见图101中描述的过程10100来描述。
一些实施例提供一些应用程序诸如导航应用程序的用户可选择的相关音量水平设定。图100例示本发明的一些实施例中的用于设定导航应用程序的相关提示水平的用户界面10000。在该示例中被称为地图10005的应用程序具有四个用户可选择的相关音量设定。设定是无声10010、低音量10015、正常音量10020和高音量10025。
这些音量设定10010-10025用于在设备上无其它音频并发播放时播放导航提示。无声10010设定抑制导航音频提示。在一些实施例中,其它音量设定10015-10025用作以下操作的引导准则:在另一音频在设备上并发播放时调整导航提示语音水平,以便用户感知到处于同一相关音量水平的导航提示和并发播放的提示。
图101概念性地例示本发明的一些实施例中的用于在另一音频会话活动时提供言语导航提示的过程10100。在一些实施例中,过程10100还用于提供其它类型的提示(例如,将到来的文本消息警示)。如图所示,该过程接收(在10105)对做出言语语音提示的请求。例如,该过程在过程9300确定在当前时间可播放长的或短的可听提示时接收请求。过程10100随后确定(在10110)信号测量值是否可用于确定当前所播放的内容的响度。如果不是,该过程转到下述10115。
当信号测量值可用时,该过程动态评估(在10120)用户如何感知正在播放的内容的音量。例如,一些实施例提供音频信号的功率以及其它属性的测量值。这些测量值用于确定用户感知到的正由活动音频会话播放的信号的响度如何。该过程还任选地评估(在10125)音频系统的其它属性,诸如导航应用程序(例如,如以上参见图100所述)、音频路线、输出设备(例如,设备扬声器、耳机、汽车扬声器等)的相关音量设定以及当前音频系统音量设定。基于所有这些评估,该过程以多个音量水平播放(在10130)语音提示和并发音频,使得用户感知到导航提示水平和并发音频水平是在相同水平。随后,如果音量被降低来播放提示,该过程使得(在10137)并发音频的音量水平返回提示前水平。随后,该过程退出。
当信号测量值不可用时,该过程基于内容的类型来评估(在10115)感知到的当前所播放内容的水平。此评估的示例如下所述。该过程还任选地评估(在10135)音频系统的其它属性,诸如导航应用程序、音频路线、输出设备(例如,设备扬声器、耳机、汽车扬声器等)的相关音量设定以及当前音频系统音量设定。该过程随后基于评估来任选地使当前所播放的内容降音(在10140)。该过程随后基于评估来以一定音量水平播放(在10145)语音提示,使得用户感知到导航提示音量处于与当前正在播放内容的音量水平相同的水平。随后,如果音量被降低来播放提示,该过程使(在10150)内容的音量水平返回提示前水平。随后,该过程退出。
图102概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。在该示例中,导航提示相关音量水平被设定为高(即,处于图100中所示的高音量10025),并且正在播放的媒体属于固有地响亮的类型(诸如音乐)。另一方面,语音提示不如所记录的音乐响亮。为了用户在媒体内容的水平下感知到提示,以较高音量水平来播放语音提示以便在提示和媒体内容之间形成高对比度。
如图102中所示,媒体内容10205被降音。随后,语音提示10210在时间t010215和t110220之间播放。随后,使媒体水平返回提示前音量水平。在该示例中,内容以在提示前的最大硬件音量设定的70%来播放。媒体内容被降音至其音量的20%(即,硬件音量水平的14%)。随后,以在提示前播放媒体内容的水平来播放提示。因此,固有地响亮的音频类型(诸如音乐)被降音,并且相对轻柔的提示以较高相关音量水平被播放,从而使得用户感知到媒体内容和提示处于相同音量水平。
虽然在图102的实例中使用正在播放的特定音量水平和特定类型的媒体(固有地响亮),但是本领域的普通技术人员将认识到,当导航提示相关音量水平设定为高时,使媒体内容音量水平降低至较低水平并且以降音前播放媒体内容的水平来播放语音提示可与正在播放的其它音量水平设定和其它类型的媒体(除了固有地响亮的媒体)一起使用。
图103例示本发明的一些实施例中的在语音提示的相关音量水平设定为高音量10025(如图100中所示)并且固有地响亮的内容正在播放时在设备上提供语音提示。设备10300以两个阶段10301和10302示出。在阶段10301中,当导航正在进行时(如路线10320所示),音乐在设备上播放(如10305所示)。
在阶段10302中,设备已经接近下一转弯(如导航指引10310和设备沿路线10320的位置10315所示)。如以上参见图102所述,媒体内容的音量水平被降低(如由较小音调概念性地例示),同时语音提示以在提示前正在播放媒体内容的相同水平来播放。由于提示比音乐轻柔,用户感知到处于相同水平上的两个音量。
图104概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。在该示例中,相关提示音量水平设定为低(即,设定为图100中所示的低音量10015),并且正在播放的媒体属于固有地轻柔的类型(诸如播客)。另一方面,语音提示不如播客的说出词语轻柔。为了用户感知处于媒体内容的水平的语音提示,以与媒体内容相当或略微高于媒体内容的音量水平来播放提示。
如图104中所示,媒体内容10405被降音。随后,语音提示10410在时间t010415和t110420之间播放。随后,使媒体水平返回提示前音量水平。在该示例中,内容以最大硬件音量设定的70%播放。媒体内容被降音至其音量的20%(即,硬件音量水平的14%)。随后,以提示前播放媒体内容的水平的30%(即,以硬件音量水平的21%)来播放提示。因此,固有地轻柔的音频类型(诸如播客)被降音,并且以相同的或略高水平来播放提示。由于播客比语音提示轻柔,以提示前播客音量水平的20%来播放播客并且以提示前播客音量水平的30%来播放语音提示使得用户感知处于相同水平的两个音量,并且还创建足以使用户听到语音提示同时仍能够认知地聆听播客的对比度。
虽然在图104的实例中使用正在播放的特定音量水平和特定类型的媒体(固有地轻柔),但是本领域的普通技术人员将认识到,当导航提示相关音量水平设定为低时,使媒体内容音量水平降低至较低水平并且以降音后播放媒体内容的相同或略高水平来播放语音提示可与正在播放的其它音量水平设定和其它类型的媒体(除了固有地轻柔的媒体)一起使用。
图105例示本发明的一些实施例中的在相关提示音量水平设定为低(即,设定为如图100中所示的低音量10015)并且正在播放固有地轻柔的内容时在设备上提供语音提示。设备10500以两个阶段10501和10502示出。在阶段10501中,当导航正在进行时(如路线10520所示),播客在设备上播放(如标记为1的短语所示)。
在阶段10502中,设备已经接近下一转弯(如导航指引10510和设备沿路线10520的位置10515所示)。如以上参见图104所述,媒体内容的音量水平被降低(如标记为2的短语的较小字符概念性地示出),同时语音提示是以与降音的媒体内容相同或略高音量水平来播放(如标记为3的短语所示)。
图106概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。这是其中正在播放的媒体属于固有地轻柔的类型(诸如播客)的另一示例。另一方面,语音提示不如播客的说出词语轻柔。在该示例中,在正在播放语音提示10610时,继续以相同水平来播放媒体内容10605。
语音提示10610是在时间t010615和t110620之间播放。在该示例中,内容以最大硬件音量设定的70%来播放。随后,以语音提示之前和在语音提示期间播放媒体内容的水平的60%(即,以硬件音量水平的42%)来播放提示。由于播客固有地比语音提示轻柔,以提示前播客音量水平的100%播放播客并且以提示前播客音量水平的60%播放语音提示使得用户感知到处于相同音量水平的语音提示和媒体内容,并且还创建足以使用户听到语音提示同时仍能够认知地聆听播客的对比度。
虽然在图106的实例中使用正在播放的特定音量水平和特定类型的媒体(固有地轻柔),但是本领域的普通技术人员将认识到,当导航提示的相关音量水平设定为低时,以相同音量水平继续播放媒体内容并且以比播放媒体内容低的水平来播放语音提示可与正在播放的其它音量水平设定和其它类型的媒体(除了固有地轻柔的媒体)一起使用。
图107概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。在该示例中,提示的相关音量水平设定为正常(即,设定为图100中所示正常音量10020),并且所播放的媒体属于以正常水平记录的类型(诸如有声读物)。
如图107中所示,媒体内容10705被降音。随后,语音提示10710在时间t010715与t110720之间播放。随后,使得媒体水平返回提示前音量水平。在该示例中,内容以最大硬件音量设定的70%播放。媒体内容被降音至其音量的20%(即,硬件音量水平的14%)。随后,以提示前播放媒体内容的水平的80%(即,以硬件音量水平的56%)来播放提示。由于语音提示和音频内容是以相当响度水平记录的,以提示前媒体内容音量水平的80%播放提示并且以提示前媒体内容音量水平的20%播放媒体内容使得用户感知到处于相同音量水平的提示和媒体内容,并且创建足以使用户听到语音提示同时仍能够认知地聆听有声读物的对比度。
虽然在图107的实例中使用正在播放的特定音量水平和特定类型的媒体(以正常水平记录的媒体),但是本领域的普通技术人员将认识到,当导航提示的相关音量水平设定为正常时,使媒体内容音量水平降低至较低水平并且以降音的媒体内容的水平和在降音前播放媒体内容的水平之间的水平来播放语音提示可与正在播放的其它音量水平设定和其它类型的媒体一起使用。
图108例示本发明的一些实施例中的在提示的相关音量水平设定为正常(即,设定为如图100中所示的正常音量10020)并且以与语音提示类似的响度水平记录内容时在设备上提供语音提示。设备10800以两个阶段10801和10802示出。在阶段10801中,当导航正在进行时(如路线10820所示),有声读物在设备上播放(如标记为1的短语所示)。
在阶段10802中,设备已经接近下一转弯(如导航指引10810和设备沿路线10820的位置10815所示)。如以上参见图107所述,媒体内容的音量水平被降低(如标记为2的短语的较小字符概念性地示出),同时语音提示以提示前有声读物音量水平的一定水平(例如,以80%)来播放(如标记为3的短语示出),该一定水平用以为用户创建音频提示和有声读物是以相同音量水平播放的感知、同时能够认知地聆听有声读物。
c)抑制语音提示
重新参见图95,当语音识别服务(例如,语音激活个人助理或语音激活服务)当前正从用户接收语音输入或正在记录用户的语音以创建语音备忘音频文件时,该过程抑制(在9525)语音提示。该过程任选地显示(9530)或转录语音播报。随后,该过程退出。
在一些实施例中,该过程存储语音提示,并且在预先确定的稍后时间检查提示是否仍然是相关的并且是否可播放提示。例如,一些实施例在导航期间计算到将到来的转弯的估计时间,并且在设备到达转弯点之前的预先确定的时间重试操作9510和9515,以便确定是否可播放提示。例如,如果未到达导航点并且用户已经结束记录语音备忘或语音激活个人助理,就可播放全长言语提示。另一方面,如果未到达导航点并且用户已经结束对个人助理的言语请求而且个人助理当前正在寻找或播放响应,就可播放短的非言语提示。
2.用于提供情景感知可听提示的另选的实施例
一些实施例提供在语音提示是在另一音频会话活动时被播放时增强用户体验的另外技术。如下所述,不同实施例控制使媒体内容降音和播放语音提示之间的时间间隙,以便控制语音提示和媒体内容之间的对比度。其它实施例在可能暂停内容时暂停媒体内容(而非降音)。
a)控制音频提示和媒体内容之间的间隙
图109概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。在该示例中,媒体内容10905在t0 10915被降音,但是语音提示10910直到时间t110920才播放。因此,在播放提示之前形成间隙10925以进行较长暂停。媒体内容和语音提示之间的更显著的暂停(例如,半秒的延迟)加强用户对将到来的提示的感知。虽然示出语音提示处于提示前正在播放内容的水平,但是本领域的技术人员将认识到,在如图109中所示地形成间隙时,提示可以任何水平来播放。
图110概念性地例示本发明的一些实施例中的在用户设备上播放的音频的音量水平对时间。在这个另选的实施例中,在正在使媒体内容降音时播放提示,以便最小化使内容降音所经历的时间段。另选地,可在正在使媒体降音时(即,在t011015和t111020之间)开始播放提示。
b)暂时媒体内容
图111概念性地例示本发明的一些实施例中的用于在另一音频会话活动时播放语音提示的过程11100。如图所示,该过程接收(在11105)对做出言语语音提示的请求。该过程随后确定(在11110)正在播放的内容是否属于可暂停的类型。类似于允许长提示、短提示或不允许提示的音频类型,一些音频类型允许回放暂停。例如,可在不可暂停电话会话时暂停有声读物(有声读物由设备播放和控制)。
当内容不可暂停时,该过程任选地使内容降音(在11130)。该过程随后提供(在11135)语音提示。该过程随后在做出语音提示之后从内容已经到达的地方恢复(在11140)播放内容。操作11130-11140的细节类似于以上参见图95所述的操作,并且为简明起见在此不进行重复。
另一方面,当可暂停内容回放时,该过程暂停(11115)内容。该过程随后提供(在11120)语音提示(例如,全长言语语音提示或非言语短提示)。该过程随后从内容被暂停的地方恢复(在11125)播放内容。
图112例示本发明的一些实施例中的在正在播放可暂停的内容时在设备上提供语音提示。设备11200以三个阶段11201-11203示出。在阶段11201中,当导航正在进行时(如路线11220所示),有声读物在设备上播放(如标记为1的短语所示)。
在阶段11202中,设备已经接近下一转弯(如导航指引11210和设备沿路线11220的位置11215所示)。替代使有声读物降音,暂停有声读物回放并且播放语音提示(如标记为2的短语所示)。在阶段11203中,完成语音提示回放并且恢复有声读物播放(如标记为3的短语所示)。
3.软件架构
图113概念性地例示一些实施例的情景感知引导系统的高级软件架构。本领域的普通技术人员将认识到,图113中示出的模块是特定于一些实施例的情景感知引导系统的,并且一些实施例的音频服务和交互式导航应用程序包括未在此图中示出的许多另外模块(例如,用于地图显示、路线显示、导航的另外方面、文本指令生成、箭头生成、音频输入处理等)。
如图所示,交互式导航应用程序11310包括以下模块:“提供提示播放音量水平”11315、“提供提示的音频文件”11320以及“生成导航指引”11325。另外,交互式导航系统11310包括分别用于存储不同提示的音频文件和导航的相关音频设定的数据存储装置11330和11335。
音频系统11305包括以下模块:“确定所允许的提示类型”11340、“设定音频水平”11345、“设定平移水平”11350以及“音频输出”11355。另外,音频系统11305包括分别用于当前活动音频服务和音频类型以及它们对应的所允许提示的数据存储装置11360和11365。
如图所示,“确定所允许的提示类型”模块11340从当前活动音频服务存储装置接收关于当前活动音频服务的信息。“确定所允许的提示类型”模块11340还从音频类型和所允许提示存储装置11365接收音频类型以及它们对应的所允许提示的列表。基于活动音频服务的类型,“确定所允许的提示类型”模块11340确定当前所允许的音频提示类型。例如,如果当前活动音频服务是当前正对用户的请求提供回答的语音激活个人助理,那么当前允许短的非言语音频提示。另外,如果不允许提示,音频系统11305不仅告知进行查询的应用程序(诸如交互式导航应用程序11310)不应播放提示,而且在系统上强制执行:如果应用程序尝试在此期间播放提示(例如,来自导航应用程序或任何其它应用程序),提示在系统级别被抑制,以便确保在质量最重要的情况下不会对用户音频输入造成附带音频干扰。
“生成导航指引”模块11325发送导航指引以播报给“提供提示的音频文件”模块11320。“提供提示的音频文件”模块11320接收当前所允许的提示类型(例如,当未正在播放其它音频时,短的非言语提示和长的言语提示均是所允许的)。“提供提示播放音量水平”模块11315从导航的相关音量设定存储装置11335接收导航的当前音量设定,确定提示播放音量并且将其转发到“提供提示的音频文件”模块11320。
基于所接收的信息,“提供提示的音频文件”模块11320生成音频提示的音频文件,或从提示的音频文件存储装置11330检索提示的音频文件。“设定音频水平”模块11345从“提供提示的音频文件”模块11320接收提示的音频文件、提示方向性(当提示是非言语提示时)以及提示播放音量。“设定音频水平”模块11345还从当前活动音频服务11370接收要播放的音频内容。
“设定音频水平”模块11345确定音频内容的音量水平,并且将音量水平与提示的音量水平、提示的音频文件以及并发播放的音频内容一起发送到“音频输出”模块11355。“设定音频水平”模块11345还将提示方向性(当提示是非言语提示时)发送给“设定平移水平”模块11350,“设定平移水平”模块11350设定平移水平并且将输出音频内容和音频提示的“音频输出”模块11355设定为平移水平。在图113例示的实施例中,音频系统11305(和“设定平移水平”11350模块)被描述为负责针对提示的方向性来形成立体声平移。在其它实施例(未示出)中,交互式导航应用成11310确定(例如,通过“提供提示的音频文件”模块11320)提示的方向性,并且创建音频文件或从提示的音频文件存储装置11330选择音频文件,在提示的音频文件存储装置11330中,编辑到音频文件中的固有属性形成从一个立体声通道到另一个立体声通道的平移。在这些实施例中,“提供提示的音频文件”模块11320不向音频系统发送提示方向性,而是发送在由音频系统播放时提供平移效果的音频文件。这些实施例也不利用“设定平移水平”11350模块。
VII.电子系统
上文所述的特征和应用程序中的许多可被实现为被指定为在计算机可读存储介质(还称为计算机可读介质)上记录的指令集的软件过程。在这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器的内核或者其它处理单元)执行时,这些指令使得一个或多个处理单元能够执行指令中所指示的动作。计算机可读介质的实例包括但不限于CD-ROM、闪存驱动器、随机存取存储器(RAM)芯片、硬盘驱动器、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)等。计算机可读介质不包括无线地传送或通过有线连接的载波和电信号。
在本说明书中,术语“软件”意在包括驻留在只读存储器中的固件或者存储在磁性存储装置中的应用程序,所述固件或应用程序可被读取到存储器中以用于由处理器进行处理。另外,在一些实施例中,可在保留不同的软件发明的同时,将多个软件发明实现为更大程序的子部分。在一些实施例中,还可将多个软件发明实现为单独程序。最后,共同实施这里所述的软件发明的单独程序的任何组合均在本发明的范围之内。在一些实施例中,当被安装以在一个或多个电子系统上运行时,软件程序定义执行和施行软件程序的操作的一个或多个特定机器具体实施。
A.移动设备
一些实施例的地图绘制和导航应用程序在移动设备诸如智能电话(例如,)和平板电脑(例如,)上操作。图114是此类移动计算设备的架构11400的实例。移动计算设备的示例包括智能电话、平板电脑、膝上型电脑等。如图所示,移动计算设备11400包括一个或多个处理单元11405、存储器接口11410以及外围设备接口11415。
外围设备接口11415耦接至各种传感器和子系统,包括摄像机子系统11420、无线通信子系统11425、音频子系统11430、输入/输出子系统11435等。外围设备接口11415允许处理单元11405和各种外围设备之间的通信。例如,取向传感器11445(例如,陀螺仪)和加速度传感器11450(例如,加速度计)耦接至外围设备接口11415,以便有利于取向和加速功能。
摄像机子系统11420耦接至一个或多个光学传感器11440(例如,电荷耦合设备(CCD)光学传感器、互补金属氧化物半导体(CMOS)光学传感器等)。与光学传感器11440耦接的摄像机子系统11420有利于摄像机功能,诸如图像和/或视频数据捕获。无线通信子系统11425用于有利于通信功能。在一些实施例中,无线通信子系统11425包括射频接收器和发射器,以及光学接收器和发射器(图114中未示出)。一些实施例的这些接收器和发射器被实现为在一个或多个通信网络之上操作,通信网络诸如GSM网络、Wi-Fi网络、蓝牙网络等。音频子系统11430耦接至扬声器以输出音频(例如,输出语音导航指令)。另外,音频子系统11430耦接至麦克风以有利于支持语音的功能,诸如语音识别(例如,用于搜索)、数字记录等。
输入/输出子系统11435涉及输入/输出外围设备(诸如显示器、触摸屏等)和处理单元11405的数据总线之间通过外围设备接口11415的传输。输入/输出子系统11435包括触摸屏控制器11455和其它输入控制器11460以有利于输入/输出外围设备和处理单元11405的数据总线之间的传输。如图所示,触摸屏控制器11455耦接至触摸屏11465。触摸屏控制器11455使用任何多点触感技术来检测触摸屏11465上的接触和移动。其它输入控制器11460耦接至其它输入/控制设备,诸如一个或多个按钮。一些实施例包括近触感屏和对应控制器,该控制器代替触摸交互或除了触摸交互之外可检测近触摸交互。
存储器接口11410耦接至存储器11470。在一些实施例中,存储器11470包括易失性存储器(例如,高速随机存取存储器)、非易失性存储器(例如,闪存存储器)、易失性存储器和非易失性存储器的组合,和/或任何其它类型的存储器。如图114中所示,存储器11470存储操作系统(OS)11472。OS 11472包括用于处理基础系统服务和用于执行硬件相关任务的指令。
存储器11470还包括:有利于与一个或多个另外设备进行通信的通信指令11474;有利于图形用户界面处理的图形用户界面指令11476;有利于图像相关的处理和功能的图像处理指令11478;有利于输入相关(例如,触摸输入)的过程和功能的输入处理指令11480;有利于音频相关的过程和功能的音频处理指令11482;以及有利于摄像机相关的过程和功能的摄像机指令11484。上述指令仅是示例性的,并且在一些实施例中,存储器11470包括另外和/或其它指令。例如,用于智能电话的存储器可包括有利于电话相关的过程和功能的电话指令。另外,存储器可包括用于地图绘制和导航应用程序以及其它应用程序的指令。以上所识别的指令无需实现为独立的软件程序或模块。可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中,实现移动计算设备的各种功能。
虽然图114中例示的组件被示出为独立的组件,但是本领域的普通技术人员将认识到,可将两个或更多个组件集成到一个或多个集成电路中。另外,两个或更多个组件可由一条或多条通信总线或信号线来耦接在一起。另外,虽然已将许多功能描述为由一个组件执行,但是本领域的技术人员将认识到,可将相对于图114所述的功能拆分到两个或更多个集成电路中。
B.计算机系统
图115概念性地例示实现本发明的一些实施例所利用的电子系统11500的另一个实例。电子系统11500可为计算机(例如,台式计算机、个人计算机、平板电脑等)、电话、PDA或任何其它种类的电子或计算设备。此类电子系统包括各种类型的计算机可读介质以及用于各种其它类型的计算机可读介质的接口。电子系统11500包括总线11505、处理单元11510、图形处理单元(GPU)11515、系统存储器11520、网络11525、只读存储器11530、永久性存储设备11535、输入设备11540以及输出设备11545。
总线11505总体表示可通信地连接电子系统11500的许多内部设备的所有系统、外围设备以及芯片组总线。例如,总线11505可通信地将处理单元11510与只读存储器11530、GPU 11515、系统存储器11520以及永久性存储设备11535连接。
处理单元11510从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本发明的过程。在不同实施例中,一个或多个处理单元可以为单个处理器或者多核处理器。一些指令被传送至GPU 11515并且由GPU 11515执行。GPU 11515可卸载各种计算指令,或补充由处理单元11510提供的图像处理。在一些实施例中,可使用CoreImage的内核着色语言来提供此类功能。
只读存储器(ROM)11530存储处理单元11510和电子系统的其它模块所需的静态数据和指令。另一方面,永久性存储设备11535是读写存储器设备。此设备是即使在电子系统11500关闭时也存储指令和数据的非易失性存储器单元。本发明的一些实施例将海量存储设备(诸如磁盘或光盘及其对应的硬盘驱动器、集成闪存存储器)用作永久性存储设备11535。
其它实施例将可移动的存储设备(诸如软盘、闪存存储器设备等,及其对应的驱动器)用作永久性存储设备。与永久性存储设备11535一样,系统存储器11520是读写存储器设备。但是,与存储设备11535不同的是,系统存储器11520是易失性读写存储器,诸如随机存取存储器。系统存储器11520存储处理器在运行时所需的指令和数据中的一些。在一些实施例中,本发明的过程存储在系统存储器11520、永久性存储设备11535和/或只读存储器11530中。例如,各种存储器单元包括用于根据一些实施例处理多媒体片段的指令。处理单元11510从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行一些实施例的过程。
总线11505还连接至输入设备11540和输出设备11545。输入设备11540使得用户能够将信息传达至电子系统并且选择至电子系统的命令。输入设备11540包括字母数字键盘和指示设备(还称作“光标控制设备”)、摄像机(例如,网络摄像机)、麦克风或用于接收语音命令的类似设备等。输出设备11545显示由电子系统生成的图像或者其它输出数据。输出设备11545包括打印机和显示设备诸如阴极射线管(CRT)或液晶显示器(LCD),以及扬声器或类似的音频输出设备。一些实施例包括充当输入设备和输出设备两者的设备,诸如触摸屏。
最后,如图115中所示,总线11505还通过网络适配器(未示出)将电子系统11500耦接至网络11525。这样,计算机可以是计算机的网络(诸如局域网(“LAN”)、广域网(“WAN”)或内联网)的一部分,或者可以是网络的网络(诸如互联网)的一部分。电子系统11500的任何或所有组件均可与本发明结合使用。
一些实施例包括将计算机程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的电子部件,诸如微处理器、存储装置以及存储器。此类计算机可读介质的一些实例包括RAM、ROM、只读光盘(CD-ROM)、可刻录光盘(CD-R)、可重写光盘(CD-RW)、只读数字通用光盘(例如,DVD-ROM、双层DVD-ROM)、各种可刻录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡,mini-SD卡、micro-SD卡等)、磁性和/或固态硬盘驱动器、只读和可刻录盘、超密度光盘、任何其它光学或磁性介质以及软盘。计算机可读介质可存储计算机程序,该计算机程序可由至少一个处理单元来执行并且包括用于执行各种操作的指令集。计算机程序或者计算机代码的实例包括机器代码,诸如由编译器所产生的机器代码,以及包括可由计算机、电子部件或微处理器使用解译器来执行的更高级别代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但一些实施例由一个或多个集成电路来执行,该一个或多个集成电路诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施例中,此类集成电路执行存储在电路自身上的指令。此外,一些实施例执行存储在可编程逻辑设备(PLD)、ROM或RAM设备中的软件。
如本说明书以及本专利申请的任何权利要求所用,术语“计算机”、“服务器”、“处理器”及“存储器”均是指电子或其它技术设备。这些术语不包括人或者人的群组。出于本说明书的目的,术语显示或正在显示意指在电子设备上显示。如本说明书以及本专利申请的任何权利要求所用,术语“计算机可读介质”以及“机器可读介质”完全限于以可由计算机读取的形式存储信息的有形的物理对象。这些术语不包括任何无线信号、有线下载信号以及任何其它短暂信号。
VIII.地图服务环境
各种实施例可在地图服务操作环境内操作。图116例示根据一些实施例的地图服务操作环境。地图服务11630(也被称作地图绘制服务)可为通过各种通信方法和协议与地图服务11630通信的一个或多个客户端设备11602a-11602c提供地图服务。在一些实施例中,地图服务11630提供地图信息以及其它地图相关数据,诸如二维地图图像数据(例如,利用卫星图像的道路的悬空视图)、三维地图图像数据(例如,具有三维特征诸如建筑的横贯地图)、路线和指引计算(例如,轮渡路线计算或步行的两点之间的指引)、实时导航数据(例如,二维或三维逐向视觉导航数据)、位置数据(例如,客户端设备当前所在的位置)以及其它几何形状数据(例如,无线网络覆盖、天气、交通信息、或附近感兴趣点)。在各种实施例中,地图服务数据可包括用于不同国家和地区的本地化标签。本地化标签可用于在客户端设备上以不同语言呈现地图标签(例如,街道名称、城市名称、感兴趣点)。客户端设备11602a-11602c可通过获得地图服务数据来利用这些地图服务。客户端设备11602a-11602c可实施处理地图服务数据的各种技术。客户端设备11602a-11602c随后可向各种实体提供地图服务,实体包括但不限于:用户、内部软件或硬件模块、和/或客户端设备11602a-11602c外部的其它系统或设备。
在一些实施例中,地图服务由分布式计算系统中的一个或多个节点来实现。每个节点可被分配地图服务的一个或多个服务或组件。一些节点可被分配地图服务的相同地图服务或组件。在一些实施例中,负载平衡节点将访问或请求分布至地图服务内的其它节点。在一些实施例中,地图服务被实现为单个系统,诸如单服务器。服务器内的不同模块或硬件设备可实现地图服务所提供的各种服务中的中的一个或多个。
在一些实施例中,地图服务通过生成呈各种格式的地图服务数据来提供地图服务。在一些实施例中,地图服务数据的一种格式是地图图像数据。地图图像数据向客户端设备提供图像数据,使得客户端设备可处理图像数据(例如,将图像数据渲染和/或显示为二维或三维地图)。地图图像数据,无论二维形式还是三维形式,都可指定一个或多个地图图块。地图图块可为较大地图图像的一部分。将地图的地图图块组合在一起产生初始地图。可根据地图图像数据、路线规划或导航数据或任何其它地图服务数据生成图块。在一些实施例中,地图图块是基于栅格的地图图块,其中图块的尺寸范围是从比常用的256像素乘256像素图块更大和更小的任何尺寸。基于栅格的地图图块可以任何数量标准数字图像表示来编码,包括但不限于位图(.bmp)、图形交换格式(.gif)、联合图像专家组(.jpg、.jpeg等)、便携网络图形(.png)或标记图像文件格式(.GIFf)。在一些实施例中,地图图块是使用向量图形来编码的基于向量的地图图块,向量图形包括但不限于可缩放向量图形(.svg)或绘图文件(.drw)。一些实施例还包括具有向量和栅格数据的组合的图块。与地图图块有关的元数据或其它信息也可包括在地图块内或与地图图块一起,从而向客户端设备提供另外的地图服务数据。在各种实施例中,利用各种标准和/或协议对地图图块进行编码以便传输,标准和/或协议中的一些在以下示例中描述。
在各种实施例中,可根据缩放水平从具有不同分辨率的图像数据构造地图图块。例如,对于低缩放水平(例如,世界或全球视图),地图或图像数据的分辨率不需要如处于高缩放水平(例如,城市或街道水平)的分辨率那样高。例如,当处于全球视图时,可能无需渲染街道级别伪像,因为这些对象在许多情况下将会小到可忽略不计。
在一些实施例中,地图服务在编码地图图块以便传输之前执行分析图块的各种技术。这种分析可优化客户端设备和地图服务两者的地图服务性能。在一些实施例中,根据基于向量的图形技术来分析地图图块的复杂性,并且利用复杂层和非复杂层来构造地图图块。还可针对可渲染为图像纹理的公共图像数据或图案分析地图图块,并且通过依赖于图像掩模来构造地图图块。在一些实施例中,地图图块中的基于栅格的图像数据包含某些掩模值,这些掩模值与一个或多个纹理相关联。一些实施例还分析地图图块的指定特征,指定特征可与包含样式标识符的某些地图样式相关联。
在一些实施例中,其它地图服务依赖于各种数据格式与地图图块分开地生成地图服务数据。例如,提供位置数据的地图服务可利用符合位置服务协议的数据格式,诸如但不限于:无线电资源位置服务协议(RRLP)、用于码分多址接入(CDMA)的TIA 801、无线电资源控制(RRC)定位协议、或LTE定位协议(LPP)。实施例还可从客户端设备接收或请求辨识设备能力或属性(例如,硬件规格或操作系统版本)或者通信能力(例如,如由无线信号强度或有线或无线网络类型确定的设备通信带宽)的数据。
地图服务可从内部或外部源获得地图服务数据。例如,地图图像数据中使用的卫星图像可从外部服务、或内部系统、存储设备、或节点获得。其它示例可包括但不限于:GPS辅助服务器、无线网络覆盖数据库、企业或个人目录、天气数据、政府信息(例如,建设更新或道路名称改变)或交通报告。地图服务的一些实施例可更新地图服务数据(例如,无线网络覆盖),以便分析来自客户端设备的未来请求。
地图服务的各种实施例可响应于客户端设备对地图服务的请求。这些请求可针对特定地图、或地图的一部分。一些实施例将对地图的请求格式化为对某些地图图块的请求。在一些实施例中,请求还向地图服务提供用于路线计算的起点位置(或当前位置)和目标位置。客户端设备还可请求地图服务呈现信息,诸如地图纹理或样式表。在至少一些实施例中,请求还是实现逐向导航的一系列请求之一。对其它几何形状数据的请求可包括但不限于:对当前位置、无线网络覆盖、天气、交通信息或附近感兴趣点的请求。
在一些实施例中,地图服务分析客户端设备对优化设备或地图服务操作的请求。例如,地图服务可识别客户端设备的位置处于通信较差(例如,无线信号较弱)的区域,并且发送更多地图服务数据以在通信有损失情况下供应客户端设备、或发送利用不同客户端硬件(例如,取向传感器)或软件(例如,利用无线位置服务或Wi-Fi定位而非基于GPS的服务)的指令。在另一示例中,地图服务可分析客户端设备对基于向量的地图图像数据的请求,并且确定基于栅格的地图数据根据图像的复杂性更好地优化地图图像数据。其它地图服务的实施例可对客户端设备请求执行类似分析,并且因此,以上示例并不旨在进行限制。
客户端设备(例如,客户端设备11602a-11602c)的各种实施例实现在不同便携式多功能设备类型上。客户端设备11602a-11602c通过各种通信方法和协议来利用地图服务11630。在一些实施例中,客户端设备11602a-11602c从地图服务11630获得地图服务数据。客户端设备11602a-11602c请求或接收地图服务数据。客户端设备11602a-11602c随后处理地图服务数据(例如,渲染和/或显示数据),并且向设备上的另一软件或硬件模块或向外部设备或系统发送数据。
根据一些实施例,客户端设备实现渲染和/或显示地图的技术。可以各种格式诸如上述地图图块来请求或接收这些地图。客户端设备可以二维或三维视图渲染地图。客户端设备的一些实施例显示所渲染的地图,并且允许用户、系统或提供输入的设备操纵地图中的虚拟摄像机,从而根据虚拟摄像机的位置、取向和视场来改变地图显示。各种形式和输入设备被实现用来操纵虚拟摄像机。在一些实施例中,通过某些单个或组合手势(例如,触摸和保持、或横扫)进行的触摸输入操纵虚拟摄像机。其它实施例允许对设备的物理位置进行的操纵以便操纵虚拟摄像机。例如,客户端设备可从其当前位置向上倾斜以操纵虚拟摄像机向上旋转。在另一示例中,客户端设备可从其当前位置向前倾斜以向前移动虚拟摄像机。可实现客户端设备的其它输入设备,包括但不限于听觉输入(例如,输出词语)、物理键盘、鼠标和/或操纵杆。
一些实施例对虚拟摄像机操纵提供各种可视反馈,诸如在从二维地图视图转变成三维地图视图时显示可能的虚拟摄像机操纵的动画。一些实施例还允许进行输入以选择地图特征或对象(例如,建筑物)并且加亮对象,从而产生维持虚拟摄像机对三维空间的感知的模糊效果。
在一些实施例中,客户端设备实现导航系统(例如,逐向导航)。导航系统提供可向用户显示的指引或路线信息。客户端设备的一些实施例从地图服务请求指引或路线计算。客户端设备可从地图服务接收地图图像数据和路线数据。在一些实施例中,客户端设备实现逐向导航系统,逐向导航系统基于从地图服务和/或其它位置系统诸如全球定位卫星(GPS)接收的位置信息和路线信息来提供实时路线和指引信息。客户端设备可显示反应客户端设备的当前位置的地图图像数据并且实时更新地图图像数据。导航系统可提供听觉或视觉指引以遵循某条路线。
根据一些实施例,虚拟摄像机被实现以操纵导航地图数据。在一些实施例中,客户端设备允许设备调整虚拟摄像机显示取向以朝向路线目标偏置。一些实施例还允许虚拟摄像机通过模拟虚拟摄像机的惯性运动来导航转弯。
客户端设备实现利用来自地图服务的地图服务数据的各种技术。一些实施例实现优化二维和三维地图图像数据的渲染的一些技术。在一些实施例中,客户端设备本地存储渲染信息。例如,客户端存储样式表,该样式表提供用于包含样式标识符的图像数据的渲染指引。在另一示例中,可存储公共图像纹理以减少从地图服务传输的地图图像数据的量。不同实施例中的客户端设备实现渲染二维和三维地图图像数据的各种建模技术,建模技术的示例包括但不限于:从二维建筑物占有面积数据生成三维建筑物;对二维和三维地图对象建模以确定客户端设备通信环境;生成用于确定从某个虚拟摄像机位置是否可看到地图标签的模型;以及生成用于在地图图像数据之间平滑转变的模型。在一些实施例中,客户端设备还以某些技术来对地图服务数据定序或区分优先次序。例如,客户端设备检测虚拟摄像机的运动或速度,如果运动或速度超过某些阈值,则加载并渲染出某些区域的详细程度较低的地图数据。其它示例包括:将基于向量的曲线渲染为一系列点,针对与地图服务具有较差通信的区域预先加载地图图像数据,基于显示缩放水平来调节纹理,或根据复杂性来渲染地图图像数据。
在一些实施例中,客户端设备利用与地图图块分开的各种数据格式进行通信。例如,一些客户端设备实现辅助全球定位卫星(A-GPS)并且与利用符合位置服务协议的数据格式的位置服务通信,位置服务协议诸如但不限于:无线电资源位置服务协议(RRLP)、用于码分多址接入(CDMA)的TIA801、无线电资源控制(RRC)定位协议、或LTE定位协议(LPP)。客户端设备还可直接接收GPS信号。实施例还可在具有或不具有来自地图服务的征求情况下发送数据,从而辨识设备的能力或属性(例如,硬件规格或操作系统版本)或者通信能力(例如,如由无线信号强度或有线或无线网络类型确定的设备通信带宽)。
图116例示地图服务11630和客户端设备11602a-11602c的操作环境11600的一种可能的实施例。在一些实施例中,设备11602a、11602b和11602c通过一个或多个有线或无线网络11610进行通信。例如,无线网络11610诸如蜂窝网络可通过使用网关11614与广域网(WAN)11620诸如互联网通信。在一些实施例中,网关11614提供面向分组移动数据服务诸如通用分组无线电服务(GPRS)、或其它移动数据服务,这些服务允许无线网络向其它网络诸如广域网11620传输数据。同样,接入设备11612(例如,IEEE 802.11g无线接入设备)提供对WAN 11620的通信接入。设备11602a和11602b可为能够与地图服务通信的任何便携式电子或计算设备。设备11602c可为能够与地图服务通信的任何非便携式电子或计算设备。
在一些实施例中,语音和数据通信均通过无线网络11610和接入设备11612来建立。例如,设备11602a可通过无线网络11610、网关11614和WAN 11620来拨打和接收电话呼叫(例如,使用互联网协议语音技术(VoIP)协议)、发送和接收电子邮件消息(例如,使用简单邮件传输协议(SMTP)、或邮局协议3(POP3)),并且检索电子文档和/或数据流,诸如网页、照片和视频(例如,使用传输控制协议/互联网协议(TCP/IP)或用户数据报协议(UDP))。同样,在一些具体实施中,设备11602b和11602c可通过接入设备11612和WAN 11620来拨打和接收电话呼叫、发送和接收电子邮件消息并且检索电子文档。在各种实施例中,任何例示的客户端设备可使用持久性连接与地图服务11630和/或其它服务11650通信,持久性连接是根据一个或多个安全协议诸如安全套接层(SSL)协议或传输层安全(TLS)协议来建立的。
设备11602a和11602b还可通过其它方式来建立通信。例如,无线设备11602a可通过无线网络11610与其它无线设备(例如,其它设备11602b、手机等)通信。同样,设备11602a和11602b可使用一个或多个通信子系统诸如来自华盛顿州柯克兰市Bluetooth SpecialInterest Group公司的通信,来建立对等通信11640(例如,个人区域网)。设备11602c还可与设备11602a和11602b建立对等通信(未示出)。也可实现其它通信协议和拓扑结构。设备11602a和11602b还可从GPS卫星11660接收全球定位卫星(GPS)信号。
设备11602a、11602b和11602c可通过一个或多个有线和/或无线网络11612或11610与地图服务11630通信。例如,地图服务11630可将地图服务数据提供给渲染设备11602a、11602b和11602c。地图服务11630还可与其它服务11650通信以获得实现地图服务的数据。地图服务11630和其它设备11650还可从GPS卫星11660接收GPS信号。
在各种实施例中,地图服务11630和/或其它服务11650被配置为处理来自任何客户端设备的搜索请求。搜索请求可包括但不限于:对企业、地址、住宅位置、感兴趣点、或它们的一些组合的查询。地图服务11630和/或其它服务11650可被配置为返回与多种参数相关的结果,参数包括但不限于:输入到地址栏或其它文本输入字段中的位置(包括缩写和/或其它速记符号)、当前地图视图(例如,用户可能在位于一个位置时在多功能设备上查看另一位置)、用户的当前位置(例如,在当前地图视图并不包括搜索结果的情况下)以及当前路线(如果存在的话)。在各种实施例中,这些参数可基于不同的优先级权重影响搜索结果的组成(和/或搜索结果的定序)。在各种实施例中,所返回的搜索结果可为基于特定准则来选择的结果的子集,特定准则包括但不限于搜索结果(例如,特定感兴趣点)已经被请求的次数、对与搜索结果相关联的质量的衡量(例如,最高用户或编辑评论评级)、和/或搜索结果的评论量(例如,搜索结果被评论或评级的次数)。
在各种实施例中,地图服务11630和/或其它服务11650被配置为提供自动完成搜索结果,自动完成搜索结果被显示在客户端设备上,诸如在地图绘制应用程序内。例如,当用户在多功能设备上输入一个或多个搜索关键词时,自动完成搜索结果可填充屏幕的一部分。在一些情况下,这个特征可节省用户时间,因为期望搜索结果可在用户输入完整搜索查询之前显示出来。在各种实施例中,自动完成搜索结果可为客户端在客户端设备上找到的搜索结果(例如,书签或联系人)、地图服务11630和/或其它服务11650在其它地方(例如,从互联网)找到的搜索结果和/或它们的一些组合。与命令的情况一样,用户可通过语音或通过键入来输入任何搜索查询。多功能设备可被配置为在任何本文所述地图显示内图形地显示搜索结果。例如,图针或其它图形指示器可将搜索结果的位置指定为感兴趣点。在各种实施例中,响应于用户对这些感兴趣点之一的选择(例如,触摸选择,诸如轻击),多功能设备被配置为显示关于所选择的感兴趣点的另外的信息,包括但不限于评级、评论或评论片段、操作小时数、商店状态(例如,对于企业开放,永久关闭等)和/或感兴趣点的店面的图像。在各种实施例中,任何这种信息都可显示在响应于用户对感兴趣点的选择而显示的图形信息卡片上。
在各种实施例中,地图服务11630和/或其它服务11650提供一个或多个反馈机制以从客户端设备11602a-11602c接收反馈。例如,客户端设备可向地图服务11630和/或其它服务11650提供关于搜索结果的反馈(例如,指定评级、评论、暂时或永久企业歇业、错误等的反馈);这种反馈可用于更新关于感兴趣点的信息,以便在未来提供更准确或更新的搜索结果。在一些实施例中,地图服务11630和/或其它服务11650可向客户端设备提供测试信息(例如,A/B测试),以便确定哪个搜索结果是最佳的。例如,客户端设备可以随机间隔接收两个搜索结果并向用户呈现它们,并且允许用户指示最佳结果。客户端设备可向地图服务11630和/或其它服务11650报告测试结果,以便基于所选择的测试技术来改进未来搜索结果,所选择的测试技术诸如其中将基线控制样本与多个单变量测试样本进行比较以便改进结果的A/B测试技术。
虽然已参考许多特定细节描述了本发明,但本领域的普通技术人员将认识到,可在不脱离本发明的实质的情况下以其它特定形式来体现本发明。例如,许多图例示各种触摸手势(例如,轻按、双击、横扫手势、按下并保持手势等)。然而,所例示操作中的许多操作可经由不同触摸手势(例如,横扫而非轻按等)或由非触摸输入(例如,使用光标控制器、键盘、触摸板/触控板、近触感屏等)来执行。另外,多个附图概念性地例示多个过程。这些过程的特定操作可不以所示出和描述的确切顺序被执行。可不在操作的一个连续系列中执行该特定操作,并且可在不同实施例中执行不同的特定操作。此外,该过程可使用若干子过程来实施,或者作为更大宏过程而实施。
虽然已参考许多特定细节描述了本发明,但本领域的普通技术人员将认识到,可在不脱离本发明的实质的情况下以其它特定形式来体现本发明。另外,多个附图概念性地例示多个过程。这些过程的特定操作可不以所示出和描述的确切顺序被执行。可不在操作的一个连续系列中执行该特定操作,并且可在不同实施例中执行不同的特定操作。此外,该过程可使用若干子过程来实施,或者作为更大宏过程而实施。因此,本领域的普通技术人员将理解,本发明不受前述示例性细节限制,而是将由所附的权利要求所限定。
Claims (34)
1.一种在电子设备上提供情景感知音频提示的方法,所述电子设备包括利用音频的多个服务,所述方法包括:
当所述多个服务中的服务当前在接收语音输入时,抑制所述音频提示,其中接收语音输入包括以下至少一项:
接收来自人的言语音频输入以及利用语音识别来解释所述言语音频输入;或者
接收对音频文件进行记录的请求,接收包括说出词语的语音输入,以及将所接收的语音输入记录在所述音频文件中;以及
当包括发送和接收说出词语的会话式音频会话在所述多个服务中的服务上活动但当前没有任何服务在接收语音输入时,允许非言语音频提示。
2.根据权利要求1所述的方法,其中所述多个服务包括导航服务,所述方法还包括:接收包括来自所述导航服务的方向指令的非言语音频提示。
3.根据权利要求2所述的方法,其中所述方向指令通过播放辨识左方向指令的第一组音调和辨识右方向指令的第二组音调来提供,其中所述第一组音调和所述第二组音调包括至少一种不同音调。
4.根据权利要求2所述的方法,其中所述方向指令通过播放辨识左方向指令的第一组音调和辨识右方向指令的第二组音调来提供,其中所述第一组音调和所述第二组音调中均包括至少一种特定音调,其中在所述第一组音调和所述第二组音调中的每组中,所述特定音调以不同响度来播放。
5.根据权利要求2所述的方法,其中所述电子设备的音频在一组立体声扬声器上播放,其中所述方向指令通过以下方式来提供:
当所接收的音频提示包括右方向信息时,将所述非言语音频提示平移至所述一组立体声扬声器中的右扬声器;以及
当所接收的音频提示包括左方向信息时,将所述非言语音频提示平移至所述一组立体声扬声器中的左扬声器。
6.根据权利要求1所述的方法,还包括:当所述多个服务中没有任何服务具有活动的会话式音频会话并且所述多个服务中没有任何服务当前在接收语音输入时,允许言语音频提示和非言语音频提示。
7.根据权利要求6所述的方法,还包括:
告知所述多个服务中的特定服务关于当前是允许非言语音频提示、言语音频提示、还是不允许言语音频提示;
接收来自所述特定服务的音频提示;
当所述音频提示包括说出词语并且当前允许言语音频提示时,播放所述音频提示;以及
当所述音频提示不包括说出词语并且当前允许非言语音频提示时,播放所述音频提示。
8.根据权利要求6所述的方法,还包括:
当允许言语音频提示并且服务当前在所述设备上播放音频时,接收言语音频提示;以及
使所述言语音频提示与当前在所述设备上播放的所述音频混合。
9.根据权利要求8所述的方法,其中所述电子设备包括针对所接收的言语音频提示的一组相关响度设定,其中所述混合包括:基于所接收的音频提示的所述相关响度设定来使所述言语音频提示或当前所播放的所述音频中的至少一者降音。
10.根据权利要求6所述的方法,还包括:
当允许言语音频提示并且服务当前正在所述设备上播放音频时,接收言语音频提示;
暂停当前在所述设备上播放的所述音频;
播放所述言语音频提示;以及
在播放所述言语音频提示之后,通过所述服务恢复播放所述音频。
11.一种在电子设备上提供与导航呈现相关联的情景感知音频导航提示的方法,所述电子设备包括利用音频的多个服务,所述电子设备的音频在多个立体声扬声器上播放,所述方法包括:
识别导航指令以提供用于导航操纵;
通过确定所述设备的任何音频服务当前被使用以接收第一类型语音输入还是第二类型的语音输入,来确定所述电子设备的允许的音频提示类型,以为识别的所述导航指令提供,
确定允许的音频提示类型包括:
基于检测到第一音频服务当前正在接收所述第一类型的语音输入,确定不允许音频提示,其中所述第一类型的语音输入包括语音识别服务或显示音频文件记录中的第一语音输入;
基于检测到第二音频服务当前正在接收与所述第一类型的语音输入不同的所述第二类型的语音输入,确定允许非言语音频提示,其中所述第二类型的语音输入包括具有说出词语的会话式音频会话、但不包括所述语音识别服务或所述显示音频文件记录中的所述第一语音输入;
基于检测到没有音频服务当前正在接收所述第一类型的语音输入或所述第二类型的语音输入,确定允许言语音频提示;以及
播放包括方向信息的识别的所述导航指令的、允许的音频提示类型。
12.根据权利要求11所述的方法,其中播放包括方向信息的非言语音频提示包括:将所述非言语音频提示从所述多个立体声扬声器中的第一组扬声器平移至所述多个立体声扬声器中的第二组扬声器以便提供所述方向信息。
13.根据权利要求11所述的方法,其中所述导航操纵是右转,其中播放包括方向信息的非言语音频提示包括:
在所述多个立体声扬声器中的一组左扬声器上播放第一组非言语音调;以及
在播放所述第一组非言语音调之后,在所述多个立体声扬声器中的一组右扬声器上播放第二组非言语音调。
14.根据权利要求11所述的方法,其中所述导航操纵是左转,其中播放所述包括方向信息的非言语音频提示包括:
在所述多个立体声扬声器中的一组右扬声器上播放第一组非言语音调;以及
在播放所述第一组非言语音调之后,在所述多个立体声扬声器中的一组左扬声器上播放第二组非言语音调。
15.根据权利要求11所述的方法,其中所述导航操纵是右转,其中播放包括方向信息的非言语音频提示包括:
在所述多个立体声扬声器中的一组右扬声器上播放第一组非言语音调;以及
在播放所述第一组非言语音调之后,在所述多个立体声扬声器中的一组左扬声器上播放第二组非言语音调。
16.根据权利要求11所述的方法,其中所述导航操纵是左转,其中播放包括方向信息的非言语音频提示包括:
在所述多个立体声扬声器中的一组左扬声器上播放第一组非言语音调;以及
在播放所述第一组非言语音调之后,在所述多个立体声扬声器中的一组右扬声器上播放第二组非言语音调。
17.根据权利要求11所述的方法,其中播放包括方向信息的非言语音频提示包括:
当所述非言语音频提示包括左方向信息时,将所述非言语音频提示平移至所述多个立体声扬声器中的一组立体声扬声器中的左扬声器;以及
当所述非言语音频提示包括右方向信息时,将所述非言语音频提示平移至所述一组立体声扬声器中的右扬声器。
18.一种用于在电子设备上提供情景感知音频提示的装置,所述电子设备包括利用音频的多个服务,所述装置包括:
用于当所述多个服务中的服务当前在接收语音输入时,抑制所述音频提示的装置,其中接收语音输入包括以下至少一项:
接收来自人的言语音频输入以及利用语音识别来解释所述言语音频输入;
接收对音频文件进行记录的请求,接收包括说出词语的语音输入,以及将所接收的语音输入记录在所述音频文件中;以及
用于当包括发送和接收说出词语的会话式音频会话在所述多个服务中的服务上活动但当前没有任何服务在接收语音输入时,允许非言语音频提示的装置。
19.根据权利要求18所述的装置,其中所述多个服务包括导航服务,所述装置还包括用于接收包括来自所述导航服务的方向指令的非言语音频提示的装置。
20.根据权利要求19所述的装置,其中所述方向指令通过播放辨识左方向指令的第一组音调和辨识右方向指令的第二组音调来提供,其中所述第一组音调和所述第二组音调包括至少一种不同音调。
21.根据权利要求19所述的装置,其中所述方向指令通过播放辨识左方向指令的第一组音调和辨识右方向指令的第二组音调来提供,其中所述第一组音调和所述第二组音调中均包括至少一种特定音调,其中在所述第一组音调和所述第二组音调中的每组中,所述特定音调以不同响度来播放。
22.根据权利要求19所述的装置,其中所述电子设备的音频在一组立体声扬声器上播放,其中所述方向指令通过以下方式来提供:
当所接收的音频提示包括右方向信息时,将所述非言语音频提示平移至所述一组立体声扬声器中的右扬声器;以及
当所接收的音频提示包括左方向信息时,将所述非言语音频提示平移至所述一组立体声扬声器中的左扬声器。
23.根据权利要求18所述的装置,还包括用于下列的装置:当所述多个服务中没有任何服务具有活动的会话式音频会话并且所述多个服务中没有任何服务当前在接收语音输入时,允许言语音频提示和非言语音频提示。
24.根据权利要求23所述的装置,还包括:
用于告知所述多个服务中的特定服务关于当前是允许非言语音频提示、言语音频提示、还是不允许言语音频提示的装置;
用于接收来自所述特定服务的音频提示的装置;
用于当所述音频提示包括说出词语并且当前允许言语音频提示时,播放所述音频提示的装置;以及
用于当所述音频提示不包括说出词语并且当前允许非言语音频提示时,播放所述音频提示装置。
25.根据权利要求23所述的装置,还包括:
用于当允许言语音频提示并且服务当前在所述设备上播放音频时,接收言语音频提示的装置;以及
用于使所述言语音频提示与当前在所述设备上播放的所述音频混合的装置。
26.根据权利要求25所述的装置,其中所述电子设备包括针对所接收的言语音频提示的一组相关响度设定,其中用于混合的装置包括用于下列的装置:基于所接收的音频提示的所述相关响度设定来使所述言语音频提示或当前所播放的所述音频中的至少一者降音。
27.根据权利要求23所述的装置,还包括:
用于当允许言语音频提示并且服务当前正在所述设备上播放音频时,接收言语音频提示的装置;
用于暂停当前在所述设备上播放的所述音频的装置;
用于播放所述言语音频提示的装置;以及
用于在播放所述言语音频提示之后,通过所述服务恢复播放所述音频的装置。
28.一种用于在电子设备上提供与导航呈现相关联的情景感知音频导航提示的装置,所述电子设备包括利用音频的多个服务,所述电子设备的音频在多个立体声扬声器上播放,所述装置包括:
用于识别导航指令以提供用于导航操纵的装置;
用于通过确定所述设备的任何音频服务当前被使用以接收第一类型语音输入还是第二类型的语音输入,来确定所述电子设备的允许的音频提示类型,以为识别的所述导航指令提供的装置,
确定允许的音频提示类型包括:
基于检测到第一音频服务当前正在接收所述第一类型的语音输入,确定不允许音频提示,其中所述第一类型的语音输入包括语音识别服务或显示音频文件记录中的第一语音输入;
基于检测到第二音频服务当前正在接收与所述第一类型的语音输入不同的所述第二类型的语音输入,确定允许非言语音频提示,其中所述第二类型的语音输入包括具有说出词语的会话式音频会话、但不包括所述语音识别服务或所述显示音频文件记录中的所述第一语音输入;
基于检测到没有音频服务当前正在接收所述第一类型的语音输入或所述第二类型的语音输入,确定允许言语音频提示;以及
用于播放包括方向信息的识别的所述导航指令的、允许的音频提示类型的装置。
29.根据权利要求28所述的装置,其中用于播放包括方向信息的非言语音频提示的装置包括用于下列的装置:将所述非言语音频提示从所述多个立体声扬声器中的第一组扬声器平移至所述多个立体声扬声器中的第二组扬声器以便提供所述方向信息。
30.根据权利要求28所述的装置,其中所述导航操纵是右转,其中用于播放包括方向信息的非言语音频提示的装置包括:
用于在所述多个立体声扬声器中的一组左扬声器上播放第一组非言语音调的装置;以及
用于在播放所述第一组非言语音调之后,在所述多个立体声扬声器中的一组右扬声器上播放第二组非言语音调的装置。
31.根据权利要求28所述的装置,其中所述导航操纵是左转,其中用于播放包括方向信息的非言语音频提示的装置包括:
用于在所述多个立体声扬声器中的一组右扬声器上播放第一组非言语音调的装置;以及
用于在播放所述第一组非言语音调之后,在所述多个立体声扬声器中的一组左扬声器上播放第二组非言语音调的装置。
32.根据权利要求28所述的装置,其中所述导航操纵是右转,其中用于播放包括方向信息的非言语音频提示的装置包括:
用于在所述多个立体声扬声器中的一组右扬声器上播放第一组非言语音调的装置;以及
用于在播放所述第一组非言语音调之后,在所述多个立体声扬声器中的一组左扬声器上播放第二组非言语音调的装置。
33.根据权利要求28所述的装置,其中所述导航操纵是左转,其中用于播放包括方向信息的非言语音频提示的装置包括:
用于在所述多个立体声扬声器中的一组左扬声器上播放第一组非言语音调的装置;以及
用于在播放所述第一组非言语音调之后,在所述多个立体声扬声器中的一组右扬声器上播放第二组非言语音调的装置。
34.根据权利要求28所述的装置,其中用于播放所述包括方向信息的非言语音频提示的装置包括:
用于当所述非言语音频提示包括左方向信息时,将所述非言语音频提示平移至所述多个立体声扬声器中的一组立体声扬声器中的左扬声器的装置;以及
用于当所述非言语音频提示包括右方向信息时,将所述非言语音频提示平移至所述一组立体声扬声器中的右扬声器的装置。
Applications Claiming Priority (35)
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 | ||
US201261656080P | 2012-06-06 | 2012-06-06 | |
US201261656015P | 2012-06-06 | 2012-06-06 | |
US201261656032P | 2012-06-06 | 2012-06-06 | |
US201261656043P | 2012-06-06 | 2012-06-06 | |
US61/656,032 | 2012-06-06 | ||
US61/656,080 | 2012-06-06 | ||
US61/656,015 | 2012-06-06 | ||
US61/656,043 | 2012-06-06 | ||
US201261657864P | 2012-06-10 | 2012-06-10 | |
US201261657880P | 2012-06-10 | 2012-06-10 | |
US61/657,864 | 2012-06-10 | ||
US61/657,880 | 2012-06-10 | ||
US201261699857P | 2012-09-11 | 2012-09-11 | |
US201261699851P | 2012-09-11 | 2012-09-11 | |
US201261699855P | 2012-09-11 | 2012-09-11 | |
US201261699842P | 2012-09-11 | 2012-09-11 | |
US201261699841P | 2012-09-11 | 2012-09-11 | |
US201261699853P | 2012-09-11 | 2012-09-11 | |
US61/699,842 | 2012-09-11 | ||
US61/699,853 | 2012-09-11 | ||
US61/699,841 | 2012-09-11 | ||
US61/699,851 | 2012-09-11 | ||
US61/699,855 | 2012-09-11 | ||
US61/699,857 | 2012-09-11 | ||
US13/632,121 US10156455B2 (en) | 2012-06-05 | 2012-09-30 | Context-aware voice guidance |
US13/632,121 | 2012-09-30 | ||
US201361757214P | 2013-01-27 | 2013-01-27 | |
US61/757,214 | 2013-01-27 | ||
US13/802,654 US9997069B2 (en) | 2012-06-05 | 2013-03-13 | Context-aware voice guidance |
US13/802,654 | 2013-03-13 | ||
PCT/US2013/043197 WO2013184473A2 (en) | 2012-06-05 | 2013-05-30 | Context-aware voice guidance |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104321622A CN104321622A (zh) | 2015-01-28 |
CN104321622B true CN104321622B (zh) | 2017-09-08 |
Family
ID=52376121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380027822.2A Active CN104321622B (zh) | 2012-06-05 | 2013-05-30 | 情景感知语音引导 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104321622B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330039B (zh) * | 2017-06-27 | 2020-11-20 | 北京卡路里信息技术有限公司 | 显示数据的方法和装置 |
CN109323706A (zh) * | 2017-08-01 | 2019-02-12 | 益富可视精密工业(深圳)有限公司 | 电子装置及其导航显示方法 |
EP3673240A1 (en) | 2017-09-27 | 2020-07-01 | Apple Inc. | Spatial audio navigation |
CN107808670B (zh) | 2017-10-25 | 2021-05-14 | 百度在线网络技术(北京)有限公司 | 语音数据处理方法、装置、设备及存储介质 |
CN108958695B (zh) * | 2018-06-28 | 2023-10-20 | 努比亚技术有限公司 | 音频输出方法、装置及计算机可读存储介质 |
JP7044040B2 (ja) * | 2018-11-28 | 2022-03-30 | トヨタ自動車株式会社 | 質問応答装置、質問応答方法及びプログラム |
CN110046253B (zh) * | 2019-04-10 | 2022-01-04 | 广州大学 | 一种语言冲突的预测方法 |
CN113568688B (zh) * | 2020-04-29 | 2023-06-06 | RealMe重庆移动通信有限公司 | 一种视图切换方法、装置、电子设备和存储介质 |
CN111609859A (zh) * | 2020-06-22 | 2020-09-01 | 滴图(北京)科技有限公司 | 导航信息的显示方法、装置、存储介质和电子设备 |
CN116558536A (zh) * | 2023-04-27 | 2023-08-08 | 中国第一汽车股份有限公司 | 一种车载导航语音交互方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101097135A (zh) * | 2006-06-30 | 2008-01-02 | 佛山市顺德区顺达电脑厂有限公司 | 语音导航的播放及切换方法 |
US20080140314A1 (en) * | 2006-12-06 | 2008-06-12 | Park Kenneth J | Device orientation navigation system for mobile electronic device |
CN101257787B (zh) * | 2007-12-06 | 2011-11-09 | 深圳创维-Rgb电子有限公司 | 一种导航系统与音视频播放系统的切换方法、系统及设备 |
US8856009B2 (en) * | 2008-03-25 | 2014-10-07 | Intelligent Mechatronic Systems Inc. | Multi-participant, mixed-initiative voice interaction system |
KR20090128068A (ko) * | 2008-06-10 | 2009-12-15 | 엘지전자 주식회사 | 네비게이션 장치 및 그 제어 방법 |
CN101349569B (zh) * | 2008-08-29 | 2012-03-21 | 深圳市凯立德科技股份有限公司 | 一种导航信息播放方法和导航信息播放装置 |
US9598070B2 (en) * | 2010-03-02 | 2017-03-21 | GM Global Technology Operations LLC | Infotainment system control |
-
2013
- 2013-05-30 CN CN201380027822.2A patent/CN104321622B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104321622A (zh) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104335012B (zh) | 导航期间的语音指令 | |
CN104321622B (zh) | 情景感知语音引导 | |
CN104335152B (zh) | 在设备处于锁定模式时提供导航指令 | |
EP2672377B1 (en) | Context-aware voice guidance | |
CN105051494B (zh) | 具有若干个用户界面的地图绘制应用程序 | |
US9453740B2 (en) | Method of displaying objects on navigation map | |
CN104981681A (zh) | 显示位置预览 | |
CN104335008A (zh) | 导航应用程序 | |
TWI625706B (zh) | 用於呈現地圖之方法、機器可讀媒體及電子器件 | |
TWI515412B (zh) | 電子裝置、提供導航指引的語音啟動方法、提供導航指引的方法及機器可讀取媒體 | |
EP3957956A1 (en) | Context-aware voice guidance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |