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