我正在尝试查询与另一个位置在指定距离内的任何位置。问题不在于查询,而在于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]并且"other location“具有坐标(65,578541 22,202286) (与SRID 4326一起存储)
我猜这与赤道(接近极圈)的距离有关,但肯定有一种方法可以根据纬度更准确地计算出这一点,或者我错了?
发布于 2011-09-17 23:30:13
看起来您正在使用'X,Y‘创建您的点。
从文本创建点时,请改用'Y,X‘。
有关更多信息,请查看此MSDN Article。
发布于 2011-08-10 03:56:19
为什么你不使用另一个空间参考标识符,它更适合你位置周围的地球曲率。SRID 4326可能无法像其他本地参考系统那样精确测量
https://stackoverflow.com/questions/6493188
复制相似问题