CN101014831A - 数字地图描绘系统 - Google Patents

数字地图描绘系统 Download PDF

Info

Publication number
CN101014831A
CN101014831A CNA2005800139121A CN200580013912A CN101014831A CN 101014831 A CN101014831 A CN 101014831A CN A2005800139121 A CNA2005800139121 A CN A2005800139121A CN 200580013912 A CN200580013912 A CN 200580013912A CN 101014831 A CN101014831 A CN 101014831A
Authority
CN
China
Prior art keywords
map
picture mosaic
image
map tile
tile
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
Application number
CNA2005800139121A
Other languages
English (en)
Other versions
CN101014831B (zh
Inventor
拉尔斯·艾尔斯特拉普·拉斯马森
延斯·艾尔斯特拉普·拉斯马森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN201310295921.0A priority Critical patent/CN103398718B/zh
Priority to CN201310302294.9A priority patent/CN103398719B/zh
Priority claimed from PCT/US2005/003832 external-priority patent/WO2005104039A2/en
Publication of CN101014831A publication Critical patent/CN101014831A/zh
Application granted granted Critical
Publication of CN101014831B publication Critical patent/CN101014831B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Instructional Devices (AREA)

Abstract

本发明揭示用于实施一数字地图描绘系统的各个方面的各种方法、系统及设备。这样的一种方法包括:将一位置请求从一客户机侧计算装置发送至一地图拼图服务器,响应于所述位置请求来接收一组地图拼图,将所述所接收地图拼图组合成一拼图网格,使所述拼图网格相对于一剪辑形状对齐,及显示所述结果作为一地图图像。一种根据本发明各个方面的设备包括:用于将一位置请求从一客户机侧计算装置发送至一地图拼图服务器的构件,用于响应于所述位置请求来接收一组地图拼图的构件,用于将所述所接收地图拼图组合成一拼图网格的构件,用于使所述拼图网格相对于一剪辑形状对齐的构件,及用于显示所述结果作为一地图图像的构件。此种设备可进一步在所显示地图图像上包括方向控制对象或缩放控制对象作为交互式覆盖图像,且还可在所述地图图像上包括路径或位置覆盖图像。

Description

数字地图描绘系统
相关申请案交叉参考
本申请案主张基于2004年5月3日提出申请的第60/567,946号美国临时专利申请案之优先权,该美国临时专利申请案的全文以引用方式被并入本文中。本申请案还主张基于2004年3月23日提出申请的第60/555,501号美国临时专利申请案之优先权,该美国临时专利申请案的全文以引用方式并入本文中。
技术领域
根据本发明原理的实施方案大体而言涉及地图描绘系统,且更具体而言涉及数字环境中的地图描绘系统。
背景技术
人们已开发出计算机化的地图描绘系统来利于作出旅行计划。例如,旅行计划因特网网站已在市面上存在且为人们众所周知。这些网站允许用户输入一带有所请求位置的查询项,从而可向用户提供一与所请求位置相关联的地图。此外,各个众所周知的网站允许用户输入旅行的起点及终点,然后使用所述起点及终点来计算并向用户提供行进方向。
作为下文中对本发明某些方面的详细说明的背景知识,图1-4绘示一实例性传统地图描绘系统的某些方面。图1例示一显示一地图请求输入网页105的网络浏览器用户界面100。如图所示,用户已输入一如下所需位置:353 Main St.,Biliings,MT45619。在如图1中所示输入要进行地图描绘的所需位置之后,用户随后通过选择一“请求得到地图(Request Map)”按钮110来请求得到一地图(通常来自一远程服务器)。然后,通常在远程服务器处产生一地图图像,该地图图像传输至用户的计算装置上,并最终以一地图显示网页的形式显示于网络浏览器用户界面100上。
图2例示一网络浏览器用户界面100上的一实例性地图显示网页200。此处,一地图显示网页200显示图1中所作地图请求的结果。所显示信息一般由一描绘所请求位置及周边区域的地图图像205组成。如在图2中所示,在地图图像205上通过一地址图标208来标识所请求位置,且地址图标208通常位于地图图像205的中心。所请求位置及地址图标208也可显示于地图显示网页200内的一地图图例窗口210上。地址图标208通常是一简单的二维图像,如果其紧密靠近其他此种图标显示于地图图像205内,则可造成视觉混乱并使使用者对于地图图像205内的每一图标实际所指的位置感到迷惑或误导用户。
地图网页200也可显示按钮或其他用户界面对象以便可通过选择这些按钮或用户界面对象来控制地图图像205的显示方式。例如,如在图2中所示,通常提供缩放控制对象220来使用户能够“放大”或“缩小”并从而相应地影响地图图像205的显示比例,通常此时仍使地址图标208所标记的所需位置处于图像的中心。此外,也可提供方向按钮或其他类似的用户界面对象(例如“下箭头”方向按钮215)来使用户能够“平移”所述图像,例如通过显示此前因处于地图图像205的“南部”边界之外而被隐藏的更多地图信息、同时移动并隐藏地图信息中此前所显示的“北方”部分中的一对应部分。如在图2中所示,这些图像控制对象通常显示于地图图像205的边界区域以外,从而会减小地图显示网页200内可供用于地图图像205的空间大小。
通常,当选择图像控制对象(例如图2中所示的缩放控制对象200或方向按钮215)时,会向服务器传输一HTTP请求,然后服务器会传输一包含新的地图信息的新图像以供以所选缩放级加以显示。
具体而言,在一如在图3所示的实例性系统中,一网络浏览器300向一网络服务器305发送一包含所请求地图图像的位置信息的HTTP请求。该HTTP请求可由通过如图1中所示的资料输入网页105经由一网络浏览器用户界面100接收到的位置数据组成。例如,如在图1中所示及在前面所述,用户可输入要描绘地图的如下所需位置:353 Main St.,Billings,MT,45619。用户然后通过选择一“请求得到地图(Request Map)”按钮110来请求得到方向,且该选择事件最终使图3中所示的HTTP请求从网络浏览器300传输(直接或间接地)至网络服务器305。网络服务器305响应于该HTTP请求而向一地图向量数据库310发送一数据库查询(“DB查询”)。地图向量数据库310通常为所需位置数据确定对应的向量并将这些向量传输至网络服务器305。网络服务器305然后通常使用所接收的向量产生所需地图的一位图图像,并将所述位图转换成一种由网络浏览器300所支持的图像格式(例如GIF,PNG,JPEG等等)。网络服务器305然后将所述图像传输至网络浏览器300-通常是将其嵌入于超文本标记语言(HTML)代码内。然后,通过网络浏览器用户界面100(如在图2中所示及在前面所述)向用户显示所述地图图像。因此,当用户通过例如输入一邮政地址或者通过点击一靠近当前地图视图的导航链接来请求一新的地图视图时,网络浏览器300会向网络服务器305发送一指示所述新的地图视图的边界的请求。网络服务器305又从一数据库中提取基于对应向量的地图数据,并绘制所述地图的一位图图像。网络服务器305然后将所述位图图像转换成一种由网络浏览器300所支持的图像格式并将所述图像(有时嵌入于HTML中)返回至网络浏览器300来显示给用户。此种系统的商业实施方案包括AOL公司的MapQuest( http://www.mapquest.com)、Yahoo公司的基于Telcontar的“SmartView”地图( http://maps.yahoo.com)、及Microsoft公司的MapPoint.net套件(例如 http://maps.msn.com)。
图4例示一用于向网络浏览器提供地图数据的第二实例性系统。如在图4中所示,一网络浏览器300以与前面参照图3所述的相同方式向一网络服务器305传输HTTP请求。一旦从网络浏览器300接收到HTTP请求,图4中所示的网络服务器305便将一包含所请求位置数据的数据库查询(“DB查询”)传输至一地图光栅数据库410。地图光栅数据库410根据所述数据库查询从一更大的预先再现的地图图像中提取正确的图像。然后将所请求图像传输至网络服务器305,网络服务器305随后如前面所述将所述图像传输至网络浏览器300。因此,在图4所示的数字地图描绘系统中,通过仅提取一更大的预先再现的图像中的正确部分来取代提取向量并绘制地图图像的步骤。此种系统的商业实施方案包括英国的MultiMaps( http://multimaps.com)及澳大利亚的WhereIs( http://www.whereIs.com.au)。还应注意,此种系统通常是根据也将用于产生这些地图的打印版本的同一些基于向量的文件来产生地图图像。
某些数字地图描绘网站的提供商已注意到可通过从网络服务器305将若干更小的图像(称作“拼图”)传输至网络浏览器300来克服某些上述问题。随后可由网络浏览器300将这些更小的拼图组合成一大的图像。例如,Microsoft公司的TerraSerber USA网站( http://terraserver.homeadvisor.msn.com/)当前即使用一种拼图方法来显示卫星图像。
发明内容
本发明揭示用于实施一数字地图描绘系统的各个方面的各种方法、系统及设备。一种这样的方法包括:将一位置请求从一客户机侧计算装置发送至一地图拼图服务器,响应于所述位置请求来接收一组地图拼图,将所述所接收地图拼图组合成一拼图网格,使所述拼图网格相对于一剪辑形状对齐,及以一地图图像形式显示所述结果。一种根据本发明各个方面的设备包括:用于将一位置请求从一客户机侧计算装置发送至一地图拼图服务器的构件,用于响应于所述位置请求来接收一组地图拼图的构件,用于将所述所接收地图拼图组合成一拼图网格的构件,用于使所述拼图网格相对于一剪辑形状对齐的构件,及用于以一地图图像形式显示所述结果的构件。此种设备可进一步在所显示地图图像上包括方向控制对象或缩放控制对象作为交互式覆盖图像,且还可在所述地图拼图图像上包括路径或位置覆盖图像。
附图说明
并入本说明书中并构成本说明书的一部分的附图例示了本发明的各种实施例。附图中:
图1例示一显示一地图请求输入网页的实例性网络浏览器;
图2例示一网络浏览器上的一实例性的地图显示;
图3例示一基于向量的实例性传统数字地图描绘系统架构;
图4例示一基于光栅的实例性传统数字地图描绘系统架构;
图5例示一根据本发明各个方面的分布式网路系统;
图6为一根据本发明各个方面的客户机侧或服务器侧计算装置的实例性方块图;
图7例示一根据本发明各个方面的基于拼图的实例性数字地图描绘系统架构;
图8例示一根据本发明各个方面的实例性组合式地图请求输入与地图显示网页;
图9例示一根据本发明各个方面的实例性服务器侧架构;
图10例示一根据本发明原理的实例性服务器侧架构的其他方面;
图11例示一根据本发明各个方面的实例性地图图像拼图网格及剪辑矩形;
图12例示一根据本发明各个方面在将一实例性拼图网格与一剪辑矩形相比较之后所形成的地图图像;
图13例示根据本发明各个方面对应于一组实例性的显示图像的基本拼图网格坐标及剪辑形状;
图14例示一个根据本发明各个方面向一网络浏览器传输地图拼图并将这些拼图就地高速缓存在所述网络浏览器中的实施例的流程图;
图15例示一可根据一个用于将驾驶方向作为覆盖对象显示于地图图像上的实施例来使用的流程图;
图16例示根据本发明一实施例来执行地图图像平移操作的流程图;
图17至21例示一根据本发明一实施例向西平移剪辑形状宽度的1/3的实例性过程;
图22例示一根据本发明一实施例执行一缩放操作的实例性流程图;
图23绘示一根据本发明一实施例将一组位置标记覆盖至地图图像上的实例性流程图;
图24绘示一根据本发明各个方面的具有多个所覆盖位置标记的实例性地图显示网页;
图25绘示一根据本发明各个方面的位置标记的实例性的细节;
图26A绘示一根据本发明各个方面的信息窗口的实例性的详细内容;
图26B绘示一根据本发明各个方面的信息窗口的其他实例性的详细内容;
图27绘示一根据本发明各个方面覆盖有一驾驶方向路线轨迹的实例性地图显示网页;
图28绘示一根据本发明各个方面覆盖有一区域边界轨迹的实例性地图显示网页;
图29绘示一根据本发明一实施例在地图图像上覆盖一组信息窗口的实例性流程图;
图30绘示一根据本发明一实施例重新确定一地图图像显示窗口的大小的实例性流程图;
图31绘示根据本发明一实施例具有不同的分辨率以用于实现地图图像的高品质打印的一组实例性地图图像拼图。
具体实施方式
本文根据一种用于获得及显示地图描绘信息的设备、系统及方法来说明本发明的各个方面。所属领域的一般技术人员将会认识到,下文说明仅为例示性而决非限定性说明。通过本揭示内容,这些人员将对本发明的其他方面一目了然。
例如,可使用例如以下等任意数量的计算机编程语言来实施本发明的各个方面:Java语言,JavaScript,JavaApplet技术,C,C++,Perl,Pascal,Smalltalk,FORTRAN,汇编语言,HTML(即超文本标记语言),DHTML(即动态超文本标记语言),XML(即可扩展标记语言),XLS(即可扩展风格语言),SVG(即可扩缩向量图形),VML(向量标记语言),Macromedia的Flash技术等等。此外,可根据每一特定实施方案的要求而采用例如程序技术、面向对象的技术或人工智能技术等各种编程方法。
在本文件的各附图及通篇说明中将使用相同的参考编号来表示相同或相似的部件。此外,本说明书中的某些图式是用于例示方法及系统的流程图。应了解,这些流程图中的每一个方块、及这些流程图中方块的组合可通过计算机程序指令来实施。这些计算机程序指令可加载至一计算机或其他可编程的设备上来形成一机器,以使在所述计算机或其他可编程设备上执行的指令形成用于实施在所述流程图方块中所规定功能的结构。这些计算机程序指令也可储存于一计算机可读存储器中,所述计算机可读存储器可指令一计算机或其他可编程设备以一特定方式工作,以使储存于所述计算机可读存储器中的指令形成一包含用于实施在所述流程图方块中所规定功能的指令结构的制品。所述计算机程序指令也可加载至一计算机或其他可编程设备上,以便在所述计算机或其他可编程设备上执行一系列操作步骤来形成一由计算机实施的过程,从而使在所述计算机或其他可编程设备上执行的指令提供用于实施在所述流程图方块中所规定功能的步骤。
相应地,各流程图中的方块支持用于执行所规定功能的结构的组合及用于执行所规定功能的步骤的组合。还应了解,所述流程图中的每一个方块、及所述流程图中方块的组合可由执行所规定功能或步骤的基于专用硬件的计算机系统、或者专用硬件与计算机指令的组合来实施。
图5例示一根据本发明各个方面的分布式网路系统500。图中显示一计算装置503连接至一网络505。各个服务器也连接至网络505。例如,图中显示一网络服务器510、一拼图服务器515、及一位置数据服务器520与网络505进行通信,当然其他服务器(未显示)也可连接至网络505。计算装置503可为配置成进行计算的任意类型的装置,例如个人计算机、移动电话、个人数字助理、装设于汽车中的导航系统等等。服务器510、515及520可分别为任一种能够在网络505上主持服务的装置,例如网服务器(network server)或网络服务器(webserver)。服务器510、515及520还可根据用户输入来确定及/或获得某些或所有地图描绘信息。另一选择为,计算装置503可具备确定及/或获得行进方向的能力。在某些实施方案中,所述计算装置及各服务器(或其各个部分)可共同位于一个或多个机器中。
网络505可为任意类型的分布式网络,例如局域网、宽域网、电话交换网、内联网、因特网或万维网。另一选择为,网络505可为计算装置503与服务器510、515及520之间的直接连接。计算装置503、网络505及/或服务器510、515及520可通过任意类型的有线连接或无线连接进行通信。此外,可使用与网络505进行通信的计算装置503、服务器510、515及520、及其他计算装置(未显示)、及/或其他服务器(未显示)来执行本文所述的任何或所有功能。
图6为一计算装置505或服务器510、515及520的一实例性图式。计算装置/服务器503/510/515/520可包括一条总线600、一个或多个处理器605、一主存储器610、一只读存储器(ROM)615、一存储装置620、一个或多个输入装置625、一个或多个输出装置630、及一通信接口635。总线600可包括一条或多条能在计算装置/服务器503/510/515/520的组件之间进行通信的导体。
处理器605可包括任意类型的传统处理器、微处理器、或者用于解译及执行指令的处理逻辑。主存储器610可包括一随机存取存储器(RAM)或另一类型的能储存信息及由处理器605所执行指令的储存装置。ROM615可包括一传统的ROM装置或另一种类型的能储存供处理器605使用的静态信息及指令的静态存储装置。存储装置620可包括一磁性及/或光学记录媒体及其对应的驱动器。
输入装置625可包括一个或多个能使用户向计算装置/服务器503/510/515/520输入信息的传统机构,例如键盘、鼠标、笔、记录笔、笔迹识别、语音识别、生物测定机构等等。输出装置630可包括一个或多个向用户输出信息的传统机构,包括显示器、打印机、扬声器等等。通信接口635可包括任何使计算装置/服务器503/510/515/520能够与其他装置及/或系统进行通信的收发机类机构。例如,通信接口635可包括用于通过网络(例如网络505)与另一装置或系统进行通信的机构。
如下文所将详细说明,计算装置503及/或服务器510、515及520可根据软件指令来执行作业,所述软件指令可从另一计算机可读媒体(例如数据存储装置620)或通过通信接口635从另一装置读入存储器610中。包含于存储器610中的软件指令使处理器605执行在下文中所将详细说明的过程。另一选择为,可使用硬接线电路来取代软件指令或与软件指令相结合地执行根据本发明的过程。因此,各实施方案并不仅限于硬件电路与软件的任一特定组合。
可使用一包含一网络浏览器用户界面(例如图1及2中所示的网络浏览器界面100)的网络浏览器(例如图3及4中所示的网络浏览器300)在计算装置503上显示信息(例如文本信息及图形信息)。网络浏览器300可包括能够显示通过图5中所示网络505接收到的信息的任意类型的可视显示,例如Microsoft公司的Internet Explorer浏览器、Netscape公司的Navigator浏览器、Mozilla公司的Firefox浏览器、PalmSource公司的Web Browser、或任何其他浏览器或其他能够与网络405进行通信的应用软件。计算装置503也可包括一浏览器辅助程序。所述浏览器辅助程序可包括插件、小应用程序、动态链接库(DLL)、或类似的可执行对象或过程。另外,所述浏览器辅助程序可为一工具条、软件按钮、或者能为网络浏览器300提供扩展的菜单。另一选择为,所述浏览器辅助程序可为网络浏览器300的一部分,在此种情形中,浏览器300将执行浏览器辅助程序的功能。
浏览器300及/或浏览器辅助程序可充当用户与计算装置503及/或网络505之间的中介。例如,从连接至网络505的装置接收到的源文件或其他信息可通过浏览器300输出给用户。此外,浏览器300与浏览器辅助程序两者还能够在向用户输出源文件之前对所接收到的源文件执行作业。另外,浏览器300及/或浏览器辅助程序可接收用户输入并将所输入数据传输至服务器505/515/520或其他连接至网络505的装置。
实例性系统概述及用户界面
如下文所更详细说明,本发明一实施例的某些方面假定在恰当的一组离散缩放级中的每一缩放级下均存在大的(例如为整个美国的规模)、邻接的地图光栅图像。所述系统在一次性离线阶段中产生这些大的光栅图像并将其切割成若干个其大小一般小于所需地图视图的数量级的片断(例如矩形的拼图),并将这些拼图以一种由网络浏览器所支援的格式存储于一服务器侧数据库中。
如在图7中的实例中所示,当一网络用户通过应用软件700(例如图3及4中所示的网络浏览器300)请求一新的地图视图时,会仅针对为与早已存在于网络浏览器中(或网络浏览器的高速缓存器中,在图7中显示为本地存储器705,其可不受限定地实施为图6中所示的主存储器610、ROM615及/或存储装置620)的拼图相结合来产生新视图所需的最小拼图集合向服务器710发送请求。对这些HTTP拼图的响应的格式在标题字段中包含鼓励网络浏览器就地高速缓存所述拼图的信息。通过执行一组脚本,网络浏览器随后将经组合的该拼图集合无缝地组合成新的地图视图来呈现给用户。由于旧的地图视图通常仍存在于浏览器中,因而可作为平移及/或缩放操作的一部分,使用额外的脚本来平滑地推动从旧的地图视图向新的地图视图的过渡。而且,可例如响应于用户对驾驶方向、就地搜索、黄页查寻等等的请求而在预先再现的地图拼图顶上覆盖位置标记及路线。此外,可使用类似的技术例如在地图图像上突出显示某些区域及街道。
图8从最终用户(例如一与在图5所示计算装置503上运行的网络浏览器进行交互作用的用户)的角度绘示一根据本发明各个方面的组合式地图请求与地图显示页800的一实施例。如在图8中所示,页800包括一地图图像805、所覆盖的方向性地图控制对象815、所覆盖的缩放控制对象820、位置请求文本输入字段825、搜索按钮830、信息窗口840、位置标记845、位置标记阴影850、及信息窗口阴影855。如下文所更详细说明,地图图像805实际上是通过使一拼图网格相对于一与地图图像805具有大体相同大小及形状的剪辑形状对齐来产生。在一实施例中,所述拼图网格包括若干个较小的单个地图拼图,这些较小的单个地图拼图无缝地排列成一用于显示的较大图像。借助所属领域中的技术人员众所周知的图像覆盖技术及绝对定位技术,可将方向性地图控制对象815及缩放控制对象820实际地布置于地图图像805本身内,从而增大显示页800内可供用于地图图像805的区域。通过这种方式,可对地图图像805采用任意的大小,此并不仅限于全部数量的地图拼图。而且,可在地图图像805的中心处步骤任意的点。在一实施例中,将位置查询文本输入字段825实施为单个文本字段,从而无需使用多个字段来规定要进行地图描绘的所需位置的各个组成部分(例如其街道地址、城市、州名或邮政区码)。如下文所将说明,在一实施例中,图8还在地图图像的中心处包括记帐点860(尽管记帐点860通常不是地图图像805上的可见特征)。
当选定搜索按钮830时,会在用户的计算装置中或在远程服务器中剖析已输入至文本输入字段825内的要进行地图描绘的所需位置,并产生及显示(通过在本文件通篇中所述的详细过程)地图图像805。也可将输入至输入字段825内的所需位置以其原始格式或剖析后的格式作为地图拼图840加以重复及显示。需要进行地图描绘的位置在地图图像805内通过标记845及其阴影850以图形方式进行标识。如下文所将详细说明,通过使用使位置标记在视觉上看起来呈两维形式且包括倾斜阴影的效果,使视觉混乱最小化-尤其是当多个位置标记的位置相互紧密靠近时,且可更容易地将地图上对应于位置标记的实际位置标识为一个点。
在用户图像控制功能方面,可将方向性地图控制对象815实施为一组带箭头标记的平移按钮,以用于使地图在所述箭头方向上平移过剪辑形状大小的例如25%。这些按钮也可通过罗盘取向进行标记,例如“西”、“北”或“西北”。如在图8中所示,缩放控制对象820可包括标记为“+”及“-”的按钮,以用于分别使地图放大及缩小单个级。这些按钮也可通过对应缩放级的地理信息摘要进行标记,例如“街道”、“城市”、“县”、“州”、“国家”等等。还如在图8中所示,缩放控制对象820还可包括一具有对应于每一缩放级的离散位置的滑动条。从用户的角度来看,将滑动条移动至一特定的缩放级可能具有与选择对应缩放级相同的效果。
作为在一实施例中所提供的用户界面功能的其他实例,“点击”或以其他方式选择地图图像805中的一特定部分会使所选位置平移至地图图像805的中心,而“双击”或以其他方式用力的选择地图图像805中的一特定部分则会使所选位置平移至地图图像805的中心且缩放级同时增大。在另一实施例中,“双击”或以其他方式用力地选择地图图像805中的一特定部分会使所选位置平移至地图图像805的中心,而点击或以其他方式选择一位置标记(地图图像805内的标记或者靠近地图图像805的标记)则会打开一与所述标记相关联的信息窗口,且随后点击或以其他方式选择地图图像中的任一部分将会使所述信息窗口关闭。在一实施例中,还支持动态地重新确定地图的大小。例如,当重新确定一显示窗口800的大小时,所述窗口内的地图图像805会重新居中(以便保持处于前一窗口大小中心处的位置),且重新确定地图大小(以便如果新的窗口变小则使其显示一变小的区域,或者如果新的窗口变大则使其显示一变大的区域),而并不会改变缩放级或通常需要向用户的网络浏览器重新传输图像信息。在一实施例中,用户可“抓住”地图图像805的一个角或其他部分(例如通过在鼠标图标正指向所选的角时按下一鼠标按钮)并对其进行“拖动”以重新确定地图图像的大小(例如通过在将鼠标移动至一所选位置的同时按下鼠标按钮并随后释放所述鼠标按钮)。
一个实施例执行鼠标拖动功能,其中可例如通过按下用户的鼠标按钮、将鼠标拖动至一新的位置直至达到所需的地图视图、并随后释放鼠标按钮来平滑地移动地图视图。此外,在一实施例中还实施地图滚动功能,其中可仅通过激活用户键盘上的箭头键或通过类似的用户操作来移动(或“平移”)地图视图。
在一实施例中,向文本输入字段825内输入整个或部分邮政地址便会使地图图像805平移至对应位置并缩放至一缩放级,所述缩放级依赖于所输入的地址的完整性。例如,在输入“6936 Bristol Dr.,Berkeley CA”时会平移至对应位置并将缩放级设定成接近于街道级别,而在仅输入“Berkeley CA”而无更具体的地址信息时则将平移至Berkeley市的中心并将缩放级设定成城市级别。而且,在一实施例中构建有位置轮廓,以便如果用户规定一大体的区域(例如城市、州、或邮政区码)而非具体地址,则可围绕所述大体区域绘制一轮廓以突出显示所述大体区域(例如,如图28中的位置轮廓2810所示)。此种功能可帮助用户测定距离及着重于所关心的区域。此外,在一实施例中,使用者还可定义一组快捷位置(例如“家、”“工作地点”或“祖母家”),当输入或以其他方式选择所述快捷位置时,会在地图图像中引起一“跳”至所需快捷位置的操作(或者如果所请求的位置足够接近当前位置,则引起一“缩放/平移”操作)。
如在图8中所示,一个实施例还构建“信息窗口”功能,其中点击或以其他方式选择一位置标记(例如标记845)便会打开地图图像805内所覆盖的一包含关于该标记所表示位置的更多信息的交互式窗口840及其阴影855。
在一实施例中,除向文本输入字段825内输入要进行地图描绘的单个位置外,用户还可执行组合搜索,其中用户可在单个文本框内规定要搜索的项及要进行地图描绘的位置(例如“San Francisco的影院”或“Mountain View附近的比萨饼店”)。而且,与前面所述的快捷位置相结合,用户可对特定位置命名(例如“家”、“工作地点”)(此既可与也可不与用户计算装置上的地址簿或类似数据库或实用程序相关联),并随后在向文本输入字段825内输入搜索项时(例如当搜索“工作地点附近的酒吧”时)使用这些快捷名称。
一个实施例还通过如图8所示的单个文本输入字段825,或另一选择为,通过一个用于出发位置的文本输入字段及一用于终点位置的第二文本输入字段(如图27中所示的文本输入字段825及828所例示)来构建驾驶方向功能。作为又一实例性替代实施例,也可通过两组具体文本输入字段来构建驾驶方向功能:其中一组用于出发位置字段(例如出发的街道地址、出发的城市,出发的州等等),第二组则用于终点位置字段。无论为何种驾驶方向输入字段界面,本发明的一个实施例均实施对路线信息的客户机侧再现。具体而言,在一实施例中,服务器向客户机计算装置传输逐一转向的文本式方向说明、以及整个路线的图形描述的向量信息。
然后由客户机将所述驾驶方向图形作为一覆盖图再现于此前所再现的地图图像顶上。在另一实施例中,一旦客户机接收到向量信息,客户机便计算路线覆盖图像的图形清晰度并随后向服务器传输一要提供实际的覆盖图像的请求。此外,如在图27中所示,驾驶方向操纵文本2730(例如“从Moffett Blvd.驶出”)可显示于网页800上地图图像805的附近。点击或以其他方式选择其中一个驾驶方向文本便会打开一指向地图图像805中对应部分的信息窗口(例如从往南行驶的US-101到Moffett Blvd.的高速公路斜道)。如在图27中所示,所述信息窗口显示地图图像805中对应部分的放大图。
在一实施例中,信息窗口另外包含一“卫星”按钮或类似的用户界面对象,所述“卫星“按钮或类似的用户界面对象在被点击或以其他方式被选中时,会以相同区域的一对应卫星照片来取代地图的图形式放大图。图形式驾驶方向(即描绘路线的轨迹)也可作为一覆盖图像显示于卫星图片顶上。“卫星“按钮或类似的用户界面对象也可包含于主地图图像805内(或与其相关联),以便在被点击或以其他方式被选中时,所述“卫星”按钮会以相同区域的一对应卫星照片来取代图8中所示的图片类型的地图图像805。
服务器侧架构及地图拼图的产生
在一实施例中,通过在浏览器中将一组预先再现的地图图像“拼图”缝合在一起来显示地图。这些地图拼图是在一离线阶段期间通过如下方式形成:以一预定数量的离散缩放级(例如15个)中的每一缩放级绘制所覆盖的整个地理区域的非常大的地图,然后将这些地图切割成若干个拼图,并将这些拼图编码成一适当的图像格式(例如GIF)。这些预先再现的拼图由一组服务器以静态图像形式提供。例如,为覆盖整个美国大陆,需要上亿张拼图,这些拼图的总的拼图大小约为几百吉字节的数据。并非在需要时根据基础数据来绘制地图图像,而是按分段(拼图)形式预先绘制整个地图,并在需要时将适当的拼图发送至客户机。因此,一般而言,一既定的地图拼图仅需向客户机传输一次。此种方法比传统的系统更加可靠、更快且所需带宽更低。
因此,在一对用户透明的离线过程中,产生所述地图系统所覆盖的整个区域的一组大的、邻接的、预先再现的光栅图像。为每一缩放级(例如自街道级别至国家级别)提供这样的一组光栅图像。在用户的网络浏览器中最终组合及显示的每一地图图像805(如在图8中所示)均与这些大的预先确定的光栅图像之一的一子区域(通常其形状为矩形)相匹配。另一选择为,可通过在地图图像边界上覆盖与环绕地图图像的背景相匹配或相混合的图像来将地图图像边界改变成看起来呈一不同的形状(例如如图8中所示带有圆角的矩形)。
在一实施例中,将缩放级编号为0至Z,其中0代表最接近于街道级别的级别,且Z代表与街道级别相差最远的级别。将所关心区域内的一任意的纬度/经度(“lat/lon”)点指定及定义为原点或起点(例如毗连的美国的地理中心)。然后,在每一缩放级z下,为包含该原点的z级别光栅图像的像素指配三坐标组(0,0,z)。使用其中x轴坐标从左向右增大、y轴坐标从上向下增大的标准计算机图形规约,为每一光栅图像的每一像素指配一唯一的三坐标组(x,y,z)。
在给定缩放级z的情况下,使用一坐标变换例程将一纬度/经度坐标对变换成适当的(x,y,z)像素坐标,反之亦然。此种变换的细节依赖于在最初形成光栅图像时所使用的地图投影。
在一仅当基础地图信息发生很大变化时才需要执行的初始离线阶段(例如每几个月一次)期间,将每一大的光栅图像“切割”成若干矩形拼图。如在图9中所示,在一实施例中,产生及切割大的光栅图像的过程是由拼图制作器结合地图涂画库910及一市售的RME(“增强地图引擎”)库915来协作执行。除其他任务之外,拼图制作器905还确保相邻的子图像拼图沿其公共边界紧密地对齐,尤其是当涉及到标签布置时。在已知地图投影问题为所属领域的技术人员众所周知的条件下,可能需要将地图系统所覆盖的区域划分成若干更小的区域,并分别处理每一更小的区域。
仍参见图9,基础地图数据存储于地图数据存储区域920中。在一实施例中,所存储的地图数据包括已由Telcontar(一数字地图及导航信息的商业提供商)编辑成RMF(增强地图格式)文件的市售的NavTech数据。所属领域的技术人员将知,RMF是一种针对空间查询处理来进行优化的紧凑的二进制格式。除其他任务外,本发明的一实施例还利用此种格式来产生地图图像及形成路线信息。RMF是一种空间格式,其以多维方式来组织数据,以便将在现实中相互靠近的形体一同靠近地存储于数据库中。这意味着一旦找到一在空间上格式化的数据集合中的一个项,便还可相对容易地找到其他靠近的项。所属领域的技术人员将知,还存在许多种用于组织数据的其他方式,例如按顺序组织或分层组织。仍参见图9,在一实施例中,拼图制作器905与地图涂画库910进行通信以请求用于制作拼图的地图数据。地图涂画库910又与市售的RME库915进行通信以从地图数据存储器920中存取信息。所属领域的技术人员将知,RME数据库支持将请求得到涉及两个或多个项的地理关系的信息的空间查询。其实例为“哪些地图形体处于一既定区域内?”或者“哪些具有高于某一阈值的优先级的地图形体处于一既定区域内?”。空间查询的结果通过地图涂画库905传输至拼图制作器905并用于产生地图拼图。该拼图制作过程所得到的地图拼图存储于地图拼图存储区域900中。
为在用户的网络浏览器上重新形成所述大的光栅图像的任一子区域视图作为一地图图像805,在一实施例中,浏览器侧的脚本仅需要使用能一同完全覆盖所需视图的最小的拼图集合。对于任一既定的实施方案而言,可在假定存在如下折衷的情况下,试探地确定拼图的大小:(1)较大的拼图往往会增大为形成一既定视图所需的拼图的总体大小(在像素及字节两方面而言);而(2)较小的拼图往往会增大为形成一既定视图所需的单独HTTP请求的数量。在一实施例中,使用以GIF格式加以存储的一128×128个像素的拼图大小。其他实施例则使用以GIF、JPEG或PNG格式加以存储的256×256个像素的拼图大小。也可使用其他拼图大小及图像存储格式,此视每一特定实施方案的要求而定。在一实施例中,这些拼图由此形成一规则的方形网格,且此种性质有利于系统构建。然而,所属领域的技术人员将知,可使用任何其他能在客户机侧上实现无缝组合的将大的光栅图像划分成任意形状及大小的拼图的划分方式来实现本发明的效果。
另一选择为,并非存储于服务器侧上的一数据库中,在一实施例中,每一拼图可仅存储于一可使用例如以下等唯一的URL来存取的单独的文件中:
http://<域名>/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)坐标。所属领域的技术人员将知,此种对坐标系的特定选择是任意的,且简单地选择成有助于说明在一实施例中所使用的演算法。一般而言,任何相容的坐标系均将满足要求。反过来,每一像素均属于一唯一的拼图,该拼图的坐标可容易地计算出。
前端服务器
在一实施例中,一前端服务器(例如图7中所示的服务器710或者图5中所示的网络服务器510)通过使一网页返回至一隐藏的画面来响应于用户所提交的每一查询,所述隐藏的画面包含由构建于JavaScript中的客户机侧代码所存取的数据。因此,前端服务器710/510与在用户浏览器上运行的基于JavaScript的一组程序交互作用来产生动态的HTML(“DHTML”)代码。通过此种机理,可在客户机计算装置503内实施前面所述的用户界面功能(例如平移及缩放图8中所示的地图视图805),而无需与前端服务器710/510交互作用。而是,如在图5中所示,客户机计算装置503仅须根据需要自拼图服务器520请求及显示拼图,拼图服务器520如上文参照图9所述来提供先前所已产生的拼图集合。
前端服务器710/510的基本工作模式是向在地图显示页面800中在文本输入字段(例如图8中所示的字段825)内输入的用户查询提供响应。当用户提交一查询时,客户机侧JavaScript代码会形成一包含所述查询的内容以及地图视图的当前状态的HTTP请求并将该信息提交给前端服务器710/510,从而指令所形成的页面出现于一隐藏的画面(或“虚拟页面”)中。此种机理使客户机能够接收为构建地图描绘系统(包括地图描绘系统的各种特征)所需的数据,例如(举例而言)用于驾驶方向及其他项的覆盖图像,而无需重新加载主/可见网页,但同时仍能使浏览器的历史及/后退/前进按钮按预期方式工作,以便使用户例如可实施本地搜索、然后得到方向、并向回点击以返回至本地搜索结果。一旦在客户机处加载所述虚拟页面,主页面上的JavaScript便可自所述虚拟页面中拉出所述数据并通过如下方式相应地调整主页面:(1)改变HTML名称;(2)改变搜索形式;(3)使用要在地图图像中显示的拼图的URL来取代拼图网格中的HTML IMG参考符号;(4)平移及/或缩放地图显示;及/或(5)在地图上添加或取代一个或多个覆盖图像。
在一实施例中,识别及处理如下类型的查询:
1)位置查询(例如“Berkeley”)。这些查询包含单个地理位置。响应于此种查询,前端服务器710/510指令客户机将地图平移及/或缩放至该位置并在显示器上标记该位置的边界。例如,在一实施例中,“点”查询(例如对于一特定地址,如在图8中所示)会得到一包括所请求位置的位置标记的显示,而“线”查询(例如对于一特定城市中的一特定街道,而不规定街道号)会得到一其中在地图上将所请求的线突出显示为一覆盖图像的显示,且“区域”查询(例如对于一特定城市,例如“Anytown”)会得到一其中在地图图像上将所请求区域突出显示为一覆盖图像的显示(如在图28中所示)。
2)本地搜索查询(例如“比萨饼店”、“邮局”)。这些查询包含商业场所名称、类别或其他搜索项集合,但不包含地理位置。响应于此种查询,使用所属领域的技术人员所知的技术,前端服务器710/510根据用户对地图的导航或者因查询一位置而得到的定位,在当前地图视图内(或附近)搜索与所述查询相匹配的商业场所,并指令客户机计算装置503在地图图像805上将所述结果显示为一组位置标记845/850,视需要与一与地图图像805相关联的描述由每一标记用符号表示的搜索结果的图例一同显示。
3)合格的本地搜索查询(例如“Palo Alto的比萨饼店”、“San Francisco附近的纯麦苏格兰威士忌”)。这些查询同时包含搜索项及一地理位置。响应于此种查询,前端服务器710/510指令客户机计算装置503平移及/或缩放至所指示位置并在该位置内或周围显示搜索结果。另一选择为,将包含于所述查询中的地理信息变换成纬度/经度点、对该组纬度/经度点实施本地搜索、并随后设定缩放级以确保本地搜索结果中的所有位置均显示于地图图像上(对于结果显示,参见图24,其假定搜索“New York的大寿司”)。
4)驾驶方向查询(例如“从San Francisco至New York,”“从家里到工作地点,”或者“从123 Main St.Los Angeles,CA至801 University Ave.Palo Alto,CA”)。这些查询包含两个不同的地理位置。如前面所述,响应于此种查询,在一实施例中,前端服务器710/510可将路线信息随文本式逐一转向方向一起传输至客户机,客户机可随后在地图图像805中将所述路线显示为一突出显示的覆盖路径。也如前面所述,使用者可通过缩放所述路径的某些部分(例如点击或以其他方式选择特定的驾驶操纵)来与这些文本式方向交互作用,以获得其他的文本式或图形式详细说明。
前端服务器710/510可实施为若干个根据一查询分类器加以选择的不同的逻辑控制流。查询分类器包括一具有一组模板的位置提取器,该组模板界定如何可将一查询串分解成各个组成部分,包括搜索项、地理位置标识符及文字文本。举例而言,一例如“{QUERY}{STANDALONE_CITY}”的模板将与一由用户输入的“比萨饼店palo alto”的简单查询相匹配并引起对Palo Alto,California中心附近的“比萨饼店”的搜索。所述位置提取器能存取一由一组不同类型的位置名称(例如街道名称、城市名称等等)组成的相对大的数据库。
在一实施例中,如在图10中所示,前端服务器710/510还包括一地理编码/地理地图服务器1010,所述地理编码/地理地图服务器1010将一未结构化的位置变换成一结构化的位置加上一可在图8所示地图图像805上标记的地理点/线/区域。还如在图10中所示,地理地图服务器1010协同与下钻(drill-down)服务器1015、地图数据存储区域920、位置数据服务器1000、及本地搜索服务器1010进行通信来处理例如街道地址、街道、交叉点、所关心的点、城市、街区、ZIP代码、县、都市区域、州等等(以及其国际等效名称)地理特征。对于例如街道地址等点特征,变换的结果是单个(纬度,经度)点。而对于例如街道等线特征及例如城市等区域特征,变换的结果是能界定这些特征中每一者的折线(例如对于街道而言)或多边形(例如对于城市而言)。另一选择为,变换的结果可仅为一轴线对齐的边界框。
还如在图10中所示,在一实施例中,前端服务器710/510还包括一用于在一既定地理位置上或周围寻找搜索结果的本地搜索服务器1005。对于例如“paloalto的比萨饼店”等组合查询,本地搜索服务器1005可在等待接收到地理编码/地理地图服务器1010的结果之后执行。对于数字地图描绘系统而言,希望在本地搜索服务器1010内执行一种具有灵活的位置限制定义及距离平化概念的本地搜索计分算法。用户较佳应能够在当前地图视图内搜索与既定的一组查询项相匹配的商业场所。此要求本地搜索代码容许呈最低及最高纬度及经度坐标形式而非仅中心点及半径形式的限制。通常需要某种程度的距离平化。换句话说,地图显示的确切中心处的结果的得分不应高于显示视图中其他位置的结果。例如,对“palo alto的比萨饼店”的搜索不应因其中一个比萨饼店碰巧比另一个更靠近Palo Alto的中心而给予两个Palo Alto比萨饼店不同的计分。
在一实施例中,当前端服务器510/710辨别出一“驾驶方向”查询时,前端服务器会将源地址及目的地地址变换成一组简单的逐一转向方向、以及一规定沿所述路线的(纬度,经度)坐标的折线。前端服务器510/710可随后连同一组包含沿整个路线的向量信息的折线一起,使用XML(例如在一vPage中)将所述逐一转向方向传输至客户机计算装置。在一实施例中,在将该组这些传输至客户机之前,前端服务器会减少传输至客户机的图形数据点的总数(例如使用所属领域的技术人员众所周知的几何运算来消除该组折线中任何当被消除时对整组折线所造成的误差不会高于某一预定阈值(例如一个或两个像素)的数据点),并将每一未被消除的数据点指配到一所界定缩放级使该点变得在视觉上相关的“群组”(例如群组“A”中的数据点可能需要在每一缩放级下均得到显示,而群组“B”中的数据点则在缩放级已升高至超过对应于一城市级视图或更精细的视图等等的缩放级之后才要求显示)。
在一实施例中,开始时,在用户输入一驾驶方向查询之后,地图图像805显示整个所选路线的概略图。用户可随后放大所述路线的某些部分来得到更详细的视图。
在一实施例中,构建一记帐机构来记录用户所请求的地图视图的数量,例如记录一用户已与所述地图视图相关访问了总共多大地图区域。参见前面所述的图8,在地图图像的中心处界定一记帐点860(尽管记帐点860在地图图像805上通常不为一可见特征)。因此,例如,如果地图图像805包括一界定为400个像素宽、400个像素高的区域,则在水平及竖直方向上以400个像素的间隔界定其他记帐点(由此形成一记帐点网格)。因此,在一实施例中,每一地图视图包括至少一次交易。如果用户发起一平移操作,则记帐点网格会随地图一起“移动”,从而每当一新的记帐点进入地图视图时触发额外的记帐交易。例如,如果用户将地图图像向右平移200个像素,则一新的记帐点将进入视图中并触发一次新的交易。在一实施例中,一以一既定缩放级来显示一先前未查看的地图区域的缩放操作也会触发新的交易。在一实施例中,客户机向前端服务器710/510报告交易,前端服务器710/510从所有使用者收集交易信息并将其用于与地图信息的商业提供商进行合同签定之目的。
客户机侧架构及算法
可使用现代网络浏览器中所具有的各种各样的技术来实施本发明的实施例。某些实施例的一常见的图形特征是能够在一“剪辑形状”后面组合一组地图拼图。另外,用户计算装置503处的主机技术应能够相当高效地、动态地改变显示布局。较佳地(但并非必需如此),客户机的网络浏览器应使用一双倍缓冲(或类似)显示器来执行此种动态变化以防止闪烁。例如,DHTML使用一双倍缓冲显示引擎。在一使用DHTML的实施例中,浏览器响应于例如用户输入、HTTP完成及超时等事件来执行脚本功能。在脚本执行期间对网页所作的所有改变均至少以逻辑方式记录于一屏幕外缓冲器中,所述屏幕外缓冲器是在脚本将控制交回至浏览器时加以显示。
如在下文中所更详细说明,根据一实施例的客户机侧算法通常通过对地图拼图布局作出一组改动、并随后请求主机系统显示这些改动所界定的新画面来继续进行。在一实施例中,可使用HTML代码按如下来构建客户机侧的地图显示功能:
<div id=″mapView″style=″position:relative;overflow:hidden;″>
        <div id=″mapDiv″style=″position:absolute;″>
                 <table id=″mapTable″><tbody>
                        <tr><td><img src=″images/bg.gif″></td>
                                ...
                 </table>
        </div>
</div>
在该实施例中,站点上的JavaScript代码通过将恰当的地图拼图放置于mapTable的<img>要素中并通过将mapDiv相对于mapView移动来平移及缩放地图。因此,在该实施例中,客户机侧算法采用两个主要的图形要素。第一个要素是“剪辑形状”(通常为一矩形),通过所述“剪辑形状”,用户将会看到地图图像805,且其界定用户的地图视图的形状。仅出于解释一实施例中的客户机侧算法的目的,将所述剪辑形状中的任一像素指配为其原点(例如在呈一矩形剪辑形状的情况下为左上角像素)。第二个要素是一拼图网格,其大于并放置于所述剪辑形状后面,以使用户仅可看到所述网格的一部分。在此处对一实施例所作说明的其余部分中,应假定该网格为矩形,且其仅在所述剪辑形状改变大小时才改变大小。所属领域的技术人员将知,本文所述的算法存在各种其中该性质并不成立的变化形式。
一般而言,所述剪辑形状相对于网络浏览器窗口800保持固定,而根据本发明各个方面的客户机侧脚本将使拼图网格的位置相对于剪辑形状移动,具体而言,以平移地图图像805。图11例示这两个图形要素,同时图12绘示经由剪辑形状来处理拼图网格以在网页上加以显示的处理结果。如在图11中所示,一方形的5×5拼图网格阵列1100包括25个单独的拼图(每一拼图均由红色的边界线界定)。一方形的剪辑形状1110(显示为黑色矩形)界定所述拼图网格中将作为地图图像显示于客户机的网络浏览器上的子集。在图12中,显示“经剪辑”的拼图网格阵列1200的边界与剪辑形状的边界邻接。如前面所述,图8中所示的地图图像805也是一较大的拼图网格阵列已与一剪辑形状相比较的结果。图13例示可对应于一组所显示图像(例如在图11及12中所示的图像)的基础拼图网格坐标及剪辑形状1305。在图13中,5×5拼图网格阵列1300内25个拼图中的每一个均由唯一的一组拼图坐标表示。
在一实施例中,剪辑形状是一具有300×300个像素固定大小的矩形,并如图8所示位于网页800的中心处。在一实施例中将剪辑形状实施为一样式为“overflow:hidden;position:relative”且id为“mapView”的DIV要素。拼图网格具有5×5个拼图的固定大小。其实施为一id为“mapTable”的TABLE要素。mapTable的25个TD子元素中的每一个均包含单个IMG元素,以使放置一拼图仅需要恰当地改变IMG元素的SRC属性。mapTable元素是一id为“mapDiv”且样式=“position:absolute”的DIV元素的子元素。mapView及mapDiv的POSITION样式使得可仅通过改变mapDiv的LEFT及TOP样式来使拼图网格相对于剪辑形状移动。
一般而言,拼图网格相对于剪辑形状的大小可依赖于下文所述的各种实施方案因素。大体而言,可使用至少为剪辑形状(以像素计)大小(宽度及高度两方面)的两倍的最小拼图网格。同样,视实施方案选项而定,当用户改变剪辑形状的大小或形状时,可能需要动态地改变拼图网格的大小。
出于进行下文实例性说明的目的,使A及B分别表示拼图网格的宽度及高度(以拼图来计)。为拼图网格中的每一位置指配一坐标对(a,b),其中左上角位置的坐标为(0,0)且右下角位置的坐标为(A-1,B-1)。在计算过程中,可能会提到处于拼图网格之外的位置(a,b),即其中a<0或A≤a,或者b<0或B≤b。
在一实施例中所形成的每一地图图像中,剪辑形状与拼图网格之间的交集将等于整个剪辑形状,仅地图拼图通过剪辑形状暴露给用户。在本文件的其余部分中,将此种事实称为“交集条件”。
在上文已作出假定及定义的条件下,人们可通过在剪辑形状的原点处暴露出的地图像素的像素三坐标组(x,y,z)来唯一地指代任一地图视图。
初始化及高速缓存
在一实施例中,假定用户已请求一初始地图视图(x,y,z),并进一步假定对应的地图像素(x,y,z)属于拼图(xx,yy,z),则客户机侧脚本按如下方式进行作业。首先,以任一种不会违背交集条件的方式将拼图网格相对于剪辑形状放置。第二,将(a,b)定义为现在包含剪辑形状原点的拼图网格的位置。第三,在拼图网格中每一与剪辑形状相交的位置(a+a’,b+b’)上,放置拼图(xx+a’,yy+b’,c)。第四及最后,显示所形成的画面。
一般而言,在将一拼图放置于一拼图网格位置上时,通常将使浏览器首先检查所述拼图是否存在于其高速缓存器中,且如果未存在于其高速缓存器中,则发出一请求得到所需拼图的恰当HTTP请求。视一既定实施方案的特定主机技术而言,该HTTP请求可同步地或不同步地执行。本发明的实施例通过鼓励网络浏览器就地高速缓存各个拼图来提高性能。因此,当浏览器侧脚本指令浏览器显示一特定匹配时,浏览器将仅在所述拼图并未早已存在于该浏览器的高速缓存器中时才从HTTP服务器请求所述拼图。通过此种方式,即使在各个分离的视图属于不同的浏览器会话时,本发明的实施例也能因这些分离的地图视图包含重叠的图像而受益。实际上,一旦用户已在在线时查看了某一区域,用户便可在离线时查看同一区域,只要仅需要使用该用户所早已高速缓存的拼图即可。
为实现此种效果,在一实施例中,客户机侧脚本通过一仅依赖于拼图的三坐标组(例如http://somedomain.com/tiles?x=0&y=0&z=0)的URL(“通用资源定位符”)来分别标识每一拼图。一般而言,网络浏览器通过使用一包含于含每一拼图的HTTP响应中的到期时间、及/或通过将浏览器高速缓存器中拼图的最后修改时间与服务器侧上拼图的最后修改时间相比较来管理其高速缓存器。由于这两种方法中的后一种甚至在应使用一得到高速缓存的拼图时也需要使用代价略高的HTTP请求,因而传输拼图的HTTP服务器可配置成报告一冗长的到期周期-此是在已知存在如下折衷的条件下试探性地加以确定:一方面,较长的到期周期往往会使正确得到高速缓存的拼图所需的HTTP请求的数量最少化。另一方面,较短的到期周期会使在大的地图输入光栅发生变化(在实际中,此可用来补充新的道路建造,或者利用对产生所述光栅的地图绘制系统的改良)时更快地使新拼图传播至网络浏览器。
另一选择为,一实施方案可向拼图URL添加一版本号(例如http://www.somedomain.com/tiles?x=0&y=0&z=0&v=1.0),将传输拼图的HTTP服务器配置成报告一在将来尽可能久远的到期日期,并仅在需要传播新的拼图时才使用某种其他用于向浏览器侧脚本传输新拼图版本号的方法。此种替代系统使浏览器对早已得到正确高速缓存的拼图发出的HTTP请求最少化,同时能完全控制何时应使用新的拼图来取代旧的高速缓存的拼图。然而,此种替代系统确实往往会在浏览器侧上使用更大的磁盘空间,因为在浏览器侧上,新的拼图将不会取代旧的拼图。应注意,本发明的实施例并不依赖于特别使用HTTP来将拼图从服务器传输至网络浏览器。也可转而使用浏览器所支持的其他传送协议,例如HTTP或FTP。所属领域的技术人员将知,每一种传送协议可能需要使用略微不同的方法来高速缓存拼图。本发明的实施例还根据最近的平移及缩放操作来执行试探性算法,以预测近期有可能需要哪些拼图、及使用空闲时间及/或带宽将这些拼图传送至浏览器的高速缓存器内。作为一种替代方式,可将空闲时间及/或带宽专用于更新网格中当前不可见的位置、及/或请求那些假若用户请求单级缩放过渡时所将需要的拼图。
图14例示一用于向网络浏览器传输地图拼图并在网络浏览器出就地高速缓存所述拼图的实施例的流程图。在步骤1400处,客户机接收一备选位置(例如,用户可能已向图8中所示的文本输入字段825内输入一要进行地图描绘的位置并随后选择了图8中的搜索按钮830)。接下来,在步骤1405中,客户机计算装置将所述备选位置传输至一位置服务器(例如图10中所示的位置数据服务器1000、图5中所示的位置数据服务器520、或者图7中所示的服务器710)。所述位置服务器然后在步骤1410中剖析所述备选位置,从而产生位置数据。在步骤1415中,客户机自所述位置服务器接收该位置数据,且在步骤1420中,客户机使用所接收位置数据来形成一拼图请求。对于所述拼图请求中的每一拼图,客户机均判定所请求的拼图是否早已存储于本地中。具体而言,在步骤1425中,客户机判定所请求的拼图是否早已存储于本地中。
如果所述拼图早已存储于本地中,则在步骤1435中,客户机从其本地存储器中检索所述拼图。或者,如果所述拼图未早已存储于本地中,则在步骤1430中,客户机从一拼图服务器(例如图5中所示的拼图服务器515)检索所述拼图。在步骤1440中,一旦已从本地或远程拼图存储器中检索到所请求的拼图,即对其进行显示。接下来,在步骤1445中,确定下一拼图请求。如果在所述请求中还存在更多的拼图(在步骤1450中所作判定),则所述过程环回至步骤1425,在步骤1425中判定新的所请求拼图是否早已存储于本地中。或者,如果在所述请求中不再存在更多的拼图,则所述过程在步骤1455中结束。
应注意,大多数目标主机技术均提供对不同步HTTP请求的利用。此种特征使客户机侧脚本能够在一平移过渡期间将一拼图放置于拼图网格中、并随后在所述拼图实际到达之前开始移动拼图网格,从而暂时地向用户显露错误的拼图(或者,另一选择为,显露一空的空间或空拼图)。一般而言,视既定实施方案的特定要求而定,可认为此种不同步性比因在移动地图之前始终等待所有新的拼图而可能引起的冗长的延迟更为可取。在某些实施例中,在发出不同步请求之前使用一与地图背景颜色具有同种颜色的静态拼图(且可能几乎始终处于浏览器的高速缓存器中)来取代拼图网格中旧的拼图。另一选择为,一更为复杂的实施方案可等待至所有新的拼图均已到达或者某个短的超时周期(首先出现的一个)到期时才开始移动地图。在此种实施方案中,将仅在超时情形中使用单一颜色的拼图。
覆盖图像
根据一实施例,可在客户机侧上将除基本地图图像以外的所有额外信息(例如驾驶路线、特定位置)绘制成覆盖图像并置于地图顶上。此种方法可用于所有额外信息,此意味着服务器不需要根据需要使用特定的额外信息来绘制任何地图。例如,可使用覆盖图像来显示位置标记及路线、突出显示街道及特定区域。所属领域的技术人员将知,可按不同的方式(例如通过图像或向量)来构建覆盖图像。例如,客户机侧JavaScript可在地图显示顶上放置HTML元素。就前面所述的代码片断而言,所有覆盖元素均可放置于mapDiv中,以使其可在mapDiv移动时随地图自动地移动。这些覆盖元素中的某些可能在初次加载所述网页时即已处于HTML代码中(其中styele=″display:none″)中,而其他覆盖元素则可在以后通过JavaScript代码添加。
图15例示一可根据一实施例用于将驾驶方向在地图图像上显示为一覆盖图像的流程图。在步骤1500中,客户机以一种前面早已说明的方式从用户接收一驾驶方向请求。在步骤1505中,客户机将所请求的行进方向信息传输至一位置服务器。在步骤1510中,如前面参照对前端服务器的功能的说明所述,所述位置服务器剖析所述行进方向信息。在步骤1515中,客户机从所述位置服务器接收文本式地理行进方向数据,如前面所述。在步骤1520中,客户机确定为在一地图图像上显示一覆盖的驾驶方向路线轨迹而需要的向量。在步骤1525中,客户机根据图14所述的流程图再现基本的地图图像(如果尚未实施该步骤),如前面所述。在一实施例中,在步骤1528中,客户机随后在基本地图图像上将驾驶方向路线轨迹显示为一覆盖图像。在另一实施例中,并非进行至步骤1528,而是在步骤1530中,客户机根据在步骤1520中由客户机计算的向量信息从所述位置服务器请求一行进方向图像覆盖。在该实施例中,在步骤1535中,所述位置服务器形成一行进方向图像并将其传输至客户机。最后,在该实施例中,在步骤1540中,客户机将最终行进方向图像覆盖于所述地图图像上。在图26中显示一带有一所覆盖驾驶方向图像的实例性的所显示地图图像。
在某些实施方案中,某些特定的网络浏览器(例如Mozilla/Firefox)可能无法如上文所述来绘制向量图形。在此种实施方案中,例如图10中所示的地理地图服务器1010等资源可产生一覆盖位图图像(例如对于一与一组驾驶方向相关联的折线),且随后浏览器可将该透明的图像合成至所述地图图像上。由于在本实例中浏览器直接从地理地图服务器1010请求该图像,因而所述请求是通过一URL而非一协议缓冲器来作出。可将所述线的宽度及颜色规定为地理地图服务器1010的命令行选项。
平移
在一实施例中,可按如下方式执行地图图像平移操作。首先,假定用户已请求在同一缩放级上从一个地图图像(x,y,z)平移至一新的地图图像(x’,y’,z),并假定所述平移应在n个画面(其中n=1表示从旧的视图向新的视图的切换应在单个步骤中进行,同时越高的n值表示所述切换应呈现为一越平滑、越呈动画式的平移)内形成动画。此外,假定在如下意义上,相对于拼图网格的大小而言,这两个地图视图相互“接近”:在x轴及y轴两者上,这两个视图之间的距离加上剪辑形状的大小小于拼图网格的大小(按像素计)。
在上述假定及定义的基础上,将拼图网格的“向下旋转”操作定义为取底部行并使其变成顶部的行、并随后将所形成的网格布置成使其余位置相对于剪辑形状保持其原有位置。同样,将“向上旋转”定义为使顶部的行变成底部的行,将“向左旋转”定义为使左侧的列变成右侧的列,且最后将“向右旋转”定义为使右侧的列变成左侧的列。这些旋转操作用于其中移动所述拼图网格原本将违背交集条件的情形中。当然,还存在其他可实现相同效果的方式(例如通过使网格中的每一拼图移动一个位置),但人们发现上面的操作定义是高效的。因此,客户机侧脚本按如下方式进行。首先,令(dx,dy)=(x,y)-(x’,y’),并令(a,b)表示拼图网格中现在包含剪辑形状原点的位置。第二,对于每一对于任一介于1与n之间的整数i,如果使拼图网格移动一偏移量i*(dx,dy)/n则会与剪辑形状相交的位置(a+a’,b+b’),将拼图(xx+a’,yy+b’)放置于位置((a+a’)模A,(b+b’)模B)处。第三,如果需要,旋转所述拼图网格,直至将所述拼图网格移动一偏移量(dx,dy)将不会违背交集条件为止。第四,对于介于1与n之间的每一i,均将所述拼图网格移动一偏移量(dx,dy)/n并显示所形成的画面。视主机系统的效率而定,可能需要在各个画面之间暂停某个时间周期。所属领域的技术人员将知,可颠倒第二步骤与第三步骤在该过程中的次序。此外,还应注意,通过假定n等于1而在第二步骤中得到的略微放宽将会产生接近正确的呈现(尽管当平移既不水平也不竖直时某些中间画面可能缺少几个拼图)。所属领域的技术人员还将知,上述过程将沿邻接的地图图像提供平滑的平移。
图16绘示一用于根据一实施例执行地图图像平移操作的流程图。在步骤1600中,客户机从用户接收一指示一平移事件的命令(例如通过激活如图8中所示的方向控制对象815)。在步骤1605中,客户机实际上使剪辑查看程序相对于基础地图拼图移动。然后,在步骤1610中,客户机确定作为平移操作的结果而新需要的拼图的位置。一旦已确定出所述位置,客户机便在步骤1615中使用该位置数据来形成一拼图请求。最后,在步骤1525中,客户机根据在图14中所示及前面所述的过程来获得任何所需的拼图。
图17至21例示一根据一实施例向西平移剪辑形状宽度的1/3的实例性过程。图17绘示在前面所述过程的第二步骤中更新拼图之前地图图像及拼图网格的状态,而图18则绘示在已完成该更新步骤之后的状态。图19绘示在已根据前面所述的第三步骤执行一次“向右旋转”操作之后的状态,而图20则绘示在已在第四步骤中显示几个画面之后的状态。最后,图21绘示在平移过程完成之后的最终状态。
所属领域的技术人员将知,越大的网格一般会允许使用上述过程平滑地提供越长的平移。在一实施例中,使用一略大于剪辑形状大小的两倍的网格的实施方案选项能实现高达当前地图视图大小的平滑的平移。为执行更长的平移而不增大拼图网格的大小,可将整个平移操作简单地划分成一系列更小的平移操作,尽管该方法可能会造成略微不平滑的呈现。
以上的实例性平移操作算法是在呈现动画中的甚至第一个画面之间更新所有必需的拼图。此种方法可在用户作出请求的时刻与地图实际开始的时刻之间引入一小的延迟。为解决该问题,一实施方案可选择将一n-画面的平移划分成比如n个单独的1-画面平移。然而,此种技术本身可能会造成不平滑的呈现,这是因为为形成每一画面所需的工作量可能会随要求更新的拼图的数量而变化很大。一种更复杂的实施方案通过预测性地更新将来的画面所需的拼图以使需要更新的拼图数量在各画面之间变均匀来解决该问题。
缩放
在一实施例中,“缩放”是指在两个视图(x,y,z)与(x’,y’,z’)之间的过渡,其中z≠z’,且其中相对于剪辑矩形的大小而言,对应于这两个视图的纬度/经度值相互接近。下文说明着重于在如下意义上围绕一纬度/经度“锚固点”的“垂直”的缩放操作:包含所述锚固点的像素在这两个视图中的每一个中均占据剪辑形状中的同一像素。通常,缩放操作中的锚固点可为剪辑形状的中心,但其也可为一位置标记(例如图8中所示的标记845)的纬度/经度、对应于用户所选像素的纬度/经度、或者一地图图像内的任一其他位置。应注意,可将使平移与缩放操作相结合的过渡组合于某些实施方案中。
一般而言,就拼图更新而言,缩放是比平移代价更高的操作,这是因为必须更新与剪辑形状相交的每一拼图。出于此种原因且由于一平滑的动画式缩放需要进行代价高昂的图像按比例缩放操作,因而一实施例仅通过执行前面所述的初始化步骤在单个画面中执行所有缩放。
下文说明概述一种根据一实施例向用户提供平滑的动画式缩放操作的方法,此种方法可用于某些实例性的主机技术(例如Flash及JavaApplets)中。为简明起见,假定两个缩放级z与z’之间的按比例缩放因数差恰好为2,即z’=z+1,且期望在n个动画画面中提供过渡。在此处的说明中,“最终画面”是指通过仅使用上文所述的初始化步骤在单个画面中进行缩放所将产生的画面。另外,令s(按比例缩放因数)等于2的n次根。
在作出这些定义及假定的基础上,一种缩放算法的一实施例按如下方式进行。首先,组合(但不显示)最终画面。第二,对于介于1与n-1之间的i:(a)将最终画面所需的拼图按因数s^(n-i)进行按比例缩放;(b)将经过按比例缩放的拼图布置成使锚固点正确定位;及(c)显示所形成的画面并在需要时包含一暂停。第三,显示最终画面。
另一选择为,如果z’=z-1,则可按下文所述对当前视图中的拼图而非最终视图中的拼图进行按比例缩放。首先,如上文所述,组合(但不显示)最终画面。第二,对于介于1与n-1之间的i:(a)将当前视图中的拼图按因数s^(i)进行按比例缩放;(b)将经过按比例缩放的拼图布置成使锚固点正确定位;及(c)显示最终画面并在需要时包含一暂停。
应注意,在上文所述的两种实施方案中的第二步骤((a)部分)中,仅须对在执行第二步骤的(b)部分之后将最终通过剪辑形状显露出的拼图进行按比例缩放,还应注意,可将第二实施方案中的第一步骤推迟至第三步骤。在这两种实施方案中,均使用较高缩放级的拼图来形成所有中间画面,这是因为在较高缩放级中为覆盖相同地理区域所需的拼图较少。一种更复杂的替代实施方案力图使用来自较低缩放级的拼图、或者通过将来自当前画面与最终画面二者的经过按比例缩放的拼图进行α混合以形成一“幻影”状效果来形成某些中间画面。此外,可将跨越多个缩放级的缩放过渡实施为一系列单级过渡。
图22绘示一根据本发明一实施例执行一缩放操作的实例性流程图。在步骤2200中,客户机接收一缩放行为事件(例如激活一缩放控制对象820,如在图8中所示)。在步骤2205中,客户机确定缩放后的显示的中心。然后,在步骤2210中,客户机使用所确定的中心位置数据以新的缩放级来形成一拼图请求。最后,客户机根据前面参照图14所示的过程来再现缩放后的地图。
滑动及跳跃
在下文说明中,将考量在仅进行平滑缩放及平移时在相距过远的地图视图之间的过渡。例如,一当前的地图视图可显示Berkeley,California的一条街道,但用户可能选择一导航快捷位置或者请求得到Manhattan,New York的一条街道的视图。此处提供两种用于此种情形的实例性方法,其称为“滑动”及“跳跃”。
根据一实施例的“滑动”方法,客户机侧脚本组合最终视图并(通常利用一单独的拼图网格)使其相对于旧视图从新视图的方向平滑地滑动至当前视图上。另一选择为,根据一实施例的“跳跃”方法,客户机侧脚本首先缩放、然后平移、并最终再缩小回目标视图。客户机侧脚本缩放至对于每一特定实施方案的要求而言使所述平移足够短(按像素计)的最低缩放级并以所述最低缩放级实施平移。一更复杂的实施例将此种“框形”运动(即放大、平移、缩小)变换成一更平滑的曲线形运动。所属领域的技术人员将知,与“滑动”方法相比,所述“跳跃”方法需要数量大得多的拼图及更多的计算资源。
重新确定大小
主要根据环绕地图视图的网站而定,用户可请求地图视图改变大小及/或形状。根据一实施方案中如何使拼图网格的大小与剪辑形状的大小相关的选项而定,该请求又可能需要重新确定拼图网格的大小。此种作业存在许多种可能的实施方案,包括但不限于如下实施方案。假定当前视图为(x,y,z),对应的像素属于拼图(xx,yy,z),且对剪辑形状大小的重新确定应围绕其原点进行。则第一步骤是重新确定剪辑形状的大小/形状。接下来,如果需要,则将拼图网格的大小移动及增大(例如通过在底部增加一行及/或在右侧增加若干列)至为不违背交集条件所需的最小大小。接下来,令(a,b)表示拼图网格中现在包含剪辑形状原点的位置。在下一步骤中,在拼图网格中与剪辑形状相交的每一位置(a+a’,b+b’)上,放置拼图(xx+a’,yy+b’,z)。接下来,显示画面。最后,如果需要,则增大拼图网格的大小(例如通过在底部增加若干行及/或在右侧增加若干列),以使拼图网格再次至少为剪辑形状大小的两倍。可如前面所述使用与形成平移过渡动画相同的技术来形成重新确定大小过渡的动画。此外,还应注意,如果在一特定实施方案中需要,则可将增大拼图网格的最终步骤组合入移动及增大拼图网格大小的初始步骤中。所属领域的技术人员将知,在上文说明中原点是任意选取的,且通常人们无法指望该条件成立。然而,所属领域的技术人员可容易地调整上文所述的步骤来计及此种额外的复杂度。
位置标记
如前面所述,根据一实施例,可将位置标记(连同例如信息窗口等其他对象一起)覆盖于地图图像上并带有阴影,此使得更易于标识其相对位置。在一实施例中,可将阴影绘制成看起来仿佛所述位置标记竖直地站在一倾斜45°角度、被拉伸一等于2的平方根的因数并投影回一竖直平面上的地图上一般。此种阴影可使位置标记看起来已按三维方式放置于地图上,此种特征有助于用户以一种更精确的方式识别所述位置标记所指向的位置、并还有助于防止多个标记相互干扰。另外,可使用一含有覆盖至地图图像上的防混淆标记的α通道由PNG文件来表示位置标记。图23绘示一根据本发明一实施例将一组位置标记覆盖至地图图像上的实例性流程图。在步骤2300中,客户机从用户接收对基于位置的信息的请求。然后,在步骤2305中,客户机以前面所已说明的方式将所述请求传输至一位置服务器。在步骤2310中,位置服务器剖析所述请求。接下来,在步骤2315中,客户机从位置服务器接收基于位置的信息。然后,在步骤2325中,客户机检索要覆盖至或以其他方式放置至地图图像上的标记及阴影图像(就地检索或从远程位置服务器检索)。在步骤2330及2335(如果在一特定实施方案中需要,则可将其颠倒)中,客户机将阴影及标记分别放置至地图图像上(例如通过将其覆盖至地图图像上)。图24绘示一根据本发明各个方面的具有多个所覆盖位置标记(标记为“A”至“J”,其显示文本字段825中一对“New York的大寿司店”的实例性请求的结果)的实例性地图显示网页。
作为覆盖图像的另一实例,图27绘示一根据本发明各个方面覆盖有一驾驶方向路线轨迹的实例性地图显示网页。图27包括一用于指示所需出发地址的第一文本输入字段825、一用于指示终点地址的第二文本输入字段828、一对应于所需驾驶方向的突出显示的所覆盖路线轨迹2710、对应的一组文本式驾驶方向2730、指示驾驶方向终点的一位置标记845及其阴影855、一指示驾驶方向出发点的类似位置标记及其阴影855、及一显示所述路线上一特定的所需操纵(例如“从Moffett Blvd.驶出”)的详细地图视图2725的信息窗口2720及其阴影855。类似地,图28绘示一根据本发明各个方面覆盖有一区域边界轨迹的实例性地图显示网页。
图29绘示一根据本发明一实施例在地图图像上覆盖一组信息窗口(例如图8中所示的信息窗口840及其阴影855)的实例性流程图。在步骤2900中,客户机接收用户对位置信息的选择(例如,如果用户选择一作为驾驶方向查询的结果而产生的驾驶操纵)。在步骤2905中,客户机根据所述位置信息形成对应的HTML代码。例如,可通过使用XSLT(一种常用的脚本语言,其可在Internet Explorer或其他市售网络浏览器中得到)将包含所述位置信息的XML代码变换成HTML来形成HTML代码。然后,可将所形成的HTML代码插入一表格(例如图26A中所示的HTML表格2605)内。然后,在步骤2910中,客户机为随后将覆盖至地图图像上的HTML窗口边界的各固定部分获得一组预先再现的段(例如图26A中所示的一第一拐角段2610、一第二拐角段2612、一第三拐角段2614、一第四拐角段2615、及一指向段2622)。在步骤2915中,客户机将这些预先再现的段相连接以形成所述信息窗口边界的非固定部分。例如,可通过在各个预先再现的段之间产生一条线,例如通过如图26A中所示的连接线2620,来确定信息窗口的外边界。然后,在步骤2920中,如在下文中所述,客户机确定并获得一组将随后覆盖至地图图像上以产生信息窗口阴影图像的固定部分的预先再现的段。在步骤2922中,也如在下文中所述,客户机将这些预先再现的段相连接以填充信息窗口阴影图像的其余部分。
图26B显示一用于与一信息窗口一起使用的信息窗口阴影2625(例如图8及27中所示的要素855)、及其基本组成部分的实例。阴影图像2625可动态地形成,以使其成正比地对应于如上文所述形成的信息窗口2600的动态大小。一种用于动态地形成一阴影图像2625的实例性方法可如下文参照图26B所述来进行。阴影图像2625的高度可设定为信息窗口2600的高度的一半。如在图26B中所示,HTML表格阴影2625的大小确定成使其可包含包括所述阴影的模糊轮廓(如果存在)在内的所述阴影的高度的一半。所述信息窗口的倾斜的竖直线(例如线2635)可通过使其以一预定角度(例如45度的角度)偏斜而形成,以与等角投影图相一致。例如,将偏移线2635设定为45度的角度。可在客户机或服务器中通过使用一剪辑矩形来仅显示一预先再现的倾斜阴影线中的所需部分而形成这些倾斜的线。客户机还确定一组预先再现的阴影图像拐角段及指向段。在图26B中,例如,可从服务器或就地获得一信息窗口阴影框拐角段2640及一信息窗口阴影指向段2645。在根据信息窗口2600的大小确定出阴影图像的边界之后,及在获得并剪辑恰当的预先再现的段之后,便可确定并绘制其余连接线。
也可对阴影图像进行填充来形成一阴影状外观,例如在图26B中所示。为进一步增强阴影状外观,可使阴影图像中最接近信息窗口底部的部分最暗及/或最明显,同时在阴影图像中的所述部分越远离信息窗口底部时使填充部分逐渐变亮及/或模糊。
重新参见图29,在步骤2925中,客户机将阴影覆盖至地图图像上。最后,在步骤2930中,客户机将信息窗口覆盖至地图图像上。如从图8、26A、26B及27中的实例中可见,此种方法会形成一当随其阴影一起显示于数字地图上时会整体上看起来呈三维形式的信息窗口。视需要,可通过如下方式增强三维外观:将多个拼图窗口布置成使各信息窗口从北向南布置,以便还提供一种深度感。也可具有其他选项,例如将各信息窗口从东向西布置。当在地图上布置不止一个标记时,也可使用此种方法。
参见图25,可使用一种类似的技术为一位置标记2500产生倾斜的阴影2505。
图30绘示一根据本发明一实施例重新确定一地图图像显示窗口的大小的实例性流程图。在步骤3000中,客户机接收一关于改变地图图像显示窗口大小的通知(例如作为用户作出重新确定窗口大小的动作的结果)。然后,在步骤3005中,客户机确定地图图像窗口的中心。接下来,在步骤3010中,客户机判定窗口大小是否已增大。如果已增大,则在步骤3025中,客户机确定为填充新的额外空间而可能需要的任何新地图拼图的身份,且在步骤3030中,客户机从其本地高速缓存器或从一远程服务器中请求这些新的拼图。在步骤3035中,客户机将这些新的拼图放置于一拼图表格阵列中并显示新的地图图像。或者,如果在步骤3010中客户机判定出窗口大小已减小,则在步骤3015中,客户机成正比地减小剪辑形状窗口的大小。最后,在步骤3020中,客户机使剪辑形状窗口重新居中于地图图像中心处。
高分辨率打印
从传统地图网站上打印地图图像通常所得到的输出较差,这是因为地图视图是以屏幕分辨率来呈现的,而屏幕分辨率的数量级常常低于现代打印机的分辨率数量级。然而,某些主机技术(包括在一实施例中所使用的DHTML)有利于使用其分辨率适合于打印的地图拼图来组合地图视图。因此,在一实施例中,为获得地图图像的更高品质的硬拷贝,可使用具打印分辨率的拼图来重新组合地图视图。由于一个实施例使用HTML IMG元素将拼图放置于拼图网格中,因而可使用同一地图拼图的两个图像来分别用于显示及打印目的:其中一个图像(例如screen_tile.gif)的大小为128×128个像素,而另一个图像(例如print_tile.gif)的大小为512×512个像素。图31绘示根据本发明一实施例具有不同的分辨率以用于实现地图图像的高品质打印的一组实例性地图图像拼图。所属领域的技术人员将会注意到,图31中所示的第三个图像表现为第一个图像的一高分辨率的形式。借助此种观察结果,响应于来自用户的打印请求,可使用具打印分辨率的拼图来重新组合当前的地图视图来获得优异的打印输出。
用于执行本文中所述及所示流程图中各步骤的软件及/或硬件可构建于计算装置503上及/或与服务器510、515及520或图中未显示的其他计算装置或服务器的任意组合上,例如由一连接于计算装置503与网络505之间的因特网服务提供商服务器来构建。而且,所例示的各个方块可按不同的次序执行而并非必需按所例示的确切顺序来执行。此外,不相关的各个作业可并行地执行。
所属领域的技术人员应一目了然,在各图中所例示的实施方案中,上文所述的各实施例的各个方面可实施于许多不同形式的软件、固件及硬件中。用于实施根据本发明原理的各个方面的实际软件代码或专用控制硬件并不会限定本发明。因此,在对各实施例某些方面的运行以及行为进行说明时未提及特定的软件代码一应了解,所属领域中的一般技术人员将能够根据本文的说明设计出用于实施这些方面的软件及控制硬件。此外,各实施例的某些部分可实施为能执行一种或多种功能的“逻辑”。此种逻辑可包括例如应用专用集成电路或现场可编程门阵列等硬件、软件、或者硬件与软件的组合。
上文已对某些实例性实施例进行了说明并在附图中进行了显示。然而,应了解,这些实施例仅为例示性而非限定性实施例。本发明不应仅限于所明确揭示的特定构造及布局,因为所属领域的技术人员将会联想出各种其他修改形式。

Claims (31)

1、一种用于显示一数字地图的方法,其包括:
将一位置请求从一客户机侧计算装置发送至一地图拼图服务器;
响应于所述位置请求而接收一组地图拼图;
将所述所接收地图拼图组合成一拼图网格;
使所述拼图网格相对于一剪辑形状对齐;及
显示所述对齐的结果作为一地图图像。
2、如权利要求1所述的方法,其进一步包括响应于用户输入,通过相对于所述拼图网格移动所述剪辑形状来平移所述地图图像。
3、如权利要求2所述的方法,其进一步包括接收一第二组地图拼图并将所述第二组地图拼图插入所述拼图网格内。
4、如权利要求1所述的方法,其进一步包括:
响应于一要得到一缩放的图像的用户请求,获得一第二组地图拼图;
将所述第二组地图拼图组合成一第二拼图网格;及
使所述第二拼图网格相对于所述剪辑形状对齐并显示所述对齐的结果作为一缩放的地图图像。
5、如权利要求1所述的方法,其中使所述第二拼图网格相对于所述剪辑形状对齐并显示所述对齐的结果作为一地图图像进一步包括:
获得与所述位置请求相关联的标记信息;
将所述标记信息与所述拼图网格相组合;及
使组合后的拼图网格相对于所述剪辑形状对齐并显示所述对齐的结果作为一地图图像,所述地图图像具有一三维地图的外观。
6、如权利要求1所述的方法,其中显示所述对齐的结果作为一地图图像进一步包括将所述控制按钮覆盖至所述地图图像上。
7、一种用于显示一数字地图的设备,其包括:
产生构件,其用于产生一组与一根据数字地图数据形成的地图相关联的地图拼图;
解译构件,其用于解译从一客户机接收到的备选位置数据,所述备选位置数据包含位置信息;
确定构件,其用于根据所述备选位置数据来确定所述位置信息;及
提供构件,其用于将与所述位置信息相关联的所请求地图拼图提供至所述客户机。
8、如权利要求7所述的设备,其中所述用于根据所述备选位置数据来确定所述位置信息的构件包括用于剖析所述备选位置数据的构件。
9、如权利要求7所述的设备,其进一步包括用于向所述客户机提供覆盖对象的构件。
10、如权利要求7所述的设备,其中所述用于将与所述位置信息相关联的所请求地图拼图提供至所述客户机的构件包括用于从所述客户机接收一地图拼图请求的构件,所述地图拼图请求包含地图拼图标识符。
11、如权利要求11所述的设备,其中所述地图拼图标识符与所述位置信息的纬度及经度及一所请求的缩放级相关联。
12、如权利要求7所述的设备,其进一步包括用于接收一要得到标记信息的请求的构件。
13、如权利要求7所述的设备,其进一步包括:
接收构件,其用于接收一要得到与所述位置信息相关联的驾驶方向的请求;及
传输构件,其用于传输一与所述驾驶方向相关联的图像覆盖,所述图像覆盖能够与一和所述位置信息相关联的数字地图相整合。
14、如权利要求7所述的设备,其进一步包括:
确定构件,其用于确定一与所述所请求位置信息相关联的图像覆盖;及
传输构件,其用于将所述图像覆盖传输至所述客户机,所述图像覆盖能够与一和所述位置信息相关联的数字地图相整合。
15、一种计算机程序产品,其包括:
一其中收录有用于形成一数字地图的计算机可读程序代码的计算机可用媒体,所述计算机程序产品中的所述计算机可读程序代码包括:
用于接收备选数据的计算机可读程序代码,所述备选数据包含指示一所需位置的信息;
用于根据所述备选数据接收位置数据的计算机可读程序代码,所述位置数据指示所述所需位置的实际位置;
用于获得一与所述所需位置相关联的第一地图拼图及一靠近所述第一地图拼图的第一组地图拼图的计算机可读程序代码;
用于组合所述第一地图拼图及所述第一组地图拼图以使所述所需位置大体位于一剪辑形状的中心附近的计算机可读程序代码;及
用于输出所述组合后的地图拼图的计算机可读程序代码。
16、如权利要求15所述的计算机程序产品,其中所述用于组合所述第一地图拼图及所述第一组地图拼图以使所述所需位置大体位于一剪辑形状的中心附近的计算机可读程序代码包括:
用于将所述第一地图拼图与所述第一组地图拼图组合成一拼图网格的计算机可读程序代码;及
用于将所述剪辑形状定位于所述拼图网格上方以使所述剪辑形状的所述中心大体位于所述第一地图拼图的所述所需位置上方的计算机可读程序代码。
17、如权利要求16所述的计算机程序产品,其进一步包括用于获得与所述所需位置相关联的标记信息的计算机可读程序代码。
18、如权利要求17所述的计算机程序产品,其中所述标记信息包括一信息窗口。
19、如权利要求18所述的计算机程序产品,其中根据与所述所需位置相关联的信息量来动态地形成所述信息窗口的大小及形状。
20、如权利要求19所述的设备,其中所述标记信息进一步包括一标记阴影,其中根据所述信息窗口的所述大小及形状来动态地形成所述标记阴影的大小及形状。
21、如权利要求18所述的设备,其进一步包括用于获得及显示一个或多个位于所述组合后的地图拼图上方的控制对象的计算机可读程序代码。
22、一种用于确定及提供一数字地图的设备,其包括:
发送构件,其用于将一位置请求从一客户机侧计算装置发送至一地图拼图服务器;
接收构件,其用于响应于所述位置请求而接收一组地图拼图;
组合构件,其用于将所述所接收地图拼图组合成一拼图网格;
对齐构件,其用于使所述拼图网格相对于一剪辑形状对齐;及
显示构件,其用于显示所述对齐的结果作为一地图图像。
23、如权利要求22所述的设备,用于将一位置请求从一客户机侧计算装置发送至一地图拼图服务器的构件包括用于将所述位置请求变换成一地图拼图请求的构件。
24、如权利要求23所述的设备,其中所述用于将所述位置请求变换成一地图拼图请求的构件包括:
接收构件,其用于接收与所述位置请求相关联的一纬度值及一经度值;及
变换构件,其用于将所述纬度值及所述经度值变换成一拼图标识号。
25、如权利要求24所述的设备,其中所述拼图标识号是以一组与一数字地图相关联的拼图的一原点为基准。
26、一种用于在一数字地图上显示信息的方法,所述方法包括:
从一用户接收位置数据;
根据所述位置数据从一服务器获得一数字地图;
获得一与所述位置数据相关联的信息标记;
获得一与所述信息标记相关联的信息标记阴影;
将所述信息标记及所述信息标记阴影覆盖于所述数字地图上,以形成一三维地图的外观;及
显示所述数字地图及所述所覆盖信息标记及信息标记阴影。
27、如权利要求26所述的设备,其中获得一与所述位置数据相关联的信息标记及获得一与所述信息标记相关联的信息标记阴影包括:
形成一与所述位置数据相关联的HTML窗口;
根据所述HTML窗口的大小来形成一信息窗口;及
根据所述信息窗口的大小来形成一信息标记阴影。
28、如权利要求26所述的设备,其进一步包括:
获得与用户动作相关联的控制命令;及
将所述控制命令覆盖于所述等角投影数字地图上。
29、一种用于形成一能够用于一基于拼图的数字地图系统中的基于拼图的数字地图数据库的设备,所述设备包括:
用于获得数字地图数据的构件;
用于根据所述数字地图数据来形成一数字地图的构件;及
用于将所述数字地图变换成地图拼图的构件。
30、如权利要求29所述的设备,其进一步包括用于将所述地图拼图变换成位图图像的构件。
31、一种用于显示一数字地图的方法,其包括:
将一位置请求从一客户机侧计算装置发送至一地图拼图服务器;
响应于所述位置请求而接收一组地图拼图;
将所述所接收地图拼图组合成一拼图网格;及
通过将一剪辑形状定位于所述拼图网格内来产生一地图图像。
CN2005800139121A 2004-03-23 2005-02-05 数字地图描绘系统 Active CN101014831B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310295921.0A CN103398718B (zh) 2004-03-23 2005-02-05 数字地图描绘系统
CN201310302294.9A CN103398719B (zh) 2004-03-23 2005-02-05 数字地图描绘系统

Applications Claiming Priority (5)

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
PCT/US2005/003832 WO2005104039A2 (en) 2004-03-23 2005-02-05 A digital mapping system

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN201310302294.9A Division CN103398719B (zh) 2004-03-23 2005-02-05 数字地图描绘系统
CN201310295921.0A Division CN103398718B (zh) 2004-03-23 2005-02-05 数字地图描绘系统

Publications (2)

Publication Number Publication Date
CN101014831A true CN101014831A (zh) 2007-08-08
CN101014831B CN101014831B (zh) 2013-08-21

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 After (1)

Application Number Title Priority Date Filing Date
CN2005800135120A Active CN101156158B (zh) 2004-03-23 2005-03-23 在数字地图描绘系统中产生并提供拼图的系统和方法

Country Status (2)

Country Link
CN (2) CN101014831B (zh)
CA (3) CA2953656C (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101825471A (zh) * 2009-03-05 2010-09-08 株式会社电装 地图数据更新装置
CN102222314A (zh) * 2010-04-15 2011-10-19 微软公司 用并行处理从源位图标识并提取模式来加速位图远程发送
CN102509183A (zh) * 2011-10-19 2012-06-20 武汉元宝创意科技有限公司 一种利用信息技术建立捐助者与被捐助者感情关联的方法
CN102054388B (zh) * 2009-11-03 2013-01-23 厦门雅迅网络股份有限公司 一种接收和显示地图的方法
CN103137008A (zh) * 2011-11-30 2013-06-05 上海博泰悦臻电子设备制造有限公司 地图的显示方法及装置,车载系统
CN103943026A (zh) * 2014-04-24 2014-07-23 深圳市赛速科技有限公司 一种基于像素距离的目标点自动排布方法
CN103959279A (zh) * 2011-09-26 2014-07-30 谷歌公司 基于移动设备生成的事件分析的地图瓦片数据预取
CN104221008A (zh) * 2011-12-12 2014-12-17 谷歌公司 沿路线预取地图图块数据
CN104236547A (zh) * 2014-10-07 2014-12-24 谭希妤 基于惯性导航系统的建筑物内部电子地图的方法与系统
CN104423783A (zh) * 2013-09-02 2015-03-18 联想(北京)有限公司 信息传输的方法及电子设备
CN104520851A (zh) * 2012-08-10 2015-04-15 微软公司 基于电子表格应用中的数据点生成查询
CN104949681A (zh) * 2009-12-14 2015-09-30 通腾德国股份有限公司 用于对多个地图构建基块中的对象进行交叉参考及去除重复的方法及系统
CN103137008B (zh) * 2011-11-30 2016-12-14 上海博泰悦臻电子设备制造有限公司 地图的显示方法及装置,车载系统
CN106777374A (zh) * 2009-01-30 2017-05-31 赫力环球有限公司 用于交换不同数据格式下的位置内容数据的方法和系统
CN106973257A (zh) * 2016-01-07 2017-07-21 麦恩电子有限公司 用于传送视频图像的方法和系统
CN107450860A (zh) * 2017-08-15 2017-12-08 湖南安存科技有限公司 一种基于分布式存储的地图文件预读方法
CN113008265A (zh) * 2012-06-05 2021-06-22 苹果公司 用于3d地图的虚拟相机
US11068513B2 (en) 2016-11-04 2021-07-20 Intergraph Corporation Feature management for web map tile services
US11956609B2 (en) 2012-06-05 2024-04-09 Apple Inc. Context-aware voice guidance

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100131586A1 (en) * 2008-11-25 2010-05-27 Jeyhan Karaoguz Activity overlaid mapping services
JP5812576B2 (ja) * 2010-04-16 2015-11-17 ソニー株式会社 情報処理装置及びそのプログラム
KR20130080163A (ko) * 2012-01-04 2013-07-12 삼성전자주식회사 클라이언트의 전자 지도 표시 방법 및 장치
US10094680B2 (en) * 2015-04-13 2018-10-09 Google Llc Dynamically controlling map viewport in view of user signals
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 中国地质大学(北京) 一种特教用汉盲双语标注触觉地图拼图教具的制作方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321158B1 (en) * 1994-06-24 2001-11-20 Delorme Publishing Company Integrated routing/mapping information
US5559707A (en) * 1994-06-24 1996-09-24 Delorme Publishing Company Computer aided routing system
US5742297A (en) * 1994-11-04 1998-04-21 Lockheed Martin Corporation Apparatus and method for constructing a mosaic of data
IL117053A0 (en) * 1995-05-01 1996-06-18 Motorola Inc A display method for data images
US5870097A (en) * 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
CN1204102A (zh) * 1998-06-04 1999-01-06 中国地图出版社 电子地图中的图象处理方法
EP0967556A2 (en) * 1998-06-26 1999-12-29 Hewlett-Packard Company Flat image delivery server
CN1141669C (zh) * 2001-12-30 2004-03-10 上海交通大学 数字道路地图自动生成滚球法
WO2003090184A1 (fr) * 2002-04-22 2003-10-30 Dgs Computer Procede et dispositif permettant le dessin d'une carte altimetrique numerique

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106777374A (zh) * 2009-01-30 2017-05-31 赫力环球有限公司 用于交换不同数据格式下的位置内容数据的方法和系统
CN101825471B (zh) * 2009-03-05 2012-12-12 株式会社电装 地图数据更新装置
CN101825471A (zh) * 2009-03-05 2010-09-08 株式会社电装 地图数据更新装置
CN102054388B (zh) * 2009-11-03 2013-01-23 厦门雅迅网络股份有限公司 一种接收和显示地图的方法
CN104949681A (zh) * 2009-12-14 2015-09-30 通腾德国股份有限公司 用于对多个地图构建基块中的对象进行交叉参考及去除重复的方法及系统
CN104949681B (zh) * 2009-12-14 2018-04-20 通腾德国股份有限公司 用于对多个地图构建基块中的对象进行交叉参考及去除重复的方法及系统
CN102222314A (zh) * 2010-04-15 2011-10-19 微软公司 用并行处理从源位图标识并提取模式来加速位图远程发送
CN102222314B (zh) * 2010-04-15 2016-02-10 微软技术许可有限责任公司 用并行处理从源位图标识并提取模式来加速位图远程发送
CN103959279A (zh) * 2011-09-26 2014-07-30 谷歌公司 基于移动设备生成的事件分析的地图瓦片数据预取
CN103959279B (zh) * 2011-09-26 2017-03-15 谷歌公司 基于移动设备生成的事件分析的地图瓦片数据预取
CN102509183A (zh) * 2011-10-19 2012-06-20 武汉元宝创意科技有限公司 一种利用信息技术建立捐助者与被捐助者感情关联的方法
CN103137008A (zh) * 2011-11-30 2013-06-05 上海博泰悦臻电子设备制造有限公司 地图的显示方法及装置,车载系统
CN103137008B (zh) * 2011-11-30 2016-12-14 上海博泰悦臻电子设备制造有限公司 地图的显示方法及装置,车载系统
CN104221008A (zh) * 2011-12-12 2014-12-17 谷歌公司 沿路线预取地图图块数据
US11956609B2 (en) 2012-06-05 2024-04-09 Apple Inc. Context-aware voice guidance
CN113008265A (zh) * 2012-06-05 2021-06-22 苹果公司 用于3d地图的虚拟相机
CN104520851A (zh) * 2012-08-10 2015-04-15 微软公司 基于电子表格应用中的数据点生成查询
US10008015B2 (en) 2012-08-10 2018-06-26 Microsoft Technology Licensing, Llc Generating scenes and tours in a spreadsheet application
US9881396B2 (en) 2012-08-10 2018-01-30 Microsoft Technology Licensing, Llc Displaying temporal information in a spreadsheet application
US9996953B2 (en) 2012-08-10 2018-06-12 Microsoft Technology Licensing, Llc Three-dimensional annotation facing
CN104423783A (zh) * 2013-09-02 2015-03-18 联想(北京)有限公司 信息传输的方法及电子设备
CN103943026A (zh) * 2014-04-24 2014-07-23 深圳市赛速科技有限公司 一种基于像素距离的目标点自动排布方法
CN104236547A (zh) * 2014-10-07 2014-12-24 谭希妤 基于惯性导航系统的建筑物内部电子地图的方法与系统
CN106973257A (zh) * 2016-01-07 2017-07-21 麦恩电子有限公司 用于传送视频图像的方法和系统
CN106973257B (zh) * 2016-01-07 2021-11-26 麦恩电子有限公司 用于传送视频图像的方法和系统
US11068513B2 (en) 2016-11-04 2021-07-20 Intergraph Corporation Feature management for web map tile services
CN107450860A (zh) * 2017-08-15 2017-12-08 湖南安存科技有限公司 一种基于分布式存储的地图文件预读方法

Also Published As

Publication number Publication date
CA2820299A1 (en) 2005-11-03
CN101156158A (zh) 2008-04-02
CA3021979A1 (en) 2005-11-03
CN101014831B (zh) 2013-08-21
CA2953656C (en) 2018-11-27
CA3021979C (en) 2023-09-26
CA2820299C (en) 2017-02-21
CA2953656A1 (en) 2005-11-03
CN101156158B (zh) 2011-08-31

Similar Documents

Publication Publication Date Title
CN101014831B (zh) 数字地图描绘系统
US10475157B2 (en) Digital mapping system
US7827507B2 (en) System to navigate within images spatially referenced to a computed space
US20090116764A1 (en) Method of constructing panoramic electronic map service
KR20200051295A (ko) 분양 정보를 포함한 지도를 제공하는 방법 및 컴퓨터 프로그램
KR20030015765A (ko) 인터넷상에서 파노라마사진을 제공하는 방법 및 시스템
CA2562203A1 (en) Internet census geographic information system (gis) and method of applying census data to geographic mapping applications
Halim WebGD: framework for web-based GIS/database applications

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