RoverOperator.Content.GPSViewViewModel.getDistance C# (CSharp) Method

getDistance() private method

Get distance in kilometers between two locations
private getDistance ( MarsRover.Location location1, MarsRover.Location location2 ) : double
location1 MarsRover.Location
location2 MarsRover.Location
return double
        private double getDistance(Location location1, Location location2)
        {
            double latitude1 = location1.Latitude;
            double longitude1 = location1.Longitude;

            double latitude2 = location2.Latitude;
            double longitude2 = location2.Longitude;

            double radiusOfEarth = 6371;
            double lateralDistanceRadians = degreesToRadians(latitude2 - latitude1);
            double longitudinalDistanceRadians = degreesToRadians(longitude2 - longitude1);
            double a = Math.Sin(lateralDistanceRadians / 2) * Math.Sin(lateralDistanceRadians / 2) + Math.Cos(degreesToRadians(latitude1)) * Math.Cos(degreesToRadians(latitude2)) * Math.Sin(longitudinalDistanceRadians / 2) * Math.Sin(longitudinalDistanceRadians / 2);
            double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
            double distance = radiusOfEarth * c;
            distance = Math.Round(distance, 4);
            return distance;
        }