附图简述
上面的概述以及下面的详细描述在结合附图阅读时能更好地理解。为了例示本发明,示出本发明的各方面。然而,本发明不受限于所讨论的特定方面。包括以下附图:
图1例示当前公开主题在线性和非线性地图之间来回切换的能力;
图2例示映射到线性地图上的各点之间的空间关系可不同于映射到非线性地图上的各点之间的空间关系;
图3例示映射到线性地图上的各点之间的空间关系有时可与映射到非线性地图上的点之间的空间关系相同或相似;
图4例示代表性非线性地图的一部分,其中非线性地图的不同部分可具有应用于其的不同变换,使得非线性地图的表示明显与相同地区的“街道地图”不同;
图5例示映射软件如何批注非线性地图以突出显示要被变换到线性制图内的区域,其中这些区域由六个示例性三角形定义的;
图6例示图5所示的这六个三角形如何映射到线性地图上,以及这些三角形的形状如何可以与被映射到非线性地图上的相同三角形的形状不同,因而显出在非线性上下文中地图空间如何得到变形;
图7A例示已经被映射到非线性地图上的一全组三角形,其中连同对该三角形全组描绘参考图5和6讨论的这六个三角形,并且该三角形全组形成非线性空间到线性空间的映射;
图7B例示配置用于转换的三角形区域如何以不同等级的粒度细分以提供更为精确的结果;
图8例示图7所示的相同映射,但此时是在线性地图的上下文中,藉此演示该三角形全组和伴随的六个突出显示的三角形在线性设置中如何改变(相对于非线性设置);
图9例示如何使用一组区域来指定从线性地图至非线性地图的映射的边界,且照此类推反之亦然;
图10在数学图解(带有包含的步骤)中例示从非线性地图映射至线性地图的转换如何进行,并藉此示出相反的转换可如何进行,即通过反演所示的步骤;
图11例示从非线性地图至线性地图并回至非线性地图的一个来回转的换(或反之亦然-)不产生标绘数据的空间变形,藉此示出能可视评估的各种变换算法的质量;
图12A例示与图11相比,对劣于图10中所示且在图11中使用的算法,转换变形是如何发生的;
图12B详细地例示图12A所示的变形类型,而这些变形在当前公开主题中可以通过使用诸如图10所示的算法来避免;
图13例示描绘诸如图12A和12B所示的转换变形的另一方法;
图14例示通过示出被突出显示为不支持坐标转换的特定区域,一些地区不必(或者尚未标记为)支持从线性地图至非线性地图的转换,或反之亦然的概念;
图15A例示从线性地图至非线性地图或者反之亦然的转换过程的示例性框图;
图15B继续例示图15A,例示或从线性地图至非线性地图或反之亦然的转换过程的示例性框图;以及
图16例示用于当前公开主题各种方面的示例性应用编程接口。
详细描述
线性和非线性映射的各方面
在当前公开主题的一个方面,图1例示在线性和非线性地图之间来回切换的能力。图1描绘用户在线性地图(例如街道地图)与非线性地图(例如地铁或运输地图)之间进行切换的愿望。通过在不同地图之间切换,用户能快速确定迁移的距离、方向和模式以到达所需位置或者与其它人员会面,或者用于其它目的。
例如,非线性地铁地图104可将两个人描述为在地图104上的点,第一点是“Bob”110而第二点是“Julie”112,其中“Julie”112具有指向她的路标。“Bob”110和“Julie”112想要在某个点会面,并且要完成该会面的方法可以是乘坐地铁或“隧道”。如果“Bob”110想要会面“Julie”112,则他可以通过检查非线性地铁地图104搭乘适当的列车。一旦他到地面上,他就可能想要切换到线性地图106。
一般而言,这样的非线性地图104的用户可能想要切换100至物理地标彼此成线性比例描绘的线性地图106,因为这样的线性表示在某些上下文中更为直观。因而,在线性地图106中,再次描绘“Bob”110和“Julie”112,但他们的位置此时以线性比例示出,与在前一地图104中的非线性比例相反。
诸如“Bob”110的用户可能会在不久之后想切换回非线性地图,即使非线性地图已随时间改变。因而,在图1中,“Bob”110可以从上述线性地图106切换102至新的非线性地图108。在该非线性地图108中,“Julie”112描绘为点而“Bob”110描绘为路标。现在“Bob”110与“Julie”112之间的关系相对于任何物理地标而言是非线性的(它在前一地图106中可能是线性的)。
在线性和非线性地图之间的这类来回切换可以无限地进行。而且重要的是,这样的切换可以在对于“Bob”110与“Julie”112在线性和非线性地图上的实际位置没有任何变形的情况下完成。如将在下面更详细地显示的,公开主题的本方面克服置于地图上各点由于与每一次线性和非线性地图之间的切换(反之亦然)相关联的误差而最终累积成的变形。
在本文公开的另一方面,图2例示映射到线性地图上的各点之间的空间关系可与映射到非线性地图上的点之间的空间关系不同。具体地,在图2中,在线性“街道地图”200上,Bob 206(左侧)出现在Julie 204(右侧)之下,但在非线性/不规则的地铁地图202上,Bob 206出现在Julie 204之上。当在线性和非线性地图之间移动时,相对显示位置的这几类切换是常见的。如上已经提到的,一个原因是非线性地图可让其地图的各种区域被拉伸、旋转、压缩等等。
因而,即使Bob 206和Julie 204在线性地图200中所处位置与非线性地图202中的精确相同,他们的相对位置以及相对于诸地图的位置也可不同。例如,在图2的线性地图200和非线性地图中,Julie 204都位于“Charing Cross”附近。Bob 206同样位于两个地图200和202上的“Green Park”附近。然而,他们相对于彼此的位置如上所述在两个地图200和202之间改变。而且,即使他们的位置没有相对于彼此改变,他们也可以在从一个地图到另一个地图时改变(由于地图变形,特别是在非线性的情况下)。
当然,如图3所示,映射到线性地图上的各点之间的空间关系有时可以与映射到非线性地图上的各点之间的空间关系相同或相似。例如,在图3中,Bob306相对于Julie 304的方向在线性地图300中实际上与在非线性地图302中相同。而且,Bob 306和Julie 304之间的距离实际上在两个地图300和302中相同。因而,就显得从线性地图300到非线性地图302的转换(或反之亦然)实际上没有引起变形。然而实际上讲,这与其说是规则,更可能是例外,并且在大量这样的转换中,在不同地图上的各映射点之间方向、距离等会不同,由此当前公开主题处理这些情形的能力也会有所不同。
图4例示代表性非线性地图的一部分,其中非线性地图的不同部分具有应用于其的不同变换,使得非线性地图的表示明显不同于相同地区的“街道地图”。(图4还用作有关随后大部分附图尤其是图5-8和11-16的讨论基础)。
该特定的非线性地图400示出伦敦地铁“隧道”地图。为例示该地图400的非线性性质,将焦点集中于其中例示的一对车站上是有启发的。例如,示出“Oxford Circus”402以及“Tottenham Court Road”404、“Weston Street”406、“Goodge Street”408,这四个车站中的前三个定义了它们之间的三角形。从图4,显得好象“Goodge Street”408到“Tottenham Court Road”404比它到“Warren Street”406近得多。然而,在线性设置中,诸如典型的街道地图中,“Goodge Street”408大约是“Tottenham Court Road”404和“Warren Street”406之间的一半处。而这只是一个琐碎且简单的示例,因为在线性和非线性地图之间(或者在线性地图与其它类型的线性地图之间,或者在非线性地图与其它类型的非线性地图之间)可涉及其它类型的变形,如已经在上面讨论的。而且,本领域的技术人员将容易地意识到在将各点或数据从一个地图映射到另一个地图时可发生的不同种类的变形。
图5例示映射软件如何批注非线性地图以突出显示要变换到线性制图中的区域,其中这些范围由六个示例性三角形定义。图5所示的三角形T1、T2、T3、T4、T5和T6,分别对应于附图数字502、504、506、508、510和512,示出将非线性地图500转换成线性地图(图6所示)的一种方法是首先定义在地图500上的已知位置处具有其顶点的一或多个三角形(或一组三角形)。
例如,T1 502具有其在“Russell Square”、“Holborn”和“Chancery Lane”之间的顶点。T2 504具有其在“Holborn”和“Chancery Lane”和“Mansion House”之间的顶点,以此类推。而且,应当注意,即使T1 502和T2 504碰巧是邻接的,但它们不必如此,正如在图5中可见,T3 506与T1 502和T2 504共享一个顶点即“Holborn”,但它并不邻接,同样T4 508、T5 510和T6 512也不邻接。这六个示例性三角形定义要从非线性地图映射到线性地图(图6所示)的区域。它们的特定形状将由变换来扭曲,且由此将扭曲这些三角形中的数据。
现在转到图6,它例示图5所示的这六个三角形如何映射到线性地图上,并且这些三角形的形状可以如何与被映射到非线性地图上的相同三角形的形状是如何不同,因而显出在非线性上下文中地图空间如何得到变形。按照图6所示的三角形T1 602、T2 604、T3 606、T4 608、T5 610和T6 612的形状,与图5所示的T1 502、T2 504、T3 506、T4 508、T5 510和T6 512相比,该变形是清楚的。由于这六个三角形被变形,因此在这些三角形中的对应点和数据也被变形。当前公开主题的许多优点之一是,它可以适当地将这些点和数据从非线性地图空间中的一组三角形映射到线性地图空间中另一组对应的三角形(反之亦然)。
换言之,这六个三角形具有“双重”性质,即它们可以被映射到线性空间和非线性空间中,即使它们的相对形状在各自的空间上下文中可能不同。然而,在当前公开主题的一个方面,在两种上下文中保持相同的是三角形的顶点。因而,如已经提到的,图6中的三角形T1 602具有与图5中的三角形T1502相同的三个顶点,这对于图5和6中所有其它三角形也是如此。
接着,图7A例示已经映射到非线性地图(其中该地图在无图4的三角形的情况下示出)的三角形全组。参考图5和6讨论的这六个三角形连同该三角形全组一起描绘,其中该三角形全组形成非线性空间到线性空间的映射。例如,典型的非线性地图700被划分成三角形的某个集合,如由三角形714、716和718(考虑可读性以“虚”线引用)和参考图5和6讨论的、现在熟悉的三角形T1 702、T2 704、T3 706、T4 708、T5 710和T6 712例示。
由三角形702和714例示的一组映射三角形可具有其在已知位置处诸如伦敦地铁“隧道”车站设置的顶点。顶点的粒度等级将是上下文和设计相关的。例如,可在每一其它隧道站设置三角形或者可在任何两个隧道站之间使用若干顶点。因而,图7A所示的三角形尺寸和数量仅是示例性而非限制性的。可使用其它种类的三角形,如本领域的技术人员将容易地了解的。
例如,图7B例示如何以各种粒度等级细分针对配置的三角形区域以提供更为精确的结果。在非线性地图左边720处,在“Oxford Circus”、“Regent′sPark”和“Warren Street”之间定义一个三角形724。在非线性地图右边722处,该三角形724被两次细分:一次分成三个三角形然后再次分成九个三角形。三角形726和728代表包含在原三角形724中的九个三角形。如上所述,细分只是一个选项,而与之相反的情况也可能发生,即也可以将三角形组合起来以定义较大的三角形。
在一个方面,到现在为止所考虑的三角形映射可以是从非线性地图的笛卡儿X/Y平面到任何真实世界坐标诸如纬度和经度(,和高度,如果在笛卡儿空间中包括第三坐标)。例如,如果转换是从线性地图到非线性地图,则可以使用全球定位系统(GPS)来构造非线性地图(或者二维平面地图,三维空间地图,具有时间分量维度的四维空间地图等等)。
图8例示图7所示的相同映射,但此时是在线性地图的上下文中,藉此演示在线性设置中(相对于图7的非线性设置)三角形全组和伴随的六个突出显示的三角形如何改变。如预期的,这六个突出显示的三角形T1 802、T2 804、T3 806、T4 808、T5 810和T6 812连同非突出显示的三角形814、816和818中的一些一起,已经在转换至线性地图800期间被变形。然而,图7和图8中的三角形的顶点可保持相同。
当然,这里可以实现各种转换技术,其中例如,将包含N个三角形的一组基于线性的三角形转换成非线性设置,但其中只有一半数量(N/2)的三角形被映射在非线性地图上。或者反之亦然,其中通过使用各种插值技术将两倍数量的三角形映射在非线性地图上。在图7中使用的三角形数量碰巧与图8中使用的三角形数量相同,但这不是必须的。使用在线性和非线性两者设置中的相同顶点,这自然导致相同数量的三角形,但这只是一个示例性和非限制性方面。
在当前公开主题的另一感兴趣方面,图9例示可如何使用一组区域来指定从线性地图到非线性地图的映射的边界,且依次类推反之亦然。具体地,图9示出一组粗略的限定区域,用户、开发者或地图设计者可指定能够对其应用上述限定区域的图4的非线性或不规则地铁/隧道地图。通过能够表示正常线性街道地图上的这些范围,给予开发者或地图设计者对由非线性地图覆盖的地理区域的良好可视理解。值得注意的是,这些粗略的限定区域不必覆盖三角形定义的所有地区;地图的设计者可以只选择非线性地图最佳覆盖的地区。
因而,在图9中,在线性地图900上,开发者可选择若干范围R1 914、R2 916、R3 918、R4 920、R5 922、R6 924和R7 927。这些范围可一起覆盖开发者(或用户)想要聚焦的地铁的相关部分。如图9例示的这些区域,它们覆盖在前面的附图中讨论的突出显示的三角形:T1 902、T2 904、T3 906、T4 908、T5 910和T6 912。这些区域还覆盖可表示本主题的开发者或用户感兴趣的区域。对可使用的区域数量或这些区域的大小实际上没有限制。而且,尽管所示的区域是邻接的,但这不是必须的。本技术的用户或开发者可仅选择有兴趣要转换到另一个地图中的地区。值得注意的是,在图9中,所示的线性地图带有被选区域,因为这种类型的设置允许用户拥有对于什么信息重要的更为直观的感受。然而,可替换地,如果用户或开发者更熟悉非线性设置,则可在非线性地图上选择相似区域随后将它们转换成线性地图。例如,可以想象地铁工人和职员使用带有所选的相关区域的地铁地图,随后查看这样的地铁地图是如何对应于真实世界的线性街道地图。
(a)线性至非线性映射和(b)非线性至线性映射的转换技术的各方面
接着,图10在数学图解1000中显示将线性映射转换至非线性映射和相反过程的技术。例如,在图10中,在非线性映射域中绘制三角形“三角形1”。该三角形具有顶点A1、B1和C1。这些顶点在非线性域中可以与它们在线性域中相同。例如,A1可以是地铁站,诸如图2中的“Warren Street”;B1可以是另一个地铁站,诸如“Oxford Circus”;以及C1可以是第三地铁站,诸如“Tottenham Court Road”。这些地铁站每一个,即即在三角形的上下文中的顶点,可以精确地相同,无论地图是线性还是非线性的。
为了将“三角形1”转换至“三角形2”,后者通过纬度、经度和高度坐标保持在线性域中(与非线性域指定的X和Y坐标相对),可采取若干步骤。例如,如果点“P1”要从非线性地图映射到线性地图,则在三角形2中,第一步骤是在三角形1中绘制从三角形1中的某个顶点至P1的向量。如图10所示,向量VA1P1是从A1到P1绘制的。在软件上下文中,向量VA1P1是从A1至P1计算的。
一旦计算了该向量,在第二步骤中,将它外推至上述顶点的对边。因而,计算另一个向量:V′A1P1。该向量随后将与三角形1的顶点C1与B1之间的边相交。接着,在第三步骤中,计算这两个向量VA1P1和V′A1P1之比。该步骤之后,在第四步骤中,计算边C1P′与B1P′的长度的比例或百分比,其中P′是上述边的交点。于是这就提供足够的信息将点P1映射到如前所述保持线性域中的三角形2内。
为了相对于定义三角形2的点A2、B2和C2将P1放在正确的位置中,可采取下列步骤:首先,在步骤5(继续到现在为止所考虑的步骤1-4的过程),使用所计算的边C1P′与B1P′的长度比例来计算P2′,它现在代表在顶点B2与C2之间的交点(该比例是在步骤4中计算的)。一旦计算了P2′,就可在步骤6中使用步骤3计算的结果。
在步骤6中,使用新计算的P2′以及VA1P1与V′A1P1之比,就能计算新计算的向量VA2P2。一旦计算了该向量,所有要做的就是在步骤7中基于从VA2P2以及从A2位置获得的结果计算P2。在获得步骤7中的计算之后,找到P2。并且P2在三角形2中的这一位置表示该点相对于顶点A2、B2和C2应当处在的点。该过程自然可以用于基于P2在三角形2中所处位置回到三角形1中的P1。因而该过程不仅用于从非线性地图至线性地图的转换,也用于从线性地图至非线性地图的转换。换言之,这是对称的。
这种对称的一个主要好处是线性和非线性地图之间的转换可以无限次地进行,而不会引起有关点P1和P2位置的任何变形,这也是上面提到的任何先前映射技术的主要缺点。
图11和12A、12B例示该点。首先,图11示出一个来回的转换(在该情形中是从非线性地图至线性地图并返回至非线性地图)是如何对于标绘数据不产生空间变形,藉此示出能被可视评估的各种变换算法的质量。具体地,对称变换诸如参考图10所讨论的产生0来回误差(与图12A和12B相比)。在该非线性地图1100中,非线性地图上的X和Y坐标变换成纬度和经度坐标,并且随后变换回X和Y坐标。由于图11中使用的算法是对称的,因此返回到原来的X和Y值。由此,座标线1102是简单的水平线,这与使用非对称技术产生的图11中的波状线相反。如此,能可视地评估各种变换算法的质量。
因而,与图11相比,图12A例示非线性地图1200,在其中水平线1202是波状的,因为来回转换产生因转换算法的非对称性所引起的误差。图12B实际上表示图12A的放大版本,并且更详细地示出所产生的来回误差种类。因而,水平线1202仍然是波状的。在来回转换的第一步起始1206时,存在在非线性地图1200上一特定点的某个X和Y值。在来回转换的结果1204,可以清楚地看到“起始”点在与“结果”点处于不同位置。换言之,在“起始”处的X和Y坐标与在“结果”处的X和Y坐标不同,并且这就是误差,因为在“起始”和“结果”处的X和Y坐标本应相同。如前所述的,参考图10讨论的转换技术避免产生这一误差。
图13提供示出误差变形地图的另一个有用示图。该地图允许用户可视地检查他们已经定义的所有三角形中出现的变换误差,以便为随后采取纠正动作。在图像1300中,较亮的误差指示较大误差变形的区域。黑色区域指示零误差区域,它们对应于所定义的三角形的各条线。
三角形ABC在图像1300中定义,其中顶点A对应于“Oxford Circus”(如图7A所示),顶点B对应于“Regent′s Park”而顶点C对应于“Warren Street”。可以看到,在三角形ABC的边缘,误差为零,因为边缘是黑色的;然而,在三角形ABC中间,误差最大,做出了白化处理。这些误差的出现是因为在图像1300中所示的转换技术不对称。如果使用的是对称技术,诸如参考图10讨论的技术,则整个图像1300将显示为黑色,因为不会有误差产生。
接着,图14例示通过示出突出显示为不转换的特定区域,一些地区不必(尚未)从线性地图转换至非线性地图或反之亦然的概念-。例如,图14中的地图1400给予开发者或地图设计者可视的反馈,它指示哪些范围还没有为其定义的三角形(且由此不支持X/Y至纬度、经度和高度变换)。这些待定义地区如下使用蓝色矩形来突出显示。它们中的一些是开发者或者地图设计者忘了为其指定三角形的区域1402(例如,右部中/上,Russell Square),而另一些(右下)指定开发者或地图开发者已经决定的区域将在该地图上不受支持的地区1404。
各示例性类的诸方面
可使用各种类来实现当前公开主题的上述方面。例如,“NonLinearMapInfo(非线性地图信息)”类可用于执行下列功能性:(1)使用上述粗粒度限定地区来确定它所表示的非线性地图是否适于要被显示的地图位置;以及(2)在合适时,加载该“NonLinearMapView(非线性地图视图)”类并且将它指向双三角形数据和地图图像。
“NonLinearMapView”类进而可提供下列功能性:(1)包含管理地图中所有三角形的“LocationTriangleManager(位置三角形管理器)”类;(2)包含非线性地图图像(或者在需要时描绘一个非线性地图图像的能力)。上面提到的“LocationTriangleManager”类可执行下列功能性:(1)维护在X/Y至纬度/经度/高度坐标中使用的LocationTriangle(位置三角形)的(排序)列表;(2)选择用于给定X/Y或纬度/经度点的正确LocationTriangle;(3)提供执行X/Y->纬度/经度和纬度/经度->X/Y变换的能力;(4)提供计算在任何给定三角形(或者任何给定点)中的误差变形的能力,其中计算平均和最大变形两者;(5)提供使用各种不同启发法将三角形分成子三角形的能力;(6)提供加载和保存“LocationTriangle”数据集合的能力。
这样的数据可与“LocationTriangle”类相关联,该类:(1)保存用于两个三角形的数据:(1)在非线性地图的X/Y图像表面上的三角形,以及在物理(真实世界)空间中的三角形,即纬度、经度和高度;(2)提供快速确定一个点是否包含在任一三角形中的能力;(3)提供在非线性地图X/Y与真实世界坐标系统之间转换在其中的点的能力。当然,该类和本文讨论的其它三个类仅是示例性而非限制性的。
线性和非线性映射的实现方面
在一个示例性实现中,在图15A和15B中,与参考图10讨论的主题一致,框图例示设计和使用任意地图的一种方法,无论这些地图是线性还非线性。框1500至1520是自说明的,特别是按照图10的情况下。它们提供可在任何系统中使用的一般实现,诸如在计算系统中,或者更具体地,在软件映射系统中。
通过该系统,例如适当熟练的程序员和其它非专业人员在操作地图图像时可以以下列方式应用和/或使用它们:(1)导入现有非线性和间隔不规则的地图图像到该系统中;(2)用真实世界物理位置数据快速批注非线性地图的图像(使用例如其它地图的组合来帮助指导他们的映射过程);(3)设计地图表面上一组三角形形状,这些三角形连接已知点并且定义边界条件,在边界条件内真实世界坐标和非线性地图上的点之间的转换会发生;(4)将这些三角形和位置点投影到各种地图上以检查由非线性地图及其用户批注所覆盖的地区;(5)检查非线性地图批注以确定需要纠正的不可接受误差变形的地区;(6)指导和帮助开发者或地图设计者纠正和最小化这些变形;(7)允许开发者或地图设计者查看在物理世界地图上定义的三角形所覆盖的地区,以及选择被非线性地图良好覆盖的、定义物理世界区域的粗略限定区域(可替换地,可以自动选择默认限定区域以在该过程中帮助用户);(8)在使用这些地图的任意软件应用的运行时间使用这些地图,同时在线性(例如街道地图)和非线性表面(例如地铁地图)两者上向用户传达地图数据;以及(9)在设计时间构造这些地图(相对于运行时间)。
因而,按照上述讨论,在当前公开主题的一个方面,任何有用的非线性或不规则形状的地图图像可分解成一系列双三角形。每一双三角形指定非线性地图上的X和Y地区,并且对应的真实世界区域具有纬度和经度坐标(由此称为“双三角形”)。具有可控制的误差量的变换或转换可以在线性和非线性地图之间双向进行。能够以若干不同投影显示地图数据的丰富设计表面对于完成此操作是有用的。
于是,在该方面,可以定义任意数量的子三角形以按需降低变换或转换误差。许多启发法有可能用于自动化该三角形细化过程。而且,为地图指定粗略限定地区可允许快速确定任何单个地图是否适用于显示一组地图坐标信息。
该双三角形及其相关点的系统可以在运行时间持久保存于文本或二进制文件中。为了灵活性,可使用诸如XML之类的文本表示。可替换地,为了压缩和性能,可使用二进制表示。在设计时间和运行时间两者,可以使用指定类来有效管理对所有这些用于坐标映射的双三角形的使用。因而,有可能的是,优化管理程序模块以允许有效访问普通使用的三角形。
换言之,该系统为非专业人员提供一种机制,它快速并以可预测的精确度来批注任意非线性且间隔不规则的地图,允许在软件应用中地图上投影这些基于位置的数据。这对于任何种类的软件应用是有用的,并且对于真实世界环境需要这些地图的人员所使用的移动设备尤其有用。
为此,可以使用由应用编程接口(API)支持的地图设计表面1600,诸如图16中例示的,来允许开发者方便地操作各种各样的线性和非线性地图。可以为非专业的开发者(或其它设计者)提供任何便利的编程和图形界面(不限于图16中的界面)来定义这些双三角形系统并使用它们将位置数据投影到地图图像上。图16例示用户或开发者可以“Draw triangles(绘制三角形)”、“Plot empty areas(标绘空地区)”、“Label all triangle Points(标记所有三角形点)”、“Calculate error[s]in triangle[s](计算三角形中的误差)”等等。这些选项仅是示例性的,并且本文讨论的其它方面可以方便地合并到这样的设计表面1600中,如本领域的技术人员将很容易了解的。
值得注意的是,在处理地图集合(有的线性,有的不规则)时的一个重要问题是要显示的满足用户需求的最佳地图是哪一个。在给出某个数据集合时,有若干地图可用。重要的是,应用能够选择可以最精确有效显示数据的地图。不象线性间隔的地图,有效显示的区域不能用简单的矩形或圆圈来定义。为此,可提供高性能和灵活机制用于指定给定的不规则或间距非线性的地图最适合的真实世界区域。当前公开主题可为此提供设计时间和运行时间两种机制。
因而,在另一方面,可提供允许非专业开发者或地图设计者可视地看到、理解和修改三角形集合的显示表面,这些三角形将管理给定地图的X/Y至纬度与经度的变换或转换。该设计表面可允许同时在非线性地图和其它地图表示诸如线性街道地图上显示映射三角形集合。结果是在允许在软件应用中按照本文描述的映射框架快速使用非线性地图方面有灵活性和可用性。
而且,可提供用于检测误差变形和重叠映射三角形的系统。由于一组三角形描述在X/Y和纬度/经度空间之间的有界变换或转换,在其自己拥有的内部变形情况下,因此具有两个明显重叠的三角形集合会有可能引入冲突的X/Y至纬度/经度映射。重要的是,能够在设计时间当指定定义地图变换的三角形时检测该情形。而且,当在变换中存在不可接受的误差量时,非专业人员应当能够在设计时间检测和修改该误差(实际的可接受误差将根据不同应用而改变)。随后该系统可提供该检测。还向开发者或地图设计者显示存在于X/Y至纬度/经度变换和纬度/经度至X/Y映射之间的地图三角形内变形的可视表示,从而允许开发者或地图设计者采取纠正动作。这样的纠正动作可包括根据需要定义附加的更精细粒度的映射三角形。
最后,尽管已经结合较佳方面按各附图所示描述了本发明,但要理解,可使用其它相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。例如,在本发明的各方面,公开了可视的身份机制。然而,与这些描述方面等价的其它机制也是本文的教导所虑及。因此,本发明应当不限于任何单一方面,而是按照所附权利要求书的外延与范围来解释。