packages feed

hgis-1.0.0.1: src/GIS/Graphics/Types.hs

{-# LANGUAGE TemplateHaskell #-}

-- | Module for types associated with generating maps. Includes lenses.
module GIS.Graphics.Types ( Map (..)
                          , projection
                          , title
                          , labelEntities
                          , labelledDistricts
                          ) where

import           Control.Lens
import           Data.Default
import           GIS.Types

-- | Data type for a map
data Map = Map { _projection        :: Projection
               , _title             :: String
               , _labelEntities     :: Bool -- whether to label districts
               , _labelledDistricts :: [([Polygon], String)] -- the data we actually want to map
               }

makeLenses ''Map

instance Default Map where
    def = Map { _projection = id , _title = mempty , _labelEntities = False , _labelledDistricts = mempty }