CN103959339A - 使用条带化以优化三维瓦片视图中的地图渲染 - Google Patents
使用条带化以优化三维瓦片视图中的地图渲染 Download PDFInfo
- Publication number
- CN103959339A CN103959339A CN201280059532.1A CN201280059532A CN103959339A CN 103959339 A CN103959339 A CN 103959339A CN 201280059532 A CN201280059532 A CN 201280059532A CN 103959339 A CN103959339 A CN 103959339A
- Authority
- CN
- China
- Prior art keywords
- map
- plane
- zoom
- checking
- level
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- 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/36—Level of detail
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Computing Systems (AREA)
- Instructional Devices (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种图形或者图像渲染***(比如地图图像渲染***)确定将显示的地图表面的查看窗口。该方法主要确定地图表面的查看边界集合,其中查看边界集合将基于深度尺度范围将地图表面划分成多个查看条带。该方法然后确定用于每个查看条带的不同的缩放级别地图数据并且基于查看条带和缩放级别地图数据渲染地图表面的三维显示。
Description
技术领域
本公开内容涉及图像渲染***、比如电子地图显示***并且更具体地涉及将地图表面渲染为具有不同分辨率数据的深度条带的集合的图像渲染***。
背景技术
随着计算机地图绘制(mapping)工具和地图绘制应用的广泛使用,消费者对于现成访问地图数据的需求继续高速增长。尽管消费者已经开始希望快速访问地图数据,但是为了允许这些地图绘制应用而需要的地图数据巨量带来在设备层面和在网络层面二者对数据管理的重负。这一重负可能限制通常需要相对大量网络数据的地图绘制应用的有效性。
地图绘制应用可见于包括汽车导航***、手持GPS单元、移动电话和便携计算机的多种移动设备中。这些应用属于最常使用的应用并且被一些人视为个人安全所必需。虽然下层数字地图从用户的角度来看易于使用,但是创建数字地图是数据密集的过程。每个数字地图从与数以百万计的街道和路口对应的原始数据集开始。该原始地图数据是从多种来源得到的,每个来源提供不同数量和类型的信息。有效地在地图上绘制位置、对在源与目的地之间的行驶路线进行定位、标识兴趣点等需要大量数据。另外,许多地图绘制应用需要在不同的缩放级别、对不同比例的不同地图数据的显示,其中细节的量和该细节的性质在每个缩放级别改变。例如,在距目标最远缩放的最低缩放级别,地图数据可以包含大陆、海洋和主要板块的边界。在后续缩放级别,该地图数据可以标识国家、州、本土、受保护国或地区、其它主要地理地区。而在甚至进一步后续缩放级别,该地图数据可以包含主要公路、城市、城镇,直至地图数据根据地区最终包含次要公路、建筑物下至甚至人行道和走道。细节的量取决于用来在每个缩放级别构造地图数据的信息的来源。但是无论缩放级别如何,信息量都是庞大的并且一般过大而无法全部存储在移动设备上并且过大而无法通过无线通信网络连续下载。
在操作中,地图绘制应用通常通过无线通信网络并且响应于用户录入兴趣位置和/或基于移动设备的当前位置、比如用于设备的当前全球定位卫星(GPS)数据或者当前蜂窝网络位置数据向移动设备下载地图数据。一种用于下载地图数据的常规技术是让移动设备向在无线通信网络上的远程处理器传达这一位置数据,该远程处理器作为响应向移动设备下载所有地图数据或者被请求用于向用户显示的地图数据。
地图数据一般可以存储在称为地图数据瓦片的块中,其中地图数据瓦片数目随着缩放级别增加。远程处理器向移动设备提供用于特定位置或者地区的可用地图数据瓦片的子集用于存储并且经由地图显示应用在任何特定时间显示。通过提供大量地图数据瓦片,移动设备可以缓冲地图数据用于在消费者使用地图绘制应用跨越区域滚动从而寻找相邻或者其它地图绘制位置时向消费者显示。然而在任何特定时间提供的地图数据瓦片的较大数目在用户使用地图显示应用之时增加下载时间和缓冲器存储器使用。
可能用低效方式下载和高速缓存地图数据瓦片,该低效方式可能未利用为了在不同查看角度渲染地图表面的不同部分而必需的地图数据的阈值级别的差异。这可以在渲染三维地图时尤其如此,该三维地图具有在使地图表面的各个查看深度暴露的角度倾斜的查看窗口。作为结果,需要具有用于取回(例如下载)和/或渲染地图数据(具体为地图数据瓦片)的更智能机制以充分满足三维地图的视觉要求而不浪费带宽和处理服务。
发明内容
一种用于在显示设备上渲染地图的计算机实施的方法确定地图表面的查看窗口,查看窗口由包括相对于地图的表面而言的大小、定位、方向和放大率的参数集限定。该方法确定地图表面的查看边界集合,其中查看边界集合基于深度尺度范围将地图表面划分成多个查看条带。第一查看条带对应于地图表面在第一深度范围处的前景,并且第二查看条带对应于地图表面在第二深度范围处的背景。该方法然后确定用于渲染查看条带集合中的每个查看条带的地图数据密度。用来渲染两个或者更多个查看条带的地图数据密度互不相同。该方法然后基于查看窗口、查看条带和用于每个查看条带的不同的密度地图数据在显示设备上显示地图表面的三维图像。
在一个实施例中,从显示设备内取回地图数据,而在另一实施例中,从显示设备之外取回地图数据。在一个实施例中,将地图数据存储为用于多个缩放级别的地图数据瓦片,每个缩放级别是地图数据瓦片的覆盖相同或者相似大小区域的集合。较高密度地图数据是指每单位区域包含比较低缩放级别数据的较低密度地图数据更大数目的地图数据瓦片的较高缩放级别数据。在一个实施例中,请求地图数据,从而高缩放级别数据用来渲染第一查看条带并且低缩放级别数据用来渲染第二查看条带。在一个实施例中,改变查看窗口的方向调整查看条带的大小。
在另一实施例中,一种计算机设备包括通信网络接口、一个或者多个处理器、耦合到一个或者多个处理器的一个或者多个存储器和耦合到一个或者多个处理器的显示设备。一个或者多个存储器包括在处理器上执行的用于确定地图表面的查看窗口的计算机可执行指令。该计算机可执行指令被执行以请求用于渲染地图表面的地图数据。执行计算机可执行指令以接收用于渲染地图表面的第一条带的第一缩放级别数据。该计算机可执行指令被执行以接收用于渲染地图表面的第二条带的第二缩放级别数据。该计算机可执行指令被执行以基于查看窗口、查看条带以及接收的第一和第二缩放级别地图数据在显示设备上显示地图表面的三维图像。
根据另一实施例,一种计算机设备包括通信网络接口、一个或者多个处理器、耦合到一个或者多个处理器的一个或者多个存储器和耦合到一个或者多个处理器的显示设备。一个或者多个存储器包括在处理器上执行的用于接收对用于给定的查看窗口的地图数据的请求。该计算机可执行指令被执行以确定用于查看窗口的第一查看条带的第一缩放级别数据,其中第一缩放级别数据提供用于第一查看条带的第一地图数据密度。该计算机可执行指令被执行以确定用于查看窗口的第二查看条带的第二缩放级别数据,其中第二缩放级别数据提供用于第二查看条带的第二地图数据密度,并且其中第一地图数据密度不同于第二地图数据密度。该计算机可执行指令被执行以创建具有第一查看条带和第二查看条带的地图表面的图像。该计算机可执行指令被执行以发送地图表面的图像。
附图说明
图1是实施在服务器中存储的地图数据库与一个或者多个地图图像渲染设备之间的通信的地图成像***的高级框图。
图2是用来使用地图矢量数据来渲染地图图像的图像渲染引擎的高级框图。
图3图示可以在图1的地图数据库中使用的数据结构的一部分。
图4A、4B和4C分别图示地图数据在三个不同缩放级别的示例渲染。
图5图示从在地图平面之上的相机的查看窗口操纵。
图5A、5B和5C图示地图数据在三个不同倾角处的示例渲染。
图6A和6B图示地图数据在不同倾角处的示例渲染并且包括用于限定不同查看条带的边界。
图7图示用于渲染地图表面、比如图6A和6B的地图表面的过程的过程流程图。
图8图示用于客户端计算机设备的过程流程图。
图9图示用于服务器计算机设备的过程流程图。
图10图示用于服务器计算机设备为客户端生成地图图像的过程流程图。
图11图示可以在显示设备上渲染的在零倾角处的地图表面的俯视图。
图12图示具有不同缩放级别的地图数据瓦片的在零倾角处的地图表面的俯视图。
图13图示使用来自单个缩放级别的地图数据瓦片的地图表面的倾斜视图。
图14图示处于一个角度的查看平面和地图平面的透视图。
图15A-E图示在不同倾角处的图14的查看平面和地图平面的一部分。
图16图示使用来自不同缩放级别的地图数据瓦片的地图表面的倾斜视图。
具体实施方式
一种用于减少计算机设备在瓦片视图中显示地图时将取回和处理的地图数据的量的技术确定用于显示地图表面的多个深度条带并且将不同的缩放级别数据用于在每个深度条带内渲染地图。该技术识别为了渲染条带而需要的缩放级别数据的差异并且选择性地取回用于每个条带的不同缩放级别数据。由于每个缩放级别数据集对应于不同的地图数据密度(缩放级别与每单位区域的地图数据瓦片的特定数目相对应),所以在较低缩放级别渲染地图表面的一部分减少对于渲染地图表面的数据和处理要求。该技术允许计算机设备仅选择用于地图的每段的必需地图数据级别(缩放级别数据)以减少取回和/或处理的地图数据的总量。
现在参照图1,与地图有关的成像***10包括在服务器14中或者在例如位于中央地点或者在各种间隔开的地点的多个服务器中存储的地图数据库12,并且也包括多个地图客户端设备16、18、20和22,每个地图客户端设备存储和实施地图渲染设备或者地图渲染引擎。地图客户端设备16-22可以经由任何硬接线或者无线通信网络25连接到服务器14,该硬接线或者无线通信网络例如包括硬接线或者无线LAN、MAN或者WAN、因特网或者其任何组合。地图客户端设备16-22可以例如是移动电话设备(18)、计算机如膝上型、桌面型或者其它类型的计算机(16,20)或者其它成像***的部件、如汽车导航***(22)的部件等。另外,客户端设备16-22可以经由任何适当通信***、比如任何公开可用或者私人拥有的通信网络——包括使用基于硬接线的通信结构、比如电话和线缆硬件和/或无线通信结构、比如无线通信网络、例如包括无线LAN和WAN、卫星和蜂窝电话通信***等的通信网络——通信地连接到服务器14。
地图数据库12可以存储任何所需类型或者种类的地图数据,该地图数据包括光栅图像地图数据和矢量图像地图数据。一般而言,由矢量数据限定的图像对象中的每个图像对象将具有与之关联的多个顶点,并且这些顶点将用来经由客户端设备16-22中的一个或者多个客户端设备向用户显示与地图有关的图像对象。
也将理解,客户端设备16-22中的每个客户端设备包括图像渲染引擎,该通信网络具有一个或者多个处理器30、一个或者多个存储器32、显示设备34,并且在许多情况下包括光栅化器或者图形卡36,该光栅化器或者图形卡一般以已知方式被编程和互连用于实施或者在关联显示设备34上渲染图形(图像)。用于任何特定客户端设备16-22的显示设备34可以是任何类型的电子显示设备、比如液晶显示器(LCD)、发光二极管(LED)显示器、等离子体显示器、阴极射线管(CRT)显示器或者任何其它类型的已知或者适当电子显示器。
一般而言,图1的与地图有关的成像***10操作使得用户在客户端设备16-22之一处打开或者执行地图应用(在图1中未示出),该地图应用操作用于经由服务器14与地图数据库12通信并且从地图数据库12获得地图信息或者与地图有关的数据、然后基于接收的地图数据显示或者渲染地图图像。地图应用可以允许用户查看在地图数据库12中存储的地图数据的不同地理部分、放大或者缩小特定地理位置、旋转、扭转或者改变显示的地图的二维或者三维查看角度等。更具体而言,在使用以下描述的***在显示设备或者显示屏幕34上渲染地图图像时,客户端设备16-22中的每个客户端设备从地图数据库12以矢量数据的形式下载地图数据并且使用一个或者多个着色器(shader)来处理该矢量数据以在关联显示设备34上渲染图像。
现在参照图2,更具体图示与客户端设备16-22之一关联或者由客户端设备16-22之一实施的图像生成或者成像渲染设备40。图2的图像渲染***40包括两个处理器30a和30b、两个存储器32a和32b、用户接口34以及光栅化器36。在这一情况下,处理器30b、存储器32b和光栅化器36被设置在分离的图形卡(在水平线以下表示)上,但是这在所有实施例中情况无需如此。例如在其它实施例中,可以代之以使用单个处理器。此外,图像渲染***40包括网络接口42、通信和存储例程43以及一个或者多个地图应用48,该一个或者多个地图应用在其中具有在存储器32a上存储的可以在处理器30a上执行的显示逻辑。类似地,一个或者多个图像着色器以例如顶点着色器44和片段着色器46的形式存储在存储器32b上并且在处理器30b上被执行。存储器32a和32b可以包括易失性和非易失性存储器二者,并且例程和着色器在处理器30a和30b上被执行以提供以下描述的功能。网络接口42包括操作用于经由硬接线或者无线通信网络例如与图1的服务器14通信以获得矢量数据形式的图像数据用于在用户接口或者显示设备34上创建图像显示时使用的任何熟知软件和/或硬件部件。图像渲染设备40也包括数据存储器49,该数据存储器可以例如是缓冲器或者易失性存储器,该数据存储器存储从地图数据库12接收的矢量数据,该矢量数据包括如以下更具体描述的任何数目的顶点数据点和一个或者多个查找表。
在操作期间,地图应用48的地图逻辑在处理器30上执行以例如使用用户输入、GPS信号、预存的逻辑或者编程等来确定需要经由显示设备34向用户显示的特定图像数据。应用48的显示或者地图逻辑使用通信例程43、通过经过网络接口42与服务器14通信来与地图数据库12交互以从地图数据块12优选地以矢量数据或者压缩的矢量数据的形式获得地图数据。这一矢量数据经由网络接口42被返回并且可以由例程43解压和存储在数据存储器49中。具体而言,从地图数据库12下载的数据可以是将使用的最终矢量数据的紧凑、结构化或者另外优化的版本,并且地图应用48可以操作用于使用处理器30a将下载的矢量数据变换成特定顶点数据点。在一个实施例中,从服务器14发送的图像数据包括矢量数据并且可能包括一个或者多个查找表,该矢量数据一般限定用于顶点集合的每个顶点的数据,这些顶点与将在屏幕34上显示的多个不同图像元素或者图像对象关联。如果希望,则查找表可以用矢量纹理贴图的形式被发送或者可以被解码成矢量纹理贴图的形式或者可以由地图应用48生成为矢量纹理贴图的形式,这些矢量纹理映射是已知类型的数据文件,这些数据文件通常限定特定纹理或者色域(像素值)以作为使用矢量图形而创建的图像的部分被显示。更具体而言,用于每个图像元素或者图像对象的矢量数据可以包括与组成图像的特定元素或者对象的一个或者多个三角形关联的多个顶点。每个这样的三角形包括三个顶点(由顶点数据点限定),并且每个顶点数据点具有与之关联的顶点数据。在一个实施例中,每个顶点数据点包括顶点位置数据以及属性引用,该顶点位置数据限定顶点在参考或虚拟空间中的二维或者三维定位或者位置。每个顶点数据点还可以包括其它信息、比如对象类型标识符,该对象类型标识符标识顶点数据点与之关联的图像对象类型。这里也称为样式引用或者特征引用的属性引用是引用或者指向下载并且在数据存储器43中存储的查找表中的一个或者多个查找表的位置或者位置集合。
一般而言,地图数据块12中的用于特定地理地区的地图数据可以不同的缩放级别存储,其中每个缩放级别由称为地图数据瓦片的多个地图数据块形成,这些地图数据块用来在不同细节级别构造地图的可视显示。图3图示地图数据库12的一部分的示例数据结构200。用于特定地理地区的地图数据以许多(n种)不同的缩放级别数据结构202A、202B和202C(仅示出这些缩放级别数据结构中的三种缩放级别数据结构)存储,其中每种数据结构由多个地图数据瓦片形成。作为出于说明目的而编号的仅有数据结构的数据结构202B示出在由18个地图数据瓦片204A-204R形成的缩放级别z=2用于特定或者固定地理地区的地图数据。地图数据瓦片代表用于构造地图显示的基本构建块。每个地图数据瓦片包含用于构造地图显示的部分的必要地图数据,该地图数据包括标识各种地图对象或者地图特征(比如公路、建筑物)和地理边界(如水线、国家线、城市边界、州线、山脉、公园等)的数据。用于地理地区的地图数据可以用任何数目的不同缩放级别数据结构存储以提供针对特定地理地区的不同细节级别。在一个实施例中,共计19个缩放级别存储在地图数据库12中。
在每个缩放级别用于固定地理地区的瓦片数目随着缩放级别编号增加而例如线性地、二次地、指数地或者另外地增加。所示示例中的缩放级别(z=1、2和5)分别具有覆盖相同地理区域或者地区的6、18和60个地图数据瓦片。由于地图数据瓦片数目对于相同区域随着缩放级别增加而增加,所以缩放级别可以视为与每单位区域的瓦片数目对应的地图数据密度。较高的缩放级别一般需要每单位区域较多的瓦片、因此提供比较低缩放级别更高的地图数据密度。
在所示实施例中,所有地图数据存储在地图数据瓦片中,并且在缩放级别数据结构中的每个地图数据瓦片被分配以相同或者相似的存储器分配大小。例如每个瓦片204A-204R可以是大小为10千字节的位图图像。这可以例如通过让每个地图数据瓦片覆盖相同大小的地理区域来实现。对于包含矢量数据的地图数据瓦片,用于每个瓦片的数据大小可以变化,但是在一些实施例中仍然每个瓦片可以向被分派以相同的最大存储器空间。虽然未图示,但是在其它实施例中,数据瓦片可以在每种缩放级别数据结构内具有不同的存储器空间分配。在一些实施例中,每个地图数据瓦片包含以位图格式存储的地图数据,而在其它实施例中,地图数据瓦片可以包含以矢量格式存储的地图数据。
图4A-4C图示例如可以在用户接口134上完全或者部分显示的可视地图显示,其中每幅图提供在不同缩放级别的可视显示。在所示实施例中,图4A提供在由覆盖相同大小地理区域并且具有相同存储器大小的量的系列地图数据瓦片302-318构造的示例缩放级别z=6的可视地图显示300。
在操作中,服务器14能够在这些地图数据瓦片限定的数据组块中向相应客户端16-22发送地图数据。例如为了发送为了构造地图显示300所需的地图数据,服务器14可以在具有首部部分和有效载荷部分的帧中发送每个地图数据瓦片,该首部部分提供帧的标识数据(比如地理定位、客户端设备地址、地图数据瓦片版本号等),该有效载荷部分包含将在形成可视显示时使用的特定地图数据瓦片数据。地图数据瓦片提供一种用于量化在地图数据库12中存储的地图数据并且用于量化地图数据通过网络25向客户端16-22的通信的有效机制。
与图4A比较,图4B图示在比图4A的缩放级别更高的缩放级别、在这一示例中为缩放级别z=10的示例地图显示400。地图显示400由多个地图数据瓦片402-432形成。类似于地图数据瓦片302-318,地图数据瓦片402-432各自大小相同、例如覆盖地理区域的相同大小并且具有相同的存储器大小。图4C图示在由地图数据瓦片形成的第三甚至更高的缩放级别、缩放级别z=12的另一可视地图显示500。
显示300、400和500中的每个显示是包括多得多的地图数据瓦片的全部地图数据的一部分。如贯穿4A-4C所示,形成每个可视地图显示的地图数据瓦片具有各种细节级别。瓦片302-308图示地理边界、但是没有公路、仅有高速路和/或州际公路,而图4C的瓦片在更高缩放级别并且包含关于公路、建筑物、公园、终点等的信息。
随着缩放级别增加、即随着固定大小的可视地图显示向下聚焦于更小的地理地区,地图数据的量可以达到最大点,超出该最大点,所有缩放级别将包含相同的地图数据。为了构造地图显示所需的地图数据瓦片数目可以变化,但是地图数据总量变成饱和。与这一点对应的缩放级别称为饱和缩放级别并且代表如下缩放级别,在该缩放级别提供用于地理地区的所有公路、建筑物、公园、终点和其它地图数据元素。用户选择的任何附加缩放级别仅进一步放大这些现有地图数据元素而不取回附加的地图数据瓦片。在图4A-4C的所示示例中,缩放级别z=12代表饱和缩放级别。
尽管用户与可视地图显示300、400和500交互,但是用户可能希望到处滚动以显示在所示地图数据附近的其它地图数据。因此,客户端设备16-22使用***以取回并且存储充分量的地图数据以形成可视地图显示而在客户端设备16-22处缓冲附加地图数据以允许与该显示的高效用户交互。
在计算机地图绘制应用中,查看窗口可以对应于指向地图绘制的表面的假想相机的视图。例如,查看窗口的定位可以对应于相机相对于表面并且更具体为将作为地图而描绘的表面而言的物理定位,其中查看窗口方向一般对应于相机(例如视线)朝着地图表面的方向。
图5图示在尺寸x和d限定的平面表面502之上的高度h定位的相机501。相机能够沿着尺寸d和h限定的平面504倾斜或者旋转。相机501从沿着h尺寸远离朝着平面504向下的直线的角度提供入射角度阿尔法。通过倾斜相机501来改变入射角度(阿尔法)向查看窗口暴露地图表面的不同区域。具体而言,对于图5中所示平面502,零入射角度可以显示平面表面502的区域A1,第一倾角(非零入射角度)可以显示平面表面502的区域A2,并且第二倾角(大于第一倾角)可以显示平面表面502的区域A3。对于固定相机定位并且因此对于固定查看窗口定位,从倾斜的查看窗口方向的每个改变暴露由对应深度范围D1至D3限定的不同区域A1至A3,其中D1与相机定位或者查看窗口定位最近,并且D3距查看窗口定位最远。
一般而言,用于渲染三维瓦片地图的技术涉及到确定地图表面的查看窗口、确定在查看窗口内可显示的地图表面的深度条带集合并且选择性地使用来自不同缩放级别的地图数据以渲染用于深度条带中的每个深度条带的地图表面,其中前景深度条带可以使用比每个后续深度条带更高的缩放级别数据,直至使用最低缩放级别数据的最后或者背景深度条带。
图5A图示地图表面600的由上至下透视。图5A的查看窗口可以对应于图5中的区域A1的相机视图,其中相机定位于地图表面之上的特定海拔或者高度处,其中查看方向在零入射角度处。地图表面、比如图5A中所示地图表面一般由除了如以上讨论的定位和方向之外还具有大小和放大级别(magnification level)的查看窗口限定。
图5A的由上至下视图在可以由显示设备的物理大小(例如显示屏幕的物理大小)或者由在显示设备上执行的显示应用限定的查看屏幕上被提供,其中显示屏幕的物理大小的仅一部分被用来显示地图表面。例如,一些地图绘制应用可以保留显示屏幕的一部分用于渲染其它地图数据或者提供在地图绘制应用外部的计算机***信息。
另外,在显示屏幕上可查看的地图表面的区域可以依赖于查看屏幕的放大率(magnification)。查看窗口的放大率可以描述地图表面被渲染的比例。地图一般按比例来绘制,该比例被表达为比率、比如1:1,000,这意味着在查看窗口上的任何测量单位确切地或者近似地对应于1,000个实际单位。例如在其中以英寸为单位测量查看窗口的情况下,距离比例可以将查看窗口的一英寸转化成1,000英里(或者公里)的长度。尽管未示出比例,但是图5A按特定放大率或者比例来绘制。
类似于改变相机上的缩放级别,一些计算机化的地图允许用户放大或者缩小地图表面(一般意味着增加或者减少地图表面的比例),其中缩放级别一般对应于放大率。然而根据地图绘制应用,可以有缩放级别和放大级别的功能差异。在一些地图绘制应用中,改变缩放级别可以涉及到简单地改变放大率或者比例而不使用附加地图数据以重新绘制或者重新渲染地图。在地图绘制应用、比如使用这里描述的技术的地图绘制应用中,改变缩放级别可以涉及到改变比例和取回附加地图数据(例如用于给定的区域的附加地图数据瓦片)二者以用更多数据(通常涉及到更多特征数据)并且因此用更多细节重新绘制地图的一部分。作为示例,在增加地图表面的放大率而不取回附加缩放级别数据瓦片时,表示为块的建筑物将简单地被显示为扩大的块。在增加放大率并且取回附加缩放级别数据时,相同建筑物可以被显示为扩大的块、但是具有附加子特征、比如窗户、柱门等。
在关于这里描述的技术提及缩放级别改变时,缩放级别改变一般是指取回附加地图数据或者地图数据瓦片的缩放。在任何情况下,图5A图示地图表面600的由上至下透视(也称为鸟瞰视图、俯视图或者高空视图)。这一视图一般可以代表常见二维视图而没有沿着地图表面的深度透视。在另一方面,图5B图示地图表面的由上至下透视,其中查看窗口的方向已经被向上倾斜(相对于地图表面),从而查看入射角度非零。图5B的查看定位和放大率与图5A的查看定位和放大率相同。相似地,图5C图示地图表面的由上至下透视,其中查看窗口的方向已经比图5B的方向更加倾斜,但是其中查看定位和放大率相对于图5A和5B保持不变。
图6A图示具有与图5B的入射角度相似的微小入射角度的由上至下透视图,该透视图具有将屏幕划分成各自与地图的分离区域对应的深度条带604、606的条带边界602。深度条带可以用来划分地图表面的子区域,其中不同的地图数据级别可以用来渲染或者显示地图。在一个实施例中,用来渲染前景条带604的地图数据可以使用比用于背景条带606的地图数据更高的缩放级别数据(例如每单位区域更多的地图瓦片)。如图6A中所示,这可以被感知为比背景图像更精细(更高分辨率)的前景图像。由于对于背景比前景取回更少地图数据,所以用来渲染图6A的过程可以需要比对于背景和前景二者取回单个高密度数据更少的处理器容量和更少的数据取读。
图6B图示具有比图6A更大的入射角度的由上至下透视并且与图5C的视图相似,其中两个条带边界610、612将屏幕划分成各自与地图的区域对应的深度条带614、616、618。查看定位和放大率与图6A相同,其中仅查看方向(入射角度)被改变。与图6A相似,不同密度的地图数据可以用来渲染图6B的每个条带。比在每个后续条带616、618中使用的地图数据更高密度、更高缩放级别的地图数据可以用来渲染前景条带614,其中低数据密度、低缩放级别地图数据用来渲染背景条带618。中间条带616可以具有上条带614和下条带618的地图数据缩放级别和密度之间的地图数据缩放级别和密度。应当注意到尽管图6A和6B分别仅图示两个和三个条带,但是与这里描述的方法和***一致的其它视图可以涉及到多于三个条带。
一些地图绘制应用一般可以针对整个视图(前景以及背景)取读恒定的地图数据级别(例如等高的缩放级别地图数据瓦片),而无论地图数据级别所提供的特征细节的量是否是用于将地图细节渲染为在所有显示深度对于地图用户在视觉上令人满意而必需的。不同于这些地图绘制应用,以上描述的过程用包含不同数据密度的多个缩放级别数据渲染查看窗口。这在与使用单个(一般为高)地图密度数据来渲染整个可显示地图表面区域的***比较时可以提供在带宽和处理时间方面的成本节约。
图7图示可以用来渲染地图表面、比如图6A-6C所示地图表面的方法、例程或者过程700的过程流程图或者流程图表。一般而言,例程或者过程700可以被实施为包括如下例程的一个或者多个软件例程或者应用,这些例程是地图应用48的部分。这些例程可以用任何所需语言、比如Javascript、C代码等来实施或者编写并且可以在图2的处理器30a和30b中的一个或者多个处理器上被执行。此外,这些例程可以使用光栅化器36以在显示设备34上渲染图像。
在任何情况下,块702可以确定关于将显示的地图表面的查看窗口状态。这一查看窗口状态可以包括查看窗口大小、查看窗口定位、查看窗口方向和用于地图表面的视图的放大级别。这一确定可以通过从计算机设备的用户接收输入来做出。例如,用户可以输入特定经度、纬度和海拔以及与放大级别和查看角度(即查看方向)对应的缩放级别。在一些实施例中,该确定可以基于用于地图位置的初始渲染(例如城市地标或者受欢迎城市特征的初始视图)的预存值或者可以基于以用户偏好为基础的预存设置来做出。
块704然后可以确定在确定的查看窗口上可显示的地图表面的查看边界和对应的查看条带的集合。边界可以被指明为相对于查看窗口的定位而言的深度。边界可以基于深度尺度范围将地图表面划分成多个查看条带(区域或者体积)。最近范围条带可以代表显示的地图表面的前景,而最远范围条带可以代表显示的地图的背景。
块706然后可以确定和/或获得用于多个确定的查看条带中的每个查看条带的用于渲染每个查看条带的缩放级别数据。关于以上描述的使用矢量数据和地图数据瓦片的地图绘制***,块706可以确定用于每个确定的条带的地图数据瓦片的缩放级别集合。如以上讨论的那样,对于一个缩放级别的瓦片集合将具有如以每单位区域的地图数据瓦片衡量的某个密度。因此,块706可以确定用于每个条带的地图数据瓦片密度。在可以不使用离散地图数据瓦片的实施例中,块706可以确定用于每个条带的地图数据密度。块708可以将确定的查看窗口的地图表面渲染、绘制、或者另外显示为使用确定的缩放级别数据(或者地图密度数据)渲染每个条带的查看条带集合。
如以上讨论的那样,较高缩放级别的地图数据一般提供比较低缩放级别的地图数据更高的分辨率和更多的特征数据。因此,在其中前景具有比每个后续查看条带更高的缩放级别数据的实施例中,每个后续条带可以具有渐少的地图细节和/或分辨率。应当注意分辨率在这一意义上是指用来在查看窗口的特定放大率提供地图特征的地图数据(或者地图数据瓦片)的量或者地图数据密度。
块704可以通过考虑包括在先地图绘制情形或者条件的多个因素来确定查看条带。例如,在一个地图绘制情形中,可以在查看窗口上初始地渲染地图表面在零入射角度处的由上至下透视。这一地图视图可以对应于二维地图的常见视图。在这一情况下,来自单个缩放级别的数据可以用来渲染显示的地图的整个表面,因为没有可变查看深度。换而言之,在零入射角度,地图表面与查看窗口平行。在地图应用允许查看窗口方向的后续倾斜时,地图表面的视图改变,从而前景在一个感知深度范围处,而背景在不同的感知深度范围处。
在一个实施例中,在查看窗口入射角度增加时暴露(或者将在查看窗口入射角度增加时显示)的附加地图表面可以被划定为第二深度条带,其中第一深度条带包括在倾斜之前原先渲染的地图表面区域。以这一方式,可以使用附加的缩放级别数据(一般为较低缩放级别数据或者较低密度地图数据)来仅渲染第二深度条带。因此可以减少地图数据取读和处理,因为视图的至少一部分已经被预渲染和高速缓存并且视图的附加部分使用较低缩放级别数据被渲染。
图6A和6B图示随着入射角度增加,可以不再显示先前渲染的地图的现有部分并且可以确定、取读和处理附加缩放级别数据用于显示前景或者背景条带。应当注意即使在地图视图在没有在先渲染或者在先高速缓存的地图分区被渲染的情况下,该过程仍然可以提供带宽和处理器节约,因为仍然有在使用单个(一般为高)地图密度数据来渲染整个可显示地图表面区域与用高密度地图数据仅显示可显示地图表面的部分而用低密度地图数据显示其它部分之间的数据差异。
在一些实施例中,块706可以确定前景条带被指派以比使用较低缩放级别数据的每个后续条带(具有更大深度范围)更高的缩放级别数据(高密度或者高清晰度地图数据)。最后条带或者背景条带可以使用在显示的条带集合之中的最低缩放级别数据。在变量符号表示中,对于连续条带B1至Bn中的每个集合,其中B1是具有深度尺度D1的前景条带并且Bn是具有深度范围Dn的背景条带,条带B1至Bn中的每个集合可以用对应的数据缩放级别Z1至Zn来渲染,其中Z1是具有最大地图数据密度的最高数据缩放级别,从而B1具有缩放级别Z1,B2具有缩放级别Z2,以此类推直至条带Bn具有对应缩放级别Zn。相应地,D1具有相对于查看窗口深度定位的最近深度范围(查看窗口深度定位一般为零深度),并且Dn是相对于查看窗口定位的最远深度范围。
在另一实施例中,块704可以确定在主要条带之间设置的一个或者多个附加范围过渡查看条带。例如,在图6A和6B的图示中,附加范围条带可以设置于边界602、610和612附近或者设置于边界602、610和612处。这些条带可以用来渲染在更大条带之间(例如在条带604与606之间或者在条带614、616和618之间)的更平滑过渡以减少地图特征密度的突然改变。备选地,块704可以确定多个条带,其中确定每个条带仅有从前景条带去往背景条带的增量密度改变以减少渲染的地图的突然可视改变。确定查看条带和确定对于每个查看条带将使用什么缩放级别数据可以基于多个参数。一些实施例可以分离地确定查看条带和缩放级别,而其它实施例可以使确定查看条带基于缩放级别或者相反。
用于确定查看条带和/或用于每个查看条带将使用什么缩放级别数据的一个参数可以基于用于人类对特征数据感知的一般可接受深度范围。这一范围可以使用多个不同阈值、比如约翰逊准则来确定,该准则描述在各个深度用于人类鉴别的最小所需分辨率。用于确定查看条带的另一参数可以是用于显示设备的显示屏幕的分辨率限制。取回或者处理用于不能在显示屏幕的监视器上物理地显示的深度范围的地图特征可以代表带宽和处理容量的浪费。另外,应当注意确定的深度条带尺度跨深度条带集合中的每个深度条带可能不是恒定大小。一些深度条带可以根据参数、比如倾角或者放大率而更窄或者更大。
在一些实施例中,中间条带(即不是前景条带、也不是背景条带)可以具有在先或者后续条带更高的缩放级别数据。这可以是在其中将突出显示在地图表面的中间的特征的情形中的情况。在这一情况下,条带确定可以基于地图特征集。这一确定又可以基于地图特征的特征优先级、类型或者定位。
在一些实施例中,可以对于前景条带取回比从条带的部分的在先渲染先前可用的缩放级别数据更高的附加缩放级别数据。这可以例如在其中直射零入射角度视图提供关于前景特征集的很少信息的情形中出现。在一个实施例中,由于查看角度被略微倾斜,所以前景的第一深度范围需要比在在先渲染的缩放级别视图中提供的细节更多的细节。在这一情况下,可以对于前景取回(例如从数据库)并渲染附加的更高缩放级别数据。在一些情况下,随着角度被进一步倾斜,可以丢弃并且用较低缩放级别数据替换前景的初始最高缩放级别。在与前景条带比较时,这一情形可以在有用于前景条带的稀疏特征数据时出现。
另外,可以基于前景中的特征或者地图对象的视线来分割深度条带。例如,在建筑物定位在前景条带中并且查看窗口足够接近建筑物,使得视图的视野的许多部分被建筑物遮断时,可以仅渲染在查看窗口的视线内的部分。备选地,可以从数据存储库仅取回用于在查看窗口的视线范围内可查看的地图区域的地图数据。
在查看窗口被倾斜时,可以对于当前视图相应地调整深度条带尺寸范围。例如对于恒定查看窗口大小、定位和放大率,地图表面的可查看区域可以随着倾角被改变而越来越远地延伸。在一个实施例中,前景条带可以随着倾角增加而更深地生长,其中相应地调整每个后续条带。一般而言,条带的大小可以随着倾角被改变而相应地被调整。另外,可以如必需的那样增加或者减少条带数目以提供视觉上令人满意的图像。
图7的块702-708中的每个块可以用多种方式和由多个不同实体执行而保持与这里描述的技术一致。在一个实施例中,在包含地图数据的数据库被包含在第一计算机中时,可以完全在第一计算机设备上执行块702-708。
在其它实施例中,过程块可以被分布在两个或者更多计算机设备之中。图8图示过程流程,其中块801在第一计算机设备处确定用于地图表面的查看窗口状态(大小、定位、方向、放大率)。基于这一查看窗口状态,第一计算机设备(例如客户端)可以在块802与第二计算机设备(例如服务器)通信以基于查看窗口状态请求地图数据。第二计算机设备可以确定查看条带集合以及用于每个查看条带的缩放级别数据。第二计算机然后可以取回对应地图数据并且通过向第一计算机发送对应地图数据来服务于第一计算机设备请求。第一计算机设备可以取回针对它的请求的地图数据作为在第一缩放级别的第一条带数据(块803)和在第二缩放级别的第二条带数据(块804)。第一计算机然后可以在块804基于接收的条带和缩放级别数据显示显示地图。在一个备选实施例中,第二计算机设备可以从第三计算机取回地图数据或者指引第三计算机向第一计算机设备发送对应地图数据。
图9图示来自服务器端的过程流程。在块902,服务器接收对在查看窗口上显示地图表面的请求。在一些情况下,查看窗口状态可以未与请求接收一起被接收。在这样的情况下,服务器可以基于用于地图表面或者一般地图位置的预定或者默认查看窗口状态继续。块904然后可以基于查看窗口状态确定地图表面的查看条带集合。块906可以确定确定的查看条带中的每个查看条带所需的缩放级别数据。块908和910可以有助于向请求设备或者用户发送条带化数据和缩放级别数据。可以向过程追加发送附加条带和缩放级别数据的附加块。
可以从服务器包含的数据库或者从第三计算机设备的数据库取回图9的过程的缩放级别数据和条带化数据。在一个实施例中,服务器可以从第三设备取回对应地图数据、然后又向请求设备或者客户端发送地图数据。在一个备选实施例中,服务器可以指引第三计算机设备向请求设备或者用户发送对应地图数据。在另一实施例中,从服务器的数据库取回对应地图数据的一部分,并且从第三方设备的数据块取回对应地图数据的一部分。在另一实施例中,从服务器发送对应地图数据的一部分,并且从第三方设备发送对应地图数据的一部分。
在其它实施例中,确定条带化可以由第一计算机设备执行,而确定使用什么缩放级别数据来渲染查看条带可以由第二计算机设备执行。在这一配置中的地图数据可以由执行确定块的计算机或者不同计算机获得。当然,可以用任何数目的方式更改或者变化这里描述的地图渲染技术以提供描述的地图渲染***。
图10图示用于服务器计算机的另一过程流程。块1002可以被编程用于接收对地图数据的请求,该地图数据可以用来基于接收的查看窗口状态显示地图表面。在一些实施例中,查看窗口状态可能未与请求一起被包括,并且服务器可以基于用于地图表面或者一般地图位置的预定或者默认查看窗口状态继续。块1004可以基于查看窗口状态确定用于地图表面的查看条带集合和用于查看条带集合中的每个查看条带的对应缩放级别数据。块1006可以基于确定的查看条带集合生成或者产生地图表面的图像。块1008然后可以向例如客户端计算机设备发送图像用于显示。
以下章节描述以上描述的条带化技术与用于确定图像区域在显示平面或者显示屏幕上的投影的方法的可能组合的细节。确定投影的方法可以用来调整查看条带。
图11图示可以在显示设备上渲染的在零倾角的地图表面1100的俯视图。这一视图等效于平面二维地图。一般而言,显示设备可以使用称为像素的离散图片元素1011的二维网格(例如查看平面)来渲染图像(例如地图表面图像)。像素1011可以代表显示设备的最小可寻址元素,其中像素的地址一般对应于它在显示设备的屏幕上的坐标。如讨论的那样,可以将地图数据组织为地图数据瓦片,其中每个地图数据瓦片对应于地图表面的区域。图11图示如下实现方式,其中可以使用显示设备的排列为2x2像素方块的四个像素来渲染每个地图数据瓦片1110。当然可以在其它实施例中实施与两个像素的直径大小1120不同的其它地图数据瓦片大小。例如在一些实施例中,256x256像素方块可以用来渲染地图数据瓦片。
一般而言,可以伸缩(scale)每个缩放级别的地图数据瓦片,从而在它们在与它们的缩放级别对应的放大率被渲染时,它们被用相同显示屏幕像素大小和区域渲染。因此,在图11的实施例中,可以在查看窗口或者显示屏幕的放大率与每个地图数据瓦片的缩放级别对应或者匹配时将地图数据瓦片渲染为2x2显示屏幕像素方块。例如,在缩放级别10的地图数据瓦片在与缩放级别10对应的放大率在显示屏幕上被渲染时,地图数据瓦片中的每个地图数据瓦片可以是2x2个显示屏幕像素。相同的伸缩可以适用于缩放级别9的地图数据。具体而言,缩放级别9的地图数据瓦片在与缩放级别9对应的放大率被渲染时也各自为2x2个显示屏幕像素。继而图11图示在显示屏幕或者查看窗口的放大率对应于显示的地图数据瓦片的缩放级别时任何缩放级别的地图数据瓦片的布局(比如作为2x2显示屏幕像素方块)。因而,所示地图数据瓦片的数目可以主要受显示屏幕的物理大小限制(例如640x480的显示屏幕仅可以具有多达横向为320个地图数据瓦片和高为240个地图数据瓦片)或者受仅指明整个显示屏幕的一部分的查看窗口限制。
在一些情形中,可以在与对应于第一缩放级别的放大率不同的放大率渲染第一缩放级别的地图数据瓦片。在这一情形中,可以与在对应于第一缩放级别的放大率不同地在大小上设定地图数据瓦片的显示大小(即用来渲染地图数据瓦片的显示屏幕像素的大小)。图12图示根据一个实施例的在相同时间显示的不同缩放级别的地图数据瓦片的视图。在单个放大率在显示屏幕上渲染图12的地图数据瓦片,因此并非所有其它不同缩放级别的地图数据瓦片可以在显示屏幕像素方面是相同大小。
出于示例目的,图12可以图示在缩放级别10的放大率渲染的地图表面1208,并且第一区域1210的地图数据瓦片1201是缩放级别10的地图数据瓦片。使用多个显示屏幕像素1200来渲染地图表面1208。地图表面的第一区域1210包括各自大小为2x2个显示屏幕像素(具有直径1205)的多个地图数据瓦片1201。可以使用较低缩放级别9的地图数据瓦片1202来渲染地图表面1208的第二区域1220。与当前示例相符,如果在与缩放级别9对应的放大率渲染缩放级别9的地图数据瓦片,则将渲染它们在大小上类似于区域1210的地图数据瓦片,其中每个地图数据瓦片将是2x2像素方块。然而图13的视图在缩放级别10的放大率被渲染。因此,可以将缩放级别9的地图数据瓦片渲染得大于在缩放级别10的放大率的缩放级别10的地图数据瓦片。在这一实施例中,每个后续缩放级别对应于先前缩放级别的2X放大率。因此,将在缩放级别10的放大率渲染的缩放级别9的地图数据瓦片渲染为在缩放级别10的放大率的4x4个方块像素。可以使用较低缩放级别8的地图数据瓦片来渲染地图表面1208的第三区域1230。由于缩放级别之间的2X放大率,在缩放级别10的放大率渲染的缩放级别8的地图数据瓦片1203是8x8个方块像素或者是缩放级别9的地图数据瓦片的尺寸的两倍(大小的4倍)。一般而言,较低放大率地图数据瓦片可以对应于地图表面的比较高缩放级别地图数据瓦片更大的区域。因而,可能需要较高缩放级别的更大数目的地图数据瓦片以代表与较低缩放级别的地图数据瓦片相同的实际地图表面区域。应当注意尽管在图12中将不同缩放级别的地图数据彼此相邻地设置,但是伸缩使得沿着地图表面的平面的距离即使在不同缩放级别地图数据瓦片之间交叉时仍然保持相同。例如,即使在地图特征穿越两个不同缩放级别数据瓦片区域(例如1210和1220)时,沿着地图表面的深度保持成比例。
图13图示在非零入射角度处的图11的地图表面。在图13中,所有地图数据瓦片是单个缩放级别并且在与缩放级别对应的放大率被渲染。出于示例目的,图11和13可以代表缩放级别10的显示。由于倾角而有向地图表面的添加的深度尺度(d)。渲染这一深度尺度为地图表面向由查看窗口(或者显示屏幕)代表的平面上的二维投影。图14可以更好地图示查看窗口的查看平面1425在与代表地图平面的平面1427成角度1420。查看窗口可以是查看平面1425的一部分。角度1420可以与入射角度成比例。在角度1420为零(对应于零入射角度)并且两个平面对准时,查看平面1425的查看窗口然后可以将地图平面渲染为与图11相似的视图。在角度1420为非零时,查看平面1425的查看窗口可以提供与图13相似的视图。
在查看平面1425和地图平面1427成角度(倾斜)时,可以向查看平面1423上投影地图平面1428的相同大小的区域为不同大小的区域。一般而言,向查看窗口(代表查看平面的一部分)上投影地图表面可以使得渲染地图表面的与查看平面1425(或者查看平面的一部分)的定位更近的区域大于地图表面的距查看平面1425的定位更远的区域。具体而言,图13图示与查看平面的定位邻近的像素1321将以比具有从查看平面的定位远侧(distal)的显示屏幕高度1325的像素1324更大的显示屏幕高度1322向查看平面上投影。
图15A-D图示对于不同倾角,但是在缩放级别10的放大率渲染的图14的两个平面1425、1427的一部分1423。对照而言,地图平面的像素被交替地着色。图15A图示其中两个平面1425和1427平行而各自在零倾角的情况。在这一情况下,查看平面1525的像素1541与地图平面1527的像素1542的大小匹配。像素1541和1542均具有相同深度或者高度1543。图15B-15D图示图14的相同部分1423、但是在平面之间的不同渐增角度1420。1420的不同角度可以与查看平面1425相对于地图平面1427的法线而言的不同倾角成比例。图15B图示在从法线的15度倾角(入射角度),向查看平面1425上投影地图平面像素1542的深度1543为小于显示平面像素1541的高度1544,其中地图平面像素1542在查看平面处于零倾斜时代表与查看平面像素1541相同大小的区域(如图15A中所示)。图15C图示在从法线的40度倾角处,地图平面像素1542的深度1543被投影为甚至更小于图15B的深度。图15D图示在70度的倾角处,地图平面像素1542的深度1543仍小于图15C的深度。在初始地将地图平面1427的像素1542渲染为查看平面1425的相同大小的像素1541(图16A)时,上至三个地图平面像素1542可以配合在更大倾角在查看平面的单个像素1541内(图15D)。重要的是,地图平面像素相对于查看窗口定位向外越远,它在查看平面的一部分上的投影就越小。例如,远侧地图平面像素的投影深度1546小于近邻地图平面像素的投影深度1547。
图15A图示在入射角度为零并且视图的放大率对应于缩放级别10时将以查看平面1425上的2个像素的高度渲染具有在地图平面1427上的2个像素的长度的缩放级别10的地图数据瓦片。(两个像素是在缩放级别10的放大率渲染的缩放级别10的地图数据瓦片的长度。)随着查看窗口或者查看平面的入射角度被增加,相同2个像素的竖直长度(称为在非零倾斜的“深度”)的投影变成小于查看平面上的小于两个像素的高度。图15C和15D图示在某个倾角范围,地图平面的地图数据瓦片的两个像素深度可以是查看平面上的仅约一个像素。
图15E图示在缩放级别10的放大率渲染的缩放级别9的地图数据瓦片1550的示例视图,其中向显示屏幕像素1541上投影地图数据瓦片的一部分。如以上讨论的那样,在缩放级别10的放大率渲染的缩放级别9的地图数据瓦片1550的尺寸可以大于在缩放级别10的放大率渲染的缩放级别10的地图数据瓦片1552。图12可以用来说明缩放级别之间的像素关系。如讨论的那样,在缩放级别10的放大率图12的缩放级别10的地图数据瓦片1201被渲染为2x2个显示屏幕像素,并且缩放级别9的地图数据瓦片1202是缩放级别10的放大率的4x4个显示屏幕像素。将来自不同缩放级别的放大率的屏幕像素的大小联系产生比率,其中缩放级别9的放大率的1个显示屏幕像素包容(subsume)在缩放级别10的放大率的2x2个屏幕像素。因此,缩放级别9的地图数据瓦片可以是在缩放级别9的放大率的2x2个显示屏幕像素、但是在缩放级别10的放大率被渲染时包容四个2x2个显示屏幕像素。
回顾图15E,图示缩放级别9的地图数据瓦片1550为四个缩放级别9的像素(即在缩放级别9的放大率的像素)1552,其中每个缩放级别9的像素1552是在缩放级别10的放大率的2x2个像素1553。图15E图示在查看平面的倾斜角度足够大和/或地图数据瓦片的深度定位距查看平面足够远时,可以投影较低缩放级别的放大率的地图平面像素1552(代表比较高缩放级别的放大率的像素更大的地图平面区域)以近似于显示屏幕像素1541。
概括而言,可以投影沿着地图平面的深度增量(d)为查看平面(也称为显示屏幕)的查看窗口上的高度增量(y)。一般而言,深度增量(d)距查看窗口定位离开越远,投影高度(y)在查看窗口上就越小。另外,倾角越大,对于相同深度增量(d)的高度投影(y)就越小。深度增量可以是地图表面的与缩放级别的地图数据对应的区域单位在该缩放级别的放大率的深度。可以将地图表面区域单位指明为地图数据瓦片的在零倾斜、在它的对应缩放级别放大率渲染的显示屏幕像素代表的区域。无论可能从倾斜查看平面或者改变缩放级别而产生的失真如何,都可以固定地图数据瓦片的像素代表的区域。例如在图12中,地图表面上的像素1200代表的地图区域单位无论什么倾角和什么缩放级别放大率都保持恒定。如果增加放大率(更高的缩放级别),则像素可以被扩大、但是仍然代表相同地图表面区域。图12也示出较低缩放级别地图数据瓦片1202包括在地图区域在较低缩放级别的放大率被渲染时与四个显示屏幕像素对应的四个地图区域单位。可以扩大四个地图区域单位,因为它们被放大至显示的当前更高缩放级别。在以下将描述的实施例中,可以进行计算以确定在地图数据的放大级别的放大率渲染地图数据时与地图数据的像素对应的地图区域单位的投影。地图区域单位可以称为地图表面或者地图平面的像素或者地图平面像素。
在一个实施例中,可以通过近似如下深度来确定在第一深度范围处的第一查看条带与在第二深度范围处的第二查看条带之间的过渡或者边界,来自一个缩放级别的地图平面像素在该深度的投影在相对于显示屏幕像素的阈值高度内。在这一边界开始并且沿着地图表面在深度上进一步继续,可以使用来自较低缩放级别的地图数据瓦片,其中这些地图数据瓦片在视图的当前缩放级别包容地图表面或者地图平面的更大区域并且被投影为查看平面上的更大高度(相对于先前较低深度区域)。在一个实施例中,可以确定条带,从而投影的地图平面像素与显示屏幕像素近似。
图16图示这里描述的条带化技术的一个实施例,其中在不同深度范围处显示比查看窗口的当前缩放级别更低的缩放级别的地图数据瓦片。图16图示在非零倾角和在与缩放级别10对应的放大率的图12的相同地图平面或者表面1208(与对于图13相同)。图16的区域1614、1615和1616可以分别对应于图12的区域1210、1220和1230。图16图示在地图平面的深度(d)向查看平面的高度(y)上的投影小于(在高度上)阈值时,来自较低缩放级别的地图数据瓦片可以用来在该深度范围渲染地图表面。具体而言,图16图示设置在区域1614与1615之间的边界1619,其中缩放级别10的地图数据瓦片1622的投影的查看平面高度1621与缩放级别9的地图数据瓦片1625的投影的查看平面高度1624近似。确定区域1614的哪个地图数据瓦片的哪个高度将用作基线高度可以取决于各种因素。在图14的实施例中,中央地图数据瓦片的高度被选择作为基线。
在一个实施例中,算法可以用来基于显示屏幕上的竖直定位设置查看条带。算法可以使用函数,该函数基于地图平面的深度尺度输出地图平面像素深度与显示屏幕(查看平面)像素高度的比率。如这里所用地图像素可以是指在查看窗口(例如查看平面1425的部分)在特定放大率与地图表面成零入射角度时与(例如图14的查看平面1425的)显示屏幕像素对应的地图平面(例如图14的地图平面1427)或者地图表面的区域单位(见图15A)。地图像素深度可以是指地图平面的区域单位的距离尺度1543(见图15C)。显示屏幕像素高度可以是指显示屏幕像素的可以由长度1544代表的高度(见图15C)。
地图表面像素的深度可以被表示为Ym,而显示屏幕像素的高度可以被表示为Ys。对于显示屏幕上的给定的高度改变(Ys)的在地图上的深度定位改变(Ym)可以由导数dYm/dYs表示。等式可以使导数dYm/dYs与缩放级别和在屏幕上的竖直坐标的函数F相关:
dYm/dYs=F(Z,Ys,T)
其中Z代表缩放级别,Ys是屏幕上的高度定位,并且T是在查看窗口平面与地图平面之间的入射角度或者倾角。针对Ys求解等式产生函数G,该函数使在特定缩放级别和倾角的在屏幕上的竖直定位与地图像素深度与屏幕像素长度的特定比率相关:
Ys=G(Z,dYm/dYs,T)。
使用这一函数,可以基于选择的像素高度比计算查看条带的所希望的边界。可以基于多个因素选择像素高度比。在一个实施例中,像素高度比可以基于经验测试以确定用于查看条带的像素高度比,从而在条带之间的可视过渡是平滑而不是突然的。在一些实施例中,像素高度比可以是可调的。在一个实施例中,可以确定查看条带,其中地图像素的深度从未小于一个屏幕像素。换而言之,可以在G(Z,1)到G(Z,2)之间的竖直区域限定具有缩放级别Z的地图数据的查看条带。这可以允许地图像素上至它在渲染下一地图数据缩放级别之前的自然大小的两倍(在查看条带边界的地图数据瓦片或者地图数据单位在与地图数据瓦片的缩放级别对应的大小被投影)。
贯穿本说明书,多个实例可以实施描述为单个实例的部件、操作或者结构。虽然图示和描述一种或者多种方法的个别操作为分离操作,但是可以并行执行个别操作中的一个或者多个操作并且未要求按照所示顺序执行操作。可以实施在示例配置中作为分离部件而呈现的结构和功能为组合的结构或者部件。相似地,可以实施作为单个部件而呈现的结构和功能为分离部件。这些和其它变化、修改、添加以及改进落入这里的主题内容的范围内。
例如网络25可以包括但不限于LAN、MAN、WAN、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。另外,尽管在图1中仅图示四个客户端设备以使描述简化和清楚,但是理解任何数目的客户端计算机或者显示设备可以被支持并且可以与服务器14通信。
此外,这里描述某些实施例为包括逻辑或者多个部件、模块或者机构。模块可以构成软件模块(例如在机器可读介质上或者在传输信号中体现的代码)或者硬件模块。硬件模块是能够执行某些操作的有形单元并且可以用某种方式来配置或者布置。在示例实施例中,一个或者多个计算机***(例如单独客户端或者服务器计算机***)或者计算机***的一个或者多个硬件模块(例如处理器或者处理器组)可以由软件(例如应用或者应用部分)配置为操作用于执行如这里描述的某些操作的硬件模块。
在各种实施例中,可以机械地或者电子地实施硬件模块。例如,硬件模块可以包括被永久性配置(例如作为专用处理器、比如现场可编程门阵列(FPGA)或者专用集成电路(ASIC))用于执行某些操作的专用电路装置或者逻辑。硬件模块也可以包括被软件暂时性配置用于执行某些操作的可编程逻辑或者电路装置(例如作为包含于通用处理器或者其它可编程处理器内)。将理解用于机械地、在专用和永久性配置的电路装置中或者在暂时性配置的电路装置(例如由软件配置)的决定可以由成本和时间考虑驱动。
因而,术语硬件应当被理解为包含有形实体、即被物理上构造、被持久配置(例如硬接线)或者被暂时配置(例如编程)用于以某种方式操作或者执行这里描述的某些操作的实体。考虑其中硬件模块被暂时配置(例如编程)的实施例,无需在任何一个时间时刻配置或者实例化硬件模块中的每个硬件模块。例如在硬件模块包括使用软件来配置的通用处理器时,通用处理器可以在不同时间被配置为相应不同硬件模块。软件可以相应地配置处理器以例如在一个时间时刻构成特定硬件模块并且在不同时间时刻构成不同硬件模块。
硬件和软件模块可以向其它硬件和/或软件模块提供信息和从其它硬件和/或软件模块接收信息。因而,描述的硬件模块可以视为被通信地耦合。在多个这样的硬件或者软件模块同时存在时,可以通过连接或者软件硬件模块的信号传输(例如通过适当电路和总线)实现通信。在其中在不同时间配置或者实例化多个硬件模块或者软件的实施例中,可以例如通过在这样的硬件或者软件模块有权访问的存储器结构中存储和取回信息来实现在多个硬件或者软件模块之间的通信。例如,一个硬件或者软件模块可以执行操作并且在它通信地耦合到的存储器设备中存储该操作的输出。又一硬件或者软件模块然后可以在以后时间访问存储器设备以取回和处理存储的输出。硬件和软件模块也可以发起与输入或者输出设备的通信并且可以对资源(例如信息汇集)操作。
这里描述的示例方法的各种操作可以至少部分由被(例如软件)暂时配置或者被永久性配置用于执行相关操作的一个或者多个处理器执行。无论是暂时性还是永久性配置,这样的处理器可以构成操作用于执行一个或者多个操作或者功能的由处理器实施的模块。这里所称模块可以在一些示例实施例中包括处理器实施的模块。
相似地,这里描述的方法或者例程可以至少部分由处理器实施。例如,方法的操作中的至少一些操作可以由一个或者多个处理器或者处理器实施的硬件模块执行。操作中的某些操作的执行可以分布在一个或者多个处理器之中、并非仅驻留于单个机器内、而是跨多个机器来部署。在一些示例实施例中,一个或者多个处理器可以位于单个位置(例如家用环境、办公室环境内或者作为服务器群),而在其它实施例中,可以跨多个位置分布处理器。
一个或者多个处理器也可以操作用于支持在“云计算”环境中或者作为“软件即服务”(SaaS)执行相关操作。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作经由网络(例如因特网)和经由一个或者多个适当接口(例如应用程序接口(API)可访问。
操作中的某些操作的执行可以被分布在一个或者多个处理器之中而不是仅驻留于单个机器内、而是跨多个机器来部署。在一些示例实施例中,一个或者多个处理器或者处理器实施的模块可以位于单个地理位置(例如家庭环境、办公室环境或者服务器群内)。在其它示例实施例中,可以跨多个地理位置分布一个或者多个处理器或者处理器实施的模块。
在对作为位或者二进制数字信号存储在机器存储器(例如计算机存储器)内的数据的操作的算法或者符号表示方面呈现本说明书的一些部分。这些算法或者符号表示是数据处理领域普通技术人员用来向本领域其他技术人员传达他们的工作实质的技术的示例。如这里所用,“算法”是促成所需结果的自一致操作序列或者相似处理。在本文中,算法、例程和操作涉及到物理数量的物理操控。通常但是并非必需,这样的数量可以采用能够由机器存储、访问、传送、组合、比较或者另外操控的电、磁或者光信号。主要出于普遍用法的原因而使用诸如“数据”、“内容”、“位”、“值”、“元素”、“符号”、“字符”、“项”、“数”、“数值”等字眼来指代这些信号有时是方便的。然而这些字眼仅为便利标记并且将与适当物理数量关联。
除非另有具体陈述,这里使用诸如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等字眼的讨论可以指代机器(例如计算机)的动作或者过程,该机器操控或者变换在一个或者多个存储器(例如易失性存储器、非易失性存储器或者其组合)、寄存器或者接收、存储、传输或者显示信息的其它机器部件内表示为物理(例如电子、磁或者光)数量的数据。
如这里所用,对“一个实施例”或者“实施例”的任何引用意味着结合该实施例描述的特定要素、特征、结构或者特性包含于至少一个实施例中。短语“在一个实施例中”出现于说明书中的各处未必都指代相同实施例。
可以使用表达“耦合”和“连接”及其派生表达来描述一些实施例。例如可以使用术语“耦合”来描述一些实施例以指示两个或者更多单元相互直接物理或者电接触。然而术语“耦合”也可以意味着两个或者更多单元未相互直接接触、但是仍然相互配合或者交互。实施例在本文中不受限制。
如这里所用,术语“包括”、、“包含”、“具有”或者其任何其它变化旨在于覆盖非穷举包括。例如包括要素列表的过程、方法、物品或者装置未必仅限于那些要素、但是可以包括未明确列举的或者这样的过程、方法、物品或者装置固有的其它要素。另外除非相反明示,“或者”指代包括意义的或者而不是穷举意义的或者。例如以下各项中的任一项满足条件A或者B:A为真(或者存在)并且B为假(或者不存在)、A为假(或者不存在)并且B为真以及A和B均为真(或者存在)。
此外,对“一个/一种”的使用用来描述这里的实施例的单元和部件。这样做仅为了方便并且给出本发明的一般意义。应当解读这一描述包括一个或者至少一个,并且单数除非明显的是它另有含义则也包括复数。
另外,各图仅出于示例的目的而描绘地图渲染***的优选实施例。本领域技术人员将从以下讨论中容易认识可以运用这里所示结构和方法的备选实施例而未脱离这里描述的原理。
在阅读本公开内容时,本领域技术人员将理解用于一种***和过程的更多附加备选结构和功能设计,该***和过程用于使用这里公开的原理来渲染地图或者其它类型的图像。因此,尽管已经图示和描述具体实施例和应用,但是将理解公开的实施例不限于这里公开的精确构造和部件。可以在这里公开的方法和装置的布置、操作和细节上做出本领域技术人员将清楚的各种修改、改变和变化而未脱离在所附权利要求中限定的精神实质和范围。
Claims (52)
1.一种用于在显示设备上渲染地图的计算机实施的方法,包括:
使用计算机设备来确定地图表面的查看窗口,所述查看窗口由包括相对于所述地图的所述表面而言的大小、定位、方向和放大率的参数集限定,其中所述查看窗口的第一定位在所述地图表面之上,并且所述查看窗口的第一方向在相对于所述地图表面的非零入射角度处;
使用所述计算机设备来确定所述地图表面的由所述查看窗口限定的查看边界集合,其中所述查看边界集合基于深度尺度范围将所述地图表面划分成多个查看条带,并且其中第一查看条带对应于所述地图表面在第一深度范围处的前景,并且第二查看条带对应于所述地图表面在第二深度范围处的背景;
使用所述计算机设备来确定用来渲染所述地图表面的所述查看条带集合中的每个查看条带的地图数据密度,其中用来渲染两个或者更多个查看条带的所述地图数据密度互不相同;以及
使用所述计算机设备来基于所述查看窗口、所述查看条带和用于每个查看条带的不同的所述地图数据密度在所述显示设备上显示所述地图表面的三维图像。
2.根据权利要求1所述的计算机实施的方法,其中用于所述第一条带的所述地图数据包括比后续查看条带更高的地图数据密度。
3.根据权利要求1所述的计算机实施的方法,还包括使用所述计算机设备来请求来自在所述计算机设备上存储的数据库的用来渲染所述地图表面的所述三维图像的所述地图数据。
4.根据权利要求1所述的计算机实施的方法,还包括使用所述计算机设备来请求来自在不同计算机设备上存储的数据库的用来渲染所述地图表面的所述三维图像的所述地图数据。
5.根据权利要求1所述的计算机实施的方法,还包括使用所述计算机设备来请求用来渲染将基于与每个条带对应的缩放级别在所述查看窗口内被显示的所述地图表面的所述地图数据,其中比所述第二查看条带更高的缩放级别用于所述第一查看条带,并且其中所述地图数据被存储为在不同缩放级别的地图数据瓦片,其中缩放级别指示用于固定地理地区的地图数据瓦片集合中的地图特征密度,并且其中所述更高缩放级别包括用于所述固定地理地区的比所述更低缩放级别更大的地图特征密度。
6.根据权利要求1所述的计算机实施的方法,其中所述查看窗口定位由至少纬度、经度和海拔限定。
7.根据权利要求1所述的计算机实施的方法,还包括使用所述计算机设备来基于所述显示设备的最小分辨率设置确定所述条带中的至少一个条带的所述深度范围。
8.根据权利要求1所述的计算机实施的方法,还包括使用所述计算机设备来基于约翰逊准则确定所述条带中的至少一个条带的所述深度范围。
9.根据权利要求1所述的计算机实施的方法,还包括使用计算机设备来基于地图坐标的用户输入确定地图表面的所述查看窗口。
10.根据权利要求1所述的计算机实施的方法,还包括使用所述计算机设备来基于所述地图表面的特征集确定所述查看条带中的每个查看条带的尺度。
11.根据权利要求1所述的计算机实施的方法,还包括使用所述计算机设备来基于特征遮断调整查看条带的一部分的所述地图数据密度。
12.根据权利要求1所述的计算机实施的方法,还包括使用所述计算机设备来增加所述查看窗口方向的所述入射角度并且调整所述查看条带中的每个查看条带的大小。
13.一种计算机设备,包括:
通信网络接口;
一个或者多个处理器;
耦合到所述一个或者多个处理器的一个或者多个存储器;
耦合到所述一个或者多个处理器的显示设备;
其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器:
确定地图表面的查看窗口,所述查看窗口由包括相对于所述地图的所述表面而言的大小、定位、方向和放大率的参数集限定,其中所述查看窗口的第一定位在所述地图表面之上,并且所述查看窗口的第一方向在相对于所述地图表面的非零入射角度处;
请求用来渲染将在所述查看窗口内被显示的所述地图表面的地图数据;
接收用于请求的所述查看窗口的所述地图表面的第一查看条带的第一缩放级别数据,其中所述第一缩放级别数据提供用于由所述第一查看条带限定的地图区域的第一地图数据密度级别;
接收用于请求的所述查看窗口的所述地图表面的第二查看条带的第二缩放级别数据,其中所述第二缩放级别数据提供用于由所述第二查看条带限定的地图区域的第二地图数据密度级别,所述第一查看条带的区域不同于所述第二查看条带的区域,并且所述第一地图数据密度级别不同于所述第二地图数据密度;并且
基于所述查看窗口、所述查看条带以及接收的所述第一缩放级别地图数据和所述第二缩放级别地图数据在所述显示设备上显示所述地图表面的三维图像。
14.根据权利要求13所述的计算机设备,其中请求地图数据包括提供关于所述查看窗口定位相对于所述地图的所述表面的大小、定位、方向和放大率的数据。
15.根据权利要求13所述的计算机设备,其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器:
确定所述地图表面的查看边界集合,其中边界的所述集合基于深度尺度范围至少确定所述第一查看条带的区域;并且
确定将被请求的用于所述第一查看条带的所述地图数据密度。
16.根据权利要求15所述的计算机设备,其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器:
确定所述地图表面的由所述查看窗口限定的查看边界集合,其中所述查看边界集合基于深度尺度范围至少确定所述第二查看条带的区域;并且
确定将被请求的用于所述第二查看条带的所述地图数据密度。
17.根据权利要求13所述的计算机设备,其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器:
确定所述地图表面的由所述查看窗口限定的查看边界集合,其中所述查看边界基于深度尺度范围将所述地图表面划分成包括所述第一查看条带和所述第二查看条带的多个查看条带,并且其中所述第一查看条带对应于所述地图表面在第一深度范围处的前景,并且第三查看条带对应于所述地图表面在第三深度范围处的背景;并且
确定将由所述第二例程请求的地图数据密度,其中用于所述第一条带的所述地图数据密度高于用于所述第二条带的所述地图数据密度。
18.一种计算机设备,包括:
通信网络接口;
一个或者多个处理器;
耦合到所述一个或者多个处理器的一个或者多个存储器;
耦合到所述一个或者多个处理器的显示设备;
其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器:
接收对用于给定的查看窗口的地图数据的请求,所述查看窗口由相对于地图的表面而言的大小、定位、方向和放大率限定,其中所述查看窗口的所述定位在所述地图表面之上,并且所述查看窗口的第一方向在相对于所述地图表面的非零入射角度处;
确定用于所述查看窗口的第一查看条带的第一缩放级别数据,其中所述第一缩放级别数据提供用于所述第一查看条带的第一地图数据密度;
确定用于所述查看窗口的第二查看条带的第二缩放级别数据,其中所述第二缩放级别数据提供用于所述第二查看条带的第二地图数据密度,并且其中所述第一地图数据密度不同于所述第二地图数据密度;
创建具有所述第一查看条带和所述第二查看条带的所述地图表面的图像;并且
发送所述地图表面的所述图像。
19.根据权利要求18所述的计算机设备,其中缩放级别数据是地图数据瓦片的集合,缩放级别集合的每个地图数据瓦片代表用于相同大小地图区域的地图数据,并且其中较高缩放级别包括比较低缩放级别更大的每单位区域的地图数据瓦片数目,并且其中所述第一缩放级别是比所述第二缩放级别更高的缩放级别。
20.根据权利要求18所述的计算机设备,还包括在所述存储器中存储的第六例程,所述第六例程在所述处理器上执行以确定所述地图表面的由所述查看窗口定义的查看边界集合,其中边界的所述集合基于深度尺度范围至少确定所述第一查看条带。
21.根据权利要求18所述的计算机设备,其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器:
确定所述地图表面的由所述查看窗口限定的查看边界集合,其中所述查看边界集合基于深度尺度范围将所述地图表面划分成包括所述第一查看条带和所述第二查看条带的多个查看条带,并且其中所述第一查看条带对应于所述地图表面在第一深度范围处的前景,并且第三查看条带对应于所述地图表面在第二深度范围处的背景;并且
其中用于所述第一条带的所述地图数据密度高于用于所述第二条带的所述地图数据密度。
22.一种用于在显示设备上渲染地图的计算机实施的方法,包括:
使用计算机设备来在具有大小、定位、方向和放大率的查看窗口内显示地图图像,其中所述查看窗口的初始定位在地图表面之上,并且其中所述查看窗口方向在相对于所述地图表面的非零入射角度处;以及
使用计算机设备来将所述地图表面至少显示为第一查看区域和第二查看区域,其中所述第一查看区域由第一深度尺度范围限定,并且所述第二查看区域由相对于所述查看窗口定位的第二深度尺度范围限定,其中用于所述第一区域的地图数据密度大于用于所述第二区域的地图数据密度,并且其中所述第一查看区域和所述第二查看区域连续。
23.根据权利要求22所述的计算机实施的方法,其中用于所述第一区域的特征数据的数量大于用于所述第二区域的特征数据的数量。
24.根据权利要求22所述的计算机实施的方法,还包括使用所述计算机设备来在所述查看窗口方向的入射角度被改变时显示对所述第一查看区域和所述第二查看区域的大小的调整。
25.根据权利要求22所述的计算机实施的方法,还包括使用所述计算机设备来基于所述显示设备的最小分辨率设置显示所述第一查看区域和所述第二查看区域。
26.根据权利要求22所述的计算机实施的方法,还包括使用所述计算机设备来基于所述地图表面的特征的集合显示所述第一查看区域和所述第二查看区域。
27.一种用于在显示设备上渲染三维地图的计算机实施的方法,包括:
使用计算机设备来确定地图表面平面和查看平面,其中所述查看平面在相对于所述地图表面平面的非零入射角度处;
使用所述计算机设备来确定所述地图表面平面上的第一区域单位,所述第一区域单位代表在所述查看平面在相对于所述地图表面平面的零入射角度时、通过所述查看平面在第一缩放级别被查看的地图区域,其中所述第一区域单位具有沿着所述地图表面平面的两个尺寸;
当所述查看平面在相对于所述地图表面平面的所述非零入射角度处时,使用所述计算机设备来确定所述查看平面上的边界,其中所述第一区域单位的沿着所述地图表面平面的第一尺寸向沿着所述查看平面的第一尺寸上的投影处于阈值;
在所述查看平面上使用第一地图数据密度来渲染所述地图表面平面的第一区域在所述边界的一侧上的投影,并且使用比所述第一地图数据密度更低的第二地图数据密度来渲染所述地图表面平面的第二区域在所述边界的第二侧上的投影。
28.根据权利要求27所述的计算机实施的方法,其中所述地图表面平面上的所述第一区域单位当所述地图表面平面在所述第一缩放级别被渲染并且所述查看平面在相对于所述地图表面平面的零入射角度处时与所述查看平面的像素对应;并且
还包括确定所述地图表面平面上的第二区域单位,所述第二区域单位当所述地图表面平面在第二缩放级别被渲染并且所述查看平面在相对于所述地图表面平面的零入射角度处时与所述查看平面的像素对应,并且其中所述第二区域单位代表所述地图表面平面的比所述第一区域单位更大的区域。
29.根据权利要求28所述的计算机实施的方法,其中所述阈值是所述查看平面的一个像素的高度。
30.根据权利要求27所述的计算机实施的方法,其中渲染所述第一区域包括使用所述第一缩放级别的地图数据,并且渲染所述第二区域包括使用第二缩放级别的地图数据,其中所述第二缩放级别是具有比所述第一缩放级别更低的对应放大率和更低的地图密度的较低缩放级别。
31.根据权利要求27所述的计算机实施的方法,还包括确定所述地图表面平面上的第二区域单位,其中所述阈值是在所述第一区域单位的所述第一尺寸在所述查看平面上的所述投影与所述第二区域单位的第二尺寸在所述查看平面上的投影匹配处。
32.根据权利要求27所述的计算机实施的方法,其中确定所述边界基于所述第一区域单位的所述第一尺寸在所述查看平面上的所述投影与所述查看平面的一个像素的高度的比率。
33.根据权利要求32所述的计算机实施的方法,其中所述边界由等式Ys=G(Z,dYm/dYs,T)确定,其中Ys是所述地图表面平面的沿着所述第一尺寸的深度,Z是缩放级别,dYm/dYs是所述第一区域单位的所述第一尺寸在所述查看平面上的所述投影比上所述查看平面的沿着所述第一尺寸的增量距离,并且T是所述查看平面与所述地图表面平面之间的所述入射角度。
34.根据权利要求33所述的计算机实施的方法,其中所述边界通过将dYm/dYs设置成等于二的常数被确定。
35.根据权利要求27所述的计算机实施的方法,还包括使用所述计算机设备来请求用于渲染所述第一区域单位的所述投影和所述第二区域单位的所述投影的地图数据。
36.根据权利要求35所述的计算机实施的方法,其中请求地图数据包括提供所述显示设备的分辨率作为所述请求的部分。
37.根据权利要求35所述的计算机实施的方法,其中请求地图数据包括从在不同计算机设备上存储的数据库请求所述地图数据。
38.一种计算机设备,包括:
通信网络接口;
一个或者多个处理器;
耦合到所述一个或者多个处理器的一个或者多个存储器;
耦合到所述一个或者多个处理器的显示设备;
其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器:
确定地图表面平面和查看平面,其中所述查看平面在相对于所述地图表面平面的非零入射角度处;
确定所述地图表面平面上的第一区域单位,所述第一区域单位代表当所述查看平面在相对于所述地图表面平面的零入射角度处时通过所述查看平面在第一缩放级别被查看的地图区域,其中所述第一区域单位具有沿着所述地图表面平面的两个尺寸;
当所述查看平面在相对于所述地图表面平面的所述非零入射角度处时,确定所述查看平面上的边界,其中所述第一区域单位的沿着所述地图表面平面的第一尺寸向沿着所述查看平面的第一尺寸上的投影处于阈值;
在所述查看平面上使用第一地图数据密度来渲染所述地图表面平面的第一区域在所述边界的一侧上的投影,并且使用比所述第一地图数据密度更低的第二地图数据密度来渲染所述地图表面平面的第二区域在所述边界的第二侧上的投影。
39.根据权利要求38所述的计算机设备,其中所述地图表面平面上的所述第一区域单位当所述地图表面平面在所述第一缩放级别被渲染并且所述查看平面在相对于所述地图表面平面的零入射角度处时与所述查看平面的像素对应;并且
还包括确定所述地图表面平面上的第二区域单位,所述第二区域单位当所述地图表面平面在第二缩放级别被渲染并且所述查看平面在相对于所述地图表面平面的零入射角度处时与所述查看平面的像素对应,并且其中所述第二区域单位代表所述地图表面平面的比所述第一区域单位更大的区域。
40.根据权利要求39所述的计算机设备,其中所述阈值是所述查看平面的一个像素的高度。
41.根据权利要求38所述的计算机设备,其中所述阈值是在所述第一区域单位的所述第一尺寸在所述查看平面上的所述投影与所述第二区域单位的第二尺寸在所述查看平面上的投影匹配处。
42.根据权利要求38所述的计算机设备,其中基于所述第一区域单位的所述第一尺寸在所述查看平面上的所述投影与所述查看平面的一个像素的高度的比率确定所述边界。
43.根据权利要求42所述的计算机设备,其中所述边界由等式Ys=G(Z,dYm/dYs,T)确定,其中Ys是所述地图表面平面的沿着所述第一尺寸的深度,Z是缩放级别,dYm/dYs是所述第一区域单位的所述第一尺寸在所述查看平面上的所述投影比上所述查看平面的沿着所述第一尺寸的增量距离,并且T是所述查看平面与所述地图表面平面之间的所述入射角度。
44.根据权利要求43所述的计算机设备,其中所述边界通过将dYm/dYs设置成等于二的常数被确定。
45.根据权利要求38所述的计算机设备,其中渲染所述地图表面平面的所述第一区域的所述投影基于所述第一缩放级别的地图数据,并且渲染所述地图表面平面的所述第二区域的所述投影基于第二缩放级别的地图数据,其中所述第二缩放级别是具有比所述第一缩放级别更低的对应放大率和更低的地图密度的较低缩放级别。
46.根据权利要求45所述的计算机设备,其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器请求用于渲染所述地图表面平面的第一区域的所述投影的第一缩放级别地图数据和用于渲染所述地图表面平面的第二区域的所述投影的第二缩放级别地图数据。
47.根据权利要求46所述的计算机设备,其中所述请求包括关于所述显示设备的分辨率的信息作为所述请求的部分。
48.根据权利要求47所述的计算机设备,其中请求地图数据包括从在不同计算机设备上存储的数据库请求所述地图数据。
49.一种计算机设备,包括:
通信网络接口;
一个或者多个处理器;
耦合到所述一个或者多个处理器的一个或者多个存储器;
耦合到所述一个或者多个处理器的显示设备;
其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器:
确定地图表面平面和查看平面,其中所述查看平面在相对于所述地图表面平面的非零入射角度处;
确定所述地图表面平面上的第一区域单位,所述第一区域单位代表当所述查看平面在相对于所述地图表面平面的零入射角度处时通过所述查看窗口平面的像素在第一缩放级别被查看的地图区域,其中所述第一区域单位具有沿着所述地图表面平面的两个尺寸;
确定所述地图表面平面上的第二区域单位,所述第二区域单位代表当所述查看平面在相对于所述地图表面平面的零入射角度处时通过所述查看窗口平面的像素在第二缩放级别被查看的地图区域,其中所述第二区域单位具有沿着所述地图表面平面的两个尺寸;
当所述查看平面在相对于所述地图表面平面的所述非零入射角度处时,确定所述地图表面平面上的边界,其中所述第一区域单位的沿着所述地图表面平面的第一尺寸向沿着所述查看平面的第一尺寸上的投影处于阈值;
创建图像,所述图像包含使用第一地图数据密度的、所述地图表面平面的所述第一区域单位在所述边界的一侧上的投影,以及使用比所述第一地图数据密度更低的第二地图数据密度的、所述地图表面平面的所述第二区域单位在所述边界的第二侧上的投影;并且
发送所述地图表面的所述投影的所述图像。
50.根据权利要求49所述的计算机设备,其中所述一个或者多个存储器包括在其中存储的计算机可执行指令,所述计算机可执行指令在由所述一个或者多个处理器执行时,使所述一个或者多个处理器:
接收关于客户端计算机设备的显示分辨率的信息。
51.根据权利要求50所述的计算机设备,其中所述边界由等式Ys=G(Z,dYm/dYs,T)确定,其中Ys是所述地图表面平面的沿着所述第一尺寸的深度,Z是缩放级别,dYm/dYs是所述第一区域单位的所述第一尺寸在所述查看平面上的投影与所述查看平面的沿着所述第一尺寸的增量距离的比率,并且T是所述查看平面与所述地图表面平面之间的所述入射角度。
52.根据权利要求51所述的计算机设备,其中所述边界通过将所述比率dYm/dYs设置成等于二的常数被确定。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/271,391 | 2011-10-12 | ||
US13/271,391 US20130093750A1 (en) | 2011-10-12 | 2011-10-12 | Use of banding to optimize map rendering in a three-dimensional tilt view |
US13/271,427 US8243102B1 (en) | 2011-10-12 | 2011-10-12 | Derivative-based selection of zones for banded map display |
US13/271,427 | 2011-10-12 | ||
PCT/US2012/056209 WO2013055507A1 (en) | 2011-10-12 | 2012-09-20 | Use of banding to optimize map rendering in a three-dimensional tilt view |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103959339A true CN103959339A (zh) | 2014-07-30 |
CN103959339B CN103959339B (zh) | 2018-02-02 |
Family
ID=48082288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280059532.1A Active CN103959339B (zh) | 2011-10-12 | 2012-09-20 | 使用条带化以优化三维瓦片视图中的地图渲染 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP2766876B1 (zh) |
CN (1) | CN103959339B (zh) |
DE (1) | DE202012013439U1 (zh) |
WO (1) | WO2013055507A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719335A (zh) * | 2016-02-23 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 一种地图图像渲染方法、装置以及车载终端 |
CN107633554A (zh) * | 2017-03-16 | 2018-01-26 | 柳州桂通科技股份有限公司 | 地面移动目标及其和所处位置的三维场景的展示方法 |
CN109074356A (zh) * | 2015-08-07 | 2018-12-21 | 谷歌有限责任公司 | 用于在低带宽数字地图应用中选择性地并入影像的***和方法 |
CN109920056A (zh) * | 2019-03-18 | 2019-06-21 | 百度在线网络技术(北京)有限公司 | 建筑物渲染方法、装置、设备和介质 |
CN110347769A (zh) * | 2019-07-09 | 2019-10-18 | 东方网力科技股份有限公司 | 多层级地图瓦片的处理方法、装置、设备和存储介质 |
CN110376625A (zh) * | 2019-07-29 | 2019-10-25 | 北京新海汇仓储有限公司 | 用于仓储***快速定位方法 |
CN117827915A (zh) * | 2024-03-01 | 2024-04-05 | 昆明麦普空间科技有限公司 | 一种快速矢量切片***及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110047123B (zh) * | 2019-04-12 | 2023-01-10 | 腾讯大地通途(北京)科技有限公司 | 一种地图渲染方法、装置、存储介质及计算机程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742924A (en) * | 1994-12-02 | 1998-04-21 | Nissan Motor Co., Ltd. | Apparatus and method for navigating mobile body using road map displayed in form of bird's eye view |
US20050035883A1 (en) * | 2003-08-01 | 2005-02-17 | Kenji Kameda | Map display system, map data processing apparatus, map display apparatus, and map display method |
US20050219268A1 (en) * | 2004-03-30 | 2005-10-06 | Kyle Henry M | System for managing the navigational usability of an interactive map |
CN101042775A (zh) * | 2007-04-03 | 2007-09-26 | 浙江大学 | 体三维显示中的体素数据生成方法 |
US7353114B1 (en) * | 2005-06-27 | 2008-04-01 | Google Inc. | Markup language for an interactive geographic information system |
US20110191014A1 (en) * | 2010-02-04 | 2011-08-04 | Microsoft Corporation | Mapping interface with higher zoom level inset map |
US20110221767A1 (en) * | 2010-03-09 | 2011-09-15 | Andrew Kostrzewski | OMNIDIRECTIONAL IMAGING OPTICS WITH 360º-SEAMLESS TELESCOPIC RESOLUTION |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11195132A (ja) * | 1997-10-31 | 1999-07-21 | Hewlett Packard Co <Hp> | テクスチャマッピング用バッファ、3次元グラフィクス処理装置、3次元グラフィクス処理システム、3次元グラフィクス処理方法および処理プログラムが記憶された記憶媒体 |
JP2002098538A (ja) * | 2000-09-27 | 2002-04-05 | Alpine Electronics Inc | ナビゲーション装置および擬似三次元地図情報表示方法 |
US8078641B2 (en) * | 2007-04-25 | 2011-12-13 | Mitac International Corporation | Adjusting spatial operations based on map density |
-
2012
- 2012-09-20 WO PCT/US2012/056209 patent/WO2013055507A1/en active Application Filing
- 2012-09-20 CN CN201280059532.1A patent/CN103959339B/zh active Active
- 2012-09-20 EP EP12840163.5A patent/EP2766876B1/en active Active
- 2012-09-20 DE DE202012013439.6U patent/DE202012013439U1/de not_active Expired - Lifetime
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742924A (en) * | 1994-12-02 | 1998-04-21 | Nissan Motor Co., Ltd. | Apparatus and method for navigating mobile body using road map displayed in form of bird's eye view |
US20050035883A1 (en) * | 2003-08-01 | 2005-02-17 | Kenji Kameda | Map display system, map data processing apparatus, map display apparatus, and map display method |
US20050219268A1 (en) * | 2004-03-30 | 2005-10-06 | Kyle Henry M | System for managing the navigational usability of an interactive map |
US7353114B1 (en) * | 2005-06-27 | 2008-04-01 | Google Inc. | Markup language for an interactive geographic information system |
CN101042775A (zh) * | 2007-04-03 | 2007-09-26 | 浙江大学 | 体三维显示中的体素数据生成方法 |
US20110191014A1 (en) * | 2010-02-04 | 2011-08-04 | Microsoft Corporation | Mapping interface with higher zoom level inset map |
US20110221767A1 (en) * | 2010-03-09 | 2011-09-15 | Andrew Kostrzewski | OMNIDIRECTIONAL IMAGING OPTICS WITH 360º-SEAMLESS TELESCOPIC RESOLUTION |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109074356A (zh) * | 2015-08-07 | 2018-12-21 | 谷歌有限责任公司 | 用于在低带宽数字地图应用中选择性地并入影像的***和方法 |
CN105719335A (zh) * | 2016-02-23 | 2016-06-29 | 腾讯科技(深圳)有限公司 | 一种地图图像渲染方法、装置以及车载终端 |
CN107633554A (zh) * | 2017-03-16 | 2018-01-26 | 柳州桂通科技股份有限公司 | 地面移动目标及其和所处位置的三维场景的展示方法 |
CN109920056A (zh) * | 2019-03-18 | 2019-06-21 | 百度在线网络技术(北京)有限公司 | 建筑物渲染方法、装置、设备和介质 |
CN109920056B (zh) * | 2019-03-18 | 2023-08-01 | 阿波罗智联(北京)科技有限公司 | 建筑物渲染方法、装置、设备和介质 |
CN110347769A (zh) * | 2019-07-09 | 2019-10-18 | 东方网力科技股份有限公司 | 多层级地图瓦片的处理方法、装置、设备和存储介质 |
CN110376625A (zh) * | 2019-07-29 | 2019-10-25 | 北京新海汇仓储有限公司 | 用于仓储***快速定位方法 |
CN117827915A (zh) * | 2024-03-01 | 2024-04-05 | 昆明麦普空间科技有限公司 | 一种快速矢量切片***及方法 |
CN117827915B (zh) * | 2024-03-01 | 2024-06-25 | 昆明麦普空间科技有限公司 | 一种快速矢量切片***及方法 |
Also Published As
Publication number | Publication date |
---|---|
DE202012013439U1 (de) | 2017-01-17 |
WO2013055507A1 (en) | 2013-04-18 |
EP2766876B1 (en) | 2017-12-27 |
EP2766876A4 (en) | 2016-08-03 |
EP2766876A1 (en) | 2014-08-20 |
CN103959339B (zh) | 2018-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103959339A (zh) | 使用条带化以优化三维瓦片视图中的地图渲染 | |
US8243102B1 (en) | Derivative-based selection of zones for banded map display | |
US8274524B1 (en) | Map rendering using interpolation of style parameters across zoom levels | |
US9384596B2 (en) | Visualization of obscured objects in 3D space | |
US6885939B2 (en) | System and method for advanced 3D visualization for mobile navigation units | |
US8718922B2 (en) | Variable density depthmap | |
US20130093750A1 (en) | Use of banding to optimize map rendering in a three-dimensional tilt view | |
US20090303251A1 (en) | Displaying, processing and storing geo-located information | |
US7305396B2 (en) | Hierarchical system and method for on-demand loading of data in a navigation system | |
US8868338B1 (en) | System and method for displaying transitions between map views | |
US20140015919A1 (en) | Reimaging Based on Depthmap Information | |
EP2555166A1 (en) | Space error parameter for 3D buildings and terrain | |
US20110169826A1 (en) | Universal collaborative pseudo-realistic viewer | |
CN104221008A (zh) | 沿路线预取地图图块数据 | |
US8730264B1 (en) | Determining when image elements intersect | |
CN111078814A (zh) | 一种基于瓦片地图的地图绘制方法 | |
US9679349B2 (en) | Method for visualizing three-dimensional data | |
US12031836B2 (en) | Map data adjustments for anomaly correction | |
EP1435508A2 (en) | Multiresolution image synthesis for navigation | |
CN102024377B (zh) | 一种3d地图分层显示方法及其装置 | |
KR101487454B1 (ko) | Lod 영상 병렬처리방법 | |
CN111986320B (zh) | 一种面向智慧城市应用的dem与倾斜摄影模型空间贴合优化方法 | |
Yin | Mobile 2D and 3D Spatial Query Techniques for the Geospatial Web | |
Panjettykumaradevan | As Built Survey of road side features for 3D GIS application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
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 |