-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A representation of latitude and longitude -- -- -- A representation of latitude and longitude @package coordinate @version 0.0.21 module Data.Geo.Coordinate.Seconds data Seconds class AsSeconds p f s _Seconds :: AsSeconds p f s => Optic' p f s Seconds -- | Setting a value within the range 0 and 60 using -- modulo arithmetic. -- --
-- >>> modSeconds 7 -- Seconds 7.0000 ---- --
-- >>> modSeconds 0 -- Seconds 0.0000 ---- --
-- >>> modSeconds (-0.0001) -- Seconds 59.9999 ---- --
-- >>> modSeconds 60 -- Seconds 0.0000 ---- --
-- >>> modSeconds 59.99999 -- Seconds 60.0000 ---- --
-- >>> modSeconds 59.999 -- Seconds 59.9990 ---- --
-- >>> modSeconds 61 -- Seconds 1.0000 ---- --
-- >>> modSeconds (-1) -- Seconds 59.0000 --modSeconds :: Double -> Seconds instance GHC.Classes.Ord Data.Geo.Coordinate.Seconds.Seconds instance GHC.Classes.Eq Data.Geo.Coordinate.Seconds.Seconds instance GHC.Show.Show Data.Geo.Coordinate.Seconds.Seconds instance Data.Geo.Coordinate.Seconds.AsSeconds p f Data.Geo.Coordinate.Seconds.Seconds instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Seconds.AsSeconds p f GHC.Types.Double module Data.Geo.Coordinate.Minutes data Minutes class AsMinutes p f s _Minutes :: AsMinutes p f s => Optic' p f s Minutes -- | Setting a value within the range 0 and 60 using -- modulo arithmetic. -- --
-- >>> modMinutes 7 -- Minutes 7 ---- --
-- >>> modMinutes 0 -- Minutes 0 ---- --
-- >>> modMinutes 60 -- Minutes 0 ---- --
-- >>> modMinutes 1 -- Minutes 1 ---- --
-- >>> modMinutes 59 -- Minutes 59 ---- --
-- >>> modMinutes 61 -- Minutes 1 ---- --
-- >>> modMinutes (-1) -- Minutes 59 --modMinutes :: Int -> Minutes instance GHC.Show.Show Data.Geo.Coordinate.Minutes.Minutes instance GHC.Classes.Ord Data.Geo.Coordinate.Minutes.Minutes instance GHC.Classes.Eq Data.Geo.Coordinate.Minutes.Minutes instance Data.Geo.Coordinate.Minutes.AsMinutes p f Data.Geo.Coordinate.Minutes.Minutes instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Minutes.AsMinutes p f GHC.Types.Int module Data.Geo.Coordinate.DegreesLongitude data DegreesLongitude class AsDegreesLongitude p f s _DegreesLongitude :: AsDegreesLongitude p f s => Optic' p f s DegreesLongitude -- | Setting a value within the range -180 and 180 using -- modulo arithmetic. -- --
-- >>> modDegreesLongitude 7 -- DegreesLongitude 7 ---- --
-- >>> modDegreesLongitude 0 -- DegreesLongitude 0 ---- --
-- >>> modDegreesLongitude 180 -- DegreesLongitude 180 ---- --
-- >>> modDegreesLongitude (-180) -- DegreesLongitude (-180) ---- --
-- >>> modDegreesLongitude 1 -- DegreesLongitude 1 ---- --
-- >>> modDegreesLongitude 179 -- DegreesLongitude 179 ---- --
-- >>> modDegreesLongitude 181 -- DegreesLongitude (-179) ---- --
-- >>> modDegreesLongitude (-181) -- DegreesLongitude 179 ---- --
-- >>> modDegreesLongitude 600 -- DegreesLongitude (-120) ---- --
-- >>> modDegreesLongitude (-600) -- DegreesLongitude 120 --modDegreesLongitude :: Int -> DegreesLongitude -- | The degrees longitude that is symmetrical around the prime meridian. -- --
-- >>> antipodeDegreesLongitude # modDegreesLongitude 30 -- DegreesLongitude (-30) ---- --
-- >>> antipodeDegreesLongitude # modDegreesLongitude 100 -- DegreesLongitude (-100) ---- --
-- >>> antipodeDegreesLongitude # modDegreesLongitude 190 -- DegreesLongitude 170 ---- --
-- >>> antipodeDegreesLongitude # modDegreesLongitude 0 -- DegreesLongitude 0 --antipodeDegreesLongitude :: Iso' DegreesLongitude DegreesLongitude instance GHC.Show.Show Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude instance GHC.Classes.Ord Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude instance GHC.Classes.Eq Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude instance Data.Geo.Coordinate.DegreesLongitude.AsDegreesLongitude p f Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.DegreesLongitude.AsDegreesLongitude p f GHC.Types.Int module Data.Geo.Coordinate.Longitude data Longitude class AsLongitude p f s _Longitude :: AsLongitude p f s => Optic' p f s Longitude -- | Setting a longitude using modulo arithmetic. -- --
-- >>> modLongitude 20 20 20 -- Longitude (DegreesLongitude 20) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLongitude 20 20 (-20) -- Longitude (DegreesLongitude 20) (Minutes 19) (Seconds 40.0000) ---- --
-- >>> modLongitude 20 20 80 -- Longitude (DegreesLongitude 20) (Minutes 21) (Seconds 20.0000) ---- --
-- >>> modLongitude 20 80 20 -- Longitude (DegreesLongitude 21) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLongitude 20 80 80 -- Longitude (DegreesLongitude 21) (Minutes 21) (Seconds 20.0000) ---- --
-- >>> modLongitude 20 80 (-20) -- Longitude (DegreesLongitude 21) (Minutes 19) (Seconds 40.0000) ---- --
-- >>> modLongitude 200 20 20 -- Longitude (DegreesLongitude (-160)) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLongitude 200 20 80 -- Longitude (DegreesLongitude (-160)) (Minutes 21) (Seconds 20.0000) ---- --
-- >>> modLongitude 200 80 20 -- Longitude (DegreesLongitude (-159)) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLongitude 200 20 (-20) -- Longitude (DegreesLongitude (-160)) (Minutes 19) (Seconds 40.0000) ---- --
-- >>> modLongitude 200 (-20) (-20) -- Longitude (DegreesLongitude (-161)) (Minutes 39) (Seconds 40.0000) ---- --
-- >>> modLongitude 200 (-80) (-20) -- Longitude (DegreesLongitude (-162)) (Minutes 39) (Seconds 40.0000) ---- --
-- >>> modLongitude 20 20 3620 -- Longitude (DegreesLongitude 21) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLongitude 20 20 (-3580) -- Longitude (DegreesLongitude 19) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLongitude 200 20 3620 -- Longitude (DegreesLongitude (-159)) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLongitude 200 20 (-3580) -- Longitude (DegreesLongitude (-161)) (Minutes 20) (Seconds 20.0000) --modLongitude :: Int -> Int -> Double -> Longitude -- | The longitude that is symmetrical around the prime meridian. -- --
-- >>> fmap (\x -> antipodeLongitude # x) (do d <- (7 :: Int) ^? _DegreesLongitude; m <- (7 :: Int) ^? _Minutes; s <- (7 :: Double) ^? _Seconds; (d, m, s) ^? _Longitude :: Maybe Longitude) -- Just (Longitude (DegreesLongitude (-7)) (Minutes 7) (Seconds 7.0000)) --antipodeLongitude :: Iso' Longitude Longitude instance GHC.Show.Show Data.Geo.Coordinate.Longitude.Longitude instance GHC.Classes.Ord Data.Geo.Coordinate.Longitude.Longitude instance GHC.Classes.Eq Data.Geo.Coordinate.Longitude.Longitude instance Data.Geo.Coordinate.Longitude.AsLongitude p f Data.Geo.Coordinate.Longitude.Longitude instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Longitude.AsLongitude p f (Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Longitude.AsLongitude p f GHC.Types.Double instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.DegreesLongitude.AsDegreesLongitude p f Data.Geo.Coordinate.Longitude.Longitude instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Minutes.AsMinutes p f Data.Geo.Coordinate.Longitude.Longitude instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Seconds.AsSeconds p f Data.Geo.Coordinate.Longitude.Longitude module Data.Geo.Coordinate.DegreesLatitude data DegreesLatitude class AsDegreesLatitude p f s _DegreesLatitude :: AsDegreesLatitude p f s => Optic' p f s DegreesLatitude -- | Setting a value within the range -90 and 90 using -- modulo arithmetic. -- --
-- >>> modDegreesLatitude 7 -- DegreesLatitude 7 ---- --
-- >>> modDegreesLatitude 0 -- DegreesLatitude 0 ---- --
-- >>> modDegreesLatitude 90 -- DegreesLatitude 90 ---- --
-- >>> modDegreesLatitude (-90) -- DegreesLatitude (-90) ---- --
-- >>> modDegreesLatitude 1 -- DegreesLatitude 1 ---- --
-- >>> modDegreesLatitude 89 -- DegreesLatitude 89 ---- --
-- >>> modDegreesLatitude 91 -- DegreesLatitude (-89) ---- --
-- >>> modDegreesLatitude (-91) -- DegreesLatitude 89 ---- --
-- >>> modDegreesLatitude 300 -- DegreesLatitude (-60) ---- --
-- >>> modDegreesLatitude (-300) -- DegreesLatitude 60 --modDegreesLatitude :: Int -> DegreesLatitude -- | The degrees latitude that is symmetrical around the equator. -- --
-- >>> antipodeDegreesLatitude # modDegreesLatitude 30 -- DegreesLatitude (-30) ---- --
-- >>> antipodeDegreesLatitude # modDegreesLatitude 80 -- DegreesLatitude (-80) ---- --
-- >>> antipodeDegreesLatitude # modDegreesLatitude 110 -- DegreesLatitude 70 ---- --
-- >>> antipodeDegreesLatitude # modDegreesLatitude 0 -- DegreesLatitude 0 --antipodeDegreesLatitude :: Iso' DegreesLatitude DegreesLatitude instance GHC.Show.Show Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude instance GHC.Classes.Ord Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude instance GHC.Classes.Eq Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude instance Data.Geo.Coordinate.DegreesLatitude.AsDegreesLatitude p f Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.DegreesLatitude.AsDegreesLatitude p f GHC.Types.Int module Data.Geo.Coordinate.Latitude data Latitude class AsLatitude p f s _Latitude :: AsLatitude p f s => Optic' p f s Latitude -- | Setting a latitude using modulo arithmetic. -- --
-- >>> modLatitude 20 20 20 -- Latitude (DegreesLatitude 20) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLatitude 20 20 (-20) -- Latitude (DegreesLatitude 20) (Minutes 19) (Seconds 40.0000) ---- --
-- >>> modLatitude 20 20 80 -- Latitude (DegreesLatitude 20) (Minutes 21) (Seconds 20.0000) ---- --
-- >>> modLatitude 20 80 20 -- Latitude (DegreesLatitude 21) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLatitude 20 80 80 -- Latitude (DegreesLatitude 21) (Minutes 21) (Seconds 20.0000) ---- --
-- >>> modLatitude 20 80 (-20) -- Latitude (DegreesLatitude 21) (Minutes 19) (Seconds 40.0000) ---- --
-- >>> modLatitude 110 20 20 -- Latitude (DegreesLatitude (-70)) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLatitude 110 20 80 -- Latitude (DegreesLatitude (-70)) (Minutes 21) (Seconds 20.0000) ---- --
-- >>> modLatitude 110 80 20 -- Latitude (DegreesLatitude (-69)) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLatitude 110 20 (-20) -- Latitude (DegreesLatitude (-70)) (Minutes 19) (Seconds 40.0000) ---- --
-- >>> modLatitude 110 (-20) (-20) -- Latitude (DegreesLatitude (-71)) (Minutes 39) (Seconds 40.0000) ---- --
-- >>> modLatitude 110 (-80) (-20) -- Latitude (DegreesLatitude (-72)) (Minutes 39) (Seconds 40.0000) ---- --
-- >>> modLatitude 20 20 3620 -- Latitude (DegreesLatitude 21) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLatitude 20 20 (-3580) -- Latitude (DegreesLatitude 19) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLatitude 110 20 3620 -- Latitude (DegreesLatitude (-69)) (Minutes 20) (Seconds 20.0000) ---- --
-- >>> modLatitude 110 20 (-3580) -- Latitude (DegreesLatitude (-71)) (Minutes 20) (Seconds 20.0000) --modLatitude :: Int -> Int -> Double -> Latitude -- | The latitude that is symmetrical around the equator. -- --
-- >>> fmap (\x -> antipodeLatitude # x) (do d <- (7 :: Int) ^? _DegreesLatitude; m <- (7 :: Int) ^? _Minutes; s <- (7 :: Double) ^? _Seconds; (d, m, s) ^? _Latitude :: Maybe Latitude) -- Just (Latitude (DegreesLatitude (-7)) (Minutes 7) (Seconds 7.0000)) --antipodeLatitude :: Iso' Latitude Latitude instance GHC.Show.Show Data.Geo.Coordinate.Latitude.Latitude instance GHC.Classes.Ord Data.Geo.Coordinate.Latitude.Latitude instance GHC.Classes.Eq Data.Geo.Coordinate.Latitude.Latitude instance Data.Geo.Coordinate.Latitude.AsLatitude p f Data.Geo.Coordinate.Latitude.Latitude instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Latitude.AsLatitude p f (Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Latitude.AsLatitude p f GHC.Types.Double instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.DegreesLatitude.AsDegreesLatitude p f Data.Geo.Coordinate.Latitude.Latitude instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Minutes.AsMinutes p f Data.Geo.Coordinate.Latitude.Latitude instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Seconds.AsSeconds p f Data.Geo.Coordinate.Latitude.Latitude module Data.Geo.Coordinate.Coordinate data Coordinate class AsCoordinate p f s _Coordinate :: AsCoordinate p f s => Optic' p f s Coordinate latitudeMinutes :: (AsCoordinate (->) f coord, Functor f) => Optic' (->) f coord Minutes latitudeSeconds :: (AsCoordinate (->) f coord, Functor f) => Optic' (->) f coord Seconds longitudeMinutes :: (AsCoordinate (->) f coord, Functor f) => Optic' (->) f coord Minutes longitudeSeconds :: (AsCoordinate (->) f coord, Functor f) => Optic' (->) f coord Seconds -- | Build a coordinate from a latitude and longitude. (.#.) :: (AsLatitude (->) (Const Latitude) lat, AsLongitude (->) (Const Longitude) lon) => lat -> lon -> Coordinate -- | Build a coordinate from a fractional latitude and fractional -- longitude. Fails if either are out of range. (<°>) :: Double -> Double -> Maybe Coordinate antipode :: Iso' Coordinate Coordinate instance GHC.Show.Show Data.Geo.Coordinate.Coordinate.Coordinate instance GHC.Classes.Ord Data.Geo.Coordinate.Coordinate.Coordinate instance GHC.Classes.Eq Data.Geo.Coordinate.Coordinate.Coordinate instance Data.Geo.Coordinate.Coordinate.AsCoordinate p f Data.Geo.Coordinate.Coordinate.Coordinate instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Latitude.Latitude, Data.Geo.Coordinate.Longitude.Longitude) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Longitude.Longitude, Data.Geo.Coordinate.Latitude.Latitude) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), Data.Geo.Coordinate.Longitude.Longitude) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Longitude.Longitude, (Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Latitude.Latitude, (Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), Data.Geo.Coordinate.Latitude.Latitude) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), (Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (Data.Profunctor.Unsafe.Profunctor p, GHC.Base.Functor f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), (Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (GHC.Types.Double, GHC.Types.Double) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (Data.Geo.Coordinate.Latitude.Latitude, GHC.Types.Double) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (GHC.Types.Double, Data.Geo.Coordinate.Longitude.Longitude) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f ((Data.Geo.Coordinate.DegreesLatitude.DegreesLatitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds), GHC.Types.Double) instance (Data.Profunctor.Choice.Choice p, GHC.Base.Applicative f) => Data.Geo.Coordinate.Coordinate.AsCoordinate p f (GHC.Types.Double, (Data.Geo.Coordinate.DegreesLongitude.DegreesLongitude, Data.Geo.Coordinate.Minutes.Minutes, Data.Geo.Coordinate.Seconds.Seconds)) instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Latitude.AsLatitude p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.DegreesLatitude.AsDegreesLatitude p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.Longitude.AsLongitude p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Functor f) => Data.Geo.Coordinate.DegreesLongitude.AsDegreesLongitude p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Applicative f) => Data.Geo.Coordinate.Minutes.AsMinutes p f Data.Geo.Coordinate.Coordinate.Coordinate instance (p ~ (->), GHC.Base.Applicative f) => Data.Geo.Coordinate.Seconds.AsSeconds p f Data.Geo.Coordinate.Coordinate.Coordinate module Data.Geo.Coordinate