geodetics: Terrestrial coordinate systems and geodetic calculations.

[ bsd3, geography, library ] [ Propose Tags ]

Precise geographical coordinates (latitude & longitude), with conversion between different reference frames and projections.

Certain distinguished reference frames and grids are given distinct types so that coordinates expressed within them cannot be confused with from coordinates in other frames.


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.1.0, 0.1.2
Dependencies array (>=0.4), base (>=4.8 && <4.12), dimensional (>=1.0), semigroups (>=0.9 && <0.19) [details]
License BSD-3-Clause
Copyright Paul Johnson 2015.
Author Paul Johnson <paul@cogito.org.uk>
Maintainer Paul Johnson <paul@cogito.org.uk>
Revised Revision 1 made by HerbertValerioRiedel at 2019-02-09T19:28:11Z
Category Geography
Home page https://github.com/PaulJohnson/geodetics
Source repo head: git clone https://github.com/PaulJohnson/geodetics
Uploaded by PaulJohnson at 2018-06-22T07:17:39Z
Distributions LTSHaskell:0.1.2, NixOS:0.1.2, Stackage:0.1.2
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 5839 total (29 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-06-22 [all 1 reports]

Readme for geodetics-0.0.6

[back to package description]

geodetics

Haskell library of data types and calculations for positions on planet Earth

This library provides "geodetic" positions. That is, latitude, longitude and altitude on a specified Terrestrial Reference Frame (TRF). The basic TRF is the WGS84, which is the one used by GPS and Google Earth. Others can be added by describing the underlying ellipsoid and the difference in angle and centre with WGS84, and a position in one TRF can be transformed into another. Given two points in the same TRF you can find the shortest distance between them and the bearing from one to the other.

Once you have a geodetic position defined you can project it onto a flat plane, or Grid. At present Transverse Mercator and Oblique Stereographic grids are provided. More can be added by defining new instances of the Grid typeclass: see "AddingProjections.txt" for detais.

The Paths module defines a path as a parametric function of distance that returns a position and a bearing. Given two paths you can find their intersection using a fast iterative algorithm.

Release Notes

Version 0.0.2: Tided up cabal file and removed spurious dependency on Parsec.

Version 0.0.3: Updated for Haskell Platform 2014.2.0.0 and GHC 7.8.3. Fixed some minor documentation issues.

Version 0.0.4: Updated for Dimensional 1.0.

Version 0.0.5: Fixed bug in Monoid instance for Helmert. Created Semigroup instance for Helmert.

Version 0.0.6: Prevent attempted building on GHC 7.8 (it doesn't work) and fix the build on 7.10 with a conditional semigroups dependency