在 SQL Server 中,我希望能够采用单个纬度和经度(51.500709,-0.124646)并将这些坐标向北移动 50 米,但我不知道该怎么做。我知道地理空间数据类型,并STDistance在编写其他查询时使用该函数来获取点之间的距离。但我很难看到有关移动坐标固定距离的任何信息。
n/111111我对Mitch 提供的链接中的方法感到好奇。
n/111111
我很高兴地报告它“还不错”。在这个例子中,我们偏离了 0.06 米(2.3 英寸)。
例子
Declare @Lat float = 51.500709 Declare @Lng float = -0.124646 Declare @LatM float = -50 Declare @LngM float = 0 ;with cte as ( Select OldLat = @Lat ,OldLng = @Lng ,NewLat = @Lat + @LatM/111111 ,NewLng = @Lng + @LngM/(111111 * cos(radians(@Lat)) ) ) Select * ,DistanceCheck = geography::Point(OldLat, OldLng, 4326).STDistance(geography::Point(NewLat, NewLng, 4326)) From cte
结果