Tuesday, January 26, 2016

Calculates the distance by Latitude and Longitude using C#

This routine calculates the distance between two points (given the latitude/longitude of those points). It is being used to calculate the distance between two locations.   
                                                                       
  Definitions                                                          
    South latitudes are negative, east longitudes are positive          
                                                                       
  Passed to function                                                  
    lat1, lon1 = Latitude and Longitude of point 1 (in decimal degrees)
    lat2, lon2 = Latitude and Longitude of point 2 (in decimal degrees)
    unit = the unit you desire for results                              
           where 'M' is statute miles (default)                        
                  'K' is kilometers                                    
                  'N' is nautical miles                                


using System;
private double distance(double lat1, double lon1, double lat2, double lon2, char unit) {
  double theta = lon1 - lon2;
  double dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) + Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta));
  dist = Math.Acos(dist);
  dist = rad2deg(dist);
  dist = dist * 60 * 1.1515;
  if (unit == 'K') {
    dist = dist * 1.609344;
  } else if (unit == 'N') {
  dist = dist * 0.8684;
    }
  return (dist);
}
//This function converts decimal degrees to radians
private double deg2rad(double deg) {
  return (deg * Math.PI / 180.0);
}

//This function converts radians to decimal degrees
private double rad2deg(double rad) {
  return (rad / Math.PI * 180.0);
}
Console.WriteLine(distance(25.0814609,55.1258294,25.0445529,55.1181078, "M"));
Console.WriteLine(distance(25.0814609,55.1258294,25.0445529,55.1181078, "K"));
Console.WriteLine(distance(25.0814609,55.1258294,25.0445529,55.1181078, "N"));

No comments:

Post a Comment