{-# LANGUAGE TemplateHaskell #-}

-- | Module for types associated with generating maps. Includes lenses. 
module GIS.Graphics.Types where

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

-- | 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 }