////////////////////////////////////////////////////////////////////////////////////// // This method takes in present position (LatLongClass) and range/bearing from the // present position. It returns a new position (LatLongClass) // // Distance is IN // Azimuth in degrees public static LatLongClass CalculateNewPosition(LatLongClass PresentPosition, double Distance, double Azimuth) { LatLongClass NewPosition = new LatLongClass(); // instantiate the calculator GeodeticCalculator geoCalc = new GeodeticCalculator(); // select a reference elllipsoid Ellipsoid reference = Ellipsoid.WGS84; // set Lincoln Memorial coordinates GlobalCoordinates Present_Pos; Present_Pos = new GlobalCoordinates(new Angle(PresentPosition.GetLatLongDecimal().LatitudeDecimal), new Angle(PresentPosition.GetLatLongDecimal().LongitudeDecimal)); // now, plug the result into to direct solution GlobalCoordinates dest; Angle endBearing = new Angle(); double Distance_In_Meeters = (Distance * NMtoKM * 1000.0); dest = geoCalc.CalculateEndingGlobalCoordinates(reference, Present_Pos, Azimuth, Distance_In_Meeters, out endBearing); NewPosition.SetPosition(new LatLongDecimal(dest.Latitude.Degrees, dest.Longitude.Degrees)); return(NewPosition); }
////////////////////////////////////////////////////////////////////////////////////// // This method takes in present position (LatLongClass) and range/bearing from the // present position. It returns a new position (LatLongClass) // // Distance is IN // Azimuth in degrees public static LatLongClass CalculateNewPosition(LatLongClass PresentPosition, double Distance, double Azimuth) { LatLongClass NewPosition = new LatLongClass(); // instantiate the calculator GeodeticCalculator geoCalc = new GeodeticCalculator(); // select a reference elllipsoid Ellipsoid reference = Ellipsoid.WGS84; // set Lincoln Memorial coordinates GlobalCoordinates Present_Pos; Present_Pos = new GlobalCoordinates(new Angle(PresentPosition.GetLatLongDecimal().LatitudeDecimal), new Angle(PresentPosition.GetLatLongDecimal().LongitudeDecimal)); // now, plug the result into to direct solution GlobalCoordinates dest; Angle endBearing = new Angle(); double Distance_In_Meeters = (Distance * NMtoKM * 1000.0); dest = geoCalc.CalculateEndingGlobalCoordinates(reference, Present_Pos, Azimuth, Distance_In_Meeters, out endBearing); NewPosition.SetPosition(new LatLongDecimal(dest.Latitude.Degrees, dest.Longitude.Degrees)); return NewPosition; }
public void StructRefType() { var latLongClass = new LatLongClass() { Latitude = 1, Longitude = 1 }; var latLongClassModed = StructStudyHelpers.ModClass(latLongClass); Assert.AreSame(latLongClass, latLongClassModed); }
public static LatLongClass ModClass(LatLongClass llClass) { llClass.Longitude *= (decimal)1.1; llClass.Latitude *= (decimal)1.1; return(llClass); }