-- 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.1.2 module Data.Geodetic.HasDoubles class HasDoubles a doubles :: HasDoubles a => Traversal' a Double instance Data.Geodetic.HasDoubles.HasDoubles GHC.Types.Double module Data.Geodetic.LL data LL LL :: Double -> Double -> LL [_lat] :: LL -> Double [_lon] :: LL -> Double class HasLL c_ab2z where lat = (.) lL lat lon = (.) lL lon lL :: HasLL c_ab2z => Lens' c_ab2z LL lat :: HasLL c_ab2z => Lens' c_ab2z Double lon :: HasLL c_ab2z => Lens' c_ab2z Double -- |
-- >>> ((27.34, 152.15) ^. degrees)
-- LL {_lat = 0.47717301749524965, _lon = 2.6555184569093724}
--
--
-- -- >>> (degrees # LL 0.47717 2.65552) -- (27.33982711025749,152.15008841258037) --degrees :: Iso' (Double, Double) LL -- |
-- >>> 27.34 <◦> 152.15
-- LL {_lat = 0.47717301749524965, _lon = 2.6555184569093724}
--
--
--
-- >>> 61.94 <◦> (-152.15)
-- LL {_lat = 1.0810569386852877, _lon = -2.6555184569093724}
--
(<◦>) :: Double -> Double -> LL
instance Data.Geodetic.LL.HasLL Data.Geodetic.LL.LL
instance Data.Geodetic.HasDoubles.HasDoubles Data.Geodetic.LL.LL
instance GHC.Show.Show Data.Geodetic.LL.LL
instance GHC.Classes.Ord Data.Geodetic.LL.LL
instance GHC.Classes.Eq Data.Geodetic.LL.LL
module Data.Geodetic.LLH
data LLH
LLH :: LL -> Double -> LLH
[ll] :: LLH -> LL
[_height] :: LLH -> Double
class HasLLH c_acTq where height = (.) lLH height
lLH :: HasLLH c_acTq => Lens' c_acTq LLH
height :: HasLLH c_acTq => Lens' c_acTq Double
instance Data.Geodetic.LLH.HasLLH Data.Geodetic.LLH.LLH
instance Data.Geodetic.LL.HasLL Data.Geodetic.LLH.LLH
instance Data.Geodetic.HasDoubles.HasDoubles Data.Geodetic.LLH.LLH
instance GHC.Show.Show Data.Geodetic.LLH.LLH
instance GHC.Classes.Ord Data.Geodetic.LLH.LLH
instance GHC.Classes.Eq Data.Geodetic.LLH.LLH
module Data.Geodetic.XY
data XY
XY :: Double -> Double -> XY
[_x] :: XY -> Double
[_y] :: XY -> Double
class HasXY c_adHD where x = (.) xY x y = (.) xY y
xY :: HasXY c_adHD => Lens' c_adHD XY
x :: HasXY c_adHD => Lens' c_adHD Double
y :: HasXY c_adHD => Lens' c_adHD Double
instance Data.Geodetic.XY.HasXY Data.Geodetic.XY.XY
instance Data.Geodetic.HasDoubles.HasDoubles Data.Geodetic.XY.XY
instance GHC.Show.Show Data.Geodetic.XY.XY
instance GHC.Classes.Ord Data.Geodetic.XY.XY
instance GHC.Classes.Eq Data.Geodetic.XY.XY
module Data.Geodetic.Ellipsoid
data Ellipsoid
Ellipsoid :: Double -> Double -> Ellipsoid
[_semiMajor] :: Ellipsoid -> Double
[_flattening] :: Ellipsoid -> Double
class HasEllipsoid c_aevt where flattening = (.) ellipsoid flattening semiMajor = (.) ellipsoid semiMajor
ellipsoid :: HasEllipsoid c_aevt => Lens' c_aevt Ellipsoid
flattening :: HasEllipsoid c_aevt => Lens' c_aevt Double
semiMajor :: HasEllipsoid c_aevt => Lens' c_aevt Double
flatteningReciprocal :: HasEllipsoid e => Lens' e Double
wgs84 :: Ellipsoid
grs80 :: Ellipsoid
grs67 :: Ellipsoid
ans :: Ellipsoid
wgs72 :: Ellipsoid
au1965 :: Ellipsoid
krasovsky1940 :: Ellipsoid
international1924 :: Ellipsoid
hayford1909 :: Ellipsoid
airy1830 :: Ellipsoid
everest1830 :: Ellipsoid
bessel1841 :: Ellipsoid
clarke1858 :: Ellipsoid
clarke1866 :: Ellipsoid
clarke1880 :: Ellipsoid
instance Data.Geodetic.Ellipsoid.HasEllipsoid Data.Geodetic.Ellipsoid.Ellipsoid
instance Data.Geodetic.HasDoubles.HasDoubles Data.Geodetic.Ellipsoid.Ellipsoid
instance GHC.Show.Show Data.Geodetic.Ellipsoid.Ellipsoid
instance GHC.Classes.Ord Data.Geodetic.Ellipsoid.Ellipsoid
instance GHC.Classes.Eq Data.Geodetic.Ellipsoid.Ellipsoid
module Data.Geodetic.Sphere
newtype Sphere
Sphere :: Double -> Sphere
-- | -- >>> earthMean -- Sphere 6367450.0 --earthMean :: Sphere -- |
-- >>> ellipsoidSphere # Sphere 77
-- Ellipsoid {_semiMajor = 77.0, _flattening = 1.0}
--
--
-- -- >>> Ellipsoid 77 1 ^? ellipsoidSphere -- Just (Sphere 77.0) ---- --
-- >>> Ellipsoid 77 2 ^? ellipsoidSphere -- Nothing --ellipsoidSphere :: Prism' Ellipsoid Sphere instance Data.Geodetic.Sphere.Sphere ~ t0 => Control.Lens.Wrapped.Rewrapped Data.Geodetic.Sphere.Sphere t0 instance Control.Lens.Wrapped.Wrapped Data.Geodetic.Sphere.Sphere instance GHC.Show.Show Data.Geodetic.Sphere.Sphere instance GHC.Classes.Ord Data.Geodetic.Sphere.Sphere instance GHC.Classes.Eq Data.Geodetic.Sphere.Sphere module Data.Geodetic.ECEF data ECEF ECEF :: XY -> Double -> ECEF [_xy] :: ECEF -> XY [_z] :: ECEF -> Double class HasECEF c_ajBp where xy = (.) eCEF xy z = (.) eCEF z eCEF :: HasECEF c_ajBp => Lens' c_ajBp ECEF xy :: HasECEF c_ajBp => Lens' c_ajBp XY z :: HasECEF c_ajBp => Lens' c_ajBp Double instance Data.Geodetic.ECEF.HasECEF Data.Geodetic.ECEF.ECEF instance Data.Geodetic.XY.HasXY Data.Geodetic.ECEF.ECEF instance Data.Geodetic.HasDoubles.HasDoubles Data.Geodetic.ECEF.ECEF instance GHC.Show.Show Data.Geodetic.ECEF.ECEF instance GHC.Classes.Ord Data.Geodetic.ECEF.ECEF instance GHC.Classes.Eq Data.Geodetic.ECEF.ECEF module Data.Geodetic.EllipsoidReaderT newtype EllipsoidReaderT f a EllipsoidReaderT :: (Ellipsoid -> f a) -> EllipsoidReaderT f a type EllipsoidReader a = EllipsoidReaderT Identity a runEllipsoidReader :: Iso' (EllipsoidReader a) (Ellipsoid -> a) toEllipsoidReaderT :: Iso' (EllipsoidReaderT f a) (ReaderT Ellipsoid f a) hoistEllipsoidReader :: Applicative f => EllipsoidReader a -> EllipsoidReaderT f a arrEllipsoidReader :: Applicative f => (Ellipsoid -> a) -> EllipsoidReaderT f a readEllipsoid :: Applicative f => EllipsoidReaderT f Ellipsoid readSemiMajor :: Applicative f => EllipsoidReaderT f Double readFlattening :: Applicative f => EllipsoidReaderT f Double readFlatteningReciprocal :: Applicative f => EllipsoidReaderT f Double semiMinor :: Applicative f => EllipsoidReaderT f Double -- |
-- >>> wgs84' eccentricitySquared -- 6.6943799901413165e-3 --eccentricitySquared :: Applicative f => EllipsoidReaderT f Double -- |
-- >>> wgs84' eccentricitySquared' -- 6.694455244784511e-3 --eccentricitySquared' :: Applicative f => EllipsoidReaderT f Double distributeNormal :: Applicative f => Double -> EllipsoidReaderT f Double -- |
-- >>> wgs84' normal 7 -- 6387371.845852088 ---- --
-- >>> wgs84' normal 71 -- 6397535.266650572 ---- --
-- >>> wgs84' normal 711 -- 6393308.675975408 ---- --
-- >>> wgs84' normal (-7) -- 6387371.845852088 --normal :: Applicative f => EllipsoidReaderT f (Double -> Double) wgs84' :: EllipsoidReader a -> a wgs84'' :: EllipsoidReaderT f a -> f a -- |
-- >>> ECEF (XY (-5019624) 2618621) (-2927516) ^. runIso (wgs84' earthGeo)
-- LLH {ll = LL {_lat = -0.4799654447089294, _lon = 2.66075442877903}, _height = 100.20987554546446}
--
--
--
-- >>> ECEF (XY 9919623 (-3116612)) (-2396517) ^. runIso (wgs84' earthGeo)
-- LLH {ll = LL {_lat = -0.22740831363634992, _lon = -0.30442061911398305}, _height = 4293252.6636643605}
--
--
--
-- >>> LLH (LL 0.48 2.661) 100 ^. from (runIso (wgs84' earthGeo))
-- ECEF {_xy = XY {_x = -5020176.908575072, _y = 2617341.3240995244}, _z = 2927710.5079646683}
--
--
--
-- >>> LLH (LL (-0.22741) (-0.30442)) 4293252.66 ^. from (runIso (wgs84' earthGeo))
-- ECEF {_xy = XY {_x = 9919621.069754401, _y = -3116604.645933256}, _z = -2396534.4668575544}
--
earthGeo :: Applicative f => EllipsoidReaderT f (ReifiedIso' ECEF LLH)
instance Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f0 a0 ~ t0 => Control.Lens.Wrapped.Rewrapped (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f1 a1) t0
instance Control.Lens.Wrapped.Wrapped (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f0 a0)
instance GHC.Base.Functor f => GHC.Base.Functor (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f)
instance GHC.Base.Applicative f => GHC.Base.Applicative (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f)
instance GHC.Base.Monad f => GHC.Base.Monad (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f)
instance GHC.Base.Alternative f => GHC.Base.Alternative (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f)
instance GHC.Base.MonadPlus f => GHC.Base.MonadPlus (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f)
instance Control.Monad.Trans.Class.MonadTrans Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT
instance Control.Monad.IO.Class.MonadIO f => Control.Monad.IO.Class.MonadIO (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f)
instance Control.Monad.Fix.MonadFix f => Control.Monad.Fix.MonadFix (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f)
instance Control.Monad.Zip.MonadZip f => Control.Monad.Zip.MonadZip (Data.Geodetic.EllipsoidReaderT.EllipsoidReaderT f)
module Data.Geodetic