Version Change Notes
- -Adds GEOREF conversions.
- -Adds .NET 7.0 targets.
- -Documentation fixes.
- -Adds Web Mercator EPSG:3857 conversions.
- -Adds .NET 6.0 targets.
- -Removes obsolete UTM/MGRS boundary check property.
- -Documentation updates to clarify expected ECEF precision.
- -Updates commercial license (does not effect existing lifetime license holders).
184.108.40.206 CoordinateSharp / 220.127.116.11 CoordinateSharp.Magnetic
18.104.22.168 CoordinateSharp / 22.214.171.124 CoordinateSharp.Magnetic
- -Extends UTC Offset validation to -12/+14 to account for countries extending IDL. Crucial update if operating in local times in those areas.
- -CoordinateSharp.Magnetic updated to pull latest version of CoordinateSharp.
126.96.36.199 CoordinateSharp / 188.8.131.52 CoordinateSharp.Magnetic
- -Adjusts MGRS documentation (CoordinateSharp Only).
- -Updates license nomenclature for clarity (no end user impact).
- -Adds lunar phase name enumerator.
- -Adds distance to boundary feature to
- -Add standard Earth Ellipsoid Specification values, allowing users to specify "datum" enums vs entering radius/flattening values if changing earth shape from standard WGS84.
- -Fixes bug causing UTM calculations to not consistently convert when operating outside of WGS84.
- -Adds system specific parsers (ex:
MilitaryGridReferenceSystem.Parse([coordString]);), allowing more control over string parsing.
- -GeoFence efficiency improvements.
- -Fixes binary serialization issues with new celestial coordinates.
- -Adds publicly available subscribable "CoordinateChanged" event in preparation for new library extensions.
- -Fixes UTM parser issue that can occur when Easting and Northing string length are not consistent.
- -Fixes UPS parser issue that can occur when Easting and Northing string length are not consistent.
- -Fixes subsolar/sublunar degree normalization bug occuring under certain conditions that causes the celstial body to appear in the opposite position. Only effects the new feature added in v2.9.#.#.
- -Fixes critical parsing bug with MGRS coordinates at identifiers MN and ME.
- -Adds ability to get solar and lunar coordinates.
- -Prepares library for optional extension packages coming soon (magnetic declination, NodaTime handles).
- -Fixes float point rounding bug causing seconds and decimal minutes to display "60" instead of "0".
Condition property to
AltitudeEvents class, allowing users to determine the sun's rise/set condition for a date at specified altitudes.
- -Adds ability to output UTM/MGRS rounded and centimeter strings.
- -Improves parsers.
CoordinateSharp.Formatters namespace containing useful mathematical functions to convert things such as radians, degrees, HMS, etc.
- -Completes unit tests port.
MGRS_GridBox marching/scanning algorithms.
- -XML Fixes.
Celestial.SolarNoon property allowing users to obtain solar noon data points.
- -Adds ability to get time of day from a provided sun altitude and position.
- -Adds ability to get MGRS square identifier corner points for specified MGRS coordinate.
- -Parser/XML Improvements.
- -Adds solstice and equinox information to the
Celestial class. NOTE: This change could cause a very minor change in performance. You may turn off eager loading of solstice/equinox information via a new extension if the performance change is outside desired limits.
- -Adds a
Solstice_Equinox eager loading extension to allow the new solstice and equinox logic to be turned off.
- -Fixes bug causing MGRS Polar to Geodetic conversions to ignore eager loading specifications.
- -Fixes bug causing MGRS to eager load on
Coordinate initialization even when MGRS eager load extension has been turned off.
- -Adjusts output string logic to account for .NET 3.X round-tripping 0 change.
- -Fixes parser bug occurring with MGRS parses that have less than 1 meter precision.
- -Adds a strong named key to the assembly allowing for use in strong named applications.
- -Adds ability to get solar and lunar, next/last rise and set events via static methods. These methods will guarantee a
- -Adds standard parse methods that will throw exceptions upon failure.
- -Adds new
GlobalSettings static class which will allow users to specify application wide eager loading
EagerLoad and coordinate format
- -Adds new
GeoFence.Drawer class which will give users the ability to draw continuous lines/shapes by specifying a distance and bearing shift and each arrived point.
EagerLoad overload to all
Coordindate.TryParse() methods to improve efficiency.
- -Adds ability to over-project UTM and MGRS grid zones.
- -XML fixes.
- -Adds .NET Standard 2.1 for .NET Core 3.0 support.
- -Updates Nuget package icon to new Nuget pack standard.
- -Adds Universal Polar Stereographic (UPS) to UTM system to allow polar region use.
- -Adds MGRS Polar to MGRS system to allow polar region use.
WithinCoordinateSystemBounds properties for UTM/MGRS systems. This change is possibly breaking for people who rely
on this property to determine UTM/MGRS boundaries.
- -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.
EagerLoad extension 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.
- -EagerLoading extension properties added to allow for finer performance tweaks.
- -Performance tips and examples added to website.
- -UTM available precision increased.
- -MRGS Parser bug fix.
- -MRGS Parser improvement (single string format now available).
- -License changed from MIT to Split AGPL 3.0/Commercial Use.
- -Removed ComponentModel actions from all classes except Coordinate/CoordinatePart to reduce overhead.
- -Removed depracated items.
- -Added local time conversion solar/lunar only options to increase performance during bulk conversions.
- -Added new Coordinate moving/shifting features.
- -MGRS/UTM nomenclature and constructor changes.
- -Improved Coordinate parsers.
- -Major code restructure.
- -Improved documentation.
- -Improved testing.
- -MGRS/UTM Signed Degree Conversions added for efficiency.
- -Version control process change.
- -Fixes issues with distance bearing reversing in certain regions.
- -Begins deprecation of legacy constructors and properties in preparation of v184.108.40.206.
- -Fixes issue with EagerLoading of ECEF values during assigment to
Celestial properties and
CoordinatePart.Parent from user mutable to user immutable.
ECEF class and conversions.
- -Adds `CartesianType' enum for `TryParse()` to allow user to determine what type of Cartesian to parse in.
- -Splits datum from `UTM` to `Coordinate` (for distance calculations), `UTM` for UTM/MGRS conversions and `ECEF` for ECEF conversions.
- -Fixes null reference exception occurring when moving a coordinate while EagerLoading for UTM is turned off.
- -Adds `Parse_Format_Type` enumerator to `Coordinate` so users can determine what format a Coordinate was parsed from.
- -General parser improvements
- -Code refactoring.
IsMoonUp properties to the
- -Removes static variables from eclipse calculations in order to assist in MultiThreaded environments.
- -Updates Nuget Package License info
- -Code refactoring.
- -Fixes issue with UTM_MGRS EagerLoad not being set when using flags.
- -Fixes buffer overflow issue occurring in certain environments due to debug settings.
220.127.116.11 (Possibly Breaking)
- -Fixes the elusive
FormatException occurring under heavy server loads / unit tests.
- -Adds ability to pass enum flags to the
WithinCoordinateSystemBounds property to UTM and MGRS. Used to determine if a conversion from Lat/Long is within the UTM/MGRS systems limitations.
ToString() property of UTM and MGRS. If conversion from Lat/Long is outside the limitations of the UTM/MGRS system,
ToString() will return an emtpy
string. Possibly breaking if a UTM/MGRS string is expected at all times.
18.104.22.168 (Possibly Breaking)
- -Fixes issues with
EagerLoading causing null exceptions. This is possibly breaking if workarounds of the issue were put in place.
- -Adds ability to pass true/false to all
EagerLoading properties during initialization.
- -Code readabiity updates.
GeoFence feature. You may now specifiy geographic boundaries and determine if
Coordinate is within or near boundaries.
CoordinatePart.TryParse() bug occurring with Decimal Degree formats.
- -Adds overload to
Distance that allows initialization with a specified measurement type.
- -Adds automated test project to solution.
- -Fixes Sun Altitude/Azimuth bug
TryParse() method to
CoordinatePart.Parent now automatically adjusts when
CoordinatePart is set to
- -Fully Ported to .NET Standard 2.0, 1.4 & 1.3. Multi-Runtime targeting still allows for .NET 4.0.
- -Adds additional solar properties (astronomical twilight and bottom of solar disc times).
- -Improves solar accuracy.
- -Improves Parser (More accepted formats. May now parse with GeoDate).
- -Removes references causing .NET standard incompatibility warnings.
TryParse() method to
Coordinate. Coodinates may now be created from strings.
- -Logo change.
- -Updates XML documentation and migrates to website.
- -Exposes moon altitude and azimuth properties.
- -Further increases lunar accuracy.
- -Celestial.Assistant.cs added to reduce class file size.
- -Adds ability to get Moon's Perigee and Apogee information based on date.
- -Improved accuracy of lunar properties.
MoonDistance property from
- -Updated Julian conversion for more accuracy when dates occur before Gregorian.
- -Exposed Julian conversion for users to access.
- -Removed scheduled obsolete properties.
- -Adjusted string conversion in eclipse calculations to account for different thread culture.
- -Fixed issue with
MoonCondition signaling a moon set when none occurs.
- -Adds ability to create
Celestial object with local times.
- -Fixes issue with zodiac signs not populating in July.
- -Fixes binding issue with out of range Degrees.
- -Fixes value notification issue.
- -Fixes Additional Solar Time day skip occurring at certain latitudes.
- -Fixed issue with CoordinatePart Longitude validation.
- -Fixed Digraph validation error for new MGRS objects initialized with W,X,Y,Z Digraphs.
- -Allows serialization of objects.
- -Added ability to move coordinate based on distance and bearing / target and distance.
- -Added various properties to distance class.
- -Added option to calculate distance based on Haversine (Sphere) or Vincenty (Ellipsoid).
- -Expanded eclipse tables to 1601-2600.
- -Eclipse calculations now account for turn of century leap year skips.
- -Fixed bug with Degree Decimal Minute formatted strings sometimes returning 60 minutes instead of rounding up to the next degree.
- -Added ability to convert to/from Cartesian
- -Added ability to calculate distance between two points (Haversine Formula)
- -Added ability to get radians from
- -Added Solar/Lunar eclipse information to
- -Expanded eager loading options
- -Added ability to pass custom datum for UTM and MGRS conversions
- -Adjusted UTM conversion formula to be more readable
- -Makes AdditionalSolarTimes nullable (fixes issue #24)
- -Added UTM to Lat/Long conversion.
- -Added MGRS(NATO UTM) to Lat/Long conversion.
- -Added sun altitude and azimuth properties.
- -Added additional solar times.
- -Added additional moon illumination properties.
- -Added astrological sign properties.
- -XML documentation added to assembly.
- -Added UTC time integrity to calculations.
- -Minor bug fixes.