This project was formerly a commercial library maintained by the company "GeoFrameworks" for two components it sold (GPS.NET and GIS.NET) from 2004 to 2009. In 2009, Jon Person decided to release the source code for this library in order to assist the open source community. This project contains classes designed to simplify the task of writing Location-Based Services as well as mapping applications. The most frequently used classes in this project are Angle, Latitude, Longitude, and Position. These classes represent coordinates on Earth's surface and provide functions for calculating distance and bearing to other points on Earth. Other classes such as Speed and Distance encapsulate measurements as well as conversions to other unit types.
The entire library is globalized, supporting multiple numeric formats and cultures, and includes design-time type converters to add support for Windows Forms designers. Most classes also support conversion of values to and from string values. For example, the Position class can output values in a specific format and parse formatted values back into an object. This project has no dependency on specific UI platforms, allowing it to be used in both GDI+ and WPF applications.
This is the second major release of the framework. This version eliminates GDI+ dependencies such as System.Drawing to enable the framework to be compatible with newer Windows Presentation Foundation applications. Unlike version 1.0, this version does not support Visual Studio 2003, but (as a result) supports newer .NET features such as generics. Some types such as Position were changed from classes to structures to improve performance. Lastly, a lot of the code was cleaned up and analyzed with the help of FxCop.
Here are some key features of "GeoFramework 2.0":
- Supports any culture in any numeric format.
- Supports formatting of objects to string values and vice-versa.
- Supports geodetic equations such as calculating distance, bearing, travel time, and minimum travel speed.
- Supports distance and speed measurements and conversions in Imperical and Metric systems.
- Supports PROJ4-compliant datum and ellipsoids, referenced by EPSG number.
- Supports XML serialization (and deserialization) to Geographic Markup Language (GML).
- Thorough use in a commercial, production environment.
- Full IntelliSense documentation including remarks and examples.
- This release contains stability and performance improvements as well as many bug fixes. It also adds support for Visual Studio 2010 and .Net 4.0.