Example #1
0
        public static GeoClass.Coord PointAtDistance(GeoClass.Coord startPoint, double initialBearingRadians, double distanceKilometres)
        {
            double num1    = distanceKilometres / 6371.01;
            double num2    = Math.Sin(num1);
            double num3    = Math.Cos(num1);
            double rad1    = GeoClass.ToRad(startPoint.lat);
            double rad2    = GeoClass.ToRad(startPoint.lon);
            double num4    = Math.Cos(rad1);
            double num5    = Math.Sin(rad1);
            double num6    = Math.Asin(num5 * num3 + num4 * num2 * Math.Cos(initialBearingRadians));
            double radians = rad2 + Math.Atan2(Math.Sin(initialBearingRadians) * num2 * num4, num3 - num5 * Math.Sin(num6));

            return(new GeoClass.Coord()
            {
                lat = GeoClass.ToDeg(num6),
                lon = GeoClass.ToDeg(radians)
            });
        }
Example #2
0
 public static double ToBearing(double radians)
 {
     return((GeoClass.ToDeg(radians) + 360.0) % 360.0);
 }