There is one issue in the CalcDistanceBetweenGeoLocations function. Sometime you will get an error, "A domain error occurred.", by passing in some specific parameters.
So I added the following Code:
--reset @Distance if it is out of the range of (-1,1)
--Get distance in miles
SET @Distance = (DEGREES(ACOS(@Distance))) * 69.09
Because ACOS can be only with a value from -1 through 1.