CN101156158B - 在数字地图描绘系统中产生并提供拼图的系统和方法 - Google Patents
在数字地图描绘系统中产生并提供拼图的系统和方法 Download PDFInfo
- Publication number
- CN101156158B CN101156158B CN2005800135120A CN200580013512A CN101156158B CN 101156158 B CN101156158 B CN 101156158B CN 2005800135120 A CN2005800135120 A CN 2005800135120A CN 200580013512 A CN200580013512 A CN 200580013512A CN 101156158 B CN101156158 B CN 101156158B
- Authority
- CN
- China
- Prior art keywords
- map
- tile
- subregion
- zone
- advance
- 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.)
- Active
Links
Images
Abstract
本发明揭示能够有效地在线提供美观悦目的地图的基于数字拼图的地图描绘技术。在一特定实施例中,一种基于图像拼图的数字地图描绘系统配置成在一离线会话期间产生地图拼图,并在受到请求时将这些拼图中的选定集合提供至一客户机。本发明还提供在一基于拼图的地图描绘系统中用于例如在一地图标记跨越地图拼图边界时处理地图标记及其它此类特征的解决方案。可在所述系统中采用各种处理环境(例如服务器或其它计算装置)。
Description
相关申请案
本申请案主张基于下列申请案的权利:2005年2月7日提出申请且名称为“用于在数字地图描绘系统中产生拼图的方法及设备(Method and Apparatus forGenerating Tiles in a Digital Mapping System)”的美国临时申请案(编号尚未知)<代理档案号159164-0008(P005Z)>、2004年5月3日提出申请的第60/567,946号及2004年3月23日提出申请的第60/555,501号美国临时申请案。另外,本申请案为2005年2月5日提出申请且名称为“数字地图描绘系统(A DIGITALMAPPING SYSTEM)”的美国申请案(编号尚未知)<代理档案号159164-0005(P004)>的一部分接续申请案。另外,本申请案与2005年3月23日提出申请且名称为“使用子像素位图产生、存储并显示图形(Generating,Storing,andDisplaying Graphics Using Sub-Pixel Bitmaps)”的美国申请案(编号尚未知)<代理档案号24207-10217>相关。所有这些申请案均以引用方式全文并入本文中。
技术领域
本发明涉及地图描绘系统,且更具体而言涉及数字环境中的地图描绘系统。
背景技术
人们已开发出计算机化地图描绘系统来搜索、识别及查找关于地理位置的信息。此种计算机化地图描绘系统的一种形式包括旅行计划因特网网站。由于有超过5千万的无与伦比的月用户数量,这些地图网站为一种非常流行的服务。此类网站的实例包括AOL公司的MapQuest、Yahoo公司的基于Telcontar的地图及Microsoft公司的MapPoint.net套件。如现在所将阐述,此类网站均按照一共用模型工作。
当一网络用户要求得到一新的地图视图(例如通过输入一邮政地址或通过点击一靠近当前地图视图的导航链接)时,所述用户的网络浏览器会向一网络服务器发送一指示新地图视图的边界的请求。所述网络服务器又从一数字库中提取对应的基于向量的地图数据,并绘制所述地图视图的一位图图像。然后,所述服务器将所述位图转换成所述用户的网络浏览器所支持的一图像格式并将所述图像(有时嵌入于HTML中)回送至所述用户的网络浏览器以便能够显示所述图像。
而其它地图网站(例如英国的MultiMaps或澳大利亚的Wherels)利用一基 于光栅的地图数据库。在这些情形中,不必提取向量及绘制地图图像。更确切地说,这些功能由简单地提取一较大的经预先再现的图像的适当部分所取代。
不管是基于向量还是基于光栅,这些现有系统通常均表现出极差的性能。特别是,所得到的地图往往较小且移动缓慢。例如考虑将一现有地图视图向西平移所述视图宽度的比如50%的简单任务。传统的系统通常产生一全新的图像并将所述新图像自服务器传输至用户的浏览器。此类系统不经济,因为其不能对所述新地图视图与旧地图之间50%的重叠加以识别和利用。在基于向量的情况下,另外需要实时地根据向量产生一地图图像,此往往导致地图通常难以读取并缺乏专业外观及感觉,从而有损于用户体验。
其他商家已选择编写定制软件来供其用户下载并安装。虽然后面的这种方法可大大改善用户体验,但在用户计算机上安装软件这一需要可能会妨碍其被广泛采用。
因此,需要提供有利于有效地在线传送美观悦目的地图的数字地图描绘技术。
发明内容
本发明的一实施例提供一种用于为一基于拼图的数字地图描绘系统产生地图文件的系统。所述系统包括一用于产生数字地图图像的地图涂画模块、一用于根据所述数字地图图像产生地图拼图的拼图制作器及一用于存储由所述拼图制作器所产生的地图拼图的拼图存储器。在一个这样的实施例中,所述地图涂画模块可运行以请求并接收一给定区域的据以产生所述数字地图图像的地理数据。此处,可使用一地图数据存储器来存储一给定区域的地理数据的一个或多个集合,所述一个或多个集合可由所述地图涂画模块存取。所述地图数据存储器可包括(例如)一组增强地图描绘格式(RMF)文件。在一特定配置中,一远程地图描绘引擎(RME)库具有一应用程序界面以使所述地图涂画模块能够存取所述地理数据。
所述拼图制作器可(例如)根据一规定所应产生的地图拼图的区域及放大级的配置文件来运行。所述配置文件可进一步规定要使用的至少一个地理数据集合中及应如何绘制地图(包括标记布置信息)。所述拼图制作器可使用所述地图涂画模块来为所述配置文件中所规定的区域产生数字地图图像。在一特定实施例中,所述拼图制作器适于将所述配置文件中所规定的大区域划分成较小的区域,并使用所述地图涂画模块来为这些较小区域产生数字地图图像。所述拼图制作器可进一步经配置以将所产生的地图拼图编码成一所需图像格式(例如子像素位图、GIF、PNG、TIFF或JPEG)并存储经格式化的地图拼图。所述系统可进一步包括一经配置以响应于来自用户的地图请求而提供存储于所述拼图存储器中的地图拼图的地图拼图服务系统。
本发明另一实施例提供一种经配置以响应于来自用户的地图请求而提供地图拼图的地图拼图服务系统。所述系统包括复数个用于提供由一用户请求的一个或多个地图拼图的前端拼图服务器。使用一请求分配器在所述复数个前端拼图服务器之间分配对地图拼图的请求。所述系统中还包括复数个与所述复数个前端拼图服务器进行通信耦接的后端拼图服务器。每一后端拼图服务器均可存取所述地图拼图(例如就地在一磁盘上存取或通过一网络存取),并经配置以向一对应的前端拼图服务器提供所请求的地图拼图。
所述前端拼图服务器中的至少一个服务器可经配置以识别一个或多个单色地图拼图,并经配置以提供所述单色地图拼图,而无需自所述后端拼图服务器之一中请求所述单色地图拼图。在一个这样的实施例中,所述一个或多个单色地图拼图存储于一包括于所述至少一个前端拼图服务器中的存储器高速缓存器中,从而降低对与提供这些单色地图拼图相关联的磁盘存取的需要。在另一个这样的实施例中,用户正在使用一计算装置与所述至少一个前端服务器进行通信,且所述至少一个前端服务器使所述计算装置使用所述计算装置可就地得到的单色地图拼图,因而无需提供此类拼图。
每一地图拼图均可(例如)与一N×N地图拼图块相关联,且每当请求得到一地图拼图时,均可提供对应N×N块中的所有N2个拼图。也可高速缓存所有N2个拼图。在其它实施例中,所述地图拼图可(例如)与一N×M地图拼图块(即所述块不需要为正方形的)相关联。后端服务器的数量可使每一后端服务器可用于提供一特定的地图拼图子集。此处,每一后端服务器均可高速缓存其对应子集中的全部或某些部分。可将每一后端拼图服务器专用于提供所述地图拼图的一子集,且每一前端拼图服务器均可经配置以识别一适用于满足一用户对得到一地图拼图的请求的后端服务器。在一个这样的实施例中,每一前端拼图服务器均使用一基于地图拼图坐标的散列函数来识别所述适当的后端服务器。应注意,所述后端拼图服务器不需要知道其正在提供哪个子集,从而简化了部署。
响应于一后端拼图服务器无法用于提供其地图拼图负载,每一前端拼图服务器均可经配置以将所述负载分配于其余后端拼图服务器中。在一个这样的实施例中,每一前端拼图服务器均使用一基于地图拼图坐标的散列函数及一尝试计数器来分配所述负载。所述系统可进一步包括一用于产生所述地图拼图的地图拼图产生系统,所述地图拼图产生系统包括一拼图制作器。还可提供一用于存储所产生的地图拼图的拼图存储器,其中无法在所述前端及/或后端服务器的高速缓存器中获得的地图拼图可自所述拼图存储器存取。
本发明另一实施例提供一种基于拼图的数字地图描绘方法。所述方法包括根据数字地图图像产生地图拼图、存储所述地图拼图并响应于一用户地图请求来提供一个或多个所述地图拼图。所述方法可进一步包括识别可就地提供给所述用户的一计算装置的单色地图拼图。所述方法可进一步包括产生所述数字地图图像, 其包括规定应产生地图拼图的区域及缩放级。产生所述数字地图图像可包括(例如)规定要使用的至少一个地理数据集合及应如何绘制包括标记布置信息的地图。存储所述地图拼图可包括将所产生的地图拼图编码成一所需图像格式,并存储经格式化的地图拼图。提供一个或多个所述地图拼图可包括对所提供的地图拼图加以高速缓存。
在一特定实施例中,根据数字地图图像产生地图拼图可包括:识别要绘制的区域及绘制所述区域所需的不同缩放级;根据需要在不同的缩放级下将所述区域划分成子区域,以便能够在一可用存储器中预先再现每一子区域;以一给定缩放级预先再现每一子区域;将每一预先再现的子区域划分成再现区域,以便能够在所述可用存储器中对每一再现区域进行再现;及对所述再现区域进行再现,并将所得到的图像切割成地图拼图。在一种这样的情况下,处于一缩放级下的每一子区域均表示一任务,以便提供一由区域及缩放级所规定的任务列表,并应用并行处理来执行这些任务。在另一种这样的情况下,要向发出请求的用户显示的地图具有一分辨率,且所述再现是以一比要显示的地图分辨率大N倍的分辨率来进行(例如N>=2),并将通过所述再现所产生的位图用作输入来产生拼图作为子像素位图。
本发明另一实施例提供一种用于根据数字地图数据来产生数字地图拼图的方法。所述方法包括识别要绘制的区域及绘制每一区域所需的各个缩放级。所述方法继续来根据需要在不同缩放级下将所述区域划分成子区域,以便能够在一可用存储器中对每一子区域进行预先再现。所述方法继续以一给定缩放级对每一子区域进行预先再现,并随后将每一预先再现的子区域划分成再现区域,以便能够在所述可用存储器中对每一再现区域进行再现。所述方法继续对所述再现区域进行再现以产生一图像,并将所述图像划分成地图拼图。所述对每一子区域进行预先再现可包括(例如)存取至少一个地理数据集合及一关于如何构建数字地图图像的指令的表示形式。所述指令可表示(例如)在一配置文件中。所述子区域可分别在每一缩放级下具有一预定的固定尺寸。在一特定实施例中,预先再现决策防止会成问题的特征越过子区域之间的边界。或者,在另一实施例中,预先再现决策允许各特征越过子区域之间的边界。在这种情况下,不允许同时对两个与一边界跨越特征相关联的对齐子区域进行预先再现。可将预先再现决策存储起来以便可将其用于后续的预先再现任务(其使各特征能够越过子区域之间的边界)。
本文所述的特征和优点并不囊括一切,且具体而言,所属领域的技术人员根据图式及说明将易知许多其它特征及优点。而且,应注意,本说明书中所使用的语言原则上是出于易读性和指导性目的来选取,而非是为了限制本发明标的物的范围。
附图说明
图1为一根据本发明一实施例配置而成的基于拼图的数字地图描绘系统的一方块图。
图2为一可用于图1所示系统中的处理环境的一方块图。
图3为一根据本发明一实施例配置成用于为一数字地图描绘系统产生地图拼图的系统的一方块图。
图4及5图解说明一基于拼图的地图描绘系统情形,其中一地图标记跨越地图拼图边界。
图6图解说明一根据本发明一实施例对图4及5中所示情形的解决方案,其中不允许一地图标记跨越地图拼图边界。
图7图解说明根据本发明一实施例对图4及5中所示情形的另一解决方案,其中将一跨越一地图拼图边界的地图标记绘制成两个部分。
图8为一根据本发明一实施例配置而成的地图拼图服务系统的方块图。
具体实施方式
本发明揭示能够有效地在线提供美观悦目的地图的基于拼图的数字地图描绘技术。在一特定实施例中,将一基于图像拼图的数字地图描绘系统配置成在离线会话期间产生地图拼图,并在受到请求时将所述拼图的选定子集提供至一客户机。还提供用于例如(举例而言)当一地图标记或其它特征越过地图拼图边界时在一基于拼图的地图描绘系统中处理地图标记及其它特征的解决方案。可在所述系统中采用各种处理环境(例如服务器或其它计算装置)。
本文中所述的功能可由计算机程序指令来执行。可将这些指令载入一计算机或其它处理环境中以产生一机器,以便执行所述指令来实施根据本发明各实施例的基于拼图的地图描绘技术。也可在一处理器可读媒体中对这些计算机程序指令进行编码以提供一种制品。可使用任一数量的编程语言或其组合(例如C,C++,HTML)来构建所述计算机程序指令。本发明的其它实施例可由专用硬件(例如现场可编程门阵列(FPGA)或应用专用集成电路(ASIC)技术)来构建。同样地,根据本揭示内容将易知,也可使用硬件与软件的组合来实施本发明的其它实施例。
系统概述
图1为一根据本发明一实施例配置而成的基于拼图的数字地图描绘系统的一方块图。由图可见,所述系统包括一连接至一网络105的计算装置103。各种服务系统也连接至网络105,包括一网络服务系统110、一拼图服务系统115及一位置数据服务系统120。其它计算装置105(未显示)也可通过网络105与服务系统110、115及120进行通信。
计算装置103可为配置成用于计算的任一类型的装置,例如个人计算机或膝上型计算机、移动电话、个人数字助理、位于车内的导航系统、手持式GPS系统 等等。计算装置103包括一使用户能够与网络105上的其它装置及系统进行接口及通信的浏览器(或其它类似应用)。浏览器的实例包括Microsoft公司的InternetExplorer浏览器、Netscape公司的Navigator浏览器、Mozilla公司的Firefox浏览器、PalmSource公司的Web浏览器、或任何其它能够与网络105进行通信的浏览或应用软件。大体而言,计算装置103可为任一种使用户能够通过网络105访问服务系统110、115及120的装置。
网络服务器110为整个系统的一部分,其传送初始HTML(超文本标记语言)、图像、脚本语言(例如JavaScript、Jscript、Visual Basic Script)、XSLT(可扩充样式表语言转换)、及由计算装置103上的浏览器使用的其它静态要素。应注意,此服务系统110可包括一个或多个根据一负载平衡方案运行的服务器,其中每一服务器(或一服务器组合)均经配置以响应于计算装置103并与计算装置103交互作用。如根据本揭示内容将易知,网络服务系统110可借助传统技术来构建。
拼图服务系统115为整个系统的一部分,其负责响应于来自计算装置103的请求来传送各个地图拼图,其中每一拼图均(例如)通过与整个基于拼图的地图相协调的x、y及z值来唯一地界定。也可使用其它拼图识别方案。服务系统115可包括一个或多个根据一负载平衡方案运行的服务器,其中每一服务(或一服务器组合)均经配置以响应于计算装置103并与计算装置103交互作用。与拼图服务系统115相关联的实例性架构及功能将参照图8加以进一步阐述。
位置数据服务系统120为整个系统的一部分,其将各种形式的位置数据传送至计算装置103。其功能包括(例如)寻找一街道地址的地理位置、产生驱动方向并将其格式化、及搜索一查询的具体位置结果(例如如同Google Local Search服务一样)。还可提供其它服务。通常,当用户输入一搜索字符串时,所述搜索字符串由计算装置103输入一请求中,并通过网络105发送至位置数据服务系统120。然后,位置数据服务系统120确定所述请求的对象,并以一种计算装置103可用以将所述数据呈现给所述用户(例如通过一浏览器)的格式以来自各个子系统(例如地理编码器、选路引擎及本地搜索索引)的适当数据作出响应。
网络105可为任一类型的通信网络,例如局域网(例如内联网)、广域网(例如因特网)或其某一组合。或者,网络105可为计算装置103与服务系统110、115及120之间的一直接连接。通常,计算装置103、网络105、及/或服务系统110、115及120均可使用各种各样的通信协议通过任一类型的有线或无线连接进行通信。
图2为一可用于图1所示系统的处理环境的一方块图。例如,可使用所示处理环境来配置计算装置103或任何包含于服务系统110、115及120中的服务器。也可使用众多其它处理环境,且本发明并非意欲仅限于任何一种这样的实施例一图2仅提供作为一可能的实例。
由图可见,此实例性处理环境包括一总线200、一个或多个处理器205、一 主存储器210、一只读存储器(ROM)215、一存储装置220、一个或多个输入装置225、一个或多个输出装置230及一通信接口235。总线200可包括一个或多个允许在所述处理环境的各组件之间进行通信的导体,并可使用传统的总线技术来构建。
处理器205可包括任一类型的传统处理器、微处理器、或解译并执行指令的处理逻辑。主存储器210可包括一随机存取存储器(RAM)或另一类型的动态存储装置以存储供处理器205执行的信息及指令。ROM 215可包括一传统的ROM装置或另一类型的非易失性存储装置以存储供处理器205使用的信息及指令。存储装置220可包括(例如)一磁性及/或光学记录媒体及其相应的驱动器。应注意,主存储器210也可包括一高速缓存器以用于临时存储共同存取的数据(例如地图拼图)。此种高速缓存器将不需要每当接收到一对数据的请求时就对存储装置220进行存取,从而缩短处理时间。
输入装置225可包括一个或多个允许用户将信息输入至所述处理环境的传统机构,例如键盘、鼠标、笔、记录笔、笔迹识别、语音识别、生物测定机构等等。输出装置230可包括一个或多个将信息输出至用户的传统机构,例如显示器、打印机、扬声器等等。通信接口235可包括任一使所述处理环境能够与其它装置及/或系统进行通信的收发机类机构。例如,通信接口235可包括一用于通过网络105与另一装置或系统进行通信的调制解调器(例如56K、DSL或电缆)。
在一实施例的运行中,计算装置103请求得到存储于拼图服务系统115中的地图信息。一前端服务器(包含于拼图服务系统115中)通过回送一包含供客户机侧浏览器存取的指令(例如以JavaScript或另一脚本语言形式)的网页来对计算装置103或“客户机侧”所提交的查询作出响应。以此方式,客户机计算装置103根据需要自拼图服务系统115请求地图拼图,拼图服务系统115提供与所请求的地图拼图相关联的拼图。然后,通过在所述网络浏览器中将所述拼图集组合在一起形成所请求的地图图像,将所请求的地图图像显示于计算装置103处。地图拼图可“预先再现”,此意味着其是在一将参照图3加以说明的离线阶段期间产生。
为了将所述大的光栅图像的任一子区域视图作为一地图图像再生于用户的网络浏览器上,可使用一浏览器侧脚本,其仅使用最小的拼图集来一同覆盖所需视图。因此,用户可观看到一所提供的地图区段,并随后对所看到的地图区段加以改变(例如通过使用输入装置225的光标朝一方向拖动所述地图),从而提供提供用来填充此时处于浏览器窗口内的新地图位置的新地图拼图。其效果是得到一可放大/缩小并可进一步调整至所需新位置的实际上无止境的地图。此特征以及由一根据本发明一实施例配置而成的基于拼图的数字地图描绘系统所实现的其它特征进一步详述于前面所并入的名称为“数字地图描绘系统(A Digital MappingSystem)”的母申请案中。对于任一给定实施方式而言,可在假定存在下列折衷的情况下试探性地确定拼图的尺寸:(1)较大的拼图往往会增大为形成一给定视 图所需的拼图的总体尺寸(在像素及字节两方面而言);而(2)较小的拼图往往会增大为形成一给定视图所需的单独请求(例如HTTP请求)的数量。
或者,并非使用一位于服务器侧(例如拼图服务系统115)上的拼图数据库,而是可将每一拼图存储于一可使用URL(例如 http://<domain>/7/-18/1/-145_12_7.gif,其中此实例中的目录路径7/-18/1只取决于拼图坐标,所述拼图坐标在此种情况下等于(-145,12,7))来存取的单独文件中。为简明起见,可将每一缩放级z的每一拼图定位成使所述拼图的左上部像素具有坐标(0,0,z)。此设置有利于通过使所述拼图中左上角像素的像素x及y坐标分别整除以所述拼图的宽度及高度来为每一拼图指配一唯一的三坐标组。应注意,在一些实施例中,因此利用总共三个坐标系:纬度/经度坐标、像素(x,y,z)坐标及拼图(x,y,z)坐标。对坐标系的此特定选择并非意欲限制本发明,而是选择用来帮助阐述一些实施例中所使用的算法。通常,此处可使用任一相容的坐标系或检索系统。反过来,每一像素均属于一可容易地计算出其坐标的唯一拼图。
在一实施例中,将所述缩放级编号为0至Z,其中0表示最接近于街道级的级,而Z为离街道级最远的级。将所关心区域内的任一纬度/经度点指定及定义为原点或起点(例如毗连的美国的地理中心)。然后,在每一缩放级z下,为包含此原点的z级光栅图像的像素指配三坐标组(0,0,z)。使用x轴坐标从左至右增大而y轴坐标从上至下增大的标准计算机图形规约,为每一光栅图像的每一像素指配一唯一的三坐标组(x,y,z)。
在给定缩放级z的情况下,一坐标转换例程将一纬度/经度坐标对转换成适当的(x,y,z)像素坐标,反之亦然。此种转换的细节取决于在最初形成所述光栅图像时所用的地图投影。
拼图产生
图3为一根据本发明一实施例经配置用于为一数字地图描绘系统产生地图拼图的系统的一方块图。
如先前所提及,可在一对用户而言透明的离线处理中产生由所述地图系统所覆盖的整个区域的一组大的、邻接的、预先再现的光栅图像。为每一缩放级(例如从街道级到国家级)提供一组这样的光栅图像。然后,将这些较大的图像切割成拼图,然后将这些拼图编码成一适当的图像格式(例如GIF)。图3中所示系统的用途是产生完整的一组拼图来覆盖给定的一组区域及缩放级。
通常,可将产生一可用以制成地图拼图的地图图像的过程划分成两个逻辑过程:预先再现及再现。在所述预先再现过程中,根据可用地图数据及配置数据作出关于应如何绘制地图的决策。在所述再现过程中,通过产生一位图图像或通过规定以一基于向量的格式绘制所述地图来进行实际的地图绘制。对于这两个过程而言,非常需要具有高的速度。在一计算装置的存储器或其它适当的处理环境中 实施所述过程是一种用以达到足够速度的方式。
在一实施例中,所述预先再现过程可利用所有需要的地图数据(可用以绘制地图图像的地理数据集)及一关于如何在存储器中构建所述地图的决策的表示形式。此决策可表示(例如)于一配置文件中。所述再现过程可将正在绘制的位图连同所要绘制的内容的定义保存在存储器中。在一些(并非所有)情形中,就可用存储量而言,所述预先再现过程可覆盖一比所述再现过程大得多的区域。
例如,如要覆盖整个美国及加拿大大陆,可能需要上亿块拼图,所述拼图的总文件尺寸大约为数百吉字节。并非是在需要时根据基本数据来绘制地图图像,而是将整个地图预先绘制成若干区段(拼图),并在需要拼图时将适当的拼图发送至客户机。最终组合并显示于用户的网络浏览器上的每一基于拼图的地图图像均与其中一个较大的预先确定的光栅图像的一子区域(通常呈一矩形形状)相匹配。本文中阐述大区域的拼图产生。
通过执行拼图制作器305来启动所述拼图产生过程。为了绘制若干区域,拼图制作器305使用地图涂画模块310来产生图像。地图涂画模块310通过一市售RME(远程地图描绘引擎)库315来获得一给定区域的地理数据,RME(远程地图描绘引擎)库315采用一使地图涂画模块310能够存取地图数据存储器320的应用程序界面(API)。应注意,在替代实施例中,地图涂画模块310可经配置以直接对地图数据存储器320进行存取,从而无需使用商业RME库315。总之,地图涂画模块310作为一绘制模块运行,其中可使用一图形库来产生具有所需外观的位图。为了使一位图地图图像反混淆,此可通过下述方式来进行:通过所述图形库或通过以高于所需的分辨率绘制所述地图图像、并随后以一适当方法(例如双线性或双三次再采样)按比例缩小所述图像,或通过将更高分辨率的位图用作能够产生子像素位图的软件的输入。一个特定的此种实施例使用Microsoft公司的GDI/GDI+以四倍的分辨率来绘制一地图图像,并随后通过将每一512×512像素区域转换成一个128×128像素子像素位图拼图来产生子像素位图。
拼图存储器300为保存由拼图制作器305所产生的拼图的地方。在一实施例中,将拼图存储器300构建成一简单的基于磁盘的存储系统,但其也可为任一能够有效地接收并存储大量数据的系统。由于通常的文件系统在处理大量小文件时常常变得效率低下,因此可将所述拼图存储于复合文件中。在一特定实施例中,可将所述拼图存储成子像素位图(如在前面所并入的第60/555,501号美国临时申请案中所述),但也可改为使用任一基于位图或向量的格式。一旦所述地图拼图存储到一拼图存储器300中,其便可供用于一读取所述拼图(例如按块形式或一次一个)并以一对于将所述拼图提供至一发出请求的客户机的数字地图描绘系统而言可最优化的方式对所述拼图进行高速缓存的过程。
可使用一配置文件来启动拼图制作器305,所述配置文件规定应针对哪些区域及缩放级产生所述拼图、使用哪些数据集以及应如何绘制所述地图(例如通过 色彩规范、各种特征的外观、标记布置等等)。所述配置文件也可包含不存在于地图数据存储器320中的额外数据,例如手动布置的标记。在一实施例中,将所述配置文件构建成一可扩充标记语言(XML)格式化文本文件,其包含拼图制作器305需要用来绘制地图图像(使用地图涂画模块310)的所有配置数据。如根据本揭示内容所将易知,也可使用其它格式及解决方案来执行拼图制作器305。
如上文所解释,拼图制作器305使用地图涂画模块310为所述配置文件中所规定的区域绘制地图图像。在一特定示例中,地图绘制是根据向量数据来产生一目标区域(例如美国中西部或旧金山市,或某一其它地理区域)的位图图像的过程,所述向量数据规定例如所关心的点(POI)及地址等地理特征、例如公路及铁路等特征、城市、公园及诸如此类的点、线及区域。当一区域较大时,使地图涂画模块310绘制并将整个所绘制地图图像存储于存储器中可能不切实际,因此拼图制作器305可将所述区域划分成若干较小的区域,并一次一个地绘制这些较小的区域。本文进一步阐述大区域的拼图产生。由于期望使正在绘制的区域构成单个连续图像,因此此种划分可能带来问题,因为关于所述区域的不同部分的绘制决策可能在这些部分之间的边界处不对齐。
一种解决方案(其将参照图6加以进一步阐述)是强行将标记及其它会造成问题的特征绘制成只完全处于当前正在绘制的区域内-此种解决方案能防止出现局部绘制的标记,但其可降低沿边界的地图图像的质量,因为其会限制布置此类特征的可能性范围。例如,一跨越此种位于两个分别绘制的区域之间的边界的公路可能在所述边界的两侧上布置有相同的标记,所述标记布置的比其原本布置的近得多。另一解决方案-其将参照图7加以进一步阐述-是保存对于沿边界布置会造成问题的特征的决策,并随后在绘制后续区域时将这些决策考虑在内。这样作可只是为了避免以不合宜的方式将各特征布置在一边界的每一侧上,或者其可允许将各特征独立于边界布置(例如通过允许此类特征跨越边界)。
为了绘制一区域,拼图制作器305可使用地图涂画模块310,并向地图涂画模块310传递关于要绘制的区域、所需比例尺、要包含哪些地理数据集、要绘制哪些特征及应如何绘制此类特征的相关信息。响应于此,地图涂画模块310回送一对应的数字地图图像,所述数字地图图像由拼图制作器305变成拼图并以例如子像素位图(或任一基于位图或向量的格式)等所需格式存储于拼图存储器300中。
在一特定实施例中,使用一128×128像素的拼图尺寸,其中所述拼图以一GIF格式存储。其它实施例可使用一以GIF、PNG、TIFF或JPEG格式存储的256×256像素的拼图尺寸。根据对每一特定实施方式的要求,也可使用其它拼图尺寸及图像存储格式。这些拼图大体形成一规则的矩形网格,且此属性在一实施例中有利于系统的构建。然而,应注意,也可使用任何其它将大的光栅图像划分成具有任何能在客户机侧(例如计算装置103)组装的形状及尺寸的拼图的划分 形式来实现本发明的效果。
如前面所述,RME库315为一可用于从RMF(增强地图描绘格式)文件中查询数据的市售软件。RME库315支持空间查询,所述空间查询用于请求涉及到两个或更多个项的地理关系的信息。实例性查询为“哪些地图特征处于一给定区域内?”或“哪些具有一高于某一阈值的优先级的地图特征处于一给定区域内?”。使用所述空间查询的结果来产生地图图像并最终产生地图拼图。通过将其它地图格式编译成RMF来产生RMF文件。此过程的优点在于可按一相容方式通过RME库315查询可编译成RMF文件的各种各样的地图数据文件格式。应注意,可在所述系统中使用文件格式与库的任一组合;唯一的要求是需要一种可供地图涂画模块310用于获得一给定区域的地理数据的服务。
地图数据存储器320是存储于一供RME库315存取的磁盘上的地理地图数据。在一实施例中,所存储的地图数据包括已由Telcontar(一数字地图及导航信息的商业提供商)编译成一RMF(增强地图格式)文件集的市售NavTech数据。RMF为一种针对空间查询处理得到最佳化的传统地图数据格式。因此,一旦在空间上格式化的数据集中发现一个项,便可相对容易地发现其它临近项。不过,应注意,还有许多其它用于将地图数据组织于存储器320中的方式,例如依序或分层组织。要使用的确切文件/数据集可由用于控制拼图制作器305的执行的配置文件来规定。此处可替换任何地图数据源,且RME库315及地图数据存储器320可为一个具有一可供地图涂画模块310使用的API的系统。或者,可将RME库315与API功能集成到地图涂画模块310中。根据本文中所揭示内容将易知其它配置。
大区域的拼图产生
如前面所示,就可用存储量而言,所述预先再现过程可(在某些情形中)覆盖一比所述再现过程大得多的区域。可对图3所示系统所实施的拼图产生过程进行改进,以使所述拼图产生适用于大的区域(例如美国及加拿大大陆)。在一实施例中,按下述方式进行用于产生由一配置文件所规定的所有拼图的过程。
首先,拼图制作器305查看需要绘制的所有区域及绘制这些区域所需使用的各个缩放级,并以不同的缩放级根据需要将所述区域划分成子区域,以便能够以一给定存储量来对每一子区域进行预先再现。所述决策可基于用于一给定区域的实际数据。或者,为了使此步骤尽可能地短,可对一子区域使用一固定尺寸或对每一缩放级使用一固定尺寸。处于一缩放级的每一子区域均变成一由区域及缩放级界定并存储于一列表中的独立任务,并可应用大量拼图制作器305来执行这些任务(例如使用并行处理)。
为了避免出现跨越这些子区域之间的边界的问题,所述预先再现过程可确保没有会造成问题的特征跨越这些边界,从而使每一子区域均能够完全独立地预先再现及随后再现(图6)。或者,可对在一预先再现过程期间所作出的决策加以保 存,以便可在后续预先再现任务中对其加以存取,从而使各特征可跨越子区域之间的边界(图7)。此要求进行一定的协调,以避免同时要对两个对齐的子区域进行预先再现(假定存在一使用多个拼图制作器305的并行处理方案)。
当一拼图制作器305从所述列表中选择一个任务时,其以所述任务所规定的缩放级对所述子区域进行预先再现,并随后将所述子区域划分成小到足以在所述可用存储器中再现的再现区域。然后,拼图制作器305着手一次一个地对再现区域进行再现,将所得到的图像切割成拼图,并将所述拼图置于拼图存储器300中。在一特定实施例中,以四倍的所需分辨率进行再现,并将所得到的位图用作输入来产生拼图作为子像素位图,但也可根据所需输出使用其它尺寸及格式。应注意,例如标记等特征可跨越各再现区域之间的边界,因为关于其布置的所有决策均是在所述预先再现过程期间作出。还应注意,如果使所述子区域小到足以既在存储器中预先再现又在存储器中再现,则在对例如标记等特征的布置施加限制的边界之间存在较小的距离,且所得到的地图通常质量较差。
除已提及的用于产生描绘一没有断开特征(例如跨越拼图边界)的连续地图的拼图的策略外,还可仅根据某一半径内的地图数据以一种使所述半径外任何事物均无法影响所述标记布置的方式作出关于所述特征布置的决策。在此种系统中,可不需要对不能由例如标记等特征跨越的边界加以识别,只要一正预先再现及再现的区域可存取所述子区域以外(直到所述子区域以外的半径)的地图数据即可。借助对所述预先再现代码的充分改良及一足够大的半径,此种系统可能能够产生在质量上与前面所述方法相当的结果。当对例如城市或公园等区域进行标记时,所述预先再现过程可从所述地图数据中加载整个特征,并仅使用所述特征来决定是否布置标记。这意味着,关于此种标记或类似特征的布置的决策对于毗邻的子区域而言将相同,因而可允许这些特征跨越边界。
基于拼图的地图描绘系统问题及解决方案
下文参照图4至7图解说明前面所述连续性技术的实例性应用。
由于地图描绘系统实施例可处理大的区域(例如国家、洲、或者甚至行星规模),因此一次存取整个区域位图可能不切实际。为了解决此问题,如前面所解释,可能需要将整个区域划分成更小的子区域,并一次为一个子区域产生所述拼图。为在不向整个地图图像中引入错误的情况下进行此种作业,一实施例解决跨越拼图及子区域的连续性问题。图4图解说明一典型的标记布置问题,其中一地图标记(“主街道”)跨越地图拼图边界(称作子区域边界),而图5图解说明一在独立绘制每一子区域时可能出现的问题。
图6图解说明一根据本发明一实施例对图4及5中所示问题的解决方案,其中不允许地图标记跨越地图拼图边界。此方法确保在所述预先再现过程期间布置可能会导致跨越子区域之间边界的问题的特征,从而消除或者减少所述地图中的错误。
例如,在所述预先再现过程期间布置公路或铁路的名称标记,因而其不会跨越这些子区域边界,从而确保最终的地图不存在仅部分地位于其中的标记(例如图5中所示)。可仅根据此种特征的形状来布置例如城市或公园等区域的标记。这意味着如要布置这些标记,即使所述特征的某些部分位于其他子区域中,也必须检索被标记的整个特征,并随后必须根据所述整个区域的形状来布置所述标记。在一力图使重叠标记的外观最小化的系统中,应将区域标记布置于诸如公路及铁路等其它特征的标记前面,以使这些其它特征将不会影响一个子区域中的区域标记,因为这些影响将不为在一毗邻子区域中绘制所述地图的绘制过程所知,且因此不再保证所述区域标记的布置完全相同。
图7图解说明一根据本发明另一实施例对图4及5中所示问题的解决方案,其中将一跨越地图拼图边界的地图标记绘制成两个部分。可通过下述方式来实施此解决方案:将在所述预先再现过程期间对每一子区域所作出的决策存储起来,并使所述决策可供用于后续过程以绘制包含相同特征(或其某些部分)的区域以及可能根据关于先前所绘制区域中的特征及标记布置的信息来移动特征及标记的毗邻区域。
在此种情况下,所述地图绘制模块(例如图3中所示的地图涂画模块310)可在不虑及子区域边界的情况下布置标记(例如在一公路上),因为一跨越此种边界的标记得到保存并可供用于对毗邻子区域的绘制过程。所述毗邻子区域接收关于跨边界标记的布置的信息,并将所述布置用作其自身的布置,从而再次绘制所述标记,且其位于所述毗邻子区域中的部分包含在该位置处所产生的拼图中。此方法有利于下述属性:子区域边界的不同侧上的拼图可具有跨越所述子区域边界的特征及标记,且由此使布置特征及标记的过程能够忽略所述子区域边界。
可应用相同的方法来布置路线符号及区域标记(且其可与前面所提及的查看所标记的整个区域的方法相结合)。可类似地作出关于如何绘制被指配有坡度等级(按照高度排序)的交叉公路的预先再现决策。在此种具有坡度等级的公路情况下,可将一环绕一组交叉公路的区域以一种其可被视为与毗邻公路独立的方式来加以确定,且对此区域作出决策并保存所述决策,以使其可供用于绘制毗邻的子区域,特别是那些发现在坡度等级方面孤立的与所述区域相交的毗邻子区域。
由不同商家提供的地图数据往往在覆盖区域及质量方面差异很大。为了获得具有高质量的地图,可能需要对来自多个源的数据加以组合。例如,一个数据集可能具有对一机场区域及机场跑道的最详细的概述,而另一数据集可能具有关于可将机场标记布置于何处及一在产生来往于所述机场的驾驶方向使应使用的位置的信息。为了从多个地图数据集中获得最佳的一个,可对地图涂画模块310进行配置以从不同源中获得不同的信息集而不是只从一个数据集中获得。
当所述地图区域覆盖多个国家甚至多个洲时,一可供在多个缩放级用作拼图的大的连续地图这一概念也具有吸引力。同样,可使用前面所述用于将一地图绘 图划分成子区域并存取可供用于不同国家的地图拼图集的方法来构建此种系统。这意味着并非仅仅是一张美国地图,而是可针对整个北美大陆甚至整个行星以各种各样的缩放级来产生单张连续地图。
拼图的提供
如根据本揭示内容将易知,可按多种方式来实施拼图的提供。一种方法是赋予每一拼图一文件名并将其作为一单独文件存储起来。然后,可将所述拼图置于一服务器上,由所述服务器就地或通过一网络根据请求来提供所述文件。对于一基于网络的系统而言,此服务器可为一根据纬度、经度及缩放级为每一拼图命名的HTTP服务器。此方法可能会对所述服务系统施加一定的压力,尤其当拼图数量可变得很大时。
有许多方法能够对一服务系统进行组配以减轻由大量拼图造成的压力。例如,接收到一对地图拼图的请求的系统可存取一个或多个分别包含整个拼图集或其一拼图子集的有效存储媒体(例如本地高速缓存器),且随后可从所述存储媒体中检索一拼图,并响应于一请求来传递所述拼图。
图8为一根据本发明一实施例配置而成的地图拼图服务系统的一方块图。此实例性配置-其可用于构建图1所示的拼图服务系统115-尝试着使所述系统在所述存储系统的一部分失败的情况下作出适当响应,并还能够处理大的拼图集及大量的业务量。
由图可见,所述拼图服务系统包括两种类型的拼图服务器:拼图前端(TFE)及拼图后端(TBE)。这些服务器可通过一内部网络或其它媒体进行通信。来自所述系统外部(例如通过外部网络)的对拼图的请求通过一实施一负载平衡方案的请求分配子系统均匀地分布于各TFE之间。然后,所涉及的TFE自适当的TBE请求地图拼图,并将其回送至请求方。
在一可能的实施方式中,可将所有拼图存储于每一TBE的磁盘存储设备上(例如存储装置220中,其也可能是拼图存储器300)。此处,所述磁盘存储设备的使用方式是每当一TFE请求一拼图时,包含所述拼图的8×8块中的64块拼图中的其余拼图也自所述磁盘中读出,并可合理地预期所述其余拼图处于所述TBE上的存储器高速缓存器中(例如主存储器210中)。此实施例使用一8×8拼图块,以便提供总共64块处于相同缩放级的毗邻的拼图。其它实施例可使用其它块尺寸(例如N×N或M×N)。
因此,可无需进行磁盘存取且因此可更加有效地处理任何对来自同一TBE的同一8×8块中拼图的后续请求,除非所述8×8块已被最近的请求挤出所述存储器高速缓存器。如果确实如此,可自磁盘读取所请求的拼图,且可能重新将所述8×8块置于所述存储器高速缓存器中。因此,如果将一TBE上存储器高速缓存器的大小与对经常受到存取的拼图的请求量之间的平衡考虑在内,则可通过所述存储器高速缓存器来处理所述请求中的高的百分比,从而使每一TBE更加有效。
在一实施例中,可使用TFE在各TBE中分配请求,以使其可按一种在自存储器高速缓存器提供尽可能多的拼图而不使用一不合理数量的TBE与同时还能够有效地提供整个拼图集合之间保持合理平衡的方式工作。为了增加自存储器高速缓存器提供的拼图的百分比,可能需要使所有TFE将对一给定拼图(例如,或8×8拼图集)的请求引向同一TBE,及/或可能需要均匀地分配TBE上的负载,从而更加充分地利用每一TBE。
例如,假定有20个TBE,且每一个均能够高速缓存整个地图的1/20。因此,任何一个对地图数据的请求均可由一对应的TBE使用其高速缓存器来加以处理。如果一个TBE失败,则可在其余19个TBE中分配其负载。在此种情况下,每一其余TBE的高速缓存器均将最终增大(在一“学习”周期后)成包括其所分担的所述失败的TBE负载的一部分。
在一实施例中,可通过在每一TFE上使用相同的散列函数来构建这些功能。所述散列函数返回(或可用于计算)可自其请求一给定拼图的TBE的数量。由于在一实施例中所述拼图以8×8块的形式存储在存储器中,因此应自同一TBE请求一块中的每一拼图。在此实施方式中,可使用一基于经度及纬度的x及y值及一代表绘制所述拼图的缩放级的z值对每一拼图依序编号于的。在一实施例中,可对块以同样方式进行编号,使其x及y等于对其所含拼图的任一个x及y值对实施一整除以8的结果。因此,可将一实施例中的散列函数称作Hash(x除以8,y除以8,z)。然后,可将所述散列函数所返回的值用于计算一对应于所要使用的TBE的数量,如Hash(x除以8,y除以8,z)模N,其中N为所述系统中TBE数量。
此散列函数方法可有助于在所述系统达到一合理大小后,当不知晓负载将如何在各个拼图之间分配时,使所述负载均匀地分布配于一拼图服务系统上。然而,此方法并未解决在其中一个TBE停止工作的情况下使所述系统适当工作的问题。
为了解决此问题,在一实施例中,可对所述散列函数添加另一输入,具体而言,所作自所述TBE检索所述拼图的尝试次数。在此实施例中,可将所述散列函数描述为Hash(x除以8,y以除8,z,尝试次数)。因此,如果一TFE在其首次尝试从一TBE中检索一拼图时失败,则其可通过使尝试次数的起始值(例如0或1)增加1来增大所述尝试次数,且随后可重新执行所述散列函数,此现在会将其带至所述拼图的下一TBE。可重复此过程直至可检索到所述拼图或所述尝试次数达到一预设阈值(通常为一显著大于所述系统中的TBE数的数值)为止。
此方法提供多个优点。具体而言,如果一TBE失败,则其通常所提供的拼图将改为由通过所述散列函数分配的其余TBE提供。此可在不在TFE或TBE中进行任何通信的情况下进行,并可几乎不影响整个系统的响应时间。为了进一步增强所述系统,在一实施例中,所述TFE可跳过对已在一短时间周期内失败的 TBE的请求、或跳过一固定数量的对一失败的TBE的请求、或其某一组合,以限制在所述系统内传播的失败请求的数量。
所述系统也可处理多个TBE的失败,并可在所述失败的TBE重新开始工作或已被替换后-也许在一短的延迟(如果已采用前面所提及的用于减少失败的请求的时间或计数方法)后重新开始使用所述失败的TBE。而且,例如,一具有总共N个TBE-其中这些TBE中的M个已失败-的系统可在一时间周期后达到稳定并可作为一具有仅N-M个TBE的系统工作,因失败的尝试所导致的响应时间的少量增加除外。根据本文所述原理将易知诸多使用负载分担方案的失败恢复方式。
一地图再现过程所产生的拼图可包含一较大百分比的具有单种色彩的拼图。通常,此种情况可随用于水面、陆地、公园、城市、校园及其它此类区域的色彩而出现。由于其中具有相同的单种色彩的拼图完全相同,因此所述TBE上所需的存储量可能因不单独存储这些拼图而在一实施例中显著减少。在一些实施方式中,此可节省原本所需存储空间的90+%。
为了使所述系统能够在一实施例中提供这些单色拼图,可创建一包含关于已创建的每一拼图的信息(例如拼图可为一常规拼图、具有一特定色彩的单色拼图、一断开的拼图或一遗漏的拼图)的索引。在一实施方式中,此种索引可存储于所述TFE上,以便每当一单色拼图受到请求时所述TFE能够将一具有正确色彩的拼图发送至客户机。这些一般性单色拼图可存储于所述TFE上的存储器高速缓存器(例如主存储器210)中,以便尽可能有效地提供这些拼图。所述索引也可存储于所述TBE机器上,在此种情况下会将一般的拼图自所述TBE传送至所述TFE,并随后传递至所述请求方。
在另一实施例中,关于单色拼图的信息可全部、针对地图区域的一部分、或针对单个拼图存在于所述客户机侧。如果所述索引存在于所述系统的服务部分上,则其可响应于对所述信息的请求,且客户机可只请求其当前正在显示的区域的信息,并使用所述信息来避免请求单色拼图。另一实施例将使所述TFE(或使TBE经由TFE)能够不是以一拼图而是通过返回所请求拼图只包含某一色彩这一信息来响应于一对一拼图的请求,且因此可在所述接收侧上由一般性拼图来替换。在任何此类情况下,所述TBE或TFE均使所述远程计算装置使用可就地得到的单色地图拼图,以便无需提供此种拼图。如根据本发明将易知,存在几种根据关于一所绘制地图中整个拼图集内的单色拼图的知识来实施优化的方式。
本文出于例示及说明目的提供了上述对本发明各实施例的说明。本文不打算作为穷尽性说明或将本发明限定为所揭示的确切形式。根据本揭示内容可做出许多种修改及改变。本发明的范围并非意欲受本详细说明限制,而是仅受受随附权利要求书限制。
Claims (30)
1.一种用于为一基于拼图的数字地图描绘系统产生地图拼图的系统,其包括:
一用于产生数字地图图像的地图涂画模块;
一用于根据所述数字地图图像产生地图拼图的拼图制作器,其中所述拼图制作器根据一规定应产生地图拼图的区域及缩放级的配置文件来运行且使用所述地图涂画模块来产生在所述配置文件中所规定的区域的所述数字地图图像;及
一用于存储由所述拼图制作器产生的地图拼图的拼图存储器,
其中根据所述数字地图图像产生所述地图拼图包括:
识别所要绘制的区域、及需要对每一区域进行绘制的各个缩放级;
在所述不同缩放级下根据需要将所述区域划分成子区域,以便可在一可用存储器中对每一子区域进行预先再现;
以一给定缩放级对每一子区域进行预先再现;
将每一经预先再现的子区域划分成再现区域,以便可在所述可用存储器中对每一再现区域进行再现;及
对所述再现区域进行再现,并将所得到的图像划分成地图拼图。
2.如权利要求1所述的系统,其中所述地图涂画模块可运行以请求并接收一给定区域的地理数据,根据所述地理数据来产生所述数字地图图像。
3.如权利要求2所述的系统,其进一步包括:
一地图数据存储器,其用于存储一给定区域的所述地理数据的一个或多个集合,所述集合可由所述地图涂画模块存取。
4.如权利要求3所述的系统,其中所述地图数据存储器包括一组增强地图描绘格式(RMF)文件。
5.如权利要求2所述的系统,其进一步包括:
一远程地图描绘引擎(RME)库,其配置有一应用程序界面以使所述地图涂画模块能够存取所述地理数据。
6.如权利要求1所述的系统,其中所述配置文件进一步规定至少一个所要使用的地理数据集及应如何绘制包括标记布置信息的所述地图。
7.如权利要求1所述的系统,其中所述拼图制作器适于将所述配置文件中所规定的大区域划分成较小的区域,并使用所述地图涂画模块来为这些较小的区域产生所述数字地图图像。
8.如权利要求1所述的系统,其中所述拼图制作器可运行以将信息传递至所述地图涂画模块,自所述地图涂画模块接收一基于所述所传递的信息的对应数字地图图像,并将所述数字地图图像划分成拼图。
9.如权利要求1所述的系统,其中所述拼图制作器进一步经配置以将所产生的地图拼图编码成一所需图像格式,并存储所述经格式化的地图拼图。
10.如权利要求9所述的系统,其中所述所需图像格式为子像素位图。
11.如权利要求1所述的系统,其进一步包括
一地图拼图服务系统,其经配置以响应于来自一用户的地图请求而提供存储于所述拼图存储器中的地图拼图。
12.如权利要求11所述的系统,其中所述地图拼图服务系统进一步包括:
复数个前端拼图服务器,其用于提供一个或多个由一用户请求的地图拼图;
一请求分配器,其用于在所述复数个前端拼图服务器之间分配地图拼图请求;及
复数个后端拼图服务器,其与所述复数个前端拼图服务器以通信方式相耦接,每一后端拼图服务器均可存取由所述拼图制作器产生的所述地图拼图,并经配置以向一对应的前端拼图服务器提供所请求的地图拼图。
13.一种基于拼图的数字地图描绘方法,其包括:
产生数字地图图像,其包括规定应产生地图拼图的区域及缩放级;
使用所规定的区域及缩放级根据所述数字地图图像产生所述地图拼图;
存储所述地图拼图;及
响应于一用户地图请求而提供所述地图拼图中的一个或多个,
其中根据所述数字地图图像产生所述地图拼图包括:
识别所要绘制的区域、及需要对每一区域进行绘制的各个缩放级;
在所述不同缩放级下根据需要将所述区域划分成子区域,以便可在一可用存储器中对每一子区域进行预先再现;
以一给定缩放级对每一子区域进行预先再现;
将每一经预先再现的子区域划分成再现区域,以便可在所述可用存储器中对每一再现区域进行再现;及
对所述再现区域进行再现,并将所得到的图像划分成地图拼图。
14.如权利要求13所述的方法,其中产生所述数字地图图像进一步包括规定至少一个所要使用的地理数据集及应如何绘制包括标记布置的位置的所述地图。
15.如权利要求13所述的方法,其中存储所述地图拼图包括将所述所产生的地图拼图编码成一所需图像格式,并存储所述经格式化的地图拼图。
16.如权利要求15所述的方法,其中所述所需图像格式为子像素位图。
17.如权利要求13所述的方法,其中提供所述地图拼图中的一个或多个包括对所述所提供的地图拼图进行高速缓存。
18.如权利要求13所述的方法,其中提供所述地图拼图中的一个或多个进一步包括:
识别所述用户的一计算装置可就地得到的单色地图拼图。
19.如权利要求13所述的方法,其中处于一缩放级下的所述子区域中的每一子区域均表示一任务,从而提供一由子区域及缩放级规定的任务列表,并对执行这些任务应用并行处理。
20.如权利要求13所述的方法,其中要向所述发出请求的用户显示的地图具有一分辨率,且在一比所要显示的所述地图的所述分辨率大N倍的分辨率下进行所述再现,并将通过所述再现所产生的位图用作输入来产生拼图作为子像素位图,其中N≥2。
21.一种用于为一基于拼图的数字地图描绘系统产生地图拼图的系统,其包括:
一用于产生数字地图图像的地图涂画模块;
一用于根据所述数字地图图像产生地图拼图的拼图制作器,其中所述拼图制作器根据一规定应产生地图拼图的区域及缩放级的配置文件来运行且使用所述地图涂画模块来产生在所述配置文件中所规定的区域的所述数字地图图像;及
一用于存储由所述拼图制作器产生的地图拼图的拼图存储器;
其中从所述数字地图图像中产生所述地图拼图包括:
识别所要绘制的区域;
将所述区域划分成子区域,以便能够在一可用存储器中对每一子区域进行预先再现;
对每一子区域进行预先再现;
将每一经预先再现的子区域划分成再现区域,以便可在所述可用存储器中对每一再现区域进行再现;及
对所述再现区域进行再现。
22.一种用于根据数字地图数据产生数字地图拼图的方法,其包括:
识别所要绘制的区域、及需要对每一区域进行绘制的各个缩放级;
在所述不同缩放级下根据需要将所述区域划分成子区域,以便可在一可用存储器中对每一子区域进行预先再现;
在一给定缩放级下对每一子区域进行预先再现;
将每一经预先再现的子区域划分成再现区域,以便能够在所述可用存储器中对每一再现区域进行再现;
对所述再现区域进行再现以产生一图像;及
将所述图像划分成地图拼图。
23.如权利要求22所述的方法,其中预先再现每一子区域包括存取至少一个地理数据集及一关于如何构建所述数字地图图像的指令的表示形式。
24.如权利要求23所述的方法,其中所述指令表示于一配置文件中。
25.如权利要求22所述的方法,其中所述子区域分别具有一预定的固定尺寸。
26.如权利要求22所述的方法,其中所述子区域分别对于每一缩放级具有一预定的固定尺寸。
27.如权利要求23所述的方法,其中所述指令不允许所有地图标记跨越子区域之间的边界。
28.如权利要求23所述的方法,其中对所述指令加以存储以使其可用于后续的预先再现任务。
29.如权利要求23所述的方法,其中所述指令允许地理特征跨越子区域之间的边界。
30.如权利要求29所述的方法,其中不允许同时预先再现与一边界跨越特征相关联的两个对齐的子区域。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US55550104P | 2004-03-23 | 2004-03-23 | |
US60/555,501 | 2004-03-23 | ||
US56794604P | 2004-05-03 | 2004-05-03 | |
US60/567,946 | 2004-05-03 | ||
US65084005P | 2005-02-07 | 2005-02-07 | |
US60/650,840 | 2005-02-07 | ||
PCT/US2005/009538 WO2005094466A2 (en) | 2004-03-23 | 2005-03-23 | Generating and serving tiles in a digital mapping system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101156158A CN101156158A (zh) | 2008-04-02 |
CN101156158B true CN101156158B (zh) | 2011-08-31 |
Family
ID=38701532
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800139121A Active CN101014831B (zh) | 2004-03-23 | 2005-02-05 | 数字地图描绘系统 |
CN2005800135120A Active CN101156158B (zh) | 2004-03-23 | 2005-03-23 | 在数字地图描绘系统中产生并提供拼图的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800139121A Active CN101014831B (zh) | 2004-03-23 | 2005-02-05 | 数字地图描绘系统 |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN101014831B (zh) |
CA (3) | CA2820299C (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131586A1 (en) * | 2008-11-25 | 2010-05-27 | Jeyhan Karaoguz | Activity overlaid mapping services |
US8554871B2 (en) * | 2009-01-30 | 2013-10-08 | Navteq B.V. | Method and system for exchanging location content data in different data formats |
JP4905483B2 (ja) * | 2009-03-05 | 2012-03-28 | 株式会社デンソー | 地図データ更新装置および地図データ更新用プログラム |
CN102054388B (zh) * | 2009-11-03 | 2013-01-23 | 厦门雅迅网络股份有限公司 | 一种接收和显示地图的方法 |
WO2011072882A1 (en) * | 2009-12-14 | 2011-06-23 | Tomtom Polska Sp.Z.O.O. | Method and apparatus for evaluating an attribute of a point of interest |
US8768067B2 (en) * | 2010-04-15 | 2014-07-01 | Microsoft Corporation | Accelerating bitmap remoting by identifying and extracting patterns from source bitmaps through parallel processing techniques |
JP5812576B2 (ja) * | 2010-04-16 | 2015-11-17 | ソニー株式会社 | 情報処理装置及びそのプログラム |
US8280414B1 (en) * | 2011-09-26 | 2012-10-02 | Google Inc. | Map tile data pre-fetching based on mobile device generated event analysis |
CN102509183A (zh) * | 2011-10-19 | 2012-06-20 | 武汉元宝创意科技有限公司 | 一种利用信息技术建立捐助者与被捐助者感情关联的方法 |
US8803920B2 (en) * | 2011-12-12 | 2014-08-12 | Google Inc. | Pre-fetching map tile data along a route |
KR20130080163A (ko) | 2012-01-04 | 2013-07-12 | 삼성전자주식회사 | 클라이언트의 전자 지도 표시 방법 및 장치 |
US9230556B2 (en) | 2012-06-05 | 2016-01-05 | Apple Inc. | Voice instructions during navigation |
US9269178B2 (en) * | 2012-06-05 | 2016-02-23 | Apple Inc. | Virtual camera for 3D maps |
US20140046923A1 (en) | 2012-08-10 | 2014-02-13 | Microsoft Corporation | Generating queries based upon data points in a spreadsheet application |
CN104423783B (zh) * | 2013-09-02 | 2019-03-29 | 联想(北京)有限公司 | 信息传输的方法及电子设备 |
CN103943026B (zh) * | 2014-04-24 | 2016-02-24 | 深圳市赛速科技有限公司 | 一种基于像素距离的目标点自动排布方法 |
CN104236547A (zh) * | 2014-10-07 | 2014-12-24 | 谭希妤 | 基于惯性导航系统的建筑物内部电子地图的方法与系统 |
WO2016168186A1 (en) * | 2015-04-13 | 2016-10-20 | Google Inc. | Dynamically controlling map viewport in view of user signals |
US9858697B2 (en) * | 2016-01-07 | 2018-01-02 | Livio, Inc. | Methods and systems for communicating a video image |
EP3535671B1 (en) | 2016-11-04 | 2022-03-30 | Intergraph Corporation | Feature management for web map tile services |
CN107450860B (zh) * | 2017-08-15 | 2020-05-08 | 湖南安存科技有限公司 | 一种基于分布式存储的地图文件预读方法 |
CN107918930A (zh) * | 2017-12-28 | 2018-04-17 | 华润电力技术研究院有限公司 | 一种地形图生成系统 |
CN110473146B (zh) * | 2019-08-16 | 2022-12-27 | 苏州超擎图形软件科技发展有限公司 | 遥感图像显示方法、装置及存储介质和计算机设备 |
CN113432593B (zh) * | 2021-06-25 | 2023-05-23 | 北京华捷艾米科技有限公司 | 集中式同步定位与地图构建方法、装置和系统 |
CN115394178B (zh) * | 2021-09-02 | 2023-11-03 | 中国地质大学(北京) | 一种特教用汉盲双语标注触觉地图拼图教具的制作方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0741380A3 (en) * | 1995-05-01 | 1997-10-15 | Motorola Inc | Display method for tile-like images |
CN1204102A (zh) * | 1998-06-04 | 1999-01-06 | 中国地图出版社 | 电子地图中的图象处理方法 |
US6252608B1 (en) * | 1995-08-04 | 2001-06-26 | Microsoft Corporation | Method and system for improving shadowing in a graphics rendering system |
WO2003090184A1 (fr) * | 2002-04-22 | 2003-10-30 | Dgs Computer | Procede et dispositif permettant le dessin d'une carte altimetrique numerique |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5559707A (en) * | 1994-06-24 | 1996-09-24 | Delorme Publishing Company | Computer aided routing system |
US6321158B1 (en) * | 1994-06-24 | 2001-11-20 | Delorme Publishing Company | Integrated routing/mapping information |
US5742297A (en) * | 1994-11-04 | 1998-04-21 | Lockheed Martin Corporation | Apparatus and method for constructing a mosaic of data |
EP0967556A2 (en) * | 1998-06-26 | 1999-12-29 | Hewlett-Packard Company | Flat image delivery server |
CN1141669C (zh) * | 2001-12-30 | 2004-03-10 | 上海交通大学 | 数字道路地图自动生成滚球法 |
-
2005
- 2005-02-05 CA CA2820299A patent/CA2820299C/en active Active
- 2005-02-05 CN CN2005800139121A patent/CN101014831B/zh active Active
- 2005-02-05 CA CA2953656A patent/CA2953656C/en active Active
- 2005-02-05 CA CA3021979A patent/CA3021979C/en active Active
- 2005-03-23 CN CN2005800135120A patent/CN101156158B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0741380A3 (en) * | 1995-05-01 | 1997-10-15 | Motorola Inc | Display method for tile-like images |
US6252608B1 (en) * | 1995-08-04 | 2001-06-26 | Microsoft Corporation | Method and system for improving shadowing in a graphics rendering system |
CN1204102A (zh) * | 1998-06-04 | 1999-01-06 | 中国地图出版社 | 电子地图中的图象处理方法 |
WO2003090184A1 (fr) * | 2002-04-22 | 2003-10-30 | Dgs Computer | Procede et dispositif permettant le dessin d'une carte altimetrique numerique |
Non-Patent Citations (1)
Title |
---|
CN 1204102 A,全文. |
Also Published As
Publication number | Publication date |
---|---|
CN101156158A (zh) | 2008-04-02 |
CA2953656A1 (en) | 2005-11-03 |
CA3021979A1 (en) | 2005-11-03 |
CA2820299C (en) | 2017-02-21 |
CA2953656C (en) | 2018-11-27 |
CN101014831A (zh) | 2007-08-08 |
CN101014831B (zh) | 2013-08-21 |
CA3021979C (en) | 2023-09-26 |
CA2820299A1 (en) | 2005-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101156158B (zh) | 在数字地图描绘系统中产生并提供拼图的系统和方法 | |
US7599790B2 (en) | Generating and serving tiles in a digital mapping system | |
EP2560144B1 (en) | Generating and serving tiles in a digital mapping system | |
JP5789026B2 (ja) | デジタルマッピングシステムにおけるタイルの生成と供給 | |
US7925982B2 (en) | System and method of overlaying and integrating data with geographic mapping applications | |
JP5485886B2 (ja) | 電子地図に広告をロードする方法 | |
CN101317175B (zh) | 分布式地理信息系统中的实体显示优先级 | |
Cecconi et al. | Adaptive zooming in web cartography | |
US8589075B1 (en) | Method, system, and computer program product for visualizing trip progress | |
US8738284B1 (en) | Method, system, and computer program product for dynamically rendering transit maps | |
CN101553778B (zh) | 再现数字地图及其中瓦片的方法 | |
US20060161586A1 (en) | Internet based geographic information system | |
Lerin et al. | Making a pictorial and verbal travel trace from a GPS trace | |
Kalliola | Quality, information and maps in the information age | |
Paredes et al. | Touristic Virtual Environment of Tunguragua Province | |
Kitamoto et al. | Geometric correction of measured historical maps with a pixel-oriented and Geobrowser-friendly framework | |
Cervantes | Using GIS to create an interactive GeoPDF mapbook for the Big Island of Hawaii | |
de Paiva et al. | Web-Based GIS | |
Pepple | Evaluating and Presenting Points of Interest in Wayfinding and Navigation Systems | |
Lembo Jr | How Do I Do This in ArcGIS/Manifold?: Illustrating Classic GIS Tasks | |
Peterson | Mapping and Internet Based Public Transportation Journey Planning and Information Systems | |
Colegrove et al. | Geographic Visualization Of Event Popularity: A Proof-Of-Concept Prototype Utilizing The Last. fm Web Services API And Google Earth | |
CN102954798A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: Google limited liability company Address before: American California Patentee before: Google Inc. |
|
CP01 | Change in the name or title of a patent holder |