Skip to content

Releases: Tronald/CoordinateSharp

v2.10.1.1

15 Mar 21:34
4b656ec
Compare
Choose a tag to compare
  • Adds distance to boundary feature to GeoFence class.
Distance d = geoFence.DistanceFromNearestPolyline(coordinate);
  • Add standard Earth Ellipsoid Specification values, allowing users to specify "datum" enums vs entering radius/flattening values if changing earth shape from standard WGS84. This will adjust UTM/MGRS conversions from lat/long.
coordinate.Set_Datum(Earth_Ellipsoid_Spec.GRS80_1979);
  • Adds system specific parsers, allowing more control over string parsing.
MilitaryGridReferenceSystem mgrs;
MilitaryGridReferenceSystem.TryParse(coordString, out mgrs);
MilitaryGridReferenceSystem.TryParse(coordString, Earth_Ellipsoid_Spec.WGS72_1972, out mgrs);
  • Fixes bug causing UTM calculations to not consistently convert when operating outside of WGS84.

v2.9.6.1

13 Feb 23:23
acef071
Compare
Choose a tag to compare

Improves GeoFence efficiency by replicating Coordinate eager loading settings.

v2.9.5.1

22 Jan 02:27
a4907a5
Compare
Choose a tag to compare

-Parser improvements.

MGRS strings will fail correctly vs attempting to fix an incorrect string. For example "SMART" would parse as "0ART00". This bug was introduced when meter specification was removed to improve the parser.

v.2.9.4.2

18 Dec 21:03
a387682
Compare
Choose a tag to compare
  • Fixes binary serialization issues with new celestial coordinates.
  • Adds publicly available subscribable "CoordinateChanged" event in preparation for new library extensions.
  • Releases CoordinateSharp.Magnetic extension package. This package will allow for magnetic field calculations.

Magnetic Guide
Magnetic Package

Coordinate c = Coordinate(25,25, new DateTime(2020,1,1));
Magnetic m = new Magnetic(c, DataModel.WMM2020);

v2.9.4.1

03 Dec 17:01
e1cdea3
Compare
Choose a tag to compare
  • Fixes UTM parser issue that can occur when Easting and Northing string length are not consistent.

v2.9.3.1

02 Dec 16:34
329e1a7
Compare
Choose a tag to compare
  • Fixes UPS parser issue that can occur when Easting and Northing string length are not consistent.

v2.9.2.1

01 Dec 19:27
4713abc
Compare
Choose a tag to compare

-Fixes issue with subsolar/sublunar points jumping to wrong position during tracking. Only effects new features in v2.9.#.#.

v2.9.1.3

30 Nov 06:54
d73f7a3
Compare
Choose a tag to compare
  • Fixes critical parsing bug with MGRS coordinates at identifiers MN and ME Issue 171.
  • Fixes float point rounding bug causing seconds and decimal minutes to display "60" instead of "0" Issue 170.
  • Prepares library for optional extension packages coming soon (magnetic declination, NodaTime handles).
  • Adds ability to get solar and lunar coordinates, useful for creating over Earth tracks Issue 164.
//Accessible through Coordinate
Coordinate c = new Coordinate(45, 45, new DateTime(2020, 11, 19, 12, 30, 0));
Console.WriteLine(c.CelestialInfo.LunarCoordinates.SublunarLatitude);//-24.0341
Console.WriteLine(c.CelestialInfo.LunarCoordinates.SublunarLongitude);//51.6318

//Static Method
lc = Celestial.Get_Lunar_Coordinate(new DateTime(2020, 11, 19, 12, 30, 0));
Console.WriteLine(lc.SublunarLatitude);//-24.0341
Console.WriteLine(lc.SublunarLongitude);//51.6318

v2.8.1.1

14 Oct 23:40
1a60d1a
Compare
Choose a tag to compare
  • Adds Condition property to AltitudeEvents class, allowing users to determine the sun's rise/set condition for a date at specified altitudes.

Example:

Coordinate c = new Coordinate(47.40615, -122.24517, new DateTime(2020, 8, 11));

//Determine times the sun passes through 57.8 degrees.
var t = Celestial.Get_Time_at_Solar_Altitude(c, 57.8);
t.Rising; //Null
t.Setting; //Null;

//Should show DownAllDay as the sun never reaches a height of 57.8 degree at the specified location and date.
t.Condition; //DownAllDay
  • Adds ability to output UTM/MGRS rounded and centimeter strings.

UTM/MGRS coordinates are truncated per standard. Though this makes sense in terms of operating in those systems, it can have adverse impacts when converting back and forth between UTM/MGRS and Lat/Long as precision loss will occur. Rounded and Centimeter versions of these systems are also available for output. These values may be more reliable if converting back and forth between UTM/MGRS and Lat/Long systems.

Example:

Coordinate c = new Coordinate(40.57682, -70.75678);
c.MGRS.ToRoundedString(); // Outputs 19T CE 51308 93265
c.MGRS.ToCentimterString(); // Outputs 19T CE 51307.55707 93264.83597
  • Improves parsers.

Uneven spacing should no longer effect parsers: "N45 E 45" will now parse.

  • Adds CoordinateSharp.Formatters namespace containing useful mathematical functions to convert things such as radians, degrees, HMS, etc.

  • Completes unit tests port.

v2.7.3.2

01 Sep 00:11
c0aa873
Compare
Choose a tag to compare
  • Improves MGRS_GridBox Marching/Scanning Algorithm.
  • Various XML Fixes.