任意线性和非线性地图的设计的制作方法

文档序号:6453754阅读:242来源:国知局
专利名称:任意线性和非线性地图的设计的制作方法
技术领域
本主题涉及计算领域,尤其涉及软件映射。 背景
不具有对真实世界空间(纬度、经度、高度或者物理世界中的其它度量) 的线性映射的地图是和常见也很有用,但难以通过普通软件系统来使用。这样 的非线性地图的示例包括地铁地图,滑雪地图,工业图表和基础结构图表(例 如,动力网格、电信网格地图和广域运输地图)。
在这类间距不规则的非线性地图上,空间被压縮、拉伸、旋转、或以其他 方式变形。这些变形的性质还经常在地图本身之内通过以不同方式变形地图的 不同区域而改变。例如,可拉伸一个区域,压縮另一个区域,以及旋转再一个 区域,-或者以上的组合等等。
因为这些非线性地图呈现的是物理空间的不规则表示,所以它们能够在很 小的显示屏内传达大量有用的信息。但却难以在非线性地图之上显示真实世界 位置数据,因为在这类间距不规则的地图上从纬度、经度和高度(或者物理世 界的其它坐标系统)到位置的映射很复杂且不规则。至少两个关键困难出现 (1)将真实世界位置映射到间距不规则的地图的能力,(2)将间距不规则的地 图上的点映射到物理世界坐标中的能力。
某些技术可用于外推在非线性的间距不规则地图之上的映射点的位置。通 常这些技术通过尝试从邻近点外推位置数据来工作,但这会很复杂、耗时且易 出错,特别是在地图数据间距不规则的系统中。因而,有利的是,提供允许用 户在设计时间或运行时间利用非线性映射技术的其它技术,它们对于适当熟练 的程序员或非专长于地图设计的复杂数学或制图学的其它人员是快速简单并 且易于使用的。
概述
提供允许设计和使用任意地图的技术,无论这些地图是线性的还是非线性 的。作为示例而非限制,可提供第一地像和第二地像。此外,可将多 个双三角形映射到第一地像和第二地像上,其中这多个双三角形在第 二地像中具有与第一地像中相同的顶点,但这些地图可以完全不同。 例如,第一地像可以是线性街道地图而第二地像可以是非线性地铁地 图。因为从第一地像转换到第二地像的任何点(或反之亦然)是对称 地转换,所以这些点将以与这些双三角形顶点的适当关系结束。
在另一方面,可将这多个双三角形中的至少一个选择到一个要从第一地图 图像转换到第二地像的区域中。这些区域可帮助用户和开发者磨练最佳的 信息传达地图(或其部分)。可替换地,这些区域还可用于排除地图或其部分, 使得这些区域不被转换。在又一方面,多个双三角形还可被细分为更多的子三 角形或者聚集成包容更多的三角形。本文公开各其它方面。
因而,应当注意,提供本概述以便用简化形式介绍下面在详细描述中进一 步描述的一些概念。本概述不是要标识要求保护主题的关键特征或本质特征, 也不应当用于帮助确定要求保护主题的范围。
附图简述
上面的概述以及下面的详细描述在结合附图阅读时能更好地理解。为了例 示本发明,示出本发明的各方面。然而,本发明不受限于所讨论的特定方面。 包括以下附图


图1例示当前公开主题在线性和非线性地图之间来回切换的能力;
图2例示映射到线性地图上的各点之间的空间关系可不同于映射到非线 性地图上的各点之间的空间关系;
图3例示映射到线性地图上的各点之间的空间关系有时可与映射到非线 性地图上的点之间的空间关系相同或相似;
图4例示代表性非线性地图的一部分,其中非线性地图的不同部分可具有 应用于其的不同变换,使得非线性地图的表示明显与相同地区的"街道地图"
不同;
图5例示映射软件如何批注非线性地图以突出显示要被变换到线性制图 内的区域,其中这些区域由六个示例性三角形定义的;
图6例示图5所示的这六个三角形如何映射到线性地图上,以及这些三角 形的形状如何可以与被映射到非线性地图上的相同三角形的形状不同,因而显 出在非线性上下文中地图空间如何得到变形;
图7A例示已经被映射到非线性地图上的一全组三角形,其中连同对该三 角形全组描绘参考图5和6讨论的这六个三角形,并且该三角形全组形成非线 性空间到线性空间的映射;
图7B例示配置用于转换的三角形区域如何以不同等级的粒度细分以提供 更为精确的结果;
图8例示图7所示的相同映射,但此时是在线性地图的上下文中,藉此演 示该三角形全组和伴随的六个突出显示的三角形在线性设置中如何改变(相对 于非线性设置);
图9例示如何使用一组区域来指定从线性地图至非线性地图的映射的边 界,且照此类推反之亦然;
图IO在数学图解(带有包含的步骤)中例示从非线性地图映射至线性地 图的转换如何进行,并藉此示出相反的转换可如何进行,即通过反演所示的步 骤;
图11例示从非线性地图至线性地图并回至非线性地图的一个来回转的换 (或反之亦然-)不产生标绘数据的空间变形,藉此示出能可视评估的各种变 换算法的质量;
图12A例示与图11相比,对劣于图10中所示且在图11中使用的算法, 转换变形是如何发生的;
图12B详细地例示图12A所示的变形类型,而这些变形在当前公开主题 中可以通过使用诸如图IO所示的算法来避免;
图13例示描绘诸如图12A和12B所示的转换变形的另一方法;
图14例示通过示出被突出显示为不支持坐标转换的特定区域, 一些地区 不必(或者尚未标记为)支持从线性地图至非线性地图的转换,或反之亦然的 概念;
图15A例示从线性地图至非线性地图或者反之亦然的转换过程的示例性
框图15B继续例示图15A,例示或从线性地图至非线性地图或反之亦然的 转换过程的示例性框图;以及
图16例示用于当前公开主题各种方面的示例性应用编程接口。
详细描述
线性和非线性映射的各方面
在当前公开主题的一个方面,图1例示在线性和非线性地图之间来回切换 的能力。图l描绘用户在线性地图(例如街道地图)与非线性地图(例如地铁 或运输地图)之间进行切换的愿望。通过在不同地图之间切换,用户能快速确 定迁移的距离、方向和模式以到达所需位置或者与其它人员会面,或者用于其 它目的。
例如,非线性地铁地图104可将两个人描述为在地图104上的点,第一点 是"Bob" U0而第二点是"Julie" 112,其中"Juie" 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中,Bob 306相对于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上的已知位置处具有其顶点的一或多个三角形(或一组三角形)。
例如,Tl 502具有其在"Russell Square" 、 "Holborn"和"Chancery Lane" 之间的顶点。T2 504具有其在"Holbom"和"Chancery Lane"和"Mansion House" 之间的顶点,以此类推。而且,应当注意,即使T1 502和T2 504碰巧是邻接 的,但它们不必如此,正如在图5中可见,T3 506与Tl 502和T2 504共享一 个顶点即"Holbom",但它并不邻接,同样T4 508、 T5 510和T6 512也不邻 接。这六个示例性三角形定义要从非线性地图映射到线性地图(图6所示)的 区域。它们的特定形状将由变换来扭曲,且由此将扭曲这些三角形中的数据。 现在转到图6,它例示图5所示的这六个三角形如何映射到线性地图上, 并且这些三角形的形状可以如何与被映射到非线性地图上的相同三角形的形 状是如何不同,因而显出在非线性上下文中地图空间如何得到变形。按照图6 所示的三角形T1 602、 T2 604、 T3 606、 T4 608、 T5 610禾卩T6 612的形状,与 图5所示的Tl 502、 T2 504、 T3 506、 T4 508、 T5 510和T6 512相比,该变形 是清楚的。由于这六个三角形被变形,因此在这些三角形中的对应点和数据也
被变形。当前公开主题的许多优点之一是,它可以适当地将这些点和数据从非 线性地图空间中的一组三角形映射到线性地图空间中另一组对应的三角形(反 之亦然)。
换言之,这六个三角形具有"双重"性质,即它们可以被映射到线性空间 和非线性空间中,即使它们的相对形状在各自的空间上下文中可能不同。然而, 在当前公开主题的一个方面,在两种上下文中保持相同的是三角形的顶点。因
而,如已经提到的,图6中的三角形T1 602具有与图5中的三角形T1 502相 同的三个顶点,这对于图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处,在"OxfordCircus" 、 "Regent's Park"和"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例示的这些区域,它们覆 盖在前面的附图中讨论的突出显示的三角形Tl 902、 T2 904、 T3 906、 T4 908、 T5 910和T6 912。这些区域还覆盖可表示本主题的开发者或用户感兴趣的区 域。对可使用的区域数量或这些区域的大小实际上没有限制。而且,尽管所示 的区域是邻接的,但这不是必须的。本技术的用户或开发者可仅选择有兴趣要
转换到另一个地图中的地区。值得注意的是,在图9中,所示的线性地图带有
被选区域,因为这种类型的设置允许用户拥有对于什么信息重要的更为直观的 感受。然而,可替换地,如果用户或开发者更熟悉非线性设置,则可在非线性 地图上选择相似区域随后将它们转换成线性地图。例如,可以想象地铁工人和 职员使用带有所选的相关区域的地铁地图,随后查看这样的地铁地图是如何对 应于真实世界的线性街道地图。
(a)线性至非线性映射和03)非线性至线性映射的转换技术的各方面 接着,图IO在数学图解1000中显示将线性映射转换至非线性映射和相反 过程的技术。例如,在图10中,在非线性映射域中绘制三角形"三角形l"。 该三角形具有顶点Al、 Bl和Cl。这些顶点在非线性域中可以与它们在线性 域中相同。例如,Al可以是地铁站,诸如图2中的"Warren Street" ; Bl可 以是另一个地铁站,诸如"Oxford Circus";以及Cl可以是第三地铁站,诸 如"Tottenham Court Road"。这些地铁站每一个,即即在三角形的上下文中的 顶点,可以精确地相同,无论地图是线性还是非线性的。
为了将"三角形1"转换至"三角形2",后者通过纬度、经度和高度坐 标保持在线性域中(与非线性域指定的X和Y坐标相对),可采取若干步骤。 例如,如果点"PI"要从非线性地图映射到线性地图,则在三角形2中,第一 步骤是在三角形1中绘制从三角形1中的某个顶点至P1的向量。如图10所示, 向量VA1P1是从A1到P1绘制的。在软件上下文中,向量VA1P1是从A1至 PI计算的。
一旦计算了该向量,在第二步骤中,将它外推至上述顶点的对边。因而, 计算另一个向量V'A1P1。该向量随后将与三角形1的顶点Cl与Bl之间的 边相交。接着,在第三步骤中,计算这两个向量VA1P1和V'A1P1之比。该步 骤之后,在第四步骤中,计算边C1P'与B1P的长度的比例或百分比,其中P' 是上述边的交点。于是这就提供足够的信息将点Pl映射到如前所述保持线性 域中的三角形2内。
为了相对于定义三角形2的点A2、 B2和C2将Pl放在正确的位置中,可 采取下列步骤首先,在步骤5 (继续到现在为止所考虑的步骤l-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 中的Pl。因而该过程不仅用于从非线性地图至线性地图的转换,也用于从线 性地图至非线性地图的转换。换言之,这是对称的。
这种对称的一个主要好处是线性和非线性地图之间的转换可以无限次地 进行,而不会引起有关点P1和P2位置的任何变形,这也是上面提到的任何先 前映射技术的主要缺点。
图11和12A、 12B例示该点。首先,图11示出一个来回的转换(在该情 形中是从非线性地图至线性地图并返回至非线性地图)是如何对于标绘数据不
产生空间变形,藉此示出能被可视评估的各种变换算法的质量。具体地,对称 变换诸如参考图IO所讨论的产生O来回误差(与图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是自说明的,特别是按照图IO的情况下。它们提供可在任何系统 中使用的一般实现,诸如在计算系统中,或者更具体地,在软件映射系统中。
通过该系统,例如适当熟练的程序员和其它非专业人员在操作地像时 可以以下列方式应用和/或使用它们(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映射之间的地图三角形内变形的可视表示,从而 允许开发者或地图设计者采取纠正动作。这样的纠正动作可包括根据需要定义 附加的更精细粒度的映射三角形。
最后,尽管已经结合较佳方面按各附图所示描述了本发明,但要理解,可 使用其它相似方面或者可对所述方面进行修改或添加来执行本发明的相同功 能而不脱离本发明。例如,在本发明的各方面,公开了可视的身份机制。然而, 与这些描述方面等价的其它机制也是本文的教导所虑及。因此,本发明应当不 限于任何单一方面,而是按照所附权利要求书的外延与范围来解释。
权利要求
1. 一种用于设计和使用任意地图的系统,包括第一地像;以及映射到所述第一地像上并且对应于第二地像的多个双三角形,其中所述多个双三角形在所述第二地像中具有与在所述第一地像中相同的顶点,并且其中从所述第一地像转换至所述第二地像的任何点被对称地转换。
2. 如权利要求1所述的系统,其特征在于,所述第一地像是非线性 地图和线性地图之一。
3. 如权利要求1所述的系统,其特征在于,所述第二地像是非线性 地图或线性地图之一。
4. 如权利要求1所述的系统,其特征在于,将所述多个双三角形中的至 少一个选择到要从所述第一地像转换至所述第二地像的区域内。
5. 如权利要求1所述的系统,其特征在于,所述第一地像上的区域 配置为被指定为避免从所述第一地像到所述第二地像的转换。
6. 如权利要求1所述的系统,其特征在于,所述多个双三角形中的至少 一个配置为被细分成多个子三角形。
7. 如权利要求1所述的系统,其特征在于,从所述第二地像转换至 所述第一地像的任何点被对称地转换。
8. —种用于设计和使用任意地图的方法,包括确定第一地像上由第一顶点、第二顶点和第三顶点定义的第一三角形-'确定第二地像上由所述第一顶点、所述第二顶点和所述第三顶点定义 的第二三角形;确定所述第一三角形中至少一个点;以及确定所述第二三角形中至少一个对应于所述至少一个点的对应点,其中相 对于所述第一顶点、所述第二顶点和所述第三顶点将所述至少一个点对称地变 换到所述至少一个对应点。
9. 如权利要求8所述的方法,其特征在于,还包括所述第一地像上 选择要被变换到所述第二地像上的对应区域的区域。
10. 如权利要求9所述的方法,其特征在于,所述选择第一地像上的 区域包括选择所述第一三角形。
11. 如权利要求8所述的方法,其特征在于,确定所述第二三角形中对应 于所述至少一个点的所述至少一个对应点包括计算从所述第一顶点至所述至 少一个点的第一向量。
12. 如权利要求11所述的方法,其特征在于,还包括从所述至少一个点 外推第二向量至所述第一三角形的所述第一顶点对边上的一点。
13. 如权利要求12所述的方法,其特征在于,还包括计算所述第一向量 与所述第二向量之比。
14. 如权利要求13所述的方法,其特征在于,还包括计算从所述第二顶 点到所述第一三角形的所述第一顶点的对边上的所述点的线段长度,以及计算 从所述第二顶点到所述第三顶点的线段长度,并且确定第一比率,而且,计算 从所述第三顶点到所述第一三角形的所述第一顶点的对边上的所述点的线段 长度,计算从所述第二顶点到所述第三顶点的线段长度,并且确定第二比率。
15. 如权利要求14所述的方法,其特征在于,还包括使用所述第一比率 和所述第二比率计算所述第二三角形的所述第一顶点的对边上的一点。
16. 如权利要求15所述的方法,其特征在于,还包括使用所述第二三角 形的所述第一顶点的对边上的所述点以及所述第一向量与所述第二向量的所 述比率计算第三向量,其中所述第三向量是从所述第一顶点发出并且指向所述 第二三角形的所述第一顶点的对边上的所述点。
17. 如权利要求16所述的方法,其特征在于,还包括使用所述第一向量 和所述第三向量计算所述第二三角形中的所述至少一个对应点,其中,所述至 少一个对应点对应于被变换的所述第一三角形的所述至少一个点。
18. —种承载用于设计和使用任意地图的有形可执行指令的计算机可读 介质,包括应用编程接口,配置为允许定义对应于第一地像和第二地像的多 个双三角形,其中所述多个双三角形允许在所述第一地像与所述第二地图 图像之间对称地数据变换以用于在所述第一地像和所述第二地像之 一上的所选范围。
19. 如权利要求18所述的计算机可读介质,其特征在于,所述多个双三 角形是在设计时间定义的。
20. 如权利要求18所述的计算机可读介质,其特征在于,所述多个双三 角形是在运行时间定义的。
全文摘要
提供各种软件映射方面。它们包括但不限于,提供对称方式的线性地图至非线性地图转换或变换(反之亦然),使得转换后一个地图中的数据在另一地图中相对于前一地图是对称的。完成该操作的一种方法是使用被映射到前一和后一地图中的双三角形,在一个示例性方面,通过双三角形在这两个地图中具有相同的顶点。使用诸如用于要被转换或不要被转换的区域的所选区域之类的其它方面。而且,可使用双三角形细分或结合技术以提供所需的映射场景。最后,提供API以允许这类映射技术的开发者和用户实现本文公开的各种方面。
文档编号G06T17/05GK101379497SQ200780004010
公开日2009年3月4日 申请日期2007年1月30日 优先权日2006年2月1日
发明者I·W·塞尔莫 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1