| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Data.Geo.Coordinate.Longitude
- data Longitude
- class AsLongitude p f s where
- _Longitude :: Optic' p f s Longitude
- modLongitude :: Int -> Int -> Double -> Longitude
- antipodeLongitude :: Iso' Longitude Longitude
Documentation
Instances
| Eq Longitude Source | |
| Ord Longitude Source | |
| Show Longitude Source | |
| ((~) (* -> * -> *) p (->), Functor f) => AsSeconds p f Longitude Source | |
| ((~) (* -> * -> *) p (->), Functor f) => AsMinutes p f Longitude Source | |
| ((~) (* -> * -> *) p (->), Functor f) => AsDegreesLongitude p f Longitude Source | |
| AsLongitude p f Longitude Source | |
| (Choice p, Applicative f) => AsCoordinate p f (Double, Longitude) Source | |
| (Profunctor p, Functor f) => AsCoordinate p f (Longitude, (DegreesLatitude, Minutes, Seconds)) Source | |
| (Profunctor p, Functor f) => AsCoordinate p f ((DegreesLatitude, Minutes, Seconds), Longitude) Source | |
| (Profunctor p, Functor f) => AsCoordinate p f (Longitude, Latitude) Source | |
| (Profunctor p, Functor f) => AsCoordinate p f (Latitude, Longitude) Source |
class AsLongitude p f s where Source
Minimal complete definition
Nothing
Methods
_Longitude :: Optic' p f s Longitude Source
Instances
| (Choice p, Applicative f) => AsLongitude p f Double Source | A prism on longitude to a double between -180 and 180 exclusive.
|
| AsLongitude p f Longitude Source | |
| ((~) (* -> * -> *) p (->), Functor f) => AsLongitude p f Coordinate Source | |
| (Profunctor p, Functor f) => AsLongitude p f (DegreesLongitude, Minutes, Seconds) Source | An isomorphism on the triple of degrees longitude, minutes, seconds to a longitude.
|
modLongitude :: Int -> Int -> Double -> Longitude Source
Setting a longitude using modulo arithmetic.
>>>modLongitude 20 20 20Longitude (DegreesLongitude 20) (Minutes 20) (Seconds 20.0000)
>>>modLongitude 20 20 (-20)Longitude (DegreesLongitude 20) (Minutes 19) (Seconds 40.0000)
>>>modLongitude 20 20 80Longitude (DegreesLongitude 20) (Minutes 21) (Seconds 20.0000)
>>>modLongitude 20 80 20Longitude (DegreesLongitude 21) (Minutes 20) (Seconds 20.0000)
>>>modLongitude 20 80 80Longitude (DegreesLongitude 21) (Minutes 21) (Seconds 20.0000)
>>>modLongitude 20 80 (-20)Longitude (DegreesLongitude 21) (Minutes 19) (Seconds 40.0000)
>>>modLongitude 200 20 20Longitude (DegreesLongitude (-160)) (Minutes 20) (Seconds 20.0000)
>>>modLongitude 200 20 80Longitude (DegreesLongitude (-160)) (Minutes 21) (Seconds 20.0000)
>>>modLongitude 200 80 20Longitude (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 3620Longitude (DegreesLongitude 21) (Minutes 20) (Seconds 20.0000)
>>>modLongitude 20 20 (-3580)Longitude (DegreesLongitude 19) (Minutes 20) (Seconds 20.0000)
>>>modLongitude 200 20 3620Longitude (DegreesLongitude (-159)) (Minutes 20) (Seconds 20.0000)
>>>modLongitude 200 20 (-3580)Longitude (DegreesLongitude (-161)) (Minutes 20) (Seconds 20.0000)
antipodeLongitude :: Iso' Longitude Longitude Source
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))