Saturday, March 14, 2009

funcition for calculating distacne from langitude and latetude.

private double distance(double lat1, double lon1, double lat2, double lon2, string unit)
{
double totalDistance;
double theta, dist;
theta = lon1 - lon2;
dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) + Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta));
dist = acos(dist);
dist = rad2deg(dist);
totalDistance = dist * 60 * 1.1515;
if (unit == "K")
{
totalDistance = totalDistance * 1.609344;
return totalDistance;
}
else if (unit == "N")
{
totalDistance = totalDistance * 0.8684;

return totalDistance;

}
else
{
return 0.00;
}


}

private double acos(double rad)
{
if (Math.Abs(rad) != 1)
{
return pi / 2 - Math.Atan(rad / Math.Sqrt(1 - rad * rad));

}
else if (rad == -1)
{
return pi;
}
else
{
return 0.00;

}



}

private double deg2rad(double Deg)
{
return Convert.ToDouble(Deg * pi / 180);
}

private double rad2deg(double Rad)
{
return Convert.ToDouble(Rad * 180 / pi);
}

No comments: