-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Bindings to the Google Static Maps API -- -- The Google Static Maps API returns a map as an image via an -- HTTP request. This library provides bindings in Haskell to that API. -- -- NB: The use of the Google Static Maps API services is subject to the -- Google Maps APIs Terms of Service, which terms restrict the use -- of content. -- -- This package has no connection with Google Inc. or its affiliates. @package google-static-maps @version 0.3.0.0 -- | This module has no connection with Google Inc. or its affiliates. module Web.Google.Maps.Common -- | The base URL for the Google Maps APIs. googleMapsApis :: BaseUrl -- | API key newtype Key Key :: Text -> Key -- | Location: precision in latitude or longitude beyond 6 decimal places -- is ignored. data Location Location :: Double -> Double -> Location -- | Takes any value between -90 and 90. [lat] :: Location -> Double -- | Takes any value between -180 and 180. [lng] :: Location -> Double instance GHC.Generics.Generic Web.Google.Maps.Common.Location instance GHC.Show.Show Web.Google.Maps.Common.Location instance GHC.Classes.Eq Web.Google.Maps.Common.Location instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Maps.Common.Key instance GHC.Show.Show Web.Google.Maps.Common.Key instance GHC.Classes.Eq Web.Google.Maps.Common.Key instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Maps.Common.Location instance Web.Internal.HttpApiData.ToHttpApiData [Web.Google.Maps.Common.Location] instance Data.Aeson.Types.FromJSON.FromJSON Web.Google.Maps.Common.Location -- | This module has no connection with Google Inc. or its affiliates. -- -- The Google Static Maps API returns a map as an image via an -- HTTP request. This library provides bindings in Haskell to that API -- (version 2). -- -- NB: The use of the Google Static Maps API services is subject to the -- Google Maps APIs Terms of Service, which terms restrict the use -- of content. -- -- The following are not yet implemented: certain optional parameters -- (language, and region); address locations; non-PNG -- image formats; and encoded polyline paths. -- -- The code below is an example console application to test the use of -- the library with the Google Static Maps API. -- --
-- {-# LANGUAGE OverloadedStrings #-}
--
-- module Main (main) where
--
-- import Data.Maybe (fromJust)
-- import Graphics.Gloss (Display (..), display, white) -- package gloss
-- import Graphics.Gloss.Juicy (fromDynamicImage) -- package gloss-juicy
-- import Network.HTTP.Client (newManager)
-- import Network.HTTP.Client.TLS (tlsManagerSettings)
-- import Web.Google.Static.Maps (Center (..), Key (..), Location (..), Size (..),
-- staticmap, StaticmapResponse (..), Zoom (..))
--
-- main :: IO ()
-- main = do
-- putStrLn "A test of the Google Static Maps API.\nNB: The use of the \
-- \API services is subject to the Google Maps APIs Terms of Serivce \
-- \at https://developers.google.com/maps/terms.\n"
-- mgr <- newManager tlsManagerSettings
-- let apiKey = Key "<REPLACE_THIS_WITH_YOUR_ACTUAL_GOOGLE_API_KEY>"
-- center = Just $ Center (Location 42.165950 (-71.362015))
-- zoom = Just $ Zoom 17
-- w = 400
-- h = 400
-- size = Size w h
-- result <- staticmap mgr apiKey Nothing center zoom size Nothing Nothing
-- [] Nothing [] [] Nothing
-- case result of
-- Right response -> do
-- let picture = fromJust $ fromDynamicImage response
-- title = "Test Google Static Maps API"
-- window = InWindow title (w, h) (10, 10)
-- display window white picture
-- Left err -> putStrLn $ "Error! Result:\n" ++ show err
--
module Web.Google.Static.Maps
-- | Retrieve a static map. NB: The use of the Google Static Maps API
-- services is subject to the Google Maps APIs Terms of Service.
staticmap :: Manager -> Key -> Maybe Signature -> Maybe Center -> Maybe Zoom -> Size -> Maybe Scale -> Maybe Format -> [MapStyle] -> Maybe MapType -> [Markers] -> [Path] -> Maybe Visible -> IO (Either ServantError StaticmapResponse)
-- | Google Static Maps API
type GoogleStaticMapsAPI = "staticmap" :> (QueryParam "key" Key :> (QueryParam "signature" Signature :> (QueryParam "center" Center :> (QueryParam "zoom" Zoom :> (QueryParam "size" Size :> (QueryParam "scale" Scale :> (QueryParam "format" Format :> (QueryParams "style" MapStyle :> (QueryParam "maptype" MapType :> (QueryParams "markers" Markers :> (QueryParams "path" Path :> (QueryParam "visible" Visible :> Get '[PNG] StaticmapResponse))))))))))))
-- | API type
api :: Proxy GoogleStaticMapsAPI
-- | API key
newtype Key
Key :: Text -> Key
-- | Signature
newtype Signature
Signature :: Text -> Signature
-- | Center of the map: not required if the map includes markers or paths.
newtype Center
Center :: Location -> Center
-- | Location: precision in latitude or longitude beyond 6 decimal places
-- is ignored.
data Location
Location :: Double -> Double -> Location
-- | Takes any value between -90 and 90.
[lat] :: Location -> Double
-- | Takes any value between -180 and 180.
[lng] :: Location -> Double
-- | Zoom level: the lowest level, in which the whole world can be seen, is
-- 0. Each succeeding level doubles the precision. Not required if the
-- map includes markers or paths.
newtype Zoom
Zoom :: Int -> Zoom
-- | Size in pixels: there are maximum allowable values.
data Size
Size :: Int -> Int -> Size
[width] :: Size -> Int
[height] :: Size -> Int
-- | Scale
data Scale
-- | The default value.
Single :: Scale
Double :: Scale
Quadruple :: Scale
-- | Image format
data Format
-- | The default value.
Png8 :: Format
Png32 :: Format
-- | Map type
data MapType
-- | The default value.
RoadMap :: MapType
Satellite :: MapType
Hybrid :: MapType
Terrain :: MapType
-- | MapStyle
data MapStyle
MapStyle :: (Maybe Feature) -> (Maybe Element) -> [MapStyleOp] -> MapStyle
-- | Map feature
data Feature
AllFeatures :: Feature
Administrative :: Feature
AdministrativeCountry :: Feature
AdministrativeLandParcel :: Feature
AdministrativeLocality :: Feature
AdministrativeNeighborhood :: Feature
AdministrativeProvince :: Feature
Landscape :: Feature
LandscapeManMade :: Feature
LandscapeNatural :: Feature
LandscapeNaturalLandcover :: Feature
LandscapeNaturalTerrain :: Feature
Poi :: Feature
PoiAttraction :: Feature
PoiBusiness :: Feature
PoiGovernment :: Feature
PoiMedical :: Feature
PoiPark :: Feature
PoiPlaceOfWorship :: Feature
PoiSchool :: Feature
PoiSportsComplex :: Feature
Road :: Feature
RoadArterial :: Feature
RoadHighway :: Feature
RoadHighwayControlledAccess :: Feature
RoadLocal :: Feature
Transit :: Feature
TransitLine :: Feature
TransitStation :: Feature
TransitStationAirport :: Feature
TransitStationBus :: Feature
TransitStationRail :: Feature
Water :: Feature
-- | Feature element
data Element
AllElements :: Element
AllGeometry :: Element
GeometryFill :: Element
GeometryStroke :: Element
AllLabels :: Element
LabelsIcon :: Element
LabelsText :: Element
LabelsTextFill :: Element
LabelsTextStroke :: Element
-- | Map style operation
data MapStyleOp
StyleHue :: Word8 -> Word8 -> Word8 -> MapStyleOp
StyleLightness :: Double -> MapStyleOp
StyleSaturation :: Double -> MapStyleOp
StyleGamma :: Double -> MapStyleOp
StyleInvertLightness :: Bool -> MapStyleOp
StyleVisibility :: Visibility -> MapStyleOp
StyleColor :: Word8 -> Word8 -> Word8 -> MapStyleOp
StyleWeight :: Int -> MapStyleOp
-- | Visibility
data Visibility
On :: Visibility
Off :: Visibility
-- | Removes some, not all, style features
Simplified :: Visibility
-- | Markers
data Markers
Markers :: (Maybe MarkerStyle) -> [Location] -> Markers
-- | Marker style
data MarkerStyle
StdMarkerStyle :: Maybe MarkerSize -> Maybe MarkerColor -> Maybe MarkerLabel -> MarkerStyle
[markerSize] :: MarkerStyle -> Maybe MarkerSize
[markerColor] :: MarkerStyle -> Maybe MarkerColor
[markerLabel] :: MarkerStyle -> Maybe MarkerLabel
CustomIcon :: URI -> Maybe Anchor -> MarkerStyle
[icon] :: MarkerStyle -> URI
[anchor] :: MarkerStyle -> Maybe Anchor
-- | Marker size
data MarkerSize
Tiny :: MarkerSize
Mid :: MarkerSize
Small :: MarkerSize
-- | Marker colour
data MarkerColor
MarkerColor :: Word8 -> Word8 -> Word8 -> MarkerColor
StdMarkerColor :: StdColor -> MarkerColor
-- | Marker label character
newtype MarkerLabel
MarkerLabel :: Char -> MarkerLabel
-- | Standard colours
data StdColor
Black :: StdColor
Brown :: StdColor
Green :: StdColor
Purple :: StdColor
Yellow :: StdColor
Blue :: StdColor
Gray :: StdColor
Orange :: StdColor
Red :: StdColor
White :: StdColor
-- | Represents a general universal resource identifier using its component
-- parts.
--
-- For example, for the URI
--
-- -- foo://anonymous@www.haskell.org:42/ghc?query#frag ---- -- the components are: data URI :: * URI :: String -> Maybe URIAuth -> String -> String -> String -> URI -- |
-- foo: --[uriScheme] :: URI -> String -- |
-- //anonymous@www.haskell.org:42 --[uriAuthority] :: URI -> Maybe URIAuth -- |
-- /ghc --[uriPath] :: URI -> String -- |
-- ?query --[uriQuery] :: URI -> String -- |
-- #frag --[uriFragment] :: URI -> String -- | Type for authority value within a URI data URIAuth :: * URIAuth :: String -> String -> String -> URIAuth -- |
-- anonymous@ --[uriUserInfo] :: URIAuth -> String -- |
-- www.haskell.org --[uriRegName] :: URIAuth -> String -- |
-- :42 --[uriPort] :: URIAuth -> String -- | Anchor data Anchor AnchorPoint :: Int -> Int -> Anchor StdAnchor :: StdAnchor -> Anchor -- | Standard anchor points data StdAnchor AnchorTop :: StdAnchor AnchorBottom :: StdAnchor AnchorLeft :: StdAnchor AnchorRight :: StdAnchor AnchorCenter :: StdAnchor AnchorTopLeft :: StdAnchor AnchorTopRight :: StdAnchor AnchorBottomLeft :: StdAnchor AnchorBottomRight :: StdAnchor -- | Path data Path Path :: (Maybe PathStyle) -> [Location] -> Path -- | Path style: a geodesic path follows the curvature of the Earth. data PathStyle PathStyle :: Maybe PathWeight -> Maybe PathColor -> Maybe PathColor -> Maybe PathGeodesic -> PathStyle -- | The default value is 5. [pathWeight] :: PathStyle -> Maybe PathWeight [pathColor] :: PathStyle -> Maybe PathColor [pathFillColor] :: PathStyle -> Maybe PathColor -- | The default value is false. [pathGeodesic] :: PathStyle -> Maybe PathGeodesic -- | Path weight: in pixels. newtype PathWeight PathWeight :: Int -> PathWeight -- | Path colour data PathColor PathColor :: Word8 -> Word8 -> Word8 -> PathColor PathColorAlpha :: Word8 -> Word8 -> Word8 -> Word8 -> PathColor StdPathColor :: StdColor -> PathColor -- | Path is geodesic newtype PathGeodesic PathGeodesic :: Bool -> PathGeodesic -- | Visible locations newtype Visible Visible :: [Location] -> Visible -- | StaticmapResponse type StaticmapResponse = DynamicImage instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Visible instance GHC.Show.Show Web.Google.Static.Maps.Visible instance GHC.Classes.Eq Web.Google.Static.Maps.Visible instance GHC.Show.Show Web.Google.Static.Maps.Path instance GHC.Classes.Eq Web.Google.Static.Maps.Path instance GHC.Show.Show Web.Google.Static.Maps.PathStyle instance GHC.Classes.Eq Web.Google.Static.Maps.PathStyle instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.PathGeodesic instance GHC.Show.Show Web.Google.Static.Maps.PathGeodesic instance GHC.Classes.Eq Web.Google.Static.Maps.PathGeodesic instance GHC.Show.Show Web.Google.Static.Maps.PathColor instance GHC.Classes.Eq Web.Google.Static.Maps.PathColor instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.PathWeight instance GHC.Show.Show Web.Google.Static.Maps.PathWeight instance GHC.Classes.Eq Web.Google.Static.Maps.PathWeight instance GHC.Show.Show Web.Google.Static.Maps.Markers instance GHC.Classes.Eq Web.Google.Static.Maps.Markers instance GHC.Show.Show Web.Google.Static.Maps.MarkerStyle instance GHC.Classes.Eq Web.Google.Static.Maps.MarkerStyle instance GHC.Show.Show Web.Google.Static.Maps.Anchor instance GHC.Classes.Eq Web.Google.Static.Maps.Anchor instance GHC.Show.Show Web.Google.Static.Maps.StdAnchor instance GHC.Classes.Eq Web.Google.Static.Maps.StdAnchor instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.MarkerLabel instance GHC.Show.Show Web.Google.Static.Maps.MarkerLabel instance GHC.Classes.Eq Web.Google.Static.Maps.MarkerLabel instance GHC.Show.Show Web.Google.Static.Maps.MarkerColor instance GHC.Classes.Eq Web.Google.Static.Maps.MarkerColor instance GHC.Show.Show Web.Google.Static.Maps.StdColor instance GHC.Classes.Eq Web.Google.Static.Maps.StdColor instance GHC.Show.Show Web.Google.Static.Maps.MarkerSize instance GHC.Classes.Eq Web.Google.Static.Maps.MarkerSize instance GHC.Show.Show Web.Google.Static.Maps.MapStyle instance GHC.Classes.Eq Web.Google.Static.Maps.MapStyle instance GHC.Show.Show Web.Google.Static.Maps.MapStyleOp instance GHC.Classes.Eq Web.Google.Static.Maps.MapStyleOp instance GHC.Show.Show Web.Google.Static.Maps.Visibility instance GHC.Classes.Eq Web.Google.Static.Maps.Visibility instance GHC.Show.Show Web.Google.Static.Maps.Element instance GHC.Classes.Eq Web.Google.Static.Maps.Element instance GHC.Show.Show Web.Google.Static.Maps.Feature instance GHC.Classes.Eq Web.Google.Static.Maps.Feature instance GHC.Show.Show Web.Google.Static.Maps.MapType instance GHC.Classes.Eq Web.Google.Static.Maps.MapType instance GHC.Show.Show Web.Google.Static.Maps.Format instance GHC.Classes.Eq Web.Google.Static.Maps.Format instance GHC.Show.Show Web.Google.Static.Maps.Scale instance GHC.Classes.Eq Web.Google.Static.Maps.Scale instance GHC.Show.Show Web.Google.Static.Maps.Size instance GHC.Classes.Eq Web.Google.Static.Maps.Size instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Zoom instance GHC.Show.Show Web.Google.Static.Maps.Zoom instance GHC.Classes.Eq Web.Google.Static.Maps.Zoom instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Center instance GHC.Show.Show Web.Google.Static.Maps.Center instance GHC.Classes.Eq Web.Google.Static.Maps.Center instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Signature instance GHC.Show.Show Web.Google.Static.Maps.Signature instance GHC.Classes.Eq Web.Google.Static.Maps.Signature instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Size instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Scale instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Format instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.MapType instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.MapStyle instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Feature instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Element instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.MapStyleOp instance Web.Internal.HttpApiData.ToHttpApiData [Web.Google.Static.Maps.MapStyleOp] instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Visibility instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Markers instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.MarkerStyle instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.MarkerSize instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.MarkerColor instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.StdColor instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Anchor instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.StdAnchor instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.Path instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.PathStyle instance Web.Internal.HttpApiData.ToHttpApiData Web.Google.Static.Maps.PathColor