Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Geometry st_是有效的和st_是简单的有什么区别?_Geometry_Postgis - Fatal编程技术网

Geometry st_是有效的和st_是简单的有什么区别?

Geometry st_是有效的和st_是简单的有什么区别?,geometry,postgis,Geometry,Postgis,在Postgis中有两个非常相似的功能。一个是,另一个是。我想了解这两者对于多边形的区别。对于st_isValid,我们有: 多边形有效性的一些规则感觉很明显,而另一些规则感觉是任意的(事实上,是任意的) 多边形环必须闭合 定义孔的环应位于定义外部边界的环的内部 环不能自相交(它们既不能相互接触也不能相互交叉) 环不得接触其他环,除非在某一点 对于st_isSimple,我们有: 如果此几何体没有异常几何点(如自相交或自相切),则返回true。有关OGC几何简单性和有效性定义的更多信息,请参

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

多边形有效性的一些规则感觉很明显,而另一些规则感觉是任意的(事实上,是任意的)

  • 多边形环必须闭合
  • 定义孔的环应位于定义外部边界的环的内部
  • 环不能自相交(它们既不能相互接触也不能相互交叉)
  • 环不得接触其他环,除非在某一点
对于st_isSimple,我们有:

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

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

这两个函数都会检查几何图形是否符合类似的OGC定义,但都是为不同的几何图形定义的(按尺寸)

根据OGC的定义

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

  • [多]多边形
    可以(应该)是有效的

这意味着

  • 简单的
    [Multi]行字符串
    始终被认为是有效的

  • 有效的
    [Multi]Polygon
    始终被视为简单的(如中所示,它必须至少有一个简单的闭合
    线串
    环)

因此,答案是肯定的


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

然而,PostGIS大量扩展了
ST_IsValid
的功能,以便对所有几何图形类型进行正确检查