|
|
- using System;
-
- namespace POCDistance.Util
- {
- public static class CalculateDistance
- {
- static double toRadians(
- double angleIn10thofaDegree)
- {
- // Angle in 10th
- // of a degree
- return (angleIn10thofaDegree * Math.PI) / 180;
- }
- public static double GetDistance(double lat1, double lon1, double lat2, double lon2)
- {
-
- // The math module contains
- // a function named toRadians
- // which converts from degrees
- // to radians.
- lon1 = toRadians(lon1);
- lon2 = toRadians(lon2);
- lat1 = toRadians(lat1);
- lat2 = toRadians(lat2);
-
- // Haversine formula
- double dlon = lon2 - lon1;
- double dlat = lat2 - lat1;
- double a = Math.Pow(Math.Sin(dlat / 2), 2) +
- Math.Cos(lat1) * Math.Cos(lat2) *
- Math.Pow(Math.Sin(dlon / 2), 2);
-
- double c = 2 * Math.Asin(Math.Sqrt(a));
-
- // Radius of earth in
- // kilometers. Use 3956
- // for miles
- double r = 6371;
-
- // calculate the result
- return (c * r);
- }
- }
- }
|