动态配置的数字地图绘制
相关申请的交叉引用
本申请是申请号为200780043988.8、申请日为2007年10月01日的中国发明专利申请的分案申请。本申请要求享受美国临时申请序列号为No.60/827,665、于2006年9月29日提交的申请的优先权,此处通过引用将其全部内容并入。
技术领域
本发明涉及网络环境中数字地图的绘制。具体地,本发明提供了一种系统和方法,用于支持对地图绘制配置文件的实时更新。
背景技术
数字地图频繁地在诸如因特网的网络上使用,以显示商业位置和居住位置,从而获得行车方向或是用于各种其他目的。地图通常通过使用预定义配置的专用软件(称为地图绘制软件)来绘制。地图绘制软件的一个例子是California,San Jose的deCarta公司提供的Drill Down Server(下钻取服务器)。
通常,通过使用配置语法向服务器提供指令集来配置地图绘制软件。例如,配置语法通常允许指定要绘制哪些地图特征、绘制特征的样式、具体配置可以应用的地图比例尺。还可以指定标注放置、字体、颜色、不透明度以及许多其他参数。
当服务器启动时,从文件读取地图绘制配置,创建可用地图样式的静态设置。在不重启服务器的情况下,通常不能添加新配置。
在基于web的环境中,地图通常由地图的在线提供方(诸如Yahoo!、MapQuest或Google)来提供。应用开发者可以将这些地图合并到其基于web的应用中。例如,提供房地产服务的站点可以提供由上述提供方之一绘制的地图,以便显示出售的房地产的位置。然而,除了从各种预先设计的地图中进行选择之外,应用开发者没有办法实时地改变地图的特征内容、颜色、标注等,因为通常只有地图服务器的系统管理员可以实现对配置的改变。
发明内容
本发明支持地图设计者对通过网络(诸如互联网)进行服务的可定制地图提供实时更新。地图设计者创建地图配置文件,该地图配置文件指定绘制地图的可定制属性,例如,哪些地图特征将要包括在地图上,绘制特征的样式,以及具体配置可应用的地图比例尺。设计者继而将配置文件存储在数据存储中,或者存储在与将要绘制地图的地图服务器相同的本地网络上,或者存储在可以经由资源定位器(诸如URL)到达的远程位置或者其他网络地址。地图配置文件可以与其他非配置文件内容一起被包括在网页上、wiki页面上、博客上等。内容中的标签或标记向地图服务器指示地图配置文件存在于所标识资源的何处。
当客户向地图服务器请求绘制的地图时,该请求指定绘制中要使用的地图配置文件的位置。地图服务器取回地图配置文件,并且根据配置文件中指定的设置来绘制所请求的地图。地图服务器继而将绘制的地图返回给请求该地图的客户。通过这种方式,开发者可以修改地图配置文件并且随后立即实现绘制的地图。
地图服务器可以通过集群实现,并且出于性能原因,地图服务器可以缓存地图配置文件。为了避免丧失使设计者的改变立即实现这一能力,可以将刷新命令发送给集群中的所有地图服务器,指示它们在其下次使用前取回地图配置文件的新副本。刷新命令例如可以包括在客户为了绘制地图而发送给地图服务器的请求中。
根据本发明的系统还包括图形用户接口,其支持地图设计者使用传统web浏览器来创建和编辑地图配置文件。预览功能允许设计者查看修改对配置文件的影响。因为配置文件由系统存储,所以设计者不需要为了设计和实现配置文件而具有本地存储或服务能力。
地图的设计者能够主控位置(诸如由URL标识的页面)处的图像配置。URL可以指向设计者或第三方所主控的网页、博客或wiki页面等。在读取URL所标识的页面内容时,地图服务器将地图配置与页面上的其他文本区分开。这允许地图设计者在图像设置之前和之后将其图像设置嵌入存在有其他文本或者图像的博客或wiki页面。
当向服务器请求地图时,请求者提供地图配置数据的URL。服务器从该指定的URL下载配置,并且根据配置数据中的指令来绘制地图。地图设计者通过编辑其博客、wiki或者通过改变该URL所指定的网页的内容,可以改变图像设置。
附图说明
图1是示出了根据本发明的实施方式的用于向地图服务器提供动态配置设置的系统的框图;
图2是示出了根据本发明的实施方式的用于向地图服务器提供动态配置设置的方法的交互图;
图3示出了根据本发明的实施方式的用于编辑地图配置设置的用户接口页面;以及
图4示出了根据本发明的实施方式的用于编辑地图配置设置的附加的用户接口页面。
附图仅出于示例性目的描绘了本发明的优选实施方式。本领域技术人员从下文的讨论中将很容易认识到,可以采用此处所示出的结构和方法的备选实施方式,而不脱离此处描述的发明的原理。
具体实施方式
图1示出了根据本发明的实施方式的用于向地图服务器提供动态配置设置的系统。系统100包括地图服务器102以及地图配置文件104。地图服务器102响应于客户端106的请求而向客户端提供绘制的地图。当请求绘制的地图时,客户端106可以指定哪些地图特征将要包括在地图上、绘制特征的样式以及具体配置可以应用的地图比例尺。还可以指定标注放置、字体、颜色、不透明度以及许多其他参数。在一种实施方式中,地图服务器102包括地图绘制配置的默认设置,其用于在缺少指定的图像设置文件时绘制地图。
虽然图1中仅示出了一个地图服务器102,但是系统100可以实现在集群服务器环境中,并且可以有很多此类地图服务器。图1的示意图是为了简化阐述而不在于限制。
客户端106是向系统100请求绘制的地图的计算机系统。客户端可以是为了某些目的(诸如定位商业或住宅,或者获得行车方向)而浏览地图的用户。客户端也可以是在其一个或多个网页上嵌入地图的其他网站。例如,客户端可以是房地产中介,其向网站访客显示出售的房地产的地图。客户端106也可以是对向系统100指定实时配置设置感兴趣的地图设计者。出于示意目的,假设客户端106是后一类型。
地图配置文件104是这样的文件,其包括将要提供给地图服务器102的配置设置。在一种实施方式中,地图配置文件104是位于远程服务器的文本文件、网页,或wiki页面。备选地,地图配置文件104可以位于与地图服务器102相同的局域网或子网中,如下文进一步描述的。
地图服务器102被配置用于从位于客户端106所指定的位置的地图配置文件104读取地图配置设置。在一种实施方式中,地图设计者准备诸如包括配置设置的网页之类的文件,并且将网页发布到地图服务器102的远程位置。当客户端106请求绘制的地图时,该请求包括诸如URL的资源标识符,其指示地图配置文件104的位置,在此示例中,是该远程网页。URL可以指向由设计者或第三方主控的网页、或者指向博客或wiki页面等。当读取该URL所标识的页面的内容时,地图服务器将地图配置与页面上的其他文本区分开,例如,通过在遇到预定义的标记或标签之前忽略所有文本实现。这允许地图设计者在图像设置之前和之后将图像设置嵌入到存在有其他文本和图像的博客或wiki页面中。
当地图服务器102接收到来自客户端106的请求时,该请求包括URL或表明配置设置存储在可取回位置的其他标识符,地图服务器102从该指定的URL下载配置,并且根据配置数据中的指令来绘制地图。按照这种方式,地图设计者可以通过编辑其博客、wiki或者通过改变URL所指定的页面的内容,来改变图像设置。
实际上,对于地图服务器102来说,每次绘制地图时都下载图像配置可能是非常低效的。例如,主控地图配置文件104的服务器可能提供内容服务很慢,这对地图顾客的用户体验产生了负面影响;地图配置文件104的内容可能很大,导致了较长的网络传送时间,并且增加了每次地图提取的带宽消耗,最终影响解决方案的性能和成本;以及地图服务器102必须针对每次地图提取来解析和实现配置。
因此,在一种实施方式中,地图服务器缓存地图配置文件104的内容。通过缓存内容,解决了上述问题。然而,缓存内容引入了新的问题:地图服务器102在其重启并且重新载入地图配置文件104之前并不知晓图像设置的任何改变。如果不解决这个问题,就会使实时地图设计的目的落空,其中在实时地图设计中,对配置所做的改变可以立即在地图上看到。
为了消除这种忧虑,在一种实施方式中,系统100允许客户端向地图服务器102通知地图配置文件104的内容已经改变。通过这种方式,当地图服务器102绘制地图时,它可以知道是否需要重新取回配置文件的内容。在集群服务器环境中,通知可以广播到集群内的每个地图绘制服务器。服务器可以选择立即下载改变后的内容,或者推迟下载新内容直到请求了需要给定图像设置的地图。有关远程URL是“脏的”(也即,具有新内容)的通知可以由针对地图服务器的地图图像的请求传输,或者可以作为发送给地图服务器102的明确的刷新请求来提供。另一实际考虑是安全性。通常,出于安全性原因,保护基于web的服务器(诸如地图服务器102)的防火墙被配置为不允许防火墙后的服务器发起站外连接。如果配置文件位于允许的子网之外,则这可能阻止地图服务器102发起到地图配置文件104的连接。作为实际的解决方案,地图服务器或同一防火墙后相关联的服务器可以提供库、wiki、博客或其它储存库,用于在地图服务器102能达到的地方存储图像配置设置104,并且客户端106可以通过web在此编辑其地图配置。依此方式,地图服务器取回图像设置URL,而不需要通过其防火墙发起站外连接。
图2是示出了根据本发明的实施方式的系统100的操作交互图。首先,客户端106向地图服务器102发送202针对绘制地图的请求。该请求指定了客户端106希望服务器使用的地图配置文件104的URL。接着,地图服务器102从所指定的位置取回204地图配置文件104。如上所述,该指定的位置可以是网页、文本文件、wiki页面等等。将地图配置文件104返回206给地图服务器102,地图服务器102继而使用该配置文件的设置来绘制地图,并且将所绘制的地图返回208给客户端106。
在下面的下钻取服务器查询语言(DDSQL)查询示例中,使用IMAG查询来请求JPG格式的图像。通过LL关键字来提供纬度和经度,通过ZM关键字来指定0.4km的缩放级别。SETTINGS参数指向所命名的设置,URL指向该设置位于何处。设置名称是drypen-tile,设置所处URL是
http://ws.decarta.com:8080/openls/library?clientName=someclient&clientPassword=abc123&readFile=drypen.cfg:
IMAG|%FORMAT=JPG%PD=200,200%LL=47.500761999999995,-122.265473%ZM=K0.4%CUST=somclient|%SETTINGS=drypen-tile,http://ws.decarta.com:8080/openls/library?clientName=someclient&clientPassword=abc123&readFile=drypen.cfg%LLMIN%LLMAX%EXTIME%DS=navteq||
注意,在此示例中,URL指向在线储存库,客户端可以在其中保存其图像设置。URL可以包含“readFile(读取文件)”或者“writeFile(写入文件)”参数。在“readFile”情况下,客户端将读取回图像设置文件的字节。在“writeFile”情况下,客户端将向URL发布新的或修改的图像设置,例如,通过将配置文件的内容包括为HTTP发布的主体。在一种实施方式中,库是deCarta Web服务的一个集成部分,虽然本领域技术人员可以意识到可以有多种实现。假设库是系统100的一部分,设计者可以在其中存储地图配置文件104,这不仅避免了上述安全性难题,而且使得无法访问web服务器、博客或wiki的客户端仍然可以使用配置文件。在所示例子中,还通过clientName(客户端名称)和clientPassword(客户端口令)这两个URL参数提供安全性。这防止了未授权用户读取或写入图像设置,并且允许保护开发者对定制图像设置的投资免受未授权访问或盗版。
在一种实施方式中,关于要求地图服务器102丢弃已缓存设置并且从地图配置文件104再次取回设置的指令,可以与绘制请求一起发送。例如,下面的DDSQL与上面的命令一致,区别在于其包括称为FLUSH(刷新)的标志之外,该标志指示服务器刷新任何来自SETTINGS URL的缓存内容以及下载新内容:
IMAG|%FORMAT=JPG%PD=200,200%LL=47.500761999999995,-122.265473%ZM=K0.4%CUST=somclient|%SETTINGS=drypen-tile,http://ws.decarta.com:8080/openls/library?clientName=someclient&clientPassword=abc123&readFile=drypen.cfg%LLMIN%LLMAX%EXTIME%DS=navteq|%FLUSH|
地图配置文件104的语法可以是特定于实现的。在一种实施方式中,可以使用图形用户接口工具、通过网络(诸如因特网)来创建和编辑地图配置文件104。图3示出了根据本发明的实施方式的用于编辑图像设置的用户接口(UI)屏幕300。用户接口屏幕300可以作为网页使用因特网浏览器来访问,其包括示出了配置文件的实际内容的文本区域302,以及向设计者提供预览在应用当前设置时看起来会如何的预览区域304。图3还示出了字体和颜色选择框306,以作为图像设置文件可定制的示例。相应地,用户接口允许高级用户经由文本区域302直接访问图像设置文件,并且允许低级用户简单地经由用户接口对预览地图做出图形改变来执行定制,而无需知晓配置文件语法。
图4提供了根据本发明的实施方式的用于编辑图像设置的用户接口屏幕400的第二示例图。在此示例中,UI允许设计者针对不同的地图特征(诸如公园、水、校园、政治特色、传统特征、建筑物以及供应商)来指定字体和颜色。预览窗格402提供了所选样式在绘制的地图上看起来会如何的范例,例如按照不同的缩放级别。
已经针对有限数量的实施方式在具体细节方面描述了本发明。本领域技术人员可以理解,本发明此外还可以在其他实施方式中实践。例如,地图服务器的功能在其他实施方式中可以由其他模块来提供。本发明还有简化数字地图之外的应用。例如,在各种实施方式中,本发明可以用于为其他基于服务器的应用指定定制的配置设置。
在此书面说明书中,组件的特定名称、术语的大写、属性、数据结构或任何其他编程或结构化方面并不是强制性的或有用意的,并且实现本发明或其特征的机制可以有不同的名称、格式或协议。进一步地,系统可以通过硬件和软件的组合(如所描述的)来实现,或者完全用硬件元件来实现。而且,此处所描述的各种系统组件之间的特定功能划分仅仅是示例性的,不是强制性的;单个系统组件执行的功能替代地可以由多个组件来执行,并且多个组件执行的功能替代地可以由单个组件来执行。
上述描述的某些部分针对信息的操作算法和符号表示方面提供了本发明的特征。这些算法描述和表示是本领域技术人员用于最有效地将他们工作的本质传达给本领域其他技术人员的手段。尽管在功能上或逻辑上对这些操作进行了描述,但是其理解为通过计算机程序实现的。而且,也已经多次证实,参考这些作为模块或代码设备的操作安排是很方便的,不丧失一般性。
然而,必须记住,所有这些以及类似的术语要与合适的物理量相关联,其仅仅是应用于这些物理量的便利标注。除非本讨论中很明显的特别声明,应当理解在整个说明书中,利用诸如“选择”或“计算”或“确定”等措辞的讨论是指计算机系统或类似的电子计算设备的动作和处理,其操纵和转换在计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中的表示物理(电子)量的数据。
本发明的某些方面包括在此以算法形式描述的处理步骤和指令。应当注意,本发明的处理步骤和指令可以实现为软件、硬件或固件,并且当实现为软件时,可以被下载以驻存并且从实时网络操作系统所使用的不同平台进行操作。
本发明还涉及用于执行此处的操作的装置。该装置可以针对所要求的目的而特别构建,或者其可以包括由存储在计算机中的计算机程序选择性激活或重新配置的通用计算机。这种计算机程序可以存储在计算机可读存储介质中,例如但不限于,任何类型的磁盘,包括软盘、光盘、CD-ROM、光磁盘、只读存储器(ROM)、随机访问存储器(RAM)、EPROM、EEPROM、磁卡或光卡、专用集成电路(ASIC)或适合于存储电子指令的任何介质类型,并且每个都耦合至计算机系统总线。而且,说明书中所指的计算机可以包括单个处理器或者可以是采用多个处理器设计以增强计算能力的架构。
此处所提供的算法和现实本质上不涉及任何特定的计算机或其他装置。根据此处的教导,也可以利用程序使用各种通用系统,或者可以证实很方便构建更专用的装置来执行所需要的方法步骤。对于各种系统所需要的结构从上述描述中可以很清楚。此外,本发明不是参考任何特定编程语言进行描述。可以理解,可以使用各种编程语言来实现此处本发明的教导,并且提供对特定语言的参考以便公开本发明的可实施性和最佳模式。
最后,应当注意,说明书中所用的语言原则上是针对易读性和指导性目的而选择的,并且不是选择来勾画或限定该创造性主题。因此,本发明的公开旨在于解说本发明的范围,而不是限制本发明的范围。