module Data.Geospatial.Geometry.GeoMultiPolygon (
GeoMultiPolygon(..)
, unGeoMultiPolygon
) where
import Data.Geospatial.BasicTypes
import Data.Geospatial.Geometry.GeoPolygon
import Data.Geospatial.Geometry.Aeson
import Control.Lens ( makeLenses )
import Control.Monad ( mzero )
import Data.Aeson ( FromJSON(..), ToJSON(..), Value(..), Object )
newtype GeoMultiPolygon = GeoMultiPolygon { _unGeoMultiPolygon :: [GeoPolygon] } deriving (Show, Eq)
makeLenses ''GeoMultiPolygon
instance ToJSON GeoMultiPolygon where
toJSON = makeGeometryGeoAeson "MultiPolygon" . _unGeoMultiPolygon
instance FromJSON GeoMultiPolygon where
parseJSON (Object o) = readGeometryGeoAeson "MultiPolygon" GeoMultiPolygon o
parseJSON _ = mzero