地图堆叠的制作方法

文档序号:12512600阅读:650来源:国知局
地图堆叠的制作方法与工艺

本申请要求2014年9月4日提交的U.S.临时申请No.62/046,083的优先权,其全部内容作为引用合并于此。

技术领域

本公开通常涉及电子地图领域,更具体地说,涉及视觉化显示(或渲染)。



背景技术:

随着地理信息系统(GIS)的技术快速发展,电子地图已经越来越广泛地用在各种应用中。用户使用电子地图来指导他们的旅行。此外,电子地图变得可交互,诸如允许用户放大或缩小,有时通过可能以同一点为中心的不同比例的另一图代替一图。此外,一些电子地图通过在卫星的帮助下监视用户的位置,具有路径规划功能和建议工具。

然而,电子地图的当前方案仅提供一次显示一张地图。当用户试图一次视觉认知对应于多个位置的多个地图时,这是不方便的。因此,缺乏用于同时渲染多个地图以便于为用户提供有关多个位置的丰富的视觉认知,同时允许用户方便地与实时地图交互的一系列方法。



技术实现要素:

本公开的实施例通常针对显示(或渲染)地图堆叠(stack)。在一些实施例中,公开了用于渲染地图堆叠的方法、设备或系统。所公开的配置包括收集用户数据以用于向用户渲染多个地图。该用户数据描述至少一个目的地。在一个实施例中,由用户数据描述的目的地是用户喜欢的位置。在一些替选实施例中,用户数据包括预加载或用户肯定地选择的目的地的推荐集合或受欢迎集合,例如旅游景点、最受欢迎的餐馆。

公开的配置基于用户数据,生成地图数据以用于渲染多个地图的堆叠。多个地图的堆叠包括第一交互式动态地图(或交互式地图)以及折叠的(collapsed)动态地图的集合。当用户移动时,折叠的动态地图可以更新与目的地的距离、下一火车到来前剩余的时间等。在与折叠(或分层)动态地图集合相对的位置中显示第一交互式地图。所公开的配置更新地图数据以用对应于折叠的动态地图的第二交互式地图代替折叠的动态地图中的一个动态地图并且发送该地图数据以渲染多个地图的堆叠。该第二交互式地图被显示以代替第一交互式地图的相对位置。

附图说明

图1是根据一个实施例的用于渲染地图堆叠的示例性计算环境的高级框图。

图2是图示出根据一个实施例的能够从机器可读介质读取指令并且在用于充当客户设备和/或服务器的处理器(或控制器)中执行这些指令的示例性机器的组件的框图。

图3是图示出根据一个实施例的地图模块的框图。

图4是图示出根据一个实施例的用于对用户渲染地图堆叠的示例性方法的流程图。

图5是图示出根据一个实施例的用于生成地图数据以用于利用在折叠的动态地图集合顶部的交互式地图来渲染地图堆叠的示例性方法的流程图。

图6是图示出根据一个实施例的更新地图数据以通过交互式地图代替折叠的动态地图中的一个动态地图的示例性方法的流程图。

图7是图示出根据一个实施例的更新地图数据以通过交互式地图代替折叠的动态地图中的一个动态地图的另一示例性方法的流程图。

图8-11是用于显示地图堆叠的不同方面的用户界面的示例性图形表示。

具体实施方式

所公开的实施例具有从具体实施方式和附图(或图)更显而易见的优点和特征。

图1-11和下述描述仅通过示例,涉及优选实施例。应注意到从下述论述,本文公开的结构和方法的替选实施例将易于被识别为在不背离所要求的原理的情况下可以采用的可变替选方案。

现在详细地参考若干实施例,其示例在附图中示出。应注意到只要可行,相似或相同的附图标记可以用在图中并且可以表示相似或相同的功能性。附图仅为示例目的描绘所公开的系统(或方法)的实施例。本领域的技术人员从下述描述将易于认识到在不背离本文描述的原理的情况下,可以采用本文所示的结构和方法的替选实施例。

配置概述

所公开的配置提供对常规渲染的电子地图的改进。例如,系统(以及计算机实现的方法和非暂时性存储介质)被配置为提供(例如显示或渲染)用户能交互的多个地图的堆叠。在一个示例性配置中,系统收集描述位置的用户的用户数据,所述位置诸如由用户输入的目的地、由用户选择的一个或多个预先识别(例如喜欢的)位置、和/或用户的当前位置。此外,系统使用该用户数据来确定用于渲染地图堆叠的地图数据。

在一个实施例中,将待在计算设备的用户界面上渲染的电子地图堆叠在一起。例如,堆叠的电子地图是相互堆叠(或折叠或分层)的两个或多于两个的物理地图的电子表示。由此,地图堆叠对应于分立的地图,所述分立的地图能被渲染但示为就象每一地图在另一个顶部。

此外,利用例如可由用户选择的部分渲染的分立的电子地图中的每一个电子地图,以便响应那一可选区域中的特定地图的选择,该地图能到达顶部以供查看。例如,地图堆叠包括电子动态交互式地图(或交互式地图),其识别(例如由用户使用的)设备的当前位置并且在设备的用户界面上渲染到地图堆叠的顶部。在地图堆叠中的交互式地图下面是可以在设备的用户界面上渲染的一个或多个动态地图,如本文进一步所述。

每一动态地图相当于一个或多个预定位置。该位置可以通过对设备的或被发送到该设备的用户选择来预定。该系统将地图数据发送到客户端设备,以向用户显示地图堆叠。此外,该系统可以更新地图数据以利用对应于动态地图的另一交互式地图代替该动态地图中的一个动态地图。例如,动态地图可以逐渐消失,并且对应于该动态地图的新的交互式地图(例如,它们均描述同一位置)能获取前一交互式地图的位置点。

所公开的配置相对于常规模型而言提供诸多优点。该系统的一个示例性优点是为用户提供对由用户预定的位置(例如喜欢的位置或定期到访的位置)的快速快捷方式。例如,无需花费大量的时间来搜索以找到指向几个位置中的每一个位置的路线,该系统能记录由用户选择的位置(例如定期到访的位置或可从网站上的地址或地址簿选择的位置)并且基于用户的单击建议到所有被选位置的最佳可能路线。此外,在另一示例中,该系统有利地提供用户信息来基于兴趣点(POI),确定停留的最佳场所,或帮助用户导航到新城市内的多个兴趣点。

所公开的实施例的又一示例性优点在于系统以“类似堆叠”的方式渲染地图。例如,在用户界面中,在显示能与用户交互的实时数据的最顶部视觉化地显示的地图是交互式地图。能通过可在用户界面中视觉化显示的地图的一部分来选择在交互式地图下方(或下面)的地图。当被选择时,该地图“提升”到顶部并且变为与当前位置信息相关的交互式地图。先前交互式地图能被从用户界面全部移除或拖到地图堆叠内的当前交互式地图下方。

如所提到,地图堆叠包括交互式地图下方的一个或多个动态地图。交互式地图下方的这些动态地图被折叠在交互式地图下。下方折叠包括下方分层或下方交叠(folded)。这些地图尽管在用户界面中并不完全可见,但当动态地更新它们中的每一个内的信息时,这些地图是动态的。例如,能更新关于多个位置的方向信息和关于那些位置的对应的相关信息(例如营业时间、那一位置的企业评论)、位置之间的相对距离、和任何其他类型的信息。尽管在用户界面中不立即可见,更新动态地图中的信息的优点在于当堆叠动态地图变为当前(或新的)交互式地图时,立即提供这些信息,以显示在用户界面中。因此,与常规配置相比,该系统在提供地图内的信息方面更快和更有效。

示例性计算环境

图1图示根据一个实施例的用于渲染地图堆叠的示例性计算环境100。计算环境100包括由网络150连接的一个或多个服务器(通常服务器)110、一个或多个客户端设备(通常客户端设备)170A-N以及一个或多个数据库(通常数据库)130。在图1中仅示出了一个服务器110、两个客户端设备170和数据库130,以便简化和阐明本描述。计算环境100的替选或附加实施例能具有多个服务器110和数据库130,以及连接到网络150的多于两个客户端设备170。同样地,由图1的各个实体执行的功能在不同实施例中不同。在图2中描述了服务器设备(或服务器)110、客户端设备(或客户端)170和数据库系统(或数据库)130的示例性计算配置。

服务器110被配置为收集用户数据(或信息)以提供在客户端设备170的用户界面内渲染(或提供以显示)多个地图。例如,用户数据能描述由用户输入(或选择)到客户端设备170的目的地。此外,用户数据还能识别用户的当前位置。替选地,用户数据可以包括预加载或用户肯定选择的目的地的推荐集合或受欢迎集合,例如旅游景点、最受欢迎餐馆、兴趣点等。此外,用户数据能描述用户喜欢的一个或多个位置。例如,用户能使用客户端设备170来选择用户定期到访的一个或多个位置(例如超市、娱乐场所、景观、学校、工作场所等),作为预定(例如喜欢的)位置。对每一位置,服务器110生成地图数据以提供渲染地图堆叠,每一地图对应于特定位置。

在生成每一地图后,服务器110组织多个地图的堆叠。该组织包括交互式地图和折叠的动态地图的集合。交互式地图是允许用户在该地图内交互(例如,平移,缩放等)的地图。交互式地图是客户端设备170上的用户界面内立即可见的地图。交互式地图还是动态地,因此,通过该设备捕捉的位置信息随后能在设备的用户界面内图示出。交互式地图还能图示出从开始(或起始)位置到由用户设定的结束(或目的地)的路线。

交互式地图下方的每一动态地图能是对应于特定位置的地图的屏幕截图(或图像)。屏幕截图对应于特定位置和周围区域。在屏幕截图内显示的区域量能由用户预定,例如,对应于离作为该地图的中心点的该位置的预定距离的半径。尽管由于地图本身在客户端设备上的用户界面不完全可见,动态地图不是“可交互的”,但当该设备更新位置相关信息(例如当前全球定位系统(GPS)坐标、蜂窝电话塔位置、磁强计/罗盘、或WiFi信息)时,其内的信息也被更新。此外,折叠的动态地图的一部分是可选择的,使得响应于选择该可选择区域,那一地图变为新的交互式地图并且在用户界面内移动先前交互式地图以删除或返回到折叠的地图堆叠。

此外,服务器110发送(或传送)地图数据以提供在客户端设备170上渲染多个地图的堆叠。例如,能在用户界面,诸如图8-11的任何一个中示出的地图的示例性用户界面的一个中,在折叠的动态地图的集合最顶部显示交互式地图。此外,服务器110可以更新地图数据来用对应于折叠的动态地图的交互式地图代替折叠的动态地图中的一个。例如,能通过渲染对应于同一位置的交互式地图,替代关于位置的屏幕截图地图,使得用户现在能与该地图交互。此外,服务器110能将更新的地图数据发送到客户端设备170,以显示新的交互式地图来替代先前交互式地图的位置。

在一个实施例中,服务器110包括主要执行上述服务器110的功能的地图模块151A(统称以及可单独称为115)。在下文中,将参考图3,进一步详细地描述地图模块115和功能。服务器110的其他实施例可以包括不同和/或附加部件。此外,功能可以以不同于本文所述的方式,分布在服务器110、数据库130和客户端设备170中。例如,地图模块115可以完全或部分存储在一个或多个客户端设备170上,图示为图1中的地图模块115B。

客户端设备170是由用户使用来执行诸如与导航地图、消费电子内容、执行软件应用、浏览由网络150上的Web服务器托管的网站、下载文件、和与服务器110交互的功能的电子设备。例如,客户端设备170可以是专用电子阅读器、智能电话、可穿戴设备(例如智能手表或挂件)或类似于图2所述的计算系统配置的平板、手提电脑、笔记本或桌面计算机。

客户端设备170还包括与用户可以查看诸如示出地图的图形用户界面(GUI)的视觉化的显示设备的接口。此外,客户端设备170提供在屏幕(或显示器)上渲染的视觉用户界面(UI)。屏幕可以是触敏的并且响应手势。如果屏幕不是触敏的,用户界面还可以包括屏上按钮。用户能直接与所渲染的用户界面交互(例如使用手势)和/或所渲染的按钮交互。所渲染的用户界面为用户提供与客户端设备170交互并且执行功能的界面。功能的示例包括在地图之间选择、操作地图上的元素、输入目的地、选择目的地、缩小或放大地图和任何其他可能的交互。

在一个实施例中,客户端设备170包括地图模块115B和视觉化模块177,但客户端设备170的其他实施例包括不同和/或附加部件。此外,功能可以以本文所述不同的方式分布在部件中。

视觉化模块177基于由地图模块115生成的地图数据渲染视觉化,所述地图数据或驻留在服务器110上,或完全或部分存储在客户端设备170上。例如,视觉化模块177渲染例如基于由地图模块115生成和/或更新的地图数据,显示包括交互式地图和折叠的动态地图的集合的多个地图的堆叠的GUI。

数据库130存储服务器110和/或客户端设备170实现本文所述的功能性所需的任何数据。例如,数据库130存储描述用户喜欢的位置的用户数据。数据库130还可以存储描述交互式地图和动态地图的堆叠的地图数据。

网络150,能是有线、无线或其组合,实现服务器110、客户端设备170、和数据库130之间的通信并且可以包括互联网、LAN、VLAN(例如具有VPN)、WAN或其他网络。在一个实施例中,网络150使用标准的通信技术和/或协议。在另一实施例中,代替或除本文所述的技术外,实体能使用定制和/或专用的数据通信技术。

计算机器架构

图2是图示出能够从机器可读介质中读取指令(例如软件或程序代码)并且在处理器(或控制器)中执行它们的示例性机器的部件的框图。示例性机器示出可以在客户端设备170和/或服务器设备110以及独立数据库130内结构化和操作的一个或多个部件。具体地,图2示出以计算机系统200的示例性形式的机器的图示表示,在计算机系统200中可以执行用于使机器执行任何一个或多个本文描述的方法的指令224(例如,软件或程序代码)。方法学能包括参考图1和本文后续所述的模块。在可替选实施例中,机器作为独立的设备操作或者可以被连接(例如,联网)到其他机器。在联网的部署中,机器可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力来操作,或者在对等(或分布式)网络环境中作为对等机器来操作。

机器可以是服务器计算机、客户端计算机、个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、智能手机、web电器、网络路由器、交换机或网桥或者任何能够执行指定要由该机器采取的动作的指令224(顺序或其它)的机器。此外,尽管只图示了单个机器,但是术语“机器”应该也被认为包括独立地或共同地执行指令224以执行任何一个或多个本文描述的方法的机器的任何集合。

示例性计算机系统200包括一个或多个处理器(通常处理器202)(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、一个或多个专用集成电路(ASIC)、一个或多个射频集成电路(RFICs)或这些的任意组合)、主存储器204、以及动态存储器206,其被配置为经由总线208来彼此通信。计算机系统200可以进一步包括图形显示单元210(例如,等离子显示板(PDP)、液晶显示器(LCD)、投影仪、或阴极射线管(CRT))。计算机系统200还可以包括字母数字输入设备212(例如,键盘)、光标控制设备214(例如,鼠标、轨迹球、控制杆、运动传感器、或其他指示仪器)、存储单元216、信号生成设备218(例如,扬声器)、以及网络接口设备220,其也被配置为经由总线208来通信。另外,计算机系统200可以包括连接至总线208的一个或多个位置传感器,例如加速计或全球定位系统(GPS)传感器。另外,网络接口设备220可以包括还能被用来帮助识别位置信息的WiFi或“蜂窝”移动连接。

存储单元216包括机器可读介质222,在其上存储体现一个或多个本文描述的方法或功能的指令224。指令224在由计算机系统200执行它的过程中,还可以完全的或至少部分的驻留于主存储器204或处理器202中(例如,在处理器的高速缓存存储器中),该主存储器204和处理器202也组成机器可读介质。指令224(例如,软件)可以经由网络接口设备220在网络226上被传送或接收。应注意到,数据库130能被存储在存储器216中,尽管其还能部分或全部存储在存储器204中。

尽管在示例性实施例中作为单个媒体示出机器可读介质222,但是术语“机器可读介质”应当被认为包括能够存储指令(例如,指令224)的单个介质或多个介质(例如,集中或分布式数据库,或相关联的缓存和服务器)。术语“机器可读介质”还应该被认为包括任何能够存储用于由机器执行的并且使机器执行本文描述的方法中任何一个或多个的指令(例如,指令224)的介质。术语“机器可读介质”包括但不限于以固态存储器、光学媒体、以及磁性媒体形式的数据储存库。

示例性地图模块

现在参考图3,框图示出根据一个示例性实施例的地图模块115。在所示的示例性实施例中,地图模块115具有初始化模块310、交互模块320、和转变模块330。本领域的技术人员将认识到地图模块115的其他实施例能具有不同于本文所述的不同和/或附加模块,并且功能可以以不同方式分布在这些模块中。此外,应注意到模块可以被配置为由可存储在存储单元,例如216、222、224并且可由一个或多个处理器,例如处理器202执行的指令,例如指令224构成的计算机程序代码(或软件)。

初始化模块310(例如,经由用户帐户、来自用户的直接输入、与设备的使用相关联的元数据等)收集用户的用户数据,用于基于该用户数据渲染一个或多个地图。在一个实施例中,初始化模块310从客户端设备170、数据库130、服务器110或诸如存储与用户有关的用户数据的第三方服务器的其他服务器(未示出)的部件(例如应用)收集用户的用户数据。用户数据可以描述用户想要到达的预期位置。例如,用户数据能描述由客户端设备170的用户输入到客户端设备170的目的地。用户数据可以另外描述例如用户先前评论或到访的一个或多个位置。例如,用户数据描述用户已经选择为喜欢的位置的位置(例如家、超市、娱乐场所、景观、学校、工作地点等)。此外,用户数据可以描述用户的场境。例如,用户数据可以描述由全球定位系统(GPS)设备,或包括在客户端设备170中的其他类型的传感器检测的用户的当前位置。替选地,用户数据可以包括预加载或用户已经肯定选择的目的地的推荐集合或受欢迎集合,例如旅游景点、最受欢迎的餐馆。此外,用户数据能描述用户喜欢的一个或多个位置。此外,初始化模块310还收集能有助于为用户渲染地图的其他类型的数据。例如,初始化模块310连同用户数据一起收集道路信息、交通状况信息、线路信息等,用于为用户渲染地图。

在一个实施例中,初始化模块310使用用户数据和其他类型的数据来生成对应于用于在用户设备上渲染一个或多个地图的程序代码的地图数据。例如,基于预定的选择,,例如“喜欢的”位置,初始化模块310能生成地图数据来渲染用于对应于用户选择为喜欢的位置的地图堆叠的地图。在一个示例性实施例中,用于地图的地图数据包括提供在用户设备的用户界面上渲染地图的程序代码。此外,能存在渲染该地图的缩放级的程序代码和/或渲染相对于该地图内的指定区域的地图的中心坐标的代码。用于地图的地图数据可以另外包括在客户端设备170上渲染地图所需的其他信息。例如,用于描述用户的喜欢的位置的地图的地图数据可以包括估计的时间和从喜欢的位置到用户的当前位置的距离。

在一个实施例中,初始化模块310确定地图数据以提供渲染例如对应于屏幕捕捉地图的地图。例如,该地图可以由刚输入、选择或预定的位置的“屏幕截图”(例如用于用户设备显示该地图的程序代码)构成。在一个实施例中,与位置有关的屏幕截图就视觉外观而言为静态的,但相对于在其内显示的数据也可以是动态的。当由例如170的客户端设备捕捉数据,例如更新的GPS坐标时,可以相应地更新屏幕截图地图。例如,可以显示该地图的更宽范围,或可以绕感兴趣的区域缩放。这将渲染更新的屏幕截图。不管是否利用新的屏幕截图重新渲染屏幕截图地图,可以更新其内的数据,所述数据例如相对于例如170的客户端设备的当前位置坐标的与地图中感兴趣的位置的距离。因此,即使该地图在客户端设备的用户界面上不立即可见,能更新对应于渲染该地图和/或其内的数据的指令。因此,交互式地图下方的这些地图也能被称为“动态”地图。关于在用户界面的视野内的地图,也能被称为动态地图,但当在用户界面内可见的情况下用户与那一地图交互时,其也是交互式地图。初始化模块310还可以确定如何视觉化显示对应于用于显示多个动态地图的地图数据的整个地图堆叠。例如,能提供以将地图堆叠显示为折叠在客户端设备170的屏幕内的用户界面上的用户界面的边缘处。将参考图8-11中的一个或多个,详细地描述用户界面的示例。

除动态地图外,初始化模块310还生成地图数据用于对用户渲染交互式地图。交互式地图包括用户能在用户设备上交互的实时数据。例如,交互式地图能随用户移动更新。交互式地图可交互,因为能由用户操作,例如平移、放大和缩小。交互式地图还能示出用户的当前位置。在一个实施例中,能基于先前存储的位置,诸如家、工作地点、商店、杂货店等的选择,来渲染交互式地图。初始化模块310可以确定地图数据用于将交互式地图显示为地图堆叠(例如堆叠类似于卡片堆叠)中最顶部的交互式地图。换句话说,在堆叠中的任何动态地图顶部显示交互式地图,使得用户能方便地与交互式地图交互。因此,可以将由交互式地图描述的位置称为“聚焦位置”,在一个示例性实施例中,其能在用户界面内中心。

在一个实施例中,初始化模块310确定地图数据以用于基于预设规则渲染关于位置的交互式地图和关于其他位置的动态地图。例如,能基于GPS位置或系统规则或配置(例如相对于地图预定的位置名称和精确定位数据)自动确定和/或(b)由用户(例如仅示出某些数据,诸如感兴趣点周围的所有加油站)和/或可以提供预定“感兴趣点”来加载到应用中(例如对应于地图区域内的企业的地点的广告产品)的第三方手动地确定的规则。例如,基于预定(或预设)的规则,初始化模块310将用户的当前位置确定为聚焦位置并且生成地图数据以用于渲染关于当前位置的交互式地图,同时渲染关于其他位置(例如除当前位置外的用户喜欢的位置)的多个动态地图。替选地,预设规则可以指定用户的家总是聚焦的位置。因此,初始化模块310生成地图数据以用于渲染关于用户的家的交互式地图,同时渲染关于如由用户定义并且可能由用户存储的其他识别的、预定的、或选择的位置的多个动态地图。

由初始化模块310生成的地图数据能被称为“设立阶段的地图数据”。在一个实施例中,初始化模块310将设立阶段的地图数据存储在数据库130中以用于在用户请求时向用户渲染地图。

交互模块320检索该地图数据并且将该地图数据发送到客户端设备170。由交互模块320提供的信息为客户端设备170提供信息(例如数据和/或程序代码)以用于在用户界面中渲染地图堆叠。可以响应于检测到来自用户的对地图的请求而渲染该信息。例如,用户使用客户端设备170来通过在客户端设备170上存储的地图应用或软件,请求一个或多个地图。交互模块320响应于用户的请求而检索地图数据并且将该地图数据发送到客户端设备170。然后,客户端设备170能在用户界面中,向用户显示地图堆叠。

在一个实施例中,当用户请求地图以显示时,交互模块320可以更新检索的地图数据来渲染关于用户的当前位置的交互式地图。在另一实施例中,如果基于预设规则交互式地图总是被确定是有关用户的家,则交互模块320可以发送该地图数据以用于渲染关于用户的家的交互式地图,而无需对该地图数据做任何改变。

此外,交互模块320还可以响应于检测到用户的当前位置的更新而更新用于渲染交互式地图的地图数据。例如,如果基于来自客户端设备的数据,例如GPS坐标,交互式地图对应于用户的当前位置,则交互模块320更新该地图数据来在交互式地图上反映当前位置的变化。

替选地,例如,如果交互式地图对应于家或由用户选择的任何其他喜欢的位置,则当用户正行驶或行进至那一目的地时,用户的当前位置由于来自客户端设备的数据(例如GPS坐标)连续更新而随时间改变。因此,到那一位置的路线路径、估计时间、和距离相应地随时间改变。因此,交互模块320更新地图数据来在交互式地图上反映到那一位置的路线路径、估计时间、和距离的变化。

此外,交互模块320可以响应于检测到用户的当前位置的更新而更新地图数据以用于渲染动态地图。每一动态地图对应于特定位置。例如,每一动态地图可以是有关先前存储的用户喜欢的位置。响应于检测到用户的当前位置的变化(例如,当用户正行驶时),交互模块320更新该地图数据来在每一动态地图上反映到喜欢的位置的估计时间和距离、和/或路线的变化。例如,交互模块320基于更新的用户的当前位置,更新该地图数据来在每一动态地图上显示到喜欢的位置的变化的估计时间和距离。

例如,假定用户开始从家出发去用户通常去的并且被选择为喜欢的地点的三个商店(例如商店A、商店B和商店C)的购物之旅。用户打开客户端设备170上的应用以用于请求关于商店的地图。因此,交互模块320检索地图数据以用于渲染关于用户的当前位置(例如家)的交互式地图、关于商店A、商店B和商店C的三个动态地图、以及关于由用户选择的其他位置的可能其他动态地图。当用户行驶至商店A时,交互模块320经由客户端设备170装配的例如GPS的传感器,检测(或接收)当前位置的更新的坐标。交互模块320通过计算相对于当前位置和/或位置之间的新的估计时间和距离和/或到由地图中的每一个地图所描述的位置的路线来更新用于关于家的交互式地图、用于商店A、商店B和商店C的动态地图的地图数据。

在一个实施例中,交互模块320通过分别基于用户取消选择或移除位置并且选择新位置而移除关于位置的地图信息(例如渲染地图和其内的对应数据的程序代码)或添加对应于新位置的新地图信息,来更新地图堆叠。例如,响应于用户将新位置选择为喜欢的位置,交互模块320生成地图数据以用于渲染关于地图堆叠中的新喜欢位置的新地图。此外,响应于用户取消选择喜欢的位置中的一个(例如,用户轻击关于喜欢的位置的动态地图中的一个动态地图上的“开始”按钮来进入“未选择”状态),交互模块320更新该地图数据以用于从地图堆叠中移除关于取消选择喜欢的位置的动态地图。

此外,在一个实施例中,交互模块320更新该地图信息以用于渲染动态地图内的更多细节。例如,用户能通过在用户界面内的动态地图的可见部分上滑动来与动态地图交互。响应于检测到用户在动态地图上滑动,客户端设备170将该指令传送到交互模块320,更新地图信息以为用户提供更多功能按钮的显示,诸如喜欢的“星标”按钮、“到这儿”按钮和“从这儿”按钮,这能由用户进一步交互。将参考图11更详细地描述。

转变模块330更新地图数据来用与已经由用户选择或先前识别的动态地图相对应的交互式地图代替折叠的动态地图中的一个动态地图。例如,假定动态地图描述由用户选择的喜欢的位置“A”。如上所述,动态地图可以仅是关于位置“A”的屏幕捕捉的地图并且不能由用户交互。对应于动态地图的交互式地图包括与能由用户交互的位置“A”有关的实时地图数据。例如,用户能轻击交互式地图的“从这儿”按钮来请求从位置“A”到当前位置的方向和/或路线。替选地,用户能轻击交互式地图的“到这儿”按钮来请求从当前位置到位置“A”的方向和/或路线。在一个实施例中,交互式地图被渲染为可编程地对该点缩放和平移,使其正好看起来与对应的屏幕捕捉的地图相同。此外,所替代的动态地图能逐渐消失。

如上所述,可以在用户界面内的地图堆叠的顶部,由客户端设备170渲染交互式地图。在一个实施例中,响应于用户滚动地图堆叠,使得动态地图中的一个动态地图展开并且获取堆叠的顶部位置,转变模块330更新地图数据以用于用对应于动态地图的新的当前交互式地图代替顶部位置中的当前交互式地图。能从用户界面视觉地移除代替的交互式地图,例如,被删除或被拖到新交互式地图下。

例如,假定在地图堆叠的最顶部渲染关于位置“A”的交互式地图。用户滚动地图堆叠来使关于位置“B”的动态地图获得顶部位置。相对应地,转变模块330确定地图数据以用于渲染与关于位置“B”的动态地图相对应的关于位置“B”的交互式地图。例如,转变模块330确定用于在堆叠的最顶部显示关于位置“B”的交互式地图,取代关于位置“A”的先前显示的交互式地图的位置的地图数据。此外,转变模块330可以确定从折叠的动态地图的集合移除对应的动态地图的地图数据。以这种方式,该堆叠的顶部位置中的任何地图是能与用户交互的交互式地图。这有利地允许用户从该堆叠方便地选择地图并且与被选择的地图交互。

替选地,响应于接收到与客户端设备170的当前位置相对应并且在交互式地图内显示的更新的GPS坐标,转变模块可以确定那些坐标与动态地图中的一个动态地图的坐标匹配。转变模块330更新地图信息来提供在堆叠的最顶部渲染与该一个动态地图相对应的新交互式地图。在用户到三个商店A、B和C的购物之旅的示例中,假定当前显示的交互式地图有关用户的家。当用户达到商店A时,当前显示的交互式地图的GPS坐标与商店A的动态地图的那些坐标匹配,并且转变模块330更新地图数据以用于在堆叠的最顶部显示与商店A的动态地图相对应的、关于商店A的交互式地图。在一个实施例中,转变模块330还更新地图数据以利用对应的动态地图(例如关于家的动态地图)代替先前显示的交互式地图(例如,关于家的交互式地图)并且在地图堆叠的位置(例如,在堆叠的底部处)渲染动态地图。

此外,在另一个实施例中,该系统能被配置为包括有助于继续使用计算资源有效的指令。例如,如果转变模块330从客户端设备170接收当前交互式地图内的地图信息与动态地图中的一个动态地图匹配的信息,则可以存在提供当前交互式地图与折叠的动态地图中的一个匹配的注释的指令。在这种情况下,不需要提供渲染来代替与该一个动态地图相对应的交互式地图,尽管这些指令可以允许利用在匹配的动态地图中找到(或未找到)的任何附加数据来更新不在当前交互式地图中的选择信息。因此,限制需要被传送的数据量,由此节省网络带宽和客户端设备170的电力。

在一个实施例中,转变模块330更新地图数据以用于由全屏地图视图(也可以被称为“全屏视图”)代替地图堆叠的视图(也可以被称为“堆叠视图”)。例如,用户可以通过轻击箭头按钮来转变到全屏视图,与示出地图堆叠的用户界面交互。将参考图10描述。响应于检测到用户轻击该按钮,转变模块330更新地图数据以用于在用户界面中以全屏视图渲染(例如显示)当前交互式地图,使得用户能更容易与该地图交互。此外,当检测到用户轻击按钮来回到堆叠视图时,转变模块330更新地图数据用于显示包括在顶部显示的交互式地图以及在用户界面的边缘处显示的折叠的动态地图的集合的地图堆叠。

示例过程

图4是图示出根据一个实施例的用于渲染地图堆叠的示例性方法400的流程图。在一个实施例中,图4将方法400的步骤归因于服务器110的地图模块115。然而,一些或全部步骤可以由诸如客户端设备170的其他实体执行。此外,一些实施例可以并行地执行步骤,以不同顺序执行步骤,或执行不同步骤。还注意到在一个示例性实施例中,可以将步骤和/或模块形成为指令,例如指令224,可以由参考图2所述的处理器202执行。

初始地,地图模块115收集410用于向用户渲染地图的用户数据。如上参考图3所述,用户数据可以描述由用户输入的目的地、由客户端设备170配备的传感器检测的用户的当前位置、和/或由用户选择的喜欢的位置。

在步骤420,地图模块115生成地图数据以用于渲染多个地图堆叠,例如,交互式地图在折叠的动态地图的集合的顶部。将参考图5,更详细地描述步骤420。

在步骤430,地图模块115更新该地图数据来用对应于动态地图的交互式地图代替一个折叠的动态地图。将参考图6-7,详细地描述用于该步骤430的两个实施例。在步骤440,地图模块115将用于渲染地图堆叠的地图数据发送到例如用户的客户端设备170。

在步骤450,地图模块115例如响应用户喜欢或不喜欢堆叠中的一个或多个地图,而更新该地图数据以用于渲染更新的地图堆叠。例如,响应于用户将新位置选择为喜欢的位置,地图模块115更新该地图数据以将关于新位置的新动态地图添加到地图堆叠中。此外,响应于用户取消选择喜欢的位置,地图模块115更新该地图数据以用于从地图堆叠中移除关于取消选择的喜欢的位置的动态地图。

图5是根据一个实施例的图示出详细地描述方法400的步骤420的示例性方法500的流程图,步骤420用于生成渲染地图堆叠的地图数据,其中,交互式地图在折叠的动态地图的集合的顶部。在一个实施例中,图5将方法500的步骤归因于服务器110或客户端设备170的地图模块115中的子模块的部件。然而,可以由其他实体执行一些或所有步骤。此外,一些实施例可以并行地执行步骤、以不同顺序执行步骤或执行不同步骤。还注意到,在一个示例性实施例中,可以将步骤和/或模块形成为例如指令224的指令,其可以由如上参考图2所述的处理器202执行。

初始地,地图模块115基于用户的当前位置,确定510用于渲染交互式地图的地图数据。例如,交互式地图包括能由用户交互的实时数据。地图模块115可以确定该地图数据以显示关于用户的当前位置的交互式地图。该交互式地图还可以包括其他信息。

在步骤520,地图模块115基于用户的选择,确定用于渲染折叠的动态地图的集合的地图数据。例如,用户已经选择喜欢的位置。地图模块115确定用于描述被选的喜欢的位置的动态地图的集合的地图数据。动态地图的集合可以显示为折叠在客户端设备170的屏幕上的用户界面的边缘处。在一个实施例中,每一动态地图还可以包括从用户的当前位置到由动态地图描述的喜欢的位置的估计时间和距离。

在步骤530,地图模块115检测用户的当前位置的更新。例如,地图模块115从客户端设备170配备的传感器,接收描述用户的当前地理位置的传感器数据并且检测自上次感测时间以来当前位置是否改变。

在步骤540,地图模块115响应于检测到用户的当前位置的更新,而更新用于渲染交互式地图的地图数据。例如,地图模块115还可以更新用于显示描述用户的经更新的当前位置的另一交互式地图的地图数据。

在550,地图模块115响应于检测到用户的当前位置的更新,而更新用于渲染折叠的动态地图中的每个动态地图的地图数据。例如,地图模块115可以更新从用户的经更新的当前位置到由动态地图中的每一动态地图描述的喜欢的位置的估计时间和距离。

现在参考图6和7,根据一个实施例图示出描述用于更新地图数据以利用交互式地图代替折叠的动态地图中的一个动态地图的方法400的步骤430的两个示例性方法600和700的流程图。图6和7将方法600和700的步骤归因于服务器110或客户端设备170的地图模块115中的子模块的部件。然而,可以由其他实体执行一些或所有步骤。此外,一些实施例可以并行地执行步骤、以不同顺序执行步骤或执行不同步骤。还注意到,在一个示例性实施例中,可以将步骤和/或模块形成为例如指令224的指令,其可以由如上参考图2所述的处理器202执行。

参考图6,地图模块115检测610用户滚动折叠的动态地图。例如,地图模块115检测到(或从客户端设备170接收到对应于动作的信息)用户滚动折叠的动态地图中的一个动态地图(例如,关于位置“X”的动态地图),使得折叠的动态地图(例如关于位置“X”的动态地图)展开并且占用地图堆叠的顶部位置。地图模块115响应于该检测,确定620用于渲染与该折叠的动态地图相对应的交互式地图的地图数据。例如,地图模块115确定用于渲染与关于位置“X”的动态地图相对应的关于位置“X”的交互式地图的地图数据。在步骤630,地图模块115将该地图数据发送到客户端,用于利用相应的交互式地图代替折叠的动态地图。例如,关于位置“X”的对应的交互式地图被显示在地图堆叠的顶部位置处并且关于位置“X”的动态地图逐渐消失。

现在参考图7,详细地图示出更新地图数据以利用交互式地图代替折叠的动态地图中的一个动态地图的步骤430的另一示例性方法700。步骤430通过检测710当前交互式地图和一个折叠的动态地图的GPS坐标之间的匹配来初始化地图模块115。例如,一个折叠的动态地图是关于位置“A”。当用户到达位置“A”时,当前交互式地图可以在GPS坐标方面与折叠的动态地图匹配。

在步骤720,地图模块115响应于该检测,确定用于渲染与折叠的动态地图相对应的交互式地图的地图数据。在步骤730,地图模块340将该地图数据发送到客户端,以用于由对应的交互式地图代替折叠的动态地图。

示例用户界面

现在参考图8-11,图示出用于显示地图堆叠的不同方面的用户界面的示例图形表示。例如,由客户端设备170的视觉化模块177生成图形用户界面(GUI)。注意到用户界面的生成是通过在诸如存储单元216或主存储器204的存储设备中存储并且可由诸如处理器202的客户端设备170的处理器执行的程序代码。指令可以由服务器110或客户端设备170生成,取决于本文所述的、对应于特定功能(以及对应指令)的特定模块在何处执行。在一些实施例中,用户可以通过“轻击”GUI内的UI元素使用触摸屏输入来与GUI交互。在其他实施例中,用户可以使用诸如经由指示设备(例如计算机鼠标)的其他方法来与GUI交互。

图8图示出示出地图堆叠的GUI 800。在所图示的实施例中,GUI800包括具有实时数据的交互式地图810。在图8-11中,示例性用户与用户界面的交互也图示为830。例如,交互式地图810是关于客户端设备170的当前位置。交互式地图810显示在地图堆叠的最顶部并且能由客户端设备170的用户交互。例如,地图模块115确定地图数据并且将该地图信息传送到客户端设备170,用于在地图堆叠的最顶部显示交互式地图810。

GUI 810还包括折叠的动态地图的集合820(也由示例性GUI 800中的标签“Work”、“Fedex”和“Safeway”表示)。折叠的动态地图的集合820中的每一个可以是描述用户选择的喜欢的位置的屏幕截图(例如由地图模块115确定)。折叠的动态地图的集合820中的每一个还可以包括从用户的当前位置到通过动态地图描述的预定位置的估计时间和距离。折叠的动态地图的集合820显示在GUI 800的边缘(例如底部边缘)处并且能由用户滚动。

图9图示了示出动态地图转变到与该动态地图相对应的交互式地图的GUI 900。GUI 900包括初始折叠在GUI 900的边缘处的动态地图910。如图9所图示,用户滚动(相对于显示的地图,由用户交互920所示)动态地图910,使得动态地图910展开并且能占用GUI 900中的地图堆叠的顶部位置。在一个实施例中,响应于动态地图910占用地图堆叠的顶部位置,地图模块115更新地图数据以用于由与该动态地图910相对应的交互式地图取代动态地图910(例如屏幕截图)。新的交互式地图能显示在堆叠的顶部并且能由用户交互。

图10图示出以全屏视图示出交互式地图的GUI 1000。当用户与非全屏视图的交互式地图执行特定交互时,在设备上激活全屏视图。例如,用户可以使用触摸屏界面双击交互式地图。GUI 1000包括转换按钮1010,转换按钮1010能由用户轻击来改变回示出地图堆叠的堆叠视图,诸如图GUI 800和900中所示的堆叠视图。例如,响应于用户轻击转换按钮1010,地图模块115更新地图数据以在地图的不同视图之间转变。GUI 1000包括具有自动输入的被选位置的地址框1005。被选位置是由交互式地图描述的位置。GUI 1000还将示出被选位置的指示符1008包括在交互式地图中。

此外,GUI 1000包括“星标”按钮1020,“星标”按钮1020能由用户轻击来选择或取消选择由交互式地图描述为喜欢的位置的位置。如图10所图示,GUI 1000还包括“从这儿”按钮1030和“到这儿”按钮1040,其能由用户轻击来分别请求关于从被选位置到用户的当前位置的行程和从当前位置到被选位置的行程的方向或路线信息。例如,响应于用户轻击“从这儿”按钮1030,地图模块115更新地图数据,以在交互式地图上显示从被选位置到用户的当前位置的路线。

图11图示出分别示出在两个不同视图下添加或移除喜欢的位置的GUI 1100和1150。GUI 1100示出移除堆叠视图中的喜欢的位置的方式。能由用户滑动1020每一动态地图来示出一个或多个交互式按钮,包括与GUI 1000中相同的“星标”按钮1110、“到这儿”按钮和“从这儿”按钮。能由用户轻击“星标”按钮1110来从喜欢的位置移除由动态地图表示的位置。因此,响应于用户轻击“星标”按钮1110来取消选择由动态地图描述的位置,地图模块115更新地图数据,以从显示中移除关于取消选择的位置的动态地图。

GUI 1150示出在全屏视图中添加或移除喜欢的位置的方式。类似于GUI 1000,GUI 1150包括“星标”按钮。“星标”按钮具有两个状态1160和1170,分别表示由GUI 1150描述的位置被选择或被取消选择为喜欢的位置。因此,用户能轻击“星标”按钮来改变按钮的状态以选择和取消选择该位置为喜欢的位置。响应于用户的选择,地图模块115能更新地图数据,以添加描述该位置的对应地图或从地图堆叠移除该对应地图。

另外的配置考虑

因此,如上所述,用于在用户界面上渲染地图堆叠的系统和方法提供比传统的模型更多的优点。例如,系统能为用户提供地图的快速快捷方式,所述地图的快速快捷方式指向用户能够立即与之交互的用户的喜欢的位置。此外,当用户在客户端设备上进行例如轻击或滑动的单个动作时,系统能向用户建议到特定位置的最佳可能路线。此后,对应于其他感兴趣的位置的其他地图能堆叠在交互式地图下方并且当使其处于堆叠的顶部时,其能是新的交互式地图。

贯穿本说明书,多个实例可以实现描述为单个实例的部件、操作或结构。虽然一个或多个方法的单独操作被图示和描述为分立操作,但是单独操作中的一个或多个操作可以并发地执行,并且不要求操作以图示的顺序执行。呈现为示例配置中的分立部件的结构和功能可以被实现为组合的结构或部件。相似地,呈现为单个部件的结构和功能可以实现为分立部件。这些和其他变化、修改、添加和改进落在本文的主题的范围内。

某些实施例在本文中描述为包括逻辑或若干部件、模块或机制,例如如图1-3中所示和所述以及进一步参考图4-11所述。模块可以构成软件模块(例如,体现在机器可读介质上或体现在传输信号中的代码)或硬件模块。硬件模块是能够执行某些操作的有形单元,并且可以以某个方式来配置或布置。在示例实施例中,一个或多个计算机系统(例如,独立的客户端或服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如,处理器或者处理器组,例如处理器202)可以通过软件(例如,应用或应用部分)被配置为操作以执行如本文中描述的某些操作的硬件模块。

在各个实施例中,可以机械地或电子地实现硬件模块。例如,硬件模块可以包括专用电路或逻辑,其被永久配置(例如,作为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))以执行某些操作。硬件模块还可以包括可编程逻辑或电路(例如,如通用处理器或其它可编程处理器内所包含的),其由软件(或程序代码)暂时配置以执行某些操作。应当理解,将硬件模块实现在专用和永久配置的电路中或者在暂时配置(例如,通过软件或程序代码配置)的电路中的决定可以受成本和时间考虑的驱动。

本文中描述的示例方法的各种操作可以至少部分地由一个或多个处理器,例如处理器202来执行,该一个或多个处理器暂时配置(例如,通过软件)或永久配置为执行相关操作。无论暂时配置还是永久配置,这样的处理器可以构成其操作为执行一个或多个操作或功能的处理器实现的模块。在一些示例实施例中,本文中涉及的模块可以包括处理器实现的模块。

一个或多个处理器还可以操作为支持“云计算”环境中或作为“软件即服务”(SaaS)的相关操作的性能。例如,操作中的至少一些操作可以由计算机组(作为包括处理器202的机器的示例)来执行,这些操作经由网络(例如,互联网)并且经由一个或多个适当接口(例如,应用编程接口(API))可访问。

某些操作的执行可以分布在一个或多个处理器之间,例如处理器202之间,所述处理器不仅驻留在单个机器内,而且跨若干机器部署。在一些示例实施例中,一个或多个处理器或处理器实现的模块可以位于单个地理位置(例如,在家庭环境、办公室环境、或者服务器库内)。在其它示例实施例中,一个或多个处理器或处理器实现的模块可以跨若干地理位置分布。

本说明书的一些部分以针对数据的操作的算法或符号表示来呈现,数据在机器存储器(例如,计算机存储器)内存储作为比特或二进制数字信号。这些算法或符号表示是数据处理领域的普通技术人员用于向本领域其他技术人员传达他们的工作实质的技术的示例。如本文中使用的,“算法”是操作的自洽序列或者导致期望结果的相似处理。在这一场境中,算法和操作涉及对物理量的物理操纵。通常,但非必定,这样的量可以采取电信号、磁信号或光学信号的形式,它们能够被存储、访问、传输、组合、比较、或以其他方式由机器操纵。主要出于习惯用语的原因,有时方便的是使用诸如“数据”、“内容”、“比特”、“值”、“元素”、“符号”、“字符”、“项”、“数”、“数字”等之类的词语来提及这样的信号。然而,这些词语仅仅是方便的标记,并且要与适当的物理量相关联。

除非另有具体说明,本文中使用诸如“处理”、“计算”、“确定”、“呈现”、“显示”等之类的词语的讨论可以指的是操纵或变换数据的机器(例如,计算机)的动作或处理,数据被表示为一个或多个存储器(例如,易失性存储器、非易失性存储器、或其组合)、寄存器、或者接收、存储、传输或显示信息的其它机器部件内的物理(例如,电子、磁、或光学的)量。

如本文中使用的,对“一个实施例”或“实施例”的任何提及意指结合实施例描述的特定元件、特征、结构、或特性被包括在至少一个实施例中。短语“在一个实施例中”在说明书中各个地方的出现不一定全部指的是同一实施例。

一些实施例可以使用表达“耦合”和“连接”连同它们的衍生词进行描述。例如,一些实施例可以使用术语“耦合”来描述,以指示两个或更多元件处于直接物理或电接触。然而,术语“耦合”还可以意指两个或更多元件彼此不直接接触,但仍彼此协作或交互。实施例不限于这一场境。

如本文中使用的,术语“包括”、“包含”、“具有”或其任何其它变体旨在涵盖非排他性包括。例如,包括元件列表的处理、方法、物品或装置不一定仅限于那些元件,而是可以包括未明确列出或这样的处理、方法、物品或装置固有的其它元件。进一步地,除非明确有相反的说明,“或”指的是包含性或,而不是排他性或。例如,以下项中的任何一项满足条件A或B:A为真(或存在)且B为假(或不存在)、A为假(或不存在)且B为真(或存在)、以及A和B两者都为真(或存在)。

此外,“一”或“一个”的使用被采用为描述本文中的实施例的元件和部件。这仅仅是为了方便并给出本发明的一般含义而进行的。这一描述应该被解读为包括一个或至少一个,并且单数还包括复数,除非明显意指其它方面。

在阅读本公开后,本领域的技术人员将认识到用于提供和/或在用户界面中渲染地图堆叠的系统和过程的附加替选结构和功能设计。从而,尽管特定实施例和应用已被图示和描述,但是应当理解,所公开的实施例不限于本文中公开的精确构造和部件。可以在本文中公开的方法和装置的布置、操作和细节方面做出各种修改、改变和变化(其对于本领域技术人员来说将是容易理解的),而不脱离所附权利要求书中限定的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1