我正在尝试查询距另一个位置指定距离内的任何位置。查询不是问题,但 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 中)
我猜这与到赤道的距离(靠近极圈)有关,但必须有一种方法可以根据纬度更准确地计算出来,还是我错了?