Skip to content

Releases: Tronald/CoordinateSharp

v3.4.1.1 / Magnetic 2.1.5.0

16 Jan 03:35
ddae610

Choose a tag to compare

v3.3.2.1 / Magnetic 2.1.4.0

16 Nov 20:52
656ff55

Choose a tag to compare

Resolves solar-eclipse leap-year handling error that triggered an exception when Feb 29 calculations occurred in a non-leap year.

CoordinateSharp 3.3.1.1 / Magnetic 2.1.3.0

05 Oct 00:04
ddfa2a7

Choose a tag to compare

  • Added overloads to the ECEF-to-LatLong converters that accept an EagerLoading setting.
  • Added overloads to the Cartesian-to-LatLong converters that accept an EagerLoading setting

CoordinateSharp 3.2.1.1 / Magnetic 2.1.2.0

06 Jun 17:35
a1661e2

Choose a tag to compare

  • Expanded solar and lunar eclipse calculation range from 1600 AD–2600 AD to a 3000-year range starting at 0 AD.
  • Added corrected eclipse properties and deprecated misspelled properties.
  • Improved eclipse calculation accuracy.
  • Optimized UTM and MGRS conversion efficiency.
  • Refactored celestial calculations for improved efficiency.
  • Removed unused code.

CoordinateSharp 3.1.1.1 / Magnetic 2.1.1.0

22 Dec 03:42
4e97c02

Choose a tag to compare

  • Adds support for the World Magnetic Model 2025 (WMM2025), covering the years 2025–2029.
  • Introduces constructors that default to the latest WMM, eliminating the need for developers to manually update WMM specifications in their code after upgrading.
//New constructor defaults to latest model WMM2025
Coordinate c = Coordinate(25,25, new DateTime(2025,1,1));
Magnetic m = new Magnetic(c);

3.1.1.1

17 Nov 22:03
93a277c

Choose a tag to compare

-Removed deprecated items: This is a breaking change for any projects still referencing obsolete classes or methods.
-Added .NET 9 support: The application now includes full compatibility with .NET 9.
-Extended MoonIllum properties: Added a new moonAge property to the MoonIllum class.
-Enhanced GeoFence point handling: Added the ability to reorder GeoFence points with right-hand or left-hand orientation.
-Added GeoJson support: New functionality to build GeoJson objects directly from GeoFences.

// Create the outer boundary and order (right-handed)
List<GeoFence.Point> outerPoints = new List<GeoFence.Point>
{
    new Coordinate(47.6062, -122.3321),  // Seattle
    new Coordinate(48.7519, -122.4787),  // Bellingham
    new Coordinate(47.2529, -122.4443),  // Tacoma
    new Coordinate(48.0419, -122.9025),  // Port Townsend
    new Coordinate(47.6588, -117.4260),  // Spokane
    new Coordinate(46.6021, -120.5059),  // Yakima
    new Coordinate(46.7324, -117.0002),  // Pullman
    new Coordinate(48.3102, -122.6290),  // Anacortes
    new Coordinate(47.8225, -122.3123),  // Edmonds
    new Coordinate(46.9787, -123.8313),  // Aberdeen
    new Coordinate(47.0379, -122.9007),  // Olympia
    new Coordinate(47.6091, -122.2015),  // Bellevue
    new Coordinate(47.6787, -120.7141),  // Leavenworth
    new Coordinate(48.0812, -123.2643),  // Port Angeles
    new Coordinate(46.7152, -122.9522)   // Centralia
};

GeoFence outerFence = new GeoFence(outerPoints);
outerFence.OrderPoints_RightHanded();
outerFence.ClosePolygon();

// Create an inner boundary and order (left-handed)
List<Coordinate> innerPoints = new List<Coordinate>()
{
    new Coordinate(46.8523, -121.7603),  // Mount Rainier (center point)
    new Coordinate(46.8625, -121.7401),  // Slightly north-east
    new Coordinate(46.8421, -121.7805),  // Slightly south-west
    new Coordinate(46.8650, -121.7850),  // North-west
    new Coordinate(46.8400, -121.7500)   // South-east
};
GeoFence innerFence = new GeoFence(innerPoints);
innerFence.OrderPoints_LeftHanded();
innerFence.ClosePolygon();

// Build the GeoJSON polygon with the outer and inner boundaries
string geoJson = GeoFence.GeoJsonPolygonBuilder(outerFence, new List<GeoFence> { innerFence });

v2.24.2.1

14 Jul 20:59
8d77b0c

Choose a tag to compare

2.24.2.1
-Fixes critical bug causing exceptions near poles.

2.24.1.1
-Fixes bugs causing incorrect sun condition to report in circumpolar regions during slow transition at horizon.
-Adds overload to GeoFence.Denisfy() to allow custom specification of earth shape during point densification.

2.24.1.1 (bugged)

09 Jul 00:42
f464766

Choose a tag to compare

-Fixes bugs causing incorrect sun condition to report in circumpolar regions during slow transition at horizon.

Issue 167
Issue 239

-Adds overload to GeoFence.Denisfy() to allow custom specification of earth shape during point densification.

Issue 237

Available on Nuget

2.23.1.1

19 May 23:59
b04af81

Choose a tag to compare

Adds the ability to densify polylines to mitigate geofence spherical distortions over long distances.

nuget: https://www.nuget.org/packages/CoordinateSharp/2.23.1.1

//Create a four point GeoFence around Utah
List<GeoFence.Point> points = new List<GeoFence.Point>();

points.Add(new GeoFence.Point(41.003444, -109.045223));
points.Add(new GeoFence.Point(41.003444, -102.041524));
points.Add(new GeoFence.Point(36.993076, -102.041524));
points.Add(new GeoFence.Point(36.993076, -109.045223));
points.Add(new GeoFence.Point(41.003444, -109.045223));
      
GeoFence gf = new GeoFence(points);

// Densify the geofence to plot a coordinate every 5 kilometers using Vincenty to account for Earth's shape
gf.Densify(new Distance(5, DistanceType.Kilometers));

2.22.1.1

20 Feb 00:21
0e93934

Choose a tag to compare

-Adds Hours of Day DaySpan and Hours of Night NightSpan TimeSpan properties to the CelestialInfo class for easier calculation of total day and night hours for a date at a specified location.

Example:

Coordinate c = new Coordinate(-47, -122, new DateTime(2023, 9, 30));
c.Offset = -7;
         
Console.WriteLine("DAY SPAN: " + c.CelestialInfo.DaySpan.TotalHours); //12.5616666666667
Console.WriteLine("NIGHT SPAN: " + c.CelestialInfo.NightSpan.TotalHours); //11.4383333333333