Sql server 2008 r2 SQL Server Geo MakeValid

Sql server 2008 r2 SQL Server Geo MakeValid,sql-server-2008-r2,geospatial,Sql Server 2008 R2,Geospatial,SQLServer抛出的一个错误表示MakeValid方法可能会导致点“轻微”移动。我一直在寻找“轻微”在这里的确切含义,但没有发现任何东西 有人能澄清一下这个方法到底认为“轻微”是什么吗?根据OGC标准的定义,.MakeValid()函数只是尝试将几何体的坐标移动到使几何体有效所需的最小程度 我不确定“轻微”的实际术语是否可以量化,但您会注意到,几乎所有坐标都会发生某种程度的偏移,即使它位于小数点后第6、7、8或更大的位置 我尽可能确保几何体有效且不需要函数,因为当使用浮点精度的固有特性时,意

SQLServer抛出的一个错误表示MakeValid方法可能会导致点“轻微”移动。我一直在寻找“轻微”在这里的确切含义,但没有发现任何东西

有人能澄清一下这个方法到底认为“轻微”是什么吗?

根据OGC标准的定义,.MakeValid()函数只是尝试将几何体的坐标移动到使几何体有效所需的最小程度

我不确定“轻微”的实际术语是否可以量化,但您会注意到,几乎所有坐标都会发生某种程度的偏移,即使它位于小数点后第6、7、8或更大的位置

我尽可能确保几何体有效且不需要函数,因为当使用浮点精度的固有特性时,意味着每个X和Y值最终都带有13位小数,这在存储和带宽方面为几何体增加了很多“权重”。然而,有很多来源需要它的使用来符合


这不是一个确定的答案,但我不确定是否有,也不确定是否真的需要。

谢谢。我将使用该函数处理相当简单的多边形,主要是正方形,或者至少是四边形。基本上,它将用于识别定义多边形内的点。因此,用户将给出4个点,系统将定位已存储为与多边形相交的地理点的已知点。基本上,我使用MakeValid以防用户顺时针通过点。我不希望用户传递的小数位数超过五位左右。在你看来,这种转变真的会对这里产生很大影响吗?我不担心。在赤道(所以在它最大的地方),小数点后第五位代表纬度上的11米,因此超出这个范围的变化是最小的。如果您在SQL 2008上使用的是
MakeValid()
,我可以假设您正在使用SqlGeometry吗?您可以考虑简单地将4个坐标传递回服务器,使用<代码> StUnon()/Cyto>将它们粘在一起(<代码> var GOOM=P1..Stand(P2)。STUnion(P3)。STUnion(P4);< /代码>,然后使用<代码> var框= GEOM。这样,您就不必担心
MakeValid()
的影响。