'================================================================================= ' Distance Calculator '================================================================================= ' This function calculates the distance between two latitude/logitude ' coordinates. Disance can be returned as Kilometers or Miles. ' ' This function was designed for Microsoft SQL Server 2000 ' ' Accepts: ' Lat1 = Latitude of point one (decimal, required) ' Lon1 = Longitude of point one (decimal, required) ' Lat2 = Latitude of point two (decimal, required) ' Lon2 = Longitude of point two (decimal, required) ' ' Provided by: http://www.zip-codes.com ' ' © 2005 Zip-Codes.com, All Rights Reserved '================================================================================= CREATE function dbo.DistanceCalc (@lat1 float, @lon1 float, @lat2 float, @lon2 float) returns float as begin declare @DegToRad as float declare @Ans as float declare @Miles as float set @DegToRad = 57.29577951 set @Ans = 0 set @Miles = 0 if @lat1 is null or @lat1 = 0 or @lon1 is null or @lon1 = 0 or @lat2 is null or @lat2 = 0 or @lon2 is null or @lon2 = 0 begin return (@Miles) end set @Ans = SIN(@lat1 / @DegToRad) * SIN(@lat2 / @DegToRad) + COS(@lat1 / @DegToRad ) * COS( @lat2 / @DegToRad ) * COS(ABS(@lon2 - @lon1 )/@DegToRad) set @Miles = 3959 * ATAN(SQRT(1 - SQUARE(@Ans)) / @Ans) return (@Miles) end