【问题标题】:Ms SQL geography.STDistance returns wrong distanceMS SQL geography.STDistance 返回错误的距离
【发布时间】:2011-06-27 12:59:33
【问题描述】:

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

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

【问题讨论】:

    标签: sql-server-2008 geospatial sqlgeography


    【解决方案1】:

    您似乎是在使用“X,Y”来创建您的观点。
    从文本创建点时,请改用“Y,X”。

    查看此MSDN Article 了解更多信息。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2018-06-04
        • 2012-04-17
        • 2013-02-27
        • 1970-01-01
        • 2022-06-29
        • 2019-09-28
        • 1970-01-01
        • 2012-10-31
        • 2021-01-18
        相关资源
        最近更新 更多