Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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
SQL Server空间STBuffer_Sql_Sql Server_Spatial - Fatal编程技术网

SQL Server空间STBuffer

SQL Server空间STBuffer,sql,sql-server,spatial,Sql,Sql Server,Spatial,我是sql server spatial的新手。在SQL server 2014或2012(不是在2008年)中应用地理数据类型时,我遇到STBuffer函数的问题 应用STBuffer函数后,生成的形状与原始形状完全不同,而不仅仅是缓冲了与原始形状的距离 见下面的代码: select (geography::STGeomFromText('POLYGON ((-78.17498995969072 40.511906814179383, -78.174936763010919 40.512004

我是sql server spatial的新手。在SQL server 2014或2012(不是在2008年)中应用地理数据类型时,我遇到STBuffer函数的问题

应用STBuffer函数后,生成的形状与原始形状完全不同,而不仅仅是缓冲了与原始形状的距离

见下面的代码:

select (geography::STGeomFromText('POLYGON ((-78.17498995969072 40.511906814179383, -78.174936763010919 40.512004616786726, -78.174837516853586 40.512342629022896, -78.175599932204932 40.512442785082385, -78.176346572581679 40.5125408685999, -78.17645655060187 40.512555316090584, -78.176824942231178 40.512603710405529, -78.177308602025732 40.512666257680394, -78.178199267713353 40.51277746737469, -78.181078517111018 40.51316248846706, -78.181189002934843 40.513158924411982, -78.1812548530288 40.51315680029802, -78.181430931901559 40.513151120278053, -78.181524405721575 40.5131481050048, -78.181649426696822 40.513150648796, -78.181668272824027 40.512921414221637, -78.17498995969072 40.511906814179383))',4326)).
然后我应用了一个STBuffer(0.01),它的形状与原来的完全不同。我不允许发布形状图像,因此您可能需要在sql server中运行以查看结果

但是,如果应用其他缓冲区距离,例如0.001或0.1,则所有形状看起来都正常。只有缓冲区距离0.01才会产生奇怪/意外的结果


感谢您的任何想法和帮助

这些点的精度都太高了。15位小数可能在亚原子领域,我猜如果你把每一个小数点四舍五入到一个更合理的水平,这就不成问题了


尝试四舍五入到7或8位小数,看看会发生什么。无论如何,它应该处理缓冲区,所以它可能是一个bug。

这确实很奇怪。我会在连接上提交一个bug。非常有趣,我自己也尝试过。以下是technet关于同样问题的帖子: