module Geo.Types where
import Data.Text
import Data.Time
data Track = Track
{ trkName :: Maybe Text
, trkDescription :: Maybe Text
, segments :: [Segment]
}
deriving (Eq, Ord, Show, Read)
data Segment = Segment { points :: [Point] }
deriving (Eq, Ord, Show, Read)
type Latitude = Double
type Longitude = Double
data Point = Point
{ pntLat :: Latitude
, pntLon :: Longitude
, pntEle :: Maybe Double
, pntTime :: Maybe UTCTime
}
deriving (Eq, Ord, Show, Read)
pt :: Latitude -> Longitude -> Maybe Double -> Maybe UTCTime -> Point
pt t g e m = Point t g e m
zeroPoint = Point 0 0 Nothing Nothing