我正在尝试查询距另一个位置指定距离内的任何位置。查询不是问题,而是 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 存储)
我猜这与距赤道(靠近极圈)的距离有关,但必须有一种方法可以根据纬度更准确地计算这个距离,还是我错了?
看起来您正在使用“X,Y”来创建您的观点。
从文本创建点时,请改用“Y, X”。
看看这个MSDN 文章 http://blogs.msdn.com/b/davidlean/archive/2008/10/30/sql-2008-spatial-samples-part-n-5-of-n-sql-builder-api.aspx了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)