-- | Module containing several useful projections for generating maps.
module GIS.Math.Projections ( projectMap
                            ) where

import           Control.Arrow
import           Control.Lens
import           GIS.Graphics.Types
import           GIS.Types
import           Math.Geometry.Spherical

-- | Apply a given projection a `Map`.
projectMap :: Projection -> Map -> Map
projectMap p = over labelledDistricts (fmap (first (fmap (project p))))