了解QGIS中shapefile的Polygon和Multipolygon之间的区别吗?


30

创建Scratch图层使我可以在Polygon和Multipolygon之间进行选择,因此我开始怀疑应该如何使用它们。

新的临时刮擦层

读了一本新书“ Mastering QGIS”(通过Joseph的回答,“ QGIS Voronoi对话框中的缓冲意味着什么?”),作者的评论是"ESRI shapefiles store geospatial data in multi- type geometry, so using multi- type geometry is a good practice if you plan on converting between formats."

创建新的多边形图层时,应如何选择其中一个(多边形或多边形)?(我曾将多面体与多面体相混淆,所以我过去常常选择多边形。)

我最近选择“多边形/多边形”的一种情况是更改平行线长度以在QGIS中分割多边形?在其中绘制一个虚拟多边形作为背景层。尽管我只需要一个多边形,但主要处理shapefile似乎应该选择Multipolygon。在这种情况下,我需要的是没有任何属性的简单多边形几何(不确定此示例是否有任何区别。)


您没有提供足够的信息来帮助您选择。请编辑问题以指定要包含的临时层。请注意,这本书具有误导性,因为shapefile 存储多种类型的几何图形。相反,它们只是不区分单部分线和多部分线或多边形。
文斯

@文斯谢谢。我添加了最近的经验,需要从其中选择一个。不知道这个简单的例子是否有意义。
Kazuhito

@Vince至于您的评论的后半部分,就我将图层保存为shapefile到磁盘而言,我是否不必担心单或多?
Kazuhito

Answers:


36

从一个更正式一点,我报了两个多边形和多面的定义(以下文字和图片来自该文件OGC®标准,所有学分引用来源)。


多边形

多边形是由1个外部边界和0个或多个内部边界定义的平面。每个内部边界在“多边形”中定义一个孔。

外部边界LinearRing定义表面的“顶部”,即表面的一面,外部边界似乎从该表面沿逆时针方向横越边界。内部的LinearRings将具有相反的方向,并且从“顶部”观察时将显示为顺时针方向。

多边形的断言(定义有效多边形的规则)如下:

  1. 多边形在拓扑上是封闭的;
  2. 多边形的边界由组成其外部和内部边界的一组LinearRing组成;
  3. 边界交叉处的两个环和多边形边界处的环不能在一个点处相交,而只能以切线相交。
  4. 多边形可能没有切割线,尖峰或刺孔;
  5. 每个多边形的内部是一个连接点集;
  6. 未连接具有1个或更多孔的多边形的外部。每个孔都定义了外部的连接组件。

下面是一些多边形示例:

在此处输入图片说明


多多边形

MultiPolygon是一个MultiSurface,其元素为Polygons。

MultiPolygons的断言如下:

  1. 作为MultiPolygon元素的2个Polygon的内部可能不相交;
  2. 作为MultiPolygon元素的任何2个Polygon的边界可能不会“交叉”,并且只能在有限数量的点上接触;
  3. MultiPolygon定义为拓扑封闭;
  4. MultiPolygon可能没有切割线,尖峰或刺孔,MultiPolygon是常规的封闭点集;
  5. 没有连接具有1个以上多边形的MultiPolygon内部。MultiPolygon内部的连接组件的数量等于MultiPolygon中多边形的数量

MultiPolygon的边界是一组与其元素Polygons的边界相对应的闭合曲线(LineStrings)。MultiPolygon边界中的每条曲线都在正好1个元素多边形的边界中,元素Polygon边界中的每条曲线都在MultiPolygon的边界中。

下面是一些MultiPolygons示例:

在此处输入图片说明


+1非常感谢!非常有用。以这种简洁的样式总结它们肯定花了很长时间,我无法想象我该怎么做...所以它似乎是多边形的集合集,表面的集合,并受到相当宽松的指导原则的支持。拓扑条件(这只是我的第一印象)。我将阅读并重新阅读链接的材料,这很有趣!
Kazuhito

我认为您需要从几何角度考虑多面体。我看到的最明显的区别是,从多边形表面上的任何位置开始,您可能会到达其上的任何其他位置,而对于多面并不总是正确的(请参阅上面的图像中有关这两个类别的最后一个示例作为参考) )。
mgri

知道了,谢谢。是的,是否可以使用单个连续的几何体,..它有很大的不同。我唯一仍在努力的问题是,如何根据这些区别放置多部分对象。
Kazuhito

1
是什么使第一个MultiPolygon示例属于其中?
Stijn

1
@Stijn第一个示例是一个多面多边形,因为在某些情况下,其中的两个点可能由一条不完全包含在多边形本身内的线连接。多边形不允许这种行为,因此它是一个多多边形。
mgri

13

Shapefile多边形由一个或多个闭合环构成。如果形状具有多个环,则它们可以是外部和内部(例如,形成一个甜甜圈),也可以是多个外部(例如,岛链)。 在此处输入图片说明

当然,具有多个外部并不能防止每个形状上都有一个或多个内部环。shapefile规范确实指出:

  1. 外圈必须为顺时针方向,而内圈必须为逆时针方向(此约定称为右手定则,因为形状在您沿周界行走时始终位于您的右手边;不幸的是,它也可以称为左手法则,因为外环遵循卷曲的左手的方向,拇指从图的顶部指向上方)
  2. 内圈必须始终跟随其分隔的外圈
  3. 外部环或内部环都不能重叠共享公共边界(此类特征可能会填充,但是它们无效并可能导致奇怪的地理处理失败)。

Shapefile 不会区分这些对象,它们是所有多边形(每个几何都与一个dBase记录相关联)。

但是,有些工具确实与众不同,QGIS就是其中之一。如果你将永远有一个shape文件是简单的一环形状,那么你就可以放心地选择多边形。如果形状可能包含“孔”,则选择多边形也是安全的。但是,如果某些形状可能包含多个外环,则需要选择“多边形”。


1
这是有关shapefile的精彩深入摘要,非常感谢!我现在了解我过去的大部分经验都属于Polygon的使用范围。以后,当我需要数字化孔(例如湖泊)时,我将使用Multipolygon。再次感谢你!
Kazuhito

1
感谢您添加数字,因此右侧的是多个外圈,为此我需要选择Multipolygon ...而不是位于孔中心的那一圈!
Kazuhito

3
我必须回去给它们加上标签,但是,是的,绿色多边形是唯一的Multipolygon
Vince

1
对于“两个环”(Multipolygon),如果看到属性表,这两个环会共享相同的记录吗?(即shapefile只有一个记录)?
Kazuhito

1
是的,它是一项记录中的一种几何
Vince
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.