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)
If @Distance>1
set @Distance=1
If @Distance<-1
set @Distance=-1
before
--Get distance in miles
SET @Distance = (DEGREES(ACOS(@Distance))) * 69.09
Because ACOS can be only with a value from -1 through 1.