使用非光栅地图数据的修改来渲染地图图像的制作方法
【专利摘要】为了提供用于在客户端设备渲染对应于选择的地理区域的两个不同地图图像,地图服务器生成矢量描述符,矢量描述符中的每个矢量描述符根据用于渲染第一地图图像的非光栅格式指示相应的地图元素的几何性。地图服务器然后向客户端设备提供矢量描述符。在接收将在客户端设备渲染选择的地理区域的第二地图图像的指示时,地图服务器生成指示一个或者多个矢量描述符的集合的修改指示,一个或者多个矢量描述符中的每个矢量描述符对应于在第一地图图像和第二地图图像中的一个而非两个地图图像中被渲染的相应的地图元素并且向客户端设备提供修改指示,以使得客户端设备可以使用矢量描述符中的至少一些矢量描述符和修改指示来渲染第二地图图像。
【专利说明】使用非光栅地图数据的修改来渲染地图图像
【技术领域】
[0001]本公开内容涉及地图渲染系统(诸如电子地图显示系统),并且更具体地涉及一种其中使用以非光栅格式提供的地图数据来渲染地图图像的地图渲染系统。
【背景技术】
[0002]这里提供的【背景技术】描述是为了一般地呈现公开内容的背景。当前名义的发明人的工作在这一【背景技术】章节中描述该工作的程度上以及该描述的可以在提交时未另外限定为现有技术的方面既未明确地也未暗示地承认为相对于本公开内容的现有技术。
[0003]如今,地理区域的地图可以由在包括移动电话、汽车导航系统、手持全球定位系统(GPS)单元和计算机的广泛多种设备上运行的软件应用显示。根据应用和/或用户偏好,地图可以显示地形数据、街道数据、城市运输(transit)信息、交通数据等。另外,一些应用在交互模式中显示地图,以使得用户可以例如操作各种控件(单选按钮、滚动栏等)以改变缩放水平或者向新位置摇动“相机”。用户在一些情况下还可以选择或者取消选择某些信息的显示。例如用户可以操作适当控件以接通自行车道(trail)的显示。
[0004]为了渲染地图图像,设备通常从专用服务器接收光栅图像。例如,地图服务器可以在因特网上操作并且对于指定的地理区域向各种客户端设备以可移植网络图形(PNG)格式提供图像。尽管光栅图像在客户端设备相对容易渲染,但是光栅图像数据通常需要用于全面地图的大量存储空间。而且,难以在客户端设备高效地操纵光栅图像。例如,为了放大选择的区域,要么从服务器取回新的光栅图像数据,要么放大可用光栅图像数据而质量损失明显。
【发明内容】
[0005]在一个实施例中,一种用于向客户端设备提供地图数据的计算机实施的方法包括生成用于在客户端设备渲染选择的地理区域的第一地图图像的若干矢量描述符,其中每个矢量描述符根据矢量图形格式指示相应的地图元素的几何性。该方法还包括:使矢量描述符经由通信网络向客户端设备传输;接收将在客户端设备渲染选择的地理区域的第二地图图像的指示,以使得第二地图图像不同于第一地图图像;生成指示一个或者多个矢量描述符的集合的修改指示,一个或者多个矢量描述符中的每个矢量描述符对应于在第一地图图像和第二地图图像中的一个而非两个地图图像中被渲染的相应的地图元素;并且使修改指示经由通信网络向客户端设备传输,以用于使用矢量描述符中的至少一些矢量描述符和修改指示来渲染第二地图图像。
[0006]在另一实施例中,一种有形非瞬态计算机可读介质存储指令,该指令在由一个或者多个处理器执行时使一个或者多个处理器以非光栅格式生成用于选择的地理区域的地图数据,其中该地图数据在客户端设备可解译来以光栅格式生成第一地图图像,并且使地图数据经由通信网络向客户端设备传输。而且,指令在由一个或者多个处理器执行时使一个或者多个处理器从客户端设备接收将在客户端设备渲染选择的地理地区的第二地图图像的指示;生成描述对于地图数据的一个或者多个修改的修改指示,一个或者多个修改用于将第一地图图像变换成第二地图图像;并且使修改指示经由通信网络向客户端设备传输,以用于使用地图数据的至少一部分和修改指示在客户端设备以光栅格式渲染第二地图图像。
[0007]在另一实施例中,一种在计算设备中用于生成地图图像的方法包括经由通信网络接收用于渲染选择的地理区域的第一地图图像的若干矢量描述符,其中每个矢量描述符根据矢量图形格式指示相应的地图元素的几何性;并且使用多个矢量描述符来渲染第一地图图像。该方法还包括经由通信网络接收修改指示,该修改指示指示若干矢量描述符的用于渲染选择的地理区域的第二地图图像的修改;并且使用矢量描述符中的至少一些矢量描述符和修改指示来渲染选择的地理区域的第二地图图像。
[0008]在又另一实施例中,一种在通信网络中操作的计算设备包括:处理器、耦合到处理器的存储器、用于经由通信网络通信的网络接口以及存储在存储器中的若干例程。第一例程在处理器上执行以使对应于选择的地理区域的地图数据的请求经由网络接口而被传输。第二例程在处理器上执行以响应于请求、使用经由网络接口接收的多个矢量描述符来渲染第一地图图像,其中多个矢量描述符处于非光栅格式。第三例程在处理器上执行以使对应于选择的地理区域的修改数据的请求经由网络接口而被传输。第四例程在处理器上执行以使用多个矢量描述符中的至少一些矢量描述符和修改数据来渲染第二地图图像。
【专利附图】
【附图说明】
[0009]图1是根据一个实施例的系统的框图,在该系统中,服务器向客户端设备提供用于渲染地图图像的地图数据并且随后提供修改数据用于使用原先提供的地图数据中的一些或者所有地图数据和修改数据来渲染相同地理区域的另一地图图像;
[0010]图2是图示用于在可以在图1的系统中操作的客户端设备渲染对应于某个地理区域的两个地图图像的示例信息交换的交互图;
[0011]图3是图示可以在图1的系统中实施的用于结合先前提供的地图数据渲染附加地图特征的向客户端设备的示例信息传送的交互图;
[0012]图4是图示可以在图1的系统中实施的用于修改包括在先前提供的地图数据中的地图特征的属性的向客户端设备的示例信息传送的交互图;
[0013]图5是图示可以在图1的系统中实施的用于修改包括在先前提供的地图数据中的地图特征的向客户端设备的示例信息传送的交互图;
[0014]图6是图示可以在图1的系统中实施的用于修改与多个地图元素关联并且包括在先前提供的地图数据中的地图特征的向客户端设备的示例信息传送的交互图;
[0015]图7是用于在可以在图1的系统中操作的地图服务器生成用于若干地图图像的地图数据的示例方法的流程图;
[0016]图8是用于在可以在图1的系统中操作的地图服务器生成先前提供的地图数据的修改的描述的示例方法的流程图;
[0017]图9是用于在可以在图1的系统中操作的客户端设备渲染地图图像的示例方法的流程图;
[0018]图1OA是可以在图1的系统中操作的客户端设备显示的示例基本地图;以及[0019]图1OB是可以在用户在显示图1OA的基本地图的客户端设备经由交互式用户界面选择运输地图类型之后显示的示例运输地图。
【具体实施方式】
[0020]在以下讨论的系统和方法的实施例中,地图服务器向客户端设备高效地提供用于渲染地图图像的地图数据。根据一些实施例,在地图服务器向客户端设备提供用于渲染对应于某个区域或者地理区域的第一地图图像(例如基本地图图像)的地图数据之后,地图服务器向客户端设备提供用于渲染对应于相同区域的不同的第二地图图像(例如交通地图图像)的修改数据。客户端设备然后可以使用先前提供的用于渲染第一地图图像的地图数据和修改数据来渲染第二地图图像,并且地图服务器无需必然地向客户端设备不止一次地提供用于渲染第一地图图像和第二图像二者时使用的地图数据。根据情境,修改数据可以包括向先前提供的地图数据的一个或者多个添加、先前提供的地图数据的一个或者若干部分的删除、或者先前提供的地图数据的一个或者若干部分的修改。
[0021]在一个示例实施例中,地图服务器以非光栅格式提供地图数据,并且客户端解译地图数据中的一些或者所有地图数据以生成第一地图图像和第二地图图像作为相应的光栅图像。地图数据还可以包括用于指定将与个别或者集体地图元素一起显示的地图标签的文本数据。为了渲染第一地图图像,客户端设备可以经由通信网络请求来自地图服务器的地图数据,并且作为响应,地图服务器可以提供根据矢量图形格式描述地图内容的地图数据。地图数据可以指定各种几何形状(例如使用点和连接点的路径的数学描述)并且指示应当如何对这些形状进行定位用于渲染各种地图元素,诸如公路、建筑物、公园、水体等。例如,不指定组成线段的光栅图像的每个像素,线段的基于矢量的描述可以指定线段的两个端点并且指示两个端点由直线连接。地图元素的基于矢量的描述这里可以称为矢量描述符或者简称为矢量,并且一个或者若干矢量描述符的集合可以称为矢量数据。另外,在一些场景中的个别地图元素(例如建筑物)或者若干地图元素(例如大学校园的建筑物、公园、自行车路径和行人路径)的集合可以定义地图特征(或者简称为特征)。在一个实施例中,向地图特征指派唯一标识符,地图服务器和地图客户端可以利用该唯一标识符来标识。一般而言,可以使用一个或者多个矢量描述符来描述地图特征。
[0022]客户端设备可以例如响应于相应的用户命令来请求用于渲染第一地图图像和第二地图图像的地图数据。用户命令可以指示不同地图类型、不同缩放水平等的选择。根据示例场景,用户选择地理区域和基本地图类型(例如图示公路、街道、主要地标等的地图的类型)。客户端设备生成渲染地图图像的请求并且向地图服务器传输该请求,作为响应,地图服务器以矢量图形格式(或者适合用于在客户端设备渲染光栅图像的其它非光栅格式)提供地图数据。地图数据可以包括若干矢量描述符并且在一些情况下包括附加数据(诸如样式数据、标签数据等)。更具体而言,标签数据可以包括美国信息互换标准代码(ASCII)格式、Unicode格式或者任何其它适当字符格式的字符。客户端设备然后解译地图数据以在客户端设备上渲染地图图像并且显示地图图像。为了继续以上场景,用户然后可以选择相同地理区域的运输地图,并且作为响应,客户端设备可以生成对应于运输地图的新地图图像将被生成的指示并且向地图服务器传输该指示。根据一个实施方式,客户端设备生成新类型的地图数据的请求(例如“提供用于区域R的运输地图的地图数据”),并且地图服务器检查与客户端设备的先前通信以确定什么种类的地图数据先前被发送到客户端设备并且因此已经在客户端设备可用。在另一实施方式中,客户端设备除了请求新类型的地图数据之外还指定选择的区域的什么种类的地图数据已经在客户端设备可用(例如“假如我已经有用于区域R在相同缩放水平的基本地图的地图数据,那么提供用于区域R的运输地图的地图数据”)。地图服务器在这一情况下无需知道什么地图数据(如果有)先前被发送到客户端设备。
[0023]地图服务器然后可以确定必须向已经在客户端设备可用的地图数据添加、从地图数据去除或者在地图数据中修改什么地图元素和标签。例如地图服务器可以确定某一区域和某一缩放水平的基本地图与相同区域和相同缩放水平的运输地图如何不同并且生成适当修改指示。例如修改指示可以包括用于渲染不包括在基本地图图像中的地铁线路的矢量描述符。地图服务器然后向客户端设备提供修改指示,以用于至少部分地使用被提供用于渲染基本地图图像的地图数据以及修改指示来渲染运输地图图像。
[0024]参照附图进一步讨论其中向客户端设备高效地提供用于渲染地图图像的地图数据的这些和其它示例场景。已经通过省略某些要素来简化各图中的一些图以便更清楚地示出其它要素。除非如可以在对应书面描述中明确地叙述,这样省略一些图中的要素不一定表明在示例实施例中的任何实施例中存在或者不存在特定要素。
[0025]首先参照图1,可以在系统10中实施用于传送地图数据的技术。在一个实施例中,系统10包括地图服务器12、经由网络16通信地耦合到地图服务器12的客户端设备14以及通信地耦合到地图服务器12的地图数据库18。网络16可以是广域网(WAN)(诸如因特网)、局域网(LAN)或者任何其它适当类型的网络。根据实施例,地图数据库18可以如图1中所示经由网络16或 者经由另一通信链路耦合到地图服务器12。为了简化,在图1中图示地图服务器12、客户端设备14和地图数据库18的仅一个实例。然而,在其它实施例中,系统10可以包括多于一个的地图服务器12、多于一个的客户端设备14和/或多于一个的地图数据库18。
[0026]地图服务器12可以包括处理器20和以例如可以直接地(例如,作为编译代码)或者间接地(例如,作为由在处理器20上执行的另一应用解译的脚本)在处理器20上可执行的计算机指令的形式存储地图控制器30的计算机可读存储器22。计算机可读存储器22例如可以包括用于存储计算机指令和计算机指令在运行时间对其操作的数据的易失性存储器(例如随机存取存储器或者RAM)以及在一个实施例中包括持久存储器(诸如硬盘)。在一个实施例中,地图控制器30包括生成用于各种地图元素和/或地图特征的矢量数据的动态特征控制器32,这些地图元素和/或地图特征包括作为地图内容向客户端设备14提供的一个或者多个地图元素。动态特征控制器32还可以被配置用于确定地图图像相对于对应于相同地理区域的另一地图图像的基于矢量的描述方面的不同、生成适当修改指示并且向客户端设备12提供修改指示。换言之,不提供地图图像的基于矢量的完整描述,动态特征控制器32可以高效地提供另一地图图像的先前提供的基于矢量的描述的修改的描述。
[0027]根据一个实施例,为了生成修改描述,动态特征控制器32比较对应于某个地图图像的矢量数据串行化表示和对应于另一地图图像的矢量数据串行化表示。例如动态特征控制器32可以请求用于在缩放水平Z用于区域R的基本地图的矢量数据,并且作为响应,地图服务器18可以提供一系列矢量描述符V1, V2, V5,…VN。在另一时间,动态特征控制器32可以请求用于在缩放水平Z用于区域R的运输地图的矢量数据,并且作为响应,地图服务器18可以提供一系列矢量描述符V1, V3,...\0基于两个矢量描述符集合,动态特征控制器32可以确定,在缩放水平Z对于区域R,(i)基本地图和运输地图二者包括对应于矢量描述符V1的地图元素,(ii)基本地图而非运输地图包括对应于矢量描述符V2和V5的地图元素,并且(iii)运输地图而非基本地图包括对应于矢量描述符V3的地图元素。动态特征控制器32可以生成修改指示,以指示为了使用先前提供的用于渲染基本地图图像的矢量数据来生成运输地图图像,向先前提供的矢量数据添加矢量描述符V3,而从先前提供的矢量数据去除矢量描述符V2和V5。更具体而言,动态特征控制器32可以生成包括一个或者多个添加指示和一个或者多个去除指示的修改指示,这些指示中的每个指示可以标识操作(例如添力口、去除)和操作符(例如矢量描述符、地图特征或者地图元素)。
[0028]另外,在一些实施例中,动态特征控制器32可以确定,虽然在生成第一地图图像和第二地图图像二者时渲染某个地图元素,但是必须修改地图元素的一个或者多个性质以在渲染第二地图图像时重用地图元素。例如一些或者所有地图元素可以与相应的深度值关联,这些深度值指示将这些地图元素相对于其它部分或者完全重叠的地图元素定位于相同区域中。作为更具体的示例,可以在基本地图图像中在深度D1但是在运输地图图像中在深度D2渲染描绘公路段并且对应于矢量描述符Vi的地图元素。在这一场景中,动态特征控制器32可以生成修改指示,该修改指示指示应当将先前向客户端设备14提供的与矢量描述符Vi关联的深度更新成深度D2。
[0029]进而另外,除了矢量数据之外,动态特征控制器32还可以提供用于添加或者修改的地图特征的标签数据作为修改指示的一部分或者备选地作为分离指示。标签数据可以包括任何适当格式的字符并且在一些实施例中包括对应标签属于的地图特征或者地图特征组的标识符。
[0030]在一些实施例中,除了矢量数据之外,地图控制器30还可以提供指示应当如何表现矢量数据的样式数据。更具体而言,样式数据可以描述这样的可视特性或者性质为线条粗度(例如以像素为单位的宽度)、线条颜色、一个或者多个填充颜色等。在一个实施例中,提供用于可以向应用于矢量数据的各种可视样式的样式数据。地图服务器还可以指定客户端设备应当将哪些格式样式应用于地图元素的各种基于矢量的描述(这里也称为矢量描述符或者简称为矢量)。另外,在一些实施例中,地图服务器指示哪些可视样式对于特定地图类型(诸如地形、运输、交通、自行车道等)适用于地图元素的基于矢量的描述。为此,可以定义各自由相应的唯一样式标识符标识的若干样式。
[0031]根据该实施例,地图控制器30可以在单个电子消息或者一系列电子消息中向客户端设备14以非光栅格式提供用于某个地理区域和缩放水平的地图数据(诸如矢量数据)。另外,在一个实施例中,地图控制器30生成地图数据作为地图瓦片描述符的集合,从而每个地图瓦片描述符描述地图瓦片(即,某个大小(例如256 X 256个像素)的地图图像的一部分)。由个别地图瓦片代表的地理区域的大小可以依赖于地图瓦片与之关联的缩放水平,从而在更低缩放水平的单个地图瓦片图示比在更高缩放水平的单个地图瓦片更大的地理区域。地图控制器30可以根据矢量图形格式生成每个地图瓦片描述符,并且客户端设备(诸如图1的客户端设备14)可以本地生成用于每个瓦片的光栅图像。
[0032]继续参照图1,客户端设备14可以包括用于执行指令的处理器50以及用于存储指令和数据的存储器52。客户端设备14还可以包括分别用于从用户接收输入和向用户提供输出的输入设备54和输出设备56。例如,输入设备54可以包括键盘、鼠标和触摸屏中的一项或者多项,并且输出设备56可以包括显示器或者监视器设备(诸如触摸屏或者“常规”(仅输出的)屏。客户端设备14可以包括用于控制输入设备54和输出设备56以便实施交互式用户界面的各种软件部件(诸如设备驱动器、操作系统(OS)事件处置器等)。另夕卜,在处理器50上执行的软件应用可以利用这些软件部件以提供特定于应用的用户界面。
[0033]根据该实施例,客户端设备14可以是个人计算机(诸如桌面型计算机、膝上型计算机或者平板PC)、工作站、便携式通信设备(诸如智能电话)或者任何其它适当的计算设备。在一个实施例中,客户端设备14是对于某些计算和/或存储功能依赖于另一计算设备的所谓瘦客户端。例如在一个这样的实施例中,存储器52仅包括易失性存储器(诸如RAM),并且具有持久存储器的程序和/或存储单元在客户端设备14外部。在另一实施例中,存储器52包括易失性存储器部件和持久存储器部件二者。
[0034]浏览器应用60可以包括在处理器50上执行的计算机可读指令集。一般而言,浏览器应用60访问包括内容(诸如文本、图像、嵌入式视频等)和按照标记语言(诸如超文本标记语言(HTML))的指令的网页,并且根据按照标记语言的指令在输出设备56上渲染内容。为此,浏览器应用60可以实施用于生成和处理数据包的功能(其符合超文本传送协议(HTTP)、解析HTML内容、根据安全套接字层(SSL)协议编码数据、请求和验证数字证书等)以及用于接收与导航有关的各种用户命令、渲染并且管理网页数据的用户界面功能。在一些实施例中,浏览器应用60被配置用于解译在网页中提供的按照脚本语言(例如Javascript)的指令。
[0035]动态地图渲染引擎62可以作为浏览器应用60的部件来执行。然而,在其它实施例中,与地图渲染引擎62相似的软件模块可以作为单独的应用或者作为另一应用的部件来执行。根据该实施例,动态地图渲染引擎62可以是插件(例如延伸浏览器应用60的功能并且在处理器50上执行的编译指令集)、脚本(例如浏览器应用60在运行时间解译的按照脚本语言的指令集)或者另一适当的软件部件。根据一个示例场景,在操作客户端设备14的用户访问包括嵌入式交互地图的网页时下载动态地图渲染引擎62。更具体而言,网页可以包括至在线地图服务器和某一地理位置的第一超链接以及至动态地图渲染引擎62的副本的第二超链接,需要该副本以渲染根据第一超链接从在线地图服务器接收的地图数据。
[0036]动态地图渲染引擎62可以例如经由浏览器应用60的用户界面来提供交互式控件。交互式控件可以允许用户选择地理地区或者区域、地图类型(例如基本、交通、运输)、缩放水平等。根据示例场景,用户首先请求地理区域的基本地图,并且然后请求相同区域的另一类型的地图。动态地图渲染引擎62可以响应于用户命令来请求并且按照矢量图形格式接收地图数据。
[0037]在操作期间,动态地图渲染引擎62可以从地图服务器12接收矢量数据(并且在一些实施例中接收样式数据)、使用接收的矢量数据来渲染相应的地图图像并且使地图图像显示于通过浏览器应用60分配的某一区域内。例如,浏览器应用60可以创建用于显示地图元素的HTML5画布元素。动态地图渲染引擎62还可以从地图服务器12接收修改指示,该修改指示指示用于渲染另一地图图像而对于接收的矢量数据的一个或者多个修改。
[0038]为了简化,图示客户端设备14具有单个处理器50。然而,客户端设备14在其它实施例中可以例如包括附加的处理单元(未示出)(诸如被配置用于有助于在输出设备56上的图像渲染的图像处理单元(GPU))。另外,在一个实施例中,浏览器应用60可以利用图形函数库以高效地生成地图图像。例如,存储器52可以存储具有用于渲染图形的功能
的插件(诸如OpenGL^或者Direct3D_"库),在客户端14上执行的包括浏览器应用
60的各种应用可以经由应用编程接口(API)访问这些图形。在另一实施例中,存储器52例如存储特别适合用于浏览器应用的插件(诸如WebGL)。此外,在一些实施例中,存储器52存储有助于经由输出设备56高效渲染图像的附加软件部件。例如,存储器52可以存储
Adobe+ Fl ash'插件或者03D插件。
[0039]注意到,一般而言,动态地图渲染引擎62可以在任何适当应用中操作。例如,客户端设备70可以例如是便携式设备(诸如智能电话),在该便携式设备中,动态地图渲染引擎62在地图绘制应用74中操作。与浏览器应用60相似,地图绘制应用74可以包括存储在存储器72中并且可在客户端设备70的一个或者多个处理器(未示出)上执行的指令集。在一些实施方式中,地图绘制应用74利用由在客户端设备70上执行的浏览器应用提供的联网功能(例如经由对应的浏览器API)。在另一实施方式中,地图绘制应用74包括至少部分浏览器功能(诸如用于访问地图服务器12的支持TCP、IP、HTTP等的通信栈)。
[0040]接着,为了更好地举例说明地图服务器和客户端设备在图1的系统或者相似环境中的操作,参照图2-图6中所示交互图考虑若干场景。具体而言,参照图2讨论在地图服务器与客户端设备之间用于渲染某个区域的两个地图图像的示例信息交互,继而讨论若干具体场景:提供用于渲染附加地图元素的修改指示(图3)、提供用于修改渲染地图特征或者地图元素的深度的修改指示(图4)、提供用于去除包括在先前提供的地图数据中的地图特征或者地图元素的修改指示(图5)以及提供用于修改与若干地图元素关联的复合地图特征的修改指示(图6)。
[0041]参照图2,示例消息交换100涉及到包括在客户端设备(诸如图1的客户端14)中的或者另外与客户端设备关联的用户界面102、在客户端设备中操作的动态地图渲染引擎104和服务器106 (诸如图1的地图服务器12)。回顾图1,用户界面可以由浏览器60提供,而动态地图渲染引擎104和服务器106可以分别实施于部件62和12中。
[0042]响应于用户命令,用户界面102可以生成某一区域R1的基本地图数据的请求110并且向动态地图渲染引擎104提供该请求。可以例如传输请求110作为在其中实施部件102和104的客户端设备内部的电子消息。动态地图渲染引擎104转而可以生成将经由通信网络向服务器106传输的基本地图数据的请求112。请求112可以使用全球定位服务(GPS)坐标或者以任何其它适当方式来指定区域I。另外,请求112可以包括用于指定正在请求用于渲染基本地图的地图数据的地图类型指示。进而另外,在一些实施例中,请求102指示区域R1的任何基于矢量的地图数据是否已经在实施部件102和104的客户端设备可用。
[0043] 响应于请求112,服务器106可以生成响应114,该响应包括用于渲染基本地图图像的按照非光栅格式(诸如按照矢量图形格式)的地图数据。根据示例场景,响应114包括不依赖于任何先前提供的矢量数据的区域R1的基本地图图像的基于矢量的描述。换言之,响应114包括区域R1的基本地图图像的完整描述。响应114可以包括以任何适当方式(诸如以一个或者若干瓦片描述符T1, T2,…Tn)组织的地图数据。一般而言,可以提供任何数目的瓦片(包括单个瓦片)的地图数据。对于每个瓦片,响应112可以描述各种特征F1, F2等,这些特征中的每个特征可以根据适当的矢量图形格式使用一个或者若干矢量描述符来指定(如上所示,特征可以与单个地图元素或者一组地图元素关联)。特征可以对应于简单的地图元素(诸如建筑物)或者较复杂的地图元素的分组。在一些实施例中,响应114可以提供用于地图特征的唯一标识符以在将来的标识中使用。响应114在一些实施例中还包括样式数据,该样式数据指定地图元素的各种视觉属性。
[0044]动态地图渲染引擎104可以渲染基本地图图像、向用户界面102提供基本地图图像并且生成对应的事件116,以及在存储器中存储接收的地图数据(和样式数据(在可用时))以供将来使用。在一个实施例中,动态地图渲染引擎104还存储地图数据与基本地图关联的指不。
[0045]在图2的场景中,用户以后决定将地图类型从基本改变成运输而不改变地理坐标,并且经由用户界面102激活适当的控件。作为响应,用户界面102生成运输地图数据的请求120并且向动态地图渲染引擎104转发请求120,该动态地图渲染引擎转而向服务器106提供将在客户 端设备渲染不同的地图图像的指示121。在一个实施例中,指示121是与请求112相似的运输地图数据的请求。在另一实施例中,指示121特别请求用于修改先前提供的地图数据以便渲染运输地图图像的修改数据。
[0046]在一个实施例中,服务器106向客户端设备提供作为一系列电子消息122^..122N的修改指示。然而,在另一实施例中,修改指示被作为单个消息来提供。消息122^..122ν*的每个消息可以包括将如何修改对应的瓦片ιν..τΝ的矢量数据的指示。然而,在一些场景中,仅修改响应114中描述的瓦片ιν..τΝ*的一些瓦片。例如,描绘水体的地图瓦片在显示为基本地图的一部分或者运输地图的一部分时可以具有相同的外观。
[0047]对于被修改的每个瓦片,消息122i可以提供一个或者多个修改描述符M1, M2,…Mm。一般而言,修改描述符可以指定用于将向先前提供的地图数据添加的地图元素的矢量描述符、标识在先前提供的地图数据中的待去除的地图元素、为在先前提供的地图数据中的地图元素的性质指定新值等。在一个实施例中,修改描述符M1, M2,…Mm中的每个修改描述符标识待执行的操作(诸如添加、删除、修改、修改深度等)并且还包括一个或者多个操作符或者参数(诸如用于被添加的地图特征或者地图元素的矢量描述符、被去除的地图特征或者地图元素的标识符等)。
[0048]在接收消息122^..122n时,动态地图渲染引擎104使用在消息114中提供的矢量数据中的一些或者所有矢量数据和在消息122^..122Ν中提供的修改指示来渲染用于请求的运输地图图像的瓦片。更具体而言,动态地图渲染引擎104可以解译根据消息122^..122ν修改的先前提供的矢量描述符以渲染光栅运输地图图像,并且生成事件126以使运输地图图像经由用户界面102来渲染。动态地图渲染引擎104还可以在存储器中存储修改的地图数据。在一个实施例中,动态地图渲染引擎104存储原先提供的地图数据和修改的地图数据作为地图数据的不同版本。
[0049]在图3中所示的示例消息交换150期间,地图服务器106经由相应的消息152^..152ν向动态地图渲染引擎104提供附加地图特征的矢量描述符。附加地图特征与先前提供的地图数据中的一些或者所有地图数据一起用来在实施用户界面102和动态地图渲染引擎104的客户端设备渲染新的地图图像。在一个实施例中,消息1521..152Ν描述向某一地图瓦片的添加。在其它实施例中,消息152^..152N不与任何特定瓦片关联。
[0050]消息152^..152ν中的每个消息可以包括具有一个或者多个地图元素的地图特征的按照矢量图形格式或者其它适当的非光栅格式的描述。消息152还可以包括深度指示,该深度指示指定对应的地图特征如何相对于被布置在近似相同位置的另一地图特征或者地图元素来渲染。例如,经由消息152^..152Ν之一添加的新的地图特征可以是铁路轨道段,并且先前提供的可以包括为公路段的地图特征。根据新的地图特征和先前提供的地图特征的相应的深度指示,可以在铁路轨道和公路相交的点在公路段之上或者以下渲染铁路轨道段。
[0051]在接收消息152^"1521<时,动态地图渲染引擎104可以渲染新的地图图像并且生成事件156,以便使新的地图图像显示于用户界面102。在一个实施例中,动态地图渲染引擎104还在存储器中存储扩充的地图数据作为地图数据的新版本。
[0052]参照图4,示例消息交换200可以在服务器106确定在新的地图图像中在新深度渲染包括在先前提供的地图数据中的某一地图特征时发生。服务器106可以生成并且向动态地图渲染引擎104传输修改指示202,该修改指示对于由唯一特征标识符标识的地图特征指示将渲染地图特征的新深度。在另一实施例中,修改指示202指示用于若干地图特征或者地图元素的新深度值。在接收修改指示202时,动态地图渲染引擎104可以按照修改指示202渲染新的地图图像并且生成事件204,以便使新的地图图像显示于用户界面102。
[0053]另外,图5的示例消息交换250可以在服务器106确定在新的地图图像中不渲染包括在先前提供的地图 数据中的某一地图特征时发生。服务器106可以生成并且向动态地图渲染引擎104传输修改指示252,该修改指示例如使用唯一特征标识符来标识地图特征。在另一实施例中,修改指示252使用地图元素的适当标识符来标识个别地图元素。另外,在一些实施例中,修改指示252标识待去除的若干地图特征或者地图元素。在接收修改指示252时,动态地图渲染引擎104可以按照修改指示252渲染新的地图图像并且生成事件254,以便使新的地图图像显示于用户界面102。
[0054]图6图示示例消息交换300,在该消息交换期间,服务器106向动态地图渲染引擎104提供用于修改具有若干子特征或者元素的复合地图特征的修改数据。例如,地图特征F1可以包括子特征Fm、F"、F1^4和Fm。在渲染地图特征F1作为基本地图的一部分时,可以使用子特征Fm、F"、F1^3> F1^4和Fn中的每个子特征。然而,在渲染地图特征F1作为运输地图的一部分时,可以仅使用子特征Fm和Fm来渲染地图特征匕。在一个实施例中,服务器106生成指示应当去除地图特征F1的消息302。与以上参照图5讨论的示例场景相似,消息302包括地图特征F1的唯一标识符。服务器106然后分别生成用于添加Fm和F1^5的消息304和306。与图3的示例场景相似,消息304和306可以包括按照非光栅格式(诸如矢量图形格式)的对应的地图特征或者地图元素的描述。在接收消息302、304和306时,动态地图渲染引擎104可以使用地图特征F1的新版本来渲染新的地图图像并且生成事件310,以便使新的地图图像显示于用户界面102。
[0055]接着参照图7-图9讨论可以在图1的系统或者相似环境中操作的计算设备中实施的若干示例方法。可以实施这些方法作为使用任何适当的编程语言开发并且存储在有形的非瞬态计算机可读介质(诸如一个或者若干硬盘驱动器)上并且可在一个或者若干处理器上执行的计算机程序。例如,可以在地图服务器12中实施图7和图8的方法,并且可以在客户端设备14中实施图9的方法。虽然可以在个别部件(诸如服务器或者个人计算机(PC))上实施图7-图9的方法,但是也有可能例如在云计算环境中使用若干计算机以分布式方式来实施这些方法中的至少一些方法。
[0056]首先参照图7,可以例如在地图服务器12的地图控制器30或者服务器106的相似部件中实施用于生成若干地图图像的地图数据的示例方法350。根据一个实施例,在块352,生成用于渲染某一区域的第一地图图像的矢量描述符。矢量描述符可以符合矢量图形格式并且描述相应的地图元素。在一些实施例中,可以根据各自包括一个或者多个地图元素的地图特征来对矢量描述符分组。另外,在一些实施例中,可以提供矢量描述符作为非光栅地图数据的一部分,该非光栅地图数据还包括用于高效地渲染和重新渲染矢量数据、基于文本的标签数据、图标或者符号(诸如道路遮蔽)等的样式数据。
[0057]接着在块354,向客户端设备提供矢量描述符。例如,可以经由通信网络(诸如图1的网络16)传输矢量描述符作为一个或者若干电子消息。
[0058]在块356,接收用于渲染相同区域的第二地图图像的数据的请求。在一些场景中,例如,如在图2中的交互图中所示,响应于用户在客户端设备选择不同的地图类型来传输请求。在块358生成并且在块360向客户端设备提供修改指示,该修改指示包括对于先前提供的矢量描述符的一个或者若干修改的描述。
[0059]在另一场景中,响应于用户选择将渲染对应于相同区域和相同地图类型的地图图像的新缩放水平来传输在块356接收的请求。例如,在块352生成的矢量描述符可以描述地理区域R的基本地图类型在缩放水平Z1的若干瓦片。在用户选择缩放水平Z2并且在块356发出数据的适当请求之后,可以分别在块358和360生成并且向客户端设备提供修改指示。客户端设备可以根据修改指示添加、去除或者修改先前提供的矢量描述符以及重新缩放矢量描述符中的一些或者所有矢量描述符,以在缩放水平Z2渲染对应的地图元素。作为更具体的示例,在块354提供的矢量描述符可以包括在缩放Z1的公园的基于矢量的描述,并且公园的基于矢量的相同描述可以用来在缩放水平Z2重新渲染公园作为修改的地图图像的一部分。
[0060]参照图8,可以例如在地图服务器12的地图控制器30或者服务器106的相似部件中实施用于生成先前提供的地图数据的修改的描述的示例方法400。在一个实施例中,在以上讨论的方法350的块356-块360执行方法400的步骤中的至少一些步骤。
[0061]在块402,接收将在客户端设备更新地图图像的指示。在块404,标识向先前提供的矢量描述符的添加并且生成对应的描述。在块406,标识先前提供的矢量描述符中的一些矢量描述符的删除,并且生成修改的对应的描述。如以上讨论的那样,在一些场景中某些地图特征的修改被表示为子特征中的一些子特征的删除和添加。在单个电子消息或者若干电子消息向客户端设备408传输修改指示(诸如对于矢量数据的修改的描述)。
[0062]图9是可以例如在动态地图渲染引擎62或者104中实施的用于渲染地图图像的示例方法450的流程图。在块452,接收某一区域或者地区的矢量描述符,并且在块454,使用接收的矢量描述符来渲染第一地图图像。为此,可以解译接收的矢量数据以生成光栅图像。
[0063]接着,在块456,例如从用户界面(诸如浏览器应用的界面)接收渲染第二地图图像的请求。第二地图图像如以上讨论的那样可以用于相同区域但是可以对应于不同的地图类型或者缩放水平。在块458,接收修改指示(诸如对于在块452接收的矢量描述符的一个或者多个修改的描述)。然后,使用在块452接收的矢量描述符中的一些或者所有矢量描述符和在块458接收的修改的描述来渲染第二地图图像。如以上讨论的那样,对于矢量数据的修改一般可以包括添加、删除、修改、深度改变等。
[0064]为了进一步举例说明以上讨论的技术的示例应用,图1OA和图1OB分别描绘对应于相同地理区域并且根据基本地图类型和运输地图类型显示的地图。在图1OA中描绘的基本地图的地图图像500可以包括多个地图元素(诸如公路和公园)的渲染500。如图1OB中所示,运输地图的地图图像可以包括地图图像500的地图元素以及在地图图像500的对应部分上叠加的地铁线路504。根据该实施例,可以定义地铁线路504为单个地图特征或者若干地图特征,每个地图特征对应于相应的轨道段。另外,可以在地图图像500的一部分之上渲染铁路符号506。根据该实施例,可以例如提供地铁符号506作为添加的地图特征或者地图元素、作为标签或者作为图标。在一个实施例中,地铁符号506被指定为可以用来从生成标准图标的服务器按照光栅格式取回标准地铁符号的统一资源定位符(URL)。
[0065]为了在已经在客户端设备渲染图1OA的地图图像之后在客户端设备生成图1OB的地图图像,地图服务器可以仅提供修改指示,该修改指示按照矢量格式描述对应于地铁线路504的一个或者多个地图特征。在一个实施例中,修改指示还提供深度指示,以使地铁线路504出现于在图1OA的地图图像中描绘的公路之上。另外,在一个实施例中,修改指示还包括地铁符号506作为标签或者图标的描述。
[0066]以下的附加考虑适用于前文讨论。贯穿本说明书,多个实例可以实施被描述为单个实例的部件、操作或者结构。虽然图示和描述一种或者多种方法的个别操作为分离操作,但是可以并行执行个别操作中的一个或者多个操作并且不要求按照所示顺序来执行操作。可以实施在示例配置中作为分离部件呈现的结构和功能为组合的结构或者部件。相似地,可以实施作为单个部件呈现的结构和功能为分离部件。这些和其它变化、修改、添加以及改进落入这里的主题内容的范围内。
[0067]这里将某些实施例描述为包括逻辑或者多个部件、模块或者机制。模块可以构成软件模块(例如在机器可读介质上或者在传输信号中体现的代码)或者硬件模块。硬件模块是能够执行某些操作的有形单元并且可以用某种方式来配置或者布置。在示例实施例中,一个或者多个计算机系统(例如单独的客户端或者服务器计算机系统)或者计算机系统的一个或者多个硬件模块(例如处理器或者处理器组)可以由软件(例如应用或者应用部分)配置为操作用于执行如这里描述的某些操作的硬件模块。
[0068]除非另有具体陈述,这里使用诸如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”
等字眼的讨论可以指代机器(例如计算机)的动作或者过程,该机器操控或者变换在一个或者多个存储器(例如易失性存储器、非易失性存储器或者其组合)、寄存器或者接收、存储、传输或者显示信息的其它机器部件内表示为物理(例如电子、磁或者光)量的数据。
[0069]如这里所使用的,对“一个实施例”或者“实施例”的任何引用意味着结合该实施例描述的特定单元、特征、结构或者特性包含于至少一个实施例中。短语“在一个实施例中”在说明书中的各处的出现不一定都指代相同的实施例。
[0070]可以使用表达“耦合”和“连接”及其派生词来描述一些实施例。例如,可以使用术语“耦合”来描述一些实施例以指示两个或者更多单元处于直接的物理接触或者电接触。然而,术语“耦合”还可以意味着两个或者更多单元不相互直接接触但仍然相互配合或者交互。实施例不限于该上下文中。
[0071]如这里所使用的,术语“包括”、“具有”或者其任何其它变化旨在于覆盖非排他的“包括”。例如,包括要素列表的过程、方法、物品或者装置不一定仅限于那些要素但是可以包括未明确列举的或者这样的过程、方法、物品或者装置固有的其它要素。另外,除非相反明示,“或者”指代包括意义的“或者”而不是排他意义的“或者”。例如,通过以下各项中的任一项满足条件A或者B:A为真(或者存在)并且B为假(或者不存在),A为假(或者不存在)并且B为真(或者存在),以及A和B 二者为真(或者存在)。
[0072]此外,对“一个/ 一种”的使用用来描述这里的实施例的单元和部件。这样做仅为了方便并且给出本发明的一般意义。应当解读这一描述包括一个/一种或者至少一个/一种,并且除非明显的是它另有含义,则单数还包括复数。
[0073]在阅读本公开内容时,本领域技术人员将认识用于如下系统和过程的更多附加备选结构和功能设计,该系统和过程用于通过这里的公开原理生成地图数据。因此,尽管已经图示和描述具体实施例和应用,但是将理解的是,公开的实施例不限于这里公开的精确构造和部件。可以在这里公开的方法和装置的布置、操作和细节上进行本领域技术人员将清楚的各种修改、改变和变化而不背离在所附权利要求中限定的精神实质和范围。
【权利要求】
1.一种用于经由通信网络向客户端设备提供地图数据的计算机实施的方法,所述方法包括: 生成用于在所述客户端设备渲染和显示选择的地理区域的第一地图图像的多个矢量描述符,其中每个矢量描述符根据矢量图形格式指示相应的地图元素的几何性; 使所述多个矢量描述符经由所述通信网络向所述客户端设备传输; 接收将在所述客户端设备渲染所述选择的地理区域的第二地图图像的指示,其中所述第二地图图像不同于所述第一地图图像; 生成指示一个或者多个矢量描述符的集合的修改指示,所述一个或者多个矢量描述符中的每个矢量描述符对应于在所述第一地图图像和所述第二地图图像中的一个而非两个地图图像中渲染的相应的地图元素;并且 使所述修改指示经由所述通信网络向所述客户端设备传输,以用于使用所述多个矢量描述符中的至少一些矢量描述符和所述修改指示来渲染和显示所述第二地图图像。
2.根据权利要求1所述的方法,其中生成所述修改指示包括: 标识不作为所述第一地图图像的一部分被渲染而是作为所述第二地图图像的一部分被渲染的地图元素; 在所述修改指示中提供对应于标识的所述地图元素的矢量描述符;并且在所述修改指示中提供对应于标识的所述地图元素的添加指示,以指示将使用提供的所述矢量来渲染标识的所述地图元素。
3.根据权利要求2所述的方法,其中生成所述修改指示还包括在所述修改指示中提供对应于标识的所述地图元素的深度指示,其中所述深度指示指示在还包括至少一个其它地图元素的区域内渲染标识的所述地图元素的顺序,并且其中标识的所述地图元素和所述至少一个其它地图元素重叠。
4.根据权利要求1所述的方法,其中生成所述修改指示包括: 标识作为所述第一地图图像的一部分被渲染而不作为所述第二地图图像的一部分被渲染的地图元素,其中标识的所述地图元素对应于向所述客户端设备传输的用于渲染所述第一地图图像的所述多个矢量描述符中的一个矢量描述符; 在所述修改指示中提供对应于标识的所述地图元素的所述多个矢量描述符中的所述一个矢量描述符的标识符;并且 在所述修改指示中提供用于指示将不渲染标识的所述地图元素的去除指示。
5.根据权利要求1所述的方法,其中生成所述修改指示包括: 标识相对于一个或者多个重叠地图元素在第一深度作为所述第一地图图像的一部分被渲染并且相对于一个或者多个重叠地图元素在第二深度作为所述第二地图图像的一部分被渲染的地图元素; 在所述修改指示中提供对应于标识的所述地图元素的所述第二深度的指示;并且在所述修改指示中提供用于指示将根据所述第二深度渲染标识的所述地图元素的改变深度指示。
6.根据权利要求1所 述的方法,其中生成所述修改指示包括: 标识包括多个地图元素的地图特征,其中所述地图特征使用所述多个地图元素的第一子集被渲染为所述第一地图图像的一部分并且使用所述多个地图元素的第二子集被渲染为所述第二地图图像的一部分,其中所述多个地图元素的所述第一子集包括对应于向所述客户端设备传输的用于渲染所述第一地图图像的所述多个矢量描述符中的一个矢量描述符的至少一个地图元素; 在所述修改指示中提供所述地图特征的标识符; 在所述修改指示中提供用于所述地图特征的所述多个地图元素的所述第二子集中的每个地图元素的相应的矢量描述符; 在所述修改指示中提供用于指示将不使用所述多个地图元素的所述第一子集渲染标识的所述地图特征的去除指示; 在所述修改指示中提供用于指示将使用所述多个地图元素的所述第二子集渲染标识的所述地图特征的添加指示。
7.根据权利要求1所述的方法,其中每个地图元素是公路和建筑物之一。
8.根据权利要求1所述的方法,其中所述第一地图图像对应于第一地图类型,并且其中接收将在所述客户端设备渲染用于所述选择的地理区域的所述第二地图图像的所述指示包括: 从所述客户端设备接收第二地图类型的指示,所述第二地图图像将根据所述第二地图类型在所述客户端设备被渲染;其中: 所述第一地图类型是基本地图、地形地图、运输地图和交通地图中的一个地图,并且 所述第二地图类型是基本地图、地形地图、运输地图和交通地图中的另一地图。
9.根据权利要求1所述的方法,其中所述第一地图图像对应于第一缩放水平,并且其中接收将在所述客户端设备渲染用于所述选择的地理区域的所述第二地图图像的所述指示包括: 从所述客户端设备接收第二缩放水平的指示,所述第二地图图像将根据所述第二缩放水平在所述客户端设备被渲染。
10.根据权利要求1所述的方法,其中所述第一地图图像和所述第二地图图像中的每个地图图像由相等大小的多个瓦片组成,并且其中生成所述修改指示包括为所述多个瓦片中的两个或者更多个瓦片生成对于与所述瓦片关联的所述多个矢量描述符的所述子集的相应的修改列表,其中在单独的电子消息中经由所述通信网络向所述客户端设备传输每个修改列表。
11.一种有形非瞬态计算机可读介质,具有在其上存储的指令,所述指令在由一个或者多个处理器执行时使所述一个或者多个处理器: 以非光栅格式生成用于选择的地理区域的地图数据,其中所述地图数据在客户端设备可解译来以光栅格式生成第一地图图像并且在所述客户端设备显示所述第一地图图像;使所述地图数据经由通信网络向所述客户端设备传输; 从所述客户端设备接收将在所述客户端设备渲染用于所述选择的地理区域的第二地图图像的指不; 生成描述对于所述地图数据的一个或者多个修改的修改指示,所述一个或者多个修改用于将所述第一地图图像变换成所述第二地图图像;并且 使所述修改指示经由通信网络向所述客户端设备传输,以用于使用所述地图数据的至少一部分和所述修改指示在所述客户端设备以所述光栅格式渲染和显示所述第二地图图像。
12.根据权利要求11所述的计算机可读介质,其中修改指示描述以下地图元素中的至少一个地图元素: (i)将结合所述地图数据中的至少一些地图数据被渲染以生成所述第二地图图像、不包括在所述地图数据中的新地图元素; (?)将在生成所述第二地图图像时不被渲染、包括在所述第一地图图像中的地图元素;以及 (iii)包括在所述第一地图图像中并且相对于一个或者多个重叠的地图元素根据第一顺序被渲染、将在生成所述第二地图图像时根据第二顺序被渲染的地图元素。
13.根据权利要求12所述的计算机可读介质,其中所述地图数据包括多个矢量描述符,每个矢量描述符根据矢量图形格式指示相应的地图元素的几何性。
14.根据权利要求13所述的计算机可读介质,其中: 所述地图数据包括与所述多个矢量描述符中的两个或者更多个矢量描述符关联的地图特征,其中所述地图特征与唯一特征标识符关联;并且 所述修改指示包括(i)所述地图特征的所述特征标识符,以及(ii)用于指示将在生成所述第二地图图像时不渲染所述地图特征的去除指示。
15.根据权利要求11所述的计算机可读介质,其中所述第一地图图像对应于第一地图类型,并且所述第二地图图像对应于第二地图类型,其中所述第一地图类型是基本地图、地形地图、运输地图和交通地图中的一个地图,并且所述第二地图类型是基本地图、地形地图、运输地图和交通地图中的另一地图。
16.根据权利要求11所述的计算机可读介质,其中所述第一地图图像对应于第一缩放水平,并且所述第二地图图像对应于第二缩放水平。
17.—种在计算设备中用于生成地图图像的方法,所述方法包括: 经由通信网络接收用于渲染用于选择的地理区域的第一地图图像的多个矢量描述符,其中每个矢量描述符根据矢量图形格式指示相应的地图元素的几何性; 使用所述多个矢量描述符来渲染所述第一地图图像; 使所述第一地图图像经由所述计算设备的用户界面而被显示; 经由所述通信网络接收修改指示,所述修改指示指示所述多个矢量描述符的用于渲染用于所述选择的地理区域的第二地图图像的修改; 使用所述多个矢量描述符中的至少一些矢量描述符和所述修改指示来渲染用于所述选择的地理区域的所述第二地图图像;并且 使所述第二地图图像经由所述用户界面而被显示。
18.根据权利要求17所述的方法,其中接收所述修改指示包括接收不包括在所述多个矢量描述符中的附加矢量描述符,其中所述附加矢量对应于作为所述第二地图图像的一部分而不作为所述第一地图图像的一部分而被渲染的地图元素。
19.根据权利要求18所述的方法,其中接收所述修改指示还包括接收对应于所述附加矢量描述符的标签,其中所述标签包括将与所述地图元素一起作为所述第二地图图像的一部分而一起被渲染的文本。
20.根据权利要求17所述的方法,其中接收所述修改指示包括接收在渲染所述第二地图图像时不使用所述多个矢量描述符中的一个矢量描述符的指示。
21.根据权利要求17所述的方法,其中接收所述修改指示包括接收相对于所述多个矢量描述符中的另一个或者多个矢量描述符、根据新顺序来渲染所述多个矢量描述符中的一个矢量描述符的指示。
22.根据权利要求17所述的方法,还包括: 从所述用户界面接收地图类型的选择和所述地理区域的选择; 生成对应于所述选择的地理区域和选择的所述地图类型的地图数据的请求,其中选择的所述地图类型是基本地图、地形地图、运输地图和交通地图中的一个地图;并且 使所述请求经由所述通信网络向地图服务器传输,其中接收所述多个矢量描述符是响应于所述请求的。
23.根据权利要求22所述的方法,其中所述地图类型是第一地图类型并且所述请求是第一请求,所述方法还包括: 从所述用户界面接收用于所述选择的地理区域的第二地图类型的选择,其中所述第二地图类型不同于所述第一地图类型; 生成对应于所述选择的地理区域和选择的所述第二地图类型的地图数据的第二请求,并且 使所述第二请求经由所述通信网络向所述地图服务器传输,其中接收所述修改指示是响应于所述第二请求的。
24.一种在通信网络中操作的计算设备,所述计算设备包括: 处理器; 耦合到所述处理器的存储器; 用于经由所述通信网络通信的网络接口; 耦合到所述处理器的显示设备; 存储在所述存储器中的第一例程,其在所述处理器上执行以使对应于选择的地理区域的地图数据的请求经由所述网络接口而被传输; 存储在所述存储器中的第二例程,其在所述处理器上执行以响应于所述请求、使用经由所述网络接口接收的多个矢量描述符来渲染第一地图图像并且使所述第一地图图像显示于所述显示设备上,其中所述多个矢量描述符按照非光栅格式; 存储在所述存储器中的第三例程,其在所述处理器上执行以使对应于所述选择的地理区域的修改数据的请求经由所述网络接口而被传输;以及 存储在所述存储器中的第四例程,其在所述处理器上执行以使用所述多个矢量描述符中的至少一些矢量描述符和所述修改数据来渲染第二地图图像并且使所述第二地图图像显示于所述显示设备上。
25.根据权利要求24所述的计算设备,还包括: 存储在所述存储器中的第五例程,其在所述处理器上执行以从所述计算设备的用户界面接收第一地图类型的选择,其中响应于所述第一地图类型的所述选择来传输地图数据的所述请求;以及 存储在所述存储器中的第六例程,其在所述处理器上执行以从所述用户界面接收第二地图类型的选择,其中所述第二地图类型不同于所述第一地图数据,并且其中响应于所述第二地图类型的所述选择来传输修改数据的所述请求。
26.根据权利要求25所述的计算设备,其中从基本地图、地形地图、运输地图和交通地图中的一个地图选择所述第一地图类型和所述第二地图类型中的每个地图类型。
27.根据权利要求25所述的计算设备,其中所述第三例程在修改数据的所述请求中提供所述第二地图类型的所述选择。
28.根据权利要求27所述的计算设备,其中所述第三例程在修改数据的所述请求中还提供响应于地图数据的所述请求而被接收的所述多个矢量描述符的指示。
29.根据权利要求24所述的计算设备,其中所述多个矢量描述符根据矢量图形格式描述与所述选择的地理区域关联的多个地图特征,其中所述多个地图特征中的每个地图特征与一个或者多个地图元素关联。
30.根据权利要求29所述的计算设备,其中所述修改数据标识所述多个地图特征中的作为所述第一地图图像的一部分被渲染而不作为所述第二地图图像的一部分被渲染的一个地图特征。
31.根据 权利要求29所述的计算设备,其中所述修改数据包括不作为所述第一地图图像的一部分被渲染而作为所述第二地图图像的一部分被渲染的新特征的按照矢量图形格式的描述。
【文档编号】G06T1/00GK103946836SQ201280057194
【公开日】2014年7月23日 申请日期:2012年9月25日 优先权日:2011年9月26日
【发明者】J·莫勒, S·伊根 申请人:谷歌公司