CN104335268A - 用于为地图视图改变提供三维过渡动画的方法、系统和装置 - Google Patents
用于为地图视图改变提供三维过渡动画的方法、系统和装置 Download PDFInfo
- Publication number
- CN104335268A CN104335268A CN201380028122.5A CN201380028122A CN104335268A CN 104335268 A CN104335268 A CN 104335268A CN 201380028122 A CN201380028122 A CN 201380028122A CN 104335268 A CN104335268 A CN 104335268A
- Authority
- CN
- China
- Prior art keywords
- map
- map view
- view
- image data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- 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/005—Map projections or methods associated specifically therewith
-
- 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
- G01C21/367—Details, e.g. road map scale, orientation, zooming, illumination, level of detail, scrolling of road map or positioning of current position marker
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Ecology (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Instructional Devices (AREA)
- Navigation (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明介绍了用于为地图视图改变提供三维过渡的方法、系统和装置。各种实施例可以显示地图视图。实施例可以获得选择另一地图视图用于显示的输入。输入可以通过利用触摸、语音、或其它公知的输入技术来获得。响应于选择地图视图的输入,实施例然后可以显示展示在虚拟空间中从所显示的地图视图移动到所选择的地图视图的过渡动画。实施例然后可以显示所选择的地图视图。
Description
背景技术
地图以视觉形式显示信息。一些地图信息可以在不止一个视图中表示。相同区域的另一视图可以被表示为地形图,地形图通过等高线来标识高度变化。地图的其他不同视图可以是二维或三维视图。地图显示设备常常提供特定地图的不止一个视图。观察者可以在视图之间切换。显示在电子设备上的地图可以在多个视点之间切换以从不同有利观察位置观察地图。不同视图或视点之间的切换可能使观察者丢失在切换之前正在观察的地图的视觉背景环境。
发明内容
本发明介绍了用于为地图视图提供三维过渡动画的方法、装置和计算机可读存储介质的多个实施例。各种实施例可以显示地图的地图视图。实施例可以获得选择另一地图视图的输入。可以呈现从所显示的地图视图到所选择的地图视图的过渡动画。实施例可以通过确定虚拟空间中这两个地图视图之间的空间关系来呈现过渡动画。实施例然后可以将地图视图投射到虚拟空间中,匹配地图视图的图像数据并且混合地图视图的图像数据以呈现示出虚拟空间中从所显示地图视图移动到所选择地图视图的多个视点。一些实施例可以使用三维数据来在虚拟空间中投射地图视图。实施例可以显示过渡动画,然后显示所选择的地图视图。一些实施例中的选择地图视图可以是在多个地图视图模式之间进行选择,地图视图模式诸如是鸟瞰模式、街道级模式和导航模式。在一些实施例中,所显示的地图视图和所选择的地图视图相互邻近。
附图说明
图1示出了根据一些实施例的一种地图服务工作环境。
图2示出了根据一些实施例的一种为地图视图改变提供三维过渡动画的方法的高阶流程图。
图3示出了根据一些实施例的一种用于呈现三维过渡动画的方法的流程图。
图4示出了根据一些实施例的地图视图到虚拟空间中的投射。
图5示出了根据一些实施例的一种实现为地图视图改变提供三维过渡动画的地图模块。
图6示出了根据一些实施例的示例性地图视图。
图7示出了根据一些实施例的一种示例性电子设备。
图8示出了根据一些实施例的一种示例性电子设备。
图9示出了根据一些实施例的一种示例性电子设备。
图10示出了根据一些实施例的一种示例性电子设备。
图11示出了根据一些实施例的一种示例性系统。
虽然在这里借助于几个实施例和示例性附图的示例介绍了本发明,但是本领域的技术人员将认识到,本发明并不限于所介绍的实施例或附图。应当理解,附图和对其的详细描述并不是要将本发明限制到所公开的具体形式,而相反,本发明旨在涵盖落入到本发明的实质和范围内的所有修改形式、等价形式和替代形式。本文使用的标题仅用于组织的目的,并非意在限制说明书的范围。如在整个本专利申请中所使用的那样,以允许的意义(即,意味着具有可能性)而不是强制的意义(即,意味着必须)来使用“可以”一词。类似地,词语“包括”、“包含”和“具有”是指包括、但不限于。
具体实施方式
在以下详细描述中,给出了多个具体细节以提供对要求保护的主题的全面理解。但是,本领域技术人员将理解,要求保护的主题可以在没有这些具体细节的情况下被实现。在其他实例中,没有详细地介绍普通技术人员已知的方法、装置、或系统,以便不使要求保护的主题晦涩难懂。
还将理解的是,尽管术语第一、第二等可在本文中用于描述各种元件,但这些元件不应受到这些术语的限制。这些术语只是用来将一个元素与另一元素区分开。例如,在不脱离本发明的范围的情况下,第一触点可被称为第二触点,并且相似地,第二触点可被称为第一触点。第一接触和第二接触二者都是接触,但是它们不是同一接触。
本文中的发明的描述中所使用的术语仅仅是为了描述特定实施例,并非旨在对本发明进行限制。如本发明说明书和所附权利要求中所使用的那样,单数形式的“一个”、“一种”和“这个”旨在也涵盖复数形式,除非上下文清楚地有相反指示。也将理解的是,本文所用的术语“和/或”是指并包括相关联的所列出的项目中的一者或多者的任何和所有可能的组合。另外将理解的是,当术语“包括”(“includes”“including”“comprises”和/或“comprising”)在本说明书中使用时,规定了所阐明的特征、整数、步骤、操作、元件和/或部件的存在,但不排除存在或增加一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的分组。
根椐上下文,如本文所用,术语“如果”可被解释为指“当……时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。根据上下文,相似地,短语“如果确定”或“如果【阐明的条件或事件】被检测”可被解释为指“在确定时”或“响应于确定”或“在检测【阐明的条件或事件】时”或“响应于检测到【阐明的条件或事件】”。
下面的详细描述中一些部分是以存储在特定装置或专用计算设备或平台的存储器内的对二进制数字信号的操作的算法或符号表示来提供的。在这个特定说明书的上下文中,术语“特定装置”等包括通用计算机,只要该通用计算机被编程为根据来自程序软件和其他可编程电子设备的指令执行特定功能。算法描述或符号表示是信号处理或相关领域中普通技术人员用来将其工作实质内容传达给该领域中其他技术人员的技术的示例。算法在这里、并且一般性地被视为是导致所期望结果的操作或类似信号处理的自相一致的序列。在这个语境中,操作或处理涉及物理量的物理操纵。通常,但是不是必然地,这样的量可以采取能够被存储、传送、组合、比较或以其它方式操纵的电或磁信号的形式。已经证明有时(主要是出于惯用用法的原因)将这样的信号指代为位、数据、数值、元素、符号、字符、项、数字、数码等是方便的。但是应该理解,所有这些或类似术语要与适当的物理量相关联并且仅仅是方便的标号。
本文介绍了用于为地图视图改变提供三维过渡动画的方法、装置和计算机可读存储介质的多个实施例。介绍了可适用于显示示出三维虚拟空间中从所显示的地图视图移动到所选择的地图视图的动画的过渡动画的几个实施例。地图可以被一般性地理解为信息的图形表示。地图通常被显示给对所显示信息进行解释的观察者。地图视图可通过依赖于用于描绘关于地图的某种信息的各种显示方法来展示该信息,诸如从某个视点显示地图的地图视图。例如,地图的观察者可以处以街道级视点在朝东的方向上观察地图。
在各种实施例中,地图显示器显示包含二维地图图像数据的地图的地图视图。在一些实施例中,地图视图可以在地图视图模式,包括但不限于鸟瞰模式、街道级模式和导航模式。地图视图模式可以限定或确定地图的当前地图视图。地图显示器可以是客户端设备,诸如下文中参考图1所述的客户端设备102a、102b和102c,并且通过向地图服务工作环境中的地图服务请求地图数据来获得地图,地图服务诸如是图1中的地图服务130。地图数据可以采取多种形式,诸如下文中参考图1所述的地图图块,并且可以由多个不同类型或组合的数据构成,例如栅格图形数据和矢量图形数据。二维地图图像数据可以是将在显示设备上显示地图视图的地图视图的图像特定数据,诸如位图图像。需注意,即使所显示的图像绘制或表示三维图像,所显示的图像也可以是二维的。因此,二维地图图像数据可以显示三维图象。
在一些实施例中,地图显示器然后可以获得选择地图的另一地图视图的输入。所选择的地图视图也可以包含二维地图图像数据。可以使用各种形式的输入设备或方法来获得输入,诸如触敏设备上的触摸输入、语音命令部件或麦克风上的声音输入、鼠标键盘组合、以及输入设备和/或被配置为选择地图视图模式的用户界面的任何其他组合。需注意,输入设备并不限于在本公开中明确描述的那些,因为可以使用很多其他公知的输入设备。
该设备可以显示从所显示的地图视图到所选择的地图视图的过渡动画。这个动画可以示出三维虚拟空间中从所显示的地图视图到所选择的地图视图的移动。为了显示过渡动画,实施例可以确定虚拟空间中所显示的地图视图和所选择的地图视图之间的空间关系。然后,地图显示可以根据所确定的空间关系将所显示的地图视图和所选择的地图视图的地图图像数据投射在虚拟空间中。在至少一些实施例中,所显示的地图视图中对象的三维模型被创建,并且地图图像数据被投射在所生成的模型上。一些实施例然后匹配所显示的地图视图和所投射的地图视图的被投射的地图图像数据,然后可以混合所选择的地图视图和所显示的地图视图的匹配图像数据以生成虚拟空间中在所显示的地图视图和所选择的地图视图之间的多个地图视图。一些实施例然后可以显示所选择的地图视图。所生成的多个地图视图的位置可以沿圆形路径出现。
为地图视图改变提供三维过渡动画的实施例可以在支持显示地图视图的任何应用中实现。实施例可以被实现在其中的应用的示例性类别是地图显示(诸如在导航设备中)、可以包括游戏中地图视图的电子游戏和可以允许用户创建二维和三维地图的图形设计。更一般性地,实施例可以在允许地图在地图视图之间切换的应用中实现。一些实施例可以利用地图服务工作环境中的地图服务来实现,诸如下文中参考图1所述。实施例可以实现在其中的应用或技术的具体示例包括但不限于来自美国加利福利亚州库比蒂诺的苹果公司的iPod或设备上的地图或导航软件应用。
为地图视图改变提供三维过渡动画的实施例可以由通过存储在非暂态计算机可读存储介质中并且能够由一个或多个处理器(诸如一个或多个CPU或GPU)执行的程序指令实现的一个或多个模块来实现和执行。可以如本文中所述实现一些实施例的一个示例性模块和可以如本文中所述实现该模块的一个示例性应用在图5中被图示。实施例可以被实现在其上的一个示例性电子设备在图7到图10中被图示。实施例可以被实现在其上的一个示例性系统在图11中被图示。
地图服务工作环境
各种实施例可以在地图服务工作环境内工作。图1根据一些实施例示出了一种地图服务工作环境。地图服务130可以为通过各种通信方法和协议与地图服务130通信的一个或多个客户端设备102a-102c提供地图服务。地图服务130一般可提供地图信息和其它地图相关数据,诸如二维地图图像数据(例如鸟瞰视图或利用卫星图像的道路)、三维地图图像数据(例如具有三维特征(诸如建筑物)的能穿过的地图)、路线和指向计算(例如渡轮航线计算或两点之间的步行指向)、实时导航数据(例如二维或三维的逐向视觉导航数据)、位置数据(例如客户端设备当前位于哪里)和其它地理数据(例如无线网络覆盖、天气、交通信息、或附近兴趣点)。在各种实施例中,地图服务数据可以包括用于不同国家或地区的局域标签;局域标签可以用于在客户端设备上以不同语言展示地图标签(例如街道名、城市名、兴趣点)。客户端设备102a-102c可以通过获得地图服务数据来使用这些地图服务。客户端设备102a-102c可以实现各种技术来处理地图服务数据。客户端设备102a-102c然后可以提供地图服务给各种实体,包括但不限于用户、内部软件或硬件模块、和/或客户端设备102a-102c外部的其它系统或设备。
在一些实施例中,地图服务可以由分布式计算系统中的一个或多个节点来实现。每个节点可以被分配以地图服务的一个或多个服务或部件。一些节点可以被分配以地图服务的相同地图服务或部件。负载平衡节点可以将访问或请求分布到地图服务内的其它节点。在一些实施例中,地图服务可以被实现为单个系统,诸如单个服务器。服务器内的不同模块或硬件设备可以实现地图服务所提供的各种服务中的一个或多个。
地图服务可以通过以各种格式生成地图服务数据来提供地图服务。在一些实施例中,一种格式的地图服务数据可以是地图图像数据。地图图像数据可以提供图像数据给客户端设备,使得客户端设备可以处理图像数据(例如将地图图像呈现和/或显示为二维或三维地图)。地图图像数据不管是二维还是三维的,都可以指定一个或多个地图图块。地图图块可以是更大地图图像的一部分。将地图的地图图块组装在一起就可以生成原始地图。可以由地图图像数据、路线规划或导航数据、或任何其它地图服务数据来生成图块。在一些实施例中,地图图块可以是基于栅格的地图图块,图块尺寸为从比常用的256像素乘256像素图块大的任何尺寸到比常用的256像素乘256像素图块小的任何尺寸。基于栅格的地图图块可以以任意数量的标准数字图像表示被编码,标准数字图像表示包括但不限于位图(.bmp)、图形交换格式(.gif)、联合图像专家组(.jpg,.jpeg等)、可移植网络图形(.png)、或标签图像文件格式(.GIFf)。在一些实施例中,地图图块可以是基于矢量的地图图块,利用矢量图形编码,包括但不限于可缩放矢量图形(.svg)或画图文件(.drw)。实施例还可以包括具有矢量和栅格数据组合的图块。元数据或有关地图图块的其它信息也可以被包括在地图图块内或与地图图块一起被包括,从而提供进一步的地图服务数据给客户端设备。在各种实施例中,地图图块可以被编码以利用各种标准和/或协议来传输,其中的一些在下面的示例中介绍。
在各种实施例中,可以根据缩放水平由不同分辨率的图像数据来构造地图图块。例如,对于低缩放水平(例如世界或全球视图),地图或图像数据的分辨率相对于高缩放水平(例如城市或街道级)处的分辨率不需要为高。例如,当在全球视图中,可能不需要呈现街道级的人造对象,因为这样的对象在很多情况下会小到可以忽略不计。
地图服务可以在对地图图块编码以进行传输之前执行各种技术来分析地图图块。这个分析可以针对客户端设备和地图服务二者优化地图服务性能。在一些实施例中,地图图块可以根据基于矢量的图形技术针对复杂性进行分析,并且利用复合和非复合层来构造。地图图块也可以针对公共图像数据或图案进行分析,公共图像数据或图案可以被呈现为图像纹理并且通过依赖于图像掩模来构造。在一些实施例中,地图图块中的基于栅格的图像数据可包含与一个或多个纹理相关联的某些掩模值。实施例还可以针对可能与包含样式标识符的某些地图样式相关联的所指定的特征来分析地图图块。
其他地图服务可以依赖于独立于地图图块的各种地图格式生成地图服务数据。例如,提供位置数据的地图服务可以使用符合位置服务协议的数据格式,位置服务协议诸如是但不限于无线电资源位置服务协议(RRLP)、用于码分多址(CDMA)的TIA 801、无线电资源控制(RRC)定位协议、或LTE定位协议(LPP)。实施例还可以从客户端设备接收或请求标识设备能力或属性(例如硬件参数或操作系统版本)或者通信能力(例如通过无线信号强度或者有线或无线网络类型确定的设备通信带宽)的数据。
地图服务可以从内部或外部来源获得地图服务数据。例如,在地图图像数据中使用的卫星图像可以从外部服务、或者内部系统、存储设备、或节点获得。其他示例可以包括但不限于GPS辅助服务器、无线网络覆盖数据库、商用或个人目录、天气数据、政府信息(例如施工更新或道路名称改变)、或交通报告。地图服务的一些实施例可以更新地图服务数据(例如无线网络覆盖)以用于分析来自客户端设备的未来请求。
地图服务的各种实施例可以响应客户端设备对地图服务的请求。这些请求可以是针对特定地图或地图部分的请求。实施例可以将对地图的请求格式化为对某些地图图块的请求。在一些实施例中,请求还可以向地图服务提供用于路线计算的起点位置(或当前位置)和目的地位置。客户端设备还可以请求地图服务呈现信息,诸如地图纹理或样式表。在至少一些实施例中,请求还可以是实现逐向导航的一系列请求之一。对其他地理数据的请求可以包括但不限于当前位置、无线网络覆盖、天气、交通信息、或附近兴趣点。
地图服务在一些实施例中可以分析客户端设备请求以优化设备或地图服务操作。例如,地图服务可以识别出客户端设备的位置在通信弱(即无线信号弱)的区域中,并且发送更多地图服务数据以在通信丢失的情况下提供给客户端设备或者发送使用其他客户端硬件(例如取向传感器)或软件(例如利用无线位置服务或Wi-Fi定位,而非基于GPS的服务)的指令。在另一示例中,地图服务可以分析客户端设备对基于矢量的地图图像数据的请求,并且根据图像复杂性确定基于栅格的地图数据更好地优化地图图像数据。其他地图服务的实施例可以对客户端设备请求执行类似分析,并且因此,上述示例并非旨在是限制性的。
客户端设备(例如客户端设备102a-102c)的各种实施例可以在不同设备类型上实现。便携式多功能设备的示例包括图7至图10中示出的设备,诸如多功能设备1200和多功能设备1400。客户端设备102a-102c可以通过下文所述的各种通信方法和协议来利用地图服务130。在一些实施例中,客户端设备102a-102c可以从地图服务130获得地图服务数据。客户端设备102a-102c可以请求或接收地图服务数据。客户端设备102a-102c然后可以处理地图服务数据(例如呈现和/或显示数据),并且可以将数据发送到设备上的另一软件或硬件模块或者发送到外部设备或系统。
根据一些实施例,客户端设备可以实现用于呈现和/或显示地图的技术。这些地图可以以各种格式被请求或接收,诸如上述地图图块。客户端设备可以在二维或三维视图中呈现地图。客户端设备的一些实施例可以显示所呈现的地图,并且允许用户、系统、或设备提供输入来操纵地图中的虚拟相机,从而根据虚拟相机的位置、取向和视场改变地图显示。可以实现各种形式和输入设备来操纵虚拟相机。在一些实施例中,触摸输入通过某些单手势或组合手势(例如触摸并保持或者轻扫)可以操纵虚拟相机。其他实施例可以允许操纵设备的物理位置来操纵虚拟相机。例如,可以将客户端设备从其当前位置向上倾斜,以操纵虚拟相机来向上旋转。在另一示例中,可以将客户端设备从其当前位置向前倾斜以将虚拟相机向前移动。可以实现对客户端设备的其他输入设备,包括但不限于语音输入(例如说出的字词)、物理键盘、鼠标、和/或操纵杆。
实施例可以为虚拟相机操纵提供各种视觉反馈,诸如在从二维地图视图转变到三维地图视图时显示可能的虚拟相机操纵的动画。实施例还可以允许输入来选择地图特征或对象(例如建筑物)以及突出显示该对象,从而产生保持虚拟相机的三维空间感知的模糊效果。
在一些实施例中,客户端设备可以实现导航系统(例如逐向导航)。导航系统提供可以被显示给用户的指向或路线信息。客户端设备的实施例可以向地图服务请求指向或路线计算。客户端设备可以从地图服务接收地图图像数据和路线数据。在一些实施例中,客户端设备可以实现逐向导航系统,其基于从地图服务和/或其他位置系统(诸如全球定位卫星(GPS))接收的位置信息和路线信息提供实时路线和指向信息。客户端设备可以显示反映客户端设备当前位置的地图图像数据并且实时地更新地图图像数据。导航系统可以提供沿循某个路线的听觉或视觉指向。
根据一些实施例,虚拟相机可以被实现为操纵导航地图数据。客户端设备的一些实施例可以允许设备调节虚拟相机显示取向以朝着路线目的地偏置。实施例还可以允许虚拟相机通过模拟虚拟相机的惯性运动来对转弯进行导航。
客户端设备可以实现各种技术来利用来自地图服务的地图服务数据。实施例可以实现一些技术来优化二维和三维地图图像数据的呈现。在一些实施例中,客户端设备可以本地地存储呈现信息。例如,客户端可以存储样式表,其提供包含样式标识符的图像数据的呈现指示。在另一示例中,公共图像纹理可以被存储,以减少从地图服务传送的地图图像数据量。客户端设备还可以实现各种建模技术来呈现二维和三维地图图像数据,其示例包括但不限于:由二维建筑物占地轮廓生成三维建筑物;对二维和三维地图对象进行建模以确定客户端设备通信环境;生成用于确定从特定虚拟相机位置是否看到地图标签的模型;和生成用于在地图图像数据之间平滑过渡的模型。客户端设备的一些实施例还可以以某些技术对地图服务数据排序或划分优先顺序。例如,客户端设备可以检测虚拟相机的运动或速度,其如果超过某些阈值,则将为某些区域加载和呈现详细度更低的图像数据。其他示例包括:将基于矢量的曲线呈现为一系列点、对于与地图服务的通信弱的区域预加载地图图像数据、基于显示缩放水平调整纹理、或者根据复杂性呈现地图图像数据。
在一些实施例中,客户端设备可以利用独立于地图图块的各种数据格式进行通信。例如,一些客户端设备可以实现辅助全球定位卫星(A-GPS),并且与利用符合位置服务协议的数据格式的位置服务通信,位置服务协议诸如是但不限于无线电资源位置服务协议(RRLP)、用于码分多址(CDMA)的TIA 801、无线电资源控制(RRC)定位协议、或LTE定位协议(LPP)。客户端设备还可以直接接收GPS信号。实施例还可以在地图服务要求或没有要求的情况下发送标识客户端设备能力或属性(例如硬件参数或操作系统版本)或者通信能力(例如通过无线信号强度或者有线或无线网络类型确定的设备通信带宽)的数据。
图1示出了用于地图服务130和客户端设备102a-102c的一种工作环境100的一个可能实施例。在一些实施例中,设备102a、102b和102c可以通过一个或多个有线或无线网络110通信。例如,无线网络110(诸如蜂窝网络)可以利用网关114与广域网(WAN)120(诸如互联网)通信。网关114可以提供面向分组的移动数据服务(诸如通用分组无线电服务(GPRS))、或者允许无线网络传输数据到其他网络(诸如广域网120)的其他移动数据服务。同样地,接入设备112(例如IEEE 802.11g无线接入设备)可以提供对WAN 120的通信接入。设备102a和102b可以是能够与地图服务通信的任何便携式电子或计算设备,诸如下文中参考图7到图10所述的便携式多功能设备。设备402c可以是能够与地图服务通信的任何非便携式电子或计算设备,诸如下文中参考图11所述的系统。
在一些实施例中,可以通过无线网络110和接入设备112建立语音和数据通信二者。例如,设备102a可以通过无线网络110、网关114和WAN120(例如利用传输控制协议/互联网协议(TCP/IP)或用户数据报协议(UDP))发起和接收电话呼叫(例如利用互联网协议语音技术(VoIP)协议),发送和接收电子邮件消息(例如利用简单邮件传输协议(SMTP)或邮局协议3(POP3)),以及检索电子文档和/或流,诸如网页、照片和视频。同样,在一些实施例中,设备102b和102c可以通过接入设备112和WAN 120发起和接收电话呼叫、发送和接收电子邮件消息、以及检索电子文档。在各种实施例中,任何所例示的客户端设备都可以利用根据一个或多个安全协议建立的持久性连接与地图服务130和/或其他服务150通信,安全协议诸如是安全套接层(SSL)协议或传输层安全(TLS)协议。
设备102a和102b也可以通过其他方式建立通信。例如,无线设备102a可以通过无线网络110与其他无线设备(例如其他设备102a或102b、蜂窝电话)通信。同样,设备102a和102b可以利用一个或多个通信子系统建立对等通信140(例如个人局域网),诸如来自美国华盛顿州柯克兰的蓝牙技术联盟的通信。102c也可以与设备102a或102b建立对等通信。(未示出)。也可实现其他通信协议和拓扑结构。设备102a和102b还可以从全球定位卫星(GPS)140接收GPS信号。
设备102a、102b和102c可以通过这一个或多个有线和/或无线网络110或112与地图服务130通信。例如,地图服务130可以将地图服务数据提供给进行呈现的设备102a、102b和102c。地图服务130还可以与其他服务150通信,以获得用于实现地图服务的数据。地图服务130和其他服务150也可以从GPS 140接收GPS信号。
在各种实施例中,地图服务130和/或其他服务150可以被配置为处理来自任何客户端设备的搜索请求。搜索请求可以包括但不限于对商铺、地址、住宅位置、兴趣点、或它们的某种组合的查询。地图服务130和/或其他服务150可以被配置为返回与多个参数相关的结果,所述参数包括但不限于输入到地址栏或其他文本输入字段中的位置(包括缩写和/或其他简写形式)、当前地图视图(例如用户可能正在多功能设备上查看一个位置而同时身处另一位置)、用户的当前位置(例如在当前地图视图不包括搜索结果的情况下)和当前路线(如果有的话)。在各种实施例中,这些参数可基于不同优先权重影响搜索结果的组成(和/或搜索结果的排序)。在各种实施例中,返回的搜索结果可以是基于特定标准选择的结果子集,特定标准包括但不限于搜索结果(例如某个兴趣点)已经被请求的次数、与搜索结果相关联的质量量度(例如最高用户或编辑评论评级)、和/或搜索结果的评论量(例如搜索结果已经被评论或评级的次数)。
在各种实施例中,地图服务130和/或其他服务150可以被配置为提供可以在客户端设备上(诸如在地图应用内)显示的自动完成搜索结果。例如,自动完成搜索结果可以在用户在多功能设备上输入一个或多个搜索关键词时填充屏幕的一部分。在一些情况下,该特征可以节省用户时间,因为所期望的搜索结果可能在用户输入完整搜索查询之前就被显示。在各种实施例中,自动完成搜索结果可以是客户端在客户端设备上找到的搜索结果(例如书签或联系人)、地图服务130和/或其他服务150在其他地方(例如从互联网)找到的搜索结果、和/或它们的某种组合。与命令的情况一样,任何所述搜索查询都可以由用户经由语音或者通过打字来输入。多功能设备可以被配置为在本文所述的任何地图显示内图形地显示搜索结果。例如,图钉或其他图形指示器可以指定搜索结果的位置作为兴趣点。在各种实施例中,响应于用户选择这些兴趣点之一(例如触摸选择,诸如轻击),多功能设备可以被配置为显示关于所选兴趣点的附加信息,包括但不限于该兴趣点的评级、评论或评论摘录、营业时间、店铺状态(例如开业、永久关闭等)、和/或店面图像。在各种实施例中,任何这个信息可以被显示在响应于用户选定兴趣点而显示的图形信息卡上。
在各种实施例中,地图服务130和/或其他服务150可以提供一个或多个反馈机制以接收来自客户端设备102a-c的反馈。例如,客户端设备可以将对搜索结果的反馈提供给地图服务130和/或其他服务150(例如指定评级、评论、临时或永久关闭、错误等的反馈);这个反馈可用于更新关于兴趣点的信息,以便未来提供更精确或更切合当时情况的搜索结果。在一些实施例中,地图服务130和/或其他服务150可以提供测试信息给客户端设备(例如A/B测试)以确定哪些搜索结果最佳。例如,以随机间隔,客户端设备可以接收并展示两个搜索结果给用户,并且允许用户指定最佳结果。客户端设备可以将测试结果报告给地图服务130和/或其他服务450以基于所选测试技术改善未来搜索结果,测试技术诸如是A/B测试技术,其中将基线对照样本与多个单变量测试样本进行比较以便改善结果。
提供三维过渡动画的工作流
地图显示设备可以从各种来源获得地图数据(诸如本地地存储在设备上的地图数据),或从地图服务(诸如图1中的地图服务130)获得地图数据。地图显示设备地图在各种地图视图中显示地图数据。可以基于当前在地图显示设备上指示的地图视图模式来确定这些地图视图。如果改变地图视图模式(诸如从街道级地图视图模式改变到导航地图视图模式),或者如果在同一地图视图模式改变地图视图(诸如面向北查看地图、然后选择面向东的地图的视图),各种实施例为地图视图改变提供三维过渡动画。图2示出了根据一些实施例的一种为地图视图改变提供三维过渡动画的方法的高阶流程图。能够为地图视图改变提供三维过渡动画的计算或电子设备例如可以是笔记本或膝上型计算机、平板电脑、移动电话、个人数字助理(PDA)、便携式多功能设备(诸如下文参考图7至图10所述的)、台式计算机、系统(诸如下文中参考图11所述的)、或一般而言任何能够显示两个或更多个地图视图的设备。
如210所示,各种实施例可以显示地图视图。地图视图可以通过依赖于用于描绘关于地图的某些信息的各种显示方法来展示这个信息,诸如从某个视点显示地图的地图视图。例如,地图的观察者可处于街道级视点以朝东的方向观察地图。这个地图视图可以由两个二维地图图像数据构成。如上所述,二维地图图像数据可以是栅格图形数据,其可以包含地图视图的地图图像中每个像素的像素显示值和位置。每个地图视图可以对应于给定地图的特定视图。例如,地图上某个坐标处面向特定方向的地图鸟瞰视图可以具有一个地图视图。
一些实施例可以提供地图视图模式。地图视图模式可以对应于给定地图的特定视图。地图视图模式可以包括但不限于提供地面透视图的街道级地图视图模式、提供90度或其他倾斜角度的俯视图的鸟瞰地图视图、以及提供随着导航设备在现实世界上移动而更新的指向或其他导航数据的实时显示的导航视图模式。
一些实施例可以从地图服务获得地图数据(诸如上文中参考图1所述),或者访问本地地存储在实现设备(诸如图7中的存储器1002)上的地图数据。所获得的地图数据可以是地图图块(如上文中参考图1所述),并且可以包含栅格图形数据和/或矢量图形数据。这个地图数据可以用于显示地图。
为了显示地图,实施例可以实现本领域普通技术人员熟知的各种硬件和/或软件技术。例如,设备可以实现独立于平台的图形库(诸如OpenGL),结合一个或多个处理器(诸如CPU或GPU)以呈现地图(诸如包含矢量图形数据的地图)和处理栅格图形数据。实施例可以在各种显示设备上显示地图的地图视图。显示设备的位置可以与设备分开或者可以位于设备上。例如,图7至10描述了具有随附的显示屏幕的便携式多功能设备。在另一示例中,台式计算机可以通过有线(诸如视频图形阵列(VGA)缆线)通信或无线(诸如通过无线网络)通信与显示设备通信。实施例可以在地图服务工作环境中利用地图服务的客户端设备上显示二维地图视图。
在各种实施例中,设备可获得选择地图另一地图视图的输入220。这个所选择的地图视图也可以包含二维地图图像数据,如上所述。可以通过多种输入设备获得输入。例如,一些实施例可以实现触敏输入设备。触敏输入设备检测并解释触敏输入设备上的触摸输入或输入手势。实施例可以识别用于选择地图视图或者切换到另一地图视图模式的地图视图的多个不同形式或组合的触摸输入。例如,触敏输入设备可以获得同时或顺次的与输入设备的一个或多个接触。触敏输入设备还可以能接受来自任何对象或附属物的触摸。
在一些实施例中,输入设备(诸如语音命令部件或麦克风(诸如图7中的麦克风1013))可以接收用于选择另一地图视图的语音输入。这个语音输入可以是语音命令或短语、或者某种音高或语调。
在至少一些实施例中,输入设备(诸如陀螺仪、加速度计、或其他取向或运动传感器(例如图7中的取向传感器1068))可以接收选择运动的物理改变作为输入。例如,用户可以拿着静止的设备并且将设备向左倾斜以选择左侧相邻的地图视图。设备的许多其他运动或操纵可以被取向传感器感知,并且因此以上示例并非旨在进行限制。
一些实施例可以实现用于选择地图的地图视图的用户界面。用户界面可以是展示供用户选择的视觉选项的图形用户界面。在一些实施例中,用户界面可以是被配置为经由输入设备(诸如触敏输入设备或语音命令部件)选择地图视图模式的部件。实施例还可以从各种其他输入设备获得输入,诸如取向传感器、键盘、鼠标、轨迹球、操纵杆、运动检测传感器和相机。对于本领域普通技术人员将显而易见的是,可以使用很多形式的硬件和软件来向设备提供输入,并且因此,前面所列出的示例并非旨在进行限制。
所选择的地图视图可以是地图视图的另一有利观察位置。例如,鸟瞰地图视图可以在一个有利观察位置显示地图视图,但是输入可以选择当前有利观察位置南边半英里处的另一有利观察位置。所选择的地图视图也可以是自有利观察位置的另一方向或取向。例如,街道级地图视图可以是朝东面向交叉口处。新的地图视图可以被选择为在同一交叉口处面朝北。所选择的地图视图也可以是不同地图模式的地图视图之间的切换。例如,面朝北的鸟瞰地图视图可以被切换到同一位置处面朝北的导航地图视图。
实施例然后可以呈现从所显示的地图视图移动到所选择的地图视图的过渡动画240。如下所述,图3提供了对利用各种图像处理技术呈现过渡动画的多种可能实施例的讨论。一些实施例将生成多个地图视图来呈现过渡动画。这些地图视图可以沿圆形路径出现,从而在一些实施例中提供旋转效果。在呈现动画之后,动画可以在显示设备240(诸如图9中的触敏显示设备1012)上被显示。一些实施例然后可以显示所选择的地图视图。
从两个地图视图呈现三维过渡动画
如230所示,实施例可以呈现从所显示的地图视图到所选择的地图视图的过渡动画用于显示,该过渡动画展示在虚拟空间中从所显示的地图视图移动到所选择的地图视图。图3示出了根据一些实施例的一种用于从两个地图视图呈现三维过渡动画的方法的一个流程图。
如310所示,实施例可以确定虚拟空间中所选择的地图视图的地图图像数据之间的空间关系。如上所述,地图视图可以对应于给定地图的特定视图。所显示的地图视图对应于给定地图的特定视图,所选择的地图视图也是一样。实施例可以能够确定特定视图,并且因此确定该视图的具体位置。从这两个位置,可以确定空间关系。例如,显示地图视图的客户端设备(诸如图1中的客户端设备102)可以具有存储在该设备上的用于区域的地图数据和用于该区域的各种相关联的地图视图。在该设备接收到选择另一地图视图的输入时,客户端设备可以基于该设备对其存储有数据的区域内的视图位置来解释所选择的视图的位置。在另一示例中,设备可能必须向地图服务(诸如地图服务130)请求用于视图的地图数据,以显示所选择的地图视图。在接收到用于地图视图的地图数据时,设备然后可具有足够的区域数据来确定所选择的地图视图的具体位置。一些实施例可以基于所选择的地图视图来确定视图之间的空间关系。例如,如果所显示的地图视图面朝北,而用户选择面朝东的地图视图,则设备可以确定这两个视图以90度角相交。实施例还可以解释输入本身来确定空间关系。例如,用于指示所选择的地图视图的位置的在触敏显示设备(诸如图9中的触敏显示设备1012)上所显示的地图视图中特定位置上的单个触摸可以提供空间关系给客户端设备。
一旦确定了这两个地图视图之间的空间关系,实施例就可以根据所确定的空间关系将所显示的地图视图和所选择的地图视图的地图图像数据投射到虚拟空间320中。虚拟空间是常见的图像处理技术,其允许二维或三维对象相对于彼此地定位以便确定或呈现新图像数据。虚拟空间常常在三维中。图4中的虚拟空间400提供了一个示例。将图像数据投射到虚拟空间中是本领域普通技术人员熟知的。
可以实现各种投射地图图像数据的方法。例如,实施例可以实现硬件或软件的各种配置来将来自一地图视图的地图图像数据的像素相对于另一地图视图的像素映射到虚拟空间中。例如如果两个地图视图具有90度角的空间关系,则这两个投射数据视图可以以90度角度创建。图4示出了两个地图视图:当前地图视图402和所选择的地图视图404。设备已经确定这两个地图视图空间地以90度角相关。在当前地图视图投射412和所选地图视图投射414显示了将地图视图投射到虚拟空间400中。一些实施例可以实现扭曲变形技术,其与投射相同,将图像数据投射到虚拟空间中。
在一些实施例中,可以通过生成所显示的地图视图中对象的三维模型并且根据所确定的空间关系将所显示的地图视图的地图图像数据投射在所生成的模型上,来投射地图图像数据。图4示出了表示当前地图视图402和所选地图视图404中建筑物的三维模型对象410。实施例可以如图4中那样将地图视图投射到模型对象上。利用模型对象作为基准就可以提高投射之间空间关系准确性。
实施例然后可以匹配所显示的地图视图的被投射图像数据和所选择的地图视图的被投射图像数据330。可以使用各种匹配图像数据的方法。在一些实施例中,可以使用像素匹配来匹配这两个地图视图的图像数据。像素匹配是将给定图像的内容相互进行比较的一种方法。像素匹配算法可以提取给定图像之间的公共对象。用于像素匹配的各种算法可以使用各种技术来定位给定图像中的公共对象。例如,基于轮廓的像素匹配算法可以检查对象的轮廓以确定其在相应图像中的位置。像素匹配、或者有时称为像素映射对于本领域普通技术人员而言是熟知的。像素匹配或者用于匹配图像数据的任何其他匹配算法的结果可以被存储在存储器(诸如图7中的存储器1002)中,直到准备好进行进一步的处理。
实施例然后可以混合所显示的地图视图和所选择的地图视图的匹配图像数据以生成虚拟空间中所显示的地图视图和所选择的地图视图之间的多个地图视图。混合可以通过各种硬件和软件组件来实现。例如,混合组件可以在所显示的地图视图和所选择的地图视图之间的位置处根据这两个地图视图中相应位置处的匹配的像素来在虚拟空间中插补用于地图视图的位置。实施例可以通过从所显示的视图和所选择的视图取样图像数据来基于这两个视图的地图视图图像数据生成地图视图,以生成新的地图视图。可以通过一个或多个权重值来确定从所显示的地图视图或所选择的地图视图取样图像数据的比例。这些值可以随着所生成的地图视图相对于特定地图视图的接近度而提高。例如,相对靠近所显示的地图视图生成的地图视图可以根据权重值从这两个视图取样图像数据。该权重值指示相比于所选择的地图视图,更多地从所显示的地图视图取样图像数据。这样的权重可以根据所生成的地图视图在虚拟空间中的位置来调节。很多混合算法是本领域普通技术人员熟知的,并且因此以上实施例并非旨在进行限制到具体混合技术。
通过在虚拟空间中混合所显示的地图视图和所选择的地图视图的地图图像数据,可以生成多个地图视图。一旦被呈现和被显示,这些地图视图就可以展示虚拟空间中的移动。在一些实施例中,所生成的这多个地图视图沿圆形路径出现。顺次地被显示,这些地图视图可以给出地图视图之间旋转运动的印象。
对于本领域普通技术人员将显而易见的是,可以利用很多公知的硬件和软件实现来呈现和显示动画。地图视图可以由多种类型的图像格式构成,包括栅格和矢量图形。这些图形类型可以由设备利用独立于平台的公共技术来呈现和显示,诸如但不限于利用开放性图形库(OpenGL)或Direct3D应用员接口、或者其变体(诸如OpenGL ES)。也可以实现可以优化CPU或GPU性能的自定义的呈现和显示应用。图像数据呈现的很多其他软件和硬件实现是本领域普通技术人员熟知的,并且以上示例并非旨在进行限制。
示例性实施例
各种实施例可以实现一种提供地图视图模式改变的视觉反馈的方法。在一些实施例中,地图模块可以由非暂态计算机可读存储介质和计算装置的一个或多个处理器(例如CPU和/或GPU)来实现。非暂态计算机可读存储介质可以存储能够由这一个或多个处理器执行以使该计算装置执行以下操作的程序指令:在地图显示中显示地图的地图视图,其中所述地图视图包括二维地图图像数据;获得选择该地图的另一地图视图的输入,其中所述另一地图视图包括二维地图图像数据;以及响应于该输入,显示从所显示的地图视图到所选择的地图视图的过渡动画,包括:确定在虚拟空间中所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据之间的空间关系;根据所确定的空间关系将所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据投射在该虚拟空间中;匹配所显示的地图视图的被投射地图图像数据和所选择的地图视图的被投射地图图像数据;混合所显示的地图视图的匹配图像数据和所选择的地图视图的地图图像数据以生成该虚拟空间中在所显示的地图视图和所选择的地图视图之间的多个地图视图,从而呈现该过渡动画以展示该虚拟空间中从所显示的地图视图移动到所选择的地图视图;以及在地图显示中显示所选择的地图视图。该模块的其他实施例可以至少部分地由硬件电路系统和/或例如存储在非易失性存储器中的固件来实现。
图5示出了实现图2至图4中所述的提供三维过渡动画的地图模块。图5仅仅是模块的一个示例,并且并非旨在进行限制到这个示例或者可以实现为地图视图改变提供三维过渡动画的其他类型的应用。地图模块500可以在显示器510上显示地图视图。显示器510可以是显示设备,诸如下文中在图7至图10中所述的显示设备。通过触敏设备(诸如图9中的触敏显示器1012)的触摸输入502可以通过用户接口550选择另一地图视图。用户接口550可以被配置为接受来自各种设备的输入,诸如其他输入506。用户接口550可以将所选择的地图视图传送到地图视图模块组件522。用户接口550可以被配置为选择地图视图模式的改变,诸如改变到街道级、鸟瞰、或导航模式。地图视图模式组件522可以向动画模块530通知所选择的地图视图,并且在适用的情况下还通知地图视图模式。动画模块530可以指示生成过渡地图视图组件522,实现上文中参考图2至图4所讨论的呈现过渡动画的各种方法和实施例,以向显示器510发送所显示的地图视图和所选择的地图视图之间的过渡动画。
图6示出了根据一些实施例的地图视图之间的示例性过渡。设备在610显示地图的鸟瞰地图视图。用户通过各种前述方法可以选择进入在620中显示的导航模式。610和620之间的过渡动画在一些实施例中可以展示向下移动到620中展示的较低视图。630中所显示的地图视图显示城市的鸟瞰视图。地图视图640显示相同的鸟瞰视图,但是被旋转以面朝另一方向。630和640之间的过渡动画可以展示旋转以面朝640的方向。
示例性电子设备
介绍了电子设备、用于这样的设备的用户界面和用于使用这样的设备的相关联过程的实施例。在一些实施例中,设备是还包含其它功能诸如个人数字助理和/或音乐播放器功能的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施例包括但不限于来自Apple Inc(Cupertino,California)的iPod和设备。也可使用其他便携式电子设备,诸如具有触敏表面(例如,触摸屏显示器和/或触摸板)的膝上型电脑或平板电脑。也应当理解的是,在一些实施例中,该设备并非便携式通信设备,而是具有触敏表面(例如,触摸屏显示器和/或触摸板)的台式。在一些实施例中,设备是具有取向传感器(例如游戏控制器中的取向传感器)的游戏计算机。
在下面的讨论中,介绍了一种包括显示器和触敏表面的电子设备。然而应当理解,电子设备可以包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操作杆。
设备通常支持多种应用,诸如以下中的一种或多种:画图应用、展示应用、文字处理应用、网页创建应用、盘编辑应用、电子表格应用、游戏应用、电话应用、视频会议应用、电子邮件应用、即时消息应用、训练支持应用、相片管理应用、数字相机应用、数字视频摄像机应用、网络浏览应用、数字音乐播放器应用、和/或数字视频播放器应用。
可在所述设备上执行的各种应用可使用至少一个常用的物理用户界面设备,诸如触敏表面。触敏表面的一种或多种功能以及设备上所显示的对应的信息可被调节和/或从一个应用变为下一个应用和/或在相应的应用内变化。这样,设备的常用物理构造(诸如触敏表面)可支持具有用户界面的多种应用,这些用户界面对于用户是直观的和透明的。
现在关注具有触敏显示器的便携式设备的实施例。图7是示出根据一些实施例的具有触敏显示器1012的便携式多功能设备1000的框图。为方便起见,触敏显示器1012有时被称为“触摸屏”,并且也可称为或叫做触敏显示系统。设备1000可以具有存储器1002(其可以包括一个或多个计算机可读存储介质)、存储器控制器1022、一个或多个处理单元(CPU)1020、外围设备接口1018、RF电路系统1008、音频电路系统1010、扬声器1011、麦克风1013、输入/输出(I/O)子系统1006、其他输入或控制设备1016和外部端口1024。设备1000可包括一个或多个光学传感器1064。这些部件可通过一个或多个通信总线或信号线1003进行通信。
应当理解,设备1000只是便携式多功能设备的一个实例,并且设备1000可具有比所显示的更多或更少的部件,可组合两个或更多个部件,或可具有不同的部件配置或布置。图7中所示的各种部件可以硬件、软件或软硬件组合来实施,包括一个或多个信号处理和/或专用集成电路。
存储器1002可包括高速随机存取存储器并且也可包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。设备1000的其他部件(诸如CPU 1020和外围设备接口1018)对存储器1002的访问可由存储器控制器1022控制。
外围设备接口1018可以被用来将设备的输入和输出外围设备耦接到CPU 1020和存储器1002。这一个或多个处理器1020运行或执行存储在存储器1002中的各种软件程序和/或指令集,以执行设备1000的各种功能以及处理数据。
在一些实施例中,外围设备接口1018、CPU 1020和存储器控制器1022可在单个芯片(诸如芯片1004)上实施。在其他一些实施例中,它们可在单独的芯片上实施。
RF(射频)电路系统1008接收和发送RF信号,也被叫做电磁信号。RF电路系统1008将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络及其它通信设备通信。射频电路系统1008可包括用于执行这些功能的众所周知的电路系统,包括但不限于天线系统、射频收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等。射频电路系统1008可通过无线通信与网络和其他设备进行通信,所述网络诸如是互联网(也称为万维网(WWW))、内联网和/或无线网络,所述无线网络诸如是蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多个通信标准、协议和技术中任何一个,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行分组接入(HSDPA)、高速上行分组接入(HSUPA)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、无线相容性认证(Wi-Fi)(例如IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n)、互联网协议语音技术(VoIP)、Wi-MAX、电子邮件协议(例如互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如可扩展消息处理现场协议(XMPP)、针对即时信息处理现场支持扩展的会话发起协议(SIMPLE)、即时信息处理现场服务(IMPS))、和/或短消息服务(SMS)、或任何其他合适的通信协议,包括在本申请提交日还未开发出的通信协议。
音频电路系统1010、扬声器1011和麦克风1013提供用户与设备1000之间的音频接口。音频电路系统1010从外围设备接口1018接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器1011。扬声器1011将电信号转换为人类可听的声波。音频电路系统1010还接收被麦克风1013由声波转换来的电信号。音频电路系统1010将电信号转换为音频数据,并将音频数据传输到外围设备接口1018以进行处理。音频数据可通过外围设备接口1018从存储器1002和/或射频电路系统1008进行检索和/或传输到存储器1002和/或射频电路系统1008。在一些实施例中,音频电路系统1010还包括耳麦插孔(例如,图9中的1212)。耳麦插孔提供音频电路系统1010与可移除的音频输入/输出外围设备之间的接口,可移除的音频外围设备诸如是仅输出的耳机或者具有输出(例如,单耳或双耳耳机)和输入(例如,麦克风)二者的耳麦。
I/O子系统1006将设备1000上的输入/输出外围设备(诸如触摸屏1012和其它输入控制设备1016)耦接到外围设备接口1018。I/O子系统1006可包括显示控制器1056以及用于其他输入或控制设备的一个或多个输入控制器1060。这一个或多个输入控制器1060从其它输入或控制设备1016接收电信号/发送电信号到其它输入或控制设备1016。所述其他输入控制设备1016可包括物理按钮(例如,下压按钮、摇杆按钮等)、拨号盘、滑块开关、操纵杆、点击式转盘等。在一些另选实施例中,输入控制器1060可耦接到(或不耦接到)以下任一个:键盘、红外线端口、USB端口和指针设备诸如鼠标。这一个或多个按钮(例如,1208,图9)可包括用于扬声器1011和/或麦克风1013的音量控制的向上/向下按钮。所述一个或多个按钮可包括下压按钮(例如,1206,图9)。
触敏显示器1012提供设备与用户之间的输入接口和输出接口。显示控制器1056从触摸屏1012接收电信号和/或向触摸屏1012发送电信号。触摸屏1012向用户显示视觉输出。可视化输出可包括图形、文本、图标、视频以及它们的任何组合(统称为“图形”)。在一些实施例中,一些视觉输出或全部的视觉输出可对应于用户界面对象。
触摸屏1012具有基于触感和/或触觉接触从用户接受输入的触敏表面、传感器或传感器组。触摸屏1012和显示控制器1056(与存储器1002中的任何相关联模块和/或指令集一起)检测触摸屏1012上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与显示在触摸屏1012上的用户界面对象(例如,一个或多个软按键、图标、网页或图像)的交互。在一示例性实施例中,触摸屏1012与用户之间的接触点对应于用户的手指。
触摸屏1012可使用液晶显示器(LCD)技术、发光聚合物显示器(LPD)技术、或发光二极管(LED)技术,但是在其他实施例中可以使用其他显示器技术。触摸屏1012和显示控制器1056可以利用现在已知或未来开发的多个触摸感测技术中任一个来检测接触及其任何移动或中断,包括但不限于电容性、电阻性、红外和表面声波技术、以及其他接近传感器阵列或用于确定与触摸屏1012的一个或多个接触点的其他元件。在一示例性实施例中,使用投射式互电容感测技术,诸如从Apple Inc.(Cupertino,California)的iPod和发现的技术。
触摸屏1012可具有超过100dpi的视频分辨率。在一些实施例中,触摸屏具有大约1060dpi的视频分辨率。用户可使用任何合适的对象或附加物(诸如触笔、手指等)来接触触摸屏1012。在一些实施例中,用户界面被设计为主要与基于手指的接触和手势一起工作,这与基于触笔的输入相比由于手指在触摸屏上接触面积更大而可能精确度更低。在一些实施例中,设备将基于手指的粗略输入翻译为精确的指针/光标位置或命令,以执行用户所期望的动作。
在一些实施例中,除了触摸屏之外,设备1000还可包括触摸板(未示出)以用于激活或停用特定的功能。在一些实施例中,触控板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触摸板可以是与触摸屏1012分开的触敏表面或者是由触摸屏形成的触敏表面的延伸。
设备1000还包括用于为各种部件供电的电力系统1062。电力系统1062可包括电源管理系统、一个或多个功率源(例如,电池、交流电(AC))、再充电系统、电源故障检测电路、电源转换器或反相器、电源状态指示器(例如,发光二极管(LED))以及与便携式设备中的电力生成、管理和分配相关联的任何其他部件。
设备1000还可包括一个或多个光学传感器1064。图8示出了耦接到I/O子系统1006中光学传感器控制器1058的光学传感器。光学传感器1064可包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器1064从环境接收光(通过一个或多个透镜投射),并且将光转换为表示图像的数据。结合成像模块1043(也称为相机模块),光学传感器1064可捕获静止图像或视频。在一些实施例中,光学传感器位于设备1000的后部,与设备前部的触摸屏显示器1012相对,使得触摸屏显示器可作为取景器使用以用于静止和/或视频图像采集。在一些实施例中,另一个光学传感器位于设备的前部使得可获得用户的图像以用于视频会议,同时用户在触摸屏显示器上查看其他视频会议参与者。
设备1000还可包括一个或多个接近传感器1066。图7示出了耦接到外围设备接口1018的接近传感器1066。作为另外一种选择,接近传感器1066可被耦接至I/O子系统1006中的输入控制器1060。在一些实施例中,当多功能设备被放置在用户耳朵附近时(例如,当用户打电话时),所述接近传感器关闭并禁用触摸屏1012。
设备1000包括一个或多个取向传感器1068。在一些实施例众,这一个或多个取向传感器包括一个或多个加速度计(例如一个或多个线性加速度计和/或一个或多个旋转加速度计)。在一些实施例中,这一个或多个取向传感器包括一个或多个陀螺仪。在一些实施例中,这一个或多个取向传感器包括一个或多个磁力仪。在一些实施例中,这一个或多个取向传感器包括全球定位系统(GPS)、全球导航卫星系统(GLONASS)、和/或其他全球导航系统接收器中的一个或多个。GPS、GLONASS、和/或其他全球导航系统接收器可用于获得关于设备1000的位置和取向(例如纵向或横向)的信息。在一些实施例中,这一个或多个取向传感器包括取向/旋转传感器的任何组合。图7示出了耦接到外围设备接口1018的这一个或多个取向传感器1068。或者,这一个或多个取向传感器1068可耦接到I/O子系统1006中的输入控制器1060。在一些实施例中,信息基于对从这一个或多个取向传感器接收的数据的分析而在触摸屏显示器上被显示在纵向视图或横向视图中。
在一些实施例中,存储在存储器1002中的软件组件包括操作系统1026、通信模块(或指令集)1028、接触/运动模块(或指令集)1030、图形模块(或指令集)1032、文本输入模块(或指令集)1034、全球定位系统(GPS)模块(或指令集)1035、以及应用(或指令集)1036。此外,在一些实施例中,存储器1002存储设备/全局内部状态1057,如图9和12中所示设备/全局内部状态1057包括以下中一者或多者:活动应用状态,用于指示哪些应用(如果有的话)当前是活动的;显示状态,用于指示什么应用、视图或其它信息占据触摸屏显示器1012的各个区域;传感器状态,包括从设备的各个传感器和输入控制设备1016获得的信息;以及关于设备的位置和/或姿态的位置信息。
操作系统1026(例如,Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电力管理等)的各种软件组件和/或驱动器,并且有利于各种硬件和软件组件之间的通信。
通信模块1028有利于通过一个或多个外部端口1024与其它设备通信,并且还包括用于处理由RF电路系统1008和/或外部端口1024所接收的数据的各种软件组件。外部端口1024(例如,通用串行总线(USB)、火线等)被适配用于直接耦接到其它设备或者间接地通过网络(例如,因特网、无线LAN等)耦接。在一些实施例中,外部端口是与iPod(AppleInc.的商标)设备上所使用的30针连接器相同的或类似的以及/或者与其兼容的多针(例如,30针)连接器。
接触/运动模块1030可检测与触摸屏1012(结合显示控制器1056)和其他触敏设备(例如,触摸板或物理点击式转盘)的接触。接触/运动模块1030包括用于执行与接触检测相关的各种操作的各种软件组件,诸如确定是否已经发生了接触(例如,检测手指按下事件),确定是否有接触运动并在触敏表面上跟踪该运动(例如,检测一个或多个手指拖动事件),以及确定接触是否已停止(例如,检测手指提起事件或接触中断)。接触/运动模块1030从触敏表面接收接触数据。确定由一系列的接触数据所表示的接触点的运动,这可包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的变化)。这些操作可施加于单个触点(例如,一个指状触点)或多个同时的触点(例如,“多点接触”/多个指状触点)。在一些实施例中,接触/运动模块1030和显示控制器1056检测触控板上的接触。
接触/运动模块1030可检测用户输入的手势。触敏表面上的不同的手势具有不同的接触模式。因此,手势可通过检测特定的接触模式而被检测到。例如,检测到手指轻击手势包括检测到手指按下事件、然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标位置处)检测到手指抬起(抬离)事件。又如,在触敏表面上检测到手指轻扫手势包括检测到手指按下事件、然后检测到一个或多个手指拖动事件、并且随后检测到手指抬起(抬离)事件。
图形模块1032包括用于在触摸屏1012或其他显示器上呈现和显示图形的各种已知的软件组件,包括用于改变被显示的图形的强度的组件。如本文所使用,术语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如包括软按键的用户界面对象)、数字图像、视频、动画等等。
在一些实施例中,图形模块1032存储表示要使用的图形的数据。每个图形可被分配到对应的代码。图形模块1032从应用等接收指定要显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其它图形属性数据,并且然后生成屏幕图像数据来输出给显示控制器1056。
文本输入模块1034可以是图形模块1032的组件,该文本输入模块提供软键盘以用于在各种应用(例如,联系人1037、电子邮件1040、即时消息1041、浏览器1047、以及任何其他需要文本输入的应用)中输入文本。
GPS模块1035确定设备的位置并提供该信息以供在各种应用中使用(例如,提供至电话1038以用于基于位置的拨号,提供至相机1043作为图片/视频元数据,以及提供至提供基于位置的服务的应用(诸如天气桌面小程序、当地黄页桌面小程序和地图/导航桌面小程序))。
应用1036可包括下列模块(或指令集)、或其子集或超集:
·联系人模块1037(有时叫做通讯录或联系人列表);
·电话模块1038;
·视频会议模块1039;
·电子邮件客户端模块1040;
·即时消息(IM)模块1041;
·训练支持模块1042;
·用于静止图像和/或视频图像的相机模块1043;
·图像管理模块1044;
·浏览器模块1047;
·日历模块1048;
·桌面小程序模块1049,其可以包括以下中一者或多者:天气桌面小程序1049-1、股票桌面小程序1049-2、计算器桌面小程序1049-3、闹钟桌面小程序1049-4、词典桌面小程序1049-5和用户获得的其他桌面小程序、以及用户创建的桌面小程序1049-6;
·用于生成用户创建的桌面小程序1049-6的桌面小程序创建器模块1050;
·搜索模块1051;
·视频和音乐播放器模块1052,其可以由视频播放器
·模块和音乐播放器模块构成;
·便笺模块1053;
·地图模块1054;和/或
·在线视频模块1055。
可存储在存储器1002中的其他应用1036的实例包括其他文字处理应用、其他图像编辑应用、绘图应用、展示应用、支持java的应用、加密、数字权限管理、语音识别和语音复制。
结合触摸屏1012、显示控制器1056、接触模块1030、图形模块1032和文本输入模块1034,联系人模块1037可以被用于管理通讯录或联系人列表(例如存储在存储器1002中联系人模块1037的应用内部状态1092中),包括:添加姓名到通讯录;从通讯录删除姓名;将电话号码、电子邮件地址、实际地址或其他信息与姓名关联;将图像与姓名关联;对姓名进行分类和归类;提供电话号码或电子邮件地址来发起和/或促进通过电话1038、视频会议1039、电子邮件1040、或IM 1041的通信;等等。
结合射频电路系统1008、音频电路系统1010、扬声器1011、麦克风1013、触摸屏1012、显示控制器1056、接触模块1030、图形模块1032和文本输入模块1034,电话模块1038可用于输入对应于电话号码的字符序列;访问通讯录1037中的一个或多个电话号码;修改已输入的电话号码;拨打相应的电话号码;进行会话;以及当会话完成时断开或挂断电话。如上所述,无线通信可以使用多种通信标准、协议和技术中任何一个。
结合RF电路系统1008、音频电路系统1010、扬声器1011、麦克风1013、触摸屏1012、显示控制器1056、光学传感器1064、光学传感器控制器1058、接触模块1030、图形模块1032、文本输入模块1034、联系人列表1037和电话模块1038,视频会议模块1039包括用于根据用户指令发起、进行、以及结束用户与一个或多个其它参与方之间的视频会议的可执行指令。
结合RF电路系统1008、触摸屏1012、显示控制器1056、接触模块1030、图形模块1032和文本输入模块1034,电子邮件客户端模块1040包括用于响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块1044,电子邮件客户端模块1040使得非常容易创建和发送具有由相机模块1043拍摄的静止图像或视频图像的电子邮件。
结合RF电路系统1008、触摸屏1012、显示控制器1056、接触模块1030、图形模块1032和文本输入模块1034,即时消息模块1041包括用于输入对应于即时消息的字符序列、修改先前输入的字符、传输相应即时消息(例如,使用短消息服务(SMS)或多媒体消息服务(MMS)协议用于基于电话的即时消息或者使用XMPP、SIMPLE、或IMPS用于基于因特网的即时消息)、接收即时消息以及查看所接收的即时消息的可执行指令。在一些实施例中,所传输和/或所接收的即时消息可包括在MMS和/或增强的消息服务(EMS)中所支持的图形、照片、音频文件、视频文件和/或其他附件。如本文所使用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE、或IMPS发送的消息)二者。
结合射频电路系统1008、触摸屏1012、显示控制器1056、接触模块1030、图形模块1032、文本输入模块1034、GPS模块1035、地图模块1054和音乐播放器模块1046,训练支持模块1042包括可执行指令以创建训练(例如,具有时间、距离、和/或卡路里燃烧目标);与训练传感器(运动设备)进行通信;接收训练传感器数据;校准用于监视训练的传感器;选择和播放用于训练的音乐;以及显示、存储和传输训练数据。
结合触摸屏1012、显示控制器1056、光学传感器1064、光学传感器控制器1058、接触模块1030、图形模块1032和图像管理模块1044,相机模块1043包括用于捕获静止图像或视频(包括视频流)以及将它们存储到存储器1002中、修改静止图像或视频的特性、或从存储器1002删除静止图像或视频的可执行指令。
结合触摸屏1012、显示控制器1056、接触模块1030、图形模块1032、文本输入模块1034和相机模块1043,图像管理模块1044包括用于排列、修改(例如,编辑)、或以其它方式操控、加标签、删除、展示(例如,在数字幻灯片或相册中)、以及存储静止图像和/或视频图像的可执行指令。
结合RF电路系统1008、触摸屏1012、显示系统控制器1056、接触模块1030、图形模块1032和文本输入模块1034,浏览器模块1047包括用于根据用户指令浏览互联网(包括搜索、链接到、接收、以及显示网页或其部分、以及链接到网页的附件和其它文件)的可执行指令。
结合RF电路系统1008、触摸屏1012、显示系统控制器1056、接触模块1030、图形模块1032、文本输入模块1034、电子邮件客户端模块1040和浏览器模块1047,日历模块1048包括用于根据用户指令创建、显示、修改、以及存储日历和与日历相关联的数据(例如,日历条目、待办任务列表等)的可执行指令。
结合射频电路系统1008、触摸屏1012、显示系统控制器1056、接触模块1030、图形模块1032、文本输入模块1034和浏览器模块1047,桌面小程序模块1049是可由用户下载和使用的微型应用(例如,天气桌面小程序1049-1、股票桌面小程序1049-2、计算器桌面小程序1049-3、闹钟桌面小程序1049-4和词典桌面小程序1049-5)或可由用户创建的微型应用(例如,用户创建的桌面小程序1049-6)。在一些实施例中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施例中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。
结合射频电路系统1008、触摸屏1012、显示系统控制器1056、接触模块1030、图形模块1032、文本输入模块1034和浏览器模块1047,桌面小程序创建器模块1050可由用户用来创建桌面小程序(例如,将网页的用户指定部分变成一个桌面小程序)。
结合触摸屏1012、显示系统控制器1056、接触模块1030、图形模块1032和文本输入模块1034,搜索模块1051包括用于根据用户指令搜索存储器1002中匹配一个或多个搜索条件(例如,一个或多个用户指定的搜索词)的文本、音乐、声音、图像、视频、和/或其他文件的可执行指令。
结合触摸屏1012、显示系统控制器1056、接触模块1030、图形模块1032、音频电路系统1010、扬声器1011、RF电路系统1008和浏览器模块1047,视频和音乐播放器模块1052包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其它声音文件的可执行指令,以及用于显示、展示或以其它方式回放视频(例如,在触摸屏1012上或在经由外部端口1024连接的外部显示器上)的可执行指令。在一些实施例中,设备1000可包括MP3播放器(诸如iPod(AppleInc.的商标))的功能。
结合触摸屏1012、显示控制器1056、接触模块1030、图形模块1032和文本输入模块1034,便笺模块1053包括用于根据用户指令创建和管理便笺、待办任务清单等的可执行指令。
结合射频电路系统1008、触摸屏1012、显示系统控制器1056、接触模块1030、图形模块1032、文本输入模块1034、GPS模块1035和浏览器模块1047,地图模块1054可用于根据用户指令接收、显示、修改、以及存储地图和与地图相关联的数据(例如,行驶方向;特定位置处或附近的商店和其它兴趣点的数据;以及其他基于位置的数据)。
结合触摸屏1012、显示系统控制器1056、接触模块1030、图形模块1032、音频电路系统1010、扬声器1011、射频电路系统1008、文本输入模块1034、电子邮件客户端模块1040和浏览器模块1047,在线视频模块1055包括允许用户访问、浏览、接收(例如,通过流媒体和/或下载)、播放(例如在触摸屏上或在通过外部端口1024连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件、以及以其他方式管理一种或多种文件格式(诸如H.264)的在线视频的指令。在一些实施例中,即时消息模块1041(而不是电子邮件客户端模块1040)用于发送至特定在线视频的链接。
上述每个模块和应用对应于用于执行上述一种或多种功能以及在本申请中所介绍的方法(例如,本文中所描述的计算机实现的方法和其它信息处理方法)的一组可执行指令。这些模块(即指令集)不需要被实现为独立的软件程序、过程或模块,并且因此在各种实施例中,这些模块的各种子集可以被组合或以其他方式重新安排。在一些实施例中,存储器1002可存储以上所述的模块和数据结构的子集。此外,存储器1002可存储以上未描述的附加模块和数据结构。
在一些实施例中,设备1000是这样一种设备,即在该设备上,预定义的一组功能的操作仅仅通过触摸屏和/或触摸板来执行。通过使用触摸屏和/或触摸板作为用于设备1000的操作的主要输入控制设备,设备1000上的物理输入控制设备(诸如下压按钮、拨号盘等)的数量可减少。
可通过触摸屏和/或触摸板唯一地执行的预定义的一组功能包括用户界面之间的导航。在一些实施例中,当用户触摸触摸板时,触摸板将设备1000从可显示在设备1000上的任何用户界面导航到主菜单、主界面菜单或根菜单。在这样的实施例中,触摸板可以被称为“菜单按钮”。在一些其他实施例中,菜单按钮可以是物理下压按钮或者其他物理输入控制设备,而非触摸板。
图8是示出根据一些实施例的用于事件处理的示例性组件的框图。在一些实施例中,存储器1002(在图8中)包括事件分类器170(例如在操作系统1026中)和相应的应用1036-1(例如前述应用1037-1051、1055中任一者)。
事件分类器1070接收事件信息并确定要将事件信息传递到的应用1036-1和应用1036-1的应用视图1091。事件分类器1070包括事件监视器1071和事件调度器模块1074。在一些实施例中,应用1036-1包括应用内部状态1092,该应用内部状态1092指示当该应用是活动的或正在执行时显示在触敏显示器1012上的当前应用视图。在一些实施例中,设备/全局内部状态1057被事件分类器1070用来确定哪个(哪些)应用当前是活动的,应用内部状态1092被事件分类器1070用来确定要将事件信息传递到的应用视图1091。
在一些实施例中,应用内部状态1092包括另外的信息,诸如以下中一者或多者:当应用1036-1恢复执行时将被使用的恢复信息、指示正被应用1036-1显示的信息或准备好用于被应用1036-1显示的信息的用户界面状态信息、用于使得用户能够返回到应用1036-1的前一状态或视图的状态队列、以及用户采取的先前动作的重复/撤销队列。
事件监视器1071从外围设备接口1018接收事件信息。事件信息包括关于子事件(例如,触敏显示器1012上的用户触摸,作为多点触摸手势的一部分)的信息。外围设备接口1018传输其从I/O子系统1006或传感器(诸如接近传感器1066、取向传感器1068和/或麦克风1013(通过音频电路系统1010))接收的信息。外围设备接口1018从I/O子系统1006接收的信息包括来自触敏显示器1012或触敏表面的信息。
在一些实施例中,事件监视器1071以预先确定的间隔发送请求到外围设备接口1018。作为响应,外围设备接口1018传输事件信息。在其它实施例中,外围设备接口1018仅当存在显著事件(例如,接收到高于预先确定的噪声阈值的输入和/或接收到超过预先确定的持续时间的输入)时传输事件信息。
在一些实施例中,事件分类器1070还包括命中视图确定模块1072和/或活动事件识别器确定模块1073。
当触敏显示器1012显示多于一个视图时,命中视图确定模块1072提供用于确定子事件已经在一个或多个视图内什么地方发生的软件过程。视图由用户在显示器上可以看到的控件和其它元件构成。
与应用相关联的用户界面的另一方面是一组视图,本文中有时也称为应用视图或用户界面窗口,在其中显示信息以及发生基于触摸的手势。其中检测到触摸的(相应的应用的)应用视图可对应于应用的程序化或视图分级结构内的程序化水平。例如,其中所检测到的接触的最低水平视图可称为点击视图,并且被认为是正确输入的一组事件可至少部分地基于初始接触的点击视图来确定,该初始接触开始一个基于接触的手势。
命中视图确定模块1072接收与基于触摸的手势的子事件相关的信息。当应用具有被组织在分级结构中的多个视图时,命中视图确定模块1072将命中视图标识为该分级结构中应该处理该子事件的最低视图。在大多数情形中,命中视图是发起子事件(即形成事件或潜在事件的子事件序列中的第一个子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块识别,命中视图通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
活动事件识别器确定模块1073确定视图分级结构内的哪个或哪些视图应该接收特定的子事件序列。在一些实施例中,活动事件识别器确定模块1073确定仅命中视图应该接收特定的子事件序列。在其它实施例中,活动事件识别器确定模块1073确定包括子事件物理位置的所有视图均为活跃参与的视图,因此确定所有活跃参与的视图均应接收特定的子事件序列。在其它实施例中,即使触摸子事件完全被局限到与一特定视图相关联的区域,分级结构中更高的视图将仍然保持为活跃涉及的视图。
事件调度器模块174将事件信息调度到事件识别器(例如,事件识别器1080)。在包括活动事件识别器确定模块1073的实施例中,事件调度器模块1074将事件信息传递到由活动事件识别器确定模块1073确定的事件识别器。在一些实施例中,事件调度器模块1074在事件队列中存储事件信息,事件信息由相应事件接收器模块1082检索。
在一些实施例中,操作系统1026包括事件分类器1070。或者,应用1036-1包括事件分类器1070。在另一实施例中,事件分类器1070是独立的模块,或者是存储在存储器1002中的另一模块(诸如接触/运动模块1030)的一部分。
在一些实施例中,应用1036-1包括多个事件处理器1090和一个或多个应用视图1091,其中每一者都包括用于处理在该应用的用户界面的相应视图内发生的触摸事件的指令。应用1036-1的每个应用视图1091包括一个或多个事件识别器1080。通常,各个应用视图1091包括多个事件识别器1080。在其它实施例中,事件识别器1080中的一个或多个是独立模块的一部份,独立模块诸如是用户界面工具包(未示出)或应用1036-1从中继承方法和其它特性的更高等级对象。在一些实施例中,各个事件处理器1090包括以下中的一者或多者:数据更新器1076、对象更新器1077、GUI更新器1078、和/或从事件分类器1070接收的事件数据1079。事件处理器1090可利用或调用数据更新器1076、对象更新器1077或GUI更新器1078以更新应用内部状态1092。或者,应用视图1091中的一个或多个包括一个或多个相应事件处理器1090。另外,在一些实施例中,数据更新器1076、对象更新器1077和GUI更新器1078中的一个或多个被包括在相应应用视图1091中。
相应事件识别器1080从事件分类器1070接收事件信息(例如,事件数据1079),并且从事件信息来标识事件。事件识别器1080包括事件接收器1082和事件比较器1084。在一些实施例中,事件识别器1080还至少包括以下的一个子组:元数据1083,以及事件递送指令1088(其可包括子事件递送指令)。
事件接收器1082从事件分类器1070接收事件信息。事件信息包括关于子事件的信息,例如触摸或触摸移动。根据子事件,事件信息还包括另外的信息,诸如子事件的位置。当子事件涉及接触的运动时,事件信息也可包括子事件的速率和方向。在一些实施例中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向趋向,反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的相应信息。
事件比较器1084将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件、或者确定或更新事件或子事件的状态。在一些实施例中,事件比较器1084包括事件定义1086。事件定义1086包含事件的定义(例如,预定义的子事件序列),例如事件1(1087-1)、事件2(1087-2)、以及其它。在一些实施例中,事件1087中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个实例中,事件1(1087-1)的定义是在被显示对象上的双击。双击例如包括对于预先确定的阶段在被显示对象上的第一触摸(触摸开始)、对于预先确定的阶段的第一提离(触摸结束)、对于预先确定的阶段在被显示对象上的第二触摸(触摸开始)、和对于预先确定的阶段的第二提离(触摸结束)。在另一实例中,事件2(1087-2)的定义是在被显示对象上的拖动。拖动例如包括对于预先确定的阶段在被显示对象上的触摸(或接触)、该触摸在触敏显示器1012上的移动、以及该触摸的提离(触摸结束)。在一些实施例中,事件还包括用于一个或多个相关联事件处理器1090的信息。
在一些实施例中,事件定义1087包括用于相应用户界面对象的事件的定义。在一些实施例中,事件比较器1084执行命中测试,以确定哪个用户界面对象与子事件相关联。例如,在其中在触敏显示器1012上显示三个用户界面对象的应用视图中,当在触敏显示器1012上检测到触摸时,事件比较器1084执行命中测试,以确定这三个用户界面对象中哪一个与该触摸(子事件)相关联。如果每个被显示对象与相应的事件处理器1090相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理器1090应该被激活。例如,事件比较器1084选择与触发该命中测试的对象和子事件相关联的事件处理器。
在一些实施例中,相应事件1087的定义还包括延迟动作,延迟动作将事件信息的传递延迟直到已经确定子事件序列是否确实对应于事件识别器的事件类型之后。
当相应事件识别器1080确定子事件串不与事件定义1086中的任何事件匹配时,该相应事件识别器1080进入事件不可能、事件失败、或事件结束状态,然后其不理会这个基于触摸的手势的后续子事件。在这种情况下,保持活动以用于点击视图的其他事件识别器(如果有的话)继续跟踪和处理持续的基于接触的手势的子事件。
在一些实施例中,相应事件识别器1080包括具有指示事件传递系统应该如何执行对活跃涉及的事件识别器的子事件传递的能配置的属性、标志、和/或列表的元数据1083。在一些实施例中,元数据1083包括指示事件识别器可以如何彼此进行交互的能配置的属性、标记、和/或列表。在一些实施例中,元数据1083包括指示子事件是否被传递到视图或程序化分级结构中变化的等级的能配置的属性、标记、和/或列表。
在一些实施例中,当事件的一个或多个特定子事件被识别时,相应事件识别器1080激活与事件相关联的事件处理器1090。在一些实施例中,相应事件识别器1080将与该事件相关联的事件信息传递到事件处理器1090。激活事件处理器1090不同于发送(和延期发送)子事件到相应的命中视图。在一些实施例中,事件识别器1080抛出与所识别的事件相关联的标志,并且与该标志相关联的事件处理器1090接到该标志并执行预定义的过程。
在一些实施例中,事件传递指令1088包括传递关于子事件的事件信息而不激活事件处理器的子事件传递指令。相反,子事件传递指令将事件信息传递到与子事件串相关联的事件处理程序或者传递到活跃涉及的视图。与子事件串或与活跃涉及的视图相关联的事件处理程序接收事件信息,并执行预先确定的过程。
在一些实施例中,数据更新器1076创建并更新在应用1036-1中使用的数据。例如,数据更新器1076更新在联系人模块1037中使用的电话号码,或者存储在视频播放器模块1045中使用的视频文件。在一些实施例中,对象更新器1077创建并更新在应用1036-1中使用的对象。例如,对象更新器1076创建新的用户界面对象,或者更新用户界面对象的位置。GUI更新器1078更新GUI。例如,GUI更新器1078准备显示信息并将其发送至图形模块1032以用于显示在触敏显示器上。
在一些实施例中,事件处理器1090包括或者具有对数据更新器1076、对象更新器1077和GUI更新器1078的访问权限。在一些实施例中,数据更新器1076、对象更新器1077和GUI更新器1078被包括在相应应用1036-1或应用视图1091的单个模块中。在其它实施例中,它们被包括在两个或更多个软件模块中。
应当理解,有关触敏显示器上用户接触的事件处理的上述讨论也适用于用于用输入设备操作多功能设备1000的其他形式的用户输入,并不是所有用户输入都在触摸屏上发起,例如使用或不使用单个或多个键盘按压或保持来协调鼠标移动和鼠标按钮按压;用户在触摸板上移动、轻击、拖动、滚动等;触笔输入;设备运动;口头指令;检测到的眼球运动;生物识别输入、和/或它们的任何组合,这些可用作对应于限定待识别的事件的子事件的输入。
图9示出了根据一些实施例的具有触摸屏1012的一种便携式多功能设备1000。触摸屏可在用户界面(UI)1200内显示一个或多个图形。在该实施例中以及下面描述的其它实施例中,用户可通过在图形上做手势来选择图形中的一者或多者,例如使用一个或多个手指1202(图中未按比例绘制)或一个或多个触笔1203(图中未按比例绘制)。在一些实施例中,当用户中断与该一个或多个图形的接触时,发生对一个或多个图形的选择。在一些实施例中,手势可包括一次或多次轻击,一次或多次轻扫(从左到右、从右到左、向上和/或向下)和/或已与设备1000接触的手指的滚动(从右到左、从左到右、向上和/或向下)。在一些实施例中,无意中接触图形可能不会选择该图形。例如,当对应于选择的手势是轻击时,扫过应用图标的轻扫手势可能不会选择对应的应用。
设备1000还可包括一个或多个物理按钮,诸如“主界面”或菜单按钮1204。如先前所述,菜单按钮1204可用于导航到可在设备1000上执行的一组应用中的任一个应用1036。或者,在一些实施例中,菜单按钮被实现为显示在触摸屏1012上的GUI中的软按键。
在一个实施例中,设备1000包括触摸屏1012、菜单按钮1204、用于设备开关机和锁定设备的下压按钮1206、(一个或多个)音量调节按钮1208、用户身份模块(SIM)卡槽1210、耳麦插孔1212、和对接/充电外部端口1024。下压按钮1206可用于通过下压该按钮并将该按钮保持在下压状态持续预定的时间间隔来开启/关闭设备上的电源。通过压下该按钮并在经过该预定义的时间间隔之前释放该按钮来锁定设备;和/或解锁设备或发起解锁过程。在一另选的实施例中,设备1000还可通过麦克风1013接受言语输入以用于激活或停用一些功能。
应当指出的是,虽然以下示例中很多示例将参考触摸屏1012(其中触敏表面和显示器组合)上的输入来给出,但是可以使用独立于显示器的触敏表面,而不使用触摸屏1012。
示例性地图功能性
图10示出了一种多功能设备的示例,其可以以类似于上述多功能设备的方式被配置。在所示实施例中,多功能设备1400包括可以被存储在多功能设备1400的一个或多个存储器中并且可以在多功能设备1400的一个或多个处理器上执行的地图应用(例如上述地图模块1054)。与上述多功能设备的情况相同,多功能设备1400可包括用于操作该多功能设备的一个或多个控件1402。这些控件可包括但不限于用于对设备开关机的电源控件、用于调节耳机音量或扬声器音量的音量控件、用于导航设备功能的菜单控件、和用于启动设备上的一个或多个功能或动作的功能控件。控件1402可包括硬件控件或软件控件。例如,电子显示1412的左下角包括控件1412的图形表示,其可被用户选中,诸如通过根据上述触摸屏功能性的触摸。多功能设备1400还可包括类似于上述那些组件的其他组件,诸如麦克风1404、听筒1406(例如通过其传送电话呼叫的音频表示的扬声器)、光学传感器1408、和/或扬声器1410。这些组件中每一者都可以类似于上述图9的那些类似命名的组件的方式被配置。此外,电子显示1412可以被配置有触摸屏能力,诸如上述触摸屏1012。在各种实施例中,控件(例如屏幕上控件1402)可以被用于执行多种地图相关功能中的任何功能,包括但不限于放大、缩小、旋转屏幕、平移屏幕、切换视图(例如二维到三维以及三维到二维)、和/或其他地图相关的活动。在各种实施例中,一个或多个手势可以被用于执行上述地图控制中任何控制(使用或不使用实际图形屏幕上控件)。在一个非限制性的示例中,可以使用单指手势来调节三维地图视图内的俯仰。
如上所述,多功能设备1400包括可以被存储在多功能设备1400的一个或多个存储器中并且可以在多功能设备1400的一个或多个处理器上执行的地图应用。在所示实施例中,地图应用的图形表示可以包括地理区域的地图1414。这个地图可以作为二维地图或三维地图来展示,对此的选择可以通过例如地图应用的用户能配置的参数来指定。在一些实施例众,多功能设备可以响应于来自多功能设备的任何输入部件的输入而在二维地图或三维地图视图之间切换。在一个非限制性示例中,来自取向传感器1068的输入可引发从二维地图视图到三维地图的转变、以及相反方向的转变。例如,取向传感器1068中的一者或多者可以检测多功能设备的取向的倾斜(例如用户发起的倾斜),并且作为响应而引发上述切换。
地图1414可以包括图形位置指示器1416,其可以表示多功能设备在地图的地理区域内的位置。通常,位置指示器1416可以表示多功能设备的当前或实时位置,但是应该理解的是,在一些情形下,在多功能设备的实际位置与该位置的图形表示(例如位置指示器1416)之间可能存在某种小的时间延迟量。这可能例如在多功能设备在移动的时候发生。在各种实施例中,多功能设备可以被配置为执行地图匹配,包括但不限于将所观察到的用户位置的序列与数字地图上的道路网络对准。在各种实施例中,多功能设备可以被配置为执行“对齐”功能,其中在用户的位置落在道路的预定阈值距离内时将图形位置指示器1416对齐到该道路上。
此外,多功能设备1400通常可由用户操作。例如,多功能设备1400在一些情形下可以是个人用来进行电话呼叫、发送文本消息、浏览互联网等的智能电话。因为个人对多功能设备的使用一般都意味着个人位于多功能设备附近(例如用户可能正将该设备握在手中),所以本文中对设备位置和用户位置的标引可以被认为是同义的。然而,应当理解,在一些情形下,多功能设备的实际位置和该设备的用户可能相距某个距离。例如,用户可能将其多功能设备放置在室外咖啡馆的桌上,同时坐在附近的椅子上。在这种情况下,设备的位置和用户的位置可能相差某个小的量。在另一示例中,多功能设备1400可以被安放在汽车仪表板上(例如用于用作导航设备),而设备的用户坐在附近(例如坐在汽车的驾驶者座椅上)。在这种情况下,设备的位置与用户的位置也可能相差某个小的量。尽管存在这些小的位置差别,但是通常可以将多功能设备的位置和多功能设备用户的位置看作重合。
在各种实施例中,多功能设备所显示的地图1414可以包括一个或多个道路(例如道路1418a-b)、建筑物(未示出)、地形特征(例如山丘、山脉)(未示出)、公园(未示出)、水域(未示出)、和/或地图可传递的任何其他项目。在一些情形下,地图还可以包括其他地图和导航信息,包括但不限于来自指向罗盘、高度计、和/或温度计中一者或多者的读数。
在各种实施例中,地图应用可以被配置为生成从始发点(例如一地址或用户当前位置)到目的地(例如一地址、地标、加书签/保存的位置、或兴趣点)的指向。例如,始发点和/或目的地的指示可以由用户输入到多功能设备中。多功能设备可以生成这两个点之间的一个或多个候选路线。多功能设备可以选择那些路线之一用于显示在设备上。在其他情况下,多个候选路线可以被展示给用户,并且用户可以选择偏爱的路线。在所示实施例中,一个路线被图示为路线1420。路线还可以包括可以(2D或3D地)被展示给用户的逐向指向,诸如执行从道路1418a向道路1418b的转弯的图形指示1422a。在一些实施例中,这个执行转弯的图形指示可以被补充有对于转弯的声音指示或者由对于转弯的声音指示替代,对于转弯的声音指示诸如是来自扬声器1410的语音命令,其指示用户例如“100码之后左转”。在一些实施例中,所选择的路线可以作为路线概览被展示给用户。例如,在继续进行导航之前,多功能设备可以生成路线概览显示,其图形地指示路线的关键信息,诸如关键转弯、路线距离和/或贯穿该路线的预计时间。在一些情形下,多功能设备可以被配置为在路线概览中或在实际导航期间生成快速连续发生的驾驶操控(例如转弯、变道等)的显示。这个信息可以有助于用户安全地为这样的操控作准备。在一些情况下,路线信息可以以列表格式(诸如转弯或其他操控的列表)被展示。
在各种实施例中,多功能设备的地图应用可以被配置为随时间推移而跟踪用户的位置,并且相应地调节图形位置指示器1416以指示新位置。例如,地图应用可根据位置信息(例如来自GPS模块1035的信息)确定用户正沿路线1420行进,并且相应地更新地图1414。例如,在一些情况下,地图1414可保持静态,而位置指示器1416沿路线移动。在其他情况下,位置指示器1416可保持静态或“固定”,而地图1414在位置指示器周围移动(例如平移、转动等)。
在各种实施例中,多功能设备可被配置为显示备用的或应急的路线。在一些情况下,这些路线可以是能够由用户选择的(例如经由触摸屏界面)。在其他情况下,多功能设备可以基于一个或多个参数(诸如最短距离或时间)来选择最佳路线。在一些情况下,这些参数或偏好可由用户来设置。
如下文所详述,多功能设备在各种实施例中可从地图服务接收指定路线的路线规划信息。在一些情况下,多功能设备可根据该路线进行导航引导。但是,在一些情况下,多功能设备可执行重新路线规划操作,以便生成到目的地的新路线。例如,用户可能已经偏离最初的路线或者明确地请求新路线。在一些情况下,多功能设备可以基于存储在多功能设备上的已缓存的地图数据来执行重新路线规划。
在各种实施例中,多功能设备可被配置为基于实时数据(诸如地图信息、道路状况、交通状况、和/或天气状况的更新)来执行路线修正。例如,多功能设备可被配置为改变路线使得路线避开施工区域或危险的风暴中心。
在各种实施例中,多功能设备可被配置为独立地或者作为导航引导一部分地执行车道引导。例如,多功能设备可响应于检测到随后将快速连续的出现多个转弯而为用户提供关于走哪条车道的指示或建议。例如,语音或视觉指示可以指定用户在随后的左转之前“右转,然后移动到左车道”。在另一示例中,多功能设备可能检测到一个或多个车道关闭(例如由于施工或其他原因)并且指示用户避开这样的车道。
在各种实施例中,多功能设备可被配置为为指向生成语音提示。例如,在导航引导期间,多功能设备可被配置为生成路线上下一转弯或驾驶操控的音频表示。例如,多功能设备可被配置为音频地指示用户应该“在100码之后左转”或者操控的某种其它听觉指示。
在各种实施例中,多功能设备可对用于执行动作的各种语音命令进行响应,包括用于获得路线的命令。例如,多功能设备可通过麦克风或多功能设备的其他换能器解释用户的语音。用户可指定所请求路线的始发点和目的地。在各种实施例中,多功能设备可被配置为利用用户的当前位置作为路线的始发点。
在各种实施例中,多功能设备可被配置为沿特定路线(诸如当前导航路线)执行搜索。例如,多功能设备的用户可请求兴趣点(诸如加油站或餐馆)的位置。但是,如果用户正沿特定路线行进,则他们可能不会对不在该路线附近的兴趣点特别感兴趣。因此,多功能设备可被配置为将对兴趣点的任何搜索限定到与路线相距指定距离内。在各种实施例中,这个距离可以是能配置的参数。
在各种实施例中,多功能设备可被配置为显示各种图形层,包括但不限于图形地图信息、鸟瞰图像(例如卫星获得的图像)、和/或交通信息。例如,在交通信息示例中,多功能设备可将颜色编码的交通信息叠置在道路上以指示交通正在流动的速度。例如,绿色编码可以被用来指示交通正在正常地流动,黄色或红色可以被用来指示交通缓慢。
在各种实施例中,多功能设备可被配置为显示关于导航路线的任何量度或统计量,包括但不限于预计到达时间、剩余行进距离、平均速度(总平均或移动平均)、最高速度、和/或其他路线统计值。
在各种实施例中,多功能设备可被配置为以不同角度显示路线,以便适应不同用户的偏好。这样的视角可以包括用于二维地图的鸟瞰视图到对于三维地图可用的多种相机角度中的任何角度。
在各种实施例中,多功能设备可被配置为提供不是地图和路线规划信息的导航信息。例如,多功能设备可以显露来自上文中参考图7所述的任何硬件设备的输出。在一个非限制性的示例中,取向传感器1068可包括输出指向数据的罗盘。本文所述的多功能设备可被配置为将这个指向数据例如显示为虚拟罗盘。
示例型系统
本文所述的用于提供地图视图改变的视觉反馈的方法的实施例可以在可以与各种其他设备交互的一个或多个计算机系统(诸如地图服务130)上执行。图11图示了一种此类计算机系统。在不同实施例中,计算机系统2000可以是各种类型的设备中的任何设备,包括但不限于个人计算机系统、台式计算机、膝上型、笔记本、或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、消费者设备、视频游戏控制器、手持式视频游戏设备、应用服务器、存储设备、外围设备(诸如交换机、调制解调器、路由器)、或一般性的任何类型的计算或电子设备。
在所示实施例中,计算机系统2000包括经由输入/输出(I/O)接口2030耦接到系统存储器2020的一个或多个处理器2010。计算机系统2000还包括耦接到I/O接口2030的网络接口2040、以及一个或多个输入/输出设备2050,诸如光标控制设备2060、键盘2070和显示器2080。在一些实施例中可以想到实施例可以利用计算机系统2000的单个实例来实现,而在其他实施例中,多个此类系统或者构成计算机系统2000的多个节点可以被配置为作为实施例的不同部分或实例的主机。例如,在一个实施例中,一些元素可以经由计算机系统2000的与实现其他元素的那些节点不同的一个或多个节点来实现。
在各种实施例中,计算机系统2000可以是包括一个处理器2010的单处理器系统、或者包括几个处理器2010(例如两个、四个、八个、或另一适当数量)的多处理器系统。处理器2010可以是能够执行指令的任何合适的处理器。例如,在各种实施例中,处理器2010可以是实现多种指令集架构(ISA)(诸如x86、PowerPC、SPARC、或MIPS ISA、或任何其他合适的ISA)中任何指令集架构的通用或嵌入式处理器。在多处理器系统中,每个处理器2010通常可以、但并非必须实现相同ISA。
在一些实施例中,至少一个处理器2010可以是图形处理单元。图形处理单元或GPU可以被视为用于个人计算机、工作站、游戏机或其他计算或电子设备的专用图形客户端设备。现代GPU可以在操纵和显示计算机图形方面非常高效,并且它们的高度并行结构可以使它们对于一系列复杂图形算法而言比典型的CPU更高效。例如,图形处理器可以以如下方式实现多个图形基元操作:使对它们的执行比用主机中央处理单元(CPU)直接绘制到屏幕要快得多。在各种实施例中,本文所公开的图像处理方法可以至少部分地由被配置用于在一个此类GPU上执行或者并行地在两个或更多个此类GPU上执行的程序指令来实现。GPU可以实现允许编程人员调用GPU功能性的一个或多个应用编程接口(API)。合适的GPU可以从NVIDIA公司、ATI技术(AMD)及其他公司商购获得。
系统存储器2020可以被配置为存储能被处理器2010访问的程序指令和/或数据。在各种实施例中,系统存储器2020可以利用任何适当的存储器技术来实现,诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器、或任何其他类型的存储器。在所示实施例中,实现所期望功能(诸如上文中为本文所述的用于根据样式表呈现地图的方法的实施例所述的那些)的程序指令和数据被显示为在系统存储器2020中分别被存储为程序指令2025和数据存储2035。在其他实施例中,程序指令和/或数据可以被接收、发送或存储在独立于系统存储器2020或计算机系统2000的不同类型的计算机可访问介质上或类似介质上。一般而言,计算机可访问介质可以包括经由I/O接口2030耦接到计算机系统2000的存储介质或存储器介质,诸如磁或光介质,例如盘或CD/DVD-ROM。经由计算机可访问介质存储的程序指令和数据可以通过可以经由通信介质(诸如网络和/或无线链路,诸如可以经由网络接口2040实现)传送的传输介质或信号(诸如电、电磁、或数字信号)来传输。
在一个实施例中,I/O接口2030可以被配置为协调设备中的处理器2010、系统存储器2020和任何外围设备(包括网络接口2040或其他外围设备接口,诸如输入/输出设备2050)之间的I/O通信。在一些实施例中,I/O接口2030可以执行任何必要的协议、定时或其他数据转换来将来自一个部件(例如系统存储器2020)的数据信号转换为适于供另一部件(例如处理器2010)使用的格式。在一些实施例中,I/O接口2030可以包括对例如通过各种类型的外围设备总线(诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体)附接的设备的支持。在一些实施例中,I/O接口2030的功能例如可以被划分到两个或更多个单独部件中,诸如北桥和南桥。此外,在一些实施例中,I/O接口2030(诸如与系统存储器2020的接口)的一些或所有功能可以被直接并入到处理器2010中。
网络接口2040可以被配置为允许在计算机系统2000和附接到网络的其他设备(诸如其他计算机系统)之间、或者在计算机系统2000的节点之间交换数据。在各种实施例中,网络接口2040可以支持经由有线或无线的一般数据网络(例如诸如任何合适类型的以太网网络);经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络);经由存储区域网络(诸如光纤通道SANs)、或经由其他合适类型的网络和/或协议的通信。
输入/输出设备2050在一些实施例中可以包括一个或多个显示终端、键盘、键区、触摸板、扫描设备、语音或光学识别设备、或适于由一个或多个计算机系统2000输入或检索数据的任何其他设备。多个输入/输出设备2050可以存在于计算机系统2000中,或者可以分布在计算机系统2000的各个节点上。在一些实施例中,类似的输入/输出设备可以与计算机系统2000分开,并且可以通过有线或无线连接(诸如通过网络接口2040)与计算机系统2000的一个或多个节点交互。
如图11中所示,存储器2020可以包括程序指令2025和数据存储2035,程序指令2025被配置为实现本文所述的用于根据样式表呈现地图的方法的实施例,数据存储2035包括程序指令2025能访问的各种数据。在一个实施例中,程序指令2025可以包括用于提供地图视图改变的视觉反馈的方法的实施例的软件元件,如图5中所示。数据存储2035可以包括可在实施例中使用的数据。在其他实施例中,可以包括其他或不同的软件元件和数据。
本领域技术人员将会知道,计算机系统2000仅仅是示例性的,而并非旨在限制本文所述的用于根据样式表呈现地图的方法的范围。具体地,计算机系统和设备可以包括可以执行所述功能的任何硬件或软件组合,包括计算机、个人计算机系统、台式计算机、膝上型、笔记本、或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动设备、网络设备、互联网设备、PDA、无线电话、寻呼机、消费者设备、视频游戏机、手持式视频游戏设备、应用服务器、存储设备、外围设备(诸如交换机、调制解调器、路由器)、或者一般性的任何类型的计算或电子设备。计算机系统2000还可以连接到未示出的其他设备,或者可以作为独立系统工作。此外,所示部件所提供的功能性在一些实施例中可以被组合在更少的部件中或者被分布在附加部件中。类似地,在一些实施例中,一些所示部件的功能性可以不被提供,和/或可以还有其他附加功能性可供使用。
本领域的技术人员还将认识到,虽然各种项目被图示为在被使用期间被存储在存储器中或存储装置上,但是为了存储器管理和数据完整性的目的,这些项目或其部分可以在存储器和其他存储设备之间传输。或者,在其他实施例中,这些软件组件中的一些或全部可以在另一设备上的存储器中执行,并且经由计算机间通信来与所示计算机系统通信。系统部件或数据结构中的一些或全部也可以(例如作为指令或结构化数据)被存储在计算机可访问介质或便携式制品上以被适当的驱动器读取,其多种示例在上文中进行了描述。在一些实施例中,存储在独立于计算机系统2000的计算机可访问介质上的指令可以经由传输介质或信号(诸如电、电磁、或数字信号)被传输到计算机系统2000,传输介质或信号经由通信介质(诸如网络和/或无线链路)来传送。各种实施例还可以包括在计算机可访问介质上接收、发送或存储根据以上描述实现的指令和/或数据。因此,可以以其它计算机系统配置来实施本发明。
Claims (20)
1.一种系统,包括:
存储器;和
耦接到所述存储器的一个或多个处理器,其中所述存储器包括实现地图应用的程序指令,所述程序指令能够由所述一个或多个处理器执行以:
在显示设备上显示地图的地图视图,其中所述地图视图包括二维地图图像数据;
经由输入设备获得选择所述地图的另一地图视图的输入,其中所述另一地图视图包括二维地图图像数据;以及
响应于所述输入,显示从所显示的地图视图到所选择的地图视图的过渡动画,包括:
确定虚拟空间中所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据之间的空间关系;
根据所确定的空间关系在所述虚拟空间中投射所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据;
匹配所显示的地图视图的被投射的地图图像数据和所选择的地图视图的被投射的地图图像数据;
混合所显示的地图视图的匹配的图像数据与所选择的地图视图的地图图像数据以生成在所述虚拟空间中、在所显示的地图视图和所选择的地图视图之间的多个地图视图,用于呈现所述过渡动画以展示在所述虚拟空间中从所显示的地图视图向所选择的地图视图的移动;以及
在所述显示设备上显示所选择的地图视图。
2.根据权利要求1所述的系统,其中所述输入设备是支持触摸的输入设备。
3.根据权利要求1所述的系统,其中所显示的地图视图和所选择的地图视图处于街道级地图视图模式。
4.根据权利要求1所述的系统,其中所显示的地图视图和所选择的地图视图处于鸟瞰地图视图模式。
5.根据权利要求1所述的系统,其中所显示的地图视图处于鸟瞰地图视图模式,并且其中所选择的地图视图处于街道级地图视图模式。
6.根据权利要求1所述的系统,其中所显示的地图视图处于鸟瞰地图视图模式,并且其中所选择的地图视图处于导航地图视图模式。
7.根据权利要求1所述的系统,其中所显示的地图视图处于街道级地图视图模式,并且其中所选择的地图视图处于导航地图视图模式。
8.根据权利要求1所述的系统,其中所选择的地图视图与地图显示中的地图的所显示的地图视图相邻。
9.根据权利要求1所述的系统,其中为了在所述虚拟空间中投射所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据,用于实现地图应用的所述程序指令能够被所述一个或多个处理器执行以:
生成所显示的地图视图中的对象的三维模型;以及
根据所确定的空间关系将所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据投射在所生成的模型上。
10.根据权利要求1所述的系统,其中在所述虚拟空间中、在所显示的地图视图和所选择的地图视图之间的所生成的多个地图视图在所述虚拟空间中沿圆形路径出现。
11.一种方法,包括:
由计算设备执行:
在显示设备上显示地图的地图视图,其中所述地图视图包括二维地图图像数据;
经由输入设备获得选择所述地图的另一地图视图的输入,其中所述另一地图视图包括二维地图图像数据;以及
响应于所述输入,显示从所显示的地图视图向所选择的地图视图的过渡动画,包括:
确定虚拟空间中所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据之间的空间关系;
根据所确定的空间关系在所述虚拟空间中投射所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据;
匹配所显示的地图视图的被投射的地图图像数据和所选择的地图视图的被投射的地图图像数据;
混合所显示的地图视图的匹配的图像数据和所选择的地图视图的地图图像数据以生成在所述虚拟空间中、在所显示的地图视图和所选择的地图视图之间的多个地图视图,用于呈现所述过渡动画以展示在所述虚拟空间中从所显示的地图视图向所选择的地图视图的移动;以及
在所述显示设备上显示所选择的地图视图。
12.根据权利要求11所述的方法,其中所述输入设备是支持触摸的输入设备。
13.根据权利要求11所述的方法,其中所显示的地图视图和所选择的地图视图处于街道级地图视图模式。
14.根据权利要求11所述的方法,其中所显示的地图视图处于鸟瞰地图视图模式,并且其中所选择的地图视图处于街道级地图视图模式。
15.根据权利要求11所述的方法,其中所显示的地图视图处于鸟瞰地图视图模式,并且其中所选择的地图视图处于导航地图视图模式。
16.根据权利要求11所述的方法,其中所显示的地图视图处于街道级地图视图模式,并且其中所选择的地图视图处于导航地图视图模式。
17.根据权利要求11所述的方法,其中所选择的地图视图与地图显示中的地图的所显示的地图视图相邻。
18.根据权利要求11所述的方法,其中所述根据所确定的空间关系在所述虚拟空间中投射所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据包括:
生成所显示的地图视图中的对象的三维模型;以及
根据所确定的空间关系在所生成的模型上投射所显示的地图视图的地图图像数据和所选择的地图视图的地图图像数据。
19.根据权利要求11所述的方法,其中在所述虚拟空间中、在所显示的地图视图和所选择的地图视图之间的所生成的多个地图视图在所述虚拟空间中沿圆形路径出现。
20.一种存储程序指令的非暂态计算机可读存储介质,其中所述程序指令在被一个或多个计算设备执行时导致权利要求11至19中任一项所述的方法被执行。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261655926P | 2012-06-05 | 2012-06-05 | |
US61/655,926 | 2012-06-05 | ||
US13/609,740 | 2012-09-11 | ||
US13/609,740 US9069440B2 (en) | 2012-06-05 | 2012-09-11 | Method, system and apparatus for providing a three-dimensional transition animation for a map view change |
PCT/US2013/043822 WO2013184541A1 (en) | 2012-06-05 | 2013-06-03 | Method, system and apparatus for providing a three-dimensional transition animation for a map view change |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104335268A true CN104335268A (zh) | 2015-02-04 |
CN104335268B CN104335268B (zh) | 2017-06-13 |
Family
ID=49669671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380028122.5A Active CN104335268B (zh) | 2012-06-05 | 2013-06-03 | 用于为地图视图改变提供三维过渡动画的方法、系统和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9069440B2 (zh) |
CN (1) | CN104335268B (zh) |
DE (1) | DE112013002803B4 (zh) |
WO (1) | WO2013184541A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139226A (zh) * | 2015-09-30 | 2018-06-08 | 苹果公司 | 具有新型简易模式的导航应用程序 |
CN109857312A (zh) * | 2019-02-28 | 2019-06-07 | 北京瓴域航空技术研究院有限公司 | 一种二三维融合空域可视化编辑方法 |
CN109903395A (zh) * | 2019-03-01 | 2019-06-18 | Oppo广东移动通信有限公司 | 模型的处理方法、装置、存储介质及电子设备 |
CN110569100A (zh) * | 2019-09-23 | 2019-12-13 | 重庆渝高科技产业(集团)股份有限公司 | 一种过渡动画播放控制系统 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9262868B2 (en) * | 2012-09-19 | 2016-02-16 | Google Inc. | Method for transforming mapping data associated with different view planes into an arbitrary view plane |
US9880623B2 (en) * | 2013-01-24 | 2018-01-30 | Immersion Corporation | Friction modulation for three dimensional relief in a haptic device |
US9678651B2 (en) * | 2013-06-08 | 2017-06-13 | Apple Inc. | Mapping application with interactive compass |
US20150127505A1 (en) * | 2013-10-11 | 2015-05-07 | Capital One Financial Corporation | System and method for generating and transforming data presentation |
US9111214B1 (en) | 2014-01-30 | 2015-08-18 | Vishal Sharma | Virtual assistant system to remotely control external services and selectively share control |
JP6410584B2 (ja) * | 2014-12-09 | 2018-10-24 | キヤノン株式会社 | 画像処理装置、画像処理装置の制御方法、並びにプログラム |
CN111414222A (zh) | 2014-12-11 | 2020-07-14 | 微软技术许可有限责任公司 | 能够实现可动作的消息传送的虚拟助理系统 |
WO2017058962A1 (en) | 2015-09-28 | 2017-04-06 | Wand Labs, Inc. | User assistant for unified messaging platform |
CN108027664B (zh) | 2015-09-28 | 2021-05-28 | 微软技术许可有限责任公司 | 统一的虚拟现实平台 |
CN108052642A (zh) * | 2017-12-22 | 2018-05-18 | 重庆邮电大学 | 基于瓦片技术的电子海图显示方法 |
KR102136855B1 (ko) * | 2018-01-22 | 2020-07-23 | 네이버 주식회사 | 거리뷰 제공 방법, 장치 및 컴퓨터 프로그램 |
US20210102820A1 (en) * | 2018-02-23 | 2021-04-08 | Google Llc | Transitioning between map view and augmented reality view |
EP3621274B1 (en) | 2018-09-04 | 2022-04-20 | Volkswagen Aktiengesellschaft | Method for predicting a quality of service for a communication between at least two moving communication partners, apparatus for performing steps of the method, vehicle, backend server and computer program |
CN111047676B (zh) * | 2018-10-12 | 2023-04-25 | 中国移动通信集团广西有限公司 | 一种图像渲染方法、装置及存储介质 |
US10955256B2 (en) * | 2018-10-26 | 2021-03-23 | Here Global B.V. | Mapping system and method for applying texture to visual representations of buildings |
US11099722B2 (en) | 2019-05-31 | 2021-08-24 | Apple Inc. | Virtual parallax to create three-dimensional appearance |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980134A (zh) * | 2010-10-29 | 2011-02-23 | 北京播思软件技术有限公司 | 一种实现智能三维桌面的装置及方法 |
CN101995258A (zh) * | 2009-08-17 | 2011-03-30 | 宏达国际电子股份有限公司 | 邻近兴趣点的浏览方法、系统及所使用的计算机程序产品 |
CN102065313A (zh) * | 2010-11-16 | 2011-05-18 | 上海大学 | 平行式相机阵列的未标定多视点图像校正方法 |
CN102216959A (zh) * | 2008-11-19 | 2011-10-12 | 苹果公司 | 用于操纵全景的技术 |
US20120082341A1 (en) * | 2010-10-01 | 2012-04-05 | Yuichiro Takeuchi | Image processing apparatus, image processing method, and computer-readable storage medium |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963213A (en) | 1997-05-07 | 1999-10-05 | Olivr Corporation Ltd. | Method and system for accelerating warping |
ES2885435T3 (es) | 2001-04-30 | 2021-12-13 | Activemap Llc | Mapa interactivo presentado electrónicamente |
US7865301B2 (en) * | 2004-03-23 | 2011-01-04 | Google Inc. | Secondary map in digital mapping system |
JP5592594B2 (ja) * | 2004-03-23 | 2014-09-17 | グーグル インコーポレイテッド | デジタルマッピングシステム |
CA2587644C (en) * | 2004-11-12 | 2015-01-13 | Mok3, Inc. | Method for inter-scene transitions |
US8103445B2 (en) | 2005-04-21 | 2012-01-24 | Microsoft Corporation | Dynamic map rendering as a function of a user parameter |
US7636089B2 (en) * | 2005-09-09 | 2009-12-22 | Microsoft Corporation | Photo mantel view and animation |
US8477139B2 (en) | 2008-06-09 | 2013-07-02 | Apple Inc. | Touch screen device, method, and graphical user interface for manipulating three-dimensional virtual objects |
TWI425408B (zh) | 2008-08-29 | 2014-02-01 | Htc Corp | 電子地圖視野的操作方法、裝置及所使用之電腦程式產品 |
US8436872B2 (en) | 2010-02-03 | 2013-05-07 | Oculus Info Inc. | System and method for creating and displaying map projections related to real-time images |
-
2012
- 2012-09-11 US US13/609,740 patent/US9069440B2/en active Active
-
2013
- 2013-06-03 WO PCT/US2013/043822 patent/WO2013184541A1/en active Application Filing
- 2013-06-03 DE DE112013002803.4T patent/DE112013002803B4/de active Active
- 2013-06-03 CN CN201380028122.5A patent/CN104335268B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102216959A (zh) * | 2008-11-19 | 2011-10-12 | 苹果公司 | 用于操纵全景的技术 |
CN101995258A (zh) * | 2009-08-17 | 2011-03-30 | 宏达国际电子股份有限公司 | 邻近兴趣点的浏览方法、系统及所使用的计算机程序产品 |
US20120082341A1 (en) * | 2010-10-01 | 2012-04-05 | Yuichiro Takeuchi | Image processing apparatus, image processing method, and computer-readable storage medium |
CN101980134A (zh) * | 2010-10-29 | 2011-02-23 | 北京播思软件技术有限公司 | 一种实现智能三维桌面的装置及方法 |
CN102065313A (zh) * | 2010-11-16 | 2011-05-18 | 上海大学 | 平行式相机阵列的未标定多视点图像校正方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108139226A (zh) * | 2015-09-30 | 2018-06-08 | 苹果公司 | 具有新型简易模式的导航应用程序 |
CN108139226B (zh) * | 2015-09-30 | 2021-12-17 | 苹果公司 | 具有新型简易模式的导航应用程序 |
US11567622B2 (en) | 2015-09-30 | 2023-01-31 | Apple Inc. | Navigation application with novel declutter mode |
US12045431B2 (en) | 2015-09-30 | 2024-07-23 | Apple Inc. | Navigation application with novel declutter mode |
CN109857312A (zh) * | 2019-02-28 | 2019-06-07 | 北京瓴域航空技术研究院有限公司 | 一种二三维融合空域可视化编辑方法 |
CN109903395A (zh) * | 2019-03-01 | 2019-06-18 | Oppo广东移动通信有限公司 | 模型的处理方法、装置、存储介质及电子设备 |
CN110569100A (zh) * | 2019-09-23 | 2019-12-13 | 重庆渝高科技产业(集团)股份有限公司 | 一种过渡动画播放控制系统 |
CN110569100B (zh) * | 2019-09-23 | 2023-04-07 | 重庆渝高科技产业(集团)股份有限公司 | 一种过渡动画播放控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104335268B (zh) | 2017-06-13 |
US20130321431A1 (en) | 2013-12-05 |
DE112013002803T5 (de) | 2015-03-19 |
DE112013002803B4 (de) | 2020-08-20 |
WO2013184541A1 (en) | 2013-12-12 |
US9069440B2 (en) | 2015-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104335268B (zh) | 用于为地图视图改变提供三维过渡动画的方法、系统和装置 | |
US12002161B2 (en) | Methods and apparatus for building a three-dimensional model from multiple data sets | |
US8988426B2 (en) | Methods and apparatus for rendering labels based on occlusion testing for label visibility | |
US10366523B2 (en) | Method, system and apparatus for providing visual feedback of a map view change | |
US10109082B2 (en) | System and method for generating signal coverage information from client metrics | |
CN105143828B (zh) | 地图绘制应用程序搜索功能 | |
US9080885B2 (en) | Determining to display designations of points of interest within a map view | |
US9218685B2 (en) | System and method for highlighting a feature in a 3D map while preserving depth | |
US9756172B2 (en) | Methods and apparatus for determining environmental factors to modify hardware or system operation | |
US9064341B2 (en) | Method, system and apparatus for rendering a map according to hybrid map data | |
KR101433305B1 (ko) | 증강 현실 환경을 위한 모바일 디바이스 기반 콘텐츠 맵핑 | |
US10437460B2 (en) | Methods and apparatus for cartographically aware gestures | |
US10109255B2 (en) | Method, system and apparatus for dynamically generating map textures | |
US9070314B2 (en) | Method, system and apparatus for rendering a map according to texture masks | |
CN104520851A (zh) | 基于电子表格应用中的数据点生成查询 | |
US20130321392A1 (en) | Identifying and Parameterizing Roof Types in Map Data | |
US20130321422A1 (en) | System and method for loading and rendering curved features in a map | |
CN109313746A (zh) | 到电子邮件系统中的位置集成 |
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 |