1

我正在尝试查询距另一个位置指定距离内的任何位置。查询不是问题,但 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 中)

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

4

2 回答 2

3

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

查看此MSDN 文章了解更多信息。

于 2011-09-17T15:30:13.227 回答
1

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

于 2011-08-09T19:56:18.697 回答