CN105393282A - 图形元素的有效合成和渲染 - Google Patents
图形元素的有效合成和渲染 Download PDFInfo
- Publication number
- CN105393282A CN105393282A CN201480039848.3A CN201480039848A CN105393282A CN 105393282 A CN105393282 A CN 105393282A CN 201480039848 A CN201480039848 A CN 201480039848A CN 105393282 A CN105393282 A CN 105393282A
- Authority
- CN
- China
- Prior art keywords
- map
- map image
- instruction set
- tile
- render instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3667—Display of a road map
- G01C21/367—Details, e.g. road map scale, orientation, zooming, illumination, level of detail, scrolling of road map or positioning of current position marker
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/08—Bandwidth reduction
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Processing Or Creating Images (AREA)
- Instructional Devices (AREA)
Abstract
为了提供用于在客户端装置处渲染与所选择的地理区域对应的地图图像的地图数据,地图服务器生成具有矢量描述符的基本地图瓦片集合,每个基本地图瓦片依据非栅格格式指示相应地图元素的几何构型以用于渲染第一地图图像。在某一时刻,该地图服务器将基本地图瓦片提供给客户端装置。在接收到要在客户端装置处渲染所选择的地理区域的特定地图图像的指示时,地图服务器还生成指示要对所述基本地图瓦片集合进行的改变的差异地图瓦片集合并且将所述差异地图瓦片发送给客户端装置以连同所述基本地图瓦片集合一起用于渲染所请求的特定地图图像。客户端装置渲染由差异地图瓦片限定的新的地图视图,而无需再次预处理基本地图瓦片中所限定的所有特征或元素,这使得由差异地图瓦片限定的新的地图视图的渲染更快速并且在处理能力要求方面更有效。
Description
技术领域
本公开涉及诸如电子地图显示系统的地图渲染系统,并且更具体地讲,涉及一种地图渲染系统,其中使用以迭代方式提供的地图数据有效地将地图图像渲染成基本地图瓦片(tile)集合以及一个或多个差异地图瓦片。
背景技术
本文提供的背景描述是为了一般性地呈现本公开的背景。就在此背景技术部分所描述而言,所署名的发明人的工作以及在申请时并不能够作为现有技术的描述的各方面,都不能明示或暗示地作为对抗本公开的现有技术。
如今,地理区域的地图可通过在各种各样的装置上运行的软件应用来显示,所述装置包括台式计算机装置、移动电话、汽车导航系统、手持全球定位系统(GPS)单元、平板或膝上型计算机等。取决于应用和/或用户偏好,地图可显示地形数据、街道数据、城市道路交通信息、交通数据等。另外,一些应用以交互模式显示地图,以使得用户可操作各种控件(收音机按钮、滚动条等)以例如改变缩放级别或者将地图平移至新的位置。在一些情况下,用户还可选择或取消选择特定信息的显示。例如,用户可操作适当控件以打开自行车道的显示、传输地图等。
为了渲染地图图像,显示装置通常从专用服务器接收栅格图像数据。例如,地图服务器可在互联网上运行并且以便携式网络图形(PNG)格式向各种客户端装置提供指定的地理区域的图像。尽管栅格图像相对容易在客户端装置处渲染,但是栅格图像数据对于综合地图通常需要大量存储空间。另外,难以在客户端装置处有效地操纵栅格图像。例如,为了放大所选择的区域,或者从服务器检索新的栅格图像数据,或者在质量损失显著的情况下放大可用栅格图像数据。为了缓解这一问题,一些地图绘制系统从地图服务器以矢量图形数据的形式向客户端装置提供地图绘制数据。一般来说,矢量图形数据描述或者指定地图中将要包括的各种特征,并且客户端装置上的图形引擎使用各种常见技术来处理所述矢量图形数据以产生地图图像。
无论如何,大多数基于web的地图绘制服务将地图数据作为小的图像瓦片,通常为栅格图像数据瓦片或者矢量图像数据瓦片的形式,从服务器发送给客户端。每个图像瓦片覆盖预定的地理区域并且使用栅格或矢量图形图像数据指定将要显示的确切图像。此外,许多客户端-服务器地图绘制应用向用户提供同一基本地图数据的许多不同的视图。例如,这些视图可提供侧重驾驶的地图、自行车骑行地图、地形地图、道路交通地图、侧重商业的地图等。当用户想要切换至特定地理位置的另一地图视图(例如,道路交通地图视图)时,客户端应用请求同一地点的完全新的地图瓦片集合,但是指定新的地图视图中将要包括的样式和数据差异(例如,包括道路交通线路、对道路的侧重减小等)。然而,通常,所有或者大多数的可用地图视图共享大多数相同的数据。例如,在所有视图之间陆域形成、湖泊、道路等保持相同,但是每个视图可包括少许附加特征,可移除少许特征,和/或可具有按照不同的方式或样式显示的少许特征。事实上,在大多数情况下,这些不同的视图中的大部分地图数据(就存储字节而言)是共有的。因此,如果地图绘制应用允许用户在同一地理区域的不同地图视图之间切换,则从服务器发送给客户端的大多数数据实际上对于客户端装置已经接收的数据而言是冗余的。这一事实可导致多个问题,包括客户端装置上的高加载延迟、高渲染延迟、服务器上的高序列化延迟以及为了避免这些问题而迫使减少数据细节。
此外,当新的地图数据被发送给客户端装置时,客户端装置必须处理所述新的地图数据以渲染与所述新的地图数据关联的地图。当所述新的地图数据许多相同或者与先前渲染的地图数据集合重叠时,即使许多最终地图按照相同的方式渲染,但是图形处理单元通常必须对所述新的地图数据花费与原始地图数据一样多的处理能力。具体地讲,在基于图形处理单元(GPU)的图形系统中,在数据可被渲染成地图以前,必须将数据从CPURAM缓存至GPUVRAM。通常,在将数据提供给GPU以前,软件也必须对数据执行一定程度的预处理(也称作准备数据),在一些情况下,这在计算上会非常昂贵,并且增加渲染该数据的总计算成本。一旦执行数据准备并且已经将数据发送给GPU,就可重新绘制数据许多次,而无需付出准备和缓存的性能成本。然而,对新的地图数据形式的数据的改变通常需要相同级别的预处理和准备,并且因此无法实现在新渲染的地图中重复使用基本上相同的先前处理的地图数据。
存在需要渲染一些数据,略微修改数据,并且将它重新渲染成新的图像的许多类型的图形系统。这些系统中的大多数具有足够的表现能力(GPU和CPU处理器能力)来采取蛮力(bruteforce)方案,该方案简单地修改数据、预处理或准备数据就像它是完全新的图像一样,并且重新缓冲所预处理的图像以用于在GPU中渲染。然而,诸如地图绘制系统的一些系统往往是性能密集型的,并且无法按照新的地图图像需要被渲染的速度来很好地执行所有重复的处理工作。这些系统需要一种避免在利用图形处理单元渲染该数据以前重新准备和重新缓存数据的方法。
发明内容
在实施例中,一种向客户端装置提供地图数据的计算机实现的方法包括:生成与特定区域关联的基本地图瓦片集合,其中,所述基本地图瓦片集合当用于渲染地图图像时,渲染该特定区域的基本地图图像,并且其中,每个基本地图瓦片包括依据矢量图形格式指示基本地图图像的一个或多个相应地图元素的几何构型的一个或多个矢量描述符。所述方法还包括使得基本地图瓦片经由通信网络被传输给客户端装置。所述方法还包括接收在客户端装置处将要渲染所选择的地理区域的地图图像的指示,所选择的地理区域的地图图像不同于使用所述基本地图瓦片集合产生的基本地图图像,并且生成指示待渲染的地图图像与基本地图图像之间的一个或多个差异的差异地图瓦片集合。所述差异可使用矢量描述符来指定,所述矢量描述符中的每一个对应于为以下各项的相应地图元素:(1)将要被渲染在该地图图像中,但是不在基本地图图像中;(2)将不被渲染在该地图图像中,但是在基本地图图像中;和/或(3)将在该地图图像中使用与该基本地图图像中所指定的不同的样式、层或其它特征来渲染。所述方法然后可使得所述差异瓦片集合经由通信网络被传输给客户端装置以用于渲染地图图像。在客户端装置处,渲染引擎可首先使用基本地图瓦片渲染第一地图图像,并且随后可基于差异地图瓦片改造或者重新渲染图像,而无需完整地对更改的地图内的所有图形进行预处理,这使得该系统在图形处理单元能力的使用方面更有效,并且节省渲染时间和努力。具体地讲,基本地图瓦片的改变可通过使用样式特征渲染要从基本地图图像删除的元素来实现,所述样式特征仅仅使得所述特征在渲染时不可见,而无需重新预处理待删除的地图特征。
在另一实施例中,一种实现于计算装置中的用于生成地图图像的方法包括:经由通信网络接收与所选择的地理区域的第一地图图像关联的多个基本地图瓦片,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符;以及使用处理器对每个基本地图瓦片中的矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的第一地图图像的第一渲染指令集合。所述方法还包括:经由所述通信网络接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示;以及使用处理器对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合。所述方法还包括:使用处理器通过实现所述第一渲染指令集合和所述第二渲染指令集合经由用户接口来渲染所述第二地图图像。
如果需要,所述方法可包括接收所述多个基本地图瓦片中的多个矢量描述符中不包括的附加矢量描述符的差异地图瓦片,其中,所述附加矢量描述符对应于将要作为所述第二地图图像的一部分渲染但是不是所述第一地图图像的一部分的地图元素,并且可包括接收与所述附加矢量描述符对应的标签,其中,所述标签包括作为所述第二地图图像的一部分连同所述地图元素一起渲染的文本。
另外,所述方法可接收由所述多个基本地图瓦片中的多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示,并且还可包括使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素。例如,所述方法可使用透明样式参数或者使用用于渲染不应在第二地图图像中示出的地图元素的线宽渲染参数来渲染不应在所述第二地图图像中示出的所述地图元素,所述线宽渲染参数的值足够小以使得所述地图元素无法在用户接口上用肉眼来看到。如果需要,所述方法可创建第一渲染指令集合以参考存储在存储器中的样式属性来限定与由一个或多个矢量描述符限定的地图元素关联的一个或多个渲染参数,并且可实现第一渲染指令集合以通过将不应在第二地图图像中示出的地图元素的样式属性设置为透明值或者小线宽值,来按照使得不应在第二地图图像中示出的地图元素基本上不可见的方式来渲染不应在第二地图图像中示出的地图元素。
另外,所述方法可通过将第二渲染指令集合中的至少一个渲染指令交织在第一渲染指令集合中的两个渲染指令之间来限定第一渲染指令集合和第二渲染指令集合的渲染序列,来对矢量描述符的修改的所述一个或多个指示进行预处理,并且可通过按照所述渲染序列所限定的顺序来实现第一渲染指令集合和第二渲染指令集合来将第所述二地图图像渲染在用户接口上。
在另一实施例中,一种实现于计算装置中的用于生成地图图像的方法包括:经由通信网络接收与所选择的地理区域的第一地图图像关联的多个基本地图瓦片,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符;以及使用处理器对每个基本地图瓦片中的矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的第一地图图像的第一渲染指令集合,其中,所述第一渲染指令集合使用样式属性查找表来限定用于渲染所述第一地图图像内的地图元素的样式参数。所述方法还包括:经由所述通信网络接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示,其中,所述差异地图瓦片中的至少一个包括由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示。所述方法还包括使用处理器修改所述第一渲染指令集合所使用的所述样式参数中的一个或多个,以使得所述第一渲染指令集合按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的地图元素,并且可使用处理器通过实现带有所修改的样式参数中的一个或多个的所述第一渲染指令集合经由用户接口来渲染所述第二地图图像。
在另一实施例中,一种显示装置包括通信网络接口、用户显示装置以及处理硬件,该处理硬件包括耦合至所述通信网络接口和所述用户显示装置的一个或多个处理器。这里,所述处理硬件被配置为经由所述通信网络接口接收以与所选择的地理区域的第一地图图像关联的多个基本地图瓦片的形式的数据,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符,并且被配置为对每个基本地图瓦片中的矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的第一地图图像的第一渲染指令集合。所述处理硬件还被配置为经由所述通信网络接口接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示。同样,所述处理硬件被配置为对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合,并且通过实现所述第一渲染指令集合和所述第二渲染指令集合将所述第二地图图像渲染在所述用户显示器上。
在另一实施例中,一种显示装置包括通信网络接口、用户显示装置以及处理硬件,该处理硬件包括一个或多个处理器,耦合到所述通信网络接口和所述用户显示装置。这里,所述处理硬件被配置为经由所述通信网络接口接收限定与所选择的地理区域的第一地图图像关联的多个基本地图瓦片的数据,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符,并且对每个基本地图瓦片中的矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的第一地图图像的第一渲染指令集合,其中,所述第一渲染指令集合使用样式属性变量集合来限定用于渲染所述第一地图图像内的地图元素的样式参数。所述处理硬件还被配置为经由所述通信网络接口接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示,其中,所述差异地图瓦片中的至少一个包括由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示。所述处理硬件还被配置为修改所述第一渲染指令集合所使用的所述样式属性变量中的一个或多个,以使得所述第一渲染指令集合按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素,并且通过实现带有所修改的所述样式属性变量中的一个或多个的所述第一渲染指令集合经由用户接口来渲染所述第二地图图像。
附图说明
图1是地图绘制系统的框图,其中地图服务器迭代地将地图数据提供给客户端装置以用于以基本地图瓦片集合和差异地图瓦片集合的形式渲染地图图像;
图2是图示出用于在客户端装置处渲染地图图像的示例信息交换的交互图,所述示例信息交换在图1的系统中操作以使用同一地理区域的基本地图瓦片和差异地图瓦片首先渲染基本地图图像,并且然后渲染道路交通地图图像;
图3是图示出用于渲染附加地图元素并且从基本地图视图删除元素的差异地图瓦片的示例传送的交互图;
图4是图示出用于修改在基本地图瓦片集合中渲染地图特征或元素集合的深度的单个差异地图瓦片的示例传送的交互图;
图5是图示出包括基本地图瓦片集合的新的样式表的差异地图瓦片的示例传送的交互图;
图6是图示出从服务器装置到客户端装置的第二差异地图瓦片集合的示例传送的交互图,所述示例传送使得客户端装置能够使用同一基本地图瓦片集合从一种类型的地图视图改变为另一种类型的地图视图;
图7是用于在地图服务器处使用基本地图瓦片和差异地图瓦片生成若干地图图像的地图数据的示例方法的流程图,所述示例方法可在图1的系统中操作;
图8是用于在地图服务器处生成用于修改先前提供的基本地图瓦片的差异地图瓦片集合的示例方法的流程图,所述示例方法可在图1的系统中操作;
图9是用于在客户端装置处使用基本地图瓦片和差异地图瓦片渲染地图图像的示例方法的流程图,所述示例方法可在图1的系统中操作;
图10A是可在图1的系统中操作的客户端装置处使用基本地图瓦片集合显示的示例基本地图;以及
图10B是在用户在客户端装置处经由交互用户界面选择道路交通地图类型以后可显示的示例道路交通地图,所述示例道路交通地图从图10A中所使用的基本地图瓦片集合和道路交通地图视图的差异地图瓦片集合创建;
图10C是在用户在客户端装置处经由交互用户界面选择自行车地图类型以后可显示的示例自行车地图,所述示例自行车地图从图10A中所使用的基本地图瓦片集合和自行车地图视图的差异地图瓦片集合创建;
图11是图像渲染引擎的高级框图,所述图像渲染引擎用于使用以基本地图瓦片集合和差异地图瓦片集合的形式的地图矢量数据渲染地图图像。
图12A是根据实施例图示出矢量数据集合的数据图,所述矢量数据集合为使用顶点样式属性编码的顶点数据点的形式。
图12B是形成样式查找表的纹理地图,所述样式查找表限定多种不同样式中的每一种的顶点样式属性值并且用在图11的图像渲染引擎中以基于样式参考解析顶点样式属性。
具体实施方式
地图服务器装置与地图客户端装置通信以有效地提供地图数据以用于使用具有基本地图特征数据的基本地图瓦片集合和差异瓦片集合来在客户端装置上渲染地图图像,所述差异瓦片限定在客户端装置处渲染地图时要对基本地图瓦片内的基本地图特征数据进行的改变。一旦基本地图瓦片和差异地图瓦片被提供给客户端装置,并且客户端装置已经将基本地图瓦片处理并渲染成地图图像,客户端装置上的图形处理器就可有效地渲染与差异地图瓦片关联的新的地图图像,而无需对更改的或者新的地图图像执行完整的预处理操作,从而减少渲染与差异地图瓦片关联的第二或者更改的地图图像所需的处理能力和时间。
在一些情况下,地图服务器首先将地图数据提供给客户端装置,诸如,台式计算机、膝上型计算机、平板装置、移动电话等,以用于将与特定地区或者地理区域对应的第一地图图像渲染成一个或多个基本地图瓦片集合,并且然后稍后以差异瓦片的形式将修改数据提供给客户端装置以用于渲染与同一地理地区对应的不同的第二地图图像(例如,交通地图图像、道路交通地图图像等)。然后,客户端装置可使用先前为渲染第一地图图像而提供的基本地图数据以及以差异瓦片形式的修改数据来渲染第二地图图像,以使得地图服务器无需不止一次地将用于渲染第一地图图像和第二图像二者的地图数据提供给客户端装置。取决于情境,差异地图瓦片内的修改数据可包括对先前提供的基本地图瓦片内的数据或特征的一个或多个添加、先前提供的基本地图瓦片的一个或若干个部分或特征的删除和/或先前提供的基本地图瓦片的一个或若干个部分或特征的修改,诸如与待渲染的特征关联的样式、层(深度)等的修改。在一些情况下,当例如客户端装置处的用户首先请求特定地理区域的不是基本地图图像的地图图像时,地图服务器装置可响应于单个地图请求提供基本地图瓦片和差异地图瓦片二者。
在一个情况下,地图服务器可提供以非栅格格式诸如矢量图形格式的基本地图瓦片,并且客户端可解释一些或所有的地图数据以生成第一地图图像。在一些情况下,地图服务器可提供一个或多个以混合格式的基本瓦片,其中地图数据包括有栅格数据(诸如,栅格背景)和矢量数据二者。另外,地图服务器可向客户端装置提供以栅格格式、非栅格格式或者混合格式的一个或多个差异瓦片,并且客户端装置可处理差异瓦片以识别要对基本地图瓦片进行的改变。然后,客户端装置可基于原始基本地图瓦片以及覆盖相同地理区域的差异地图瓦片内的数据来将第二地图图像渲染成新的或者修改的图像。基本地图数据瓦片和差异地图数据瓦片中的任一者或二者可包括用于指定在渲染基本地图数据或者修改的地图时要使用的各种样式特征的样式数据。在这种情况下,差异地图瓦片可包括或者指定新的或不同的样式数据集合来用于渲染地图图像。然而,在渲染第二地图图像时,客户端装置可更改预处理的基本地图图像的样式信息,以在无需对组合的基本和差异地图瓦片中的所有矢量元素执行矢量图形处理的同时使得能够对基本地图图像做出改变,从而显著减少在客户端装置上渲染新的或第二地图图像所需的处理活动。
为了渲染基本地图图像,客户端装置可经由通信网络从地图服务器请求地图数据,并且作为响应,地图服务器可根据矢量图形格式来提供描述地图内容的基本地图数据。例如,基本地图数据可指定各种几何形状(例如,使用点以及连接点的路径的数学描述)并且指示为了渲染各种地图元素,诸如,道路、建筑物、公园、水体等,这些形状应该如何定位。在这种情况下,并非指定构成线段的栅格图像的每个像素,线段的基于矢量的描述可指定线段的两个端点并且指示这两个端点通过直线连接。作为基本地图瓦片的部分提供的样式数据可指定线或者其它特征元素的宽度或者颜色或者绘制纹理(实线、虚线等)。本文中地图元素的基于矢量的描述可被称作矢量描述符或者简称作矢量,并且一个或若干个矢量描述符的集合可被称作矢量数据。另外,在一些情境中单独的地图元素(例如,建筑物)或者若干地图元素的聚合(例如,大学校园的建筑物、公园、自行车道和人行道)可限定地图特征(或者简称为特征)。在实施例中,为地图特征指派唯一标识符,地图服务器和地图客户端可利用该唯一标识符来进行识别。通常,地图特征可使用一个或多个矢量描述符来描述。
在渲染基本地图图像时,例如,响应于相应用户命令,客户端装置可请求用于渲染地图图像的地图数据。用户命令可指示选择不同地图类型、不同缩放级别等。根据示例情境,用户选择地理区域和基本地图类型,例如示出道路、街道、主要地标等的地图的类型。客户端装置生成对于渲染地图图像的请求,并将该请求传输给地图服务器,作为响应,该地图服务器提供包括一个或多个基本地图数据瓦片的集合的地图数据,其中每个基本地图数据瓦片中的地图数据为矢量图形格式(或者适合于在客户端装置处渲染栅格图像的其它非栅格格式)。地图数据可包括若干矢量描述符,并且在一些情况下,可包括诸如样式数据、标签数据、层数据等的附加数据。更具体地讲,标签数据可包括以美国信息交换标准码(ASCII)格式、Unicode格式或者任何其它合适的字符格式的字符。层数据可包括指定地图元素的相对层或深度的数据,并且因此指定在地图图像内哪些地图元素将被渲染在其它地图元素上边。然后,客户端装置解释地图数据以渲染地图图像,并且将该地图图像显示在显示装置上。
继续上述情境,然后,用户可选择同一地理区域的道路交通地图,并且作为响应,客户端装置可生成要生成与道路交通地图对应的新的地图图像的指示,并且将该指示传输给地图服务器。根据一个实现方式,客户端装置生成对新的类型的地图数据的请求(例如,“提供区域R的道路交通地图的地图数据”),并且地图服务器检查与客户端装置的先前通信以确定哪些基本地图瓦片或者基本地图数据先前被发送给了客户端装置,并且因此在客户端装置处已经可用。在另一实现方式中,除了请求新的类型的地图数据以外,客户端装置指定所选择的区域的哪一种类的地图数据在客户端装置处已经可用(例如,“提供区域R的道路交通地图的地图数据,我已经有相同缩放级别的区域R的基本地图的地图数据”)。在这种情况下,地图服务器不需要知道哪些基本地图数据或者基本地图瓦片(如果有的话)先前被发送给客户端装置。更一般地讲,地图服务器与客户端装置之间的交易历史可由地图服务器和/或客户端装置维护。
然后,地图服务器可确定在客户端装置处已经可用的基本地图数据中必须添加、移除或者修改哪些地图元素和标签。例如,地图服务器可确定特定区域和特定缩放级别的基本地图如何不同于同一区域和同一缩放级别的道路交通地图,并且可生成一个或多个以差异地图瓦片的形式的适当的修改指示。例如,差异地图瓦片可包括要添加到基本地图瓦片的特征的矢量描述符,诸如,渲染基本地图图像中不包括的地铁线路,可描述要移除的基本地图瓦片的某些特征和/或可描述要改变的基本地图瓦片的某些特征,诸如与基本地图图像相比不同的、要用在要在客户端装置上渲染的地图图像中的样式(例如,宽度、字体、颜色、阴影等)、级别和/或的标签。然后,地图服务器提供以差异地图瓦片集合的形式的修改数据以连同基本地图瓦片一起使用以在客户端装置处至少部分地使用基本地图数据瓦片和差异地图数据瓦片来渲染道路交通地图图像。随后,当用户选择同一地理区域的另一地图视图时,客户端装置可从地图服务器请求该视图,该地图服务器可确定新选择的地图图像视图与基本地图瓦片中所提供的基本地图图像之间的差异,以生成一个或多个差异瓦片的另一个集合。然后,该新的差异瓦片集合可被提供给客户端装置,该客户端装置基于原始基本地图瓦片以及新的差异瓦片集合来生成新的地图视图。
参照附图来进一步讨论其中用于渲染地图图像的地图数据被有效地提供给客户端装置的这些和其它示例情境。为了更清楚地示出其它元素,通过省略某些元件来简化了一些图。一些图中这样省略元素未必指示在任何示例性实施例中存在或不存在特定元素,除非在对应撰写的描述中明确地如此描述。
现在参照图1,地图显示系统10可用于使用迭代地提供给客户端装置的基本地图数据瓦片和差异地图数据瓦片来有效地将地图数据从地图服务器装置传送给地图客户端装置。如图1所示,系统10通常包括地图服务器12、经由通信网络16(其可由一个或多个不同的通信网络构成)通信地耦合至地图服务器12的一个或多个客户端装置14和15、以及通信地耦合至地图服务器12的地图数据库18。网络16可以是诸如互联网的广域网(WAN)、局域网(LAN)或者任何其它合适类型的网络。取决于实施例,地图数据库18可如图1所示经由网络16或者经由另一通信链路耦合至地图服务器12。另外,地图数据库18可包括用于产生地图的多个不同的数据库或者地图服务。例如,数据库18可包括存储各种地理区域的任何数量的缩放级别的基本地图瓦片的基本地图数据库18A。此外,数据库18可包括一个或多个地图服务数据库18B-18E。这里,例如,地图数据库服务18B可存储道路交通地图数据,其限定要添加到如存储在数据库18A中的基本地图数据的道路交通数据以提供存储在基本地图数据库18A中的地理区域的道路交通地图视图。同样,地图数据库服务18C和18D可分别存储自行车和地形地图数据,其使得地图服务器12能够产生存储在基本地图数据库18A中的地图数据的各种地理区域的自行车道地图视图和地形地图视图。另外,在一个实施例中,地图数据库服务18E可存储用于各种用户的个性化的地图数据内容。具体地讲,用户可通过向各种地图瓦片添加信息,通过改变地图样式来重新聚焦信息,设置偏好(诸如,总是示出兴趣点、自行车道、交通数据等)来将地图数据个性化。在这些情况下,个性化的图数据或者偏好可被存储在地图数据库服务18E中以便于稍后在将地图显示给用户时检索和使用,如下面将更详细讨论的。当然,数据库18可包括用于任何其它类型的地图数据的任何数目的地图数据库服务,并且这些数据库服务可被存储在相同或不同的服务器装置中。另选地,存储在地图服务数据库18B-18E中并由其提供的所有附加地图数据可被存储在数据库18A中。此外,为了简单,图1中仅示出地图服务器12和地图数据库18的一个实例。然而,在其它实施例中,系统10可包括不止一个地图服务器12、不止一个地图数据库18以及任何数目的客户端装置14、15。
图1中将地图服务器12示出为包括处理器20和计算机可读存储器22,该计算机可读存储器22按照例如可在处理器20上直接(例如,作为编译代码)或者间接(例如,作为由处理器20上执行的另一应用解释的脚本)执行的计算机指令的形式存储地图控制器30。例如,计算机可读存储器22可包括存储计算机指令和数据的易失性存储器(例如,随机存取存储器或者RAM),计算机指令在运行时在其上操作,并且在实施例中,还包括诸如硬盘的永久存储器。地图控制器30可包括动态特征控制器32,该动态特征控制器32生成各种地图元素和/或包括一个或多个地图元素的地图特征的矢量图形数据,所述一个或多个地图元素作为地图内容以基本地图数据瓦片的形式被提供给客户端装置14和15。动态特征控制器32还可被配置为确定地图图像的基于矢量的描述相对于与同一地理地区或区域对应的另一地图图像的差异,生成适当的修改指示作为差异地图瓦片集合,并且将该修改指示或者差异地图瓦片提供给客户端装置14和/或15。换言之,并非提供地图图像的完整的基于矢量的描述,动态特征控制器32可有效地提供另一地图图像的先前提供的基于矢量的描述的修改的描述。
一般来说,图1的系统10可创建并使用差异地图瓦片(其每一个基本上是局部地图瓦片,因为每个差异地图瓦片仅指定被地图瓦片覆盖的区域中要在客户端装置上渲染的地图图像的一部分)来创建地图图像。具体地讲,当在客户端或者地图渲染装置处将差异地图瓦片与基本地图瓦片形式的另一瓦片组合时,该系统能够产生期望的最终地图视图(例如,道路交通视图)。在一种情况下,差异地图瓦片仅包含将基本地图瓦片改变为期望的最终瓦片或者地图图像所需的修改集合。
在一个实施例中,每个差异地图瓦片包括瓦片编辑集合和样式规格集合的形式的两个基本组件。这里,瓦片编辑集合中的每一个指定对基本地图瓦片的单个操作,其限定如何将基本地图瓦片中的某一几何构型转换为要使用差异地图瓦片创建的所期望的最终状态或地图视图所需要的几何构型。瓦片编辑可包括特征的添加、特征的移除和/或特征性质的改变,诸如特征的渲染级别、特征的标签等的改变。新的样式规格集合指示与基本地图图像或者基本地图瓦片中所使用的样式相比,应该被用于实现最终期望的样子的颜色、字体大小、线宽等。
更具体地讲,瓦片编辑可被指定为必须对基本地图瓦片执行的各个几何构型修改操作以将基本地图瓦片转变为期望的最终状态以用于渲染期望的地图图像或视图。在一种情况下,这些操作可作用于地图瓦片(即,诸如道路、标签、表示湖泊的多边形等的各个块几何构型)内的渲染工作或“渲染选项(renderop)”,并且通常有三种类型,包括特征的移除、特征的添加或者特征性质的改变。
更具体地讲,如在差异地图瓦片中所指定的渲染选项可操作以移除在期望的最终地图瓦片或者地图图像中可能不相关的基本地图瓦片中的某一几何构型。例如,在地形模式下,与基本地图视图相比,许多道路变得多余,并且需要从地形地图视图中去除。地形图像视图的差异地图瓦片可能包括对需要从基本地图瓦片中移除以实现地形地图视图效果的每个道路渲染选项的单个移除操作。
在另一示例中,渲染选项可向基本地图瓦片添加地图特征,因为在许多情况下,特定地图视图将需要相对于见于基本地图图像中的数据或特征的附加数据或特征。例如,道路交通地图视图将需要将重要的道路交通线路添加到与基本地图瓦片关联的地图图像。在这种情况下,道路交通差异瓦片将包括对需要绘制的每条道路交通线路的添加操作。每个此类添加操作可指定三件事,包括要添加的新的几何构型、该几何构型的视觉样式以及新的渲染选项应该被添加到基本瓦片中的哪一渲染选项下面(以使得系统可控制最终地图瓦片中的渲染选项的排序)。
在另一示例中,渲染选项可提供改变样式操作。例如,在交互的地图视图中,通常希望的是在不影响像渲染选项的呈现的所有其它渲染选项的情况下改变所述渲染操作的呈现。例如,如果用户与一家企业交互,则系统可能想要改变该企业的标签和图标以反映已被选择。然而,系统通常不想改变所选择的企业周围的所有其它企业的呈现。在这种情况下,系统可发出对所选择的企业的单个改变样式操作,并且仅为该企业限定新的视觉样式。在其它情况下,改变样式操作可被应用于特定特征内的所有元素,诸如公园、建筑物内与自行车道或人行道等关联的所有元素。
另外,如上所述,每个差异地图瓦片可包括样式集合。具体地讲,在一个示例中,每一个基本瓦片可包括“样式表”,其包括瓦片中所列的每一个渲染选项的视觉样式参数。当将差异瓦片从服务器装置发送给客户端装置时,差异瓦片还可包括在最终合成的瓦片中将可见的所有事物的新的样式表。尽管在一些情况下,可能希望的是在差异瓦片内仅指定基本地图瓦片样式表的改变,但是也可简单地提供整个新的样式表作为差异地图瓦片的一部分,因为样式表通常尺寸较小。事实上,由于此类样式差异机制的相对高的复杂性并且因为样式表与差异和基本地图瓦片内的几何构型和特征数据相比通常极小,所以通常不必尝试优化差异地图瓦片的样式改变的发送。另外,样式表可被配置为使得如果值未被包括在样式表中,则样式表条目的该值被当作空白样式(例如,将不渲染)。相反,样式表可被配置为使得如果样式未被包括在样式表中,则要用于该样式表条目的样式表值是见于基本地图瓦片的样式表中的该条目的样式表值。
在任何情况下,将所有上述元素放在一起,只要客户端装置和服务器装置二者均同意使用哪些地图瓦片作为基本地图瓦片,服务器装置可创建并发送并且客户端装置可请求、接收并处理差异地图瓦片,所述差异地图瓦片简单地指定对已经发送给客户端装置的基本地图瓦片的改变,以使得客户端装置能够渲染特定地理区域的新的或不同的地图视图。更具体地讲,客户端装置第一次想要非基本模式或者非基本地图视图(例如,道路交通地图视图)的瓦片时,客户端装置将需要从服务器请求它还没有的所有基本瓦片,连同将基本地图视图变换成道路交通地图视图的差异地图瓦片。因此,在这种情况下,对于通常将在没有差异地图瓦片的情况下已经请求的每一个瓦片,使用差异地图瓦片系统的客户端装置将请求两倍数量的瓦片:一个基本地图瓦片和一个差异地图瓦片。然而,一旦特定地理区域的基本地图瓦片集合已被发送给客户端装置并被其接收,客户端装置就仅需要请求或接收该区域的新的地图视图的差异地图瓦片。由于与基本地图瓦片相比,差异地图瓦片通常将尺寸较小,所以在请求同一地理区域的多个地图视图时,此系统将发送和接收较少数据。即,基本瓦片仅需要被请求一次,并且自此以后被存储在客户端装置处,以使得尽管第一次需要基本瓦片时,可能需要请求两倍数量的瓦片,但是随后,在客户端上基本瓦片将已经可用,并且因此仅需要请求差异瓦片。此外,例如,如果客户端装置初始显示基本地图,切换为道路交通地图视图将仅需要差异地图瓦片来从基本地图视图得到道路交通地图视图。另外,基本瓦片和差异瓦片的使用使得地图绘制系统能够容易地应对个性化地图数据,或者为用户提供将地图内容、特征、显示设置等个性化以用于未来显示地图的能力。具体地讲,对地图的用户修改、对地图的添加、地图偏好、显示设置、默认地图视图等可被实现并存储为差异瓦片集合,并连同基本瓦片集合一起被提供给用户,该差异瓦片形式的用户偏好将应用于所述基本瓦片,从而更改基本瓦片集合以为用户个性化地图内容。用户地图偏好、设置或者其它个性化地图数据可按照差异瓦片的形式存储在地图服务器装置处(与特定用户联系或关联),并且因此可在服务器处缓存,而无需大量内存或空间。在这种情况下,用于特定区域的同一基本瓦片集合可连同将要应用于所述基本瓦片的不同的用户指定或者用户特定差异瓦片一起被发送给每个用户,以使得个性化地图数据能够被缓存并提供给用户。另选地,个性化差异瓦片可被创建并存储在诸如移动电话、计算机、膝上型计算机、平板等的用户装置上,并且当在实现地图绘制应用的客户端装置处接收基本瓦片时被应用于那些基本瓦片。
一般来说,客户端装置处的渲染系统可将基本瓦片和差异瓦片组合,并且然后可按照任何期望的方式将该组合渲染到用户界面屏幕。然而,客户端装置可按照不清除已经为基本地图瓦片的显示准备的所有数据的方式来执行该渲染,以减少从基本地图视图(没有差异瓦片)或者从使用一个差异瓦片集合创建的第一地图视图改变为使用不同的差异瓦片集合创建的另一地图视图时的渲染操作。此外,使用上述技术的系统在所有架构层面得到了极大改进的性能,因为它减少了服务器上的序列化工作,减少了所需带宽以及横跨网络的传送时间,并且减少了客户端上的准备时间。
再参照图1,地图数据库18A可存储基本地图数据瓦片40的集合,其以许多缩放级别中的每一缩放级别限定将用于许多不同地理区域中的每一地理区域的地图数据。例如,基本地图数据瓦片40可存储或描述矢量图形格式的地图数据,但是作为替代,可描述栅格图像格式的数据。在客户端装置14第一次请求特定地理区域的地图数据时,地图服务器或者地图控制器30可将这些基本地图数据瓦片40的某个集合提供给客户端装置14。然而,当客户端装置14请求特定地理区域的基本地图视图以外的地图视图时,地图服务器12可从例如服务18B-18E中的一个或多个获得附加数据,并且动态特征控制器32可生成要发送给客户端装置14的差异地图瓦片集合,其描述为了产生新的地图视图要修改特定地理区域的基本地图瓦片的方式。在一些情况下,差异地图瓦片可在客户端装置14首次请求不同于与基本地图瓦片关联的地图视图的地图视图时连同特定地理区域的基本地图瓦片一起创建并发送。在其它情况下,地图服务器12可在稍后的时间创建并发送差异地图瓦片,诸如在客户端装置14在请求并显示与特定地理区域的基本地图瓦片关联的地图视图以后请求该地理区域的附加地图视图时。
因此,为了使得服务器与客户端之间的地图图形的传输能够更有效,服务器12以矢量的形式将基本地图数据瓦片集合提供给客户端装置14。当用户请求显示新的地图元素或者说改变客户端装置14处的地图视图时,服务器12提供基本地图数据瓦片与用户目前希望看到的地图瓦片之间的差异的描述。例如,服务器12可指定哪些元素应该被删除、哪些元素应该被添加(以及这些元素的几何构型)、哪些新的样式应该被应用于先前提供的一些地图元素(以及这些样式的视觉属性是什么)等等。因此,服务器12生成差异地图瓦片,而不是重复了先前提供给客户端装置14的基本地图数据瓦片的相当多部分的新的地图瓦片。
为了生成修改指示或者差异瓦片,动态特征控制器32可将对应于特定地图图像或地图的矢量数据的序列化表示与对应于由基本地图数据瓦片提供的地图图像的矢量数据的序列化表示进行比较。例如,动态特征控制器32可请求区域R的缩放级别Z的基本地图的矢量数据,作为响应,地图服务器18A可提供限定一个或多个基本地图数据瓦片的一系列矢量描述符V1、V2、V5、...VN。在另一时间,动态特征控制器32可请求区域R的缩放级别Z的道路交通地图的矢量数据,并且作为响应,地图服务器18可提供限定具有道路交通地图信息的区域R的地图视图的一系列矢量描述符V1、V3...VL。基于这两个矢量描述符集合,动态特征控制器32可确定,对于区域R在缩放级别Z下:(i)基本地图和道路交通地图二者包括与矢量描述符V1对应的地图元素;(ii)基本地图包括与矢量描述符V2和V5对应的地图元素,但是道路交通地图不包括;并且(iii)道路交通地图包括与矢量描述符V3对应的地图元素,但是基本地图不包括。动态特征控制器32可生成修改指示或差异瓦片以指示为了使用先前为了从基本地图瓦片渲染基本地图图像而提供的矢量数据生成道路交通地图图像,将矢量修改符V3添加到先前提供的矢量数据,而从先前提供的矢量数据移除矢量描述符V2和V5。更具体地讲,动态特征控制器32可生成包括一个或多个添加指示和一个或多个移除指示的修改指示或差异瓦片,每个指示可标识操作(例如,添加、移除)和操作对象(例如,矢量描述符、地图特征或地图元素)。
另外,在一些实施例中,动态特征控制器32可确定尽管在生成基本地图图像和附加地图图像二者时渲染特定地图元素,但是地图元素的一个或多个性质必须被修改以在渲染附加地图图像重用地图元素。例如,一些或所有地图元素可与指示这些地图元素相对于同一地区中的其它部分或完全重叠的地图元素的定位的相应深度值关联。作为更具体的示例,描绘路段并且与矢量描述符Vi对应的地图元素可在基本地图图像中被渲染于深度D1处,但是在道路交通地图图像中被渲染于深度D2处。在这种情境下,动态特征控制器32可生成指示与先前提供给客户端装置14的矢量描述符Vi关联的深度应该被更新为深度D2的修改指示。
另外,除了矢量数据以外,动态特征控制器32可针对添加或修改的地图特征提供标签数据作为修改指示的一部分,或者另选地,作为单独的指示。该标签数据可包括任何合适格式的字符,并且在一些实现方式中,可包括对应标签所属的地图特征或者地图特征组的标识符。
在另一实施例中,地图控制器30,并且具体地讲,动态特征控制器32,可直接基于从服务数据库18B-18E中的一个或多个发送来的信息生成差异瓦片,而无需将该信息与基本地图数据库18A所提供的基本地图数据瓦片内的地图数据进行比较。在一些情况下,地图服务数据库18B-18E可按照要对基本地图数据服务器18A中的基本地图数据瓦片进行的差异或修改的描述的形式提供道路交通数据、自行车数据、地形数据、个性化地图数据(例如),而非提供请求新的地图视图的地图区域的完整的栅格或矢量图形描述。在这种情况下,动态特征控制器32可基于地图服务数据库18B-18E所提供的差异描述来生成特定地理区域的差异瓦片,而非将与地理区域的基本地图视图(来自基本地图数据库18A)和附加地图视图(诸如,道路交通地图视图)关联的整个瓦片的矢量或栅格图形进行比较以生成要发送给客户端装置的差异瓦片。
在一些实施例中,除了矢量数据以外,地图控制器30可提供指示矢量数据应该如何渲染的样式数据。更具体地讲,样式数据可描述诸如线条粗细(例如,像素宽度)、线条颜色、线条阴影或样式、一个或多个填充颜色等的视觉特性或性质。在实施例中,可针对可应用于矢量数据的各种视觉样式提供样式数据。地图服务器12还可指定客户端装置应该将哪些视觉样式应用于地图元素的各种基于矢量的描述(本文中也称作矢量描述符或者简称为矢量)。另外,在一些实施例中,地图服务器12指示哪些视觉样式应用于特定地图类型诸如,地形、道路交通、交通、自行车道等的地图元素的基于矢量的描述。样式数据还可作为缓存的个性化地图数据的一部分来使用并存储,以指示用于特定地图位置处的不同用户的各种样式。为此,可限定若干样式,每个由相应的唯一样式标识符来标识。在一个情况下,可针对特定地图视图创建样式表,以指示将要应用于该视图的各种线条、区域和其它特征的样式值。在这种情况下,每个基本地图瓦片可具有用于基本地图视图的与之相关联的样式表或者样式集合,并且该样式表可在基本地图瓦片被发送给客户端装置时作为基本地图瓦片的一部分或者连同其一起被发送给客户端装置。因此,在这种情况下由动态特征控制器32创建的差异瓦片可包括新的样式表以用于在客户端装置处应用于基本地图瓦片(或者应用于修改的基本地图瓦片)以产生修改的或者新的地图视图。
在任何情况下,取决于实施例,地图控制器30可在单条电子消息或者一系列电子消息中将非栅格格式的特定地理区域和缩放级别的地图数据诸如矢量数据提供给客户端装置14。一般来说,这些电子消息中可具有一个或多个地图瓦片。另外,在实施例中,地图控制器30生成地图数据作为地图瓦片描述符集合,使得每个地图瓦片描述符描述地图瓦片,即,特定尺寸(例如,256×256像素)的地图图像的一部分。由各个地图瓦片表示的地理区域的尺寸可取决于与地图瓦片关联的缩放级别,以使得与较高缩放级别的单个地图瓦片相比,较低缩放级别的单个地图瓦片示出更大的地理地区。地图控制器30可根据矢量图形格式生成每个地图瓦片描述符,并且客户端装置诸如图1的客户端装置14可针对每个瓦片本地生成栅格图像。
继续参照图1,客户端装置14可包括执行指令的处理器50以及存储指令和数据的存储器52。客户端装置14还可包括从用户接收输入的输入装置54以及向用户提供输出的输出装置56。例如,输入装置54可包括键盘、鼠标和触摸屏中的一个或多个,并且输出装置56可包括诸如触摸屏或“常规”(仅输出)屏幕的显示器或监视器装置。客户端装置14可包括诸如装置驱动器、操作系统(OS)事件处理器等的各种软件组件以控制输入装置54和输出装置56以便实现交互用户界面。另外,在处理器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在运行时解释的以脚本语言的指令集合)或者另一合适的软件组件。根据一个示例情境,动态地图渲染引擎62在操作客户端装置14的用户访问包括嵌入的交互地图的网页时下载。更具体地讲,网页可包括到在线地图服务器和特定地理位置的第一超链接以及到动态地图渲染引擎62的副本的第二超链接,所述副本是渲染根据第一超链接从在线地图服务器接收的地图数据所需的。
例如,动态地图渲染引擎62可经由浏览器应用60的用户接口提供交互控件。交互控件可允许用户选择地理区域或地区、地图类型(例如,基本、交通、道路交通)、缩放级别等。根据示例情境,用户首先请求地理区域的基本地图,并且然后请求同一区域的另一类型的地图。动态地图渲染引擎62可请求并接收矢量图形格式的地图数据作为对用户命令的响应。
在操作期间,动态地图渲染引擎62从地图服务器12接收矢量数据(以及在一些实施例中,样式数据),使用所接收的矢量数据渲染对应地图图像,并且使得地图图像被显示在浏览器应用60所分配的特定区域内。例如,浏览器应用60可创建用于显示地图图像的HTML5画布元素。动态地图渲染引擎62还可从地图服务器12接收指示对所接收的矢量数据的一个或多个修改的修改指示以用于渲染另一地图图像。
为了简单,客户端装置14被示出为具有单个处理器50。然而,其它实施例中的客户端装置14可包括附加处理单元,诸如被配置为例如方便输出装置56上的图像渲染的图形处理单元(GPU)51。另外,在实施例中,浏览器应用60可利用图形功能库来有效地生成地图图像。例如,存储器52可存储具有用于渲染图形的功能的插件,诸如,或者库,在客户端14上执行的各种应用,包括浏览器应用60,可经由应用编程接口(API)来访问它。在另一实施例中,例如,存储器52存储特别适合于浏览器应用的插件,诸如,WebGL。另外,在一些实施例中,存储器52存储方便经由输出装置56有效渲染图像的附加软件组件。例如,存储器52可存储插件或者O3D插件。
需要注意的是,通常,动态地图渲染引擎62可在任何合适的应用中操作。例如,客户端装置15可以是诸如智能电话的便携式装置,例如,其中动态地图渲染引擎62在地图绘制应用74中操作。类似于浏览器应用60,地图绘制应用74可包括存储在存储器72中并且能够在客户端装置70(未示出)的一个或多个处理器上执行的指令集合。在一些实现方式中,地图绘制应用74利用在客户端装置70上执行的浏览器应用所提供的联网功能(例如,经由对应浏览器API)。在另一实现方式中,地图绘制应用74包括至少部分浏览器功能,诸如,支持TCP、IP、HTTP等的通信栈,以访问地图服务器12。
为了更好地示出图1的系统或者类似环境中的地图服务器和客户端装置的操作,参照图2-6所示的交互图考虑若干情境。具体地讲,参照图2讨论为了渲染特定地理区域的两个不同的地图图像在地图服务器与客户端装置之间的示例信息交换,然后讨论若干具体情境,包括与基本地图瓦片集合一对一地提供差异地图瓦片集合以用于渲染附加地图元素和/或从基本地图视图删除元素(图3),提供单个差异地图瓦片以用于修改在基本地图瓦片集合中渲染地图特征或元素的深度(图4),针对基本地图瓦片集合提供包括新的样式表的一个或多个差异地图瓦片(图5),以及提供第二差异地图瓦片集合以使用同一基本地图瓦片集合从一种类型的地图视图改变为另一种类型的地图视图(图6)。
参照图2,示例消息交换100涉及:用户接口102,其包括在客户端装置(诸如,图1的客户端装置14)中或者与其关联;动态地图渲染引擎104,其在客户端装置中操作;以及服务器106(诸如,图1的地图服务器12)。返回参照图1,用户接口可由浏览器60提供,而动态地图渲染引擎104和服务器106可分别实现于组件62和12中。响应于用户命令,用户接口102可生成对特定区域R1的基础或基本地图数据的请求110,并且将该请求提供给动态地图渲染引擎104。例如,请求110可作为实现有组件102和104的客户端装置内部的电子消息来传输。动态地图渲染引擎104继而可生成对覆盖区域R1的基本地图瓦片集合的形式的基本地图数据集合的请求112,该请求112将经由通信网络传输给服务器106。请求112可使用全球定位服务(GPS)坐标或者以任何其它合适的方式来指定区域R1。另外,请求112可包括指定为渲染基本地图或者基本地图视图而请求地图数据的地图类型指示、地图缩放级别等。另外,在一些实施例中,请求102指示在实现组件102和104的客户端装置处区域R1的诸如基本地图瓦片的任何基于矢量的地图数据是否已经可用。
响应于请求112,服务器106可生成响应114,该响应114包括诸如矢量图形格式的非栅格格式的地图数据以用于渲染基本地图图像。根据示例情境,响应114包括区域R1的基本地图图像的基于矢量的描述,其不依赖于任何先前提供的矢量数据,并且具体地讲,可以是存储在图1的基本地图数据库18A中的区域R1的基本地图数据瓦片集合的形式。换言之,响应114包括一个或多个基本地图瓦片的集合及其关联的样式表的形式的区域R1的基本地图图像的完整描述。响应114可包括按照任何合适的方式,诸如,按照一个或若干个瓦片描述符T1、T2、...TN,组织的地图数据。通常,可针对任何数量的瓦片,包括单个瓦片,提供地图数据。对于每个瓦片,响应112可描述各种特征F1、F2等,每个特征可使用一个或若干个矢量描述符依据合适的矢量图形格式来指定(如上所述,特征可与单个地图元素或者地图元素组关联)。特征可对应于诸如建筑物的单个地图元素或者地图元素的更复杂的分组。在一些实施例中,响应114可为地图特征提供唯一标识符以用于未来识别。在一些实施例中,响应114另外包括指定地图元素的各种视觉属性的样式数据,其为一个或多个样式表的形式。具体地讲,可随每个地图数据瓦片发送样式表,或者可发送单个样式表以用于作为对区域R1的地图的请求112的响应的一部分发送的所有基本地图数据瓦片。
动态地图渲染引擎104可使用基本地图瓦片T1-TN和关联的样式表(例如,基本地图样式表)来渲染基本地图图像,将基本地图图像提供给消息116所指示的用户接口102,生成对应事件,并且将所接收的基本地图瓦片(以及当可用时,样式数据)存储在存储器中以便于未来使用。在实施例中,动态地图渲染引擎104另外存储该地图数据与基本地图关联的指示。
在图2的情境中,用户稍后决定在不改变地理坐标的情况下将显示在用户接口102上的地图类型从基本地图视图或图像改变为同一区域R1的道路交通地图图像或道路交通地图视图,并且经由用户接口102激活适当的控件。作为响应,用户接口102生成对道路交通地图视图的请求120并且将该请求120转发给动态地图渲染引擎104,该动态地图渲染引擎104继而向服务器106提供在客户端装置处要渲染不同的地图图像的指示或请求121。在实施例中,指示121是对道路交通地图数据的请求,类似于请求112。在另一实施例中,指示121具体地请求用于修改先前提供的地图数据以渲染道路交通地图图像的修改数据,并且可指示客户端装置包括或者已经存储请求道路交通地图视图的区域的基本地图瓦片。然而,动态渲染引擎104可能知道它已经存储所请求的区域R1的基本地图瓦片,并且可针对该区域的道路交通地图视图仅请求差异瓦片集合。
作为响应,服务器106创建一个或多个差异地图数据瓦片的集合(ΔTile1至ΔTileN)并作为一系列电子消息1221...122N(如图2所示)或者作为单个消息提供给客户端装置。消息1221...122N中的每个差异地图瓦片可包括要如何修改对应基本地图瓦片T1...TN的矢量数据的一个或多个指示。然而,在一些情境中,仅修改响应114中所描述的基本地图瓦片T1...TN中的一些,并且在这种情况下,仅需要针对那些基本瓦片发送差异瓦片(ΔTile)作为消息1221...122N的一部分。例如,描绘水体的地图瓦片当作为基本地图的一部分或者作为道路交通地图的一部分显示时可具有相同的外观,并且因此针对描绘该水体的基本地图数据瓦片可无需生成或发送差异瓦片。
对于修改的每个基本地图瓦片,消息122i可提供一个或多个修改描述符M1、M2、...MM。通常,修改描述符可指定要添加到先前提供的基本地图数据瓦片的地图元素的矢量描述符,标识先前提供的地图数据瓦片中要被移除的地图元素,指定先前提供的基本地图数据瓦片中的地图元素的性质的新值等,并且可指定将要执行的操作(诸如,添加、删除或改变样式操作)。在实施例中,修改描述符M1、M2、...MM中的每一个标识将要执行的操作,诸如,添加、删除、修改、修改深度等,并且还包括一个或多个操作对象或参数,诸如添加的地图特征或地图元素的矢量描述符、移除的地图特征或地图元素的标识符等。
在接收到消息1221...122N和关联的差异地图数据瓦片(ΔTilei)时,动态地图渲染引擎104使用响应114中所提供的一些或所有矢量数据(即,基本地图数据瓦片)以及作为差异地图瓦片的一部分在消息1221...122N中提供的修改指示,对所请求的道路交通地图图像的瓦片进行地图渲染。更具体地讲,动态地图渲染引擎104可解释根据消息1221...122N修改的先前提供的矢量描述符,以渲染栅格道路交通地图图像,并且生成事件126以使得道路交通地图图像经由用户接口102被渲染。动态地图渲染引擎104还可将所修改的地图数据存储在存储器中。一般来说,动态地图渲染引擎104存储原始提供的基本地图数据瓦片和修改的地图数据瓦片二者。
尽管图2的示例消息交换图100示出了响应于来自客户端装置的单独的消息或请求而发送的基本地图瓦片和差异地图瓦片,但是可响应于对单个地图视图的地图请求将基本地图瓦片和差异地图瓦片从服务器106发送给客户端装置的动态地图渲染引擎104。例如,如果图2的初始请求110是针对客户端装置还未接收并存储基本地图瓦片集合的地理区域的道路交通地图视图,则服务器106将通过发送基本地图瓦片以及与该地理区域关联的道路交通地图视图的差异地图瓦片二者来响应该请求。
另外,作为另一示例,客户端装置可向服务器发送对地图数据的请求,使得能够使用存储在例如图1的地图数据库服务18E中的个性化地图数据对用户接口上的数字地图的渲染进行个性化。这里,服务器可将用户或客户端装置(通过用户登陆、装置ID等)识别为具有个性化数据(偏好、样式、添加的数据、默认地图视图等),并且可生成使用地理区域的标准基本瓦片实现用户的个性化地图视图的一个或多个差异瓦片。然后,服务器可发送该区域的基本地图数据瓦片和个性化差异瓦片二者(一起或者单独地)以使得客户端装置能够按照本文所讨论的方式渲染该区域的个性化地图。在一些情况下,当例如个性化地图偏好指定使用特定地图视图(例如,道路交通地图视图)作为默认地图视图时,个性化差异瓦片可与其它地图视图的差异瓦片相同。基于针对用户存储的个性化设置,个性化差异瓦片可针对特定地图区域来创建,或者可被应用于任何或所有地图区域。在一些情况下,客户端装置可存储个性化偏好并且将这些偏好的指示发送给服务器,然后该服务器可处理这些偏好以生成差异瓦片,这些差异瓦片在客户端装置处被应用于基本地图瓦片时在客户端装置处创建个性化地图视图。
在图3所示的示例消息交换150期间,地图服务器106经由相应消息1521...152Ν将包括待添加的地图特征和/或要从基本地图瓦片集合删除的地图特征的矢量描述符的差异地图瓦片提供给动态地图渲染引擎104。在这种情况下,针对待按照某种方式来改变或修改的每个基本地图瓦片一对一地发送差异地图瓦片。差异地图瓦片中所指定的地图特征操作随一些或者所有先前提供的基本地图数据瓦片用来在实现用户接口102和动态地图渲染引擎104的客户端装置处渲染新的地图图像。在这种情况下,消息1521...152Ν中的差异地图数据瓦片可描述对已经提供给客户端装置的基本地图数据瓦片集合的添加或者从所述基本地图数据瓦片集合的删除,并且每个消息1521...152Ν内的每个差异地图瓦片可与一个且仅一个基本地图瓦片关联,以限定要对该基本地图瓦片内的矢量图形数据进行的差异或改变。
在任何情况下,消息1521...152Ν内的每个差异瓦片可包括具有一个或多个地图元素的地图特征的矢量图形格式或者其它合适的非栅格格式的描述。例如,消息152还可包括深度或层面指示,其指定如何相对于设置在近似同一位置处的另一地图特征或元素渲染对应地图特征。例如,经由消息1521...152Ν中的差异瓦片之一添加的新的地图特征可以是一段铁轨,并且先前提供的基本瓦片可包括一段道路的地图特征。取决于新的地图特征和先前提供的地图特征的相应深度指示,在铁轨和道路相交的点处,这一段铁轨可被渲染在这一段道路上面或下面。
在接收到消息1521...152Ν中的差异地图数据瓦片时,动态地图渲染引擎104可渲染新的地图图像并且生成事件156以使得所述新的地图图像显示在用户接口102处。在实施例中,动态地图渲染引擎104还将增强的地图数据存储在存储器中作为地图数据的新的版本,同时继续存储原始基本地图数据瓦片以及所显示的地图视图的差异地图瓦片。
参照图4,当服务器106确定包括在先前提供的地图数据中的特定地图特征在新的地图图像或者新的地图视图中被渲染在新的深度或者具有某种其它特征改变时,可发生示例消息交换200。服务器106可生成单个差异地图瓦片的形式的修改指示202并将它发送给动态地图渲染引擎104,该修改指示202针对通过唯一特征标识符标识的一个或多个地图特征指示改变,包括关于例如将在一个或多个基本地图数据瓦片中渲染地图特征的新的深度的信息。在另一实施例中,在消息202中发送的差异地图瓦片针对若干地图特征或元素指示新的深度值,这些地图特征或元素可在相同基本地图瓦片或不同基本地图瓦片中。因此,在此示例中,单个差异瓦片可与多个基本瓦片关联。在接收到作为消息202内发送的差异瓦片的一部分的修改指示时,动态地图渲染引擎104可考虑该修改指示和基本地图瓦片来渲染新的地图图像,并且生成事件204以使得所述新的地图图像被显示在用户接口102处。
另外,当服务器106确定包括在先前提供的地图数据中的特定地图特征应该以不同的样式,诸如,使用不同的颜色、不同的线宽、不同的粗细或者其它类型的样式特性,来渲染时,可发生图5的示例消息交换250。在这种情况下,服务器106可生成单个差异地图瓦片的形式的单个修改指示252并传输给动态地图渲染引擎104,其包括新的样式表或者将要应用于客户端装置处已有的一个或多个基本地图瓦片的样式的新的指示。在另一实施例中,服务器106可发送多个差异地图瓦片,每个差异地图瓦片包括用于客户端装置处已有的对应一个基本地图数据瓦片的新的样式数据集合或者新的样式表,以影响客户端装置处的样式改变。在接收到具有新的样式表或者对样式表的改变的差异地图瓦片形式的修改指示252时,动态地图渲染引擎104可使用基本地图数据瓦片以及差异瓦片内的新的样式表来渲染新的地图图像,并且生成事件254以使得新的地图图像显示在用户接口102处。
图6图示出示例消息交换300,在该示例消息交换300期间在当前显示的地图视图是已经修改的地图视图时,例如,从与基本地图瓦片集合关联的基本地图视图修改的地图视图,服务器106将差异地图瓦片形式的修改数据提供给动态地图渲染引擎104以用于修改显示在客户端装置上的地图图像以包括区域R1的新地图视图。例如,当客户端装置当前正在示出地图区域的道路交通地图视图时,在客户端装置的用户选择观看该区域的自行车地图视图时,在图2的消息交换100的结尾处可发生图6的消息交换300。在这种情况下,用户可选择观看地图区域R1的自行车地图视图,而非道路交通地图视图。这里,用户经由用户接口102激活用于自行车地图视图的适当控件。作为响应,用户接口102生成对自行车地图视图的请求302并且将该请求302转发给动态地图渲染引擎104,该动态地图渲染引擎104继而向服务器106提供在客户端装置处将要渲染不同的地图图像的指示或请求304。指示304可以是对自行车地图数据的请求,并且可指定已经提供给客户端装置的基本地图瓦片。另选地,动态地图渲染引擎104可能知道它已经在存储器中存储有所请求的区域的基本地图瓦片,并且可针对该区域的自行车地图视图仅请求差异地图瓦片。
作为响应,服务器106将一个或多个差异地图数据瓦片的集合作为一系列电子消息3061...306N(如图6所示)或者作为单个消息提供给客户端装置。消息3061...306N内的每个差异瓦片可包括要如何修改对应基本地图数据瓦片T1...TN的矢量数据的一个或多个指示。然而,在一些情境中,将仅修改先前发送给客户端装置的瓦片T1...TN中的一些,在这些情况下,仅需要向客户端装置发送那些瓦片的差异地图瓦片。
对于所修改的每个瓦片,消息306i内的差异瓦片可提供一个或多个修改描述符M1、M2、...MM,这些修改描述符可指定要添加到先前提供的基本地图数据瓦片的地图元素的矢量描述符,标识先前提供的地图瓦片中要被移除的地图元素,指定先前提供的基本地图瓦片中的地图元素的性质的新值,指定新的样式数据集合或样式表等。
在接收到消息3061...306N中的差异地图瓦片时,动态地图渲染引擎104使用图2的响应114中所提供的一些或所有矢量数据(即,基本地图数据瓦片)以及在消息3061...306N中作为差异地图瓦片提供的修改指示来渲染所请求的自行车地图图像的瓦片。更具体地讲,动态地图渲染引擎104可解释根据消息3061...306N修改的先前提供的矢量描述符以渲染栅格自行车地图图像,并且生成使得自行车地图图像视图经由用户接口102被渲染的事件。动态地图渲染引擎104还可将所修改的地图数据存储在存储器中。一般来说,期望动态地图渲染引擎104继续存储原始提供的基本地图数据瓦片和自行车视图的所修改的地图数据瓦片二者,但是可消除或者不存储道路交通地图视图的差异瓦片。
接下来,参照图7-9讨论可在图1的系统或者类似环境中操作的计算装置中实现的若干示例方法。这些方法可被实现为以任何合适的编程语言开发并且被存储在有形的非暂时性计算机可读介质(例如,一个或若干个硬盘驱动器)上并且能够在一个或若干个处理器上执行的计算机程序。例如,图7和图8的方法可被实现于地图服务器12中,并且图9的方法可被实现于客户端装置14中。尽管图7-9的方法可在诸如服务器或者个人计算机(PC)的单独的计算机上执行,但是也可使用若干计算机以分布式方式实现这些方法中的至少一些,例如,在云计算环境中。
首先参照图7,例如,生成若干地图图像的地图数据的示例方法350可被实现于地图服务器12的地图控制器30或者服务器106的类似组件中。根据实施例,在方框352处生成用于渲染特定区域的第一地图图像的矢量描述符,作为基本地图瓦片集合。矢量描述符或基本地图瓦片可符合矢量图形格式,并且描述相应地图元素。在一些实施例中,矢量描述符可根据地图特征来分组,每个组包括一个或多个地图元素。另外,在一些实施例中,矢量描述符可作为非栅格地图数据的一部分来提供,该非栅格地图数据还包括例如样式表形式的样式数据,以用于有效地渲染和重新渲染矢量数据、基于文本的标签数据、图标或者符号,诸如,道路防护等。
接下来,在方框354,将基本地图瓦片作为一个或多个消息提供给客户端装置。在方框356,接收对用于渲染同一区域的第二地图图像的数据的请求。在一些情境中,例如,响应于用户在客户端装置处选择不同的地图类型来传输请求,如图2的交互图所示。在方框358生成差异地图瓦片集合的形式的修改指示,该修改指示中的每一个包括对先前提供的基本地图瓦片的一个或若干个修改的描述,并且在方框360将该修改指示提供给客户端装置。尽管对新的地图视图356的请求被指示为在所请求的地图视图的区域的基本地图瓦片已被发送给客户端装置以后被接收,但是该请求可在基本地图瓦片被发送给客户端装置以前被接收,以使得响应于同一地图图像请求将该区域的基本地图瓦片(方框354)和差异地图瓦片(360)二者发送给客户端装置。
在另一情境中,响应于用户选择将要渲染与同一区域和相同地图类型对应的地图图像的新的缩放级别,传输在方框356接收的请求。例如,在方框352生成的矢量描述符可描述地理区域R的以基本地图类型的缩放级别Z1的若干瓦片。在用户选择缩放级别Z2并且在方框356发出对数据的适当请求以后,可分别在方框358和360生成修改指示或者差异地图瓦片集合并将其提供给客户端装置。客户端装置可依据差异地图瓦片来添加、移除或者修改先前提供的矢量描述符,以及重新缩放一些或所有矢量描述符来以缩放级别Z2渲染对应地图元素。作为更具体的示例,在方框354提供的矢量描述符可包括公园的以缩放级别Z1的基于矢量的描述,并且该公园的相同的基于矢量的描述可用于以缩放级别Z2来重新渲染该公园作为修改的地图图像的一部分。
图8图示出针对先前提供的地图数据生成差异地图瓦片的示例方法400,其可被实现于例如地图服务器12的地图控制器30中或者服务器106的类似组件中。在实施例中,方法400的至少一些步骤在上述方法350的方框356-360处执行。
在方框402,接收要在客户端装置处更新地图图像或者要向客户端装置发送地图图像的指示。识别对以基本地图瓦片形式的先前提供的矢量描述符的添加,并且在方框404处生成对应描述。在方框406,识别一些先前提供的矢量描述符的删除,并且生成修改的对应描述。如上所述,在一些情境下特定地图特征的修改被表示为一些子特征的删除和添加。在一些情况下,这些差异描述可通过将基本地图瓦片集合的矢量图形或栅格数据与新地图视图的新地图瓦片进行比较以生成差异来生成,或者从发送自存储新视图的数据的诸如图1的数据库18B-18D的各种其它数据库的消息生成。在任何情况下,在方框408生成并编译诸如对矢量数据的修改的描述的修改指示(例如,深度或级别指示、标签等的改变)。方框410还可针对每一地图元素集合创建新的样式表以使用不同的样式特性来渲染基本地图瓦片的特征。随后,在方框412,创建差异地图瓦片集合,其限定将要应用于基本地图瓦片的添加、删除、改变和样式以用于渲染新的地图图像或地图视图。然后,这些差异瓦片可作为单个电子消息或者若干电子消息被传输给客户端装置。
图9是用于渲染地图图像的示例方法450的流程图,其可被实现于例如动态地图渲染引擎62或者104中。在方框452,接收特定地区或区域的矢量描述符作为基本地图数据瓦片集合,并且在方框454,使用所接收的矢量描述符来渲染第一地图图像。为此,所接收的矢量数据可被解释以生成栅格图像。
接下来,在方框456,例如从诸如浏览器应用的接口的用户接口接收渲染第二地图图像的请求。如上所述,第二地图图像可用于同一区域,但是可对应于不同的地图类型、视图或者缩放级别。在方框458接收修改先前接收并存储的基本地图瓦片的修改指示,诸如,差异瓦片集合。然后,使用在方框452处作为基本地图数据瓦片接收的一些或所有矢量描述符以及在方框458处接收的差异地图瓦片来渲染第二地图图像。如上所述,对差异地图瓦片内的矢量数据的修改通常可包括添加、删除、修改、深度的改变、新样式等。
为了进一步图示出上述技术的示例应用,图10A、图10B和图10C图示出与同一地理区域对应并且分别根据基本地图类型、道路交通地图类型和自行车地图类型显示的地图。图10A中所描绘的基本地图的地图图像500可包括由基本地图数据瓦片集合限定的诸如道路和公园的多个地图元素的渲染,所述基本地图数据瓦片集合包括与所示的区域对应的基本标签和基本样式数据或样式表。
如图10B所示,道路交通地图的地图图像可包括地图图像500以及叠加在地图图像500的对应部分上或者说被整合在地图图像500的对应部分内的地铁线路504的地图元素。取决于该实施例,地铁线路504可被限定成相同或不同地图瓦片中的单个地图特征或者若干地图特征,每个地图特征对应于轨道的相应段。另外,地铁符号506可被渲染在地图图像500的一部分上。另外,可在道路交通地图视图上提供用于地铁线路的标签(红线),并且尽管未示出,可删除基本地图视图中的道路的各种标签。取决于该实施例,例如,可作为添加的地图特征或元素、作为标签、或者作为图标来提供地铁符号506。在实施例中,地铁符号506被指定为可用于从生成标准图标的服务器检索以栅格格式的标准地铁符号的统一资源定位符(URL)。
为了在客户端装置处已经渲染图10A的地图图像以后在客户端装置处生成图10B的地图图像,地图服务器可仅提供具有修改的差异地图瓦片集合,所述修改以例如矢量格式描述与地铁线路504对应的一个或多个地图特征以及关联的改变,所述改变可包括对标签、样式数据或者样式表的改变,其改变各种特征的诸如线宽、颜色等各种视觉特征被渲染的方式。在实施例中,修改指示或者差异地图瓦片还可提供深度指示以使得地铁线路504出现在图10A的地图图像中所描绘的一些道路下面,并且在图10A的地图图像中的一些其它道路上面。另外,在实施例中,差异地图瓦片另外包括作为标签或图标的地铁符号506的描述。
如图10C所示,自行车地图550的地图图像可包括地图图像500以及叠加在地图图像500的对应部分上或者说被整合在地图图像500的对应部分内的自行车道集合的地图元素。这里,然而,移除(或者实际上在渲染处理中删除)道路交通信息。取决于该实施例,自行车道可被限定为设置在各种差异地图数据瓦片中的单个地图特征或者若干地图特征,每个地图特征对应于地图的相应段或者图10A的基本地图图像的基本地图数据瓦片。另外,自行车道符号552可被渲染在地图图像500的一部分上面。取决于该实施例,例如,可作为添加的地图特征或元素、作为标签、或者作为图标来提供符号552。在实施例中,一个或多个符号552可被指定为可用于从生成标准图标的服务器检索以栅格格式的标准自行车道符号的统一资源定位符(URL)。
为了在已经渲染图10A的地图图像以后和/或已经在客户端装置处使用差异地图瓦片渲染图10B的地图图像以修改图10A的地图图像以后在客户端装置处生成图10C的地图图像,地图服务器可仅提供具有修改的差异地图瓦片集合,所述修改以例如矢量格式描述与自行车视图550对应的一个或多个地图特征以及对基本地图瓦片的任何关联的改变以产生自行车视图。在实施例中,用于自行车视图的修改指示或者差异地图瓦片还可提供深度指示以使得自行车道552出现在图10A的地图图像中所描绘的一些或所有道路上面。另外,在实施例中,用于自行车视图的各种差异地图瓦片可包括作为标签或者作为图标的自行车道符号552的描述,并且这些或其它差异地图瓦片可提供在图10C的地图中不再强调道路而强调自行车道的新样式表。
如上所述,在接收到以差异地图瓦片形式的地图数据(其通常限定对基本瓦片内的矢量图形数据所作的改变)时,客户端装置连同基本地图瓦片一起处理差异地图瓦片,以生成将用于渲染新的图像或者新的地图视图的新的矢量图形集合。尽管客户端装置的图形引擎可仅仅处理差异地图瓦片中所提供的新限定的矢量图形限定集合连同基本地图瓦片中所限定的特征来确定作为新限定的地图视图的一部分包括的所有地图特征(形状、框、线条、点),并且然后可渲染所有这些形状以绘制新的地图视图,这种类型的处理在很大程度上将重复针对基本地图瓦片所执行的处理,仅有不同在于差异地图瓦片内的特征所限定的那些。这种类型的处理因此耗时并且处理器强度大,特别是考虑到大多数地图图像保持相同的实际情况。
对此问题的一个部分解决方案是使客户端装置的CPU在处理基本地图瓦片时所创建的现有特征数据以上绘制更多特征数据(由差异地图瓦片限定)。例如,如果差异地图瓦片限定待添加的特征,则客户端装置的CPU可仅仅处理新的特征(从限定待添加到地图的新的框、线条、点、纹理等方面来讲)并且在现有视口上将这些新的特征渲染在现有显示的特征上面。这样,CPU可仅仅准备新的数据(用于新的特征)并且将该数据缓冲到图形引擎的GPU,该图形引擎的GPU将所述特征绘制在现有地图元素上面。新的特征因此将被绘制在任何现有地图内容上面。然而,此方法严重不足,因为它在绘制新的特征时不允许重新排序,而是限于将新的特征绘制在现有特征上面或以上,这在许多情况下将不允许新的地图特征的正确分层。另外,此方法不允许移除已经绘制的特征,使得它成为非常粗糙的解决方案。
更好的解决方案是将现有地图数据(由基本地图瓦片的一部分限定并且作为基本地图瓦片的一部分被处理)与如差异地图瓦片中所限定的新的修改符数据整合,而不重新准备或者重新缓冲客户端装置已经处理或准备的任何现有特征数据。修改符数据能够添加新的地图特征或者改变/移除现有地图特征,并且在渲染新的地图视图时通常仅需要准备或处理作为差异地图瓦片的一部分提供的新的修改符数据所限定的特征。所准备的修改符数据然后作为两种类型的所准备的数据(由基本瓦片限定的旧数据和由差异瓦片限定的新数据)的合成的一部分来渲染,而不必对现有特征数据(由基本地图瓦片限定)执行附加处理。
具体地讲,在添加新的数据或地图特征时,客户端装置上的CPU跟踪从用于渲染地图的渲染操作的排序方面来讲,要在哪里添加新的特征。在这样做时,CPU将针对新的特征的渲染操作与针对旧的或者预先存在的特征的渲染操作交织,以限定将绘制这两种类型的特征的顺序。此操作使得客户端CPU能够跟踪并控制现有特征的绘制深度连同所添加的特征的绘制深度,从而根据需要或者如作为新的特征的一部分提供的层数据所指定的,将新的特征的绘制交织在现有特征之间。此操作允许CPU按照任何顺序绘制旧的和新的特征的完整合成,而无需在准备基本地图图像以进行渲染时修改在图形引擎的VRAM中针对旧的特征已经准备并存储的任何几何构型。
此外,由基本地图瓦片限定(并且因此这样存在于VRAM中)的待删除的特征或元素可通过使用不可见样式参数渲染这些特征来有效地删除。即,待删除的基本地图瓦片内的特征可使得其样式参数改变,以有效地使GPU将这些特征在地图上渲染或者绘制为不可见。如果不存在显式不可见样式参数值,则这种不可见样式可通过使用零或者非常小的线宽、没有颜色或者填充图案等作为样式参数值来实现。实际上,根据此技术,仍绘制特征,因为在绘制处理中执行针对该特征的渲染操作。然而,该特征是按照使得该特征在屏幕或者用户界面上不可见的方式绘制的。在典型的图形引擎中,这种改变样式将需要完整擦去现有样式数据(由GPU用来限定绘制所准备的特征的方式,诸如绘制处理中使用的颜色、线宽、字体、大小等)。然而,在这种情况下,可使用动态样式技术以不再需要擦掉现有样式数据。依赖于使用下述各种样式表的这种动态样式技术使得现有地图的样式数据能够被原样保留,从而允许一旦合成地图视图已经被渲染,GPU就快速地切换回先前状态。另外,系统可根据需要创建包含新样式限定的用于合成瓦片的新样式地图,包括将“删除”渲染选项映射到不可见样式。
使用这两种类型的操作,即,(1)准备如由差异地图瓦片限定的附加特征数据并且将这些附加特征的渲染操作排序或交织在针对基本地图瓦片已经准备的渲染操作内的适当地方,以将特征添加到地图视图,以及(2)将基本地图特征的渲染操作样式参数改变为不可见样式以删除这些基本地图特征,能够渲染如由差异瓦片限定的新的地图视图,而无需针对基本地图瓦片中的任何特征重新准备或者重新限定完整渲染操作。
作为背景,地图数据通常被分成统一的正方形或矩形瓦片。这些瓦片通常限定数据单元,这些数据单元横跨通信网络被传输并被存储在客户端机器上,并且还指示或限定客户端装置处的接口屏幕上渲染的视觉区域。瓦片内的数据单元包含客户端装置将瓦片渲染到屏幕所需的所有事物,包括渲染操作的几何构型(例如,这条路从这一点延伸到这一点)以及应该通过渲染操作应用的样式参数(例如,这条路应该是蓝色的,并且五个像素宽)。由于改变存储在VRAM中(即,客户端装置的GPU上)的数据在时间和处理能力方面是昂贵的,并且由于上述地图绘制系统为了效果想要能够容易地改变样式特征,所以地图绘制系统不将所有几何构型和所有样式信息存储在一起。这样做还将导致任何样式改变强制对几何构型的大规模更新。相反,地图绘制系统存储一系列表(称为样式表),在一个情况下被编码为VRAM中的纹理,其充当渲染操作之间的间接层;应该应用于它们的样式;以及那些样式的参数值。使用此技术,为了确定应该如何显示特定渲染操作,地图绘制系统首先研究告知系统哪一样式应该应用于该特征(或者特征顶点)的纹理(样式表被编码于其中),并且然后在各种样式参数(例如,线宽、颜色、填充图案等)的样式参数值方面研究包含样式的实际限定的另一纹理(被编码为第二样式表)。使用此系统,如果地图绘制引擎需要将一条路改变为看起来像另一条路,则系统所需要做的就是改变中间纹理/样式表中的像素值以使得该表指向新的期望样式限定。用于对样式表进行编码的纹理较小并且易于小数量的修改,而不会有大的性能影响,并且因此使用非常有效。
图11描绘了可实现上述有效的合成和渲染技术的图像生成或成像渲染装置240。例如,可与图1的客户端装置14或15之一关联或者通过其实现的渲染装置240包括两个处理器230a和230b、两个存储器232a和232b、用户接口234和光栅化器236。在这种情况下,处理器230b、存储器232b和光栅化器236被设置在单独的图形卡上(示出于水平线下面),但是不需要所有实施例均是如此。例如,在其它实施例中,作为替代,可使用单个处理器。另外,图像渲染系统240包括网络接口242、通信和存储例程243以及存储在存储器232a上的其中具有地图显示逻辑的一个或多个地图应用248,其可在处理器230a(例如,可以是中央处理单元(CPU))上执行。同样,例如以顶点着色器244和片段着色器246的形式的一个或多个图像着色器被存储在存储器232b上并在处理器230b上执行。存储器232a和232b可包括易失性和非易失性存储器中的任一者或二者,并且例程和着色器可在处理器230a和230b上执行以提供下述功能。网络接口242包括任何熟知软件和/或硬件组件,其操作以经由硬线或无线通信网络与例如图1的服务器12通信以获得以矢量数据形式的图像数据,以用于使用例如基本地图瓦片和差异地图瓦片在用户接口或者显示装置234上创建图像显示。图像渲染装置240还包括数据存储器249,例如,其可以是缓冲器或者易失性存储器,其存储从地图数据库18或者地图服务器12接收的矢量数据,所述矢量数据包括任何数量的顶点数据点以及一个或多个样式查找表,如将更详细描述的。
在操作期间,地图应用248的地图逻辑在处理器230上执行以使用例如用户输入、GPS信号、预存储的逻辑或编程等来确定经由显示装置234显示给用户所需的特定图像数据。应用248的显示或地图逻辑通过经网络接口242与服务器12通信以获得地图数据,优选为来自地图服务器12的矢量数据或者压缩矢量数据的形式,使用通信例程243来与地图数据库18和地图服务器12交互。该矢量数据经由网络接口242返回,并且可通过例程243被解压缩并存储在数据存储器249中。具体地讲,从地图服务器12下载的数据可以是要使用的最终矢量数据的紧凑的、结构化的或者以其它方式优化的版本,并且地图应用248可操作以使用处理器230a将所下载的矢量数据变换为特定顶点数据点。在一个实施例中,从服务器12发送来的图像数据包括矢量数据,其通常限定与要显示在屏幕234上的许多不同的图像元素或图像对象关联的顶点集合中的每一个顶点的数据;以及将在下面更详细地描述的可能的一个或多个查找表,其中该数据按照上述任何方式在基本地图瓦片或差异地图瓦片中发送。如果需要,查找表可按照矢量纹理地图的形式发送,或者可被编码为矢量纹理地图的形式,或者可被地图应用248生成为矢量纹理地图的形式,所述矢量纹理地图是已知类型的数据文件,通常限定将要作为使用矢量图形创建的图像的一部分显示的特定纹理或色域(像素值)。更具体地讲,每个图像元素或图像对象的矢量数据可包括与构成图像的特定元素或对象的一个或多个三角形关联的多个顶点。每个此类三角形包括三个顶点(由顶点数据点限定),并且每个顶点数据点具有与其关联的顶点数据。在一个实施例中,每个顶点数据点包括限定顶点在参考或虚拟空间中的二维或三维定位或位置的顶点位置数据,以及属性参考。每个顶点数据点可另外包括其它信息,诸如标识与顶点数据点关联的图像对象的类型的对象类型标识符。属性参考,本文中称作样式参考或者特征参考,参考或者指向下载并存储在数据存储器243中的一个或多个查找表中的位置或位置集合。
图12A图示出根据实施例的可发送给客户端装置,诸如,图11的装置240,以用于处理的地图数据的实施例。如图12A所示,地图数据包含顶点的位置数据、对象类型和顶点的样式属性。一个或多个顶点的集合可包括地图的图像对象或特征,诸如道路或建筑物。根据实施例,可针对每个顶点发送样式属性,或者样式属性可参考诸如图12B所示的另外的样式查找表,其可用于将图12A的样式参考解码为一个或多个样式属性参数值的完整集合。尽管图12A中未具体示出,当作为差异瓦片的一部分提供地图数据时,渲染操作可与地图数据关联。此类操作可以是添加特征或者删除特征。另外,地图数据可指定渲染每个特征的级别或层。使用这两个样式表,诸如,图12A和图12B的样式表,可使得能够容易地规范对任何地图元素的样式数据的改变,这使得在准备这些地图特征以后并且响应于接收到新的差异地图瓦片集合,待删除的地图元素的样式能够改变为不可见渲染元素。
在任何情况下,样式参数可包括填充颜色(例如,对于区域对象)、轮廓颜色、轮廓宽度、轮廓斜线图案以及是否使用圆形端盖的指示(例如,对于道路对象)、内部颜色、内部宽度、内部斜线图案和内部圆形端盖(例如,对于道路对象)、文本颜色和文本轮廓颜色(例如,对于文本对象)、箭头颜色、箭头宽度、箭头斜线图案(例如,对于箭头对象)、文本框填充颜色和文本框轮廓性质集合(例如,对于文本框对象)等等。当然,所提供的不同的顶点样式属性可仅适用于图像对象的子集或者仅与图像对象的子集相关,并且因此与特定类型的图像对象关联的顶点样式数据点可仅表示针对每个样式所列的顶点属性的子集。
如上所述,当渲染基本地图瓦片或者基本地图瓦片集合时,图11的处理器230a可通过限定地图视口中的每个特征的具体大小和位置来预处理地图元素或特征,并且创建许多渲染操作,GPU或处理器230b将使用这些渲染操作来将那些特征渲染在显示器上。这些渲染操作的开发可能是处理器强度大的,但是一旦完成,这些渲染操作可被存储在图形卡存储器或者VRAM232b中,以便于通过顶点或片段着色器或者作为顶点或片段着色器244、246的部分来渲染。当着色器244和246操作以绘制诸如基本地图图像的图像时,从样式表确定渲染操作的样式,并且执行渲染操作以渲染基本图像。
接下来,当接收到差异地图瓦片集合时,地图应用248可实现上述技术以渲染通过差异地图瓦片限定的新的地图图像,而不必重新预处理基本地图瓦片中的每个地图特征。具体地讲,当差异地图瓦片将新的地图特征添加到地图图像时,客户端装置242上的CPU230a对地图特征进行预处理以创建将在着色器244、246之一上执行或由其执行的该特征的一个或多个渲染操作。预处理应用跟踪在用于渲染地图的渲染操作的排序方面新特征要被添加到哪里,并且将要在着色器244、246上执行的新的渲染操作存储在已经针对基本地图瓦片中的特征限定的渲染操作内的适当地方。该特征使得新的特征能够被绘制在新的地图视图内的正确的层。因此,CPU230a将差异地图瓦片中所限定的新的特征的渲染操作与针对基本地图瓦片限定的旧的或者预先存在的特征的渲染操作交织,以便限定这些类型的特征中的这两者将被绘制的顺序。该操作使得客户端CPU能够跟踪并控制现有特征的绘制深度连同所添加的特征的绘制深度,从而根据需要或者如作为新的特征的一部分提供的层数据所指定的,将新的特征的绘制交织在现有特征之间。该操作允许CPU按照任何顺序绘制旧的和新的特征的完整合成,而无需在准备基本地图图像以进行渲染时修改在图形引擎的VRAM232b中针对旧的特征已经准备并存储的任何几何构型。
此外,由基本地图瓦片限定(并且因此本身存在于VRAM中)的待删除的特征或元素可通过使用样式表中的不可见样式参数渲染这些特征来有效地删除。这里,差异地图瓦片可提供针对待删除的基本地图元素将样式参数设置为不可见的新的样式表。另选地,处理器230a可确定作为着色器244、246的渲染操作已经被存储在VRAM232b中的哪些基本地图特征应该被删除,并且可将这些特征的样式参数值设置为不可见设置。即,当GPU230b执行着色器244、246以及与其关联的渲染操作时,待删除的基本地图瓦片内的特征可使得其样式参数改变,以有效地使GPU230b将这些特征在地图上渲染或者绘制为不可见。如果不存在显式不可见样式参数值,则这种不可见样式可通过使用零或者非常小的线宽、没有颜色或者填充图案等作为样式参数值来实现。实际上,根据此技术,仍绘制先前针对基本地图瓦片确定并配置并且被存储在存储器232b中的特征,但是该特征是按照使得该特征对用户不可见的方式绘制的。使用如图12A和图12B所示的样式表使得样式参数的这种改变易于实现。
如所提及的,准备大量特征数据并将它缓冲到客户端装置中的GPU的成本会极其高。在高性能应用中,这些成本过高,并且破坏了整个系统的功能。上述渲染操作在使用随后通过差异地图瓦片改变或更改的基本地图瓦片渲染地图图像时完全克服了这一问题。
下面的附加考虑适用于以上讨论。贯穿本说明书,多个实例可实现作为单个实例描述的组件、操作或结构。尽管一个或多个方法的各个操作被示出并描述为单独的操作,但是各个操作中的一个或多个可同时执行,并且不要求操作按照所示的顺序执行。在示例配置中作为单独的组件呈现的结构和功能可被实现为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可被实现为单独的组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。
本文中将某些实施例描述为包括逻辑或者许多组件、模块、或机构。模块可构成软件模块(例如,具体实现于机器可读介质上或者传输信号中的代码)或者硬件模块。硬件模块是能够执行某些操作的有形单元并且可按照某种方式来配置或布置。在示例实施例中,一个或多个计算机系统(例如,独立式客户端或服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如,处理器或者处理器组)可通过软件(例如,应用或者应用部分)被配置为操作以执行如本文所述的某些操作的硬件模块。
除非另外具体地指明,否则本文中使用诸如“处理”、“计算”、“确定”、“呈现”、“显示”等词语的讨论可表示操纵或变换数据的机器(例如,计算机)的动作或处理,所述数据在一个或多个存储器(例如,易失性存储器、非易失性存储器或其组合)、寄存器或者接收、存储、传输或显示信息的其它机器组件内被表示为物理(例如,电、磁或光学)量。
如本文所用的,对“一个实施例”或“实施例”的任何引用意味着结合该实施例描述的特定元件、特征、结构或者特性包括在至少一个实施例中。说明书中出现于各处的短语“在一个实施例中”未必都指代相同的实施例。
一些实施例可使用表达“耦合”和“连接”连同派生词来描述。例如,一些实施例可使用术语“耦合”来描述以指示两个或更多个元件直接物理或者电接触。然而,术语“耦合”也可意指两个或更多个单元未彼此直接接触,但是仍然彼此协作或者交互。实施例不限于这样的场境。
如本文所用,术语“包括”、“包含”、“具有”或者其任何其它变体旨在覆盖非排他含义的包括。例如,包括元素列表的处理、方法、制品或设备不必仅限于那些元素,而是可包括未明确列举或者这样的处理、方法、制品或设备所固有的其它元素。另外,除非相反地明确指出,否则“或”表示包括含义的或,而非排他含义的或。例如,以下各项中的任一项满足条件A或B:A为真(或存在)并且B为假(或不存在)、A为假(或不存在)并且B为真(或存在)以及A和B均为真(或存在)。
此外,本文采用“一个/一种”来描述实施例的元件和组件。这样做仅是为了方便并且给出本发明的一般意义。应当理解,此描述包括一个或者至少一个,并且除非明显另有含义,否则单数也包括复数。
在阅读本公开时,本领域技术人员将理解用于通过本文所公开的原理生成地图数据的系统和处理的附加替代结构和功能设计。因此,尽管已经示出并描述了特定实施例和应用,但是将理解,所公开的实施例不限于本文所公开的精确构造和组件。在不脱离所附权利要求书中限定的精神和范围的情况下,可在本文所公开的方法和设备的布置方式、操作和细节方面进行对于本领域技术人员而言将显而易见的各种修改、改变和变化。
Claims (51)
1.一种实现于计算装置中的用于生成地图图像的方法,所述方法包括:
经由通信网络接收与所选择的地理区域的第一地图图像关联的多个基本地图瓦片,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符;
使用处理器对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合;
经由所述通信网络接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示;
使用处理器对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合;以及
使用处理器通过以下操作经由用户接口来渲染所述第二地图图像:实现所述第一渲染指令集合和所述第二渲染指令集合。
2.根据权利要求1所述的方法,其中,接收所述差异地图瓦片集合包括:接收包括所述多个基本地图瓦片中的所述多个矢量描述符中不包括的附加矢量描述符的差异地图瓦片,其中,所述附加矢量描述符对应于将要作为所述第二地图图像的一部分渲染但是不是所述第一地图图像的一部分的地图元素。
3.根据权利要求2所述的方法,其中,接收所述差异地图瓦片集合还包括:接收与所述附加矢量描述符对应的标签,其中,所述标签包括作为所述第二地图图像的一部分连同所述地图元素一起渲染的文本。
4.根据权利要求1所述的方法,其中,接收所述差异地图瓦片集合包括:接收由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示,并且还包括使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素。
5.根据权利要求4所述的方法,其中,使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:使用透明样式参数来渲染不应在所述第二地图图像中示出的所述地图元素。
6.根据权利要求4所述的方法,其中,使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:使用用于渲染不应在所述第二地图图像中示出的所述地图元素的线宽渲染参数来渲染不应在所述第二地图图像中示出的所述地图元素,其中,所述线宽参数值足够小以使得不应在所述第二地图图像中示出的所述地图元素在所述用户接口上无法用肉眼来看到。
7.根据权利要求4所述的方法,其中,使用处理器对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合包括:创建所述第一渲染指令集合以参考存储在存储器中的样式属性来限定与由所述一个或多个矢量描述符限定的地图元素关联的一个或多个渲染参数,并且其中,使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:将不应在所述第二地图图像中示出的所述地图元素的样式属性设置为透明值。
8.根据权利要求4所述的方法,其中,使用处理器对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合包括:创建所述第一渲染指令集合以参考存储在存储器中的样式属性来限定与由所述一个或多个矢量描述符限定的地图元素关联的一个或多个渲染参数,并且其中,使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:将不应在所述第二地图图像中示出的所述地图元素的样式属性设置为使得不应在所述第二地图图像中示出的所述地图元素对肉眼不可见的值。
9.根据权利要求8所述的方法,其中,将不应在所述第二地图图像中示出的所述地图元素的所述样式属性设置为使得不应在所述第二地图图像中示出的所述地图元素对肉眼不可见的值包括:将所述样式属性的颜色参数设置为使得不应在所述第二地图图像中示出的所述地图元素被渲染为透明的值。
10.根据权利要求8所述的方法,其中,将不应在所述第二地图图像中示出的所述地图元素的所述样式属性设置为使得不应在所述第二地图图像中示出的所述地图元素对肉眼不可见的值包括:将所述样式属性的线宽参数设置为足够小以按照在被渲染于所述用户接口上时无法被肉眼看到的方式来渲染不应在所述第二地图图像中示出的所述地图元素。
11.根据权利要求1所述的方法,其中,使用处理器对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合包括:通过将所述第二渲染指令集合中的至少一个渲染指令交织在所述第一渲染指令集合中的两个渲染指令之间来限定所述第一渲染指令集合和所述第二渲染指令集合的渲染序列,并且其中,通过实现所述第一渲染指令集合和所述第二渲染指令集合将所述第二地图图像渲染在用户接口上包括:按照所述渲染序列所限定的顺序来实现所述第一渲染指令集合和所述第二渲染指令集合。
12.一种实现于计算装置中的用于生成地图图像的方法,所述方法包括:
经由通信网络接收与所选择的地理区域的第一地图图像关联的多个基本地图瓦片,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符;
使用处理器对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合,其中,所述第一渲染集合指令使用样式属性查找表来限定用于渲染所述第一地图图像内的地图元素的样式参数;
经由所述通信网络接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示,并且其中,所述差异地图瓦片中的至少一个包括由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示;
使用处理器修改所述第一渲染指令集合所使用的所述样式参数中的一个或多个,以使得所述第一渲染指令集合按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素;以及
使用处理器通过以下操作经由用户接口来渲染所述第二地图图像:实现带有所修改的所述样式参数中的一个或多个的所述第一渲染指令集合。
13.根据权利要求12所述的方法,其中,所述差异地图瓦片集合中的一个或多个包括将要被渲染于所述第二地图图像中的附加地图元素,并且还包括使用处理器对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于将所述附加地图元素渲染在所述第二地图图像中的第二渲染指令集合,并且其中,渲染所述第二地图图像还包括实现所述第二渲染指令集合。
14.根据权利要求13所述的方法,其中,使用处理器对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的所述第二渲染指令集合包括:通过将所述第二渲染指令集合中的至少一个渲染指令交织在所述第一渲染指令集合中的两个之间来限定所述第一渲染指令集合和所述第二渲染指令集合的渲染序列,并且其中,通过实现所述第一渲染指令集合和所述第二渲染指令集合来将所述第二地图图像渲染在用户接口上包括:按照根据所述渲染序列的顺序来实现所述第一渲染指令集合和所述第二渲染指令集合。
15.根据权利要求13所述的方法,其中,经由用户接口渲染所述第二地图图像还包括:在所述第一渲染指令集合中的一个渲染指令以后并且在所述第一渲染指令集合中的第二个渲染指令以前执行所述第二渲染指令集合中的一个或多个渲染指令。
16.根据权利要求12所述的方法,其中,使用处理器修改所述第一渲染指令集合所使用的所述样式参数中的一个或多个,以使得所述第一渲染指令集合按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:将不应在所述第二地图图像中示出的所述地图元素的所述样式参数修改为透明样式参数值。
17.根据权利要求12所述的方法,其中,使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:使用足够小以使得不应在所述第二地图图像中示出的所述地图元素无法在所述用户接口上用肉眼来看到的线宽渲染参数值来渲染不应在所述第二地图图像中示出的所述地图元素。
18.根据权利要求12所述的方法,其中,使用处理器修改所述第一渲染指令集合所使用的所述样式参数中的一个或多个包括:将颜色样式参数设置为透明颜色值。
19.根据权利要求12所述的方法,其中,使用处理器修改所述第一渲染指令集合所使用的所述样式参数中的一个或多个包括:将线宽参数设置为足够小的值以使得线条在被渲染于所述第二地图图像中时对肉眼不可见。
20.一种显示装置,所述显示装置包括:
通信网络接口;
用户显示装置;以及
处理硬件,所述处理硬件包括耦合至所述通信网络接口和所述用户显示装置的一个或多个处理器,被配置为:
经由所述通信网络接口接收以与所选择的地理区域的第一地图图像关联的多个基本地图瓦片的形式的数据,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符,
对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合;
经由所述通信网络接口接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示;
对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合;并且
通过实现所述第一渲染指令集合和所述第二渲染指令集合将所述第二地图图像渲染在所述用户显示器上。
21.根据权利要求20所述的显示装置,其中,所述差异地图瓦片集合包括:由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示,并且其中,所述处理硬件还被配置为实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素。
22.根据权利要求21所述的显示装置,其中,所述处理硬件被配置为通过以下操作来实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素:使用透明样式参数值来渲染不应在所述第二地图图像中示出的所述地图元素。
23.根据权利要求21所述的显示装置,其中,所述处理硬件被配置为通过以下操作来实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素:使用用于渲染不应在所述第二地图图像中示出的所述地图元素的线宽渲染参数值来渲染不应在所述第二地图图像中示出的所述地图元素,所述线宽渲染参数值足够小以使得不应在所述第二地图图像中示出的所述地图元素无法在所述用户显示装置上用肉眼来看到。
24.根据权利要求20所述的显示装置,其中,所述处理硬件被配置为通过以下操作对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合:限定将所述第二渲染指令集合中的至少一个渲染指令交织在所述第一渲染指令集合中的两个渲染指令之间的所述第一渲染指令集合和所述第二渲染指令集合的渲染序列,并且被配置为按照所述渲染序列所限定的顺序来实现所述第一渲染指令集合和所述第二渲染指令集合。
25.根据权利要求20所述的显示装置,其中,所述处理硬件还被配置为通过以下操作接收所述多个基本地图瓦片:接收限定所述基本地图瓦片中的一个中的所述矢量元素中的一个或多个出现在所述第一地图图像中的方式的样式数据集合,并且被配置为通过以下操作接收所述差异地图瓦片集合:接收限定所述基本地图瓦片中的一个中的所述矢量元素中的一个或多个将被渲染以出现在不同于所述第一地图图像的所述第二地图图像中的方式的不同的样式数据集合,并且其中,所述处理硬件被配置为在实现所述第一渲染指令集合和所述第二渲染指令集合时应用所述不同的样式数据集合。
26.一种显示装置,所述显示装置包括:
通信网络接口;
用户显示装置;以及
处理硬件,所述处理硬件包括一个或多个处理器,耦合到所述通信网络接口和所述用户显示装置,所述处理硬件被配置为:
经由所述通信网络接口接收与所选择的地理区域的第一地图图像关联的多个基本地图瓦片,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符;
对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合,其中,所述第一渲染指令集合使用样式属性变量集合来限定用于渲染所述第一地图图像内的地图元素的样式参数;
经由所述通信网络接口接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示,并且其中,所述差异地图瓦片中的至少一个包括由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示;
修改所述第一渲染指令集合所使用的所述样式属性变量集合中的一个或多个样式属性变量,以使得所述第一渲染指令集合按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素;并且
通过以下操作经由用户接口来渲染所述第二地图图像:实现带有所修改的所述样式属性变量集合中的一个或多个样式属性变量的所述第一渲染指令集合。
27.根据权利要求26所述的显示装置,其中,所述处理硬件还被配置为接收包括将要被渲染于所述第二地图图像中的附加地图元素的差异地图瓦片,以从所述差异地图瓦片进一步创建用于将所述附加地图元素渲染在第二地图图像中的第二渲染指令集合,并且通过除了所述第一渲染指令集合以外还实现所述第二渲染指令集合来渲染所述第二地图图像。
28.根据权利要求27所述的显示装置,其中,所述处理硬件还被配置为通过将所述第二渲染指令集合中的至少一个渲染指令交织在所述第一渲染指令集合中的两个之间来限定所述第一渲染指令集合和所述第二渲染指令集合的渲染序列,并且通过按照所述渲染序列所限定的顺序实现所述第一渲染指令集合和所述第二渲染指令集合,来将所述第二地图图像渲染在所述用户显示装置上。
29.根据权利要求27所述的显示装置,其中,所述处理硬件还被配置为通过将不应在所述第二地图图像中示出的所述地图元素的所述样式属性变量集合中的一个样式属性变量修改为透明样式属性变量值,来修改所述第一渲染指令集合所使用的所述样式属性变量中的所述一个或多个样式属性变量以使得所述第一渲染指令集合按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素。
30.根据权利要求27所述的显示装置,其中,所述处理硬件还被配置为通过将不应在所述第二地图图像中示出的所述地图元素的线宽样式属性变量修改为非常小的值,来修改所述第一渲染指令集合所使用的所述样式属性变量中的所述一个或多个样式属性变量以使得所述第一渲染指令集合按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素。
31.一种实现于计算装置中的用于生成地图图像的方法,所述方法包括:
经由通信网络接收与所选择的地理区域的第一地图图像关联的多个基本地图瓦片,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符;
使用处理器对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合;
经由所述通信网络接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示;
使用处理器对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合;以及
使用处理器通过以下操作经由用户接口来渲染所述第二地图图像:实现所述第一渲染指令集合和所述第二渲染指令集合。
32.根据权利要求31所述的方法,其中,接收所述差异地图瓦片集合包括:接收包括所述多个基本地图瓦片中的所述多个矢量描述符中不包括的附加矢量描述符的差异地图瓦片,其中,所述附加矢量描述符对应于将要作为所述第二地图图像的一部分渲染但是不是所述第一地图图像的一部分的地图元素。
33.根据权利要求31或32所述的方法,其中,接收所述差异地图瓦片集合还包括:接收与所述附加矢量描述符对应的标签,其中,所述标签包括作为所述第二地图图像的一部分连同所述地图元素一起渲染的文本。
34.根据权利要求31、32或33所述的方法,其中,接收所述差异地图瓦片集合包括:接收由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示,并且还包括使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素。
35.根据权利要求34所述的方法,其中,使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:使用透明样式参数来渲染不应在所述第二地图图像中示出的所述地图元素。
36.根据权利要求34所述的方法,其中,使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:使用用于渲染不应在所述第二地图图像中示出的所述地图元素的线宽渲染参数来渲染不应在所述第二地图图像中示出的所述地图元素,其中,所述线宽参数值足够小以使得不应在所述第二地图图像中示出的所述地图元素无法在所述用户接口上用肉眼来看到。
37.根据权利要求34所述的方法,其中,使用处理器对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合包括:创建所述第一渲染指令集合以参考存储在存储器中的样式属性来限定与由所述一个或多个矢量描述符限定的地图元素关联的一个或多个渲染参数,并且其中,使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:将不应在所述第二地图图像中示出的所述地图元素的样式属性设置为透明值。
38.根据权利要求34所述的方法,其中,使用处理器对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合包括:创建所述第一渲染指令集合以参考存储在存储器中的样式属性来限定与由所述一个或多个矢量描述符限定的地图元素关联的一个或多个渲染参数,并且其中,使用处理器实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素包括:将不应在所述第二地图图像中示出的所述地图元素的样式属性设置为使得不应在所述第二地图图像中示出的所述地图元素对肉眼不可见的值。
39.根据权利要求38所述的方法,其中,将不应在所述第二地图图像中示出的所述地图元素的所述样式属性设置为使得不应在所述第二地图图像中示出的所述地图元素对肉眼不可见的值包括:将所述样式属性的颜色参数设置为使得不应在所述第二地图图像中示出的所述地图元素被渲染为透明的值。
40.根据权利要求38所述的方法,其中,将不应在所述第二地图图像中示出的所述地图元素的所述样式属性设置为使得不应在所述第二地图图像中示出的所述地图元素对肉眼不可见的值包括:将所述样式属性的线宽参数设置为足够小以按照在被渲染于所述用户接口上时无法被肉眼看到的方式来渲染不应在所述第二地图图像中示出的所述地图元素。
41.根据前述权利要求中的任何一项所述的方法,其中,使用处理器对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合包括:通过将所述第二渲染指令集合中的至少一个渲染指令交织在所述第一渲染指令集合中的两个渲染指令之间来限定所述第一渲染指令集合和所述第二渲染指令集合的渲染序列,并且其中,通过实现所述第一渲染指令集合和所述第二渲染指令集合来经由用户接口渲染所述第二地图图像包括:按照所述渲染序列所限定的顺序来实现所述第一渲染指令集合和所述第二渲染指令集合。
42.根据权利要求41所述的方法,其中,经由用户接口渲染所述第二地图图像还包括:在所述第一渲染指令集合中的一个渲染指令以后并且在所述第一渲染指令集合中的第二个渲染指令以前执行所述第二渲染指令集合中的一个或多个渲染指令。
43.根据前述权利要求中的任何一项所述的方法,其中
所述第一渲染指令集合使用样式属性查找表来限定用于渲染所述第一地图图像内的地图元素的样式参数;
所述差异地图瓦片中的至少一个包括由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示;
使用处理器修改所述第一渲染指令集合所使用的所述样式参数中的一个或多个,以使得所述第一渲染指令集合按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素;并且
使用处理器通过以下操作经由用户接口来渲染所述第二地图图像:实现带有所修改的所述样式参数中的一个或多个的所述第一渲染指令集合。
44.一种显示装置,所述显示装置包括:
通信网络接口;
用户显示装置;以及
处理硬件,所述处理硬件包括耦合至所述通信网络接口和所述用户显示装置的一个或多个处理器,被配置为:
经由所述通信网络接口接收以与所选择的地理区域的第一地图图像关联的多个基本地图瓦片的形式的数据,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符,
对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合;
经由所述通信网络接口接收用于渲染所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示;
对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合;并且
通过实现所述第一渲染指令集合和所述第二渲染指令集合将所述第二地图图像渲染在所述用户显示器上。
45.根据权利要求44所述的显示装置,其中,所述差异地图瓦片集合包括:由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示,并且其中,所述处理硬件还被配置为实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素。
46.根据权利要求45所述的显示装置,其中,所述处理硬件被配置为通过以下操作来实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素:使用透明样式参数值来渲染不应在所述第二地图图像中示出的所述地图元素。
47.根据权利要求45所述的显示装置,其中,所述处理硬件被配置为通过以下操作来实现所述第一渲染指令集合,以按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素:使用用于渲染不应在所述第二地图图像中示出的所述地图元素的线宽渲染参数值来渲染不应在所述第二地图图像中示出的所述地图元素,所述线宽渲染参数值足够小以使得不应在所述第二地图图像中示出的所述地图元素无法在所述用户显示装置上用肉眼来看到。
48.根据权利要求44至47中的任意一项所述的显示装置,其中,所述处理硬件被配置为通过以下操作对所述矢量描述符的所述修改的所述一个或多个指示进行预处理,以创建用于渲染所述第二地图图像的第二渲染指令集合:限定将所述第二渲染指令集合中的至少一个渲染指令交织在所述第一渲染指令集合中的两个渲染指令之间的所述第一渲染指令集合和所述第二渲染指令集合的渲染序列,并且被配置为按照所述渲染序列所限定的顺序来实现所述第一渲染指令集合和所述第二渲染指令集合。
49.根据权利要求44至47中的任意一项所述的显示装置,其中,所述处理硬件还被配置为通过以下操作接收所述多个基本地图瓦片:接收限定所述基本地图瓦片中的一个中的所述矢量元素中的一个或多个出现在所述第一地图图像中的方式的样式数据集合,并且被配置为通过以下操作接收所述差异地图瓦片集合:接收限定所述基本地图瓦片中的一个中的所述矢量元素中的一个或多个将被渲染以出现在不同于所述第一地图图像的所述第二地图图像中的方式的不同的样式数据集合,并且其中,所述处理硬件被配置为在实现所述第一渲染指令集合和所述第二渲染指令集合时应用所述不同的样式数据集合。
50.一种显示装置,所述显示装置包括:
通信网络接口;
用户显示装置;以及
处理硬件,所述处理硬件包括一个或多个处理器,耦合到所述通信网络接口和所述用户显示装置,所述处理硬件被配置为:
经由所述通信网络接口接收与所选择的地理区域的第一地图图像关联的多个基本地图瓦片,每个基本地图瓦片包括依据矢量图形格式指示相应地图元素的几何构型的一个或多个矢量描述符;
对每个基本地图瓦片中的所述矢量描述符进行预处理,以创建用于渲染由所述多个基本地图瓦片限定的所述第一地图图像的第一渲染指令集合,其中,所述第一渲染指令集合使用样式属性变量集合来限定用于渲染所述第一地图图像内的地图元素的样式参数;
经由所述通信网络接口接收用于渲染所述所选择的地理区域的第二地图图像的差异地图瓦片集合,所述差异地图瓦片集合中的每一个差异地图瓦片包括将要应用于所述多个基本地图瓦片中的一个的矢量描述符的修改的一个或多个指示,并且其中,所述差异地图瓦片中的至少一个包括由所述多个基本地图瓦片中的所述多个矢量描述符中的一个限定的地图元素不应在所述第二地图图像中示出的指示;
修改所述第一渲染指令集合所使用的所述样式属性变量集合中的一个或多个样式属性变量,以使得所述第一渲染指令集合按照使得不应在所述第二地图图像中示出的所述地图元素在所述第二地图图像中基本上不可见的方式来渲染不应在所述第二地图图像中示出的所述地图元素;并且
通过以下操作经由用户接口来渲染所述第二地图图像:实现带有所修改的所述样式属性变量集合中的一个或多个样式属性变量的所述第一渲染指令集合。
51.一种具有存储于其上指令的有形非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求30至43中的任意一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361823898P | 2013-05-15 | 2013-05-15 | |
US61/823,898 | 2013-05-15 | ||
PCT/US2014/037993 WO2014186459A2 (en) | 2013-05-15 | 2014-05-14 | Efficient composition and rendering of graphical elements |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105393282A true CN105393282A (zh) | 2016-03-09 |
CN105393282B CN105393282B (zh) | 2019-02-26 |
Family
ID=51023042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480039848.3A Active CN105393282B (zh) | 2013-05-15 | 2014-05-14 | 图形元素的有效合成和渲染 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9424673B2 (zh) |
EP (1) | EP2997546B1 (zh) |
CN (1) | CN105393282B (zh) |
DE (1) | DE202014010911U1 (zh) |
WO (1) | WO2014186459A2 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106855881A (zh) * | 2016-12-16 | 2017-06-16 | 北京奇鱼时代科技有限公司 | 一种基于移动设备的多地图切换的方法和装置 |
CN107818069A (zh) * | 2016-09-12 | 2018-03-20 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统 |
CN108399646A (zh) * | 2017-02-07 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法及装置 |
CN109804381A (zh) * | 2016-07-28 | 2019-05-24 | T·普洛塔 | 数字图像内的自动像素移位 |
CN109976600A (zh) * | 2017-12-28 | 2019-07-05 | 上海擎感智能科技有限公司 | 地图配色方法及智能终端 |
CN110047123A (zh) * | 2019-04-12 | 2019-07-23 | 腾讯大地通途(北京)科技有限公司 | 一种地图渲染方法、装置、存储介质及计算机程序产品 |
CN110138769A (zh) * | 2019-05-09 | 2019-08-16 | 深圳市腾讯网域计算机网络有限公司 | 一种图像传输的方法以及相关装置 |
CN110362298A (zh) * | 2018-04-09 | 2019-10-22 | 搜游网络科技(北京)有限公司 | 一种基于浏览器的目标对象绘制方法、装置和浏览器 |
CN110599891A (zh) * | 2019-09-23 | 2019-12-20 | 东方电子股份有限公司 | 一种电网设备地图渲染方法 |
CN110832278A (zh) * | 2016-09-27 | 2020-02-21 | 谷歌有限责任公司 | 使用栅格差异的描述来渲染地图数据 |
CN111402349A (zh) * | 2019-01-03 | 2020-07-10 | 百度在线网络技术(北京)有限公司 | 渲染方法、渲染装置和渲染引擎 |
CN111782307A (zh) * | 2019-04-03 | 2020-10-16 | 阿里巴巴集团控股有限公司 | 地图的渲染方法、样式切换方法、相关装置和导航客户端 |
CN111899311A (zh) * | 2019-05-06 | 2020-11-06 | 广州腾讯科技有限公司 | 元素渲染方法、装置、存储介质和计算机设备 |
CN112066998A (zh) * | 2020-08-25 | 2020-12-11 | 海南太美航空股份有限公司 | 用于航线地图的渲染方法及系统 |
CN112541512A (zh) * | 2019-09-20 | 2021-03-23 | 杭州海康威视数字技术股份有限公司 | 一种图像集生成方法及装置 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102155479B1 (ko) * | 2014-09-01 | 2020-09-14 | 삼성전자 주식회사 | 반도체 장치 |
KR102289141B1 (ko) * | 2014-11-28 | 2021-08-12 | 현대엠엔소프트 주식회사 | 그래픽 기반의 웹 벡터 지도 표시 방법 |
CN107079200B (zh) * | 2014-12-16 | 2020-07-28 | 惠普发展公司,有限责任合伙企业 | 处理瘦客户端终端中的数据 |
US9702724B2 (en) | 2015-06-06 | 2017-07-11 | Apple Inc. | Mapping application with transit mode |
US9726506B2 (en) | 2015-06-06 | 2017-08-08 | Apple Inc. | Display of transit features in mapping application |
US10514271B2 (en) | 2015-06-06 | 2019-12-24 | Apple Inc. | Mapping application with transit mode |
US10094675B2 (en) | 2015-06-07 | 2018-10-09 | Apple Inc. | Map application with transit navigation mode |
US10302442B2 (en) | 2015-06-07 | 2019-05-28 | Apple Inc. | Transit incident reporting |
US9891065B2 (en) | 2015-06-07 | 2018-02-13 | Apple Inc. | Transit incidents |
KR102395023B1 (ko) * | 2015-06-30 | 2022-05-06 | 현대오토에버 주식회사 | 그래픽 기반의 웹 벡터 지도 표시 시스템 및 방법 |
US20170031925A1 (en) * | 2015-07-27 | 2017-02-02 | Cisco Technology, Inc. | Mapping dynamic spaces and way finding related to the mapping |
US9858697B2 (en) * | 2016-01-07 | 2018-01-02 | Livio, Inc. | Methods and systems for communicating a video image |
CN105894551B (zh) * | 2016-03-31 | 2020-02-14 | 百度在线网络技术(北京)有限公司 | 图像绘制方法及装置 |
JP6747025B2 (ja) * | 2016-04-13 | 2020-08-26 | セイコーエプソン株式会社 | 表示システム、表示装置、及び、表示システムの制御方法 |
CN105894553B (zh) * | 2016-04-27 | 2018-07-17 | 东南大学 | 一种基于格栅选择的街巷空间形态布局方法 |
IL246446B (en) * | 2016-06-23 | 2018-01-31 | Elbit Systems Ltd | Combined display of vector map and scan information |
US9686357B1 (en) * | 2016-08-02 | 2017-06-20 | Palantir Technologies Inc. | Mapping content delivery |
US11003344B2 (en) | 2016-08-18 | 2021-05-11 | Mapbox, Inc. | Modifying style layer properties of a digital map |
CN106384371B (zh) * | 2016-09-20 | 2020-08-11 | 国家基础地理信息中心 | 一种基于矢量瓦片的地图绘制方法 |
US10318115B2 (en) * | 2016-10-14 | 2019-06-11 | OneMarket Network LLC | System and method for presenting optimized map labels |
US20180276880A1 (en) * | 2017-03-21 | 2018-09-27 | EarthX, Inc. | System and method for rendering geospatial maps |
CN106960029B (zh) * | 2017-03-21 | 2020-07-28 | 刘博宇 | 一种提取跨图幅地理范围分幅栅格数据的方法 |
US11113855B2 (en) | 2017-11-01 | 2021-09-07 | Mapbox, Inc. | Expression interpretation engine for computer map visualizations |
CN109994037B (zh) * | 2017-12-29 | 2021-12-14 | 杭州海康威视系统技术有限公司 | 生成电子地图的方法、装置、终端及存储介质 |
DE102018000459A1 (de) | 2018-01-22 | 2019-07-25 | Joachim Becker | Verfahren und Vorrichtung zur Anzeige von nutzereigenen Vektorgraphiken mit intelligenten Infopunkten aus einem cloudbasierten CAD-Archiv auf Mobilgeräten, tragbaren oder stationären Computern |
CN108898644B (zh) * | 2018-06-22 | 2022-09-16 | 北京佳格天地科技有限公司 | 一种栅格数据动态渲染方法、系统和存储介质 |
CN109145173B (zh) * | 2018-07-26 | 2021-02-12 | 浙江省测绘科学技术研究院 | 一种基于相似度的矢量要素变化比对方法 |
CN109657019B (zh) * | 2018-11-13 | 2021-05-04 | 斑马网络技术有限公司 | 地图数据融合方法、服务器、系统、存储介质及电子设备 |
CN109408657B (zh) * | 2018-11-13 | 2021-02-02 | 国家基础地理信息中心 | 一种超大规模空间数据快速制图方法及系统 |
US11037256B2 (en) * | 2019-04-26 | 2021-06-15 | Mapbox, Inc. | Editing and representing property values for a digital map |
CN110413721B (zh) * | 2019-07-30 | 2022-03-08 | 武汉光庭信息技术股份有限公司 | 一种矢量地图的生成方法及装置 |
WO2021090971A1 (ko) * | 2019-11-06 | 2021-05-14 | 엘지전자 주식회사 | 경로 제공 장치 및 그것의 경로 제공 방법 |
US11624617B2 (en) * | 2019-12-30 | 2023-04-11 | GM Cruise Holdings LLC. | Shared tile map with live updates |
US10979672B1 (en) * | 2020-10-20 | 2021-04-13 | Katmai Tech Holdings LLC | Web-based videoconference virtual environment with navigable avatars, and applications thereof |
CN112069285B (zh) * | 2020-11-11 | 2021-01-22 | 湖北亿咖通科技有限公司 | 基于三维高精地图切片的地图生成方法、装置及电子设备 |
US11978160B2 (en) | 2021-07-13 | 2024-05-07 | Daniel E. Curtis | GPU-based digital map tile generation method and system |
US20230168106A1 (en) * | 2021-11-29 | 2023-06-01 | Here Global B.V. | Method, apparatus, and system for providing mock map data for map design validation and documentation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966135A (en) * | 1996-10-30 | 1999-10-12 | Autodesk, Inc. | Vector-based geographic data |
US20060170693A1 (en) * | 2005-01-18 | 2006-08-03 | Christopher Bethune | System and method for processig map data |
CN101246597A (zh) * | 2007-11-30 | 2008-08-20 | 北京师范大学 | 大规模矢量地图数据渐进传输和动态重建的方法 |
US20130080504A1 (en) * | 2011-09-26 | 2013-03-28 | Google Inc. | Managing map elements using aggregate feature identifiers |
US20130076784A1 (en) * | 2011-09-26 | 2013-03-28 | Google Inc. | Rendering map images using modifications of non-raster map data |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8681176B1 (en) * | 2011-09-20 | 2014-03-25 | Google Inc. | Rendering a map using style identifiers |
US8937627B1 (en) * | 2012-03-28 | 2015-01-20 | Google Inc. | Seamless vector map tiles across multiple zoom levels |
-
2014
- 2014-05-14 EP EP14733776.0A patent/EP2997546B1/en active Active
- 2014-05-14 CN CN201480039848.3A patent/CN105393282B/zh active Active
- 2014-05-14 WO PCT/US2014/037993 patent/WO2014186459A2/en active Application Filing
- 2014-05-14 US US14/277,440 patent/US9424673B2/en active Active
- 2014-05-14 DE DE202014010911.7U patent/DE202014010911U1/de not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966135A (en) * | 1996-10-30 | 1999-10-12 | Autodesk, Inc. | Vector-based geographic data |
US20060170693A1 (en) * | 2005-01-18 | 2006-08-03 | Christopher Bethune | System and method for processig map data |
CN101246597A (zh) * | 2007-11-30 | 2008-08-20 | 北京师范大学 | 大规模矢量地图数据渐进传输和动态重建的方法 |
US20130080504A1 (en) * | 2011-09-26 | 2013-03-28 | Google Inc. | Managing map elements using aggregate feature identifiers |
US20130076784A1 (en) * | 2011-09-26 | 2013-03-28 | Google Inc. | Rendering map images using modifications of non-raster map data |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109804381A (zh) * | 2016-07-28 | 2019-05-24 | T·普洛塔 | 数字图像内的自动像素移位 |
CN107818069A (zh) * | 2016-09-12 | 2018-03-20 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统 |
TWI739828B (zh) * | 2016-09-12 | 2021-09-21 | 香港商阿里巴巴集團服務有限公司 | 資料處理方法及系統 |
CN110832278B (zh) * | 2016-09-27 | 2023-11-10 | 谷歌有限责任公司 | 使用栅格差异的描述来渲染地图数据 |
CN110832278A (zh) * | 2016-09-27 | 2020-02-21 | 谷歌有限责任公司 | 使用栅格差异的描述来渲染地图数据 |
CN106855881A (zh) * | 2016-12-16 | 2017-06-16 | 北京奇鱼时代科技有限公司 | 一种基于移动设备的多地图切换的方法和装置 |
CN108399646A (zh) * | 2017-02-07 | 2018-08-14 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法及装置 |
CN109976600A (zh) * | 2017-12-28 | 2019-07-05 | 上海擎感智能科技有限公司 | 地图配色方法及智能终端 |
CN109976600B (zh) * | 2017-12-28 | 2022-04-15 | 上海擎感智能科技有限公司 | 地图配色方法及智能终端 |
CN110362298B (zh) * | 2018-04-09 | 2023-11-17 | 北京蓝亚盒子科技有限公司 | 一种基于浏览器的目标对象绘制方法、装置和浏览器 |
CN110362298A (zh) * | 2018-04-09 | 2019-10-22 | 搜游网络科技(北京)有限公司 | 一种基于浏览器的目标对象绘制方法、装置和浏览器 |
CN111402349A (zh) * | 2019-01-03 | 2020-07-10 | 百度在线网络技术(北京)有限公司 | 渲染方法、渲染装置和渲染引擎 |
CN111402349B (zh) * | 2019-01-03 | 2023-09-08 | 百度在线网络技术(北京)有限公司 | 渲染方法、渲染装置和渲染引擎 |
CN111782307A (zh) * | 2019-04-03 | 2020-10-16 | 阿里巴巴集团控股有限公司 | 地图的渲染方法、样式切换方法、相关装置和导航客户端 |
CN110047123A (zh) * | 2019-04-12 | 2019-07-23 | 腾讯大地通途(北京)科技有限公司 | 一种地图渲染方法、装置、存储介质及计算机程序产品 |
CN110047123B (zh) * | 2019-04-12 | 2023-01-10 | 腾讯大地通途(北京)科技有限公司 | 一种地图渲染方法、装置、存储介质及计算机程序产品 |
CN111899311A (zh) * | 2019-05-06 | 2020-11-06 | 广州腾讯科技有限公司 | 元素渲染方法、装置、存储介质和计算机设备 |
US11741648B2 (en) | 2019-05-06 | 2023-08-29 | Tencent Technology (Shenzhen) Company Limited | Element rendering method and apparatus, computer readable storage medium, and computer device |
CN111899311B (zh) * | 2019-05-06 | 2023-09-26 | 广州腾讯科技有限公司 | 元素渲染方法、装置、存储介质和计算机设备 |
CN110138769B (zh) * | 2019-05-09 | 2021-06-15 | 深圳市腾讯网域计算机网络有限公司 | 一种图像传输的方法以及相关装置 |
CN110138769A (zh) * | 2019-05-09 | 2019-08-16 | 深圳市腾讯网域计算机网络有限公司 | 一种图像传输的方法以及相关装置 |
CN112541512A (zh) * | 2019-09-20 | 2021-03-23 | 杭州海康威视数字技术股份有限公司 | 一种图像集生成方法及装置 |
CN112541512B (zh) * | 2019-09-20 | 2023-06-02 | 杭州海康威视数字技术股份有限公司 | 一种图像集生成方法及装置 |
CN110599891B (zh) * | 2019-09-23 | 2021-09-14 | 东方电子股份有限公司 | 一种电网设备地图渲染方法 |
CN110599891A (zh) * | 2019-09-23 | 2019-12-20 | 东方电子股份有限公司 | 一种电网设备地图渲染方法 |
CN112066998A (zh) * | 2020-08-25 | 2020-12-11 | 海南太美航空股份有限公司 | 用于航线地图的渲染方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2014186459A2 (en) | 2014-11-20 |
EP2997546B1 (en) | 2020-09-02 |
WO2014186459A3 (en) | 2015-09-24 |
DE202014010911U1 (de) | 2017-01-17 |
US20140340421A1 (en) | 2014-11-20 |
US9424673B2 (en) | 2016-08-23 |
CN105393282B (zh) | 2019-02-26 |
EP2997546A2 (en) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105393282A (zh) | 图形元素的有效合成和渲染 | |
AU2017251816B2 (en) | Rendering map images using modifications of non-raster map data | |
US9396508B2 (en) | Use of map data difference tiles to iteratively provide map data to a client device | |
CN103077239B (zh) | 基于云渲染的iFrame嵌入式Web3D系统 | |
CA2849992C (en) | Managing map elements using aggregate feature identifiers | |
US10529100B2 (en) | Interaction-driven format for graph visualization | |
CN113419806B (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN117078797B (zh) | 道路标识的渲染方法、装置、电子设备、存储介质及产品 | |
Klimke et al. | Scalable multi-platform distribution of spatial 3d contents | |
CN117523072A (zh) | 渲染处理方法、装置、设备和计算机可读存储介质 | |
CN111882639A (zh) | 一种画面渲染方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |