!K5      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe &'.2EHSX_ rgeosPrepared Geometries      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab None&'.2=>?@AEHMSX_ecgeosGeos is the core context for performing geometric calculations. It handles the foreign function interface as well as error handling. All underlying geos exceptions are represented by a String. dgeosXUnsafe function for performing a geos calculation. Errors will cause runtime exceptions.egeossA safe function for performing a geos calculation and returning a Maybe. Exceptions will be represented as Nothing.fgeos~A safe function for performing a geos calculation and returning an Either String a. Exceptions are reprsented as `Left String`cghidefjklmnopqr None &'.2=?EHSX_<stuvwxyz{|}~ None&'.2=?EHSVX_%geosQA GeomConst is a wrapper around the C data structure that does *not* have finalizers attached to it. A typical use case for GemoConst is when retrieving a child geometry from a composite geometry. If the parent geometry has finalizers associated with it, we can not separately attempt to deallocate memory occupied by the child geometry.geosWA Geom is a wrapper around the C data structure that has finalizers associated with it.geospThe following require CoordSeqConst as arguments since coordinate sequences become owned by the Geometry object.geosXThe second argument is a list of geometries, | NOTE. geometries become owned by caller.geos project p g returns the distance of point p projected on g from origin of g . Geometry g must be a lineal geometrygeosYReturn the closest point to given distance within geometry. Geometry must be a LineString< None &'.2EHSX_)geos0Will only accept LineString geometries. For the widtho parameter, negative doubles represent a right-side offset, and positive doubles represent a left-side offset. ]^_`abNone&'.127=>?EHSX_FS geosLIn a polygon, the fist LinearRing is the shell, and any following are holes.geosCoordinate is the lightweight class used to store coordinates. Coordinate objects are two-dimensional points, with an additional z-ordinate. |geoshIn all geometry types, SRID is used for compatability and is NOT used in calculations. For example, the 6 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.geos the same as  with its arguments reversed."geosReturns 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).#geosLike project7, but returns the distance as a Double between 0 and 1.$geosdGiven a distance, returns the point (or closest point) within the geometry LineString that distance.%geosLike  interpolate5, but takes the distance as a double between 0 and 1.(geosReturns 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.5geosyReturns the length of this geometry (e.g., 0 for a Point, the length of a LineString, or the circumference of a Polygon).6geosNOTE: distance+ calculations are linear  in other words, distanced does not perform a spherical calculation even if the SRID specifies a geographic coordinate system.8geos|Returns the closest points of the two geometries. The first point comes from g1 geometry and the second point comes from g2.9   !"#$%&'()*+,-./0123456789   !&*)3+,-./102$%"#('45678pfrance@gmail.comNone &'.2EHSX_a{geosESets the number of line segments used to approximate an angle fillet.If quadrantSegments >= 1, joins are round, and quadrantSegments indicates the number of segments to use to approximate a quarter-circle.2If quadrantSegments = 0, joins are bevelled (flat)If quadrantSegments < 0, joins are mitred, and the value of qs indicates the mitre ration limit as: mitreLimit = |quadrantSegments|mFor round joins, quadrantSegments determines the maximum error in the approximation to the true buffer curve.KThe default value of 8 gives less than 2% max error in the buffer distance.For a max error of < 1%, use QS = 12. For a max error of < 0.1%, use QS = 18. The error is always less than the buffer distance (in other words, the computed buffer curve is always inside the true curve).|geosSets whether the computed buffer should be single-sided. A single-sided buffer is constructed on only one side of each input line.?The side used is determined by the sign of the buffer distance:0a positive distance indicates the left-hand sidea negative distance indicates the right-hand side The single-sided buffer of point geometries is the same as the regular buffer.^The End Cap Style for single-sided buffers is always ignored, and forced to the equivalent of .geosthe usual round end capsgeos,end caps are truncated flat at the line endsgeosDend caps are squared off at the buffer distance beyond the line endsgeosyReturns a Geometry that represents all points whose distance from this geometry is less than or equal to the given width.vwxyz{|}~vwxyz{|}~ None &'.2EHSX_b&None &'.2EHSX_rgeosHThe containsProperly predicate has the following equivalent definitions:Every point of the other geometry is a point of this geometry's interior. In other words, if the test geometry has any interaction with the boundary of the target geometry the result of containsProperly is false. This is different semantics to the contains` predicate, in which test geometries can intersect the target's boundary and still be contained.The advantage of using this predicate is that it can be computed efficiently, since it avoids the need to compute the full topological relationship of the input boundaries in cases where they intersect.fAn example use case is computing the intersections of a set of geometries with a large polygonal geometry. Since intersection is a fairly slow operation, it can be more efficient to use containsProperly to filter out test geometries which lie wholly inside the area. In these cases the intersection is known a priori to be exactly the original test geometry.None &'.2EHSX_}geosA mutable data structure. Must ! into an STRTree before querying.geosA query-only data structuregeosgCreate a new R-tree using the Sort-Tile-Recursive algorithm (STRtree) for two-dimensional spatial data.@param nodeCapacity the maximum number of child nodes that a node may have. The minimum recommended capacity value is 4. If unsure, use a default node capacity of 10.geosBuilds1 the STRTree by performing a trivial query on it.geosInsert an item into an STRtree<param tree the STRtree in which the item should be inserted Fparam geometry a Geometry whose envelope corresponds to the extent of item- @param item the item to insert into the treeNone &'.2EHSX_~` None &'.2EHSX_ZgeosgReturns a LINESTRING geometry which represents the minimum diameter of the geometry. The minimum diameter is defined to be the width of the smallest band that contains the geometry, where a band is a strip of the plane defined by two parallel lines. This can be thought of as the smallest hole that the geometry can be moved through, with a single rotation.geosReturns a LineString whose endpoints define the minimum clearance of a geometry. If the geometry has no minimum clearance, an empty LineString will be returned.geosComputes the minimum clearance of a geometry. The minimum clearance is the smallest amount by which a vertex could be move to produce an invalid polygon, a non-simple linestring, or a multipoint with repeated points. If a geometry has a minimum clearance of epsb, it can be said that: | - No two distinct vertices in the geometry are separated by less than eps! | - No vertex is closer than eps to a line segment of which it is not an endpoint. If the minimum clearance cannot be defined for a geometry (such as with a single point, or a multipoint whose points are identical, a value of Infinity will be calculated.geosDReturn a Delaunay triangulation of the vertex of the given geometry g, where tol# is the snapping tolerance to use.None &'.2EHSX_) pfrance@gmail.comNone &'.2EHSX_geosj creates an STRTree with a default node capacity of 10. For finer-grained control over the node capacity, " accepts a node-capacity argument.geosQueries the index for all items whose extents intersect the given search Envelope. Note that some kinds of indexes may also return objects which do not in fact intersect the query envelope. pfrance@gmail.comNone &'.2EHSX_None &'.2EHSX_ geosReturns a Polygon that represents the bounding envelope of this geometry. Note that it can also return a Point if the input geometry is a point.geosEReturns a Geometry representing the points shared by both geometries.geosJReturns the smallest Polygon that contains all the points in the geometry.geos]Returns a Geometry representing the points making up this geometry that do not make up other.geostReturns a Geometry combining the points in this geometry not in other, and the points in other not in this geometry.geosBReturns a Geometry representing all the points in both geometries.oComputes the union of all the elements of this geometry. Heterogeneous GeometryCollections are fully supported.(The result obeys the following contract: Unioning a set of LineStrings has the effect of fully noding and dissolving the linework. Unioning a set of Polygons will always return a Polygonal geometry (unlike {link #union(Geometry)}, which may return geometrys of lower dimension if a topology collapse occurred.geosOComputes and returns a Point guaranteed to be on the interior of this geometry.geosReturns a Point object representing the geometric center of the geometry. The point is not guaranteed to be on the interior of the geometry.geosDReturn a Delaunay triangulation of the vertex of the given geometry g, where tol# is the snapping tolerance to use.geos@Returns the Voronoi polygons of a set of Vertices given as inputgeosgReturns a LINESTRING geometry which represents the minimum diameter of the geometry. The minimum diameter is defined to be the width of the smallest band that contains the geometry, where a band is a strip of the plane defined by two parallel lines. This can be thought of as the smallest hole that the geometry can be moved through, with a single rotation.geos5the input geometry whose vertex will be used as sitesgeosclipping envelope for the returned diagram, automatically determined if Nothing. The diagram will be clipped to the larger of this envelope or an envelope surrounding the sites geos1snapping tolerance to use for improved robustnessgeos1whether to return only edges of the Voronoi cells !"#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk l m n o p q r s t u v w x y z { | | } } ~                 2 4                                     3 5 7 8 D E F G H              geos-0.3.0-inplaceData.Geometry.Geos.GeometryData.Geometry.Geos.BufferData.Geometry.Geos.PreparedData.Geometry.Geos.STRTreeData.Geometry.Geos.RelatableData.Geometry.Geos.SerializeData.Geometry.Geos.TopologyData.Geometry.Geos.Raw.InternalData.Geometry.Geos.Raw.BaseData.Geometry.Geos.Raw.CoordSeqData.Geometry.Geos.Raw.GeometryData.Geometry.Geos.Raw.BufferData.Geometry.Geos.Raw.PreparedData.Geometry.Geos.Raw.STRTree Data.Geometry.Geos.Raw.SerializeData.Geometry.Geos.Raw.TopologyGeometryCollection MultiPolygonMultiLineString MultiPointPolygon LineString LinearRingPoint CoordinateGeometry PointGeometryLineStringGeometryLinearRingGeometryPolygonGeometryMultiPointGeometryMultiLineStringGeometryMultiPolygonGeometryCollectionGeometryGeometryConstructionErrorSomeSRIDwithSomeGeometrymapSomeGeometry coordinate2 coordinate3point linearRing lineStringpolygon multiPointmultiLineString multiPolygongeometryCollectionprojectprojectNormalized interpolateinterpolateNormalizedbinaryPredicateequals equalsExactconvertGeometryToRawconvertGeometryFromRaw ensurePointensureLineStringensureLinearRing ensurePolygonensureMultiPointensureMultiLineStringensureMultiPolygonensureGeometryCollectionconvertMultiPolygonFromRawareageometryLengthdistancehausdorffDistance nearestPoints$fShowCoordinate$fMonoidLinearRing$fSemigroupLinearRing$fShowLinearRing$fMonoidLineString$fSemigroupLineString$fShowLineString$fMonoidMultiPoint$fSemigroupMultiPoint $fShowSome$fEqSome$fReadCoordinate$fOrdCoordinate$fEqCoordinate$fDataCoordinate$fGenericCoordinate $fReadPoint $fOrdPoint $fShowPoint $fEqPoint $fDataPoint$fGenericPoint$fReadLinearRing$fOrdLinearRing$fEqLinearRing$fDataLinearRing$fGenericLinearRing$fReadLineString$fOrdLineString$fEqLineString$fDataLineString$fGenericLineString $fReadPolygon $fOrdPolygon $fShowPolygon $fEqPolygon $fDataPolygon$fGenericPolygon$fReadMultiPoint$fOrdMultiPoint$fShowMultiPoint$fEqMultiPoint$fDataMultiPoint$fGenericMultiPoint$fReadMultiLineString$fOrdMultiLineString$fShowMultiLineString$fEqMultiLineString$fDataMultiLineString$fGenericMultiLineString$fReadMultiPolygon$fOrdMultiPolygon$fShowMultiPolygon$fEqMultiPolygon$fDataMultiPolygon$fGenericMultiPolygon$fShowGeometryCollection$fEqGeometryCollection$fGenericGeometryCollection$fShowGeometry $fEqGeometry BufferParams joinStylecapStyle mitreLimitquadrantSegments singleSidedBufferJoinStyle RoundJoin MitreJoin BevelJoinBufferCapStyleRoundCap SquareCapFlatCapdefaultBufferParamsbufferPreparedGeometryprepare queryPreparedcontainsProperlySTRTreeBuilderSTRTree Relatablecontains coveredBycoverscrossesdisjoint intersectsoverlapstoucheswithin$fRelatablePreparedGeometry$fRelatableGeometryfoldrtoListtoVectorfromListemptybuildinsert fromFoldable fromFoldable_lookupreadHex readLotsOfHexwriteHexreadWktwriteWktenvelope intersection convexHull differencesymmetricDifferenceboundaryunion unaryUnionpointOnSurfacecentroidnodedelaunayTriangulationvoronoiDiagram polygonizeminimumRotatedRectangle minimumWidthminimumClearanceminimumClearanceLine geos_PrepareunBufferJoinStyleunBufferCapStyle GEOSWKTReader GEOSWKTWriter GEOSWKBReader GEOSWKBWriterGEOSDistanceCallbackGEOSQueryCallbackGEOSMessageHandler_rGEOSMessageHandlerGEOSPreparedGeometryGEOSBufferParams GEOSSTRTreeGEOSCoordSequence GEOSGeometryGEOSContextHandle_tGEOSContextHandle_HS GEOSByteOrderunGEOSByteOrder GEOSGeomTypeunGEOSGeomType geos_isValidgeos_STRTreeDestroygeos_STRTreNearestGenericgeos_STRTreeIterategeos_STRTreeQuerygeos_STRTreeInsertgeos_STRTreeCreategeos_PreparedWithingeos_PreparedTouchesgeos_PreparedOverlapsgeos_PreparedIntersectsgeos_PreparedDisjointgeos_PreparedCrossesgeos_PreparedCoversgeos_PreparedCoveredBygeos_PreparedContainsProperlygeos_PreparedContainsgeos_PreparedGeomDestroygeos_NearestPointsgeos_GeomGetLengthgeos_HausdorffDistanceDensifygeos_HausdorffDistance geos_Distance geos_Length geos_Areageos_WKTWriterWritegeos_WKTWriterDestroygeos_WKTWriterCreategeos_WKTReaderReadgeos_WKTReaderDestroygeos_WKTReaderCreategeos_WKBWriterSetIncludeSRIDgeos_WKBWriterWriteHexgeos_WKBWriterWritegeos_WKBWriterDestroygeos_WKBWriterCreategeos_WKBReaderReadHexgeos_WKBReaderReadgeos_WKBReaderDestroygeos_WKBReaderCreategeos_CoveredBy geos_Coversgeos_EqualsExact geos_Equals geos_Overlaps geos_Contains geos_Withingeos_Intersects geos_Crosses geos_Touches geos_Disjointgeos_VoronoiDiagramgeos_DelaunayTriangulationgeos_Polygonize_valid geos_Nodegeos_MinimumBoundingCirclegeos_PointsOnSurfacegeos_GetCentroidgeos_UnaryUnion geos_Union geos_Boundarygeos_SymDifferencegeos_Differencegeos_MinimumClearancegeos_MinimumClearanceLinegeos_MinimumWidthgeos_MinimumRotatedRectanglegeos_ConvexHullgeos_Intersection geos_Envelopegeos_OffsetCurvegeos_BufferWithStylegeos_BufferWithParamsgeos_BufferParamsSetSingleSided$geos_BufferParamsSetQuadrantSegmentsgeos_BufferParamsSetMitreLimitgeos_BufferParamsSetJoinStylegeos_BufferParamsSetEndCapStylegeos_BufferParamsDestroygeos_BufferParamsCreate geos_Buffergeos_GeomCreateEmptyCollectiongeos_GeomCreateCollectiongeos_GeomCreatePolygongeos_GeomCreateEmptyPolygongeos_GeomCreateEmptyLineStringgeos_GeomCreateLineStringgeos_GeomCreateLinearRinggeos_GeomCreateEmptyPointgeos_GeomCreatePointgeos_GeomClonegeos_GeomDestroygeos_CoordSeqGetDimensionsgeos_GetNumCoordinatesgeos_CoordSeqGetSizegeos_CoordSeqGetOrdinategeos_CoordSeqGetZgeos_CoordSeqGetYgeos_CoordSeqGetXgeos_CoordSeqSetOrdinategeos_CoordSeqSetZgeos_CoordSeqSetYgeos_CoordSeqSetXgeos_CoordSeqDestroygeos_CoordSeqClonegeos_CoordSeqCreategeos_InterpolateNormalizedgeos_ProjectNormalizedgeos_Interpolate geos_Projectgeos_GetGeometryNgeos_GetNumGeometriesgeos_GetNumInteriorRingsgeos_GetExteriorRinggeos_GetInteriorRingNgeos_Normalize geos_GeomTypegeos_GeomTypeIdgeos_GetCoordSeq geos_SetSRID geos_GetSRIDgeos_setErrorHandlergeos_setNoticeHandler geos_finish geos_initpointId lineStringId linearRingId polygonId multiPointIdmultiLineStringIdmultiPolygonIdgeometryCollectionId bigEndian littleEndiancapRoundcapFlat capSquare joinRound joinMitre joinBevelGeosrunGeosrunGeosMrunGeosEgeosUnitwithGeos withGeos'throwIfthrowIf' throwIfZero throwIfZero' throwIfNull throwIfNull'marshallDouble marshallIntmkErrorMessage CoordSeqConstCoordSeqCoordinateSequencewithCoordinateSequencecreateEmptyCoordinateSequencecreateCoordinateSequencegetCoordinateSequenceXgetCoordinateSequenceYgetCoordinateSequenceZgetCoordinateSequenceSizegetCoordinateSequenceDimensionssetCoordinateSequenceXsetCoordinateSequenceYsetCoordinateSequenceZsetCoordinateSequenceOrd GeomConstGeom createPoint createPolygon GeomTypeId PointTypeIdLineStringTypeIdLinearRingTypeId PolygonTypeIdMultiPointTypeIdMultiLineStringTypeIdMultiPolygonTypeIdGeometryCollectionTypeId CoordSeqInput withGeometryconstructGeometry unGeomConstunGeomwithMaybeGeometrygetSRIDsetSRID getTypeName getTypeIdgetCoordinateSequencegetNumCoordinatesgetNumInteriorRingsgetNumGeometries getGeometryNgetExteriorRinggetInteriorRingN normalizecreateLinearRingcreateLineStringcreateMultiPointcreateMultiLineStringcreateMultiPolygoncreateCollection offsetCurvewithBufferParamscreateBufferParamssetEndCapStyle setJoinStyle setMitreLimitsetQuadrantSegmentssetSingleSidedbufferWithStyleunPreparedGeometrywithPreparedGeometrycreateSTRTreeBuilder Finalizer STRTreeLike withSTRTreeunwrapwrap2query createReadercreateWktReaderread createWritercreateWktWriterwrite