以不同缩放等级呈现地图数据的层级结构的制作方法

文档序号:12288292阅读:515来源:国知局
以不同缩放等级呈现地图数据的层级结构的制作方法与工艺

各种系统允许用户在计算设备的显示器上查看不同位置的地图。此外,许多这些系统允许用户操作如何查看地图。例如,一些地图系统提供允许用户诸如通过选择和拖动地图或选择点并且在显示器上以被选点为中心重新渲染地图来“移动”地图的工具。一些系统还可以允许用户在地图上放大或缩小。



技术实现要素:

本公开的方面提供一种显示地图数据的方法。该方法包括:由一个或多个计算设备接收对于处于第一缩放等级的地图的请求;由一个或多个计算设备访问地理位置的层级结构;由一个或多个计算设备从地理位置的层级结构确定在地图中将以第一缩放等级呈现的第一地理位置集合;由一个或多个计算设备提供第一地理位置集合用于显示;由一个或多个计算设备接收以第二缩放等级查看地图的请求;由一个或多个计算设备确定已经越过缩放等级界限;由一个或多个计算设备从地理位置的层级结构中识别在地图中将以第二缩放等级呈现的第二地理位置集合;以及由一个或多个计算设备提供第二地理位置集合用于显示。

在另一示例中,第二缩放等级是比第一缩放等级更高的缩放等级;第一地理位置集合包括父地理位置;以及第二地理位置集合包括来自父地理位置的一个或多个子地理位置。在又一示例中,缩放等级界限基于将以一个或多个缩放等级显示的地理位置的数目。

在又一示例中,该方法包括:由一个或多个计算设备确定用于父地理位置的高缩放等级和用于多个子地理位置的每一个的低缩放等级;以及基于所确定的高缩放等级与所确定的用于多个子地理位置的低缩放等级的比较,确定缩放等级界限。在又一示例中,地图将被显示在视口中,以及确定用于特定地理位置的高缩放等级和低缩放等级是基于特定地理位置的大小与视口的大小的比较。

在另一示例中,缩放等级界限是多个缩放等级界限中的一个;地理位置的层级结构包括多个层级结构等级;以及设置多个缩放等级界限,使得至少一个缩放等级存在,其中,用于特定层级结构等级的所有地理位置均与这至少一个缩放等级相关联。

在又一示例中,该方法包括由一个或多个计算设备访问与请求的地图有关的信息;其中,提供第一地理位置集合用于显示进一步包括由一个或多个计算设备提供信息用于以对应于第一地理位置集合的第一粒度显示;以及其中,提供第二地理位置集合用于显示进一步包括由一个或多个计算设备提供信息用于以对应于第二地理位置集合的第二粒度显示。

本公开的另一方面提供一种方法,该方法包括:由一个或多个计算设备接收用于将在视口中呈现的地图的请求;由一个或多个计算设备选择对应于视口内的点的地理点;由一个或多个计算设备识别对应于被选地理点的地理位置集合;由一个或多个计算设备将来自地理位置集合的一个或多个地理位置的大小与视口的大小比较;以及由一个或多个计算设备基于一个或多个地理位置的大小与视口的大小的比较,从地理位置集合选择第一地理位置。

在另一示例中,该方法包括将一个或多个地理位置的大小与视口的大小比较,进一步包括将一个或多个地理位置的面积与视口的面积比较。在又一示例中,选择第一地理位置是基于第一地理位置具有最接近预定大小比率的、与视口的大小有关的比率。选择的地理点可以对应于视口的中心点。

在另一示例中,该方法包括由一个或多个计算设备选择邻近第一地理位置的邻近地理位置集合;以及在视口内提供第一地理位置和邻近地理位置用于显示。此外,可以从地理位置的层级结构选择邻近地理位置集合,以及其中,邻近地理位置可以处于与第一地理位置相同的层级结构等级。

本公开的另一方面提供一种系统。该系统包括一个或多个计算设备。一个或多个计算设备被配置为:接收对于处于第一缩放等级的地图的请求;访问地理位置的层级结构;从地理位置的层级结构确定在地图中将以第一缩放等级呈现的第一地理位置集合;提供第一地理位置集合;接收以第二缩放等级查看地图的请求;确定已经越过缩放等级界限;从地理位置的层级结构,确定在地图中将以第二缩放等级呈现的第二地理位置集合;以及提供第二地理位置集合用于显示。

在一个示例中,第二缩放等级是比第一缩放等级更高的缩放等级;第一地理位置集合包括父地理位置;以及第二地理位置集合包括来自父地理位置的一个或多个子地理位置。此外,缩放等级界限是基于将以一个或多个缩放等级显示的地理位置的数目。

在另一示例中,一个或多个计算设备被进一步配置为:确定用于父地理位置的高缩放等级和用于多个子地理位置的每一个的低缩放等级;以及基于所确定的高缩放等级与所确定的用于多个子地理位置的低缩放等级的比较,确定缩放等级界限。在另一示例中,地图将显示在视口中,以及确定用于特定地理位置的高缩放等级和低缩放等级是基于特定地理位置的大小与视口的大小的比较。

在又一示例中,缩放等级界限是多个缩放等级界限中的一个;地理位置的层级结构包括多个层级结构等级;以及设置多个缩放等级界限,使得至少一个缩放等级存在,其中,用于特定层级结构等级的所有地理位置均与该至少一个缩放等级相关联。

附图说明

图1是根据本公开的方面的示例系统的功能图。

图2是图1的示例系统的直观图。

图3是根据本公开的方面的示例屏幕截图。

图4是根据本公开的方面的另一示例屏幕截图。

图5是根据本公开的方面的又一示例屏幕截图。

图6是根据本公开的方面的又一示例屏幕截图。

图7是根据本公开的方面的地理位置层级结构的示例图。

图8是根据本公开的方面的地理位置层级结构的又一示例图。

图9是根据本公开的方面的示例屏幕截图。

图10根据本公开的方面的另一示例屏幕截图。

图11是根据本公开的方面的又一示例屏幕截图。

图12是根据本公开的方面的流程图。

具体实施方式

综述

总的来说,本技术涉及以不同缩放等级为用户提供有用的地图数据。如上所提到的,用户可以缩放地图,由此改变呈现给用户的地理区域。在该技术的一个方面中,可以为用户提供取决于查看地图的当前缩放等级的在地图内的一组地理位置。

响应用户请求,用户的客户端设备可以从远程位置,诸如服务器计算机,或从本地存储器,检索地图信息。然后,客户端设备可以渲染地图的显示。除在地图中呈现的地理数据外,可以向用户呈现另外的地图相关的信息。例如,用户能够选择地图内的一个或多个地理位置,使得查看与被选地理位置相关联的人口普查或调查数据。在另一示例中,可以为用户呈现与被选地理位置有关的照片或其他用户生成的内容。

根据该技术的一个方面,可以生成和访问地理位置的层级结构以便确定将以不同缩放等级呈现给用户的特定地理位置。在低缩放等级,可以在地图中显示相对大的地理位置,诸如大陆或国家。然而,当用户放大地图时,可以自动地改变呈现的地理位置。例如,呈现给用户的地理位置可以从国家级位置转变成州级和省级位置。然后,用户能够选择地图中的特定州和省,以便查看与那些被选州和省有关的信息。因此,当用户缩放地图时,呈现给用户的信息粒度可以自动地改变。

在一个示例中,服务器计算机或客户端计算机可以通过将候选地理位置的大小与当前缩放等级的视口的大小比较,确定哪些地理位置将呈现给用户。可以从地理位置的层级结构选择这些候选地理位置,其中,可以将父地理位置划分成子地理位置。

基于地理位置的大小的比较,服务器或客户端计算机可以选择将可管理的一组地理位置,用于用户查看。例如,可以选择地理位置,使得地图显示地图中的不仅仅几个位置,而是大量非常小的位置。在公开技术的一个方面中,该系统可以将层级结构内的特定地理位置指定特定缩放等级,使得为用户提供适当的地理位置集合。

在另一方面中,可以将地图有关内容,诸如包含地理位置元数据的照片,连同提供照片的用户的列表一起显示给用户。在一个示例中,可以为用户呈现最优照片和最优照片贡献者的列表。最优照片和最优贡献者的列表可以对应于在地图视口中当前正由用户查看的地理位置。然后,当用户在地图内平移或缩放时,自动地更新最优照片和最优照片贡献者的列表。以这种方式,可以为用户呈现与由用户查看的特定地理位置有关的实时数据。此外,用户可以选择地图内的特定地理位置。如上所述,可以基于当前缩放等级与地理位置的层级结构的比较,选择那些地理位置。

示例系统

图1和2包括能实现上述特征的示例系统100。其不应该被视为限制本公开的范围或本文中所述的特征的有用性。在本示例中,系统100能包括计算设备110、120、130、和140以及存储系统150。计算设备110能包括一个或多个处理器112、存储器114、和通常出现在通用计算设备中的其他组件。计算设备110的存储器114能存储可由处理器112访问的信息,该信息包括能由处理器112执行的指令116。

存储器还能包括数据118,该数据118能由处理器检索、操纵、或存储。存储器能是能够存储可由处理器存取的信息的任意非暂时性类型,诸如硬盘驱动、存储器卡、ROM、RAM、DVD、CD-ROM、可写、以及只读存储器。

指令116能是将由直接(诸如以机器代码)或间接(诸如以脚本)执行的指令的任意集合。在这方面,术语“指令”、“应用”、“步骤”和“程序”能在本文中可互换地使用。能以目标代码格式存储指令以用于由处理器直接处理,或以包括脚本或独立源代码模块的集合的任意其他计算设备语言存储指令,该脚本或独立源代码模块仅在需要时被解释或提前编译。下面更加详细地解释指令的功能、方法和例程。

根据指令116,能由处理器112检索、存储、或修改数据118。比如,尽管本文中描述的主题不被任意特定数据结构所限制,数据能被存储在计算机寄存器中、作为具有多个不同字段和记录的表存储在关系数据库中、或存储在XML文档中。数据还能以任意计算设备可读格式被格式化,该计算设备可读格式诸如但不限于二进制值、ASCII或Unicode。进一步地,数据能包括足以识别相关信息的任意信息,诸如数字、描述性文本、专有代码、指针、对存储在诸如在其他网络位置处的其他存储器中的数据的引用、或被函数使用以计算相关数据的信息。

一个或多个处理器112能包括任何常规处理器,诸如市场上能买到的CPU。替选地,处理器能是诸如ASIC的专用组件或其他基于硬件的处理器。尽管不是必要的,计算设备110可以包括专门的硬件组件以更快或更有效地执行特定计算过程,诸如解码视频、将视频帧与图像匹配、使视频失真、对失真的视频进行编码等等。

尽管图1功能地将计算设备110的处理器、存储器、和其他元件图示为在相同的块内,但是处理器、计算机、计算设备、或存储器实际上能包括可以或可以不容纳在相同的物理壳体内的多个处理器、计算机、计算设备、或存储器。例如,存储器能是位于不同于计算设备110的壳体中的硬盘驱动或其他存储媒体。因此,对处理器、计算机、计算设备、或存储器的引用将被理解为包括对可以并行或可以不并行操作的处理器、计算机、计算设备、或存储器的集合的引用。例如,计算设备110可以包括起到负载均衡服务器群的作用的服务器计算设备。更进一步地,尽管下文所述的一些功能被指示为取代具有单个处理器的单个计算设备,能由多个计算设备实现本文中描述的主题的各个方面,例如,通过网络160通信信息。

计算设备110能在网络160的不同节点处并且能够直接和间接地与网络160的其他节点通信。尽管图1-2中只描绘了一些计算设备,应理解典型的系统能包括与在网络160的不同节点处的每个不同计算设备相连接的大量计算设备。能使用多种协议和系统将本文中所述的网络160和中间节点互连,使得该网络能是互联网、万维网、特定内联网、广域网或本地网络的部分。网络能利用诸如以太网、WiFi和HTTP的标准通信、协议、一个或多个公司专用的协议、以及前述的各种组合。尽管当信息如上面所指出的被传送或接收时会获得某些优势,本文中所述的主题的其他方面不限于信息传输的任何特定方式。

例如,计算设备110可以包括能够经由网络与存储系统150以及计算设备120、130、和140通信的web服务器。例如,服务器计算设备110可以使用网络160将信息传送并在显示器,诸如计算设备120、130、或140的显示器122、132、或142上呈现至用户,诸如用户220、250、或250。就这一点而言,计算设备120、130、和140可被视为客户端计算设备并且可以执行下文所述的一些或全部特征。

客户端计算设备中的每一个可被类似地配置为如上所述的具有一个或多个服务器、存储器和指令的服务器计算设备110。每个客户端计算设备120、130、或140可以是旨在用于由用户220、250、250使用的个人计算设备,并且具有通常与个人计算设备相连使用的所有组件,该组件诸如中央处理单元(CPU)、存储了数据和指令的存储器(例如,RAM和内部硬盘驱动)、诸如显示器122、132、或142的显示器(例如,带有屏幕或触摸屏幕的监视器、投影仪、电视机、或可操作用于显示信息的其他设备)、以及用户输入设备124(例如,鼠标、键盘、触摸屏或麦克风)。客户端计算设备还可以包括用于捕获静态图像或录制视频流的相机126、扬声器、网络接口设备、以及用于将这些元件相互连接的所有组件。

尽管客户端计算设备120、130和140可以分别包括全尺寸的个人计算设备,他们可以替选地包括能够利用服务器通过诸如互联网的网络来无线地交换数据的移动计算设备。仅通过示例的方式,客户端计算设备120可以是移动电话或设备,诸如能够经由互联网获得信息的无线使能PDA、平板PC、或上网本。在另一个示例中,客户端计算设备130可以是头戴式计算系统。例如,用户可以使用小键盘、键区、麦克风、利用相机使用视觉信号、或触摸屏来输入信息。

存储系统150可以存储地图信息和图像数据。例如,地图信息可以包括用来绘制各个地图特征的矢量数据。图像数据可以包括能用来替换、覆盖或增加地图信息的任何类型的图像。例如,该图像数据能包括卫星图像、地面图像或其他这类图像。

与存储器114类似,存储系统150可以是任意类型的计算机化的存储,其能够存储可由服务器110访问的信息,存储系统150诸如硬盘驱动、存储器卡、ROM、RAM、DVD、CD-ROM、可写、以及只读存储器。此外,存储系统150能包括分布式存储系统,其中数据被存储在物理地位于相同或不同地理位置处的多个不同的存储设备上。存储系统150能如图1中所示出的经由网络160被连接至计算设备和/或能被直接连接至或被合并到计算设备110至140(未示出)中任意一个。

示例方法

用户可以请求在他或她的客户端设备上查看地图。该请求可以包括能用来识别地图的相关部分,诸如地址、位置坐标、地标或企业名称、位置的图像或任何其他这类信息的信息。服务器设备110可以通过从存储系统150检索地图信息并且将其发送到客户端设备120来响应。替选地,客户端设备120可以从本地存储器检索地图。由此,将地图或地图信息提供给客户端设备以显示给用户。如果地图是基于矢量的地图,则所提供的地图信息可以包括能由客户端设备用来渲染地图的图像的多个矢量。

根据公开的系统的一个方面,地图可以被组织成地理位置的层级结构。例如,地理位置的层级结构可以包括对应于国家、省/州、县、市和街区的等级。然后,基于由用户选择的缩放等级,在地图内显示层级结构内的特定地理位置集合。

例如,图3示出可以在客户端设备120上显示的地图302的屏幕截图300。地图302处于相对低的缩放等级并且按国家级地理位置划分,包括美国303、加拿大304和墨西哥305。客户端设备120的用户可以通过将查询输入到搜索字段310中,搜索地图内的特定位置。用户也可以变更地图302的缩放等级。例如,用户可以选择图标306来放大地图302以及可以选择图标308来缩小地图302。

图4示出地图402的屏幕截图400,其中,用户选择图标306来放大地图302。随着用户放大,在地图内显示的地理位置从地图302中所示的国家级位置改变成地图402中所示的州级位置。因此,当地图302按国家划分时,地图402按州边界404划分。类似地,如果用户继续放大地图402,则地图可以再次从显示州级位置转变成显示县级或市级位置。

通过在地理位置层级结构的不同等级之间转变地图,所公开的系统为用户提供能以所需粒度等级显示信息的地图。例如,图5是在视口504中显示地图502的屏幕截图500,在视口504旁显示相关位置信息506。与图4的地图402类似,如由州边界404所示,以将地图划分成州级地理位置的缩放等级,显示地图502。根据一个方面,用户可以选择在地图502上显示的一个或多个地理位置。可以使用任意多个输入设备,诸如通过计算机鼠标光标(未示出)选择地理位置或通过将查询输入到搜索字段310中,执行地理位置的选择。在触摸屏的情况下,用户可以通过点击地图上的所需位置,选择地理位置。地图可以显示表示已经由用户选择哪些地理位置的视觉标记。例如,在地图502中,用户可以选择地理位置508。通过改变州边界510的颜色或粗细的视觉标记,表示选择地理位置508。

此外,屏幕截图500包括识别已经由用户选择的地理位置的名称的标识512。标识512还可以识别被选地理位置的层级结构等级。例如,标识512表示地理位置508为科罗拉多,以及其是位于父地理位置“全球”、“北美”和“美国”内的州。

通过地图显示的位置信息可以自动地对应于显示的地图内的被选地理位置。例如,屏幕截图500内所示的位置信息506对应于科罗拉多的地理位置508。位置信息506可以包括可用于服务器设备110或客户端设备120的任何信息,包括在互联网上可访问的信息。例如,服务器设备110可以访问存储的人口普查数据以便提供人口和GPD数据,诸如屏幕截图500中所示的位置信息506。如下文所论述的,位置信息还可以包括由其他用户提供的信息。例如,位置信息可以包括由其他用户拍摄并且已经从各个客户端设备,诸如客户端设备120、130和140,上传到图1的服务器设备110的照片。

如上所述,用户可以放大地图502,以便使地图自动地从显示州级地理位置508转变到显示下一等级的地理位置。例如,图6的屏幕截图600表示地图602,其是用户放大图5中所示的地理位置508的结果。在地图602中,已经以如由县级边界604所示的县级地理位置取代州级地理位置508。用户可以再次选择地图602内所示的一个或多个地理位置,然而,用户现在将从县级位置而不是州级位置的集合选择。如由边界608所示,用户选择地图602内的地理位置606。标识612表示地理位置606是“帕克县”并且其是父地理位置“全球”、“北美”、“美国”和“科罗拉多”的一部分。在选择地理位置606后,显示相应的位置信息614。然后,用户继续选择地图602内的各个县级地理位置,以便获得县级位置信息。

因此,系统100可以生成对于不同缩放等级显示地理位置的不同层级结构等级的地图。对任何特定的缩放等级,系统100可以确定将在地图内显示的适当的地理位置。根据该技术的一个方面,服务器设备110或客户端设备120可以将特定地理位置与特定缩放等级关联。图7示出示例地理位置层级结构的树700。在树700中,每个地理位置与一个或多个缩放等级相关联。通过低缩放等级数字,诸如0至7,指定地图内的相对低缩放,而由较高数字,诸如13和14,表示较高缩放。虚线730、732和734表示地图将从第一地理位置转变到第二地理位置的缩放等级界限。

例如,如树700中所示,在0至7缩放等级,将显示国家702,而对8至10的缩放等级,将显示州704和706。因此,在缩放等级7,地图将显示国家702的地理位置。然而,如果用户将地图放大到缩放等级8,则地图将划分成对应于州704和706的地理位置,而不是国家702。如果以缩放等级11和12呈现地图,地图将划分成县级地理位置,诸如县708和710。类似地,在缩放等级13和14,地图将划分成市级地理位置,诸如市718和市720。尽管图7仅示出了缩放等级0至缩放等级14,但公开的系统不限于任何固定缩放等级数。因此,可以增加更高缩放等级以及中间缩放等级,取决于可用于待显示的地图的信息粒度。

可以设计地理位置的层级结构树,使得同一层级结构等级内的所有地理位置出现在同一缩放等级范围内。例如,树700呈现对同一缩放等级(例如缩放8-缩放10),所有州级地理位置均出现,而在缩放11和缩放12,所有县级地理位置均出现的层级结构。

然而,可以生成地理位置的层级结构树,以便对特定缩放等级仅特定层级结构等级的子集出现。例如,在图8的层级结构树800中,在缩放等级11,地图将县814和816呈现为独特地理位置,而在缩放等级11,县810和县812不被呈现为独特地理位置。因此,在缩放等级11,将呈现县810和812的父层级结构等级(例如州802),而不是县810和812。类似地,在缩放等级13,将呈现市818,而不呈现市820,直到缩放等级14为止。因此,在树800中呈现的层级结构下,对至少一些可用缩放等级,地图将呈现处于不同层级结构等级的独特地理位置。然而,根据一个方面,公开的系统可以将父位置划分成下一层级结构等级的所有可用子位置。例如,一旦地图将县810呈现为独特地理位置,可以将在州802内的所有其他县,包括县812,呈现为独特地理位置。因此,在缩放等级12,州802完全由位于州802内的县级地理位置取代。

不必对每个地理位置存在层级结构等级。例如,尽管县810被划分成市818和市819,但县816可以不具有与其相关联的市级地理位置。因此,在缩放等级13和14,地图可以继续将县816呈现为独特地理单元,即使其他县被划分成市级位置。此外,尽管在图7和8中仅示出了四个层级结构等级,但公开的系统可以使用任意多个层级结构等级。例如,层级结构可以包括作为国家级地理位置的父地理位置的大陆或次大陆。类似地,层级结构可以继续将市级地理位置划分成更小子位置,诸如地区级和街区级位置。以这种方式,用户可以继续放大地图,以便以地图信息存在的任何粒度接收地图信息。

根据该技术的一个方面,公开的系统可以根据多个不同层级结构的一个划分地图,每个层级结构包含不同地理位置类型集合。例如,第一层级结构可以包括对应于州、县、市和街区的地理位置级,而第二层级结构可以包括对应于州、国会选区和基层选举小区的地理位置级。此外,特定地图内的不同地理位置可以包括不同地理位置类型集合。例如,地图可以包括美国和加拿大,使用不同于加拿大的位置类型集合划分美国。具体地,基于地区、省、行政区和街区的层级结构,在地图中划分加拿大,而美国被划分成州、县和街区的层级结构。因此,对不同国家所示的地理位置中,不需要一致性。然而,在该技术的一个方面中,可以调整缩放范围以便在特定国家内保持层级结构等级的一致性。

回到图1,服务器设备110可以存储位置层级结构数据119和地图渲染数据117。位置层级结构数据119可以包含与一个或多个地图相关联的地理位置的列表。根据一个方面,服务器设备110可以通过从地理位置的列表选择,来生成地理层级结构,诸如上述树700和800。在选择将被包括在地理层级结构中的地理位置时,服务器设备110可以确定哪些类型的地理位置适合于特定应用。例如,可以使用不同层级结构,以便显示呈现人口普查数据的地图,代替呈现照片的地理位置的地图。

在生成地理层级结构中,对于任意或大多数地图缩放等级,服务器设备110可以从将覆盖所有或大部分视口的地理位置中选择。特别地,服务器设备110可以生成由下一级子位置完全或基本上覆盖每个父地理位置的层级结构,在子位置之间很少或没有重叠。这可以称为拆分和覆盖层级结构,其中,在每个父位置和所有其子位置之间有接近一一对应关系。

通过生成拆分和覆盖层级结构,可以为用户呈现能划分成独特粒度等级的地图信息。例如,图5中所示的地图信息可以细分成图6中所示的县级数据。如果县级位置创建与科罗拉多的一一对应关系,则可以合并用于所有科罗拉多的县的人口普查数据,以便整体上生成用于科罗拉多州的人口普查数据。

在生成地理位置的层级结构中,公开的系统可以使用各种形式的数据,包括邮政地址和几何信息。例如,在一些国家,邮政地址是层级结构形式,其中,列出省、行政区和市。在另一示例中,服务器设备110可以比较各个地理位置的几何结构来确定哪些子地理位置拆分和覆盖父地理位置。服务器设备110还可以检测哪些重复位置存在于潜在地理层级结构中。在该实例中,可以排除层级结构中的一个地理位置,特别是在仍然由剩余地理位置覆盖该地图的实例中。

如上所述,公开的系统可以选择将对特定缩放等级显示的地理层级结构的一个或多个等级。例如,如图7和8所示,每个地理位置指定特定范围的缩放等级。缩放等级的范围可以基于存在于该层级结构中的地理位置的形状和大小而被确定。具体地,可以选择缩放等级的范围,以便地图视口显示适当数目的地理位置,或以便以适当大小显示所有地理位置。例如,可以选择图7和8中所示的缩放等级的范围,使得视口中所示的地理位置的数目将总是在10和100之间。

在另一示例中,可以基于地理位置的大小与视口的大小的比率,确定缩放等级的范围。可以使用地理位置大小的不同度量。例如,大小可以基于总面积或地理位置的高度和宽度的独立比较。对每个缩放等级,可以比较地理位置和视口之间的像素大小比。基于该比较,然后确定应当示出地理位置的最低缩放等级,以及应当示出地理位置的最高缩放等级。在一个示例中,最高缩放等级可以对应于不超出视口的面积的40%的地理位置,而最低缩放等级可以对应于视口面积的至少1%的地理位置。然后,可以比较父和子位置的缩放范围以确定地图将在父和子之间转变的适当的缩放等级界限。

在一些实例中,特定父位置的所有子位置将具有低于或等于父位置的最高缩放等级的最低缩放等级。在这种情况下,该地图可以将缩放等级界限识别为在低于父位置的最高缩放等级并且高于用于所有子位置的所有最低缩放等级的任何缩放等级之间。然而,在其他情况下,子位置的最低缩放等级的至少一些将高于父位置的最高缩放等级。在这些实例中,可以显示地理位置,即使当前的缩放等级在缩放等级的地理位置的范围之外。例如,公开的系统可以通过确定子位置的某个百分比将在它们的缩放等级范围内的缩放等级,确定适当缩放等级界限。具体地,可以将缩放等级界限确定为缩放等级处于或高于子位置的最低缩放等级的80%的点。在另一示例中,可以基于视口内的父位置的面积比率,确定缩放等级界限。例如,即使所有子位置均不在它们的最低缩放等级内,也可以在父位置覆盖视口的80%或以上的点处产生缩放等级界限。在又一示例中,可以限制缩放等级界限,使得将示出最多预定多个子位置,诸如200。在该示例中,如果父位置包含超出预定多个子位置,则可以不在同一视口中同时示出父位置的所有子位置。在又一示例中,可以选择缩放等级界限,使得至少一个缩放等级存在,其中,特定类型的所有地理位置均被指定到该缩放等级。例如,特定缩放等级可以存在,其中,美国内的所有州均被指定到该特定缩放等级。除上述示例外,可以以最低可用缩放等级(例如,缩放0)显示任何地理层级结构的顶层,而叶地理位置(例如不具有任何孩子的那些地理位置)将继续以最高缩放等级显示。上文所述的缩放等级界限示例的不同组合可以用在生成特定地图中。

在又一方面中,通过以用于指定视口的地理位置动态地填充地图,可以选择将在地图中显示的地理位置。例如,可以识别视口的中心位置,以及层级结构内对应于中心位置的潜在地理位置。然后,将潜在地理位置与当前视口比较来确定哪些潜在地理位置具有最接近当前视口面积的预定比率的面积。然后,选择该地理位置,以与被选地理位置的附近一起显示。例如,预定比率可以是1/9,使得被选地理位置将是潜在地理位置中具有最接近视口面积的1/9的面积的位置。还可以从与第一被选地理位置相同的层级结构等级选择出被选地理位置的所有附近位置。然而,可以确定对一个或多个附近位置,是否应当使用不同层级结构等级。具体地,可以确定是否应当在视口内显示更多或更少位置。如果视口包含太多位置,则可以使用附近位置的父位置。类似地,如果视口包含太少位置,则可以使用一个或多个附近位置的子位置。

回到图1,可以由服务器设备110、客户端设备120,130和140或那些设备的一些组合,执行对特定视口要显示的地理位置的确定,以及那些地理位置的渲染。此外,可以在用户请求特定地图时(例如实时)或在用户请求地图之前,确定对指定缩放等级将显示哪些地理位置。

如上所述,公开的系统可以为用户提供地图信息以及显示的地图。该地图信息可以包括已经由系统的一个或多个用户提供的用户生成的内容。例如,贡献者可以从图1中所示的客户端设备120、130和140上传照片至服务器设备110。每个照片可以包括将照片识别为拍摄特定位置的地理位置数据,诸如经纬度坐标和方位数据。根据一个方面,显示给用户的地图信息可以识别与当前在视口中显示的地图的区域相关联的特定照片和贡献者。

图9示出屏幕截图900,其中,与照片904的集合一起显示地图902。根据公开的系统的一个方面,可以从具有对应于视口504中所示的地图902的区域内的位置的地理位置数据的照片集合选择照片904。此外,公开的系统可以对视口504中所示的区域显示最佳贡献者。例如,屏幕截图900对视口504中所示的地图区域显示最佳贡献者的排行榜906。可以以任意多种方式,诸如姓名、用户ID或其他简档信息,识别排行榜内的最佳贡献者。例如,排行榜906通过提供贡献者的头像照片908,识别最佳贡献者。可由用户选择这些头像照片908。在选择头像照片908后,可以为用户提供有关该贡献者的附加信息,包括贡献者提供的另外的照片。在另一示例中,用户可以滚动排行榜906和照片904的列表以便查看另外的贡献者和另外的照片。

地图902还可以包含与已经拍摄一个或多个照片的位置相对应的点910的集合。用户可以诸如通过使用指示设备或通过在触摸屏上触摸点910,选择点910。在选择点910后,可以为用户提供对应于该点的照片,以及提供那些照片的贡献者的标识。

地图902可以以上述方式,划分成地理位置的集合。例如,假定视口504的当前缩放等级,可以将地图902划分成州级位置。因此,用户可以选择在地图内显示的州级位置中的一个。图10示出地图1002的屏幕截图1000,其中,用户选择弗吉尼亚的州级位置。通过视觉标记,诸如正显示的弗吉尼亚的边界1010,以及通过正显示的位置标识1012,在地图1002中识别选择弗吉尼亚。在用户选择弗吉尼亚后,可以将图9中所示的照片904自动地更新为在弗吉尼亚内拍摄的那些照片1004。此外,还可以更新排行榜906,以便显示用于弗吉尼亚的照片的最佳贡献者。还可以将地图1002上所示的点910限定到在已经拍摄一个或多个照片的、被选的弗吉尼亚州内的位置。

如上所述,用户可以改变在视口504内所示的区域。例如,用户可以在一个或多个方向中平移地图或可以放大或缩小地图。根据一个方面,当用户改变在视口504内显示的地图区域时,公开的系统可以更新显示给用户的照片和贡献者。例如,图11的屏幕截图1100显示用户放大弗吉尼亚的东部后的地图1102。随着用户放大地图1002,将由屏幕截图1100中所示的照片1104取代在屏幕截图1000中所示的照片1004。具体地,照片1104将是在地图1102中所示的区域中拍摄的那些照片。类似地,可以自动地更新排行榜906来包含用于在地图1102中所示的区域的最佳贡献者的头像照片1108。如在图10和11中所看到的,照片1004和照片1104中的一些照片可能是相同的,假定在地图1102中所示的区域包含在地图1002中所示的区域的一部分。对在排行榜906中所示的头像照片1008和头像照片1108也同样成立。

假定地图1102处于与地图1002不同的缩放等级,在地图1102中提供的地理位置也可以不同于在地图1002中提供的那些地理位置。例如,当地图1002提供州级位置时,地图1102可以提供县级位置。在一个方面中,用户可以在地图1102上移动光标,诸如鼠标光标1120,以便查看可以在地图1102中选择的地理位置。例如,随着用户在地图1102上移动光标1120,显示边界1110。边界1110对应于萨福克,弗吉尼亚的县级地理位置。因此,地图1102不显示在地图1002中提供的州级位置,而是显示县级位置。如上所述,结合弗吉尼亚的州级位置,用户可以选择边界1110内的区域,以便查看在萨福克的县级位置中拍摄的任何照片。此外,用户可以继续放大地图1102以便查看市级或街区级地理位置,以及与那些地理位置相关联的任何照片。

根据一个方面,根据空间索引,可以存储图9-11中所示的照片的地理位置。具体地,上述地图可以被划分成网格层级结构,其中,将地图上的每个点指定到覆盖该特定点的一系列网格。在一个示例中,可以将地球投影到二维地图上,诸如通过使用墨卡托投影。然后,通过将缩放等级0的全球地图划分成四个均等的正方形,然后将那些正方形的每一个划分成四个均等的正方形,将网格的层级结构绘制到地图上。通过将每个新创建的正方形划分成四个均等的正方形,可以获得网格层级结构。因此,地图内的每个点将由处于层级结构的每一级的正方形覆盖。按网格ID引用每个网格。例如,每个网格ID采用64位数据集合的形式。根据一个方面,相互接近的网格可以被指定在值方面相互接近的网格ID。以这种方式,对地图中的指定区域,可以快速地搜索网格ID。

如上所述,公开的系统可以对在视口504中显示的任何区域提供最佳贡献者的列表。可以使用网格层级结构获得该最佳贡献者的列表。具体地,用户生成的内容可以包括地理位置的标识,包括经/纬度坐标。可以将每个照片的经/纬度坐标转换成覆盖该特定坐标的网格层级结构内的网格ID的列表。此外,对每个网格ID,可以保持计数器,表示在该网络ID内特定贡献者已经提供的照片的数目。此外,可以通过识别该网格ID内提供最多照片或最多热门照片的预定多个贡献者,获得每个网格ID的最佳贡献者集合。

然后,使用从网格层级结构选择的网格的列表,近似视口中所示的地图。可以从网格层级结构的不同等级选择这些被选网格,因此可以是不同大小。然后,通过合并用于所有被选网格的最佳贡献者,可以获得视口中所示的区域的最佳贡献者。具体地,可以将列为对于被选网格中的一个的最佳贡献者的每个贡献者看作视口所示的区域的最佳贡献者的候选。确定在所有被选网格上由每个候选提交的照片的总数。然后,基于确定的总数排序候选,以便确定用于视口区域的最佳贡献者。例如,可以与在视口中显示的地图一起显示用于该区域的前10名贡献者。

类似的过程可以用于由用户选择的特定地理位置。具体地,可以将每个照片的经/纬度坐标转换成地理位置的列表,诸如坐标所处的街区、市、县州和国家。然后,对所列表的地理位置的每一个,更新计数器以便表示对该地理位置用户提供的照片的数目。例如,在图10中,用户选择地理位置弗吉尼亚。可以通过如由计数器保持的、由被选地理位置中的每个贡献者提供的照片的数目或热门照片的数目,获得在排行榜906中列出的最佳贡献者。

通过提供用于任意区域,诸如视口中所示的任意地理位置或任意区域的最佳贡献者的列表,公开的系统激励贡献者提供更多内容。对图9-11中所示的照片实现类似的处理。例如,其他用户能够表示他们喜欢贡献的照片的程度。根据一个方面,可以使用该信息来确定对指定区域显示的那些照片,以及识别为最佳贡献者的那些贡献者。

图12的流程图1200是可以根据本文所述的技术的方面,由一个或多个计算设备,诸如服务器计算设备110和/或客户端计算设备120、130和140实现的步骤的示例。可以接收对处于第一缩放等级的地图的请求(块1210)。可以访问与地图相关联的地理位置的层级结构(块1220)。可以确定将以第一缩放等级显示的地理位置的层级结构内的一个或多个等级(块1230)。提供地理位置的层级结构内对应于确定的等级的地理位置(块1240)。确定缩放等级是否已经改变成第二缩放等级(块1250)并且第一和第二缩放等级之间的转变是否导致地图越过缩放等级界限(块1260)。如上所述,缩放等级界限是地图将在至少一个父位置和父位置的对应子位置之间转换的缩放等级。如果没有越过缩放等级界限,则可以显示对应于初始确定的层级结构等级的地理位置。否则,确定在将显示的地理位置的层级结构内的适当等级(块1270)。然后,以第二缩放等级显示对应于确定的层级结构等级的地理位置(块1280)。

大多数上述可替选示例不是互斥的,而是可以以各种组合来实现以获得独特的优势。由于可以利用上述特征的这些和其他变化和组合而不背离权利要求所限定的主题,应当通过示例的方式而不是由权利要求所限定的主题的限制的方式采用对实施例的上述描述。例如,前述操作不是必须按照上文所述的严格的顺序执行。相反,可以按照不同顺序或同时处理各种步骤。除非另外规定,还可以省略步骤。此外,提供本文所述的示例,以及措辞为“诸如”、“包括”等的子句不应当被解释为将权利要求的主题限制于特定示例,相反,示例旨在仅仅示出许多可能的实施例中的一个。进一步地,不同图中相同的附图标记可以表示相同或类似的元件。

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