专利名称:地图元数据的3d分层的制作方法
技术领域:
本发明涉及地图元数据的3D分层。
背景技术:
计算机辅助地图导航工具已实现了广泛的接受度。用户可用在各个网站处可用的地图导航工具来寻找地址或方向。一些软件程序允许用户在地图上导航,朝地面方向放大或远离地面缩小,或在不同地理位置之间移动。在汽车中,GPS设备多年来已提供基本道路导航。最近,用于蜂窝电话和其他移动计算设备的地图导航软件已允许用户放大、缩小地图并在其上四处移动,该地图示出关于地理特征、城镇、城市、县和州位置、道路和建筑物的细节。地图导航工具通常将关于地图特征的元数据呈现为“揉入到”地图的平面二维 (“2D”)视图中。例如,在自顶向下的地图视图中,文本标记被写在适当位置的道路细节或图像细节上,并且文本标记被有效地呈现在与道路或图像细节相同的地平面处。由于需要在查看地图的任何给定层面显示的信息的密度,这可导致过度的视觉复杂性。为了减小细节的密度,许多地图导航工具隐藏或展现取决于地图的视图层面的元数据。例如,如果视图接近诸如建筑物之类的小规模特征,则展现关于该特征的文本标记, 但是如果视图远离该小规模特征则隐藏关于该特征的文本标记。另一方面,关于诸如国家或州之类的大规模特征的文本标记在高层面视图处示出,但在更接近于地平面的视图处隐藏。然而,在任何给定视图层面处,所展现的文本标记仍然被揉入到地图的平面2D视图中。 并且,当一个2D视图被示出不同元数据的下一个2D视图替代时,在不同视图层面之间的转换可能是突然的。结果,观察者在转换期间可丢失上下文并且变得分不清方向。
发明内容
描述了用于渲染地图的视图的技术和工具,在视图中地图元数据元素在观察者导航通过的三维(“3D”)空间中分层。地图元数据元素在3D空间中的分层便于地图导航中放大、缩小以及滚动操作的平滑运动效果。在许多情况下,这些技术和工具有助于观察者维护贯穿不同视图层面之间的转换的上下文,这改善了使用地图导航工具的整体体验。根据此处描述的技术和工具的一方面,计算设备确定与3D空间中的视图海拔高度相关联的观察者位置。计算设备还确定一个或多个地图元数据元素,诸如指示标题、距离或关于地图上的特征的其他细节的文本标记。地图元数据元素具有3D空间中的元数据海拔高度并且与地图的特征(例如,建筑物、街道、邻居、城市、或州)相关联。计算设备至少部分地基于观察者位置和地图元数据元素在3D空间中的不同海拔高度处的分层来渲染地图视图的显示。渲染地图视图至少部分地取决于(观察者位置的)视图海拔高度如何与3D空间中的地图元数据元素的不同元数据海拔高度相关。例如,计算设备在针对标记指示的元数据海拔高度处将文本标记分别放置在3D空间中与该标记相关联的特征之上。计算设备从地图表面层的点和从观察者位置可见的所放置标记的点创建地图视图(例如,不被另一个特征或标记遮挡、在与观察者位置的阈值距离内、用一个或多个像素来渲染)。在一些情况下,所放置的标记与3D空间中的表面层平行并在观察者位置的海拔高度以下。在其他情况下,一些所放置的标记与3D空间中的表面层垂直,而其他标记与3D空间中的表面层平行并在观察者位置之上。对于在观察者位置改变时的导航,计算设备重复渲染针对可具有3D空间中的不同视图海拔高度和/或不同地理位置(例如,按照表面层处的位置)的观察者位置的地图视图。对于与3D空间中的不同元数据海拔高度相关联的元数据元素,这些元素可表现为在不同视图之间移位不同距离,以便在考虑3D空间中的观察者位置之间的地理位置改变时提供视差效果。当在地图的自顶向下视图和鸟瞰视图之间转换时,渲染可包括将一些元数据元素放置成与3D空间中的表面层平行以便渲染自顶向下视图,而将元素放置成与3D空间中的表面层垂直以便渲染鸟瞰视图。与此同时,当渲染鸟瞰视图时,可将其他元数据元素放置成与表面层平行并在观察者之上。在地图的多个鸟瞰视图之间,元数据元素可表现为在具有地图中特征的上下文中旋转和缩放以考虑3D空间中的观察者位置之间的改变。在转换到地图上的特定特征(例如,建筑物、地标)的照片视图之后,渲染可呈现关于该特定特征的附加元数据文本细节。为了提供地图视图之间的平滑转换并且由此有助于观察者维护上下文,计算设备可在3D空间中的初始观察者位置和目的地观察者位置之间重复地确定观察者位置,并且在新观察者位置处渲染地图的新视图。具体而言,这可便于导航中放大、缩小和滚动操作的平滑运动效果。例如,当视图海拔高度在3D空间中降低时为了在多个自顶向下视图之间转换时提供平滑的放大效果,元数据文本标记随着视图海拔高度接近目标海拔高度或距离表现为变得更大且更浓,但随着视图海拔高度继续下降到目标海拔高度或距离以下表现为变得更大且更淡,从而产生标记逐步淡化或消失的效果。作为另一个示例,为了提供地图的自顶向下和鸟瞰视图之间的平滑转换,标记随着视图海拔高度向标记的元数据海拔高度方向降低表现为旋转远离观察者,随后表现为在标记的元数据海拔高度处翻转。根据此处描述的技术和工具的另一方面,客户机计算设备和服务器计算设备交换信息以便于地图导航。客户机计算设备发送对地图的地图信息的请求。在一些情景中,该请求指示一个或多个搜索词。在其他情景中,该请求简单地指示与3D空间中的视图海拔高度相关联的观察者位置。作为响应,客户机计算设备接收地图元数据元素。各个地图元数据元素与地图的各个特征相关联。当客户机计算设备发送了搜索词时,客户机计算设备还可接收与3D空间中的视图海拔高度相关联的观察者位置。客户机计算设备随后渲染地图视图,例如如上所述。相反地,服务器计算设备从客户机计算设备接收对地图信息的请求,其中例如该请求指示一个或多个搜索词或与3D空间中的视图海拔高度相关联的观察者位置。服务器计算设备确定具有3D空间中的海拔高度的一个或多个地图元数据元素,地图元数据元素可用于至少部分地取决于观察者位置的海拔高度如何与如3D空间中分层的地图元数据元素的不同元数据海拔高度相关来渲染地图视图。当该请求指示一个或多个搜索词时,服务器计算设备至少部分地基于一个或多个搜索词的搜索结果来确定地图元数据元素,并且还可基于一个或多个搜索词来确定观察者位置。服务器计算设备将一个或多个地图元数据元素(以及在一些情况下,观察者位置)发送给客户机计算设备。为了便于在观察者位置改变时导航,服务器计算设备可从客户机计算设备接收对地图信息的第二请求,其中例如该第二请求指示一个或多个其他搜索词或3D空间中的第二观察者位置。服务器计算设备可随后确定具有3D空间中不同海拔高度的附加地图元数据元素,并且将附加地图元数据元素(在一些情况下,与第二观察者位置一起)发送给客户机计算设备。通常,第一批地图元数据元素和附加地图元数据元素足以供客户机计算设备渲染第一观察者位置(作为初始位置)和第二观察者位置(作为目的地位置)之间的地图新视图,并且由此提供两个观察者位置之间的平滑转换。从参考附图进行的以下详细描述中,将更清楚本发明的前述和其他目标、特征和优点。
图1是示出3D空间中的地图元数据文本标记的不同元数据海拔高度的示图。图2是示出用于渲染取决于观察者位置和3D空间中的地图元数据元素的不同海拔高度的地图视图的通用技术的流程图。图3是示出地图导航工具的示例软件体系结构的框图,该地图导航工具渲染取决于观察者位置和3D空间中的地图元数据元素的不同海拔高度的地图视图。图4a_4d是示出随着视图海拔高度降低在导航通过3D空间中的不同元数据海拔高度处的地图元数据文本标记期间的示例地图视图的屏幕截图。图5a_5d是示出随着视图海拔高度增加在导航通过3D空间中的不同元数据海拔高度处的地图元数据文本标记期间的示例地图视图的屏幕截图。图6a_6d是示出随着地理位置改变在导航通过3D空间中的不同元数据海拔高度处的地图元数据文本标记的示例地图视图的屏幕截图。图7a_7g是随着视图海拔高度和地理位置改变在3D空间中的不同元数据海拔高度处的地图元数据文本标记中导航期间的示例地图视图的屏幕截图。图8是示出地图中特征的示例照片视图的屏幕截图。图9a和9b是示出用于分别请求和递送具有3D空间中的不同海拔高度的地图元数据元素的通用技术的流程图。图10是示出可结合其实现此处描述的技术和工具的示例移动计算设备的框图。图11是示出可结合其实现此处描述的技术和工具的示例网络环境的示图。
具体实施例方式描述了用于渲染其中地图元数据元素与地图基层分离开的地图的视图的技术和工具。地图元数据元素可在3D空间中在地图的基层之上分层。例如,地图元数据元素与诸如地图中的建筑物、道路、城镇、城市、州之类的特征相关联,并且地图元数据元素被放置在 3D空间中取决于特征规模的海拔高度(针对建筑物和道路的较低海拔高度、针对城市的较高海拔高度等)处地图元数据元素与其相关联的特征之上。在各种情景中,地图元数据元素的3D分层改善了使用地图导航工具的整体体验。
使地图元数据元素与地图的基层分离开以及使用地图上的地图元数据元素的3D 分层简化了针对给定任务决定要展现或隐藏哪些地图元数据元素的过程。例如,取决于搜索词,选择地图元数据元素的不同子集以便渲染。此外,海拔高度值在决定要展现或隐藏哪些元数据元素时提供了元数据元素的自然分层结构。地图上的地图元数据元素的3D分层还便于在观察者导航通过3D空间时在地图上进行放大、缩小以及滚动操作的平滑运动效果。为了帮助用户维护贯穿不同视图层面之间的转换的上下文,放置在3D中的地图元数据元素可表现为在上下文中被缩放和/或旋转至用户的地图视图。为了提供用户在3D空间中的地图元数据元素上移动时的视差效果,取决于3D空间中的海拔高度,地图元数据元素可以在不同视图之间移位不同量。放置在3D空间中的地图元数据的这些和其他图形变换在导航通过地图期间添加用户的视觉深度和上下文。具有3D空间中的不同海拔高度的示例地图元数据元素在由地图导航工具呈现的常规地图视图中,呈现在地图上的元数据的密度可创建视觉复杂性。在不同视图中选择性地隐藏和展现地图元数据可有助于限制所呈现元数据的密度,但是不同视图之间的转换是有问题的。此处描述的技术和工具根据3D空间中的海拔高度来对地图元数据元素分层。该3D分层提供了地图元数据的自然分层结构以便渲染。它还提供了使观察者位置与在渲染地图视图时要隐藏或展现哪些地图元数据元素的选择相关的直接方式。图1示出了具有3D空间中的不同海拔高度的地图元数据(100)的示例。地图元数据(100)是出现在具有道路细节和其他地理特征的表面层之上的文本标记。不同元数据文本标记具有与3D空间中的元数据文本标记相关联的不同海拔高度。在图1中,地图元数据出现在六个不同海拔高度处50英里、20英里、36000英尺、18000英尺、6000英尺和2000英尺。一般而言,地图元数据元素与取决于由地图元数据注释的特征的规模的海拔高度相关联。诸如国家和大州之类的大规模特征与较高的海拔高度相关联。在图1中,最高的海拔高度地图元数据是与50英里的海拔高度相关联的Washington (华盛顿州)的文本标记。诸如建筑物和小街道之类的小规模特征与较低的海拔高度相关联。在图1中,最低的海拔高度地图元数据是与2000英尺的海拔高度相关联的Occidental (西方)的文本标记。Jackson St.(杰克逊街)和King St.(国王街)的地图元数据文本标记与6000英尺的海拔高度相关联,并且Pioneer Square (先锋广场)的地图元数据文本标记与18000英尺的海拔高度相关联。对于逐步变大的规模特征,hternational District (国际区)和 Seattle (西雅图)分别与36000英尺和20英里的海拔高度相关联。通常,元数据元素的元数据海拔高度随着由元数据元素注释的特征的地理规模而增加。为了简明起见,图1只示出了在每一个所指示的海拔高度处的地图元数据(100) 的一个或两个示例。地图元数据的真实世界示例通常将包括地图特征的多得多的标记。例如,地图中的许多其他街道的标记可与图1中的2000英尺和6000英尺的海拔高度相关联。 另一方面,在一些情景中,渲染在地图视图中的地图元数据故意限于聚焦在观察者最可能感兴趣的元数据上。这可以是例如当响应于搜索来选择或为了特定任务起见以其他方式选择地图元数据时的情况。
如图1所示,地图元数据(100)可以是州、城市、邻居和街道的地点名称的文本标记。地图元数据也可以是建筑物、建筑物内的商店、地标或地图中的其他特征的文本标记。 除了名称之外,地图元数据可以是特征之间的距离。或者,地图元数据可提供诸如联系信息 (例如,电话号码、网页、地址)、评论、评级、其他注解、菜单、照片、广告促销、或游戏(例如, 地理高速缓存、地理标签)之类的给定特征的附加细节。链路可被提供给网页,以启动Web 浏览器并导航到关于该特征的信息。就便于存储和传送的数据组织而言,地图元数据的各个元素可具有海拔高度的属性或特性。每个地图元数据元素分配一个海拔高度便于不同特征的不同海拔高度的细粒度指定。替换地,不同地图元数据元素按照层组织,以使在2000英尺的所有地图元数据元素组织在一起、在6000英尺处的所有地图元数据元素组织在一起等。按照海拔高度层组织地图元数据可便于影响整个层的元数据的操作。不管地图元数据如何组织以便存储和传送, 地图元数据元素的3D分层可以是地图视图中的元数据元素的渲染过程的一部分。地图元数据的不同海拔高度的数量和用于不同海拔高度的值取决于实现。为了示出地图元数据的不同海拔高度的概念,图1示出了分离开很远的六个不同海拔高度,但在 3D空间中可存在更多或更少的不同海拔高度,并且海拔高度可具有不同于图1所示的值。 在实际使用情景中,多个层的地图元数据通常将具有更靠近在一起的海拔高度,特别是在当并发渲染来自多个层的元素以便显示的情形中。地图元数据元素的海拔高度可以是静态的,或者为了呈现起见可从最初分配的值动态地调节海拔高度。例如,当用户在3D空间中导航时,可使地图元数据元素的海拔高度值更靠近在一起以使视差效果是更为渐进的。(并发渲染具有宽间隔的海拔高度的元数据元素可导致在观察者改变地理位置时太突变的视觉效果。)地图元数据的不同海拔高度的数量可能影响用户体验的质量。如果使用太少的不同海拔高度,则当同时展现或隐藏许多细节时转换可变得突变,并且给定地图视图可变得挤满突然出现的元数据细节。另一方面,当计算设备在不同视图之间在逐个元素的基础上确定地图元数据的适当缩放、采样调节等时,具有太多的不同海拔高度可导致过度的计算复杂性。此外,如果在渲染决定中以明显不同的方式处理具有相近海拔高度值的元素,结果对于用户来说可能是出乎意外的或不知所措的。在图1中,按照英尺和英里给出地图元数据(100)的海拔高度。用于表示海拔高度值的单位取决于实现;可使用公制单位或任何其他测量系统中的单位。海拔高度值可以是地图的表面层以上或海平面以上的真实世界海拔高度。替换地,海拔高度值更抽象地是沿3D空间中的第三维度的值,其中观察者位置具有指示沿第三维度的放置的值。示例渲染具有3D空间中的不同海拔高度的地图元数据元素图2示出了用于渲染取决于观察者位置和3D空间中的地图元数据元素的不同海拔高度的地图视图的通用技术000)。诸如移动计算设备或其他客户机计算设备之类的工具可执行该技术(200)。最初,工具确定(210)与3D空间中的海拔高度相关联的观察者位置(此处,视图海拔高度、或观察者位置的海拔高度)。例如,观察者位置最初是默认的观察者位置、在前一导航会话中到达的最后观察者位置、先前保存的观察者位置、或指示为搜索结果的观察者位置。在后续迭代中,观察者位置可以是3D空间中的目的地观察者位置或3D空间中的前一观察者位置和目的地观察者位置之间的中间观察者位置。工具渲染(220)地图视图以便显示。工具基于观察者位置的视图海拔高度和3D空间中的地图元数据元素可能在针对不同元数据元素而不同的元数据海拔高度(即,元数据元素的海拔高度)处的分层来渲染(220)视图。例如,地图元数据元素是在3D空间中的不同海拔高度处的文本标记,并且所渲染的视图取决于观察者位置的视图海拔高度如何与3D 空间中的地图元数据文本标记的不同元数据海拔高度相关。工具可从客户机计算设备和/ 或从服务器计算设备(例如,使用参考图9a和9b描述的技术)获得地图元数据元素。作为渲染Q20)的一部分执行的准确操作取决于实现。在一些实现中,考虑观察者位置的海拔高度、地理位置和角度,工具确定视野(例如,源于观看位置并向表面层延伸的容量)并标识在视野中的地图特征(或者,对于遥远的特征,具有该特征之上的在视野中的空间)。随后,对于那些特征,工具选择地图元数据元素。这可包括在视野中可能可见 (例如,在距观察者位置的阈值距离内)的所标识特征的全部地图元数据元素。或者,它可包括与导航情景(例如,搜索)相关的那些可能可见的地图元数据元素的子集。工具将3D 空间中的所选地图元数据元素放置在它们各自的海拔高度处由这些元素标记的特征之上, 并且取决于元数据海拔高度和/或距观察者位置的距离来分配元素的分辨率。例如,所分配的分辨率指示元素的大小以及元素有多淡或多浓。例如,为了渲染地图的自顶向下视图, 工具将3D空间中的元素放置成与地图的表面层平行。或者,为了渲染地图的鸟瞰视图,工具将3D空间中的一些元素放置成垂直于表面层、在表面层处或在其附近。(为了渲染鸟瞰视图,可将其他元素放置成与表面层平行并在观察者位置之上,以提供向上看天空中的元素的效果。)最后,工具从表面层的点和从观察者位置可见的(例如,不被另一个特征或标记遮挡、在距观察者位置的阈值距离内、用一个或多个像素来渲染)所放置标记的点创建地图视图。例如,工具从表面层和空的大气空间开始,随后合成从表面层向上移动到观察者位置或从观察者位置向外移动的元数据元素。该阶段在渲染鸟瞰视图时提供元素和特征的旋转、缩放、朝透视点方向收缩等的效果。替换地,工具使用不同次序的动作、使用附加动作、或使用不同动作来实现渲染020)。尽管工具主要以取决于元数据海拔高度的方式调节地图元数据元素的渲染 O20),但是工具还可在渲染之前或在渲染期间调节元数据海拔高度本身。例如,工具调节地图元数据元素的元数据海拔高度以使海拔高度更靠近在一起。如果所渲染的元数据元素在海拔高度上相隔太远,则观察者的地理位置的小改变可导致一个地图元数据元素的极为明显的位移,而导致另一个地图元数据元素的不太明显的位移。为了避免这些突变的视差效果,可使元素的元数据海拔高度更靠近在一起,同时保持元素之间的相对次序和相对距离。当观察者导航通过3D空间时,这导致元数据元素的规模和明显位置的更渐进改变。一般而言,为进行渲染,工具执行对在3D空间中分层的地图元数据元素的各种操作,包括旋转、缩放、采样值的调节、以及对地图元数据细节的选择性抑制或添加。图^-4d、 5a-5d,6a-6d,7a-7d和8示出了对地图元数据文本标记的这些和其他操作的示例。对导航期间如何以及何时呈现地图元数据元素的调节有助于观察者在导航期间保持方向。图 4a-4d,5a-5d和6a_6d示出了在导航通过在3D空间中分层的地图元数据文本标记期间所渲染的自顶向下视图的示例,其中元数据海拔高度是要渲染哪些元数据以及如何渲染这些细节的主指示符。图7a_7g示出了自顶向下视图和鸟瞰视图的示例。在自顶向下视图和从自顶向下到鸟瞰角度的转换中,元数据海拔高度仍然被认为是确定地图元数据文本标记的细节和规模水平的参数。在鸟瞰视图中,工具还考虑距观察者的距离,离开观察者向地平线延伸,以确定地图元数据文本标记的细节和规模水平。返回到图2,工具确定Q30)它是否已到达目的地观察者位置以便渲染地图视图。 目的地观察者位置可以是初始(并且仅仅)观察者位置,或者它可以是不同观察者位置。如果工具还没有到达目的地观察者位置,则工具重复确定(210)和渲染(220)另一个观察者位置的动作。就在2D表面上的地理位置和/或3D空间中的视图海拔高度而言,其他观察者位置可不同于前一观察者位置。以此方式,工具可连续地重复确定(210)和渲染(220) 第一、第二、第三等观察者位置的动作,或者工具可保持当前地图视图。工具可对指示观察者位置的改变的用户输入作出反应。例如,用户输入是来自触摸屏的手势输入或来自键盘的键击输入。在此情况中,工具确定O10)由输入指示的新观察者位置(或用以朝由输入指示的目的地方向转换的新观察者位置),并渲染(220)那个新观察者位置的视图。具体而言,为了当在海拔高度之间缩放和/或在地理位置上从初始观察者位置滚动到目的地观察者位置时提供平滑运动效果,工具可对初始和目的地观察者位置之间的观察者位置重复确定(210)和渲染(220)动作。为了平滑运动效果所渲染的地图视图的数量取决于实现。例如,每秒渲染四个地图视图。在朝给定目的地观察者位置方向的该转换期间,如果中断(例如,通过指示新目的地观察者位置的用户输入),则工具可分配新目的地观察者位置。用于渲染地图元数据的示例软件体系结构图3示出了地图导航工具的示例软件体系结构(300),该地图导航工具渲染取决于观察者位置和3D空间中的地图元数据的不同海拔高度的地图视图。客户机计算设备(例如,智能电话或其他移动计算设备)可执行根据体系结构(300)组织的软件以根据图2的方法(200)或另一种方法来渲染视图。体系结构(300)包括设备操作系统(350)和地图导航框架(310)。设备0S(350) 管理用户输入功能、输出功能、存储访问功能、网络通信功能、以及设备的其他功能。设备 OS(350)提供对地图导航框架(310)的这些功能的访问。用户可生成影响地图导航的用户输入。设备0S(350)包括用于识别用户手势和其他用户输入并创建可由地图导航框架(310)使用的消息的功能。地图导航框架(310)的解释引擎(314)监听来自设备0S(350)的用户输入事件消息。UI事件消息可指示平移手势、 轻弹(flicking)手势、拖动手势、或设备的触摸屏上的其他手势、触摸屏上的轻叩、键击输入、或其他用户输入(例如,声音命令、方向按钮、跟踪球输入)。解释引擎(314)将UI事件消息翻译成发送给地图导航框架(310)的定位引擎(316)的地图导航消息。定位引擎(316)考虑当前观察者位置(可能从地图设置存储(311)提供作为已保存的或最后的观察者位置),来自解释引擎(314)的指示观察位置的所需改变的任何消息, 以及具有3D空间中的不同元数据海拔高度的地图元数据。从该信息中,定位引擎(316)确定3D空间中的观察者位置。定位引擎(316)向渲染引擎(318)提供观察者位置以及观察者位置附近的地图元数据。定位引擎(316)从地图元数据存储(312)获得地图的地图元数据。地图元数据存储(312)高速缓存最近使用的地图元数据。在需要时,地图元数据存储(31 从本地文件存储或从网络资源获得附加或已更新的地图元数据。设备0S(350)仲裁对存储和网络资源的访问。地图元数据存储(31 从存储或网络资源通过设备OS(350)请求地图元数据, 该设备0S(350)处理该请求、接收回复、并将所请求的地图元数据提供给地图元数据存储 (312)。在一些情景中,对地图元数据的请求采取搜索查询的形式,并且返回响应于搜索的地图元数据。渲染引擎(318)处理观察者位置和3D空间中的地图元数据,并且渲染地图视图。 取决于使用情景,渲染引擎(318)可渲染来自本地存储的地图元数据、来自网络服务器的地图元数据、或来自本地存储的地图元数据和来自网络服务器的地图元数据的组合。渲染引擎(318)将所渲染的地图视图的显示命令提供给设备0S(350)以便在显示器上输出。示例放大和缩小导航图4a_4d示出随着视图海拔高度降低在导航通过3D空间中的不同元数据海拔高度处的地图元数据文本标记期间的示例地图视图010、420、430、440)。图如示出了华盛顿州)西部的高层面地图视图(410)。Washington的元数据文本标记在3D空间中比城市 Seattle, Bremerton和Issaquah的名称更接近于当前观察者位置。Washington的标记的大小因而更大以表示更接近于观察者(以及所注释的地理特征的更大规模)。在图4b中,当观察者朝kattle方向放大时,观察者的海拔高度已降低。在图4b 的地图视图(420)中,当观察者位置的海拔高度接近与Washington标记相关联的海拔高度时,Washington的文本标记更大但更暗淡。与图如相比,Seattle的标记在图4b的地图视图G20)中更大且更浓。当观察者继续朝kattle方向放大时,Seattle的标记的大小在图如和4d的地图视图030、440)中增大。在与标记(此处,不是3D空间中该标记被放置的海拔高度) 相关联的目标海拔高度或离标记的目标距离以下,Seattle的标记逐渐变得更淡。最后, Seattle的标记被移出地图视图,或者如果观察者位置直接经过它,则标记消失。图7a示出了当观察者的海拔高度继续降低时甚至更接近地图表面层的自顶向下视图(710)。在图 7a中,Washington和kattle的标记已放大超出视野,并且城市内的元数据细节已放大进入视图。总而言之,对于图4a_4d中所示的放大操作,元数据文本标记出现时很小,随后在视图之间逐渐变大且变浓/变清晰。在到达峰值浓度/清晰度之后,文本标记继续在视图之间增长但也淡化/消失、或漂离视野。对于缩小操作,地图元数据文本标记的渲染一般取渲染放大操作的镜像。图示出随着视图海拔高度增加在导航通过在3D空间中的不同海拔高度处的地图元数据文本标记期间的示例地图视图(510、520、530、540)。在图fe中,地图视图(510)示出了诸如 festlake (东湖)的标记之类的元数据文本标记,当观察者从表面层缩小时该元数据文本标记在视图之间缩小尺寸。当观察者在图恥_5(1中的地图视图(520、530、M0)之间进行缩小时,较高海拔高度处的标记在不同视图之间被带入视图中并以大尺寸渲染,且较宽地理区域中的较低海拔高度处的标记被带入视图中并以小尺寸渲染。当直接经过标记(例如, Washington的标记)时,该标记开始是暗淡的,但随着海拔高度增加超过标记时在不同视图之间变浓。图4a_4d和5a_5d各自示出了地图元数据文本标记在3D空间中的不同元数据海拔高度处的并发显示,其中该标记的大小和该标记的浓/淡取决于海拔高度。这些视觉提示有助于在放大和缩小操作中为观察者确定方向。具有视差效果的示例滚动导航图6a_6d示出随着地理位置改变在在导航通过3D空间中的不同元数据海拔高度处的地图元数据文本标记期间d示例地图视图(610、620、630、640)。具体而言,对于在图 6a-6d中示出的导航,观察者位置的海拔高度基本上未改变过,但地理位置向北/东北移动。展示了元数据文本标记的视差效果,这些元数据文本标记停留在3D空间中它们所标记的特征之上的位置,但表现为在图6a-6d的地图视图(610、620、630、640)之间移动。图6a的地图视图(610)示出了 Montlake (蒙特湖)的元数据文本标记,例如出现在高速公路上。当观察者向北/东北移动时,Montlake的标记的位置表现为在图6b_6d的地图视图(620、630、640)之间向南/西南移动。一些其他元数据文本标记展示更大或更小程度的视差效果。例如,Capitol Hill (国会山)的元数据文本标记被图6c的渲染地图视图(630)完全移出视图。与离观察者更远的低海拔高度相关联的文本标记在所渲染的地图视图之间移位较小距离。一般而言,当观察者的地理位置改变时,不同元数据文本标记在所渲染的自顶向下视图之间移位的距离取决于与标记相关联的相对于视图海拔高度的元数据海拔高度。接近观察者的标记在地图视图之间被移位得更多,并且离观察者更远(接近于地面)的标记在地图视图之间被移位得更少。另外,当海拔高度改变时,视差效果可出现在视图之间。在图5a_5c中,例如,由于在视图海拔高度增加时观察者位置的角度的改变,Queen Arme (安妮女王)的标记表现为漂移。当视图海拔高度改变时,接近于边缘的标记在地图视图之间被移位得更多,并且中间 (更接近于直接在观察者下方)的标记在地图视图之间被移位得更少。示例自顶向下到鸟瞰角度的改变和鸟瞰视7a_7g示出了当视图海拔高度和地理位置改变时在3D空间中导航期间的示例地图视图(710、720、730、740、750、760、770)。通过图7a_7g的整个进程示出了地图视图中从自顶向下角度到鸟瞰角度的转换。图7a示出了在低视图海拔高度处的自顶向下地图视图(710)。小街道的元数据文本标记是可见的,虽然是小尺寸。当视图海拔高度降低经过触发海拔高度时,渲染转换地图视图(720、730、740、750)直到到达最后的鸟瞰角度。触发海拔高度取决于实现。例如,自动转换到鸟瞰角度的触发海拔高度可以是1000英尺。若干改变发生在图7b-7e的转换地图视图(720、730、740、750)中。当视图海拔高度降低时,接近观察者的元数据文本标记(诸如Pioneer Square的文本标记)在不同视图之间被旋转远离观察者,如图7b和7c的转换视图(720、730)所示。 当视图海拔高度经过3D空间中的标记的海拔高度以下(参见图7d的视图(740))时,在视图之间翻转标记的文本方向以使文本标记的顶部接近于观察者而不是远离观察者。最后, 文本标记以平行于3D空间中的地图表面层的方向一致地渲染,具有文本标记在大气空间中在所渲染的地图视图中的地图表面之上浮动的效果。街道的文本标记(标记平行于3D空间中用于自顶向下视图的渲染的表面层)在图7b和7c的视图(720、730)之间消失。文本标记在放置成垂直于3D空间中的表面层之后在图7d和7e的视图(740、750)中重新物化。将街道标记放置成垂直于地图表面,并且就在地图表面之上,帮助在标记在鸟瞰视图中渲染之后查看街道名称。一般而言,街道标记还分别平行于它们所标记的街道。如图7e_7g所示,其他标记(诸如Pioneer Square的标记)可保持平行于3D空间中的表面层,甚至对于鸟瞰视图的渲染也是如此。在图7e_7g的鸟瞰视图(750、760、770)中,当观察者位置在视图海拔高度和/或地理位置方面改变时,文本标记与地图特征一起被旋转和缩放。另外,文本标记朝远离观察者的远透视点方向收缩。在观察者位置改变时的旋转和缩放导致视差效果,即使文本标记没有在3D空间中移动,它们表现为在所渲染的视图之间移动。一般而言,在图7e-7g中,垂直于表面地图的文本标记在3D空间中平行于它们所标记的特征,并且当观察者位置改变时,3D空间中的该平行方向由不同视图之间的旋转来保持。为了在鸟瞰视图中渲染,视图中的元数据文本标记的大小和要在视图中展现的元数据细节水平取决于离观察者的距离。细节水平和大小还可取决于其他因素(例如,次要街道对主要街道、与搜索结果相关或不相关的元数据元素)。示例照片视8示出了地图中的特征的示例照片视图(810)。视图(810)示出了与地图上的特定位置相关的元数据细节。特定位置的元数据在3D空间中正相邻于该位置并垂直于表面层浮动,并且相应地渲染元数据细节。在示出实际位置的照片视图(810)的区域之外,视图(810)的部分已被变灰或以其他方式修改,以突出显示实际位置。观察者可转换到照片视图,例如,通过选择地图的单个特征。或者,观察者可通过直接导航到地图上的特定特征中来转换到照片视图。用于请求-递送地图元数据的示例客户机-服务器协议图9a和9b示出了用于分别请求和递送具有3D空间中的不同元数据海拔高度的地图元数据的通用技术(900、940)。诸如移动计算设备之类的客户机计算设备可执行用于请求地图元数据的技术(900),并且诸如网络服务器之类的服务器计算设备可执行用于递送地图元数据的技术(940)。最初,客户机计算设备确定(910)对地图信息的请求。该请求可包括3D空间中的观察者位置,或者该请求可包括能产生3D空间中的观察者位置的搜索的一个或多个搜索词。客户机计算设备将该请求发送(920)给服务器计算设备。服务器计算设备接收(950)对地图的地图信息的请求(例如,指定3D空间中的观察者位置,或指定响应于其可标识3D空间中的观察者位置的搜索词)。从该请求的信息中, 服务器计算设备确定(960)具有3D空间中的不同元数据海拔高度的地图元数据元素。例如,服务器计算设备使用元数据海拔高度作为元素可见的控制参数来寻找从该请求中指定的观察者位置可见的地图元数据元素。或者,服务器计算设备使用元数据海拔高度作为搜索结果的细节水平控制参数,来从该请求中指定的搜索词的搜索结果中寻找观察者位置, 从搜索结果中寻找地图元数据元素,以及选择从观察者位置可见的那些地图元数据元素的部分或全部。地图元数据元素可用于至少部分地取决于观察者位置的海拔高度如何与如根据他们各自的元数据海拔高度在3D空间中分层的地图元数据元素的不同海拔高度相关来渲染地图视图。服务器计算设备将地图元数据元素发送(970)给客户机计算设备。服务器计算设备可从相同客户机计算设备接收对地图信息的第二请求。服务器计算设备随后确定附加地图元数据元素并将该附加元素发送给客户机计算设备。在一些情况下,初始和附加地图元数据元素足以使客户机计算设备渲染针对第一观察者位置和第二观察者位置之间的多个新观察者位置中的每一个的地图的新视图。返回到图9a,客户机计算设备从服务器计算设备接收(980)地图元数据并且基于观察者位置的视图海拔高度和3D空间中的地图元数据元素的元数据海拔高度来渲染 (990)地图的一个或多个视图。例如,客户机计算设备根据图2的方法(200)或另一种方法来渲染视图。当渲染从服务器计算设备接收到的地图元数据元素时,客户机计算设备可组合来自其他服务器计算设备和/或客户机计算设备本身的地图元数据元素。服务器计算设备(当提供地图元数据时)或客户机计算设备(当放置地图元数据元素时)可基于用户可能想要什么来对地图元数据元素进行排序。为了进行搜索,服务器计算设备可将较高的排名给予更有可能对观察者有用的元数据,以使这些元数据被更早展现和/或给予更多的突出性。例如,如果搜索寻找关于特定类型的餐馆或商店的信息,则服务器计算设备将比其他餐馆/商店的元数据更高的排名分配给所选元数据,并且还提升所选元数据相对于其他类型的地图元数据(例如,为街道)的排名。或者,如果搜索寻找关于特定街道的信息,则服务器计算设备提升街道和方向的元数据相对于其他类型的元数据的排名。这使排名已提升的元数据在将搜索结果与地图元数据的3D分层组合的基于情景的渲染期间更快和/或具有更多的突出性而出现。尽管图9a和9b示出了单个客户机计算设备和单个服务器计算设备的动作,但是一个服务器计算设备可提供来自多个客户机计算设备的请求。此外,给定客户机计算设备可在多个服务器计算设备之间进行选择。服务器处理可以是无状态的,或者服务器计算设备可记住特定客户机计算设备的在不同请求之间的状态信息。示例移动计算设备图10描绘了能够实现在此描述的技术和解决方案的移动计算设备(1000)的详细示例。移动设备(1000)包括在(100 处概括示出的各种任选的硬件和软件组件。移动设备中的任何组件(100 可与任何其他组件通信,尽管出于便于例示的目的未示出所有连接。移动设备可以是各种计算设备(例如,蜂窝电话、智能电话、手持式计算机、膝上型计算机、笔记本计算机、平板设备、上网本、个人数字助理(PDA)、相机、摄像机等)中的任何一个,并且可允许与诸如无线保真(Wi-Fi)、蜂窝、或卫星网络之类的一个或多个移动通信网络(1004)进行无线双向通信。所示移动设备(1000)可包括用于执行诸如信号编码、数据处理、输入/输出处理、 电源控制、和/或其他功能之类的任务的控制器或处理器(1010)(例如,信号处理器、微处理器、应用专用集成电路(ASIC)、或其他控制和处理逻辑电路)。操作系统(1012)可控制对组件(100 的分配和使用,并且支持一个或多个应用程序(1014)。除了地图导航软件之外,应用程序可包括普通移动计算应用程序(例如,电子邮件应用程序、日历、联系人管理器、web浏览器、消息收发应用程序)、或任何其他计算应用。所示移动设备(1000)可包括存储器(1020)。存储器(1020)可包括不可移动存储器(102 和/或可移动存储器(1024)。不可移动存储器(102 可包括RAM、ROM、闪存、 硬盘、或其他公知的存储器存储技术。可移动存储器(1024)可包括闪存或在GSM通信系统中公知的用户身份模块(SIM)卡,或者其他诸如“智能卡”之类的公知存储器存储技术。存储器(1020)可用于存储数据和/或用于运行操作系统(1012)和应用程序(1014)的代码。 示例数据可包括经由一个或多个有线或无线网络发送给和/或接收自一个或多个网络服务器或其他设备的网页、文本、图像、声音文件、视频数据、或其他数据集。存储器(1020)可用于存储诸如国际移动用户身份(IMSI)之类的用户标识符,以及诸如国际移动设备标识符(IMEI)之类的设备标识符。可将这些标识符传送给网络服务器以标识用户和设备。移动设备(1000)能支持诸如触摸屏(1032)、麦克风(1034)、相机(1036)(例如, 能够捕捉静态图片和/或视频图像)、物理键盘(1038)和/或跟踪球(1040)之类的一个或多个输入设备(1030),以及诸如扬声器(105 和显示器(1054)之类的一个或多个输出设备(1050)。其他可能的输出设备(未示出)可包括压电或其他触觉输出设备。一些设备可提供一个以上的输入/输出功能。例如,触摸屏(103 和显示器(1054)可被组合在单个输入/输出设备中。无线调制解调器(1060)可被耦合到天线(未示出),并且可支持处理器(1010) 与外部设备之间的双向通信,如本领域中清楚理解的。调制解调器(1060)被概括地示出, 并且可包括用于与移动通信网络(1004)和/或其他基于无线电的调制解调器(例如,蓝牙 (1064)或Wi-Fi (1062))进行通信的蜂窝调制解调器。无线调制解调器(1060)通常被配置成用于与一个或多个蜂窝网络进行通信,诸如用于单个蜂窝网络内、蜂窝网络之间、或移动设备与公共交换电话网络(PSTN)之间的数据和语音通信的GSM网络。移动设备可进一步包括至少一个输入/输出端口(1080)、电源(108 、诸如全球定位系统(GPQ接收机之类的卫星导航系统接收机(1084)、加速计(1086)、收发机(1088) (用于无线发射模拟或数字信号)和/或物理连接器(1076),该物理连接器可以是USB端口、IEEE 1394(火线)端口、和/或RS-232端口。由于可删除任何组件并且可添加其他组件,所以所示组件(1002)不是必需的或包括所有的。移动设备(1000)可实现此处描述的技术。例如,处理器(1010)可确定观察者位置并在3D空间中的地图导航期间渲染地图视图。处理器(1010)还可处理用户输入以确定观察者位置的改变。作为客户机计算设备,移动计算设备可将请求发送给服务器计算设备, 并接收从服务器计算设备返回的地图元数据。示例网络环境图11示出了其中可实现所述实施例、技术和技艺的合适的实现环境(1100)的通用示例。在示例环境(1100)中,由计算“云”(1110)提供各种类型的服务(例如,计算服务)。例如,云(1110)可包括可集中式或分布式放置的计算设备集,其将基于云的服务经由诸如因特网之类的网络提供给各种类型的用户和设备。可以不同方式使用实现环境(1100) 从而实现计算任务。例如,一些任务(例如,处理用户输入和呈现用户界面)可在本地计算设备(例如,连接的设备(1130)-(1132))上执行,而其他任务(例如,存储将在后续处理中使用的数据)可在云(1110)中执行。在示例环境(1100)中,云(1110)为具有各种屏幕能力的连接的设备 (1130)-(1132)提供服务。连接的设备(1130)表示具有计算机屏幕(例如,中型屏幕)的设备。例如,连接的设备(1130)可以是个人计算机,诸如台式计算机、膝上型计算机、笔记本、上网本等。连接的设备(1131)表示具有移动设备屏幕(例如,小型屏幕)的设备。例如,连接的设备(1131)可以是移动电话、智能电话、个人数字助理、平板计算机等。连接的设备(1132)表示具有大型屏幕的设备。例如,连接的设备(1132)可以是电视屏幕(例如, 智能电视)或连接到电视的另一个设备(例如,机顶盒或游戏控制台)等。连接的设备 (1130)-(1132)中的一个或多个可包括触摸屏能力。不具备屏幕能力的设备也可被用在示例环境(1100)中。例如,云(1110)可为没有显示器的一个或多个计算机(例如,服务器计算机)提供服务。可由云(1110)通过服务供应商(1120)、或通过在线服务的其他供应商(未描述) 来提供服务。例如,云服务可被定制成特定连接的设备(例如,连接的设备(1130)-(1132)) 的屏幕大小、显示能力、和/或触摸屏能力。服务供应商(1120)可提供用于各种基于云的服务的集中式解决方案。服务供应商(1120)可管理用户和/或设备(例如,连接的设备 (1130)-(1132)和/或其各自的用户)的服务订阅。在示例环境(1100)中,此处描述的3D地图导航技术和解决方案可利用任何连接的设备(1130)-(1132)作为客户机计算设备来实现。类似地,云(1110)中或服务供应商 (1120)的各种计算设备中的任一个可执行服务器计算设备的角色并将地图元数据递送给连接的设备(1130)-(1132)。替换和变化尽管为方便呈现起见一些所公开的方法的操作是以特定的顺序次序来描述的,但是应当理解,这种描述方式涵盖重新安排,除非以下阐明的具体语言需要特定排序。例如, 在一些情况下,可重新安排或同时执行顺序地描述的操作。此外,为简明起见,附图可能未示出其中所公开的方法可结合其他方法使用的各种方式。所公开的方法中的任何一种可被实现为存储在一个或多个计算机可读介质(例如,非临时计算机可读介质,诸如一个或多个光学介质盘(诸如DVD或CD)、易失性存储器组件(诸如DRAM或SRAM)、或非易失性存储器组件(诸如硬驱动器))上并且在计算机(例如,任何可购买的计算机,包括包含计算硬件的智能电话或其他移动设备)上执行的计算机可执行指令。用于实现所公开的技术的计算机可执行指令中的任何一个以及在所公开的实施例实现期间所创建和使用的任何数据可被存储在一个或多个计算机可读介质(例如, 非临时计算机可读介质)上。计算机可执行指令可以是,例如,经由web浏览器或其他软件应用程序(诸如远程计算应用程序)访问或下载的专用软件应用程序或软件应用程序的一部分。可,例如,在单个本地计算机(例如,任何合适的可购买计算机)上或在使用一个或多个网络计算机的网络环境(例如,经由因特网、广域网、局域网、客户机-服务器网络(诸如,云计算网络)、或其他此类网络)中执行这些软件。为清楚起见,只描述了基于软件的实现的某些所选方面。省略了本领域公知的其他细节。例如,应当理解,所公开的技术不限于任何特定的计算机语言或程序。例如,所公开的技术可由用C++、JaVa、Perl、JaVakript、Adobe Flash、或任何其他合适的编程语言编写的软件来实现。同样,所公开的技术不限于任何特定的计算机或硬件类型。合适的计算机和硬件的某些细节是公知的,因此无需在本公开中进行详细阐述。此外,基于软件的实施例中的任何一个(包括,例如,用于使计算机设备执行所公开的方法中的任何一种的计算机可执行指令)可通过合适的通信装置来上传、下载、或远程访问。这些合适的通信装置包括,例如,因特网、万维网、内联网、软件应用程序、电缆(包括光缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信或其他此类通信手段。
所公开的方法、装置和系统不应当被认为是以任何方式构成限制。相反,本公开针对各种公开的实施例(单独和与彼此的各种组合和子组合中)的所有新颖和非显而易见特征和方面。所公开的方法、装置和系统不限于任何具体方面或特征或其组合,所公开的实施例也不要求存在任何一个或多个具体优点或解决各个问题。鉴于可应用所公开的本发明的原理的许多可能的实施例,应当认识到,所示实施例仅是本发明的优选示例,并且不应被认为是限制本发明的范围。相反,本发明的范围由所附权利要求书来限定。因此,要求保护落入这些权利要求的精神和范围内的所有内容作为本发明。
权利要求
1.在包括存储器和处理单元的计算设备中,一种渲染用于地图导航的地图视图的方法,所述方法包括,通过所述计算设备确定第一观察者位置,所述第一观察者位置与3D空间中的视图海拔高度相关联; 确定具有所述3D空间中的第一元数据海拔高度的第一地图元数据元素,其中所述第一地图元数据元素与地图的第一特征相关联;确定具有所述3D空间中的第二元数据海拔高度的第二地图元数据元素,其中所述第二地图元数据元素与所述地图的第二特征相关联,并且其中所述第二元数据海拔高度与所述第一元数据海拔高度不同;以及至少部分地基于所述第一观察者位置和所述3D空间中的所述第一和第二地图元数据元素在不同元数据海拔高度处的分层来渲染所述地图的第一视图的显示,其中渲染所述第一视图至少部分地取决于所述视图海拔高度与所述3D空间中的所述第一和第二地图元数据元素的不同元数据海拔高度的关系;至少部分地基于指示观察者位置的改变的输入来确定第二观察者位置;以及至少部分地基于所述第二观察者位置和所述3D空间中的所述第一和第二地图元数据元素在不同元数据海拔高度处的分层来渲染所述地图的第二视图的显示,其中渲染所述第二视图至少部分地取决于所述第二观察者位置的视图海拔高度与所述3D空间中的所述第一和第二地图元数据元素的不同元数据海拔高度的关系;其中所述第一视图和所述第二视图是所述地图的自顶向下视图,并且其中与所述第一视图相比,在所述第二视图中由于视差效果,所述第一地图元数据元素被移位与所述第二地图元数据元素不同的距离,以解决在所述3D空间中的所述第一观察者位置和所述第二观察者位置之间的地理位置的改变。
2.如权利要求1所述的方法,其特征在于,所述第一和第二地图元数据元素是分别指示关于所述地图上的所述第一和第二特征的标题、距离和细节中的一个或多个的地图元数据文本标记,并且其中表面层包括所述地图的第一和第二特征。
3.如权利要求1所述的方法,其特征在于,渲染所述地图的第一视图包括在所述3D空间中分别将所述第一和第二地图元数据元素放置所述第一和第二特征之上,所述第一和第二地图元数据元素被放置在所述第一和第二地图元数据元素各自的元数据海拔高度处;以及从表面层的点以及从所述第一观察者位置可见的所述第一和第二地图元数据元素的点创建所述地图的第一视图。
4.如权利要求3所述的方法,其特征在于,渲染所述地图的第一视图还包括在放置之前,至少部分地基于作为细节水平控制参数的元数据海拔高度来确定渲染哪些地图元数据元素;以及作为放置的一部分,部分地取决于所述视图海拔高度与所述3D空间中的所述第一和第二地图元数据元素各自的元数据海拔高度的关系,分别将分辨率分配给所述第一和第二地图元数据元素;其中确定所述表面层的哪些点是可见的以及所述第一和第二地图元数据元素的哪些点是可见的取决于所述第一观察者位置的角度而变化。
5.如权利要求1所述的方法,其特征在于,所述第一观察者位置与第一地理位置相关联,所述第一观察者位置的视图海拔高度在所述3D空间中的所述第一地理位置之上,其中所述第二观察者位置与第二地理位置相关联,所述第二观察者位置的视图海拔高度在所述 3D空间中的所述第二地理位置之上,并且其中所述第一地理位置与所述第二地理位置不同,和/或所述第一观察者位置的视图海拔高度与所述第二者位置的视图海拔高度不同。
6.如权利要求1所述的方法,其特征在于,还包括,通过所述计算设备对于所述第二观察者位置和目的地观察者位置之间的一个或多个新观察者位置中的每一个确定所述新观察者位置;以及至少部分地基于所述新观察者位置和所述3D空间中所述第一和第二地图元数据元素在不同元数据海拔高度处的分层来渲染所述地图的新视图的显示,其中渲染所述新视图至少部分地取决于所述新观察者位置的视图海拔高度与所述3D空间中所述第一和第二地图元数据元素的不同元数据海拔高度的关系。
7.如权利要求6所述的方法,其特征在于,所述一个或多个新视图之一是所述地图的鸟瞰视图,并且其中在所述第一视图中,所述第一地图元数据元素和所述第二地图元数据元素在所述3D 空间中在与所述地图的表面层平行的方向上渲染;以及在所述鸟瞰视图中,所述第一地图元数据元素在所述3D空间中在与所述地图的表面层垂直的方向上渲染。
8.如权利要求7所述的方法,其特征在于,在所述鸟瞰视图中,所述第二地图元数据元素在所述3D空间中在与所述表面层平行的方向上并且在所述鸟瞰视图的新观察者位置之上渲染。
9.如权利要求6所述的方法,其特征在于,所述一个或多个新视图中的至少一些是所述地图的鸟瞰视图,其中所述第一地图元数据元素是地图元数据文本标记,并且其中所述地图元数据文本标记与所述地图中的特征一起被旋转和缩放。
10.如权利要求6所述的方法,其特征在于,所述一个或多个新视图中的至少一些是所述地图的鸟瞰视图,并且其中所述方法还包括,通过所述计算设备渲染所述地图的第一特征的照片视图连同关于所述第一特征的文本细节的显示,其中所述照片视图的多个部分的采样值被修改以在所述照片视图内突出显示所述第一特征。
11.如权利要求6所述的方法,其特征在于,重复确定并渲染所述一个或多个新观察者位置通过每秒至少四次更新显示来提供在所述第一和第二地图元数据元素之中平滑滚动和/或平滑缩放的效果。
12.如权利要求6所述的方法,其特征在于,所述一个或多个新视图是所述地图的自顶向下视图,其中所述第一地图元数据元素是地图元数据文本标记,并且其中随着观察者位置的视图海拔高度降低并接近所述3D空间中的目标海拔高度或目标距离,所述标记在不同视图之间变得更大且更浓;以及随着观察者位置的视图海拔高度进一步降低到所述3D空间中的目标海拔高度或目标距离以下,所述标记在不同视图之间变得更大但更淡。
13.如权利要求6所述的方法,其特征在于,所述一个或多个新视图中的至少一个是所述地图的鸟瞰视图,其中所述第一地图元数据元素是地图元数据文本标记,并且其中随着观察者位置的视图海拔高度降低并接近与所述3D空间中的标记相关联的所述元数据海拔高度,在不同视图之间所述标记旋转;以及在与所述3D空间中的标记相关联的所述元数据海拔高度处,所述标记在视图之间翻转。
14.一种存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令用于使由此编程的服务器计算设备执行一种便于地图导航的方法,所述方法包括,通过所述服务器计算设备从客户机计算设备接收对地图信息的请求,其中所述请求指示一个或多个搜索词; 至少部分地基于所述一个或多个搜索词的搜索结果并至少部分地基于作为细节水平控制参数的元数据海拔高度,确定具有3D空间中的不同元数据海拔高度的第一和第二地图元数据元素,其中所述第一地图元数据元素与地图的第一特征相关联,并且其中所述第二地图元数据元素与所述地图的第二特征相关联,并且其中所述第一和第二地图元数据元素可用于至少部分地取决于观察者位置的视图海拔高度与如根据其各自的元数据海拔高度在所述3D空间中分层的所述第一和第二地图元数据元素的不同元数据海拔高度的关系来渲染所述地图的视图;以及将所述第一和第二地图元数据元素发送给所述客户机计算设备。
15.如权利要求14所述的计算机可读存储介质,其特征在于,所述请求是第一请求,其中所述观察者位置是第一观察者位置,所述方法还包括,通过所述服务器计算设备从所述客户机计算设备接收对所述地图的地图信息的第二请求;确定一个或多个附加地图元数据元素;以及将所述一个或多个附加地图元数据元素发送给所述客户机计算设备。
16.如权利要求14所述的计算机可读存储介质,其特征在于,所述第一和第二地图元数据元素是指示关于所述地图上的特征的标题、距离和细节中的一个或多个的地图元数据文本标记,并且其中表面层包括所述地图的第一和第二特征。
17.—种包括处理单元、显示器、存储器和存储的计算设备,所述存储存储计算机可执行指令,这些计算机可执行指令用于使所述计算设备执行一种使用在3D空间中的不同元数据海拔高度处分层的地图元数据元素来渲染地图视图的方法,其中所述地图元数据元素的各个元素与所述地图的各个特征相关联,其中所述方法包括确定具有所述3D空间中的第一元数据海拔高度的第一地图元数据元素,其中所述第一地图元数据元素与地图的第一特征相关联;确定具有所述3D空间中的第二元数据海拔高度的第二地图元数据元素,其中所述第二地图元数据元素与所述地图的第二特征相关联,并且其中所述第二元数据海拔高度与所述第一元数据海拔高度不同;以及对于初始观察者位置和目的地观察者位置之间的一个或多个观察者位置中的每一个确定所述观察者位置,所述观察者位置与所述3D空间中的视图海拔高度相关联;以及至少部分地基于所述观察者位置和所述3D空间中的所述第一和第二地图元数据元素在不同元数据海拔高度处的分层来渲染所述地图视图的显示,其中所述第一和第二地图元数据元素在分别针对所述第一和第二地图元数据元素指示的所述元数据海拔高度处被分别放置在所述3D空间中的所述第一和第二特征之上,其中渲染所述视图包括从表面层的点以及从所述观察者位置可见的所述第一和第二地图元数据元素的点创建所述地图视图, 并且其中确定所述表面层的哪些点是可见的以及所述第一和第二地图元数据元素的哪些点是可见的取决于所述观察者位置的角度而变化;其中所述第一地图元数据元素是地图元数据文本标记,并且其中随着观察者位置的视图海拔高度降低并接近所述3D空间中的目标海拔高度或目标距离,所述标记在不同视图之间变得更大且更浓;以及随着观察者位置的视图海拔高度进一步降低到所述3D空间中的目标海拔高度或目标距离以下,所述标记在不同视图之间变得更大但更淡。
全文摘要
描述了用于渲染地图的视图的技术和工具,在视图中地图元数据元素在观察者导航通过的3D空间中分层。诸如文本标记之类的元数据元素在3D空间中的分层便于在地图导航期间放大、缩小以及滚动操作的视差效果和平滑运动效果。计算设备可确定与3D空间中的视图海拔高度相关联的观察者位置,随后基于观察者位置和在3D空间中的不同元数据海拔高度处分层的元数据元素来渲染地图视图的显示。例如,计算设备在对各个标记指示的元数据海拔高度处将文本标记放置在3D空间中与各个标记相关联的特征之上。计算设备从所放置标记的点和从观察者位置可见的地图表面层的点创建地图视图。
文档编号G01C21/32GK102359791SQ20111021805
公开日2012年2月22日 申请日期2011年7月22日 优先权日2010年7月23日
发明者D·A·巴尼特, E·N·布拉夫, J·C-Y·方 申请人:微软公司