st_isvalid和st_issimple有什么区别?

时间:2019-10-28 07:21:37

标签: geometry postgis

在Postgis中,有两个非常相似的功能。一个是st_isValid,另一个是st_isSimple。我想了解多边形之间的区别。对于st_isValid,我们有:

  

某些多边形有效性规则显而易见,而另一些规则则具有任意性(实际上是任意性的)。

     
      
  • 多边形环必须关闭。
  •   
  • 定义孔的环应位于定义外部边界的环内。
  •   
  • 环可能不会自相交(它们既不能接触也不能彼此交叉)。
  •   
  • 除了某些点外,戒指不得接触其他戒指。
  •   

对于st_isSimple,我们有:

  

如果此Geometry没有异常几何点(例如自相交或自相切),则返回true。有关OGC定义几何简单性和有效性的更多信息,请参阅“确保OpenGIS遵守几何”

这是否意味着任何有效的多边形都会自动变得简单?

1 个答案:

答案 0 :(得分:2)

这两个函数均检查几何的相似 OGC定义是否符合要求,但为不同的几何定义(按维度);

通过OGC定义

  • [Multi]LineString 应该)可以简单

  • 一个 [Multi]Polygon 可以(应该有效

这意味着

  • 简单的 [Multi]LineString始终被认为是有效的

  • 有效 [Multi]Polygon总是视为简单的(例如,必须至少关闭一个 simple LineString响)

因此答案是肯定的


严格来说,对“错误”几何类型使用OGC定义的功能的固有检查是没有用的。

不过,PostGIS大大扩展了ST_IsValid的功能,以对所有几何类型使用正确的检查。