module Data.Geo.GPX.Longitude(
Longitude
, longitude
, runLongitude
) where
import Data.Fixed
import Text.XML.HXT.Arrow.Pickle
newtype Longitude = Longitude Double
deriving (Eq, Ord, Enum, Num, Fractional, Floating, Real, RealFrac, RealFloat)
longitude ::
Double
-> Longitude
longitude n =
Longitude ((n + 180) `mod'` 360 180)
runLongitude ::
Longitude
-> Double
runLongitude (Longitude d) =
d
instance Show Longitude where
show (Longitude n) = show n
instance XmlPickler Longitude where
xpickle = xpWrap (longitude, \(Longitude n) -> n) xpPrim