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