Safe Haskell | None |
---|
- data Latitude
- class HasLatitude t where
- dmsLatitude :: Iso' (DegreesLatitude, Minutes, Seconds) Latitude
- fracLatitude :: Prism' Double Latitude
Documentation
class HasLatitude t whereSource
dmsLatitude :: Iso' (DegreesLatitude, Minutes, Seconds) LatitudeSource
An isomorphism on the triple of degrees latitude, minutes, seconds to a latitude.
>>>
do deg <- 7 ^? nDegreesLatitude; min <- 7 ^? nMinutes; sec <- 7 ^? nSeconds; (deg, min, sec) ^? dmsLatitude
Just (Latitude (DegreesLatitude 7) (Minutes 7) (Seconds 7.0000))
>>>
do deg <- 89 ^? nDegreesLatitude; min <- 59 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLatitude
Just (Latitude (DegreesLatitude 89) (Minutes 59) (Seconds 59.0000))
>>>
do deg <- (-7) ^? nDegreesLatitude; min <- 7 ^? nMinutes; sec <- 7 ^? nSeconds; (deg, min, sec) ^? dmsLatitude
Just (Latitude (DegreesLatitude (-7)) (Minutes 7) (Seconds 7.0000))
>>>
do deg <- (-89) ^? nDegreesLatitude; min <- 59 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLatitude
Just (Latitude (DegreesLatitude (-89)) (Minutes 59) (Seconds 59.0000))
>>>
do deg <- 90 ^? nDegreesLatitude; min <- 59 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLatitude
Nothing
>>>
do deg <- 89 ^? nDegreesLatitude; min <- 60 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLatitude
Nothing
>>>
do deg <- 89 ^? nDegreesLatitude; min <- 59 ^? nMinutes; sec <- 60 ^? nSeconds; (deg, min, sec) ^? dmsLatitude
Nothing
fracLatitude :: Prism' Double LatitudeSource
A prism on latitude to a double between -90 and 90 inclusive.
>>>
7 ^? fracLatitude
Just (Latitude (DegreesLatitude 7) (Minutes 0) (Seconds 0.0000))
>>>
(-7) ^? fracLatitude
Just (Latitude (DegreesLatitude (-7)) (Minutes 0) (Seconds 0.0000))
>>>
7.12 ^? fracLatitude
Just (Latitude (DegreesLatitude 7) (Minutes 7) (Seconds 12.0000))
>>>
(-7.12) ^? fracLatitude
Just (Latitude (DegreesLatitude (-7)) (Minutes 7) (Seconds 12.0000))
>>>
90 ^? fracLatitude
Nothing
>>>
(-90) ^? fracLatitude
Nothing
>>>
15.63791 ^? fracLatitude
Just (Latitude (DegreesLatitude 15) (Minutes 38) (Seconds 16.4760))
>>>
89.1 ^? fracLatitude
Just (Latitude (DegreesLatitude 89) (Minutes 5) (Seconds 60.0000))
>>>
89.2 ^? fracLatitude
Just (Latitude (DegreesLatitude 89) (Minutes 12) (Seconds 0.0000))