| Safe Haskell | None |
|---|
Data.Geo.Coordinate.Longitude
- data Longitude
- class HasLongitude t where
- dmsLongitude :: Iso' (DegreesLongitude, Minutes, Seconds) Longitude
- fracLongitude :: Prism' Double Longitude
- radianLongitude :: Prism' Double Longitude
Documentation
class HasLongitude t whereSource
Instances
dmsLongitude :: Iso' (DegreesLongitude, Minutes, Seconds) LongitudeSource
An isomorphism on the triple of degrees longitude, minutes, seconds to a longitude.
>>>do deg <- 7 ^? nDegreesLongitude; min <- 7 ^? nMinutes; sec <- 7 ^? nSeconds; (deg, min, sec) ^? dmsLongitudeJust (Longitude (DegreesLongitude 7) (Minutes 7) (Seconds 7.0000))
>>>do deg <- 179 ^? nDegreesLongitude; min <- 59 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLongitudeJust (Longitude (DegreesLongitude 179) (Minutes 59) (Seconds 59.0000))
>>>do deg <- (-7) ^? nDegreesLongitude; min <- 7 ^? nMinutes; sec <- 7 ^? nSeconds; (deg, min, sec) ^? dmsLongitudeJust (Longitude (DegreesLongitude (-7)) (Minutes 7) (Seconds 7.0000))
>>>do deg <- (-179) ^? nDegreesLongitude; min <- 59 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLongitudeJust (Longitude (DegreesLongitude (-179)) (Minutes 59) (Seconds 59.0000))
>>>do deg <- 180 ^? nDegreesLongitude; min <- 59 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLongitudeNothing
>>>do deg <- 179 ^? nDegreesLongitude; min <- 60 ^? nMinutes; sec <- 59 ^? nSeconds; (deg, min, sec) ^? dmsLongitudeNothing
>>>do deg <- 179 ^? nDegreesLongitude; min <- 59 ^? nMinutes; sec <- 60 ^? nSeconds; (deg, min, sec) ^? dmsLongitudeNothing
>>>fmap (dmsLongitude #) (7 ^? fracLongitude)Just (DegreesLongitude 7,Minutes 0,Seconds 0.0000)
>>>fmap (dmsLongitude #) (7.12 ^? fracLongitude)Just (DegreesLongitude 7,Minutes 7,Seconds 12.0000)
fracLongitude :: Prism' Double LongitudeSource
A prism on longitude to a double between -180 and 180 exclusive.
>>>7 ^? fracLongitudeJust (Longitude (DegreesLongitude 7) (Minutes 0) (Seconds 0.0000))
>>>(-7) ^? fracLongitudeJust (Longitude (DegreesLongitude (-7)) (Minutes 0) (Seconds 0.0000))
>>>7.12 ^? fracLongitudeJust (Longitude (DegreesLongitude 7) (Minutes 7) (Seconds 12.0000))
>>>(-7.12) ^? fracLongitudeJust (Longitude (DegreesLongitude (-7)) (Minutes 7) (Seconds 12.0000))
>>>fmap (fracLongitude #) (7.12 ^? fracLongitude)Just 7.12
>>>fmap (fracLongitude #) ((-7.12) ^? fracLongitude)Just (-7.12)
>>>180 ^? fracLongitudeNothing
>>>(-180) ^? fracLongitudeNothing
>>>15.63791 ^? fracLongitudeJust (Longitude (DegreesLongitude 15) (Minutes 38) (Seconds 16.4760))
>>>179.1 ^? fracLongitudeJust (Longitude (DegreesLongitude 179) (Minutes 5) (Seconds 60.0000))
>>>179.2 ^? fracLongitudeJust (Longitude (DegreesLongitude 179) (Minutes 11) (Seconds 60.0000))
>>>fmap (fracLongitude #) (do deg <- 7 ^? nDegreesLongitude; min <- 7 ^? nMinutes; sec <- 7 ^? nSeconds; (deg, min, sec) ^? dmsLongitude)Just 7.118611111111111
>>>fmap (fracLongitude #) (do deg <- 179 ^? nDegreesLongitude; min <- 15 ^? nMinutes; sec <- 6 ^? nSeconds; (deg, min, sec) ^? dmsLongitude)Just 179.25166666666667
radianLongitude :: Prism' Double LongitudeSource
A prism on longitude to a double between -π and π exclusive.
>>>0.2 ^? radianLongitudeJust (Longitude (DegreesLongitude 11) (Minutes 27) (Seconds 32.9612))
>>>1.3 ^? radianLongitudeJust (Longitude (DegreesLongitude 74) (Minutes 29) (Seconds 4.2481))
>>>(-1.3) ^? radianLongitudeJust (Longitude (DegreesLongitude (-74)) (Minutes 29) (Seconds 4.2481))
>>>3.14159 ^? radianLongitudeJust (Longitude (DegreesLongitude 179) (Minutes 59) (Seconds 59.4527))
>>>3.15 ^? radianLongitudeNothing
>>>(-3.15) ^? radianLongitudeNothing
>>>fmap (radianLongitude #) (do deg <- 7 ^? nDegreesLongitude; min <- 7 ^? nMinutes; sec <- 7 ^? nSeconds; (deg, min, sec) ^? dmsLongitude)Just 0.12424320205794079
>>>fmap (radianLongitude #) (do deg <- 179 ^? nDegreesLongitude; min <- 15 ^? nMinutes; sec <- 6 ^? nSeconds; (deg, min, sec) ^? dmsLongitude)Just 3.1285317730207023