• sql server中根据地图经纬度算距离


    从别的地方烤过来的,自己试了一下,可以计算 出来,不过正确不正确的就不太懂了。

    USE [niaoren]
    GO
    /****** Object:  UserDefinedFunction [dbo].[fnGetDistance]    Script Date: 2017/7/28 星期五 12:17:56 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
      --计算地球上两个坐标点(经度,纬度)之间距离sql函数  
        --作者:lordbaby  
        --整理:www.aspbc.com   
        ALTER FUNCTION [dbo].[fnGetDistance](@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL) RETURNS FLOAT  
          AS  
        BEGIN  
          --距离(千米)  
          DECLARE @Distance REAL  
          DECLARE @EARTH_RADIUS REAL  
          SET @EARTH_RADIUS = 6378.137    --地球半径
          DECLARE @RadLatBegin REAL,@RadLatEnd REAL,@RadLatDiff REAL,@RadLngDiff REAL  
          SET @RadLatBegin = @LatBegin *PI()/180.0    
          SET @RadLatEnd = @LatEnd *PI()/180.0    
          SET @RadLatDiff = @RadLatBegin - @RadLatEnd    
          SET @RadLngDiff = @LngBegin *PI()/180.0 - @LngEnd *PI()/180.0     
          SET @Distance = 2 *ASIN(SQRT(POWER(SIN(@RadLatDiff/2), 2)+COS(@RadLatBegin)*COS(@RadLatEnd)*POWER(SIN(@RadLngDiff/2), 2)))  
          SET @Distance = @Distance * @EARTH_RADIUS       
          RETURN @Distance  
        END  

    原文地址:http://www.open-open.com/code/view/1436452727411

  • 相关阅读:
    Luogu P2495 [SDOI2011]消耗战
    40. Combination Sum II
    39. Combination Sum
    22. Generate Parentheses
    51. N-Queens
    Codeforces Round #346 (Div. 2) E. New Reform
    Codeforces Round #346 (Div. 2) D. Bicycle Race
    HDU 5651xiaoxin juju needs help
    VK Cup 2016
    Educational Codeforces Round 10 D. Nested Segments
  • 原文地址:https://www.cnblogs.com/niunan/p/7249587.html
Copyright © 2020-2023  润新知