2

我想知道在地理数据类型上计算距离时 SQL2008 使用什么算法。

有几种这样的算法,如 Haversine 和 Vincenty,但是我没有找到 SQL2008 实际使用的参考。

4

3 回答 3

1

它完全取决于与地理类型关联的空间参考标识符。

SRID 代表地理类型中的确切单位,并将指示坐标系。该系统将指示正在使用哪些算法。

话虽如此,在对地理实例执行计算时,SQL Server 2008 仅支持一组特定的 SRID(请参阅上面链接中标题为“地理实例必须使用支持的 SRID”的部分)。

您可能可以从 SQL Server 2008 用于地理/几何类型的规范(开放地理空间联盟的 简单功能访问规范)中获得更多信息。

于 2010-03-02T20:45:41.360 回答
1

我认为您对地理类型以及它如何计算距离感兴趣。本章可能会有所帮助(以及此博客) http://blogs.msdn.com/edkatibah/archive/2009/12/17/inside-microsoft-sql-sever-2008-t-sql-programming-chapter-14 -空间数据.aspx

Codeplex 上还有 MS SQLSpatialTools。他们针对地理类型的插值函数可能会提示您他们在幕后所做的事情

http://sqlspatialtools.codeplex.com/wikipage?title=Current%20Contents&referringTitle=Home

我能问一下,只要答案是正确的,你为什么关心正在使用什么功能?

于 2010-03-03T03:35:53.933 回答
0

看来您现在真正关心的是 SQL Server 如何计算距离,但它实际上如何定义地球上的距离,因为有许多替代定义。最好的参考是 Michael Kallay 的论文定义圆形地球上的边缘

Isaac Kunen 还写了一篇关于在 2d 坐标中表示圆形表面的白皮书,这是非常好的背景阅读。

于 2010-03-08T05:33:57.840 回答