多部分功能的好处?


28

几乎在每个GIS中都实现了多部分的点,线和面,但是它们有什么好处(如果有的话)呢?

在关系数据库中,不同要素共享的属性可以存储一次,而ID用于将它们链接到单独的几何记录。那么,多部分功能是否会保留平面文件数据存储?

替代文字

Answers:


35

如果您的软件不支持多部分功能,则您可能不得不花很多时间才能执行空间操作。例如,两个多边形的相交通常可以具有多个连接的分量。从算法和概念上来说,方便的是假设这样的交集返回单个对象(多部分多边形),而不是任意数量的多边形。(出于相同的原因,支持各种形式的零要素和简并要素也很有帮助-例如,具有范围但面积为零的多边形,或者甚至具有位置但范围或面积均不包含的多边形。这些东西可能来自几何运算;支持它们消除了繁琐的逐案后处理,并可以防止有用的信息消失。)

从关系数据库的角度来看,多部分功能使规范化成为可能:当属性与多边形集合不可分割时,您希望将该集合表示为单个对象。一个很好的例子是代表世界上几乎所有拥有海岸线的国家/地区的地图项,因为该国家可能包括一些岛屿。您是否真的要强制您的RDBMS为每个小岛复制一份国家属性?很有可能不会。您甚至都不希望(或不需要)维护指向属性的指针的多个副本。

如果不作为协作多折线,您将如何表示网络或分支树?

从数学或算法数据结构的角度来看,允许多部分功能是一种简化,而不是复杂的事情。为了支持多重连接的多边形(带“孔”的环和多边形),您已经需要用于表示多部分多边形的设备。

最后,“向量”对象及其典型的“意大利面条表示”起源于简单复杂理论。(只有通过与拓扑理论之间这种微弱的联系,术语“拓扑”才将其纳入GIS,否则它就实质上不使用该理论。)该理论需要多部分功能,并从中受益。实际上,只有一个组成部分不是简单复合体定义的一部分,而是事实证明它们是其中某些成员所享有的特殊属性(通过其第零同源组的等级来检测))。因此,“单个部分”不是定义属性,而仅仅是一种拓扑质量,与在多边形中具有环或“孔”是一种拓扑质量(与第一个同源性组的等级有关)的意义相同。


1
很好的答案。我不是100%相信使用多部分功能对数据库进行规范化-每个多边形仍然具有诸如面积和长度之类的独特属性,而诸如“希腊的面积中有多少是由岛屿组成”之类的查询就很难回答。赋予每个多边形属性。
geographika,2010年

2
@geographika Yours是一个很好的例子,说明了为什么需要灵活性来表示数据库的实体(无论是否为空间)。为了进一步扩展,人们还可能认为,需要将各个多边形“炸开”到它们的外圈和内圈中,以便回答诸如“希腊的多少面积由湖泊组成”的问题。任何给定的数据库结构都会使某些查询变得容易,而其他查询则变得更加困难。因此,好的数据库设计的一部分必须包括考虑数据库的预期用途。一个好的(空间)DBMS将提供在不同结构之间转换的机制。
ub

2
+1好答案。不过,可能值得讨论多部分功能的性能缺点。以美国高速公路的折线要素类为例,其中高速公路要素在州边界被分割。通过分解高速公路名称来创建第二要素类,从而使I-10跨越整个大陆。现在比较“识别”工具的性能。除非更改了ESRI的空间索引策略,否则在多部分要素类上它将变慢,因为有更多的MBR相互重叠。检查其MBR与该点重叠的每个要素的每个坐标。
Kirk Kuykendall

@柯克好点。但是,您的示例指出了ESRI技术的不足,而不是从原则上突出了问题。通过合理有效但简单的空间数据结构(例如四叉树)进行的特征识别应具有O(log(N))性能(在初始缓存存储的数据结构之后)。将N个特征中的每个特征(假定为大)平均分为K个部分(与N相比确定为中等或较小),将log(N)增大为log(N)+ log(K),这在假定的基础上实际上是可行的不明显。
ub

1
@Dandy感谢您强调多零件几何和仅零件集合之间的区别。我认为并非所有的多部分要素类型都必然会“约束”它们的组件。这可能取决于实现方式,这指出“多部分”的概念包含一些细微的变化。
whuber

12

想象将人口数据连接到代表国家的单面多边形表中。根据您进行联接的方式,每个岛都将获得该国家的全部人口,或者集合中只有一个多边形将获得全部人口。在不将国家表示为多部分多边形的情况下,您必须分摊总体(不必要地复杂和不准确),或者在合并之前将这些多边形收集在一起,在这种情况下,您实际上最终会再次获得多部分多边形。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.