geodetic-0.1.4: Geodetic calculations

Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Geo.Geodetic.Bearing

Description

A bearing in degrees between 0 and 360.

Synopsis

Documentation

data Bearing Source

Instances

Eq Bearing 
Ord Bearing 
Show Bearing

A show instance that prints to 4 decimal places. This is to take floating-point rounding errors into account.

AsBearing p f Bearing 
(Profunctor p, Functor f) => AsVincentyDirectResult p f (Coordinate, Bearing) 

class AsBearing p f s where Source

Minimal complete definition

Nothing

Methods

_Bearing :: Optic' p f s Bearing Source

Instances

(Choice p, Applicative f) => AsBearing p f Double

A prism on bearing to a double between 0 inclusive and 360 exclusive.

>>> (7 :: Double) ^? _Bearing
Just (Bearing 7.0000)
>>> (0 :: Double) ^? _Bearing
Just (Bearing 0.0000)
>>> (359 :: Double) ^? _Bearing
Just (Bearing 359.0000)
>>> (359.997 :: Double) ^? _Bearing
Just (Bearing 359.9970)
>>> (360 :: Double) ^? _Bearing
Nothing
all (\m -> _Bearing # m == n) ((n :: Double) ^? _Bearing)
AsBearing p f Bearing 
((~) (* -> * -> *) p (->), Functor f) => AsBearing p f VincentyDirectResult 

modBearing :: Double -> Bearing Source

Construct a bearing such that if the given value is out of bounds, a modulus is taken to keep it within 0 inclusive and 360 exclusive.

>>> modBearing 7
Bearing 7.0000
>>> modBearing 0
Bearing 0.0000
>>> modBearing (-0.0001)
Bearing 359.9999
>>> modBearing 360
Bearing 0.0000
>>> modBearing 359.99999
Bearing 360.0000
>>> modBearing 359.999
Bearing 359.9990