geodetic-0.1.0: Geodetic calculations

Safe HaskellNone

Data.Geo.Geodetic.GreatCircle

Description

Great circle geodetic distance algorithm.

Synopsis

Documentation

sphericalLaw :: Sphere -> Coordinate -> Coordinate -> DoubleSource

Great circle spherical law algorithm.

>>> fmap (printf "%0.4f") (do fr <- 27.812 ..#.. 154.295; to <- (-66.093) ..#.. 12.84; return (sphericalLaw earthMean fr to)) :: Maybe String
Just "15000950.5589"
>>> fmap (printf "%0.4f") (do fr <- (-16.7889) ..#.. 41.935; to <- 6.933 ..#.. (-162.55); return (sphericalLaw earthMean fr to)) :: Maybe String
Just "17128743.0669"
>>> fmap (printf "%0.4f") (do fr <- 27.812 ..#.. 154.295; to <- (-66.093) ..#.. 12.84; return (sphericalLaw (6350000 ^. nSphere) fr to)) :: Maybe String
Just "14959840.4461"
>>> fmap (printf "%0.4f") (do fr <- (-16.7889) ..#.. 41.935; to <- 6.933 ..#.. (-162.55); return (sphericalLaw (6350000 ^. nSphere) fr to)) :: Maybe String
Just "17081801.7377"

sphericalLawD :: Coordinate -> Coordinate -> DoubleSource

Great circle spherical law algorithm with a default sphere of the earth mean.

>>> fmap (printf "%0.4f") (do fr <- 27.812 ..#.. 154.295; to <- (-66.093) ..#.. 12.84; return (sphericalLawD fr to)) :: Maybe String
Just "15000950.5589"
>>> fmap (printf "%0.4f") (do fr <- (-16.7889) ..#.. 41.935; to <- 6.933 ..#.. (-162.55); return (sphericalLawD fr to)) :: Maybe String
Just "17128743.0669"

sphericalLaw' :: Optional1 Sphere (Coordinate -> Coordinate -> Double) x => xSource

Great circle spherical law algorithm with an optionally applied default sphere of the earth mean.

>>> fmap (printf "%0.4f") (do fr <- 27.812 ..#.. 154.295; to <- (-66.093) ..#.. 12.84; return (sphericalLaw' fr to :: Double)) :: Maybe String
Just "15000950.5589"
>>> fmap (printf "%0.4f") (do fr <- (-16.7889) ..#.. 41.935; to <- 6.933 ..#.. (-162.55); return (sphericalLaw' fr to :: Double)) :: Maybe String
Just "17128743.0669"