在 Sql server 2008 中,获取两个经纬度点之间的距离对我来说非常简单,但是现在我使用的是 Sql server 2005,并且数据类型geography
似乎不存在......我这样做了:
DECLARE @source geography = 'POINT(0 51.5)'
DECLARE @target geography = 'POINT(-3 56)'
SELECT @source.STDistance(@target)
不幸的是,这对我在 Sql server 2005 上不起作用
任何可以帮助我解决此问题的想法或数据类型,如果不存在,我是否必须进行计算,比如说“手动”?
在 SQL 2005 中,没有地理数据类型。如果您考虑到地球的实际形状,这会变得很棘手(此外,您可能希望在其中解释坐标的许多参考系统。
将一切简化为地球是一个球体这一事实(事实并非如此,因此如果你实现这个答案的结果将只是现实的近似值),你可以做这样的事情,因为最终计算什么都不是不止一点三角函数:
定义这些函数后,您将得到以下结果: