SQL geography.STDistance女士返回错误的距离

时间:2011-06-27 12:59:34

标签: sql-server-2008 geospatial sqlgeography

我正在尝试查询距其他位置指定距离内的任何位置。查询不是问题,但geography.STDistance返回的距离是。

似乎STDistance对靠近赤道的位置进行了相当准确的计算,但我需要这个来处理北欧国家的位置。挪威,瑞典,芬兰等......

根据我对瑞典北部地区的计算,距离误差约为2.38?! 预计结果为1070米,返回距离为2537,28850694302米

我的查询如下:

DECLARE @g geography = geography::STGeomFromText('POINT(65.580254 22.179428)', 4326)

SELECT name, [pos].STSrid as srdi, [pos].STDistance(@g) as d
  FROM [GPSCHAT].[dbo].[USERS]

和“其他位置”有坐标(65,578541 22,202286)(与SRID 4326一起存储)

我猜这与距赤道的距离(靠近极圈)有关,但是必须有一种方法可以根据纬度更准确地计算这个或者我错了吗?

2 个答案:

答案 0 :(得分:2)

看起来你正在使用'X,Y'来创造你的观点 从文本创建点时,请改用“Y,X”。

查看此MSDN Article以获取更多信息。

答案 1 :(得分:1)

为什么不使用另一个更符合您位置周围地球曲率的空间参考标识符。 SRID 4326可能没有像其他本地参考系统那样准确测量