繁体   English   中英

SQL Server 空间 STBuffer

[英]SQL Server spatial STBuffer

我是 sql server 空间的新手。 在 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 位小数,看看会发生什么。 无论如何,它应该处理缓冲区,所以它可能是一个错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM