#      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                                                                                                   !"Safe %&,0ADOT[-Prepared Geometries  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None%&,09:;<=ADIOT[Geos 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. XUnsafe function for performing a geos calculation. Errors will cause runtime exceptions.sA safe function for performing a geos calculation and returning a Maybe. Exceptions will be represented as Nothing.~A safe function for performing a geos calculation and returning an Either String a. Exceptions are reprsented as `Left String`#$%&#$%&None %&,09;ADOT['()*+,'()*+,None%&,09;ADORT[QA 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.WA Geom is a wrapper around the C data structure that has finalizers associated with it.pThe following require CoordSeqConst as arguments since coordinate sequences become owned by the Geometry object.XThe second argument is a list of geometries, | NOTE. geometries become owned by caller. project p g returns the distance of point p projected on g from origin of g . Geometry g must be a lineal geometryYReturn the closest point to given distance within geometry. Geometry must be a LineStringL-./0123456     78<     <     =-./0123456     78None %&,0ADOT[)0Will only accept LineString geometries. For the widtho parameter, negative doubles represent a right-side offset, and positive doubles represent a left-side offset. 9 !"#$%&'() !"#$%&'() '!"#$%&() 9 !"#$%&'()None %&,0ADOT[,-./0:123456789:,-./0123456789:,-./0123456789:,-./0:123456789:None %&,0ADOT[>A mutable data structure. Must G! into an STRTree before querying.@A query-only data structureFgCreate 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.GBuilds1 the STRTree by performing a trivial query on it.HInsert 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 tree=>?@ABCDEFGHIJKL=>?@ABCDEFGHIJBCLK@A>?=EDFGHIJ =>?@ABCDEFGHIJKLNone %&,0ADOT[;<=>?@ABCDEFQRGSHTUVWIXYZ QRSTUVWXYZ QVRWSTUXYZ;<=>?@ABCDEFQRGSHTUVWIXYZ None %&,0ADOT[hgReturns 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.iReturns a LineString whose endpoints define the minimum clearance of a geometry. If the geometry has no minimum clearance, an empty LineString will be returned.jComputes 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.kDReturn a Delaunay triangulation of the vertex of the given geometry g, where tol# is the snapping tolerance to use.JK[\]^_`abcdefghijkl[\]^_`abcdefghijkl[\]^_`abcdeklfghijJK[\]^_`abcdefghijkl None%&,/059:;ADOT[ qLIn a polygon, the fist LinearRing is the shell, and any following are holes.uCoordinate is the lightweight class used to store coordinates. Coordinate objects are two-dimensional points, with an additional z-ordinate. |hIn all geometry types, SRID is used for compatability and is NOT used in calculations. For example, the  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. the same as  with its arguments reversed.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).Like project7, but returns the distance as a Double between 0 and 1.dGiven a distance, returns the point (or closest point) within the geometry LineString that distance.Like  interpolate5, but takes the distance as a double between 0 and 1.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.yReturns the length of this geometry (e.g., 0 for a Point, the length of a LineString, or the circumference of a Polygon).NOTE: distance+ calculations are linear  in other words, distanced does not perform a spherical calculation even if the SRID specifies a geographic coordinate system.|Returns the closest points of the two geometries. The first point comes from g1 geometry and the second point comes from g2.kmLnMoNpOqPrQRsSTtUVuWXvwxyz{|}~YZ[\]^_`abcdefghijklmnopqr9mnopqrstuvwxz{|}~y9vwxyz{|}~tsrqponmuSmLnMoNpOqPrQRsSTtUVuWXvwxyz{|}~YZ[\]^_`abcdefghijklmnopqr None %&,0ADOT[HThe 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 %&,0ADOT[     pfrance@gmail.comNone %&,0ADOT[j creates an STRTree with a default node capacity of 10. For finer-grained control over the node capacity, " accepts a node-capacity argument.Queries 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 %&,0ADOT[None %&,0ADOT[ Returns 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.EReturns a Geometry representing the points shared by both geometries.JReturns the smallest Polygon that contains all the points in the geometry.]Returns a Geometry representing the points making up this geometry that do not make up other.tReturns a Geometry combining the points in this geometry not in other, and the points in other not in this geometry.BReturns 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.OComputes and returns a Point guaranteed to be on the interior of this geometry. Returns a Point object representing the geometric center of the geometry. The point is not guaranteed to be on the interior of the geometry. DReturn a Delaunay triangulation of the vertex of the given geometry g, where tol# is the snapping tolerance to use. @Returns the Voronoi polygons of a set of Vertices given as inputgReturns 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.st    5the input geometry whose vertex will be used as sitesclipping 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 1snapping tolerance to use for improved robustness1whether to return only edges of the Voronoi cells           st     pfrance@gmail.comNone %&,0ADOT[ESets 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).Sets 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  .the usual round end caps,end caps are truncated flat at the line ends Dend caps are squared off at the buffer distance beyond the line ends"yReturns a Geometry that represents all points whose distance from this geometry is less than or equal to the given width. uv!" !""!  uv!"w !"#$$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01234556789:;<==>>?@ABCDEFGHIJKLMNOPQRSTUVW X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r  s t u v w x y z { | | } ~                                  !                                                              8  9             F        QVRWXYZ[\]^_`abhicdegf((0(    j k l m n o  p  q                     ! " # $ %  & ' ( )*+geos-0.4.1-inplaceData.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.TopologyData.Geometry.Geos.GeometryData.Geometry.Geos.PreparedData.Geometry.Geos.RelatableData.Geometry.Geos.STRTreeData.Geometry.Geos.SerializeData.Geometry.Geos.TopologyData.Geometry.Geos.BufferBufferJoinStyleunBufferJoinStyleBufferCapStyleunBufferCapStyle 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_PreparedGeomDestroy geos_Preparegeos_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 joinBevel$fEqGEOSGeomType$fShowGEOSGeomType$fEqGEOSByteOrder$fShowGEOSByteOrder$fEqBufferCapStyle$fShowBufferCapStyle$fEqBufferJoinStyle$fShowBufferJoinStyleGeosgeosUnitwithGeos withGeos'runGeosrunGeosMrunGeosEthrowIfthrowIf' throwIfZero throwIfZero' throwIfNull throwIfNull'marshallDouble marshallIntmkErrorMessage$fMonadError[]Geos$fMonadReaderGeos $fMonadGeos $fFunctorGeos$fApplicativeGeos CoordSeqConstCoordSeqCoordinateSequencewithCoordinateSequencecreateEmptyCoordinateSequencecreateCoordinateSequencegetCoordinateSequenceXgetCoordinateSequenceYgetCoordinateSequenceZgetCoordinateSequenceSizegetCoordinateSequenceDimensionssetCoordinateSequenceXsetCoordinateSequenceYsetCoordinateSequenceZsetCoordinateSequenceOrd!$fCoordinateSequenceCoordSeqConst$fCoordinateSequenceCoordSeq$fShowCoordSeqConst$fShowCoordSeq$fEqCoordSeqConst $fEqCoordSeq GeomTypeId PointTypeIdLineStringTypeIdLinearRingTypeId PolygonTypeIdMultiPointTypeIdMultiLineStringTypeIdMultiPolygonTypeIdGeometryCollectionTypeIdGeometry CoordSeqInput withGeometryconstructGeometry GeomConst unGeomConstGeomunGeomwithMaybeGeometrygetSRIDsetSRID getTypeName getTypeIdgetCoordinateSequencegetNumCoordinatesgetNumInteriorRingsgetNumGeometries getGeometryNgetExteriorRinggetInteriorRingN normalize createPointcreateLinearRingcreateLineString createPolygoncreateMultiPointcreateMultiLineStringcreateMultiPolygoncreateCollectionprojectprojectNormalized interpolateinterpolateNormalizeddisjointtouches intersectscrosseswithincontainsoverlapsequals equalsExactcovers coveredByareageometryLengthdistancehausdorffDistance nearestPoints $fEqGeomConst$fEqGeom$fGeometryGeomConst$fGeometryGeom$fEqGeomTypeId$fShowGeomTypeId BufferParamswithBufferParamscreateBufferParamssetEndCapStyle setJoinStyle setMitreLimitsetQuadrantSegmentssetSingleSidedbufferbufferWithStyle offsetCurve$fShowBufferParams$fEqBufferParamsPreparedGeometryunPreparedGeometrywithPreparedGeometrypreparecontainsProperly$fShowPreparedGeometry$fEqPreparedGeometry FinalizerSTRTreeBuilderSTRTree STRTreeLike withSTRTreeunwrapwrap2createSTRTreeBuilderbuildinsertfoldrquery$fSTRTreeLikeSTRTreeBuilder$fSTRTreeLikeSTRTree $fShowSTRTree $fEqSTRTree$fShowSTRTreeBuilder$fEqSTRTreeBuilder createReadercreateWktReaderreadreadHexreadWkt createWritercreateWktWriterwritewriteHexwriteWktenvelope intersection convexHull differencesymmetricDifferenceboundaryunion unaryUnionpointOnSurfacecentroidnode polygonizeminimumRotatedRectangle minimumWidthminimumClearanceLineminimumClearancedelaunayTriangulationvoronoiDiagramGeometryCollection MultiPolygonMultiLineString MultiPointPolygon LineString LinearRingPoint Coordinate PointGeometryLineStringGeometryLinearRingGeometryPolygonGeometryMultiPointGeometryMultiLineStringGeometryMultiPolygonGeometryCollectionGeometryGeometryConstructionErrorSomeSRIDwithSomeGeometrymapSomeGeometry coordinate2 coordinate3point linearRing lineStringpolygon multiPointmultiLineString multiPolygongeometryCollectionbinaryPredicateconvertGeometryToRawconvertGeometryFromRaw ensurePointensureLineStringensureLinearRing ensurePolygonensureMultiPointensureMultiLineStringensureMultiPolygonensureGeometryCollectionconvertMultiPolygonFromRaw$fMonoidMultiPoint$fSemigroupMultiPoint$fMonoidLineString$fSemigroupLineString$fShowLineString$fMonoidLinearRing$fSemigroupLinearRing$fShowLinearRing$fShowCoordinate $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 queryPrepared Relatable$fRelatablePreparedGeometry$fRelatableGeometrytoListtoVectorfromListunfoldrunfoldr_ fromFoldable fromFoldable_lookup readLotsOfHex joinStylecapStyle mitreLimitquadrantSegments singleSided RoundJoin MitreJoin BevelJoinRoundCap SquareCapFlatCapdefaultBufferParamsunGeos GEOSHandle_unCoordSeqConst _unCoordSeq coordSeqEq coordSeqShowgetCoordinateSequenceD_setCoordinateSequence_createGeometryFromCoordsgeomEq geomTypeIdgetNum_getN_ cloneGeometry createMulti_geo_2_geo_1_dbinaryPredicate_geo_1geo_2_d WktWriter _unWktWriter WktReader _unWktReaderWriter _unWriterReader _unReaderread_readWkbwrite_geo_2coordinateSequenceLineStringcoordinateSequenceLinearRing Coordinate2 Coordinate3InvalidLinearRingInvalidLineStringInvalidPolygondimensionsCoordinatedimensionsCoordinateSequenceconvertSomeGeometryToRawconvertPointToRawconvertLinearRingToRawconvertLineStringToRaw convertLinealconvertPolygonToRawconvertMultiPointToRawconvertMultiLineStringToRawconvertMultiPolygonToRawconvertGeometryCollectionToRawsetCoordinateSequence getPositionconvertPointFromRawconvertSequenceFromRawconvertLineStringFromRawconvertLinearRingFromRawconvertPolygonFromRawconvertMultiPointFromRawconvertMultiLineStringFromRaw convertGeometryCollectionFromRawconvertCapStyleconvertJoinStyle