我正在尝试查询距其他位置指定距离内的任何位置。查询不是问题,但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一起存储)
我猜这与距赤道的距离(靠近极圈)有关,但是必须有一种方法可以根据纬度更准确地计算这个或者我错了吗?
答案 0 :(得分:2)
看起来你正在使用'X,Y'来创造你的观点 从文本创建点时,请改用“Y,X”。
查看此MSDN Article以获取更多信息。
答案 1 :(得分:1)
为什么不使用另一个更符合您位置周围地球曲率的空间参考标识符。 SRID 4326可能没有像其他本地参考系统那样准确测量