首页> 中国专利> 使用非光栅地图数据的修改来渲染地图图像

使用非光栅地图数据的修改来渲染地图图像

摘要

为了提供用于在客户端设备渲染对应于选择的地理区域的两个不同地图图像,地图服务器生成矢量描述符,矢量描述符中的每个矢量描述符根据用于渲染第一地图图像的非光栅格式指示相应的地图元素的几何性。地图服务器然后向客户端设备提供矢量描述符。在接收将在客户端设备渲染选择的地理区域的第二地图图像的指示时,地图服务器生成指示一个或者多个矢量描述符的集合的修改指示,一个或者多个矢量描述符中的每个矢量描述符对应于在第一地图图像和第二地图图像中的一个而非两个地图图像中被渲染的相应的地图元素并且向客户端设备提供修改指示,以使得客户端设备可以使用矢量描述符中的至少一些矢量描述符和修改指示来渲染第二地图图像。

著录项

  • 公开/公告号CN103946836A

    专利类型发明专利

  • 公开/公告日2014-07-23

    原文格式PDF

  • 申请/专利权人 谷歌公司;

    申请/专利号CN201280057194.8

  • 发明设计人 J·莫勒;S·伊根;

    申请日2012-09-25

  • 分类号G06F17/00;G06F15/16;G06T1/00;

  • 代理机构北京市金杜律师事务所;

  • 代理人酆迅

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 01:44:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-18

    授权

    授权

  • 2018-03-06

    著录事项变更 IPC(主分类):G06F17/00 变更前: 变更后: 申请日:20120925

    著录事项变更

  • 2014-10-22

    实质审查的生效 IPC(主分类):G06F17/00 申请日:20120925

    实质审查的生效

  • 2014-07-23

    公开

    公开

说明书

技术领域

本公开内容涉及地图渲染系统(诸如电子地图显示系统),并且 更具体地涉及一种其中使用以非光栅格式提供的地图数据来渲染地 图图像的地图渲染系统。

背景技术

这里提供的背景技术描述是为了一般地呈现公开内容的背景。当 前名义的发明人的工作在这一背景技术章节中描述该工作的程度上 以及该描述的可以在提交时未另外限定为现有技术的方面既未明确 地也未暗示地承认为相对于本公开内容的现有技术。

如今,地理区域的地图可以由在包括移动电话、汽车导航系统、 手持全球定位系统(GPS)单元和计算机的广泛多种设备上运行的软 件应用显示。根据应用和/或用户偏好,地图可以显示地形数据、街道 数据、城市运输(transit)信息、交通数据等。另外,一些应用在交 互模式中显示地图,以使得用户可以例如操作各种控件(单选按钮、 滚动栏等)以改变缩放水平或者向新位置摇动“相机”。用户在一些情 况下还可以选择或者取消选择某些信息的显示。例如用户可以操作适 当控件以接通自行车道(trail)的显示。

为了渲染地图图像,设备通常从专用服务器接收光栅图像。例如, 地图服务器可以在因特网上操作并且对于指定的地理区域向各种客 户端设备以可移植网络图形(PNG)格式提供图像。尽管光栅图像在 客户端设备相对容易渲染,但是光栅图像数据通常需要用于全面地图 的大量存储空间。而且,难以在客户端设备高效地操纵光栅图像。例 如,为了放大选择的区域,要么从服务器取回新的光栅图像数据,要 么放大可用光栅图像数据而质量损失明显。

发明内容

在一个实施例中,一种用于向客户端设备提供地图数据的计算机 实施的方法包括生成用于在客户端设备渲染选择的地理区域的第一 地图图像的若干矢量描述符,其中每个矢量描述符根据矢量图形格式 指示相应的地图元素的几何性。该方法还包括:使矢量描述符经由通 信网络向客户端设备传输;接收将在客户端设备渲染选择的地理区域 的第二地图图像的指示,以使得第二地图图像不同于第一地图图像; 生成指示一个或者多个矢量描述符的集合的修改指示,一个或者多个 矢量描述符中的每个矢量描述符对应于在第一地图图像和第二地图 图像中的一个而非两个地图图像中被渲染的相应的地图元素;并且使 修改指示经由通信网络向客户端设备传输,以用于使用矢量描述符中 的至少一些矢量描述符和修改指示来渲染第二地图图像。

在另一实施例中,一种有形非瞬态计算机可读介质存储指令,该 指令在由一个或者多个处理器执行时使一个或者多个处理器以非光 栅格式生成用于选择的地理区域的地图数据,其中该地图数据在客户 端设备可解译来以光栅格式生成第一地图图像,并且使地图数据经由 通信网络向客户端设备传输。而且,指令在由一个或者多个处理器执 行时使一个或者多个处理器从客户端设备接收将在客户端设备渲染 选择的地理地区的第二地图图像的指示;生成描述对于地图数据的一 个或者多个修改的修改指示,一个或者多个修改用于将第一地图图像 变换成第二地图图像;并且使修改指示经由通信网络向客户端设备传 输,以用于使用地图数据的至少一部分和修改指示在客户端设备以光 栅格式渲染第二地图图像。

在另一实施例中,一种在计算设备中用于生成地图图像的方法包 括经由通信网络接收用于渲染选择的地理区域的第一地图图像的若 干矢量描述符,其中每个矢量描述符根据矢量图形格式指示相应的地 图元素的几何性;并且使用多个矢量描述符来渲染第一地图图像。该 方法还包括经由通信网络接收修改指示,该修改指示指示若干矢量描 述符的用于渲染选择的地理区域的第二地图图像的修改;并且使用矢 量描述符中的至少一些矢量描述符和修改指示来渲染选择的地理区 域的第二地图图像。

在又另一实施例中,一种在通信网络中操作的计算设备包括:处 理器、耦合到处理器的存储器、用于经由通信网络通信的网络接口以 及存储在存储器中的若干例程。第一例程在处理器上执行以使对应于 选择的地理区域的地图数据的请求经由网络接口而被传输。第二例程 在处理器上执行以响应于请求、使用经由网络接口接收的多个矢量描 述符来渲染第一地图图像,其中多个矢量描述符处于非光栅格式。第 三例程在处理器上执行以使对应于选择的地理区域的修改数据的请 求经由网络接口而被传输。第四例程在处理器上执行以使用多个矢量 描述符中的至少一些矢量描述符和修改数据来渲染第二地图图像。

附图说明

图1是根据一个实施例的系统的框图,在该系统中,服务器向客 户端设备提供用于渲染地图图像的地图数据并且随后提供修改数据 用于使用原先提供的地图数据中的一些或者所有地图数据和修改数 据来渲染相同地理区域的另一地图图像;

图2是图示用于在可以在图1的系统中操作的客户端设备渲染对 应于某个地理区域的两个地图图像的示例信息交换的交互图;

图3是图示可以在图1的系统中实施的用于结合先前提供的地图 数据渲染附加地图特征的向客户端设备的示例信息传送的交互图;

图4是图示可以在图1的系统中实施的用于修改包括在先前提供 的地图数据中的地图特征的属性的向客户端设备的示例信息传送的 交互图;

图5是图示可以在图1的系统中实施的用于修改包括在先前提供 的地图数据中的地图特征的向客户端设备的示例信息传送的交互图;

图6是图示可以在图1的系统中实施的用于修改与多个地图元素 关联并且包括在先前提供的地图数据中的地图特征的向客户端设备 的示例信息传送的交互图;

图7是用于在可以在图1的系统中操作的地图服务器生成用于若 干地图图像的地图数据的示例方法的流程图;

图8是用于在可以在图1的系统中操作的地图服务器生成先前提 供的地图数据的修改的描述的示例方法的流程图;

图9是用于在可以在图1的系统中操作的客户端设备渲染地图图 像的示例方法的流程图;

图10A是可以在图1的系统中操作的客户端设备显示的示例基本 地图;以及

图10B是可以在用户在显示图10A的基本地图的客户端设备经由 交互式用户界面选择运输地图类型之后显示的示例运输地图。

具体实施方式

在以下讨论的系统和方法的实施例中,地图服务器向客户端设备 高效地提供用于渲染地图图像的地图数据。根据一些实施例,在地图 服务器向客户端设备提供用于渲染对应于某个区域或者地理区域的 第一地图图像(例如基本地图图像)的地图数据之后,地图服务器向 客户端设备提供用于渲染对应于相同区域的不同的第二地图图像(例 如交通地图图像)的修改数据。客户端设备然后可以使用先前提供的 用于渲染第一地图图像的地图数据和修改数据来渲染第二地图图像, 并且地图服务器无需必然地向客户端设备不止一次地提供用于渲染 第一地图图像和第二图像二者时使用的地图数据。根据情境,修改数 据可以包括向先前提供的地图数据的一个或者多个添加、先前提供的 地图数据的一个或者若干部分的删除、或者先前提供的地图数据的一 个或者若干部分的修改。

在一个示例实施例中,地图服务器以非光栅格式提供地图数据, 并且客户端解译地图数据中的一些或者所有地图数据以生成第一地 图图像和第二地图图像作为相应的光栅图像。地图数据还可以包括用 于指定将与个别或者集体地图元素一起显示的地图标签的文本数据。 为了渲染第一地图图像,客户端设备可以经由通信网络请求来自地图 服务器的地图数据,并且作为响应,地图服务器可以提供根据矢量图 形格式描述地图内容的地图数据。地图数据可以指定各种几何形状 (例如使用点和连接点的路径的数学描述)并且指示应当如何对这些 形状进行定位用于渲染各种地图元素,诸如公路、建筑物、公园、水 体等。例如,不指定组成线段的光栅图像的每个像素,线段的基于矢 量的描述可以指定线段的两个端点并且指示两个端点由直线连接。地 图元素的基于矢量的描述这里可以称为矢量描述符或者简称为矢量, 并且一个或者若干矢量描述符的集合可以称为矢量数据。另外,在一 些场景中的个别地图元素(例如建筑物)或者若干地图元素(例如大 学校园的建筑物、公园、自行车路径和行人路径)的集合可以定义地 图特征(或者简称为特征)。在一个实施例中,向地图特征指派唯一 标识符,地图服务器和地图客户端可以利用该唯一标识符来标识。一 般而言,可以使用一个或者多个矢量描述符来描述地图特征。

客户端设备可以例如响应于相应的用户命令来请求用于渲染第 一地图图像和第二地图图像的地图数据。用户命令可以指示不同地图 类型、不同缩放水平等的选择。根据示例场景,用户选择地理区域和 基本地图类型(例如图示公路、街道、主要地标等的地图的类型)。 客户端设备生成渲染地图图像的请求并且向地图服务器传输该请求, 作为响应,地图服务器以矢量图形格式(或者适合用于在客户端设备 渲染光栅图像的其它非光栅格式)提供地图数据。地图数据可以包括 若干矢量描述符并且在一些情况下包括附加数据(诸如样式数据、标 签数据等)。更具体而言,标签数据可以包括美国信息互换标准代码 (ASCII)格式、Unicode格式或者任何其它适当字符格式的字符。客 户端设备然后解译地图数据以在客户端设备上渲染地图图像并且显 示地图图像。为了继续以上场景,用户然后可以选择相同地理区域的 运输地图,并且作为响应,客户端设备可以生成对应于运输地图的新 地图图像将被生成的指示并且向地图服务器传输该指示。根据一个实 施方式,客户端设备生成新类型的地图数据的请求(例如“提供用于 区域R的运输地图的地图数据”),并且地图服务器检查与客户端设 备的先前通信以确定什么种类的地图数据先前被发送到客户端设备 并且因此已经在客户端设备可用。在另一实施方式中,客户端设备除 了请求新类型的地图数据之外还指定选择的区域的什么种类的地图 数据已经在客户端设备可用(例如“假如我已经有用于区域R在相同 缩放水平的基本地图的地图数据,那么提供用于区域R的运输地图的 地图数据”)。地图服务器在这一情况下无需知道什么地图数据(如 果有)先前被发送到客户端设备。

地图服务器然后可以确定必须向已经在客户端设备可用的地图 数据添加、从地图数据去除或者在地图数据中修改什么地图元素和标 签。例如地图服务器可以确定某一区域和某一缩放水平的基本地图与 相同区域和相同缩放水平的运输地图如何不同并且生成适当修改指 示。例如修改指示可以包括用于渲染不包括在基本地图图像中的地铁 线路的矢量描述符。地图服务器然后向客户端设备提供修改指示,以 用于至少部分地使用被提供用于渲染基本地图图像的地图数据以及 修改指示来渲染运输地图图像。

参照附图进一步讨论其中向客户端设备高效地提供用于渲染地 图图像的地图数据的这些和其它示例场景。已经通过省略某些要素来 简化各图中的一些图以便更清楚地示出其它要素。除非如可以在对应 书面描述中明确地叙述,这样省略一些图中的要素不一定表明在示例 实施例中的任何实施例中存在或者不存在特定要素。

首先参照图1,可以在系统10中实施用于传送地图数据的技术。 在一个实施例中,系统10包括地图服务器12、经由网络16通信地耦 合到地图服务器12的客户端设备14以及通信地耦合到地图服务器12 的地图数据库18。网络16可以是广域网(WAN)(诸如因特网)、 局域网(LAN)或者任何其它适当类型的网络。根据实施例,地图数 据库18可以如图1中所示经由网络16或者经由另一通信链路耦合到 地图服务器12。为了简化,在图1中图示地图服务器12、客户端设 备14和地图数据库18的仅一个实例。然而,在其它实施例中,系统 10可以包括多于一个的地图服务器12、多于一个的客户端设备14和 /或多于一个的地图数据库18。

地图服务器12可以包括处理器20和以例如可以直接地(例如, 作为编译代码)或者间接地(例如,作为由在处理器20上执行的另 一应用解译的脚本)在处理器20上可执行的计算机指令的形式存储 地图控制器30的计算机可读存储器22。计算机可读存储器22例如可 以包括用于存储计算机指令和计算机指令在运行时间对其操作的数 据的易失性存储器(例如随机存取存储器或者RAM)以及在一个实 施例中包括持久存储器(诸如硬盘)。在一个实施例中,地图控制器 30包括生成用于各种地图元素和/或地图特征的矢量数据的动态特征 控制器32,这些地图元素和/或地图特征包括作为地图内容向客户端 设备14提供的一个或者多个地图元素。动态特征控制器32还可以被 配置用于确定地图图像相对于对应于相同地理区域的另一地图图像 的基于矢量的描述方面的不同、生成适当修改指示并且向客户端设备 12提供修改指示。换言之,不提供地图图像的基于矢量的完整描述, 动态特征控制器32可以高效地提供另一地图图像的先前提供的基于 矢量的描述的修改的描述。

根据一个实施例,为了生成修改描述,动态特征控制器32比较 对应于某个地图图像的矢量数据串行化表示和对应于另一地图图像 的矢量数据串行化表示。例如动态特征控制器32可以请求用于在缩 放水平Z用于区域R的基本地图的矢量数据,并且作为响应,地图服 务器18可以提供一系列矢量描述符V1,V2,V5,…VN。在另一时间,动 态特征控制器32可以请求用于在缩放水平Z用于区域R的运输地图 的矢量数据,并且作为响应,地图服务器18可以提供一系列矢量描 述符V1,V3,…VL。基于两个矢量描述符集合,动态特征控制器32可 以确定,在缩放水平Z对于区域R,(i)基本地图和运输地图二者包 括对应于矢量描述符V1的地图元素,(ii)基本地图而非运输地图包 括对应于矢量描述符V2和V5的地图元素,并且(iii)运输地图而非 基本地图包括对应于矢量描述符V3的地图元素。动态特征控制器32 可以生成修改指示,以指示为了使用先前提供的用于渲染基本地图图 像的矢量数据来生成运输地图图像,向先前提供的矢量数据添加矢量 描述符V3,而从先前提供的矢量数据去除矢量描述符V2和V5。更具 体而言,动态特征控制器32可以生成包括一个或者多个添加指示和 一个或者多个去除指示的修改指示,这些指示中的每个指示可以标识 操作(例如添加、去除)和操作符(例如矢量描述符、地图特征或者 地图元素)。

另外,在一些实施例中,动态特征控制器32可以确定,虽然在 生成第一地图图像和第二地图图像二者时渲染某个地图元素,但是必 须修改地图元素的一个或者多个性质以在渲染第二地图图像时重用 地图元素。例如一些或者所有地图元素可以与相应的深度值关联,这 些深度值指示将这些地图元素相对于其它部分或者完全重叠的地图 元素定位于相同区域中。作为更具体的示例,可以在基本地图图像中 在深度D1但是在运输地图图像中在深度D2渲染描绘公路段并且对应 于矢量描述符Vi的地图元素。在这一场景中,动态特征控制器32可 以生成修改指示,该修改指示指示应当将先前向客户端设备14提供 的与矢量描述符Vi关联的深度更新成深度D2

进而另外,除了矢量数据之外,动态特征控制器32还可以提供 用于添加或者修改的地图特征的标签数据作为修改指示的一部分或 者备选地作为分离指示。标签数据可以包括任何适当格式的字符并且 在一些实施例中包括对应标签属于的地图特征或者地图特征组的标 识符。

在一些实施例中,除了矢量数据之外,地图控制器30还可以提 供指示应当如何表现矢量数据的样式数据。更具体而言,样式数据可 以描述这样的可视特性或者性质为线条粗度(例如以像素为单位的宽 度)、线条颜色、一个或者多个填充颜色等。在一个实施例中,提供 用于可以向应用于矢量数据的各种可视样式的样式数据。地图服务器 还可以指定客户端设备应当将哪些格式样式应用于地图元素的各种 基于矢量的描述(这里也称为矢量描述符或者简称为矢量)。另外, 在一些实施例中,地图服务器指示哪些可视样式对于特定地图类型 (诸如地形、运输、交通、自行车道等)适用于地图元素的基于矢量 的描述。为此,可以定义各自由相应的唯一样式标识符标识的若干样 式。

根据该实施例,地图控制器30可以在单个电子消息或者一系列 电子消息中向客户端设备14以非光栅格式提供用于某个地理区域和 缩放水平的地图数据(诸如矢量数据)。另外,在一个实施例中,地 图控制器30生成地图数据作为地图瓦片描述符的集合,从而每个地 图瓦片描述符描述地图瓦片(即,某个大小(例如256×256个像素) 的地图图像的一部分)。由个别地图瓦片代表的地理区域的大小可以 依赖于地图瓦片与之关联的缩放水平,从而在更低缩放水平的单个地 图瓦片图示比在更高缩放水平的单个地图瓦片更大的地理区域。地图 控制器30可以根据矢量图形格式生成每个地图瓦片描述符,并且客 户端设备(诸如图1的客户端设备14)可以本地生成用于每个瓦片的 光栅图像。

继续参照图1,客户端设备14可以包括用于执行指令的处理器 50以及用于存储指令和数据的存储器52。客户端设备14还可以包括 分别用于从用户接收输入和向用户提供输出的输入设备54和输出设 备56。例如,输入设备54可以包括键盘、鼠标和触摸屏中的一项或 者多项,并且输出设备56可以包括显示器或者监视器设备(诸如触 摸屏或者“常规”(仅输出的)屏。客户端设备14可以包括用于控制 输入设备54和输出设备56以便实施交互式用户界面的各种软件部件 (诸如设备驱动器、操作系统(OS)事件处置器等)。另外,在处理 器50上执行的软件应用可以利用这些软件部件以提供特定于应用的 用户界面。

根据该实施例,客户端设备14可以是个人计算机(诸如桌面型 计算机、膝上型计算机或者平板PC)、工作站、便携式通信设备(诸 如智能电话)或者任何其它适当的计算设备。在一个实施例中,客户 端设备14是对于某些计算和/或存储功能依赖于另一计算设备的所谓 瘦客户端。例如在一个这样的实施例中,存储器52仅包括易失性存 储器(诸如RAM),并且具有持久存储器的程序和/或存储单元在客 户端设备14外部。在另一实施例中,存储器52包括易失性存储器部 件和持久存储器部件二者。

浏览器应用60可以包括在处理器50上执行的计算机可读指令 集。一般而言,浏览器应用60访问包括内容(诸如文本、图像、嵌 入式视频等)和按照标记语言(诸如超文本标记语言(HTML))的 指令的网页,并且根据按照标记语言的指令在输出设备56上渲染内 容。为此,浏览器应用60可以实施用于生成和处理数据包的功能(其 符合超文本传送协议(HTTP)、解析HTML内容、根据安全套接字 层(SSL)协议编码数据、请求和验证数字证书等)以及用于接收与 导航有关的各种用户命令、渲染并且管理网页数据的用户界面功能。 在一些实施例中,浏览器应用60被配置用于解译在网页中提供的按 照脚本语言(例如Javascript)的指令。

动态地图渲染引擎62可以作为浏览器应用60的部件来执行。然 而,在其它实施例中,与地图渲染引擎62相似的软件模块可以作为 单独的应用或者作为另一应用的部件来执行。根据该实施例,动态地 图渲染引擎62可以是插件(例如延伸浏览器应用60的功能并且在处 理器50上执行的编译指令集)、脚本(例如浏览器应用60在运行时 间解译的按照脚本语言的指令集)或者另一适当的软件部件。根据一 个示例场景,在操作客户端设备14的用户访问包括嵌入式交互地图 的网页时下载动态地图渲染引擎62。更具体而言,网页可以包括至在 线地图服务器和某一地理位置的第一超链接以及至动态地图渲染引 擎62的副本的第二超链接,需要该副本以渲染根据第一超链接从在 线地图服务器接收的地图数据。

动态地图渲染引擎62可以例如经由浏览器应用60的用户界面来 提供交互式控件。交互式控件可以允许用户选择地理地区或者区域、 地图类型(例如基本、交通、运输)、缩放水平等。根据示例场景, 用户首先请求地理区域的基本地图,并且然后请求相同区域的另一类 型的地图。动态地图渲染引擎62可以响应于用户命令来请求并且按 照矢量图形格式接收地图数据。

在操作期间,动态地图渲染引擎62可以从地图服务器12接收矢 量数据(并且在一些实施例中接收样式数据)、使用接收的矢量数据 来渲染相应的地图图像并且使地图图像显示于通过浏览器应用60分 配的某一区域内。例如,浏览器应用60可以创建用于显示地图元素 的HTML5画布元素。动态地图渲染引擎62还可以从地图服务器12 接收修改指示,该修改指示指示用于渲染另一地图图像而对于接收的 矢量数据的一个或者多个修改。

为了简化,图示客户端设备14具有单个处理器50。然而,客户 端设备14在其它实施例中可以例如包括附加的处理单元(未示出) (诸如被配置用于有助于在输出设备56上的图像渲染的图像处理单 元(GPU))。另外,在一个实施例中,浏览器应用60可以利用图 形函数库以高效地生成地图图像。例如,存储器52可以存储具有用 于渲染图形的功能的插件(诸如或者库),在客 户端14上执行的包括浏览器应用60的各种应用可以经由应用编程接 口(API)访问这些图形。在另一实施例中,存储器52例如存储特别 适合用于浏览器应用的插件(诸如WebGL)。此外,在一些实施例 中,存储器52存储有助于经由输出设备56高效渲染图像的附加软件 部件。例如,存储器52可以存储插件或者O3D插件。

注意到,一般而言,动态地图渲染引擎62可以在任何适当应用 中操作。例如,客户端设备70可以例如是便携式设备(诸如智能电 话),在该便携式设备中,动态地图渲染引擎62在地图绘制应用74 中操作。与浏览器应用60相似,地图绘制应用74可以包括存储在存 储器72中并且可在客户端设备70的一个或者多个处理器(未示出) 上执行的指令集。在一些实施方式中,地图绘制应用74利用由在客 户端设备70上执行的浏览器应用提供的联网功能(例如经由对应的 浏览器API)。在另一实施方式中,地图绘制应用74包括至少部分 浏览器功能(诸如用于访问地图服务器12的支持TCP、IP、HTTP等 的通信栈)。

接着,为了更好地举例说明地图服务器和客户端设备在图1的系 统或者相似环境中的操作,参照图2-图6中所示交互图考虑若干场景。 具体而言,参照图2讨论在地图服务器与客户端设备之间用于渲染某 个区域的两个地图图像的示例信息交互,继而讨论若干具体场景:提 供用于渲染附加地图元素的修改指示(图3)、提供用于修改渲染地 图特征或者地图元素的深度的修改指示(图4)、提供用于去除包括 在先前提供的地图数据中的地图特征或者地图元素的修改指示(图5) 以及提供用于修改与若干地图元素关联的复合地图特征的修改指示 (图6)。

参照图2,示例消息交换100涉及到包括在客户端设备(诸如图 1的客户端14)中的或者另外与客户端设备关联的用户界面102、在 客户端设备中操作的动态地图渲染引擎104和服务器106(诸如图1 的地图服务器12)。回顾图1,用户界面可以由浏览器60提供,而 动态地图渲染引擎104和服务器106可以分别实施于部件62和12中。

响应于用户命令,用户界面102可以生成某一区域R1的基本地图 数据的请求110并且向动态地图渲染引擎104提供该请求。可以例如 传输请求110作为在其中实施部件102和104的客户端设备内部的电 子消息。动态地图渲染引擎104转而可以生成将经由通信网络向服务 器106传输的基本地图数据的请求112。请求112可以使用全球定位 服务(GPS)坐标或者以任何其它适当方式来指定区域R1。另外,请 求112可以包括用于指定正在请求用于渲染基本地图的地图数据的地 图类型指示。进而另外,在一些实施例中,请求102指示区域R1的 任何基于矢量的地图数据是否已经在实施部件102和104的客户端设 备可用。

响应于请求112,服务器106可以生成响应114,该响应包括用 于渲染基本地图图像的按照非光栅格式(诸如按照矢量图形格式)的 地图数据。根据示例场景,响应114包括不依赖于任何先前提供的矢 量数据的区域R1的基本地图图像的基于矢量的描述。换言之,响应 114包括区域R1的基本地图图像的完整描述。响应114可以包括以任 何适当方式(诸如以一个或者若干瓦片描述符T1,T2,…TN)组织的地 图数据。一般而言,可以提供任何数目的瓦片(包括单个瓦片)的地 图数据。对于每个瓦片,响应112可以描述各种特征F1,F2等,这些 特征中的每个特征可以根据适当的矢量图形格式使用一个或者若干 矢量描述符来指定(如上所示,特征可以与单个地图元素或者一组地 图元素关联)。特征可以对应于简单的地图元素(诸如建筑物)或者 较复杂的地图元素的分组。在一些实施例中,响应114可以提供用于 地图特征的唯一标识符以在将来的标识中使用。响应114在一些实施 例中还包括样式数据,该样式数据指定地图元素的各种视觉属性。

动态地图渲染引擎104可以渲染基本地图图像、向用户界面102 提供基本地图图像并且生成对应的事件116,以及在存储器中存储接 收的地图数据(和样式数据(在可用时))以供将来使用。在一个实 施例中,动态地图渲染引擎104还存储地图数据与基本地图关联的指 示。

在图2的场景中,用户以后决定将地图类型从基本改变成运输而 不改变地理坐标,并且经由用户界面102激活适当的控件。作为响应, 用户界面102生成运输地图数据的请求120并且向动态地图渲染引擎 104转发请求120,该动态地图渲染引擎转而向服务器106提供将在 客户端设备渲染不同的地图图像的指示121。在一个实施例中,指示 121是与请求112相似的运输地图数据的请求。在另一实施例中,指 示121特别请求用于修改先前提供的地图数据以便渲染运输地图图像 的修改数据。

在一个实施例中,服务器106向客户端设备提供作为一系列电子 消息1221…122N的修改指示。然而,在另一实施例中,修改指示被作 为单个消息来提供。消息1221…122N中的每个消息可以包括将如何修 改对应的瓦片T1…TN的矢量数据的指示。然而,在一些场景中,仅 修改响应114中描述的瓦片T1…TN中的一些瓦片。例如,描绘水体 的地图瓦片在显示为基本地图的一部分或者运输地图的一部分时可 以具有相同的外观。

对于被修改的每个瓦片,消息122i可以提供一个或者多个修改描 述符M1,M2,…MM。一般而言,修改描述符可以指定用于将向先前提 供的地图数据添加的地图元素的矢量描述符、标识在先前提供的地图 数据中的待去除的地图元素、为在先前提供的地图数据中的地图元素 的性质指定新值等。在一个实施例中,修改描述符M1,M2,…MM中的 每个修改描述符标识待执行的操作(诸如添加、删除、修改、修改深 度等)并且还包括一个或者多个操作符或者参数(诸如用于被添加的 地图特征或者地图元素的矢量描述符、被去除的地图特征或者地图元 素的标识符等)。

在接收消息1221…122N时,动态地图渲染引擎104使用在消息 114中提供的矢量数据中的一些或者所有矢量数据和在消息1221… 122N中提供的修改指示来渲染用于请求的运输地图图像的瓦片。更具 体而言,动态地图渲染引擎104可以解译根据消息1221…122N修改 的先前提供的矢量描述符以渲染光栅运输地图图像,并且生成事件 126以使运输地图图像经由用户界面102来渲染。动态地图渲染引擎 104还可以在存储器中存储修改的地图数据。在一个实施例中,动态 地图渲染引擎104存储原先提供的地图数据和修改的地图数据作为地 图数据的不同版本。

在图3中所示的示例消息交换150期间,地图服务器106经由相 应的消息1521…152N向动态地图渲染引擎104提供附加地图特征的 矢量描述符。附加地图特征与先前提供的地图数据中的一些或者所有 地图数据一起用来在实施用户界面102和动态地图渲染引擎104的客 户端设备渲染新的地图图像。在一个实施例中,消息1521…152N描 述向某一地图瓦片的添加。在其它实施例中,消息1521…152N不与 任何特定瓦片关联。

消息1521…152N中的每个消息可以包括具有一个或者多个地图 元素的地图特征的按照矢量图形格式或者其它适当的非光栅格式的 描述。消息152还可以包括深度指示,该深度指示指定对应的地图特 征如何相对于被布置在近似相同位置的另一地图特征或者地图元素 来渲染。例如,经由消息1521…152N之一添加的新的地图特征可以 是铁路轨道段,并且先前提供的可以包括为公路段的地图特征。根据 新的地图特征和先前提供的地图特征的相应的深度指示,可以在铁路 轨道和公路相交的点在公路段之上或者以下渲染铁路轨道段。

在接收消息1521…152N时,动态地图渲染引擎104可以渲染新 的地图图像并且生成事件156,以便使新的地图图像显示于用户界面 102。在一个实施例中,动态地图渲染引擎104还在存储器中存储扩 充的地图数据作为地图数据的新版本。

参照图4,示例消息交换200可以在服务器106确定在新的地图 图像中在新深度渲染包括在先前提供的地图数据中的某一地图特征 时发生。服务器106可以生成并且向动态地图渲染引擎104传输修改 指示202,该修改指示对于由唯一特征标识符标识的地图特征指示将 渲染地图特征的新深度。在另一实施例中,修改指示202指示用于若 干地图特征或者地图元素的新深度值。在接收修改指示202时,动态 地图渲染引擎104可以按照修改指示202渲染新的地图图像并且生成 事件204,以便使新的地图图像显示于用户界面102。

另外,图5的示例消息交换250可以在服务器106确定在新的地 图图像中不渲染包括在先前提供的地图数据中的某一地图特征时发 生。服务器106可以生成并且向动态地图渲染引擎104传输修改指示 252,该修改指示例如使用唯一特征标识符来标识地图特征。在另一 实施例中,修改指示252使用地图元素的适当标识符来标识个别地图 元素。另外,在一些实施例中,修改指示252标识待去除的若干地图 特征或者地图元素。在接收修改指示252时,动态地图渲染引擎104 可以按照修改指示252渲染新的地图图像并且生成事件254,以便使 新的地图图像显示于用户界面102。

图6图示示例消息交换300,在该消息交换期间,服务器106向 动态地图渲染引擎104提供用于修改具有若干子特征或者元素的复合 地图特征的修改数据。例如,地图特征F1可以包括子特征F1-1、F1-2、 F1-3、F1-4和F1-5。在渲染地图特征F1作为基本地图的一部分时,可 以使用子特征F1-1、F1-2、F1-3、F1-4和F1-5中的每个子特征。然而, 在渲染地图特征F1作为运输地图的一部分时,可以仅使用子特征F1-1和F1-2来渲染地图特征F1。在一个实施例中,服务器106生成指示应 当去除地图特征F1的消息302。与以上参照图5讨论的示例场景相似, 消息302包括地图特征F1的唯一标识符。服务器106然后分别生成 用于添加F1-1和F1-5的消息304和306。与图3的示例场景相似,消 息304和306可以包括按照非光栅格式(诸如矢量图形格式)的对应 的地图特征或者地图元素的描述。在接收消息302、304和306时, 动态地图渲染引擎104可以使用地图特征F1的新版本来渲染新的地 图图像并且生成事件310,以便使新的地图图像显示于用户界面102。

接着参照图7-图9讨论可以在图1的系统或者相似环境中操作的 计算设备中实施的若干示例方法。可以实施这些方法作为使用任何适 当的编程语言开发并且存储在有形的非瞬态计算机可读介质(诸如一 个或者若干硬盘驱动器)上并且可在一个或者若干处理器上执行的计 算机程序。例如,可以在地图服务器12中实施图7和图8的方法, 并且可以在客户端设备14中实施图9的方法。虽然可以在个别部件 (诸如服务器或者个人计算机(PC))上实施图7-图9的方法,但 是也有可能例如在云计算环境中使用若干计算机以分布式方式来实 施这些方法中的至少一些方法。

首先参照图7,可以例如在地图服务器12的地图控制器30或者 服务器106的相似部件中实施用于生成若干地图图像的地图数据的示 例方法350。根据一个实施例,在块352,生成用于渲染某一区域的 第一地图图像的矢量描述符。矢量描述符可以符合矢量图形格式并且 描述相应的地图元素。在一些实施例中,可以根据各自包括一个或者 多个地图元素的地图特征来对矢量描述符分组。另外,在一些实施例 中,可以提供矢量描述符作为非光栅地图数据的一部分,该非光栅地 图数据还包括用于高效地渲染和重新渲染矢量数据、基于文本的标签 数据、图标或者符号(诸如道路遮蔽)等的样式数据。

接着在块354,向客户端设备提供矢量描述符。例如,可以经由 通信网络(诸如图1的网络16)传输矢量描述符作为一个或者若干电 子消息。

在块356,接收用于渲染相同区域的第二地图图像的数据的请求。 在一些场景中,例如,如在图2中的交互图中所示,响应于用户在客 户端设备选择不同的地图类型来传输请求。在块358生成并且在块 360向客户端设备提供修改指示,该修改指示包括对于先前提供的矢 量描述符的一个或者若干修改的描述。

在另一场景中,响应于用户选择将渲染对应于相同区域和相同地 图类型的地图图像的新缩放水平来传输在块356接收的请求。例如, 在块352生成的矢量描述符可以描述地理区域R的基本地图类型在缩 放水平Z1的若干瓦片。在用户选择缩放水平Z2并且在块356发出数 据的适当请求之后,可以分别在块358和360生成并且向客户端设备 提供修改指示。客户端设备可以根据修改指示添加、去除或者修改先 前提供的矢量描述符以及重新缩放矢量描述符中的一些或者所有矢 量描述符,以在缩放水平Z2渲染对应的地图元素。作为更具体的示 例,在块354提供的矢量描述符可以包括在缩放Z1的公园的基于矢 量的描述,并且公园的基于矢量的相同描述可以用来在缩放水平Z2重新渲染公园作为修改的地图图像的一部分。

参照图8,可以例如在地图服务器12的地图控制器30或者服务 器106的相似部件中实施用于生成先前提供的地图数据的修改的描述 的示例方法400。在一个实施例中,在以上讨论的方法350的块356- 块360执行方法400的步骤中的至少一些步骤。

在块402,接收将在客户端设备更新地图图像的指示。在块404, 标识向先前提供的矢量描述符的添加并且生成对应的描述。在块406, 标识先前提供的矢量描述符中的一些矢量描述符的删除,并且生成修 改的对应的描述。如以上讨论的那样,在一些场景中某些地图特征的 修改被表示为子特征中的一些子特征的删除和添加。在单个电子消息 或者若干电子消息向客户端设备408传输修改指示(诸如对于矢量数 据的修改的描述)。

图9是可以例如在动态地图渲染引擎62或者104中实施的用于 渲染地图图像的示例方法450的流程图。在块452,接收某一区域或 者地区的矢量描述符,并且在块454,使用接收的矢量描述符来渲染 第一地图图像。为此,可以解译接收的矢量数据以生成光栅图像。

接着,在块456,例如从用户界面(诸如浏览器应用的界面)接 收渲染第二地图图像的请求。第二地图图像如以上讨论的那样可以用 于相同区域但是可以对应于不同的地图类型或者缩放水平。在块458, 接收修改指示(诸如对于在块452接收的矢量描述符的一个或者多个 修改的描述)。然后,使用在块452接收的矢量描述符中的一些或者 所有矢量描述符和在块458接收的修改的描述来渲染第二地图图像。 如以上讨论的那样,对于矢量数据的修改一般可以包括添加、删除、 修改、深度改变等。

为了进一步举例说明以上讨论的技术的示例应用,图10A和图 10B分别描绘对应于相同地理区域并且根据基本地图类型和运输地图 类型显示的地图。在图10A中描绘的基本地图的地图图像500可以包 括多个地图元素(诸如公路和公园)的渲染500。如图10B中所示, 运输地图的地图图像可以包括地图图像500的地图元素以及在地图图 像500的对应部分上叠加的地铁线路504。根据该实施例,可以定义 地铁线路504为单个地图特征或者若干地图特征,每个地图特征对应 于相应的轨道段。另外,可以在地图图像500的一部分之上渲染铁路 符号506。根据该实施例,可以例如提供地铁符号506作为添加的地 图特征或者地图元素、作为标签或者作为图标。在一个实施例中,地 铁符号506被指定为可以用来从生成标准图标的服务器按照光栅格式 取回标准地铁符号的统一资源定位符(URL)。

为了在已经在客户端设备渲染图10A的地图图像之后在客户端 设备生成图10B的地图图像,地图服务器可以仅提供修改指示,该修 改指示按照矢量格式描述对应于地铁线路504的一个或者多个地图特 征。在一个实施例中,修改指示还提供深度指示,以使地铁线路504 出现于在图10A的地图图像中描绘的公路之上。另外,在一个实施例 中,修改指示还包括地铁符号506作为标签或者图标的描述。

以下的附加考虑适用于前文讨论。贯穿本说明书,多个实例可以 实施被描述为单个实例的部件、操作或者结构。虽然图示和描述一种 或者多种方法的个别操作为分离操作,但是可以并行执行个别操作中 的一个或者多个操作并且不要求按照所示顺序来执行操作。可以实施 在示例配置中作为分离部件呈现的结构和功能为组合的结构或者部 件。相似地,可以实施作为单个部件呈现的结构和功能为分离部件。 这些和其它变化、修改、添加以及改进落入这里的主题内容的范围内。

这里将某些实施例描述为包括逻辑或者多个部件、模块或者机 制。模块可以构成软件模块(例如在机器可读介质上或者在传输信号 中体现的代码)或者硬件模块。硬件模块是能够执行某些操作的有形 单元并且可以用某种方式来配置或者布置。在示例实施例中,一个或 者多个计算机系统(例如单独的客户端或者服务器计算机系统)或者 计算机系统的一个或者多个硬件模块(例如处理器或者处理器组)可 以由软件(例如应用或者应用部分)配置为操作用于执行如这里描述 的某些操作的硬件模块。

除非另有具体陈述,这里使用诸如“处理”、“计算”、“运算”、“确 定”、“呈现”、“显示”等字眼的讨论可以指代机器(例如计算机)的动 作或者过程,该机器操控或者变换在一个或者多个存储器(例如易失 性存储器、非易失性存储器或者其组合)、寄存器或者接收、存储、 传输或者显示信息的其它机器部件内表示为物理(例如电子、磁或者 光)量的数据。

如这里所使用的,对“一个实施例”或者“实施例”的任何引用意味 着结合该实施例描述的特定单元、特征、结构或者特性包含于至少一 个实施例中。短语“在一个实施例中”在说明书中的各处的出现不一定 都指代相同的实施例。

可以使用表达“耦合”和“连接”及其派生词来描述一些实施例。例 如,可以使用术语“耦合”来描述一些实施例以指示两个或者更多单元 处于直接的物理接触或者电接触。然而,术语“耦合”还可以意味着两 个或者更多单元不相互直接接触但仍然相互配合或者交互。实施例不 限于该上下文中。

如这里所使用的,术语“包括”、“具有”或者其任何其它变化旨在 于覆盖非排他的“包括”。例如,包括要素列表的过程、方法、物品 或者装置不一定仅限于那些要素但是可以包括未明确列举的或者这 样的过程、方法、物品或者装置固有的其它要素。另外,除非相反明 示,“或者”指代包括意义的“或者”而不是排他意义的“或者”。例 如,通过以下各项中的任一项满足条件A或者B:A为真(或者存在) 并且B为假(或者不存在),A为假(或者不存在)并且B为真(或 者存在),以及A和B二者为真(或者存在)。

此外,对“一个/一种”的使用用来描述这里的实施例的单元和部 件。这样做仅为了方便并且给出本发明的一般意义。应当解读这一描 述包括一个/一种或者至少一个/一种,并且除非明显的是它另有含义, 则单数还包括复数。

在阅读本公开内容时,本领域技术人员将认识用于如下系统和过 程的更多附加备选结构和功能设计,该系统和过程用于通过这里的公 开原理生成地图数据。因此,尽管已经图示和描述具体实施例和应用, 但是将理解的是,公开的实施例不限于这里公开的精确构造和部件。 可以在这里公开的方法和装置的布置、操作和细节上进行本领域技术 人员将清楚的各种修改、改变和变化而不背离在所附权利要求中限定 的精神实质和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号