CoordinateSharp v2.4.1.1 Release Notes

Release Date: 2020-01-02 // 27 days ago
    • ➕ 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 WithinCoordinateSystemBounds properties 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 SystemType has been added to both the UniversalTransverseMercator and MilitaryGridReferenceSystem classes. SystemType may be checked to determine if polar regions have been entered (previously WithinCoordinateSystemBounds). Because both systems no longer have limitation, WithinCoordinateSystemBounds will always return true until its scheduled removal.

    Example:

    //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.


Previous changes from v2.3.1.1

    • 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.
    • Minor EagerLoad_Extensions improvements.
    • 📜 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