| Safe Haskell | None |
|---|
Data.Geo.Coordinate.Latitude
- data Latitude = Latitude DegreesLatitude Minutes Seconds
- dmsLatitude :: Iso' (DegreesLatitude, Minutes, Seconds) Latitude
- fracLatitude :: Prism' Double Latitude
- radianLatitude :: Prism' Double Latitude
- class HasLatitude t where
Documentation
>>>import Prelude(Functor(..))
Constructors
| Latitude DegreesLatitude Minutes Seconds |
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) ^? dmsLatitudeJust (Latitude (DegreesLatitude 7) (Minutes 7) (Seconds 7.0000))
>>>do deg <- 89 ^? nDegreesLatitude; min <- 59 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLatitudeJust (Latitude (DegreesLatitude 89) (Minutes 59) (Seconds 59.0000))
>>>do deg <- (-7) ^? nDegreesLatitude; min <- 7 ^? nMinutes; sec <- 7 ^? nSeconds; (deg, min, sec) ^? dmsLatitudeJust (Latitude (DegreesLatitude (-7)) (Minutes 7) (Seconds 7.0000))
>>>do deg <- (-89) ^? nDegreesLatitude; min <- 59 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLatitudeJust (Latitude (DegreesLatitude (-89)) (Minutes 59) (Seconds 59.0000))
>>>do deg <- 90 ^? nDegreesLatitude; min <- 59 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLatitudeNothing
>>>do deg <- 89 ^? nDegreesLatitude; min <- 60 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLatitudeNothing
>>>do deg <- 89 ^? nDegreesLatitude; min <- 59 ^? nMinutes; sec <- 60 ^? nSeconds; (deg, min, sec) ^? dmsLatitudeNothing
>>>fmap (dmsLatitude #) (7 ^? fracLatitude)Just (DegreesLatitude 7,Minutes 0,Seconds 0.0000)
>>>fmap (dmsLatitude #) (7.12 ^? fracLatitude)Just (DegreesLatitude 7,Minutes 7,Seconds 12.0000)
fracLatitude :: Prism' Double LatitudeSource
A prism on latitude to a double between -90 and 90 exclusive.
>>>7 ^? fracLatitudeJust (Latitude (DegreesLatitude 7) (Minutes 0) (Seconds 0.0000))
>>>(-7) ^? fracLatitudeJust (Latitude (DegreesLatitude (-7)) (Minutes 0) (Seconds 0.0000))
>>>7.12 ^? fracLatitudeJust (Latitude (DegreesLatitude 7) (Minutes 7) (Seconds 12.0000))
>>>(-7.12) ^? fracLatitudeJust (Latitude (DegreesLatitude (-7)) (Minutes 7) (Seconds 12.0000))
>>>fmap (fracLatitude #) (7.12 ^? fracLatitude)Just 7.12
>>>fmap (fracLatitude #) ((-7.12) ^? fracLatitude)Just (-7.12)
>>>90 ^? fracLatitudeNothing
>>>(-90) ^? fracLatitudeNothing
>>>15.63791 ^? fracLatitudeJust (Latitude (DegreesLatitude 15) (Minutes 38) (Seconds 16.4760))
>>>89.1 ^? fracLatitudeJust (Latitude (DegreesLatitude 89) (Minutes 5) (Seconds 60.0000))
>>>89.2 ^? fracLatitudeJust (Latitude (DegreesLatitude 89) (Minutes 12) (Seconds 0.0000))
>>>fmap (fracLatitude #) (do deg <- 7 ^? nDegreesLatitude; min <- 7 ^? nMinutes; sec <- 7 ^? nSeconds; (deg, min, sec) ^? dmsLatitude)Just 7.118611111111111
>>>fmap (fracLatitude #) (do deg <- 89 ^? nDegreesLatitude; min <- 15 ^? nMinutes; sec <- 6 ^? nSeconds; (deg, min, sec) ^? dmsLatitude)Just 89.25166666666667
radianLatitude :: Prism' Double LatitudeSource
A prism on latitude to a double between -π2 and π2 exclusive.
>>>0.2 ^? radianLatitudeJust (Latitude (DegreesLatitude 11) (Minutes 27) (Seconds 32.9612))
>>>1.3 ^? radianLatitudeJust (Latitude (DegreesLatitude 74) (Minutes 29) (Seconds 4.2481))
>>>(-1.3) ^? radianLatitudeJust (Latitude (DegreesLatitude (-74)) (Minutes 29) (Seconds 4.2481))
>>>1.5707963 ^? radianLatitudeJust (Latitude (DegreesLatitude 89) (Minutes 59) (Seconds 59.9945))
>>>1.58 ^? radianLatitudeNothing
>>>(-1.58) ^? radianLatitudeNothing
>>>fmap (radianLatitude #) (do deg <- 7 ^? nDegreesLatitude; min <- 7 ^? nMinutes; sec <- 7 ^? nSeconds; (deg, min, sec) ^? dmsLatitude)Just 0.12424320205794079
>>>fmap (radianLatitude #) (do deg <- 89 ^? nDegreesLatitude; min <- 15 ^? nMinutes; sec <- 6 ^? nSeconds; (deg, min, sec) ^? dmsLatitude)Just 1.5577354462258057
class HasLatitude t whereSource
Instances