问题描述
如果使用两种方法计算坐标之间的距离,它们之间的差异很大(超过400 m)。你知道为什么吗?而所有计算方法中哪一种是最准确的?
第一:
DECLARE @source geography = 'POINT(53.9202690124512 14.2586479187012)'
DECLARE @target geography = 'POINT(53.8970128 14.2387088)'
SELECT @source.Stdistance(@target)
第二:
SELECT geography::Point(53.9202690124512,14.2586479187012,4326).Stdistance(geography::Point(53.8970128,14.2387088,4326))
解决方法
geography::Point
希望按该顺序传递纬度和经度。 WKT的POINT
希望按该顺序传递经度和纬度。查看结果:
DECLARE @wkt_source geography = 'POINT(53.9202690124512 14.2586479187012)'
DECLARE @wkt_target geography = 'POINT(53.8970128 14.2387088)'
select @wkt_source.STAsText() as wkt_source,@wkt_target.STAsText() as wkt_target
declare @point_source geography = geography::Point(53.9202690124512,14.2586479187012,4326)
declare @point_target geography = geography::Point(53.8970128,14.2387088,4326)
select @point_source.STAsText() as point_source,@point_target.STAsText() as point_target
因此,您将需要相互交换以获得一致的结果(取决于正确的经纬度)。