-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Bindings for GEOS. -- -- This is a Haskell binding to Geos, the open-source geometry library, -- which includes geometry types, predicate functions and other -- operations, spatially indexed geometries, and parsers for WKB and WKT -- formats. @package geos @version 0.2.2 module Data.Geometry.Geos.Geometry data Geometry a [PointGeometry] :: Point -> SRID -> Geometry Point [LineStringGeometry] :: LineString -> SRID -> Geometry LineString [LinearRingGeometry] :: LinearRing -> SRID -> Geometry LinearRing [PolygonGeometry] :: Polygon -> SRID -> Geometry Polygon [MultiPointGeometry] :: MultiPoint -> SRID -> Geometry MultiPoint [MultiLineStringGeometry] :: MultiLineString -> SRID -> Geometry MultiLineString [MultiPolygonGeometry] :: MultiPolygon -> SRID -> Geometry MultiPolygon newtype Point Point :: Coordinate -> Point newtype LinearRing LinearRing :: CoordinateSequence -> LinearRing newtype LineString LineString :: CoordinateSequence -> LineString -- | In a polygon, the fist LinearRing is the shell, and any following are -- holes. newtype Polygon Polygon :: Vector LinearRing -> Polygon newtype MultiPoint MultiPoint :: Vector Point -> MultiPoint newtype MultiLineString MultiLineString :: Vector LineString -> MultiLineString newtype MultiPolygon MultiPolygon :: Vector Polygon -> MultiPolygon data Some :: (* -> *) -> * [Some] :: f a -> Some f data Coordinate Coordinate2 :: {-# UNPACK #-} !Double -> {-# UNPACK #-} !Double -> Coordinate Coordinate3 :: {-# UNPACK #-} !Double -> {-# UNPACK #-} !Double -> {-# UNPACK #-} !Double -> Coordinate -- | In all geometry types, SRID is used for compatability and is NOT used -- in calculations. For example, the distance between two -- PointGeometry with an SRID of `Just 4326` will return a distance -- between two points in Euclidean space in the units the PointGeometry -- is initialized with. It will not calculate the distance on a spheroid. type SRID = Maybe Int binaryPredicate :: (GeomConst -> GeomConst -> Geos Bool) -> Geometry a -> Geometry b -> Bool convertGeometryFromRaw :: (Geometry a, CoordSeqInput a ~ cb, CoordinateSequence cb) => a -> Geos (Some Geometry) convertGeometryToRaw :: (Geometry a, CoordSeqInput a ~ cb, CoordinateSequence cb) => Geometry b -> Geos a convertMultiPolygonFromRaw :: (Geometry a, CoordSeqInput a ~ ca, CoordinateSequence ca) => a -> Geos MultiPolygon ensurePoint :: Some Geometry -> Geometry Point ensureLineString :: Some Geometry -> Geometry LineString ensureLinearRing :: Some Geometry -> Geometry LinearRing ensurePolygon :: Some Geometry -> Geometry Polygon ensureMultiPoint :: Some Geometry -> Geometry MultiPoint ensureMultiPolygon :: Some Geometry -> Geometry MultiPolygon ensureMultiLineString :: Some Geometry -> Geometry MultiLineString -- | Given a distance, returns the point (or closest point) within the -- geometry LineString that distance. interpolate :: Geometry LineString -> Double -> Geometry Point -- | Like interpolate, but takes the distance as a double between -- 0 and 1. interpolateNormalized :: Geometry LineString -> Double -> Geometry Point -- | Returns the distance from the origin of LineString to the point -- projected on the geometry (that is to a point of the line the closest -- to the given point). project :: Geometry LineString -> Geometry Point -> Double -- | Like project, but returns the distance as a Double between 0 -- and 1. projectNormalized :: Geometry LineString -> Geometry Point -> Double -- | Returns True if the two geometries are exactly equal, up to a -- specified tolerance. The tolerance value should be a floating point -- number representing the error tolerance in the comparison, e.g., -- equalsExact g1 g2 0.001 will compare equality to within one -- thousandth of a unit. equalsExact :: Geometry a -> Geometry a -> Double -> Bool equals :: Geometry a -> Geometry a -> Bool area :: Geometry a -> Double -- | Returns the length of this geometry (e.g., 0 for a Point, the length -- of a LineString, or the circumference of a Polygon). geometryLength :: Geometry a -> Double -- | NOTE: distance calculations are linear – in other words, -- distance does not perform a spherical calculation even if the -- SRID specifies a geographic coordinate system. distance :: Geometry a -> Geometry a -> Double hausdorffDistance :: Geometry a -> Geometry a -> Double -- | Returns the closest points of the two geometries. The first point -- comes from g1 geometry and the second point comes from g2. nearestPoints :: Geometry a -> Geometry a -> (Coordinate, Coordinate) withSomeGeometry :: Some Geometry -> (forall a. Geometry a -> b) -> b instance GHC.Generics.Generic Data.Geometry.Geos.Geometry.MultiPolygon instance Data.Data.Data Data.Geometry.Geos.Geometry.MultiPolygon instance GHC.Classes.Eq Data.Geometry.Geos.Geometry.MultiPolygon instance GHC.Show.Show Data.Geometry.Geos.Geometry.MultiPolygon instance GHC.Classes.Ord Data.Geometry.Geos.Geometry.MultiPolygon instance GHC.Read.Read Data.Geometry.Geos.Geometry.MultiPolygon instance GHC.Generics.Generic Data.Geometry.Geos.Geometry.MultiLineString instance Data.Data.Data Data.Geometry.Geos.Geometry.MultiLineString instance GHC.Classes.Eq Data.Geometry.Geos.Geometry.MultiLineString instance GHC.Show.Show Data.Geometry.Geos.Geometry.MultiLineString instance GHC.Classes.Ord Data.Geometry.Geos.Geometry.MultiLineString instance GHC.Read.Read Data.Geometry.Geos.Geometry.MultiLineString instance GHC.Generics.Generic Data.Geometry.Geos.Geometry.MultiPoint instance Data.Data.Data Data.Geometry.Geos.Geometry.MultiPoint instance GHC.Classes.Eq Data.Geometry.Geos.Geometry.MultiPoint instance GHC.Show.Show Data.Geometry.Geos.Geometry.MultiPoint instance GHC.Classes.Ord Data.Geometry.Geos.Geometry.MultiPoint instance GHC.Read.Read Data.Geometry.Geos.Geometry.MultiPoint instance GHC.Generics.Generic Data.Geometry.Geos.Geometry.Polygon instance Data.Data.Data Data.Geometry.Geos.Geometry.Polygon instance GHC.Classes.Eq Data.Geometry.Geos.Geometry.Polygon instance GHC.Show.Show Data.Geometry.Geos.Geometry.Polygon instance GHC.Classes.Ord Data.Geometry.Geos.Geometry.Polygon instance GHC.Read.Read Data.Geometry.Geos.Geometry.Polygon instance GHC.Generics.Generic Data.Geometry.Geos.Geometry.LineString instance Data.Data.Data Data.Geometry.Geos.Geometry.LineString instance GHC.Classes.Eq Data.Geometry.Geos.Geometry.LineString instance GHC.Show.Show Data.Geometry.Geos.Geometry.LineString instance GHC.Classes.Ord Data.Geometry.Geos.Geometry.LineString instance GHC.Read.Read Data.Geometry.Geos.Geometry.LineString instance GHC.Generics.Generic Data.Geometry.Geos.Geometry.LinearRing instance Data.Data.Data Data.Geometry.Geos.Geometry.LinearRing instance GHC.Classes.Eq Data.Geometry.Geos.Geometry.LinearRing instance GHC.Show.Show Data.Geometry.Geos.Geometry.LinearRing instance GHC.Classes.Ord Data.Geometry.Geos.Geometry.LinearRing instance GHC.Read.Read Data.Geometry.Geos.Geometry.LinearRing instance GHC.Generics.Generic Data.Geometry.Geos.Geometry.Point instance Data.Data.Data Data.Geometry.Geos.Geometry.Point instance GHC.Classes.Eq Data.Geometry.Geos.Geometry.Point instance GHC.Show.Show Data.Geometry.Geos.Geometry.Point instance GHC.Classes.Ord Data.Geometry.Geos.Geometry.Point instance GHC.Read.Read Data.Geometry.Geos.Geometry.Point instance GHC.Generics.Generic Data.Geometry.Geos.Geometry.Coordinate instance Data.Data.Data Data.Geometry.Geos.Geometry.Coordinate instance GHC.Classes.Eq Data.Geometry.Geos.Geometry.Coordinate instance GHC.Show.Show Data.Geometry.Geos.Geometry.Coordinate instance GHC.Classes.Ord Data.Geometry.Geos.Geometry.Coordinate instance GHC.Read.Read Data.Geometry.Geos.Geometry.Coordinate instance GHC.Classes.Eq (Data.Geometry.Geos.Geometry.Geometry a) instance GHC.Show.Show (Data.Geometry.Geos.Geometry.Geometry a) instance GHC.Show.Show (Data.Geometry.Geos.Geometry.Some Data.Geometry.Geos.Geometry.Geometry) instance GHC.Base.Semigroup Data.Geometry.Geos.Geometry.MultiPoint instance GHC.Base.Monoid Data.Geometry.Geos.Geometry.MultiPoint instance GHC.Base.Semigroup Data.Geometry.Geos.Geometry.LineString instance GHC.Base.Monoid Data.Geometry.Geos.Geometry.LineString instance GHC.Base.Semigroup Data.Geometry.Geos.Geometry.LinearRing instance GHC.Base.Monoid Data.Geometry.Geos.Geometry.LinearRing -- | Functions to compute the buffer of a geometry, for both positive and -- negative buffer distances. -- -- In GIS, the positive (or negative) buffer of a geometry is defined as -- the Minkowski sum (or difference) of the geometry with a circle with -- radius equal to the absolute value of the buffer distance. In the -- CAD/CAM world buffers are known as offset curves. In morphological -- analysis the operation of positive and negative buffering is referred -- to as erosion and dilation. -- -- The buffer operation always returns a polygonal result. The negative -- or zero-distance buffer of lines and points is always an empty -- Polygon. -- -- Since true buffer curves may contain circular arcs, computed buffer -- polygons can only be approximations to the true geometry. The user can -- control the accuracy of the curve approximation by specifying the -- number of linear segments with which to approximate a curve. module Data.Geometry.Geos.Buffer -- | Returns a Geometry that represents all points whose distance from this -- geometry is less than or equal to the given width. buffer :: Geometry a -> Double -> BufferParams -> Some Geometry defaultBufferParams :: BufferParams data BufferParams BufferParams :: BufferJoinStyle -> BufferCapStyle -> Double -> Int -> Bool -> BufferParams [joinStyle] :: BufferParams -> BufferJoinStyle [capStyle] :: BufferParams -> BufferCapStyle [mitreLimit] :: BufferParams -> Double -- | Sets the number of line segments used to approximate an angle fillet. -- --