/Spherical

Set of C# classes for calculations on a sphere and for work with a sphere triangular grid.

Primary LanguageC#MIT LicenseMIT

This repository contains two C# code files with a set of interfaces and classes for calculations on a sphere and for work with sphere triangular grid.

The first file AleSpherical.cs defines namespace aleprojects.spherical that provides interfaces ICartesian (vector), IGeoCoordinate (location on a sphere), classes implementing them, and static class SphericalExtension with extension methods. Extension methods allow to solve such geospatial tasks like to find a distance or azimuth from one point to another, to check if a point is inside a spherical polygon or belongs to a polyline, to inflate a spherical polygon, to calculate sunrise and sunset times (for the Earth), polyline encoding and decoding, etc. Learn more

The second file AleSphericalGrid.cs defines namespace aleprojects.spherical.grid that provides static helper class SphereGridHelper for creating and handling of a sphere triangular grid, and SphereGridTile class representing a grid tile. The SphereGridTile class has methods that allow to find tiles at the specified grid level covering continuous objects like polygons, polylines, and circles. Learn more

Polygon covered by grid tiles Polyline covered by grid tiles Circle covered by grid tiles