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