- ➕ Adds Universal Polar Stereographic (UPS) to UTM system to allow polar region use.
- ➕ Adds MGRS Polar to MGRS system to allow polar region use.
- 🗄 Deprecates
WithinCoordinateSystemBoundsproperties for UTM/MGRS systems. This change is possibly breaking for users who rely on this property to determine UTM/MGRS boundaries.
⏱ There will no longer be boundaries when operating in the UTM and MGRS systems. A new property named
SystemTypehas been added to both the
SystemTypemay be checked to determine if polar regions have been entered (previously
WithinCoordinateSystemBounds). Because both systems no longer have limitation,
WithinCoordinateSystemBoundswill always return true until its scheduled removal.
//POLAR REGION COORDINATECoordinate c = new Coordinate(-85,10);Console.WriteLine(c.UTM.SystemType); //UPS;Console.WriteLine(c.MGRS.SystemType); //MGRS\_Polar;Console.WriteLine(c.UTM); //B 2096454mE 2547018mNConsole.WriteLine(c.MGRS); //B AT 96454 47018
US ARMY TEC-SR-7 1996 was referenced for UPS/MGRS POLAR conversions. The formulas have been discovered to suffer accuracy loss during convert backs (UPS/MGRS POLAR to GEODETIC LAT/LONG). This accuracy loss ranges from 0-33 meters below the 88th parallel and up to 2.2 kilometers between the 88th parallel and the poles. Ensure this precision meets your requirements before using.
🚀 Formulas will be improved upon in future releases.
- Coordinates may now operate in local / UTC offset time.
- 🐎 Greatly improves local time conversion performance. Benchmarks now match UTC calculation benchmarks.
- Simplifies local time conversion calls.
- 🗄 Deprecates legacy local time calls.
- ⬇️ Reduces GeoDate property change overhead.
- 📜 Parser improvements. Geodetic coordinates will now successfully parse if latitudes are before longitudes in string. UTM single strings will now parse.
- Developer Guide, Celestial section changes to match new and improved methods.
- 🆓 License modification to allow for free commercial use license issuance for certain use cases.
- 📦 Split license packed with Nuget package.
- ✂ Removes .pdb files from pack.
Example of Coordinate local time operation.
//EST Date 21-MAR-2019 @ 07:00 AMDateTime d = new DateTime(2017,3,21,7,0,0);Coordinate c = new Coordinate(40.57682, -70.75678, d);//Coordinate still assumes the date is UTC, so we must specify the local offset hours.c.Offset = -4; //EST is UTC -4 hoursc.CelestialInfo.SunRise.ToString(); //Outputs 3/21/2017 06:45:00 AM
➕ Adds eager loading extensions to allow for finer performance tweaks. For example if you only need solar times, you may eager load solar calculations only. This will reduce benchmarks greatly.
//Create EagerLoad object with Celestial turned onEagerLoad el = new EagerLoad(EagerLoadType.Celestial);//Set EagerLoad Extensions to load Sun Cycle only.el.Extensions = new EagerLoad\_Extensions(EagerLoad\_ExtensionsType.Solar\_Cycle);//Create Coordinate with eager load settingsCoordinate coord = new Coordinate(45.34, 65.47, DateTime.Now, el);
🐎 More information may be found on the websites performance page.
-UTM available precision increased.
📜 -MGRS parser bug fix (some formats not parsing correctly).
📜 -MGRS parser improvement (single string format will now parse).
🚀 This version was quickly released after v18.104.22.168 due to planned improvements and the need to quickly fix a bug in the parser. The bug has been present in the parser since it's adoption. Tests have been adjusted to catch similar bugs in the future.
This version received a minor increment due to the UTM precision change possibly effecting string outputs of UTM Easting and Northing values. Users will be required to determine their own rounding if plugging into those value directly and if desired.
🔦 Exposes more efficient UTM/MGRS to Signed Degree Methods