A geospatial framework for .NET, including Longitude, Latitude, Position, Angle, Distance, and Speed objects
C#
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
..svnbridge No commit message Jul 26, 2009
BuildProcessTemplates Upgrade: New Version of LabDefaultTemplate.xaml. To upgrade your buil… Oct 1, 2012
Docs migrated the license and readme files from CodePlex to GitHub Apr 8, 2017
Licensing Added missing files: RectangleD.cs, as well as licensing classes for … Jul 28, 2009
Properties Created new projects and solutions for Visual Studio 2010 and .Net 4.… Apr 16, 2010
Type Converters No commit message Jul 26, 2009
Angle.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
Area.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
Azimuth.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
CartesianPoint.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
CodePlex.snk No commit message Jul 26, 2009
Datum.cs No commit message Jul 26, 2009
Distance.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
Elevation.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
Ellipsoid.cs No commit message Jul 26, 2009
EventArgs.cs Modified the system clock synchronization logic to respect local time… Jul 13, 2010
GeoFramework (Compact Framework 2.0).csproj Added a Velocity type, which represents both the speed and direction … Mar 17, 2010
GeoFramework (Compact Framework 3.5).csproj Added a Velocity type, which represents both the speed and direction … Mar 17, 2010
GeoFramework (Desktop Framework 2.0).csproj Added a Velocity type, which represents both the speed and direction … Mar 17, 2010
GeoFramework (Desktop Framework 3.5).csproj Added a Velocity type, which represents both the speed and direction … Mar 17, 2010
GeoFramework (Desktop Framework 4.0).csproj Created new projects and solutions for Visual Studio 2010 and .Net 4.… Apr 16, 2010
GeoFramework (VS2008 Designers).csproj Minor update to VS2008 design-time project. Jul 29, 2009
GeographicRectangle.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
GeographicSize.cs Fixed a bug in the IFormattable implementations that could cause Null… May 10, 2010
ICloneable.cs No commit message Jul 26, 2009
Interpolator.cs No commit message Jul 26, 2009
Interpolator2D.cs No commit message Jul 26, 2009
LICENSE migrated the license and readme files from CodePlex to GitHub Apr 8, 2017
Latitude.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
Longitude.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
Matrix.cs Fixed support for CF35. Added Matrix, PointF, RectangleFHelper classe… Jul 28, 2009
NativeMethods.cs No commit message Jul 26, 2009
Percent.cs Added new strong name key to all projects. Modified classes to use ne… Jul 26, 2009
Platform.cs Created new projects and solutions for Visual Studio 2010 and .Net 4.… Apr 16, 2010
PointD.cs Fixed a bug in the IFormattable implementations that could cause Null… May 10, 2010
PointF.cs Fixed support for CF35. Added Matrix, PointF, RectangleFHelper classe… Jul 28, 2009
Position.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
Position3D.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
README.md updated the "related projects" section Apr 8, 2017
Radian.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
RectangleD.cs Added missing files: RectangleD.cs, as well as licensing classes for … Jul 28, 2009
RectangleFHelper.cs Fixed support for CF35. Added Matrix, PointF, RectangleFHelper classe… Jul 28, 2009
Segment.cs Fixed a bug in the IFormattable implementations that could cause Null… May 10, 2010
SizeD.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
Speed.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
StaticFinalizer.cs No commit message Jul 26, 2009
Velocity.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010
Xml.cs Fixed the IXmlSerializable implementations so they work correctly wit… May 18, 2010

README.md

Geoframework Logo Geographic Framework for .NET

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.

Related Projects:

Included Features

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

Supported Frameworks

This library supports all .NET Frameworks from version 2.0 through 4.0 as well as .NET Compact Framework versions 2.0, and 3.5. The compiler directive PocketPC is used to target the compact framework.

Project History

GeoFramework 1.0

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.

GeoFramework 2.0

This is the second major release of the framework. (GeoFramework 1.0 is on CodePlex.) 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.

GeoFramework is now DotSpatial

GeoFramework and GPS.Net are now part of the larger DotSpatial project. All classes and libraries have been migrated from GeoFramework 2.0 and GPS.Net 3.0 to the DotSpatial project, under the DotSpatial.Positioning namespace. We've taken great care to ensure backward compatibility during this transition, so other than the new namespace, there should be little or no changes needed for your applications that were previously using GeoFramework and GPS.Net.

The existing GeoFramework 2.0 and GPS.Net 3.0 projects will remain here for legacy purposes, but all future development will take place within the DotSpatial project. For this reason, we strongly encourage you to migrate your applications to DotSpatial.

As DotSpatial doesn’t currently support the compact framework (and there is quite a bit of uncertainty about its future) we have included a refactored but still working version in the folder DotSpatial\DotSpatial.Positioning\DotSpatial.Positioning.Compact this folder will be retained for the purpose of providing compact framework developers a place to keep this platforms version alive.