CREATE FUNCTION [dbo].[Distance]
(
@lat1 FLOAT,
@long1 FLOAT,
@lat2 FLOAT,
@long2 FLOAT
)
RETURNS FLOAT
AS
BEGIN
DECLARE @DegToRad FLOAT = 57.29577951;
DECLARE @Ans FLOAT = 0;
DECLARE @Miles FLOAT = 0;
-- If any input is null or 0, return 0 distance
IF @lat1 IS NULL OR @lat1 = 0
OR @long1 IS NULL OR @long1 = 0
OR @lat2 IS NULL OR @lat2 = 0
OR @long2 IS NULL OR @long2 = 0
BEGIN
RETURN 0; -- No distance when coordinates are invalid
END
-- Calculate the Haversine distance
SET @Ans = SIN(@lat1 / @DegToRad) * SIN(@lat2 / @DegToRad)
+ COS(@lat1 / @DegToRad) * COS(@lat2 / @DegToRad) * COS(ABS(@long2 - @long1) / @DegToRad);
-- Compute distance in miles
SET @Miles = 3959 * ATAN(SQRT(1 - SQUARE(@Ans)) / @Ans);
-- Convert miles to kilometers and then to meters
RETURN @Miles * 1.60934 * 1000;
END
Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI
Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)