CN106797547A - 操作***对位置卡的支持 - Google Patents
操作***对位置卡的支持 Download PDFInfo
- Publication number
- CN106797547A CN106797547A CN201580047146.4A CN201580047146A CN106797547A CN 106797547 A CN106797547 A CN 106797547A CN 201580047146 A CN201580047146 A CN 201580047146A CN 106797547 A CN106797547 A CN 106797547A
- Authority
- CN
- China
- Prior art keywords
- card
- action
- application
- position card
- map
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/20—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
-
- 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
-
- 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
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/106—Display of layout of documents; Previewing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/134—Hyperlinking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
提出了在呈现位置相关的动作和位置信息的领域的创新。例如,应用调用操作***以生成位置卡。位置卡可以示出位置的地图以及关于位置的附加信息和一个或多个动作指示符。利用动作指示符,用户可以立即并且直接地从位置卡启动应用以执行与位置相关的动作。根据使用场景,应用可以指定要用位置卡中的动作指示符表示的不同动作。同时,操作***所支持的位置卡提供了向用户展示位置信息和位置相关动作的一致方式。
Description
背景技术
绘图应用通常用在智能电话和其他移动计算设备中。典型地,绘图应用从绘图服务请求地图信息,然后呈现地图信息的图形表示。在绘图应用内,用户可以查看各种类型的地图(例如,街道视图,鸟瞰图),搜索地址,搜索特定位置,搜索位置类型,检索到达某个位置的指引,查看交通状况,或执行另一导航相关的动作。
尽管绘图应用对于执行导航相关的动作是有用的,但是在许多情况下,它们不能执行合并了其他非导航动作的更复杂的任务。例如,用户可以(1)使用Web浏览器来找到某个位置,(2)打开绘图应用以获得地图信息和到该位置的指引,(3)打开另一应用以读取关于该位置的评论,(4)打开电话应用以呼叫该位置处的商家,然后(5)打开消息传送应用以与朋友共享关于该位置的信息。当在应用之间切换时,用户经常必须将相关信息(例如,地址、商家名称、电话号码)从一个应用复制到另一应用,以便在该另一应用中使用该信息。因此,为了完成复杂的一系列动作,用户找到适合于某个动作的应用,启动应用,复制信息并执行该动作,然后继续针对下一个动作的下一个应用,等等,直到该系列动作被完成为止。除步骤的数目外,用户还在不同的上下文之间切换,这可能是混乱的并且导致信息的丢失。
诸如Web浏览器或基于软件的个人助理之类的应用可以“托管”地图。在这种情况下,在应用的屏幕区域中呈现地图。例如,应用从绘图服务请求地图信息,然后在其屏幕区域的一部分以图形方式呈现地图信息。在许多情况下,应用不向用户展示与地图中的位置相关的动作(例如,获取指引,呼叫电话号码,共享位置)。因此,切换到其他应用为用户增加了步骤(启动其他应用,在应用之间复制信息,以及执行动作)。在少数情况下,诸如Web浏览器或基于软件的个人助理之类的应用可以向用户展示位置相关的动作,但是以特定于应用的方式呈现动作。在应用与应用之间,不以一致的方式呈现与位置相关的动作。因此,用户体验在应用之间是不一致的,这可能使用户混乱。
发明内容
总之,具体实施方式提出了在呈现位置相关的动作和位置信息的领域的创新。例如,应用调用操作***(“OS”)以生成位置卡,位置卡可以包括位置的地图以及关于位置的附加信息和一个或多个动作指示符。利用动作指示符,用户可以立即并直接从位置卡启动应用以执行与位置相关的动作,而无需手动找到应用,启动应用,在应用之间复制相关信息以及发起动作。根据使用场景,请求位置卡的应用可以指定要用位置卡中的动作指示符表示的不同动作。同时,由OS支持的位置卡在应用与应用之间提供了向用户展示位置信息和位置相关动作的一致方式。
根据本文所描述的创新的一个方面,响应于通过OS的接口的一个或多个调用,OS生成用于位置的位置卡。位置卡可以包括(a)用于该位置的地图;(b)关于位置的细节;和/或(c)一个或多个动作指示符。(多个)动作指示符中的每一个链接到能够执行对应动作的应用。例如,当它生成位置卡时,OS在计算***的存储器中创建结构。该结构定义了地图的视觉元素和性质、附加细节的视觉元素和性质、以及(多个)动作指示符的视觉元素和性质。
对OS的(多个)调用提供关于位置卡的信息。例如,(多个)调用提供:(1)指定地图类型的一个或多个参数;(2)指定关于位置的细节的一个或多个参数;(3)为(多个)动作指示符中的每一个指定所链接的应用和对应动作的一个或多个参数;(4)指定位置卡的字体尺寸、字体颜色、字体类型、边框宽度、边框颜色、边框类型、高度、宽度、位置和背景颜色中的一个或多个的一个或多个参数;和/或(5)指定位置卡的模板的一个或多个参数。当其生成位置卡时,OS可以选择用于位置卡的模板,然后使用在(多个)调用中提供的一个或多个参数来填充模板的至少一些字段。模板的其他字段可以具有默认值。
OS可以根据各种因素来调整位置卡。例如,OS评估计算***的显示设备的屏幕的尺寸和/或取向,然后至少部分地基于评估的结果来调整位置卡。或者,作为另一示例,OS基于优先级信息确定地图、附加细节和(多个)动作指示符中的哪一个要包括在位置卡中,然后至少部分地基于评估的结果来调整位置卡。
在生成位置卡之后,OS输出位置卡以用于显示。例如,OS将位置卡再现到表面,将位置卡的各种元素合成到表面上,该表面用于更新显示设备的屏幕。位置卡可以以各种方式再现。例如,位置卡可以替换(在要显示的表面上)请求位置卡的应用的内容。在这种情况下,当用户关闭位置卡时,OS从显示器中移除位置卡(更新要显示的表面),并输出应用的先前内容用于显示。或者,位置卡可以被再现,以作为之前为显示(在要显示的表面上)而再现的其他内容上方的飞出对象进行显示。在这种情况下,当用户在飞出对象之外提供用户输入时,OS从显示器中移除飞出对象(更新要显示的表面),并输出其他内容用于显示。可以单独显示位置卡。或者,位置卡可以是输出用于显示的多个位置卡的栈的一部分。
在输出位置卡以用于显示之后,OS可接收用于致动动作指示符的用户输入。例如,响应于给定动作指示符的致动,OS启动链接到给定动作指示符的应用,并且向所启动的应用提供信息,以便所启动的应用针对给定动作指示符执行对应的动作。OS还可以输出所启动的应用的视图(例如,如果应用没有作为后台任务运行)以供显示。稍后,在已经执行动作并关闭了所启动的应用之后,OS可移除所启动的应用的视图(如果有的话)(更新要显示的表面),并输出位置卡以用于再次显示。
根据本文所描述的创新的另一方面,应用接收指示对位置的兴趣的通知。例如,通知是在计算***的显示设备的屏幕上的在位置的表示上的用户输入,诸如鼠标输入或触摸屏输入。或者,由应用接收到的通知是在应用内基于由应用识别的在位置和用户简档或用户偏好之间的关联而触发的事件。
响应于该通知,应用通过OS的接口做出指定该位置的位置卡的一个或多个调用。位置卡可以包括(a)用于位置的地图;(b)关于位置的细节;和/或(c)一个或多个动作指示符。(多个)动作指示符中的每一个链接到能够执行对应动作的应用。(多个)动作指示符可以全都表示要直接呈现在位置卡中的主动作。或者,除了用于主动作的任何动作指示符之外,(多个)动作指示符可以包括用于次动作的至少一个动作指示符,次动作不是直接在位置卡中呈现,而是可以使用位置卡来访问。
(多个)调用提供关于位置卡的信息。例如,(多个)调用提供:(1)指定地图类型的一个或多个参数;(2)指定关于位置的细节的一个或多个参数;(3)为(多个)动作指示符中的每一个指定所链接的应用和对应动作的一个或多个参数;(4)指定位置卡的字体尺寸、字体颜色、字体类型、边框宽度、边框颜色、边框类型、高度、宽度、位置和背景颜色中的一个或多个的一个或多个参数;和/或(5)指定位置卡的模板的一个或多个参数。
应用可以根据各种因素来调整指定位置卡的(多个)调用。例如,应用评估计算***的显示设备的屏幕的尺寸和/或取向,然后至少部分地基于评估的结果来调整指定位置卡的(多个)调用中的一个或多个。或者,作为另一示例,应用评估计算***的一个或多个设置和/或一个或多个条件,然后,基于评估的结果,确定地图的类型。或者,作为另一示例,应用确定位置的定制视图,其中定制视图用作该位置的地图。或者,作为另一示例,应用请求搜索位置的地址,接收搜索的结果,并过滤搜索的结果以确定要包括在位置卡中的关于位置的细节。或者,作为另一示例,对于一个或多个动作指示符中的每一个,应用识别关于位置的相关信息,确定针对相关信息的对应动作,并确定能够执行对应动作的应用。
创新可以被实现为方法的一部分,适于执行该方法的计算***的一部分或存储用于使计算***执行该方法的计算机可执行指令的有形计算机可读介质的一部分。各种创新可以组合或单独使用。
通过参照附图进行的以下具体实施方式,本发明的前述和其它的目的、特征和优点将变得更加显而易见。
附图说明
图1是其中可以实现一些所描述的实施例的示例计算***的图。
图2是其中可以实现一些所描述的实施例的示例云计算环境的图。
图3是图示出其中OS支持位置卡的示例软件架构的框图。
图4a和4b是分别图示出用于请求位置卡和生成位置卡的一般化技术的流程图。
图5a-5c是图示出用于生成位置卡的示例技术的流程图。
图6a-6d、7a-7c和8a-8c是图示出位置卡的创建和使用的示例的图。
图9,10.11a-11d和12是图示出位置卡的示例配置的图。
具体实施方式
该具体实施方式提出了在呈现位置相关动作和位置信息的领域的创新。例如,应用调用操作***(“OS”)来生成位置卡。位置卡可以示出位置的地图以及关于位置的附加信息和一个或多个动作指示符。利用动作指示符,用户可以立即并直接从位置卡启动应用以执行位置相关动作,而无需手动找到应用,启动应用,在应用之间复制相关信息以及发起动作。根据使用场景,应用可以指定要用位置卡中的动作指示符表示的不同动作。同时,OS所支持的位置卡提供了向用户展示位置信息和位置相关动作的一致方式。
本文描述的许多操作被描述为由调用OS的应用或由OS启动的应用执行。一般来说,如本文所使用的术语,应用可以是除了生成位置卡的(多个)OS模块之外的任何类型的软件。在许多示例中,与由许多OS模块使用的内核模式(或内核空间)相反,应用是在用户模式(或用户空间)中执行的软件,并且与仅作为后台任务执行相反,应用具有前台用户界面(“UI”)组件。本文描述为由OS执行的操作可以由OS的模块中的任何模块或组合来执行,一般而言,OS是管理计算***的计算机硬件和软件资源并为在计算***中执行的软件提供公共服务的任何软件。
在本文所描述的示例中,不同图中的相同附图标记指示相同的组件或模块。根据上下文,给定的组件或模块可以接受不同类型的信息作为输入和/或生成不同类型的信息作为输出。
更一般地,本文描述的示例的各种替代方案是可能的。例如,可以通过改变所描述的方法动作的排序,通过分割,重复或省略某些方法动作来改动本文所描述的方法中的一些。所公开的技术的各个方面可以组合或单独使用。不同的实施例使用所描述的创新中的一个或多个。本文所描述的创新中的一些解决了背景技术中提到的问题中的一个或多个。典型地,给定的技术/工具不解决所有这样的问题。
I.示例计算***
图1图示出了其中可以实现所描述的创新中的若干创新的示例计算***(100)的一般化示例。计算***(100)并不旨在暗示对使用或功能的范围的任何限制,因为创新可以在多种计算***中实现,包括适于呈现位置相关信息和动作的专用计算***。
参考图1,计算***(100)包括一个或多个处理单元(110,115)和存储器(120,125)。处理单元(110,115)执行计算机可执行指令。处理单元可以是中央处理单元(“CPU”)、专用集成电路(“ASIC”)中的处理器或任何其他类型的处理器。在多处理***中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图1示出了中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120,125)可以是可由(多个)处理单元访问的易失性存储器(例如,寄存器、高速缓存器,RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合。存储器(120,125)以适合于由(多个)处理单元执行的计算机可执行指令的形式存储实现用于OS对位置卡的支持的一个或多个创新的软件(180)。
计算***可以具有附加特征。例如,计算***(100)包括存储装置(140)、一个或多个输入设备(150)、一个或多个输出设备(160)和一个或多个通信连接(170)。诸如总线、控制器或网络之类的互连机构(未示出)将计算***(100)的组件互连。典型地,OS软件(未示出)为在计算***(100)中执行的其他软件提供操作环境,并且协调计算***(100)的组件的活动。
有形存储装置(140)可以是可移除的或不可移除的,并且包括磁盘、磁带或盒、CD-ROM、DVD或可用于存储信息并且可以在计算***(100)内访问的任何其它介质。存储装置(140)存储用于软件(180)的指令,该软件(180)实现用于OS对位置卡的支持的一个或多个创新。
(多个)输入设备(150)可以是诸如键盘、鼠标、笔或轨迹球之类的触摸输入设备、语音输入设备、扫描设备、触摸屏或向计算***(100)提供输入的另一设备。(多个)输出设备(160)可以是显示器、打印机、扬声器、CD刻录机或提供来自计算***(100)的输出的另一设备。
(多个)通信连接(170)使能通过通信介质到另一计算实体的通信。通信介质在调制的数据信号中传送诸如计算机可执行指令或其它数据之类的信息。调制的数据信号是以在信号中编码信息这样的方式设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质可以使用电、光、RF或其它载波。
可以在计算机可读介质的一般上下文中描述创新。计算机可读介质是可以在计算环境内访问的任何可用的有形介质。作为示例而非限制,对于计算***(100)而言,计算机可读介质包括存储器(120,125)、存储装置(140)以及以上各项中的任一项的组合。
可以在计算机可执行指令的一般上下文中描述创新,所述计算机可执行指令诸如是在目标的真实或虚拟处理器上在计算***中执行的包括在模块中的那些指令。一般而言,模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。根据各种实施例中的需要,模块的功能可以在模块之间组合或分割。用于模块的计算机可执行指令可以在本地或分布式计算***内执行。
术语“***”和“设备”在本文中可互换使用。除非上下文另有明确指示,否则这两个术语都不暗示对计算***或设备的类型的任何限制。一般而言,计算***或设备可以是本地的或分布式的,并且可以包括具有实现本文描述的功能的软件的硬件和/或专用硬件的任何组合。所公开的方法可以使用被配置为执行任何所公开的方法的专用计算硬件来实现。例如,所公开的方法可以通过专门设计或配置为实现任何所公开的方法的集成电路(例如,ASIC(诸如ASIC数字信号处理器(“DSP”)、图形处理单元(“GPU”)或可编程逻辑器件(“PLD”),诸如现场可编程门阵列(“FPGA”))来实现。
为了呈现的目的,具体实施方式使用像“确定”和“使用”一样的术语来描述计算***中的计算机操作。这些术语是对于由计算机执行的操作的高级抽象,并且不应该与由人类执行的动作相混淆。与这些术语相对应的实际计算机操作根据实现方式而变化。
II.示例云计算环境
图2图示出其中可以实现所描述的创新中的若干创新的云计算环境(200)的一般化示例。在示例环境(200)中,由云(210)提供各种类型的服务(例如,计算服务)。例如,云(210)可以包括可以集中地定位或分布的计算设备的集合,其向经由诸如互联网之类的网络连接的各种类型的用户和设备提供基于云的绘图服务、搜索服务或消息传送服务。云计算环境(200)的计算设备可以以不同的方式用于完成计算任务。例如,可以在本地计算设备(例如,连接的设备230、240、250)上执行一些任务(例如,处理用户输入,呈现UI,与应用执行某些动作),而可以在云(210)中执行其他任务(例如,搜索位置、检索地图信息、确定路线、搜索关于位置的附加细节、共享关于位置的信息)。
在示例云计算环境(200)中,云(210)为具有各种屏幕能力的连接的设备(230、240、250)提供服务。第一连接设备(230)表示具有计算机屏幕(例如,中尺寸屏幕)的设备。例如,第一连接设备(230)可以是诸如台式计算机、膝上型计算机、笔记本计算机、上网本计算机等的个人计算机。第二连接设备(240)表示具有移动设备屏幕(例如,小尺寸屏幕)的设备。例如,第二连接设备(240)可以是移动电话、智能电话、个人数字助理、平板计算机等。第三连接设备(250)表示与大屏幕相关联的设备。例如,第三连接设备(250)可以是电视屏幕(例如,智能电视)或连接到电视的另一设备(例如,机顶盒或游戏控制台)等。没有屏幕能力的设备也可以在示例云计算环境(200)中使用。例如,云(210)可以为没有显示器的一个或多个计算机(例如,服务器计算机)提供服务。如下所述,生成位置卡的方式可以根据呈现位置卡的计算***的屏幕能力。
服务可以由云(210)通过服务提供商(220)或通过在线服务的其他提供商(未描绘)来提供。可以针对特定连接的设备(例如,连接的设备230、240和/或250)的屏幕尺寸、显示能力和/或触摸屏能力来定制云服务。在示例云计算环境(200)中,云(210)可以至少部分地使用服务提供商(220)向各种连接的设备(230、240和/或250)提供搜索位置的服务、检索地图信息的服务、确定路线的服务、搜索关于位置的附加细节的服务、共享关于位置的信息的服务或本文描述的其他服务。在这种情况下,服务提供商(220)可以为各种基于云的服务提供集中式解决方案。服务提供商(220)可以管理用户和/或设备(例如,连接的设备(230、240、250)和/或它们各自的用户)的服务订阅。例如,连接的设备(230、240或250)请求搜索位置、请求该位置的地图信息、请求搜索关于位置的附加细节、请求确定到该位置的路线和/或请求与一个或多个其他设备共享关于该位置的信息。云(210)中的一个或多个计算***处置(多个)请求(例如,搜索位置,确定位置的地图信息,搜索关于位置的附加细节,确定到位置的路线和/或与一个或多个其他设备共享关于位置的信息),然后将结果返回到做出(多个)请求的连接设备(230、240或250)。云(210)中的不同计算***可以处置不同的请求。
III.操作***对位置卡的支持
本部分描述了在呈现位置相关的动作和位置信息的领域的创新。例如,响应于来自应用的一个或多个调用,操作***(“OS”)生成位置卡。位置卡包括位置的地图,关于位置的附加信息和/或一个或多个动作指示符。用户可以简单地查看位置卡的内容,位置卡以有效的方式呈现位置相关的细节。或者,通过使用动作指示符,用户可以立即并直接从位置卡启动应用以执行位置相关的动作。例如,启动的应用可以是被启动以确定去往某个位置的指引的绘图应用、被启动以向在该位置处的商家发出呼叫的电话应用、被启动以与另一个用户共享关于该位置的信息的消息传送应用、或一些其他类型的应用。
根据使用场景,应用可以指定要用位置卡中的动作指示符表示的不同动作、与用户相关的不同位置信息和/或包括在位置卡中的不同类型的地图视图。因此,位置卡功能向开发者提供了灵活性以确定在位置卡中呈现哪些地图视图、动作和信息。特别地,当呈现位置信息时,利用位置卡,应用的开发者可以容易地链接到其他应用的功能。这可以允许用户与其他应用完成任务,然后自动返回到请求位置卡的应用,从而丰富了该应用的用户体验。
同时,OS支持的位置卡提供了用于向用户显示位置信息和位置相关的动作的一致的用户体验。 OS可以对于(由OS的制造商提供的)第一方应用和第三方应用提供位置卡功能。以这种方式,OS可以在应用与应用之间一致地呈现位置相关的动作和位置信息。
A.用于生成位置卡的示例软件架构
图3示出了用于请求OS(350)生成位置卡的应用(310)的示例软件架构(300)。计算***(例如,智能电话、平板计算机或其他计算设备)可以执行根据架构(300)组织的软件以生成位置卡。
架构(300)包括OS(350)和使用OS(350)的服务的一个或多个应用(310)。在图3中,OS(350)包括用于再现(例如,向显示器再现视觉输出,为扬声器生成语音输出)的组件、用于联网的组件和用于输入处理的组件。OS(350)的其他组件未示出。一般而言,OS(350)管理用于计算设备的用户输入功能、输出功能、存储装置访问功能、网络通信功能和其他功能。OS(350)向应用(310)提供对这些功能的访问。
用户生成影响位置卡的生成、输出和使用的用户输入。用户输入可以是诸如触摸屏输入之类的触觉输入、鼠标输入、按钮按压或按键按压,或者它可以是语音输入。在输入处理模块(356)中,OS(350)包括用于识别敲击、手指手势或对触摸屏的其他输入的功能,用于识别来自语音输入、按钮输入或按键按压输入的命令的功能,以及用于创建可以由应用(310)使用的消息的功能。应用(310)从OS(350)监听用户输入事件消息。 UI事件消息可以指示设备的触摸屏上的平移手势、轻拂手势、拖动手势或其他手势、触摸屏上的敲击、鼠标输入、按键按压输入或另一UI事件(例如,来自语音输入、方向按钮、轨迹球输入)。
如果适当的话,应用(310)可以通过对OS(350)做出一个或多个调用来对用户输入(或另一类型的通知)作出反应,以请求OS(350)生成用于位置的位置卡。特别地,当UI事件消息指示用户对位置感兴趣时,应用(310)请求OS(350)生成用于该位置的位置卡。例如,UI事件消息可以是在计算***的显示设备的屏幕上的在某个位置的文本或图形表示上的鼠标点击、光标悬停、触摸屏敲击或其他输入。或者,UI事件消息可以是按键按压、语音命令或否则指示对位置感兴趣的其他输入。
在对OS(350)的(多个)调用中,应用(310)可以指定用于位置卡的地图视图、信息细节和/或一个或多个动作指示符。OS(350)展示诸如应用编程接口(“API”)之类的接口,应用(310)跨过该接口做出(多个)调用。接口的细节取决于实现。例如,API可以针对不同位置卡将具有各种对象类型或类的命名空间包括在其中。给定的对象类型或类包括可以被调用以构造位置卡对象的实例的方法(“构造器”)以及可以被调用以指定该实例的属性的一个或多个方法。或者,API可以包括用于位置卡的单个类,其具有构造器方法和指定位置卡的属性的方法。
在指定位置卡的(多个)调用中,应用(310)可以提供指定位置卡的地图类型的一个或多个参数。例如,对于位置的地图,应用(310)可以指定绘图服务是否应当提供街道视图、鸟瞰图、3D视图或其他类型的地图视图。应用(310)还可以指定要在地图上合成的具有交通细节、天气细节或其他细节的层。作为另一选项,应用(310)可以指定用于位置的地图的定制视图(例如,场所(venue)),或请求诸如该位置的地铁地图之类的专用地图。一般来说,应用(310)可以根据使用场景或用户设置改变地图视图的类型。应用(310)还可以根据上下文改变地图视图。例如,如果(计算设备的)当前位置远离位置卡中的位置或用户正在快速移动,则应用(310)可以指定地图的街道视图,但是如果当前位置接近位置卡中的位置或用户正在缓慢移动,则应用(310)提供场所视图。或者,如果其接近用户的家、用户的办公室或者预期是用户熟悉的其他位置,则应用(310)可以指定省略当前位置周围的区域的地图视图,但是否则提供包括当前位置的地图视图。
在OS(350)或应用中,地图数据存储库可以高速缓存最近使用的地图数据。根据需要,地图数据存储库从本地文件存储装置或从网络资源获得位置卡的附加或更新的地图数据。OS(350)调解对存储装置和网络资源的访问。例如,地图数据存储库通过OS(350)的存储装置或联网模块请求用于位置卡的地图数据,OS(350)处理请求,根据需要从绘图服务请求地图数据并接收回复,并且提供请求的地图数据给地图数据存储库。如所指出的,地图数据可以是处于各种细节层面的摄影图像数据或图形数据(用于边界,道路等),范围从对于州和城市的高层面描绘到对于地区和高速公路的中层面描绘,到对于街道和建筑物的低层面描绘。除了摄影数据和图形数据之外,地图数据可以包括用于州、城市、地区、街道、建筑物、地标或地图中的其他特征的地名的图形指示符,诸如图标或文本标签。地图数据的组织取决于实现。例如,在一些实现中,不同类型的地图数据以给定的细节层面被组合成单层的地图数据。在其他实现中,不同类型的地图数据被组织在在再现期间合成的不同覆盖物中。
在指定位置卡的(多个)调用中,应用(310)还可以提供指定关于位置的细节的一个或多个参数。如图3中所示,为了确定(多个)调用的(多个)参数的细节,应用(310)可以从搜索服务请求关于位置的细节。在这种情况下,OS(350)的联网模块(354)将请求传达到服务器,接收回复(包括例如距离信息、关于地标或兴趣点(“POI”)的信息、评论、评级、其他评注、电话号码、电子邮件地址或其他联系人信息、菜单、定价信息、照片、广告促销或其他信息),并将结果传达到应用(310)。或者,通过使用位置的地址,应用(310)可以使用反向商家查找服务来找到关于位置的细节。应用(310)可以过滤搜索结果以确定在位置卡中呈现哪些细节,潜在地使用优先级信息来偏好某些类型的信息优于其他类型的信息。
在指定位置卡的(多个)调用中,应用(310)还可以提供一个或多个参数,其为(多个)动作指示符中的每一个指定链接的应用和对应的动作。例如,对于动作指示符,应用(310)指示OS(350)应当启动以执行对应动作的应用,并且还指示应该提供给被启动的应用以便执行动作的信息。动作指示符可以表示预期通常从位置卡选择的主动作或次动作。对于主动作,动作指示符直接呈现在位置卡中。相反,对于次动作,动作指示符被呈现在通过位置卡访问的菜单或屏幕中。在一种方法中,当开发者设计应用(310)时,开发者可以指定在应用(310)请求生成位置卡时要在位置卡中表示的动作/命令。“动作工厂”可以向开发者提供用于包括在位置卡中的不同动作/命令的选项。例如,从选项菜单中,开发者选择与启动给定应用的协议或API调用相关联的特定动作/命令。或者,对于定制动作指示符,开发者可以指定动作、应用和启动应用的协议或API调用。
可替换地,被启动以处置针对动作指示符的动作的应用可由OS(350)在运行时确定。在这种情况下,在指定位置卡的(多个)调用中,应用(310)可以提供为动作指示符指定应用类型和对应动作的一个或多个参数。例如,对于动作指示符,应用(310)指示OS(350)应当启动以执行对应动作的应用类型,并且还指示应当提供给被启动的应用以便执行动作的信息。在运行时,OS(350)针对所指定的应用类型选择默认应用。或者,OS(350)向用户呈现合适的应用的菜单,并且用户选择要启动的应用以处置对应的动作。OS(350)可以存储用户的选择以用于生成位置卡,向前进行。
在指定位置卡的(多个)调用中,应用(310)还可以提供指定字体尺寸、字体颜色、字体类型、边框宽度、边框颜色、边框类型、高度、宽度、位置、背景颜色和/或位置卡的另一属性的一个或多个参数。例如,应用(310)可以根据应用设置、用户设置、当前照明水平或其他因素来管理位置卡的图形细节。以这种方式,应用(310)可以直接控制位置卡的外观。或者,作为指定位置卡的外观的另一选项,应用(310)可以指定位置卡的样式,其中样式指示属性设置的组合。
最后,在指定位置卡的(多个)调用中,应用(310)可以提供指定用于位置卡的模板的一个或多个参数。例如,模板是指定位置卡的总体“样子和感觉”(例如,布局、外观的属性、动画或UI元素的其他行为)的可扩展应用标记语言(“XAML”)模板。XAML允许开发者使用声明性语句来定义和链接位置卡的UI元素。可替换地,以另一种语言提供模板。OS(350)可以使用默认值和/或根据指定位置卡的(多个)调用的参数来填充模板的属性、值、字段等。OS(350)可以针对不同的使用场景(见下文)、计算***的不同形状因素(例如,屏幕尺寸)或不同的屏幕取向而使用不同的模板。
位置卡可以被实现为UI元素的分层合成物或树。例如,顶级位置卡包括用于地图部分、细节部分和动作指示符部分的UI元素。地图部分可以包括用于地图层、缩放控件、滚动控件和其他特征的子元素。细节部分可以包括用于各种文本信息和/或图形信息的子元素。动作指示符部分可以包括子元素,诸如具有用于各种动作指示符的标签的按钮。
响应于(多个)调用,OS(350)生成位置卡。OS(350)可以在计算***的存储器中创建结构(例如,基于(多个)调用的模板和参数)。该结构定义了位置卡的地图部分的视觉元素和属性、位置卡的附加细节的视觉元素和属性、和/或位置卡的(多个)动作指示符的视觉元素和属性。例如,OS(350)的模块创建或修改用于位置卡的XAML或另一种语言的文件,然后将用于位置卡的文件转换为位置卡的对象实例或其他运行时间表示,其可以被再现以用于显示。
在生成位置卡之后,OS(350)输出位置卡以用于显示。例如,OS(350)的再现模块(352)基于位置卡的对象实例或其他运行时间表示来生成图像(或表面)。该表面用于更新显示设备的屏幕。当位置卡被构造为UI元素的层次结构时,再现模块(352)可以遍历该层次结构,将该层次结构的UI元素从后到前合成到要显示的表面上。UI元素的层次结构保留在存储器中,使得对单独UI元素的改变可以反映在层次结构中,并且在随后的再现操作期间导致对表面的更新。再现模块(352)还可以向OS(350)提供输出以用于通过扬声器或耳机的语音输出。作为再现的一部分执行的确切操作取决于实现。
位置卡可以被再现为在其他内容上方的弹出菜单,再现为在其他内容上方的飞出对象,再现为替换其他内容的控件或再现为某个其他图形特征。典型地,位置卡在请求位置卡的应用(310)的上下文中被托管或呈现,并且当位置卡关闭时,焦点返回到该应用。
随着计算***的当前位置改变,OS(350)可以利用简单的转换动画自动更新地图。或者,OS(350)可以在更新当前位置时自动重新定位指示计算***的当前位置的图标。OS(350)还可以对视图类型的改变(例如,从街道视图切换到鸟瞰图,反之亦然),或者对要再现的细节的改变(例如,显示或隐藏流量细节)作出反应。地图上的POI可以根据利用用户输入选择了位置卡中的哪些信息而改变。
在位置卡被输出用于显示之后,用户可以致动位置卡的动作指示符。作为响应,OS(350)启动链接到动作指示符的应用,并向所启动的应用提供信息,使得所启动的应用可以执行动作指示符的动作。例如,为了启动与动作指示符相关联的应用,OS(350)调用API方法或遵循用于启动应用的某个其他协议,向所启动的应用传递信息。典型地,所启动的应用具有UI组件,诸如输出用于显示的帧。然而,在一些情况下,所启动的应用可以是没有UI组件的后台任务。
根据为位置卡指定的(多个)动作指示符,所启动的应用可以是绘图应用(以获得去往某个位置的指引)、电话应用(以发出电话呼叫)、消息传送应用(以共享关于位置的信息)、文档查看器(以查看关于位置的文档)、文件编辑器(以编辑关于位置的信息)或某个其他类型的应用。
当所启动的应用被关闭时,OS(350)从显示器移除用于所启动的应用的任何视图(更新要显示的表面)并更新显示。当位置卡被关闭时,OS(350)从显示器移除位置卡(更新要显示的表面)并更新显示。例如,输出应用(310)的内容用于显示,并且OS(350)将焦点返回到应用(310)。
可替换地,OS(350)包括更多或更少的模块。给定的模块可以被分成多个模块,或者不同的模块可以组合成单个模块。
B.请求和生成位置卡的技术
图4a图示出了用于请求位置卡的一般化技术(401)。用于请求位置卡的技术(401)可以由应用执行。
开始,应用接收(410)指示对位置感兴趣的通知。例如,指示对位置感兴趣的通知是用户输入,诸如在计算***的显示设备的屏幕上的位置的表示上的鼠标输入或触摸屏输入。这可以是在该位置的文本或图形表示上的鼠标点击、光标悬停、触摸屏敲击或其他输入。或者,用户输入可以是按键按压输入、语音输入或否则指示对位置感兴趣的其他输入。或者,由应用接收的通知是在应用内基于由应用所识别的在该位置和用户简档/用户偏好之间的关联而触发的事件。
该应用通过OS的接口做出(420)指定该位置的位置卡的一个或多个调用。位置卡包括(a)用于位置的地图,(b)关于位置的细节,和/或(c)一个或多个动作指示符。(多个)动作指示符中的每一个链接到能够执行对应动作的应用。例如,(多个)调用可以包括如III.A.节中描述的参数。应用可以基于各种标准来调整指定位置卡的(多个)调用中的参数。例如,在设置(多个)调用的参数时,应用可以:
(a)评估计算***的显示设备的屏幕的尺寸和/或取向,并且至少部分地基于所述评估的结果来调整指定所述位置卡的(多个)调用中的至少一些;
(b)评估计算***的一个或多个应用设置、用户设置或状况,并且基于所述评估的结果,确定所述地图的类型;
(c)确定所述位置的定制视图,其中所述定制视图被提供用作所述位置的地图;
(d)请求搜索所述位置的地址,接收搜索结果并过滤所述搜索结果以确定要包括在所述位置卡中的关于位置的细节;
(e)对于(多个)动作指示符中的每一个,识别关于位置的相关信息,确定针对该相关信息的对应动作,以及确定能够执行对应动作的应用;和/或
(f)以某种其他方式调整(多个)调用的参数。
图4b图示出了用于生成位置卡的一般化技术(402)。用于生成位置卡的技术(402)可以由OS的一个或多个模块执行。
参考图4b,响应于通过OS的接口的(多个)调用,OS生成(430)用于位置的位置卡。位置卡包括(a)用于位置的地图,(b)关于位置的细节和/或(c)一个或多个动作指示符。(多个)动作指示符中的每一个链接到能够执行对应动作的应用。例如,(多个)调用可以包括如III.A.节中描述的参数。
OS可以根据各种因素来调整位置卡。例如,OS评估计算***的显示设备的屏幕的尺寸和/或取向,然后至少部分地基于评估的结果来调整位置卡。或者,作为另一示例,OS基于优先级信息确定地图、细节和(多个)动作指示符中的哪一个要包括在位置卡中,然后至少部分地基于评估的结果来调整位置卡。或者,OS以某种其他方式调整位置卡。
OS然后输出(440)位置卡以用于显示。位置卡可以以各种方式再现。例如,位置卡可以替换请求位置卡的应用的内容。在这种情况下,当用户关闭位置卡时,OS从显示器中移除位置卡(更新要显示的表面),并输出应用的先前内容用于显示。或者,可以再现位置卡以作为在(用于请求位置卡的应用的)先前再现的其它内容之上的飞出对象进行显示。在这种情况下,当用户在飞出对象之外提供用户输入时,OS从显示器中移除飞出对象(更新要显示的表面),并输出其它内容用于显示。或者,位置卡可以被再现为弹出菜单或某个其他图形特征。可以单独显示位置卡。或者,位置卡可以是输出用于显示的多个位置卡的栈的一部分。
图5a-5c图示出了用于生成位置卡的示例技术(501)。技术(501)可以由OS的一个或多个模块执行。
开始,为了生成位置卡,OS选择(510)用于位置卡的模板,并且使用在(多个)调用中提供的参数填充(520)模板的至少一些字段以生成位置卡。例如,如III.A.节中描述的,OS在多个可用模板之间进行选择,然后基于(多个)调用中的参数和默认参数填充模板的属性、性质、字段等的值。
OS输出(530)用于显示的位置卡,并处理(540)用于位置卡的用户输入。例如,OS输出位置卡用于显示,如III.A.节中描述的。OS处理(540)用户输入的方式取决于用户输入。
例如,图5b示出了用于处理用于致动位置卡中的动作指示符的用户输入的技术(502)。响应于位置卡的给定动作指示符的致动,OS启动(541)链接到给定动作指示符的应用,向所启动的应用提供(542)信息,以便所启动的应用执行针对给定的动作指示符的对应动作,以及输出(543)所启动的应用的视图用于显示(如果有的话)。所启动的应用可以根据其正常处理来进一步处理用户输入。当所启动的应用被关闭时,OS可以从显示器中移除所启动的应用的视图(更新要显示的表面)(如果有的话),并输出位置卡以进行显示。以这种方式,在完成动作指示符的动作之后,焦点可以返回给位置卡。
作为另一示例,图5c示出了用于处理用于位置卡的关闭的用户输入的技术(503)。例如,如果位置卡被再现为飞出对象,则当接收到位置卡之外的任何用户输入时,位置卡被关闭。或者,如果位置卡被再现为弹出控件,则响应于“关闭”或“X”按钮的致动,位置卡被关闭。在任何情况下,当位置卡被关闭时,OS从显示器移除(544)位置卡(更新要显示的表面),并且输出(545)在位置卡下面的其他内容用于显示。
OS可以以其他方式处理用于位置卡的其他用户输入。例如,OS可以通过高亮位置卡的地图部分中的POI来响应关于某个位置周围的POI的用户感兴趣的细节。
C.位置卡的生成和使用的示例
图6a-6d图示出了在具有中等尺寸屏幕的计算***(诸如个人计算机)中的位置卡的创建和使用。在图6a中所示的视图(601)中,显示设备(610)包括描绘第一应用的内容(620)的屏幕。例如,第一应用是Web浏览器或基于软件的个人助理。内容(620)包括地址(621)。为了简化示例,省略了内容(620)的其它细节。在图6a中,计算***的UI的光标(630)悬停在远离地址(621)的某个位置处的内容(620)上。在图6b中所示的视图(602)中,光标(630)已经被移动以悬停在地址(621)上。如图6c的视图(603)中所示,这触发用于显示覆盖第一应用的内容(620)的位置卡(640)的生成和输出。(可替换地,可以基于在位置和用户简档/用户偏好之间识别的关联,由基于软件的个人助理自动请求位置卡(640))。在图6c中,位置卡(640)被再现为飞出对象。位置卡(640)包括细节部分(642)、具有多个动作指示符(用于动作1,动作2和动作3)的动作指示符部分(644)和地图部分(646)。
在图6d中所示的视图(604)中,光标(630)已经被移动以悬停在用于动作1的动作指示符上方。这触发第二应用的启动,第二应用的内容(650)覆盖位置卡(640)和第一应用的内容(620)。例如,第二应用是电话应用、绘图应用或消息传送应用。当第二应用关闭时(未示出),其内容(650)从屏幕移除,潜在地返回到图6c的视图(603)。当用户从位置卡(640)离开时,位置卡(640)关闭并从屏幕移除。
图7a-7c图示出了在具有小屏幕的计算设备(诸如智能电话、平板计算机或其他移动计算设备)中创建和使用位置卡。在图7a中所示的视图(701)中,计算设备(710)包括描绘第一应用(例如,Web浏览器或基于软件的个人助理)的内容(720)的屏幕。内容(720)包括地址(721),但是省略其他细节以简化示例。计算设备(710)接受触摸屏输入。在图7b中,在地址(721)上方接收到触摸屏输入。如图7b的视图(702)中所示,这触发用于显示覆盖第一应用的内容(720)的位置卡(740)的生成和输出。(可替换地,基于在位置和用户简档/用户偏好之间识别的关联,可以由基于软件的个人助理自动请求位置卡(740))。在图7b中,位置卡(740)被再现为替换第一应用的内容的控件。位置卡(740)包括细节部分(742)和具有多个动作指示符(用于动作1、动作2和动作3)的动作指示符部分(744)和地图部分(746)。
在图7c中所示的视图(703)中,在用于动作1的动作指示符的上方接收到附加的触摸屏输入。这触发第二应用(例如,电话应用、绘图应用、消息传送应用)的启动,第二应用的内容(750)替换位置卡。当第二应用关闭时,如图7b的视图(702)中那样,从屏幕中移除第二应用的内容(750),并且恢复位置卡(740)。然后,当用户关闭位置卡(740)时,将位置卡(740)从屏幕中移除,并且恢复第一应用的内容(720),如在图7a的视图(701)中那样。
图8a-8c图示出了在Web浏览器上创建和使用位置卡。在图8a中所示的视图(801)中,显示设备(810)包括描绘Web浏览器的内容(820)的屏幕。内容(820)包括多个地址。在图8a中,计算***的UI的光标(830)悬停在远离任何地址的内容(820)上。在图8b中所示的视图(802)中,光标(830)已经被移动以悬停在地址之一上。如图8b的视图(802)中所示,这触发用于显示覆盖Web浏览器的内容(820)的位置卡(840)的生成和输出。在图8b中,位置卡(840)被再现为飞出对象。位置卡(840)包括具有商家的名称、地址、电话号码、营业时间、评级信息和定价信息的细节部分。位置卡(840)的动作指示符部分包括用于Direction(指引)、Call(呼叫)和Share(共享)动作的动作指示符,并且位置卡(840)的地图部分包括商家的地图细节。
在图8c中所示的视图(803)中,光标(830)已经被移动以悬停在用于Call动作的动作指示符上。这触发电话应用的启动,电话应用的内容(850)覆盖位置卡(840)和Web浏览器的内容(820)。当电话应用稍后关闭(未示出)时,其内容(850)从屏幕移除,潜在地返回到图8b的视图(802)。当用户从位置卡(840)离开时,位置卡(840)关闭并从屏幕移除。
D.位置卡的示例配置
图9图示出了一般位置卡(900)和伴随的示例位置卡(901)。一般位置卡(900)包括细节部分(910)、动作指示符部分(920)和地图部分(930)。
细节部分(910)提供用户可以一目了然地查看的信息。该信息包括例如位置的名称、地址、电话号码、评论信息、评级信息、定价信息、距离、行程时间等中的任一个。可替换地,细节部分(910)包括其他文本和/或图形信息。
动作指示符部分(920)示出一个或多个动作指示符,以帮助用户通过直接链接到可用于完成任务的应用来完成该任务。示例动作包括获得到位置的指引,将位置保存到目录或收藏夹列表,与另一用户共享关于位置的信息,编辑关于位置的信息,呼叫与位置相关联的电话号码,以及确定位置附近的POI。可替换地,动作指示符部分(920)包括用于其它和/或附加动作的动作指示符。动作指示符可以用于在动作指示符部分(920)中直接表示的主动作或者不直接在动作指示符部分(920)中表示但可以通过位置卡(900)访问的次动作。
地图部分(930)显示地图视图,其可以是道路地图、场所地图、航空地图、街道地图、交通地图或某种其他种类的地图。地图部分(930)可以示出一个或多个POI的指示符,或者不示出POI。
图9的示例位置卡(901)包括细节部分(911),动作指示符部分(912)和地图部分(913),其内容在上面参考图8b进行描述。
图10示出了一般位置卡(1000)和伴随的示例位置卡(1001)的可替换配置。一般位置卡(1000)包括枢轴控件(pivot control)(1010),其可用于在用于关于位置的细节、位置的动作指示符和位置的地图视图的不同页面(1020)之间切换。例如,响应于触摸屏上的轻拂手势或平移手势,响应于来自鼠标的鼠标滚轮输入或响应于其他用户输入,位置卡(1000)可以切换页面。不同的页面(1020)可以包括如参考图9的位置卡(900)的不同部分所描述的内容。
在图10的示例位置卡(1001)中,枢轴控件的初始状态(1011)将示出“details(细节)”页面(1021)。在响应用户输入之后,枢轴控件的状态(1012)将示出“actions(动作)”页面(1022)。然后,在响应附加的用户输入之后,枢轴控件的状态(1013)将示出“map(地图)”页面(1023)。页面(1021,1022,1023)的内容如参考图8b所描述的。
可替换地,位置卡可以以另一配置再现,例如,转盘控件。
应用或OS可以根据计算设备的形状因素、计算设备的屏幕取向、使用场景、用户设置、应用设置和/或另一因素改变位置卡的配置(例如,切换模板)或改变在位置卡中示出哪些信息。例如,在具有较小屏幕的设备上,应用指定(或OS确定)应当生成较小的位置卡,从而示出可能对用户是重要的精简版本的细节、地图信息和/或动作指示符。为了节省空间,细节和/或动作指示符可以覆盖位置卡的地图部分。此外,根据可用空间,可以相对于次动作而呈现更多或更少的主动作的动作指示符。随着屏幕尺寸增加,可以在位置卡中示出更多细节、更多地图信息和/或更多动作指示符。
图11a-11d图示出了已经改变以适应不同设备形状因素的示例位置卡(1101,1102,1103,1104)。图11a中所示的位置卡(1101)包括商家的名称、地址、距离、电话号码、营业时间、评级信息和定价信息,以及商家的照片。位置卡(1101)包括用于Direction(指引),Save(保存)和Share(共享)动作的动作指示符,并且地图视图示出了针对位置卡的位置和用户的计算设备的当前位置。对于较小的屏幕,图11b的位置卡(1102)示出与图11a的位置卡(1101)相同的地图信息和细节,但省略了照片。此外,在图11b中,动作指示符覆盖地图信息以节省空间。在图11c中,位置卡(1103)包括精简版本的细节和更小的地图视图,不再示出当前位置。最后,在图11d中,位置卡(1104)包括精简版本的细节和较小的地图视图,并且Save动作已经被降级到次动作的状态。位置卡(1104)仍然包括用于Direction(指引)和Share(共享)动作的动作指示符,但是Save(保存)动作可以通过在致动人字形按钮(1110)时弹出的菜单来访问。
应用或OS可以根据优先级信息选择不同类型的细节、不同的动作和/或不同类型的地图信息。例如,优先级信息可以使地图信息优先于动作,并且使动作优先于附加的细节。作为另一个例子,优先级信息可以使某些类型的细节(例如,名称、电话号码)优先于其他类型的细节(例如地址、评论)。或者,作为另一示例,优先级信息可以使某些类型的动作优先于其他类型的动作。优先级信息可以根据使用场景而改变。例如,对于某个使用场景,优先级信息可以包括一组主动作和一组次动作。主动作用于被预期是最常见的任务,开发者试图将其在位置卡的顶层向用户展示。次动作用于被预期是不太常见的任务,其不需要位于位置卡的最前面。在某些场景下,位置卡可以省略动作指示符。
可以为单个位置输出位置卡,如图9、10和11a-11d中所示。可替换地,位置卡可以堆叠在列表中。图12示出了一般复合位置卡(1200)和示例复合位置卡(1201)。例如,可以使用复合位置卡来示出包括多个位置的搜索结果。
一般复合位置卡(1200)包括地图部分(1210)、针对位置卡1的细节和(多个)动作指示符(1220),针对位置卡2的细节和(多个)动作指示符(1240),针对位置卡3的细节和动作指示符(1260),等等。在图12中,针对给定位置卡的细节部分和(多个)动作指示符部分被精简成复合位置卡(1200)的单个部分。包括在复合位置卡(1200)中的地图信息、细节和(多个)动作指示符可以由应用指定。
示例复合位置卡(1201)包括地图部分(1211),其中在街道地图上指示并标记了若干位置。地图部分(1211)还示出当前位置(由其中具有圆圈的菱形表示)。对于这三个位置中的每一个,位置卡(1221,1241,1261)示出精简的细节和单个动作指示符。精简的细节(名称、电话号码、营业时间、评级信息、定价信息和到目的地的时间)放进相对较小的区域。对于主动作,单个动作指示符 - 获得到某个位置的指引 - 被描绘为一个小步行图。
E.位置卡的示例使用场景
应用可以针对不同的使用场景指定不同的位置卡。或者,OS可以针对不同的使用场景调整位置卡。一般说来,应用或OS可以调整位置卡的地图信息、细节和/或动作,以将位置卡定做为用户的预期需要。这为应用开发者提供了指定特定于应用的目标的动作和信息的灵活性,同时仍然提供关于如何由OS再现和使用位置卡的一致的用户体验。位置卡可用于各种场景。
例如,用户可以向基于软件的个人助理询问关于诸如商家、餐馆、普通地方、场所或中转站之类的位置的信息,并且得到的信息可以与位置卡一起呈现。位置卡中所示的细节可以取决于位置类型——例如,普通商家的名称、地址和电话号码;餐馆的名称、评论信息和菜单;中转站的距离和行程时间;等等。类似地,在位置卡中表示为主动作的动作可以取决于位置类型 —— 例如,获得指引,发出电话呼叫或共享普通商家的位置;获得指引,阅读评论信息或者向餐馆发出电话呼叫;获得中转站的替代路线;等等。不太常见的动作(诸如保存位置或共享位置)可以作为次动作呈现。作为另一示例,基于软件的个人助理可以使用位置卡来呈现关于行程或日程的信息。可替换地,基于由基于软件的个人助理记录的用户简档或用户偏好,基于软件的个人助理可自动请求OS生成位置卡,以向用户推荐一个地方或就一个地方通知用户。
当利用Web浏览器浏览网页时,用户可以指示对某个位置的地址感兴趣。Web浏览器可以请求OS在位置卡中呈现关于该位置的信息。如上所述,在位置卡中表示的动作和所示出的细节可以取决于位置的类型。
或者,作为另一示例,当利用绘图应用或消息传送应用来处理特定地址时,应用可以请求OS在位置卡中呈现关于位置的信息。或者,日历应用可以使用位置卡来呈现关于日历上的事件的位置的信息。或者,联系人应用可以使用位置卡来呈现联系人的位置信息。如上所述,在位置卡中表示的动作和所示出的细节可以取决于位置的类型。在位置卡中表示的动作和所示出的细节也可以取决于应用的类型 ——例如,对于消息传送应用而言共享某个位置;对于绘图应用而言,获得指引、替代路线或交通细节;对于日历应用而言,重新安排或重新定位某个事件;对于联系人应用而言,发送文本消息或者向某个联系人发出电话呼叫;等等。所示出的细节和所表示的动作还可以以其他方式取决于上下文。例如,如果绘图应用示出交通数据,则绘图应用可以指定位置卡包括用于将到达某个位置的替代路线确定为主动作的动作指示符,但是否则为作为次动作的该动作呈现动作指示符。
作为另一示例,应用可以存储关于位置(例如,汽车停放的位置,用于出差的一系列位置)的信息,并且请求生成位置卡以呈现关于(多个)位置的信息。位置卡可以包括用于编辑位置(改变地址或改变场所内的位置),获得到某个位置的或共享位置的动作指示符。当检索或存储位置(例如,编辑以修正停车空间的位置的不准确放置的问题,获得到停车空间的指引,共享停车空间的位置的问题)时,期望频繁使用这样的动作。
F.替代方案和变型
在本文所描述的许多示例中,位置卡由OS生成和再现,但不持久存储。可替换地,位置卡可以以持久形式存储。应用或OS可以存储和检索用于位置卡的信息,以便以后使用位置卡。
在本文描述的许多示例中,单个应用请求并使用OS生成的位置卡。不同的应用请求并使用其自己的由OS生成的位置卡。可替换地,位置卡可以由多个应用共享。
在本文所描述的许多示例中,应用检索关于位置的信息,将至少一些检索到的信息提供给OS以生成位置卡,然后丢弃该信息。可替换地,应用可以将检索到的信息保留在用于该位置的数据模型中。在该方法中,应用可以存储关于位置的信息,并将其提供给OS以生成用于不同情况的位置卡,而不必多次检索该信息。例如,绘图应用可以缓存关于数据模型中的位置的信息,然后向OS提供所缓存的信息的适当子集,以生成用于给定情况的位置卡,给定情况诸如是,呈现搜索结果(示出更多细节)、导航、驾驶(示出较少的细节),等等。应用可以在不同情况下为位置卡选择所缓存信息的不同子集。
考虑到可以应用所公开的发明的原理的许多可能的实施例,应当认识到,所图示出的实施例仅是本发明的优选实施例,并且不应视为限制本发明的范围。相反,本发明的范围由所附权利要求限定。因此,我们要求保护落入这些权利要求的范围和精神内的全部作为我们的发明。
Claims (14)
1.一种在计算***中的方法,包括:
在操作***中,响应于通过应用程序编程接口(“API”)的一个或多个调用,生成用于位置的位置卡,所述位置卡包括(a)所述位置的地图,(b)关于位置的细节,以及(c)一个或多个动作指示符,所述一个或多个动作指示符中的每一个链接到能够执行对应动作的应用,其中所述操作***支持用于第一方应用的位置卡功能以及用于通过API进行调用的第三方应用的位置卡功能;以及
输出所述位置卡以用于显示。
2.根据权利要求1所述的方法,其中生成位置卡包括,在所述计算***的存储器中创建结构,所述结构定义所述地图的视觉元素和性质、所述细节的视觉元素和性质、以及所述一个或多个动作指示符的视觉元素和性质。
3.根据权利要求1所述的方法,其中,生成位置卡包括:
选择用于所述位置卡的模板;以及
使用在所述一个或多个调用中提供的一个或多个参数来填充所述模板的至少一些字段。
4.根据权利要求1所述的方法,其中所述生成包括:
评估所述计算***的显示设备的屏幕的尺寸和/或取向;以及
至少部分地基于所述评估的结果来调整所述位置卡。
5.根据权利要求1所述的方法,其中所述生成包括:
基于优先级信息确定地图、细节和一个或多个动作指示符中的哪一个要包括在位置卡中;以及
至少部分地基于所述确定的结果来调整所述位置卡。
6.根据权利要求1所述的方法,还包括,响应于所述一个或多个动作指示符中的给定动作指示符的致动:
启动与给定动作指示符相链接的应用;
向所启动的应用提供信息以执行针对所述给定动作指示符的对应动作;以及
如果有的话,输出所启动的应用的视图以用于显示。
7.一种在计算***中的方法,包括:
接收指示对位置的兴趣的通知;以及
通过操作***的应用程序编程接口(“API”)来进行指定所述位置的位置卡的一个或多个调用,所述位置卡包括(a)所述位置的地图,(b)关于所述位置的细节,以及(c)一个或多个动作指示符,所述一个或多个动作指示符中的每一个链接到能够执行对应动作的应用,其中所述操作***支持用于第一方应用的位置卡功能和用于通过API进行调用的第三方应用的位置卡功能。
8.根据权利要求7所述的方法,还包括:
评估所述计算***的显示设备的屏幕的尺寸和/或取向;以及
至少部分地基于所述评估的结果来调整指定所述位置卡的所述一个或多个调用中的至少一些。
9.根据权利要求7所述的方法,还包括:
在进行指定所述位置卡的所述一个或多个调用之前:
(a)评估所述计算***的一个或多个设置和/或一个或多个条件,并且基于所述评估的结果,确定所述地图的类型;
(b)确定所述位置的定制视图,其中所述定制视图用作所述位置的地图;
(c)请求搜索所述位置的地址,接收所述搜索的结果,以及过滤所述搜索的结果,以确定要包括在所述位置卡中的关于位置的细节;和/或
(d)对于所述一个或多个动作指示符中的每一个,识别关于所述位置的相关信息,确定针对所述相关信息的对应动作,以及确定能够执行对应动作的应用。
10.根据权利要求7所述的方法,其中所述一个或多个动作指示符包括用于直接在所述位置卡中呈现的主动作的至少一个动作指示符和用于不直接在所述位置卡中呈现的次动作的至少一个动作指示符。
11.根据权利要求7所述的方法,其中指示对所述位置的兴趣的所述通知是在所述计算***的显示设备的屏幕上的在所述位置的表示上的鼠标输入或触摸屏输入。
12.根据权利要求1-11中任一项所述的方法,其中所述一个或多个调用提供以下项中的至少一些:
指定所述地图的类型的一个或多个参数;
指定关于位置的细节的一个或多个参数;
为所述一个或多个动作指示符中的每一个指定所链接的应用和对应动作的一个或多个参数;
指定所述位置卡的字体尺寸、字体颜色、字体类型、边框宽度、边框颜色、边框类型、高度、宽度、位置和背景颜色中的一个或多个的一个或多个参数;以及
指定用于位置卡的模板的一个或多个参数。
13.根据权利要求1-11中任一项所述的方法,其中所述位置卡是输出用于显示的多个位置卡的栈的一部分。
14.一种或多种存储计算机可执行指令的计算机可读介质,所述计算机可执行指令用于使得计算***被编程,从而执行一种方法,包括:
响应于通过操作***的接口的一个或多个调用,生成用于位置的位置卡,所述位置卡包括(a)所述位置的地图,(b)关于所述位置的细节,以及(c)一个或多个动作指示符,所述一个或多个动作指示符中的每一个链接到能够执行对应动作的应用,其中生成所述位置卡包括:
选择用于所述位置卡的模板;以及
使用在所述一个或多个调用中提供的一个或多个参数来填充所述模板的至少一些字段;以及
输出所述位置卡以用于显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010440133.6A CN111639476B (zh) | 2014-09-02 | 2015-09-02 | 操作***对位置卡的支持 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/475383 | 2014-09-02 | ||
US14/475,383 US9460058B2 (en) | 2014-09-02 | 2014-09-02 | Operating system support for location cards |
PCT/US2015/048023 WO2016036787A1 (en) | 2014-09-02 | 2015-09-02 | Operating system support for location cards |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010440133.6A Division CN111639476B (zh) | 2014-09-02 | 2015-09-02 | 操作***对位置卡的支持 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106797547A true CN106797547A (zh) | 2017-05-31 |
CN106797547B CN106797547B (zh) | 2020-07-03 |
Family
ID=54364659
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580047146.4A Active CN106797547B (zh) | 2014-09-02 | 2015-09-02 | 操作***对位置卡的支持 |
CN202010440133.6A Active CN111639476B (zh) | 2014-09-02 | 2015-09-02 | 操作***对位置卡的支持 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010440133.6A Active CN111639476B (zh) | 2014-09-02 | 2015-09-02 | 操作***对位置卡的支持 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9460058B2 (zh) |
EP (1) | EP3189679B1 (zh) |
CN (2) | CN106797547B (zh) |
WO (1) | WO2016036787A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9460058B2 (en) * | 2014-09-02 | 2016-10-04 | Microsoft Technology Licensing, Llc | Operating system support for location cards |
US20160103821A1 (en) | 2014-10-09 | 2016-04-14 | Wrap Media, LLC | Authoring tool for the authoring of wrap packages of cards |
US9465788B2 (en) * | 2014-10-09 | 2016-10-11 | Wrap Media, LLC | Authoring tool for the authoring of wrap packages of cards |
US11132711B2 (en) * | 2014-12-23 | 2021-09-28 | Facebook, Inc. | Inline expansion of maps in content items |
JP6297482B2 (ja) * | 2014-12-26 | 2018-03-20 | 日立オートモティブシステムズ株式会社 | 情報処理装置 |
US10310700B2 (en) * | 2015-01-21 | 2019-06-04 | Samsung Electronics Co., Ltd. | Apparatus and method for managing of content using electronic device |
KR20160112898A (ko) * | 2015-03-20 | 2016-09-28 | 한국과학기술원 | 증강현실 기반 동적 서비스 제공 방법 및 장치 |
US9582917B2 (en) * | 2015-03-26 | 2017-02-28 | Wrap Media, LLC | Authoring tool for the mixing of cards of wrap packages |
US9600803B2 (en) | 2015-03-26 | 2017-03-21 | Wrap Media, LLC | Mobile-first authoring tool for the authoring of wrap packages |
US20160321712A1 (en) * | 2015-05-01 | 2016-11-03 | Wadju Inc. | Crowd Sourced Networked Target Feedback |
US10216709B2 (en) * | 2015-05-22 | 2019-02-26 | Microsoft Technology Licensing, Llc | Unified messaging platform and interface for providing inline replies |
US20160344677A1 (en) | 2015-05-22 | 2016-11-24 | Microsoft Technology Licensing, Llc | Unified messaging platform for providing interactive semantic objects |
US9772926B2 (en) | 2015-08-20 | 2017-09-26 | International Business Machines Corporation | System and method for determining relevance of application software maintenance |
US20170357414A1 (en) | 2016-06-12 | 2017-12-14 | Apple Inc. | Map Application with Novel Search, Browsing and Planning Tools |
US10579740B2 (en) * | 2016-12-28 | 2020-03-03 | Motorola Solutions, Inc. | System and method for content presentation selection |
US20190286282A1 (en) * | 2018-03-14 | 2019-09-19 | Honda Motor Co., Ltd. | Methods and systems for adjusting a layout of applications displayed on a screen |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859310A (zh) * | 2009-04-09 | 2010-10-13 | 刘东方 | 电子地图名片 |
US20120042036A1 (en) * | 2010-08-10 | 2012-02-16 | Microsoft Corporation | Location and contextual-based mobile application promotion and delivery |
CN102822824A (zh) * | 2010-02-11 | 2012-12-12 | 佳明瑞士有限责任公司 | 解码供本机绘图应用使用的内容中的位置信息 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321158B1 (en) | 1994-06-24 | 2001-11-20 | Delorme Publishing Company | Integrated routing/mapping information |
JP4300767B2 (ja) | 2002-08-05 | 2009-07-22 | ソニー株式会社 | ガイドシステム、コンテンツサーバ、携帯装置、情報処理方法、情報処理プログラム、及び記憶媒体 |
US8103445B2 (en) | 2005-04-21 | 2012-01-24 | Microsoft Corporation | Dynamic map rendering as a function of a user parameter |
US7805246B2 (en) * | 2007-10-25 | 2010-09-28 | Microsoft Corporation | View-independent tagging of geospatial entities in images |
AU2009271668A1 (en) | 2008-06-24 | 2010-01-21 | Google Inc. | Method and system for displaying information based on user actions |
US8671365B2 (en) | 2008-11-26 | 2014-03-11 | Nokia Corporation | Method, apparatus and computer program product for providing a cursor for indicating context data in a mapping application |
JP5494346B2 (ja) | 2009-11-26 | 2014-05-14 | 株式会社Jvcケンウッド | 情報表示装置、情報表示装置の制御方法、およびプログラム |
EP2369531A1 (en) * | 2010-03-03 | 2011-09-28 | HTC Corporation | Method, system, apparatus and computer program product for browsing spot information |
US8909629B2 (en) * | 2010-03-22 | 2014-12-09 | Google Inc. | Personalized location tags |
US8818981B2 (en) | 2010-10-15 | 2014-08-26 | Microsoft Corporation | Providing information to users based on context |
US9746995B2 (en) * | 2011-07-14 | 2017-08-29 | Microsoft Technology Licensing, Llc | Launcher for context based menus |
US20130139113A1 (en) * | 2011-11-30 | 2013-05-30 | Microsoft Corporation | Quick action for performing frequent tasks on a mobile device |
CN104115147B (zh) | 2012-02-16 | 2018-06-29 | 微软技术许可有限责任公司 | 位置感知应用搜索 |
US20140365944A1 (en) * | 2013-06-09 | 2014-12-11 | Apple Inc. | Location-Based Application Recommendations |
US8972187B1 (en) * | 2013-06-28 | 2015-03-03 | Google Inc. | Varying the degree of precision in navigation data analysis |
US20150099481A1 (en) * | 2013-10-03 | 2015-04-09 | White Cheetah, Inc. | Method and system for providing alert notifications |
US9442911B2 (en) * | 2014-01-09 | 2016-09-13 | Ricoh Company, Ltd. | Adding annotations to a map |
US9460058B2 (en) * | 2014-09-02 | 2016-10-04 | Microsoft Technology Licensing, Llc | Operating system support for location cards |
-
2014
- 2014-09-02 US US14/475,383 patent/US9460058B2/en active Active
-
2015
- 2015-09-02 CN CN201580047146.4A patent/CN106797547B/zh active Active
- 2015-09-02 CN CN202010440133.6A patent/CN111639476B/zh active Active
- 2015-09-02 EP EP15787730.9A patent/EP3189679B1/en active Active
- 2015-09-02 WO PCT/US2015/048023 patent/WO2016036787A1/en active Application Filing
-
2016
- 2016-07-06 US US15/203,647 patent/US9904434B2/en active Active
-
2018
- 2018-01-12 US US15/869,801 patent/US10514819B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859310A (zh) * | 2009-04-09 | 2010-10-13 | 刘东方 | 电子地图名片 |
CN102822824A (zh) * | 2010-02-11 | 2012-12-12 | 佳明瑞士有限责任公司 | 解码供本机绘图应用使用的内容中的位置信息 |
US20120042036A1 (en) * | 2010-08-10 | 2012-02-16 | Microsoft Corporation | Location and contextual-based mobile application promotion and delivery |
Non-Patent Citations (1)
Title |
---|
刘雯等: "面向公众的智能网络电子地图服务", 《安徽农业科学》 * |
Also Published As
Publication number | Publication date |
---|---|
EP3189679B1 (en) | 2019-10-23 |
EP3189679A1 (en) | 2017-07-12 |
CN106797547B (zh) | 2020-07-03 |
CN111639476A (zh) | 2020-09-08 |
US9460058B2 (en) | 2016-10-04 |
US20160313870A1 (en) | 2016-10-27 |
WO2016036787A1 (en) | 2016-03-10 |
US20160062955A1 (en) | 2016-03-03 |
CN111639476B (zh) | 2023-11-07 |
US10514819B2 (en) | 2019-12-24 |
US9904434B2 (en) | 2018-02-27 |
US20180136790A1 (en) | 2018-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106797547A (zh) | 操作***对位置卡的支持 | |
US20210026526A1 (en) | Native overlay for rapid editing of web content | |
CN105830150B (zh) | 基于意图的用户体验 | |
JP5909228B2 (ja) | ズーム可能なシーン内のズーム操作に関する代替意味論 | |
KR20200006172A (ko) | 터치 감응형 이차 디스플레이에서 사용자 인터페이스 제어부들을 동적으로 제공하기 위한 시스템들, 디바이스들, 및 방법들 | |
US11960447B2 (en) | Operating system-level management of multiple item copy and paste | |
US11853730B2 (en) | Mini program data binding method and apparatus, device, and storage medium | |
US11126972B2 (en) | Enhanced task management feature for electronic applications | |
CN114239524A (zh) | 问卷生成方法、装置、计算机设备及存储介质 | |
US10732794B2 (en) | Methods and systems for managing images | |
EP3612921A1 (en) | Enhanced inking capabilities for content creation applications | |
WO2021142248A1 (en) | Presenting intelligently suggested content enhancements | |
US20230229722A1 (en) | Attribute-based positioning of bookmarks in a 3d virtual space | |
Aslan et al. | Examining the User Interface Development Stage in the Software Development Process | |
CN117193919A (zh) | 显示方法、装置、电子设备和可读存储介质 | |
CN115113777A (zh) | 一种应用程序的处理方法、装置及终端 | |
CN117195838A (zh) | 虚拟游戏的页面管理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |