------------------------------------------Create a method--------------------------------------------------------------------
--@LatBegin latitude A (33.8703596)----@LngBegin Longitude A ( -117.9242966)----@LatEnd latitude B (34.0392283)----@LngEnd Longitude B ( -117.8367681)--CREATE FUNCTION [dbo].[fngetdistance](@LatBegin REAL,@LngBegin REAL,@LatEnd REAL,@LngEnd REAL)RETURNS FLOAT as BEGIN --distance (km) DECLARE @Distance REAL --distance (miles)-- DECLARE @Edistance REAL DECLARE @EARTH_RADIUS REAL DECLARE @MI REAL SET @EARTH_RADIUS = 6378.137 --radius of the earth (km)-- Set @MI=0.6213712 --1-kilometer (km) = 0.6213712 mi (mi) 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 SET @Distance = Round(@Distance * 10000,1)/ 10000 --km-- SET @Edistance= @Distance * @MI --miles-- RETURN @Edistance END
------------------------------------------Delete Method--------------------------------------------------------------------
Drop function Dbo.fngetdistance
------------------------------------------Call Method--------------------------------------------------------------------
Longitude dimension calculation distance in SQL