module Data.Geospatial.Internal.GeoPosition (
GeoPosition(..)
, stripCRSFromPosition
) where
import qualified Data.Geospatial.Internal.BasicTypes as BasicTypes
data GeoPosition =
LonLat BasicTypes.Longitude BasicTypes.Latitude
| LonLatAlt BasicTypes.Longitude BasicTypes.Latitude BasicTypes.Altitude
| EastingNorthing BasicTypes.Easting BasicTypes.Northing
| EastingNorthingAlt BasicTypes.Easting BasicTypes.Northing BasicTypes.Altitude
stripCRSFromPosition :: GeoPosition -> BasicTypes.GeoPositionWithoutCRS
stripCRSFromPosition :: GeoPosition -> GeoPositionWithoutCRS
stripCRSFromPosition (LonLat Longitude
lon Longitude
lat) = PointXY -> GeoPositionWithoutCRS
BasicTypes.GeoPointXY (PointXY -> GeoPositionWithoutCRS)
-> PointXY -> GeoPositionWithoutCRS
forall a b. (a -> b) -> a -> b
$ Longitude -> Longitude -> PointXY
BasicTypes.PointXY Longitude
lon Longitude
lat
stripCRSFromPosition (LonLatAlt Longitude
lon Longitude
lat Longitude
alt) = PointXYZ -> GeoPositionWithoutCRS
BasicTypes.GeoPointXYZ (PointXYZ -> GeoPositionWithoutCRS)
-> PointXYZ -> GeoPositionWithoutCRS
forall a b. (a -> b) -> a -> b
$ Longitude -> Longitude -> Longitude -> PointXYZ
BasicTypes.PointXYZ Longitude
lon Longitude
lat Longitude
alt
stripCRSFromPosition (EastingNorthing Longitude
easting Longitude
northing) = PointXY -> GeoPositionWithoutCRS
BasicTypes.GeoPointXY (PointXY -> GeoPositionWithoutCRS)
-> PointXY -> GeoPositionWithoutCRS
forall a b. (a -> b) -> a -> b
$ Longitude -> Longitude -> PointXY
BasicTypes.PointXY Longitude
easting Longitude
northing
stripCRSFromPosition (EastingNorthingAlt Longitude
easting Longitude
northing Longitude
alt) = PointXYZ -> GeoPositionWithoutCRS
BasicTypes.GeoPointXYZ (PointXYZ -> GeoPositionWithoutCRS)
-> PointXYZ -> GeoPositionWithoutCRS
forall a b. (a -> b) -> a -> b
$ Longitude -> Longitude -> Longitude -> PointXYZ
BasicTypes.PointXYZ Longitude
easting Longitude
northing Longitude
alt