在Postgis中,有两个非常相似的功能。一个是st_isValid,另一个是st_isSimple。我想了解多边形之间的区别。对于st_isValid,我们有:
某些多边形有效性规则显而易见,而另一些规则则具有任意性(实际上是任意性的)。
- 多边形环必须关闭。
- 定义孔的环应位于定义外部边界的环内。
- 环可能不会自相交(它们既不能接触也不能彼此交叉)。
- 除了某些点外,戒指不得接触其他戒指。
对于st_isSimple,我们有:
如果此Geometry没有异常几何点(例如自相交或自相切),则返回true。有关OGC定义几何简单性和有效性的更多信息,请参阅“确保OpenGIS遵守几何”
这是否意味着任何有效的多边形都会自动变得简单?
答案 0 :(得分:2)
这两个函数均检查几何的相似 OGC定义是否符合要求,但为不同的几何定义(按维度);
通过OGC定义
[Multi]LineString
(应该)可以简单
一个 [Multi]Polygon
可以(应该)有效
这意味着
简单的 [Multi]LineString
始终被认为是有效的
有效 [Multi]Polygon
总是视为简单的(例如,必须至少关闭一个 simple LineString
响)
因此答案是肯定的。
严格来说,对“错误”几何类型使用OGC定义的功能的固有检查是没有用的。
不过,PostGIS大大扩展了ST_IsValid
的功能,以对所有几何类型使用正确的检查。。