GEOS  3.14.0dev
Typedefs | Enumerations | Functions
geos_c.h File Reference

C API for the GEOS geometry algorithms library. More...

#include <stddef.h>
#include <geos/export.h>

Go to the source code of this file.

Typedefs

typedef struct GEOSContextHandle_HS * GEOSContextHandle_t
 
typedef void(* GEOSMessageHandler) (GEOS_PRINTF_FORMAT const char *fmt,...) GEOS_PRINTF_FORMAT_ATTR(1
 
typedef void(*) typedef void(* GEOSMessageHandler_r) (const char *message, void *userdata)
 
typedef struct GEOSGeom_t GEOSGeometry
 
typedef struct GEOSPrepGeom_t GEOSPreparedGeometry
 
typedef struct GEOSCoordSeq_t GEOSCoordSequence
 
typedef struct GEOSSTRtree_t GEOSSTRtree
 
typedef struct GEOSBufParams_t GEOSBufferParams
 
typedef struct GEOSMakeValidParams_t GEOSMakeValidParams
 
typedef void(* GEOSQueryCallback) (void *item, void *userdata)
 
typedef int(* GEOSDistanceCallback) (const void *item1, const void *item2, double *distance, void *userdata)
 
typedef int(* GEOSTransformXYCallback) (double *x, double *y, void *userdata)
 
typedef int(* GEOSTransformXYZCallback) (double *x, double *y, double *z, void *userdata)
 
typedef void() GEOSInterruptCallback(void)
 
typedef struct GEOSWKTReader_t GEOSWKTReader
 
typedef struct GEOSWKTWriter_t GEOSWKTWriter
 
typedef struct GEOSWKBReader_t GEOSWKBReader
 
typedef struct GEOSWKBWriter_t GEOSWKBWriter
 
typedef struct GEOSGeoJSONReader_t GEOSGeoJSONReader
 
typedef struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter
 

Enumerations

enum  GEOSGeomTypes {
  GEOS_POINT , GEOS_LINESTRING , GEOS_LINEARRING , GEOS_POLYGON ,
  GEOS_MULTIPOINT , GEOS_MULTILINESTRING , GEOS_MULTIPOLYGON , GEOS_GEOMETRYCOLLECTION ,
  GEOS_CIRCULARSTRING , GEOS_COMPOUNDCURVE , GEOS_CURVEPOLYGON , GEOS_MULTICURVE ,
  GEOS_MULTISURFACE
}
 
enum  GEOSWKBByteOrders { GEOS_WKB_XDR = 0 , GEOS_WKB_NDR = 1 }
 
enum  GEOSWKBFlavors { GEOS_WKB_EXTENDED = 1 , GEOS_WKB_ISO = 2 }
 
enum  GEOSBufCapStyles { GEOSBUF_CAP_ROUND = 1 , GEOSBUF_CAP_FLAT = 2 , GEOSBUF_CAP_SQUARE = 3 }
 
enum  GEOSBufJoinStyles { GEOSBUF_JOIN_ROUND = 1 , GEOSBUF_JOIN_MITRE = 2 , GEOSBUF_JOIN_BEVEL = 3 }
 
enum  GEOSRelateBoundaryNodeRules {
  GEOSRELATE_BNR_MOD2 = 1 , GEOSRELATE_BNR_OGC = 1 , GEOSRELATE_BNR_ENDPOINT = 2 , GEOSRELATE_BNR_MULTIVALENT_ENDPOINT = 3 ,
  GEOSRELATE_BNR_MONOVALENT_ENDPOINT = 4
}
 
enum  GEOSValidFlags { GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE = 1 }
 
enum  GEOSMakeValidMethods { GEOS_MAKE_VALID_LINEWORK = 0 , GEOS_MAKE_VALID_STRUCTURE = 1 }
 
enum  GEOSPrecisionRules { GEOS_PREC_VALID_OUTPUT = 0 , GEOS_PREC_NO_TOPO = 1 , GEOS_PREC_KEEP_COLLAPSED = 2 }
 

Functions

GEOSInterruptCallbackGEOS_interruptRegisterCallback (GEOSInterruptCallback *cb)
 
void GEOS_interruptRequest (void)
 
void GEOS_interruptCancel (void)
 
GEOSContextHandle_t GEOS_init_r (void)
 
void GEOS_finish_r (GEOSContextHandle_t handle)
 
GEOSMessageHandler GEOSContext_setNoticeHandler_r (GEOSContextHandle_t extHandle, GEOSMessageHandler nf)
 
GEOSMessageHandler GEOSContext_setErrorHandler_r (GEOSContextHandle_t extHandle, GEOSMessageHandler ef)
 
GEOSMessageHandler_r GEOSContext_setNoticeMessageHandler_r (GEOSContextHandle_t extHandle, GEOSMessageHandler_r nf, void *userData)
 
GEOSMessageHandler_r GEOSContext_setErrorMessageHandler_r (GEOSContextHandle_t extHandle, GEOSMessageHandler_r ef, void *userData)
 
GEOSCoordSequenceGEOSCoordSeq_create_r (GEOSContextHandle_t handle, unsigned int size, unsigned int dims)
 
GEOSCoordSequenceGEOSCoordSeq_copyFromBuffer_r (GEOSContextHandle_t handle, const double *buf, unsigned int size, int hasZ, int hasM)
 
GEOSCoordSequenceGEOSCoordSeq_copyFromArrays_r (GEOSContextHandle_t handle, const double *x, const double *y, const double *z, const double *m, unsigned int size)
 
int GEOSCoordSeq_copyToBuffer_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
 
int GEOSCoordSeq_copyToArrays_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
 
GEOSCoordSequenceGEOSCoordSeq_clone_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s)
 
void GEOSCoordSeq_destroy_r (GEOSContextHandle_t handle, GEOSCoordSequence *s)
 
int GEOSCoordSeq_setX_r (GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
 
int GEOSCoordSeq_setY_r (GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
 
int GEOSCoordSeq_setZ_r (GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
 
int GEOSCoordSeq_setXY_r (GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y)
 
int GEOSCoordSeq_setXYZ_r (GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
 
int GEOSCoordSeq_setOrdinate_r (GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
 
int GEOSCoordSeq_getX_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
 
int GEOSCoordSeq_getY_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
 
int GEOSCoordSeq_getZ_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
 
int GEOSCoordSeq_getXY_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
 
int GEOSCoordSeq_getXYZ_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
 
int GEOSCoordSeq_getOrdinate_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
 
int GEOSCoordSeq_getSize_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *size)
 
int GEOSCoordSeq_getDimensions_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *dims)
 
int GEOSCoordSeq_isCCW_r (GEOSContextHandle_t handle, const GEOSCoordSequence *s, char *is_ccw)
 
double GEOSProject_r (GEOSContextHandle_t handle, const GEOSGeometry *line, const GEOSGeometry *point)
 
GEOSGeometryGEOSInterpolate_r (GEOSContextHandle_t handle, const GEOSGeometry *line, double d)
 
double GEOSProjectNormalized_r (GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *p)
 
GEOSGeometryGEOSInterpolateNormalized_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
 
GEOSGeometryGEOSBuffer_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs)
 
GEOSBufferParamsGEOSBufferParams_create_r (GEOSContextHandle_t handle)
 
void GEOSBufferParams_destroy_r (GEOSContextHandle_t handle, GEOSBufferParams *parms)
 
int GEOSBufferParams_setEndCapStyle_r (GEOSContextHandle_t handle, GEOSBufferParams *p, int style)
 
int GEOSBufferParams_setJoinStyle_r (GEOSContextHandle_t handle, GEOSBufferParams *p, int joinStyle)
 
int GEOSBufferParams_setMitreLimit_r (GEOSContextHandle_t handle, GEOSBufferParams *p, double mitreLimit)
 
int GEOSBufferParams_setQuadrantSegments_r (GEOSContextHandle_t handle, GEOSBufferParams *p, int quadSegs)
 
int GEOSBufferParams_setSingleSided_r (GEOSContextHandle_t handle, GEOSBufferParams *p, int singleSided)
 
GEOSGeometryGEOSBufferWithParams_r (GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSBufferParams *p, double width)
 
GEOSGeometryGEOSBufferWithStyle_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
 
GEOSGeometryGEOSDensify_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
 
GEOSGeometryGEOSOffsetCurve_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
 
GEOSGeometryGEOSGeom_createPoint_r (GEOSContextHandle_t handle, GEOSCoordSequence *s)
 
GEOSGeometryGEOSGeom_createPointFromXY_r (GEOSContextHandle_t handle, double x, double y)
 
GEOSGeometryGEOSGeom_createEmptyPoint_r (GEOSContextHandle_t handle)
 
GEOSGeometryGEOSGeom_createLinearRing_r (GEOSContextHandle_t handle, GEOSCoordSequence *s)
 
GEOSGeometryGEOSGeom_createLineString_r (GEOSContextHandle_t handle, GEOSCoordSequence *s)
 
GEOSGeometryGEOSGeom_createEmptyLineString_r (GEOSContextHandle_t handle)
 
GEOSGeometryGEOSGeom_createEmptyPolygon_r (GEOSContextHandle_t handle)
 
GEOSGeometryGEOSGeom_createPolygon_r (GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
 
GEOSGeometryGEOSGeom_createCollection_r (GEOSContextHandle_t handle, int type, GEOSGeometry **geoms, unsigned int ngeoms)
 
GEOSGeometry ** GEOSGeom_releaseCollection_r (GEOSContextHandle_t handle, GEOSGeometry *collection, unsigned int *ngeoms)
 
GEOSGeometryGEOSGeom_createEmptyCollection_r (GEOSContextHandle_t handle, int type)
 
GEOSGeometryGEOSGeom_createRectangle_r (GEOSContextHandle_t handle, double xmin, double ymin, double xmax, double ymax)
 
GEOSGeometryGEOSGeom_clone_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSGeom_createCircularString_r (GEOSContextHandle_t handle, GEOSCoordSequence *s)
 
GEOSGeometryGEOSGeom_createEmptyCircularString_r (GEOSContextHandle_t handle)
 
GEOSGeometryGEOSGeom_createCompoundCurve_r (GEOSContextHandle_t handle, GEOSGeometry **curves, unsigned int ncurves)
 
GEOSGeometryGEOSGeom_createEmptyCompoundCurve_r (GEOSContextHandle_t handle)
 
GEOSGeometryGEOSGeom_createCurvePolygon_r (GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
 
GEOSGeometryGEOSGeom_createEmptyCurvePolygon_r (GEOSContextHandle_t handle)
 
void GEOSGeom_destroy_r (GEOSContextHandle_t handle, GEOSGeometry *g)
 
GEOSGeometryGEOSCoverageUnion_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSCoverageIsValid_r (GEOSContextHandle_t extHandle, const GEOSGeometry *input, double gapWidth, GEOSGeometry **output)
 
GEOSGeometryGEOSCoverageSimplifyVW_r (GEOSContextHandle_t extHandle, const GEOSGeometry *input, double tolerance, int preserveBoundary)
 
GEOSGeometryGEOSEnvelope_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSIntersection_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
GEOSGeometryGEOSIntersectionPrec_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
 
GEOSGeometryGEOSConvexHull_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSConcaveHull_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
 
GEOSGeometryGEOSConcaveHullByLength_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
 
GEOSGeometryGEOSPolygonHullSimplify_r (GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
 
GEOSGeometryGEOSPolygonHullSimplifyMode_r (GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
 
GEOSGeometryGEOSConcaveHullOfPolygons_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
 
GEOSGeometryGEOSMinimumRotatedRectangle_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSMaximumInscribedCircle_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
 
GEOSGeometryGEOSLargestEmptyCircle_r (GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *boundary, double tolerance)
 
GEOSGeometryGEOSMinimumWidth_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSMinimumClearanceLine_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSMinimumClearance_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *distance)
 
GEOSGeometryGEOSDifference_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
GEOSGeometryGEOSDifferencePrec_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
 
GEOSGeometryGEOSSymDifference_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
GEOSGeometryGEOSSymDifferencePrec_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
 
GEOSGeometryGEOSBoundary_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSUnion_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
GEOSGeometryGEOSUnionPrec_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
 
GEOSGeometryGEOSUnaryUnion_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSUnaryUnionPrec_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize)
 
GEOSGeometryGEOSDisjointSubsetUnion_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSPointOnSurface_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSGetCentroid_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSMinimumBoundingCircle_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *radius, GEOSGeometry **center)
 
GEOSGeometryGEOSNode_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSClipByRect_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
 
GEOSGeometryGEOSPolygonize_r (GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
 
GEOSGeometryGEOSPolygonize_valid_r (GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngems)
 
GEOSGeometryGEOSPolygonizer_getCutEdges_r (GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
 
GEOSGeometryGEOSPolygonize_full_r (GEOSContextHandle_t handle, const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalidRings)
 
GEOSGeometryGEOSBuildArea_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSLineMerge_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSLineMergeDirected_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSLineSubstring_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double start_fraction, double end_fdraction)
 
GEOSGeometryGEOSReverse_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSSimplify_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
 
GEOSGeometryGEOSTopologyPreserveSimplify_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
 
GEOSGeometryGEOSGeom_extractUniquePoints_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSSharedPaths_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
GEOSGeometryGEOSSnap_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
 
GEOSGeometryGEOSDelaunayTriangulation_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance, int onlyEdges)
 
GEOSGeometryGEOSConstrainedDelaunayTriangulation_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSVoronoiDiagram_r (GEOSContextHandle_t extHandle, const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
 
int GEOSSegmentIntersection_r (GEOSContextHandle_t extHandle, double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
 
char GEOSDisjoint_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSTouches_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSIntersects_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSCrosses_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSWithin_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSContains_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSOverlaps_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSEquals_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSEqualsExact_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
 
char GEOSEqualsIdentical_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSCovers_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSCoveredBy_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
const GEOSPreparedGeometryGEOSPrepare_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
void GEOSPreparedGeom_destroy_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *g)
 
char GEOSPreparedContains_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedContainsXY_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
 
char GEOSPreparedContainsProperly_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedCoveredBy_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedCovers_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedCrosses_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedDisjoint_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedIntersects_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedIntersectsXY_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
 
char GEOSPreparedOverlaps_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedTouches_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedWithin_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char * GEOSPreparedRelate_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedRelatePattern_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, const char *im)
 
GEOSCoordSequenceGEOSPreparedNearestPoints_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
int GEOSPreparedDistance_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
 
char GEOSPreparedDistanceWithin_r (GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
 
GEOSSTRtreeGEOSSTRtree_create_r (GEOSContextHandle_t handle, size_t nodeCapacity)
 
int GEOSSTRtree_build_r (GEOSContextHandle_t handle, GEOSSTRtree *tree)
 
void GEOSSTRtree_insert_r (GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
 
void GEOSSTRtree_query_r (GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
 
const GEOSGeometryGEOSSTRtree_nearest_r (GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *geom)
 
const void * GEOSSTRtree_nearest_generic_r (GEOSContextHandle_t handle, GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
 
void GEOSSTRtree_iterate_r (GEOSContextHandle_t handle, GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
 
char GEOSSTRtree_remove_r (GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
 
void GEOSSTRtree_destroy_r (GEOSContextHandle_t handle, GEOSSTRtree *tree)
 
char GEOSisEmpty_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
char GEOSisSimple_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
char GEOSisRing_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
char GEOSHasZ_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
char GEOSHasM_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
char GEOSisClosed_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
char GEOSRelatePattern_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, const char *imPattern)
 
char * GEOSRelate_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSRelatePatternMatch_r (GEOSContextHandle_t handle, const char *intMatrix, const char *imPattern)
 
char * GEOSRelateBoundaryNodeRule_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
 
char GEOSisValid_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
char * GEOSisValidReason_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
char GEOSisValidDetail_r (GEOSContextHandle_t handle, const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
 
GEOSMakeValidParamsGEOSMakeValidParams_create_r (GEOSContextHandle_t extHandle)
 
void GEOSMakeValidParams_destroy_r (GEOSContextHandle_t handle, GEOSMakeValidParams *parms)
 
int GEOSMakeValidParams_setKeepCollapsed_r (GEOSContextHandle_t handle, GEOSMakeValidParams *p, int style)
 
int GEOSMakeValidParams_setMethod_r (GEOSContextHandle_t handle, GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
 
GEOSGeometryGEOSMakeValid_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSMakeValidWithParams_r (GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
 
GEOSGeometryGEOSRemoveRepeatedPoints_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
 
char * GEOSGeomType_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSGeomTypeId_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSGetSRID_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
void GEOSSetSRID_r (GEOSContextHandle_t handle, GEOSGeometry *g, int SRID)
 
void * GEOSGeom_getUserData_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
void GEOSGeom_setUserData_r (GEOSContextHandle_t handle, GEOSGeometry *g, void *userData)
 
int GEOSGetNumGeometries_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
const GEOSGeometryGEOSGetGeometryN_r (GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
 
int GEOSNormalize_r (GEOSContextHandle_t handle, GEOSGeometry *g)
 
int GEOSOrientPolygons_r (GEOSContextHandle_t handle, GEOSGeometry *g, int exteriorCW)
 
GEOSGeometryGEOSGeom_setPrecision_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize, int flags)
 
double GEOSGeom_getPrecision_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSGetNumInteriorRings_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSGeomGetNumPoints_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSGeomGetX_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *x)
 
int GEOSGeomGetY_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *y)
 
int GEOSGeomGetZ_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *z)
 
int GEOSGeomGetM_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *m)
 
const GEOSGeometryGEOSGetInteriorRingN_r (GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
 
const GEOSGeometryGEOSGetExteriorRing_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSGetNumCoordinates_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
const GEOSCoordSequenceGEOSGeom_getCoordSeq_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSGeom_getDimensions_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSGeom_getCoordinateDimension_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSGeom_getXMin_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
 
int GEOSGeom_getYMin_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
 
int GEOSGeom_getXMax_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
 
int GEOSGeom_getYMax_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
 
int GEOSGeom_getExtent_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
 
GEOSGeometryGEOSGeomGetPointN_r (GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
 
GEOSGeometryGEOSGeomGetStartPoint_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSGeometryGEOSGeomGetEndPoint_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOSArea_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *area)
 
int GEOSLength_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
 
int GEOSDistance_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
 
char GEOSDistanceWithin_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
 
int GEOSDistanceIndexed_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
 
int GEOSHausdorffDistance_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
 
int GEOSHausdorffDistanceDensify_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
 
int GEOSFrechetDistance_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
 
int GEOSFrechetDistanceDensify_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
 
int GEOSHilbertCode_r (GEOSContextHandle_t handle, const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
 
int GEOSGeomGetLength_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
 
GEOSCoordSequenceGEOSNearestPoints_r (GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
 
GEOSGeometryGEOSGeom_transformXY_r (GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
 
GEOSGeometryGEOSGeom_transformXYZ_r (GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYZCallback callback, void *userdata)
 
int GEOSOrientationIndex_r (GEOSContextHandle_t handle, double Ax, double Ay, double Bx, double By, double Px, double Py)
 
GEOSWKTReaderGEOSWKTReader_create_r (GEOSContextHandle_t handle)
 
void GEOSWKTReader_destroy_r (GEOSContextHandle_t handle, GEOSWKTReader *reader)
 
GEOSGeometryGEOSWKTReader_read_r (GEOSContextHandle_t handle, GEOSWKTReader *reader, const char *wkt)
 
void GEOSWKTReader_setFixStructure_r (GEOSContextHandle_t handle, GEOSWKTReader *reader, char doFix)
 
GEOSWKTWriterGEOSWKTWriter_create_r (GEOSContextHandle_t handle)
 
void GEOSWKTWriter_destroy_r (GEOSContextHandle_t handle, GEOSWKTWriter *writer)
 
char * GEOSWKTWriter_write_r (GEOSContextHandle_t handle, GEOSWKTWriter *writer, const GEOSGeometry *g)
 
void GEOSWKTWriter_setTrim_r (GEOSContextHandle_t handle, GEOSWKTWriter *writer, char trim)
 
void GEOSWKTWriter_setRoundingPrecision_r (GEOSContextHandle_t handle, GEOSWKTWriter *writer, int precision)
 
void GEOSWKTWriter_setOutputDimension_r (GEOSContextHandle_t handle, GEOSWKTWriter *writer, int dim)
 
int GEOSWKTWriter_getOutputDimension_r (GEOSContextHandle_t handle, GEOSWKTWriter *writer)
 
void GEOSWKTWriter_setOld3D_r (GEOSContextHandle_t handle, GEOSWKTWriter *writer, int useOld3D)
 
int GEOS_printDouble (double d, unsigned int precision, char *result)
 
GEOSWKBReaderGEOSWKBReader_create_r (GEOSContextHandle_t handle)
 
void GEOSWKBReader_destroy_r (GEOSContextHandle_t handle, GEOSWKBReader *reader)
 
void GEOSWKBReader_setFixStructure_r (GEOSContextHandle_t handle, GEOSWKBReader *reader, char doFix)
 
GEOSGeometryGEOSWKBReader_read_r (GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
 
GEOSGeometryGEOSWKBReader_readHEX_r (GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *hex, size_t size)
 
GEOSWKBWriterGEOSWKBWriter_create_r (GEOSContextHandle_t handle)
 
void GEOSWKBWriter_destroy_r (GEOSContextHandle_t handle, GEOSWKBWriter *writer)
 
unsigned char * GEOSWKBWriter_write_r (GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
 
unsigned char * GEOSWKBWriter_writeHEX_r (GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
 
int GEOSWKBWriter_getOutputDimension_r (GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
 
void GEOSWKBWriter_setOutputDimension_r (GEOSContextHandle_t handle, GEOSWKBWriter *writer, int newDimension)
 
int GEOSWKBWriter_getByteOrder_r (GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
 
void GEOSWKBWriter_setByteOrder_r (GEOSContextHandle_t handle, GEOSWKBWriter *writer, int byteOrder)
 
int GEOSWKBWriter_getFlavor_r (GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
 
void GEOSWKBWriter_setFlavor_r (GEOSContextHandle_t handle, GEOSWKBWriter *writer, int flavor)
 
char GEOSWKBWriter_getIncludeSRID_r (GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
 
void GEOSWKBWriter_setIncludeSRID_r (GEOSContextHandle_t handle, GEOSWKBWriter *writer, const char writeSRID)
 
GEOSGeoJSONReaderGEOSGeoJSONReader_create_r (GEOSContextHandle_t handle)
 
void GEOSGeoJSONReader_destroy_r (GEOSContextHandle_t handle, GEOSGeoJSONReader *reader)
 
GEOSGeometryGEOSGeoJSONReader_readGeometry_r (GEOSContextHandle_t handle, GEOSGeoJSONReader *reader, const char *geojson)
 
GEOSGeoJSONWriterGEOSGeoJSONWriter_create_r (GEOSContextHandle_t handle)
 
void GEOSGeoJSONWriter_destroy_r (GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
 
char * GEOSGeoJSONWriter_writeGeometry_r (GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
 
void GEOSFree_r (GEOSContextHandle_t handle, void *buffer)
 
const char * GEOSversion (void)
 
Library and Memory Management

Functions to initialize and tear down the library, and deallocate memory.

void initGEOS (GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
 
void finishGEOS (void)
 
void GEOSFree (void *buffer)
 
Coordinate Sequences

A GEOSCoordSequence is an ordered list of coordinates. Coordinates are 2 (XY), 3 (XYZ or XYM), or 4 (XYZM) dimensional.

GEOSCoordSequenceGEOSCoordSeq_create (unsigned int size, unsigned int dims)
 
GEOSCoordSequenceGEOSCoordSeq_copyFromBuffer (const double *buf, unsigned int size, int hasZ, int hasM)
 
GEOSCoordSequenceGEOSCoordSeq_copyFromArrays (const double *x, const double *y, const double *z, const double *m, unsigned int size)
 
int GEOSCoordSeq_copyToBuffer (const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
 
int GEOSCoordSeq_copyToArrays (const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
 
GEOSCoordSequenceGEOSCoordSeq_clone (const GEOSCoordSequence *s)
 
void GEOSCoordSeq_destroy (GEOSCoordSequence *s)
 
int GEOSCoordSeq_setX (GEOSCoordSequence *s, unsigned int idx, double val)
 
int GEOSCoordSeq_setY (GEOSCoordSequence *s, unsigned int idx, double val)
 
int GEOSCoordSeq_setZ (GEOSCoordSequence *s, unsigned int idx, double val)
 
int GEOSCoordSeq_setXY (GEOSCoordSequence *s, unsigned int idx, double x, double y)
 
int GEOSCoordSeq_setXYZ (GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
 
int GEOSCoordSeq_setOrdinate (GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
 
int GEOSCoordSeq_getX (const GEOSCoordSequence *s, unsigned int idx, double *val)
 
int GEOSCoordSeq_getY (const GEOSCoordSequence *s, unsigned int idx, double *val)
 
int GEOSCoordSeq_getZ (const GEOSCoordSequence *s, unsigned int idx, double *val)
 
int GEOSCoordSeq_getXY (const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
 
int GEOSCoordSeq_getXYZ (const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
 
int GEOSCoordSeq_getOrdinate (const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
 
int GEOSCoordSeq_getSize (const GEOSCoordSequence *s, unsigned int *size)
 
int GEOSCoordSeq_getDimensions (const GEOSCoordSequence *s, unsigned int *dims)
 
int GEOSCoordSeq_isCCW (const GEOSCoordSequence *s, char *is_ccw)
 
Geometry Constructors

Functions for creating and destroying geometries. Created geometries must be freed with GEOSGeom_destroy().

GEOSGeometryGEOSGeom_createPoint (GEOSCoordSequence *s)
 
GEOSGeometryGEOSGeom_createPointFromXY (double x, double y)
 
GEOSGeometryGEOSGeom_createEmptyPoint (void)
 
GEOSGeometryGEOSGeom_createLinearRing (GEOSCoordSequence *s)
 
GEOSGeometryGEOSGeom_createLineString (GEOSCoordSequence *s)
 
GEOSGeometryGEOSGeom_createEmptyLineString (void)
 
GEOSGeometryGEOSGeom_createEmptyPolygon (void)
 
GEOSGeometryGEOSGeom_createPolygon (GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
 
GEOSGeometryGEOSGeom_createCircularString (GEOSCoordSequence *s)
 
GEOSGeometryGEOSGeom_createEmptyCircularString ()
 
GEOSGeometryGEOSGeom_createCompoundCurve (GEOSGeometry **curves, unsigned int ncurves)
 
GEOSGeometryGEOSGeom_createEmptyCompoundCurve ()
 
GEOSGeometryGEOSGeom_createCurvePolygon (GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
 
GEOSGeometryGEOSGeom_createEmptyCurvePolygon ()
 
GEOSGeometryGEOSGeom_createCollection (int type, GEOSGeometry **geoms, unsigned int ngeoms)
 
GEOSGeometry ** GEOSGeom_releaseCollection (GEOSGeometry *collection, unsigned int *ngeoms)
 
GEOSGeometryGEOSGeom_createEmptyCollection (int type)
 
GEOSGeometryGEOSGeom_createRectangle (double xmin, double ymin, double xmax, double ymax)
 
GEOSGeometryGEOSGeom_clone (const GEOSGeometry *g)
 
void GEOSGeom_destroy (GEOSGeometry *g)
 
Geometry Accessors

Functions to provide information about geometries.

char * GEOSGeomType (const GEOSGeometry *g)
 
int GEOSGeomTypeId (const GEOSGeometry *g)
 
int GEOSGetSRID (const GEOSGeometry *g)
 
void * GEOSGeom_getUserData (const GEOSGeometry *g)
 
int GEOSGetNumGeometries (const GEOSGeometry *g)
 
const GEOSGeometryGEOSGetGeometryN (const GEOSGeometry *g, int n)
 
double GEOSGeom_getPrecision (const GEOSGeometry *g)
 
int GEOSGetNumInteriorRings (const GEOSGeometry *g)
 
int GEOSGeomGetNumPoints (const GEOSGeometry *g)
 
int GEOSGeomGetX (const GEOSGeometry *g, double *x)
 
int GEOSGeomGetY (const GEOSGeometry *g, double *y)
 
int GEOSGeomGetZ (const GEOSGeometry *g, double *z)
 
int GEOSGeomGetM (const GEOSGeometry *g, double *m)
 
const GEOSGeometryGEOSGetInteriorRingN (const GEOSGeometry *g, int n)
 
const GEOSGeometryGEOSGetExteriorRing (const GEOSGeometry *g)
 
int GEOSGetNumCoordinates (const GEOSGeometry *g)
 
const GEOSCoordSequenceGEOSGeom_getCoordSeq (const GEOSGeometry *g)
 
int GEOSGeom_getDimensions (const GEOSGeometry *g)
 
int GEOSGeom_getCoordinateDimension (const GEOSGeometry *g)
 
int GEOSGeom_getXMin (const GEOSGeometry *g, double *value)
 
int GEOSGeom_getYMin (const GEOSGeometry *g, double *value)
 
int GEOSGeom_getXMax (const GEOSGeometry *g, double *value)
 
int GEOSGeom_getYMax (const GEOSGeometry *g, double *value)
 
int GEOSGeom_getExtent (const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
 
GEOSGeometryGEOSGeomGetPointN (const GEOSGeometry *g, int n)
 
GEOSGeometryGEOSGeomGetStartPoint (const GEOSGeometry *g)
 
GEOSGeometryGEOSGeomGetEndPoint (const GEOSGeometry *g)
 
char GEOSisEmpty (const GEOSGeometry *g)
 
char GEOSisRing (const GEOSGeometry *g)
 
char GEOSHasZ (const GEOSGeometry *g)
 
char GEOSHasM (const GEOSGeometry *g)
 
char GEOSisClosed (const GEOSGeometry *g)
 
Geometry Mutators

Functions to change geometry information or content.

void GEOSSetSRID (GEOSGeometry *g, int SRID)
 
void GEOSGeom_setUserData (GEOSGeometry *g, void *userData)
 
int GEOSNormalize (GEOSGeometry *g)
 
int GEOSOrientPolygons (GEOSGeometry *g, int exteriorCW)
 
Validation

Functions to check and create topological validity, simplicity and geometric quality.

char GEOSisSimple (const GEOSGeometry *g)
 
char GEOSisValid (const GEOSGeometry *g)
 
char * GEOSisValidReason (const GEOSGeometry *g)
 
char GEOSisValidDetail (const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
 
GEOSGeometryGEOSMakeValid (const GEOSGeometry *g)
 
GEOSGeometryGEOSMakeValidWithParams (const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
 
GEOSMakeValidParamsGEOSMakeValidParams_create (void)
 
void GEOSMakeValidParams_destroy (GEOSMakeValidParams *parms)
 
int GEOSMakeValidParams_setMethod (GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
 
int GEOSMakeValidParams_setKeepCollapsed (GEOSMakeValidParams *p, int keepCollapsed)
 
int GEOSMinimumClearance (const GEOSGeometry *g, double *d)
 
GEOSGeometryGEOSMinimumClearanceLine (const GEOSGeometry *g)
 
GEOSGeometryGEOSRemoveRepeatedPoints (const GEOSGeometry *g, double tolerance)
 
Geometry Metrics

Functions to compute geometry metrics.

int GEOSArea (const GEOSGeometry *g, double *area)
 
int GEOSLength (const GEOSGeometry *g, double *length)
 
int GEOSGeomGetLength (const GEOSGeometry *g, double *length)
 
Distance

Functions to compute distances between geometries using various distance metrics.

int GEOSDistance (const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
 
char GEOSDistanceWithin (const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
 
int GEOSDistanceIndexed (const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
 
GEOSCoordSequenceGEOSNearestPoints (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
int GEOSHausdorffDistance (const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
 
int GEOSHausdorffDistanceDensify (const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
 
int GEOSFrechetDistance (const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
 
int GEOSFrechetDistanceDensify (const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
 
Linear Referencing

Functions to operate on LineStrings using locations specified by distance along the line.

double GEOSProject (const GEOSGeometry *line, const GEOSGeometry *point)
 
GEOSGeometryGEOSInterpolate (const GEOSGeometry *line, double d)
 
double GEOSProjectNormalized (const GEOSGeometry *line, const GEOSGeometry *point)
 
GEOSGeometryGEOSInterpolateNormalized (const GEOSGeometry *line, double proportion)
 
Overlay

Functions for computing boolean set-theoretic values from overlay pairs of geometries.

GEOSGeometryGEOSIntersection (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
GEOSGeometryGEOSIntersectionPrec (const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
 
GEOSGeometryGEOSDifference (const GEOSGeometry *ga, const GEOSGeometry *gb)
 
GEOSGeometryGEOSDifferencePrec (const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
 
GEOSGeometryGEOSSymDifference (const GEOSGeometry *ga, const GEOSGeometry *gb)
 
GEOSGeometryGEOSSymDifferencePrec (const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
 
GEOSGeometryGEOSUnion (const GEOSGeometry *ga, const GEOSGeometry *gb)
 
GEOSGeometryGEOSUnionPrec (const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
 
GEOSGeometryGEOSUnaryUnion (const GEOSGeometry *g)
 
GEOSGeometryGEOSUnaryUnionPrec (const GEOSGeometry *g, double gridSize)
 
GEOSGeometryGEOSDisjointSubsetUnion (const GEOSGeometry *g)
 
GEOSGeometryGEOSClipByRect (const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
 
GEOSGeometryGEOSSharedPaths (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
Buffer and Offset Curves

Functions for creating distance-based buffers and offset curves.

GEOSGeometryGEOSBuffer (const GEOSGeometry *g, double width, int quadsegs)
 
GEOSBufferParamsGEOSBufferParams_create (void)
 
void GEOSBufferParams_destroy (GEOSBufferParams *parms)
 
int GEOSBufferParams_setEndCapStyle (GEOSBufferParams *p, int style)
 
int GEOSBufferParams_setJoinStyle (GEOSBufferParams *p, int joinStyle)
 
int GEOSBufferParams_setMitreLimit (GEOSBufferParams *p, double mitreLimit)
 
int GEOSBufferParams_setQuadrantSegments (GEOSBufferParams *p, int quadSegs)
 
int GEOSBufferParams_setSingleSided (GEOSBufferParams *p, int singleSided)
 
GEOSGeometryGEOSBufferWithParams (const GEOSGeometry *g, const GEOSBufferParams *p, double width)
 
GEOSGeometryGEOSBufferWithStyle (const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
 
GEOSGeometryGEOSOffsetCurve (const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
 
Coverages

Functions to work with coverages represented by lists of polygons that exactly share edge geometry.

GEOSGeometryGEOSCoverageUnion (const GEOSGeometry *g)
 
int GEOSCoverageIsValid (const GEOSGeometry *input, double gapWidth, GEOSGeometry **invalidEdges)
 
GEOSGeometryGEOSCoverageSimplifyVW (const GEOSGeometry *input, double tolerance, int preserveBoundary)
 
Noding and Polygonization

Functions computing noding of lines, and forming noded lines into polygons.

GEOSGeometryGEOSNode (const GEOSGeometry *g)
 
GEOSGeometryGEOSPolygonize (const GEOSGeometry *const geoms[], unsigned int ngeoms)
 
GEOSGeometryGEOSPolygonize_valid (const GEOSGeometry *const geoms[], unsigned int ngeoms)
 
GEOSGeometryGEOSPolygonizer_getCutEdges (const GEOSGeometry *const geoms[], unsigned int ngeoms)
 
GEOSGeometryGEOSPolygonize_full (const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalid)
 
GEOSGeometryGEOSBuildArea (const GEOSGeometry *g)
 
Processing

Functions performing various geometric processes.

GEOSGeometryGEOSDensify (const GEOSGeometry *g, double tolerance)
 
GEOSGeometryGEOSLineMerge (const GEOSGeometry *g)
 
GEOSGeometryGEOSLineMergeDirected (const GEOSGeometry *g)
 
GEOSGeometryGEOSLineSubstring (const GEOSGeometry *g, double start_fraction, double end_fraction)
 
GEOSGeometryGEOSReverse (const GEOSGeometry *g)
 
GEOSGeometryGEOSSimplify (const GEOSGeometry *g, double tolerance)
 
GEOSGeometryGEOSTopologyPreserveSimplify (const GEOSGeometry *g, double tolerance)
 
GEOSGeometryGEOSGeom_extractUniquePoints (const GEOSGeometry *g)
 
int GEOSHilbertCode (const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
 
GEOSGeometryGEOSGeom_transformXY (const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
 
GEOSGeometryGEOSGeom_transformXYZ (const GEOSGeometry *g, GEOSTransformXYZCallback callback, void *userdata)
 
GEOSGeometryGEOSSnap (const GEOSGeometry *input, const GEOSGeometry *snap_target, double tolerance)
 
GEOSGeometryGEOSGeom_setPrecision (const GEOSGeometry *g, double gridSize, int flags)
 
Spatial Predicates

Functions computing binary spatial predicates using the DE-9IM topology model.

char GEOSDisjoint (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSTouches (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSIntersects (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSCrosses (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSWithin (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSContains (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSOverlaps (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSEquals (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSCovers (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSCoveredBy (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSEqualsExact (const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
 
char GEOSEqualsIdentical (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSRelatePattern (const GEOSGeometry *g1, const GEOSGeometry *g2, const char *imPattern)
 
char * GEOSRelate (const GEOSGeometry *g1, const GEOSGeometry *g2)
 
char GEOSRelatePatternMatch (const char *intMatrix, const char *imPattern)
 
char * GEOSRelateBoundaryNodeRule (const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
 
Prepared Geometry

A GEOSPreparedGeometry is a wrapper around GEOSGeometry that includes spatial indexing on the edges of the geometry. This allows spatial predicates to evaluate much faster, so for cases in which the same base geometry will be used over and over again for predicate tests, wrapping it in a GEOSPreparedGeometry is a best practice.

Prepared Geometry supports some binary spatial predicates and distance calculations.

const GEOSPreparedGeometryGEOSPrepare (const GEOSGeometry *g)
 
void GEOSPreparedGeom_destroy (const GEOSPreparedGeometry *g)
 
char GEOSPreparedContains (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedContainsXY (const GEOSPreparedGeometry *pg1, double x, double y)
 
char GEOSPreparedContainsProperly (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedCoveredBy (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedCovers (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedCrosses (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedDisjoint (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedIntersects (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedIntersectsXY (const GEOSPreparedGeometry *pg1, double x, double y)
 
char GEOSPreparedOverlaps (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedTouches (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedWithin (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char * GEOSPreparedRelate (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
char GEOSPreparedRelatePattern (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, const char *imPattern)
 
GEOSCoordSequenceGEOSPreparedNearestPoints (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
 
int GEOSPreparedDistance (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
 
char GEOSPreparedDistanceWithin (const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
 
STRtree

A GEOSSTRtree is a R-tree spatial index structure for two dimensional data. It uses the Sort-Tile-Recursive packing algorithm.

GEOSSTRtreeGEOSSTRtree_create (size_t nodeCapacity)
 
int GEOSSTRtree_build (GEOSSTRtree *tree)
 
void GEOSSTRtree_insert (GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
 
void GEOSSTRtree_query (GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
 
const GEOSGeometryGEOSSTRtree_nearest (GEOSSTRtree *tree, const GEOSGeometry *geom)
 
const void * GEOSSTRtree_nearest_generic (GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
 
void GEOSSTRtree_iterate (GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
 
char GEOSSTRtree_remove (GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
 
void GEOSSTRtree_destroy (GEOSSTRtree *tree)
 
Geometric Algorithms

Functions to compute basic geometric algorithms.

int GEOSSegmentIntersection (double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
 
int GEOSOrientationIndex (double Ax, double Ay, double Bx, double By, double Px, double Py)
 
WKT Reader and Writer

Functions for doing WKT I/O.

GEOSWKTReaderGEOSWKTReader_create (void)
 
void GEOSWKTReader_destroy (GEOSWKTReader *reader)
 
GEOSGeometryGEOSWKTReader_read (GEOSWKTReader *reader, const char *wkt)
 
void GEOSWKTReader_setFixStructure (GEOSWKTReader *reader, char doFix)
 
GEOSWKTWriterGEOSWKTWriter_create (void)
 
void GEOSWKTWriter_destroy (GEOSWKTWriter *writer)
 
char * GEOSWKTWriter_write (GEOSWKTWriter *writer, const GEOSGeometry *g)
 
void GEOSWKTWriter_setTrim (GEOSWKTWriter *writer, char trim)
 
void GEOSWKTWriter_setRoundingPrecision (GEOSWKTWriter *writer, int precision)
 
void GEOSWKTWriter_setOutputDimension (GEOSWKTWriter *writer, int dim)
 
int GEOSWKTWriter_getOutputDimension (GEOSWKTWriter *writer)
 
void GEOSWKTWriter_setOld3D (GEOSWKTWriter *writer, int useOld3D)
 
WKB Reader and Writer

Functions for doing WKB I/O.

GEOSWKBReaderGEOSWKBReader_create (void)
 
void GEOSWKBReader_destroy (GEOSWKBReader *reader)
 
void GEOSWKBReader_setFixStructure (GEOSWKBReader *reader, char doFix)
 
GEOSGeometryGEOSWKBReader_read (GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
 
GEOSGeometryGEOSWKBReader_readHEX (GEOSWKBReader *reader, const unsigned char *hex, size_t size)
 
GEOSWKBWriterGEOSWKBWriter_create (void)
 
void GEOSWKBWriter_destroy (GEOSWKBWriter *writer)
 
unsigned char * GEOSWKBWriter_write (GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
 
unsigned char * GEOSWKBWriter_writeHEX (GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
 
int GEOSWKBWriter_getOutputDimension (const GEOSWKBWriter *writer)
 
void GEOSWKBWriter_setOutputDimension (GEOSWKBWriter *writer, int newDimension)
 
int GEOSWKBWriter_getByteOrder (const GEOSWKBWriter *writer)
 
void GEOSWKBWriter_setByteOrder (GEOSWKBWriter *writer, int byteOrder)
 
int GEOSWKBWriter_getFlavor (const GEOSWKBWriter *writer)
 
void GEOSWKBWriter_setFlavor (GEOSWKBWriter *writer, int flavor)
 
char GEOSWKBWriter_getIncludeSRID (const GEOSWKBWriter *writer)
 
void GEOSWKBWriter_setIncludeSRID (GEOSWKBWriter *writer, const char writeSRID)
 
GeoJSON Reader and Writer

Functions for doing GeoJSON I/O.

GEOSGeoJSONReaderGEOSGeoJSONReader_create (void)
 
void GEOSGeoJSONReader_destroy (GEOSGeoJSONReader *reader)
 
GEOSGeometryGEOSGeoJSONReader_readGeometry (GEOSGeoJSONReader *reader, const char *geojson)
 
GEOSGeoJSONWriterGEOSGeoJSONWriter_create (void)
 
void GEOSGeoJSONWriter_destroy (GEOSGeoJSONWriter *writer)
 
char * GEOSGeoJSONWriter_writeGeometry (GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
 
DEPRECATED

Deprecated Functions. See description for replacement.

GEOSGeometryGEOSSingleSidedBuffer (const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
 
GEOSGeometryGEOSSingleSidedBuffer_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
 
GEOSContextHandle_t initGEOS_r (GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
 
void finishGEOS_r (GEOSContextHandle_t handle)
 
GEOSGeometryGEOSGeomFromWKT_r (GEOSContextHandle_t handle, const char *wkt)
 
char * GEOSGeomToWKT_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
int GEOS_getWKBOutputDims_r (GEOSContextHandle_t handle)
 
int GEOS_setWKBOutputDims_r (GEOSContextHandle_t handle, int newDims)
 
int GEOS_getWKBByteOrder_r (GEOSContextHandle_t handle)
 
int GEOS_setWKBByteOrder_r (GEOSContextHandle_t handle, int byteOrder)
 
GEOSGeometryGEOSGeomFromWKB_buf_r (GEOSContextHandle_t handle, const unsigned char *wkb, size_t size)
 
unsigned char * GEOSGeomToWKB_buf_r (GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
 
GEOSGeometryGEOSGeomFromHEX_buf_r (GEOSContextHandle_t handle, const unsigned char *hex, size_t size)
 
unsigned char * GEOSGeomToHEX_buf_r (GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
 
GEOSGeometryGEOSGeomFromWKT (const char *wkt)
 
char * GEOSGeomToWKT (const GEOSGeometry *g)
 
int GEOS_getWKBOutputDims (void)
 
int GEOS_setWKBOutputDims (int newDims)
 
int GEOS_getWKBByteOrder (void)
 
int GEOS_setWKBByteOrder (int byteOrder)
 
GEOSGeometryGEOSGeomFromWKB_buf (const unsigned char *wkb, size_t size)
 
unsigned char * GEOSGeomToWKB_buf (const GEOSGeometry *g, size_t *size)
 
GEOSGeometryGEOSGeomFromHEX_buf (const unsigned char *hex, size_t size)
 
unsigned char * GEOSGeomToHEX_buf (const GEOSGeometry *g, size_t *size)
 
GEOSGeometryGEOSUnionCascaded (const GEOSGeometry *g)
 
GEOSGeometryGEOSUnionCascaded_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 

Geometric Constructions

Functions for computing geometric constructions.

enum  GEOSPolygonHullParameterModes { GEOSHULL_PARAM_VERTEX_RATIO = 1 , GEOSHULL_PARAM_AREA_RATIO = 2 }
 
enum  GEOSVoronoiFlags { GEOS_VORONOI_ONLY_EDGES = 1 , GEOS_VORONOI_PRESERVE_ORDER = 2 }
 
GEOSGeometryGEOSEnvelope (const GEOSGeometry *g)
 
GEOSGeometryGEOSBoundary (const GEOSGeometry *g)
 
GEOSGeometryGEOSConvexHull (const GEOSGeometry *g)
 
GEOSGeometryGEOSConcaveHull (const GEOSGeometry *g, double ratio, unsigned int allowHoles)
 
GEOSGeometryGEOSConcaveHullByLength (const GEOSGeometry *g, double length, unsigned int allowHoles)
 
GEOSGeometryGEOSConcaveHullOfPolygons (const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
 
GEOSGeometryGEOSPolygonHullSimplify (const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
 
GEOSGeometryGEOSPolygonHullSimplifyMode (const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
 
GEOSGeometryGEOSMinimumRotatedRectangle (const GEOSGeometry *g)
 
GEOSGeometryGEOSMaximumInscribedCircle (const GEOSGeometry *g, double tolerance)
 
GEOSGeometryGEOSLargestEmptyCircle (const GEOSGeometry *obstacles, const GEOSGeometry *boundary, double tolerance)
 
GEOSGeometryGEOSMinimumWidth (const GEOSGeometry *g)
 
GEOSGeometryGEOSPointOnSurface (const GEOSGeometry *g)
 
GEOSGeometryGEOSGetCentroid (const GEOSGeometry *g)
 
GEOSGeometryGEOSMinimumBoundingCircle (const GEOSGeometry *g, double *radius, GEOSGeometry **center)
 
GEOSGeometryGEOSDelaunayTriangulation (const GEOSGeometry *g, double tolerance, int onlyEdges)
 
GEOSGeometryGEOSConstrainedDelaunayTriangulation (const GEOSGeometry *g)
 
GEOSGeometryGEOSVoronoiDiagram (const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
 

Detailed Description

C API for the GEOS geometry algorithms library.

The C API is the supported API for using GEOS in your application/library/etc. The C API is kept stable, and deprecated function signatures are kept available over a long time period to allow transition time. While the C++ API is available, it may change at any time, and the ABI may not be stable between versions.

Important programming notes:

Typedef Documentation

◆ GEOSBufferParams

typedef struct GEOSBufParams_t GEOSBufferParams

Parameter object for buffering.

See also
GEOSBufferParams_create()
GEOSBufferParams_destroy()

◆ GEOSContextHandle_t

typedef struct GEOSContextHandle_HS* GEOSContextHandle_t

Type returned by GEOS_init_r(), for use with the functions ending in _r (the reentrant API).

Contexts must only be used from a single thread at a time.

◆ GEOSCoordSequence

typedef struct GEOSCoordSeq_t GEOSCoordSequence

Coordinate sequence type representing fixed-size lists of coordinates. Contains the list of vertices defining the location of a GEOSGeometry.

See also
GEOSCoordSeq_create()
GEOSCoordSeq_destroy()

◆ GEOSDistanceCallback

typedef int(* GEOSDistanceCallback) (const void *item1, const void *item2, double *distance, void *userdata)

Callback function for use in spatial index nearest neighbor calculations. Allows custom distance to be calculated between items in the index. Is passed two items, and sets the calculated distance between the items into the distance pointer. Extra data for the calculation can be passed via the userdata.

Parameters
item1first of the pair of items to calculate distance between
item2second of the pair of items to calculate distance between
distancethe distance between the items here
userdataextra data for the calculation
Returns
1 if distance calculation succeeds, 0 otherwise
See also
GEOSSTRtree_nearest_generic
GEOSSTRtree_iterate

◆ GEOSGeoJSONReader

typedef struct GEOSGeoJSONReader_t GEOSGeoJSONReader

Reader object to read GeoJSON format and construct a Geometry.

See also
GEOSGeoJSONReader_create
GEOSGeoJSONReader_create_r

◆ GEOSGeoJSONWriter

typedef struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter

Writer object to turn a Geometry into GeoJSON.

See also
GEOSGeoJSONReader_create
GEOSGeoJSONReader_create_r

◆ GEOSGeometry

typedef struct GEOSGeom_t GEOSGeometry

The generic type for a geometry. A geometry can be a Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, or GeometryCollection. The geometry type can be read with GEOSGeomTypeId. Most functions in GEOS have GEOSGeometry * as either a parameter or a return type.

See also
GEOSGeom_createPoint
GEOSGeom_createLineString
GEOSGeom_createPolygon
GEOSGeom_createCollection
GEOSGeom_destroy

◆ GEOSInterruptCallback

typedef void() GEOSInterruptCallback(void)

Callback function for use in interruption. The callback will be invoked before checking for interruption, so can be used to request it.

See also
GEOS_interruptRegisterCallback
GEOS_interruptRequest
GEOS_interruptCancel

◆ GEOSMakeValidParams

typedef struct GEOSMakeValidParams_t GEOSMakeValidParams

Parameter object for validity enforcement.

See also
GEOSMakeValidParams_create()
GEOSMakeValidParams_destroy()

◆ GEOSMessageHandler

typedef void(* GEOSMessageHandler) (GEOS_PRINTF_FORMAT const char *fmt,...) GEOS_PRINTF_FORMAT_ATTR(1

Callback function for passing GEOS error messages to parent process.

Set the GEOSMessageHandler function for error and notice messages using initGEOS or initGEOS_r.

Parameters
fmtthe message format template

◆ GEOSMessageHandler_r

typedef void(*) typedef void(* GEOSMessageHandler_r) (const char *message, void *userdata)

A GEOS message handler function.

Parameters
messagethe message contents
userdatathe user data pointer that was passed to GEOS when registering this message handler.
See also
GEOSContext_setErrorMessageHandler
GEOSContext_setNoticeMessageHandler

◆ GEOSPreparedGeometry

typedef struct GEOSPrepGeom_t GEOSPreparedGeometry

Prepared geometry type.

See also
GEOSPrepare()
GEOSPreparedGeom_destroy()

◆ GEOSQueryCallback

typedef void(* GEOSQueryCallback) (void *item, void *userdata)

Callback function for use in spatial index search calls. Pass into the query function and handle query results as the index returns them.

See also
GEOSSTRtree_query

◆ GEOSSTRtree

typedef struct GEOSSTRtree_t GEOSSTRtree

◆ GEOSTransformXYCallback

typedef int(* GEOSTransformXYCallback) (double *x, double *y, void *userdata)

Callback function for use in GEOSGeom_transformXY. Allows custom function to be applied to x and y values for each coordinate in a geometry. Z and M values are unchanged by this function. Extra data for the calculation can be passed via the userdata.

Parameters
xcoordinate value to be updated
ycoordinate value to be updated
userdataextra data for the calculation
Returns
1 if calculation succeeded, 0 on failure

◆ GEOSTransformXYZCallback

typedef int(* GEOSTransformXYZCallback) (double *x, double *y, double *z, void *userdata)

Callback function for use in GEOSGeom_transformXYZ. Allows custom function to be applied to x, y and z values for each coordinate in a geometry. M values are unchanged by this function. Extra data for the calculation can be passed via the userdata.

Parameters
xcoordinate value to be updated
ycoordinate value to be updated
zcoordinate value to be updated
userdataextra data for the calculation
Returns
1 if calculation succeeded, 0 on failure

◆ GEOSWKBReader

typedef struct GEOSWKBReader_t GEOSWKBReader

Reader object to read Well-Known Binary (WKB) format and construct Geometry.

See also
GEOSWKBReader_create
GEOSWKBReader_create_r

◆ GEOSWKBWriter

typedef struct GEOSWKBWriter_t GEOSWKBWriter

Writer object to turn Geometry into Well-Known Binary (WKB).

See also
GEOSWKBWriter_create
GEOSWKBWriter_create_r

◆ GEOSWKTReader

typedef struct GEOSWKTReader_t GEOSWKTReader

Reader object to read Well-Known Text (WKT) format and construct Geometry.

See also
GEOSWKTReader_create
GEOSWKTReader_create_r

◆ GEOSWKTWriter

typedef struct GEOSWKTWriter_t GEOSWKTWriter

Writer object to turn Geometry into Well-Known Text (WKT).

See also
GEOSWKTWriter_create
GEOSWKTWriter_create_r

Enumeration Type Documentation

◆ GEOSBufCapStyles

Cap styles control the ends of buffered lines.

See also
GEOSBuffer
Enumerator
GEOSBUF_CAP_ROUND 

End is rounded, with end point of original line in the centre of the round cap.

GEOSBUF_CAP_FLAT 

End is flat, with end point of original line at the end of the buffer

GEOSBUF_CAP_SQUARE 

End is flat, with end point of original line in the middle of a square enclosing that point

◆ GEOSBufJoinStyles

Join styles control the buffer shape at bends in a line.

See also
GEOSBuffer
Enumerator
GEOSBUF_JOIN_ROUND 

Join is rounded, essentially each line is terminated in a round cap. Form round corner.

GEOSBUF_JOIN_MITRE 

Join is flat, with line between buffer edges, through the join point. Forms flat corner.

GEOSBUF_JOIN_BEVEL 

Join is the point at which the two buffer edges intersect. Forms sharp corner.

◆ GEOSGeomTypes

Geometry type number, used by functions returning or consuming geometry types.

See also
GEOSGeomType
GEOSGeomTypeId
Enumerator
GEOS_POINT 

Point

GEOS_LINESTRING 

Linestring

GEOS_LINEARRING 

Linear ring, used within polygons

GEOS_POLYGON 

Polygon

GEOS_MULTIPOINT 

Multipoint, a homogeneous collection of points

GEOS_MULTILINESTRING 

Multilinestring, a homogeneous collection of linestrings

GEOS_MULTIPOLYGON 

Multipolygon, a homogeneous collection of polygons

GEOS_GEOMETRYCOLLECTION 

Geometry collection, a heterogeneous collection of geometry

◆ GEOSMakeValidMethods

Algorithm to use when repairing invalid geometries.

See also
GEOSMakeValidWithParams
Enumerator
GEOS_MAKE_VALID_LINEWORK 

Original method, combines all rings into a set of noded lines and then extracts valid polygons from that linework.

GEOS_MAKE_VALID_STRUCTURE 

Structured method, first makes all rings valid then merges shells and subtracts holes from shells to generate valid result. Assumes that holes and shells are correctly categorized.

◆ GEOSPolygonHullParameterModes

Controls the behavior of the GEOSPolygonHullSimplify parameter.

Enumerator
GEOSHULL_PARAM_VERTEX_RATIO 

Fraction of input vertices retained

GEOSHULL_PARAM_AREA_RATIO 

Ratio of simplified hull area to input area

◆ GEOSPrecisionRules

Controls the behavior of GEOSGeom_setPrecision() when altering the precision of a geometry.

Enumerator
GEOS_PREC_VALID_OUTPUT 

The output is always valid. Collapsed geometry elements (including both polygons and lines) are removed.

GEOS_PREC_NO_TOPO 

Precision reduction is performed pointwise. Output geometry may be invalid due to collapse or self-intersection. (This might be better called "GEOS_PREC_POINTWISE" - the current name is historical.)

GEOS_PREC_KEEP_COLLAPSED 

Like the default mode, except that collapsed linear geometry elements are preserved. Collapsed polygonal input elements are removed.

◆ GEOSRelateBoundaryNodeRules

Controls the behavior of the result of GEOSRelate when returning DE9IM results for two geometries.

Enumerator
GEOSRELATE_BNR_MOD2 

See geos::algorithm::BoundaryNodeRule::getBoundaryRuleMod2()

GEOSRELATE_BNR_OGC 

Same as GEOSRELATE_BNR_MOD2

GEOSRELATE_BNR_ENDPOINT 

See geos::algorithm::BoundaryNodeRule::getBoundaryEndPoint()

GEOSRELATE_BNR_MULTIVALENT_ENDPOINT 

See geos::algorithm::BoundaryNodeRule::getBoundaryMultivalentEndPoint()

GEOSRELATE_BNR_MONOVALENT_ENDPOINT 

See geos::algorithm::BoundaryNodeRule::getBoundaryMonovalentEndPoint()

◆ GEOSValidFlags

Change behaviour of validity testing in GEOSisValidDetail

Enumerator
GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE 

Allow self-touching rings to form a hole in a polygon.

◆ GEOSVoronoiFlags

Change behaviour of GEOSVoronoiDiagram

Enumerator
GEOS_VORONOI_ONLY_EDGES 

Return only edges of the Voronoi cells, as a MultiLineString

GEOS_VORONOI_PRESERVE_ORDER 

Preserve order of inputs, such that the nth cell in the result corresponds to the nth vertex in the input. If this cannot be done, such as for inputs that contain repeated points, GEOSVoronoiDiagram will return NULL.

◆ GEOSWKBByteOrders

Well-known binary byte orders used when writing to WKB.

See also
GEOSWKBWriter_setByteOrder
Enumerator
GEOS_WKB_XDR 

Big Endian

GEOS_WKB_NDR 

Little Endian

◆ GEOSWKBFlavors

Well-known binary flavors to use when writing to WKB. ISO flavour is more standard. Extended flavour supports 3D and SRID embedding. GEOS reads both transparently.

See also
GEOSWKBWriter_setFlavor
Enumerator
GEOS_WKB_EXTENDED 

Extended

GEOS_WKB_ISO 

ISO

Function Documentation

◆ finishGEOS()

void finishGEOS ( void  )

For non-reentrant code, call when all GEOS operations are complete, cleans up global resources.

Since
3.1

◆ finishGEOS_r()

void finishGEOS_r ( GEOSContextHandle_t  handle)
Deprecated:
in 3.5.0, replaced by GEOS_finish_r()

◆ GEOS_finish_r()

void GEOS_finish_r ( GEOSContextHandle_t  handle)

Free the memory associated with a GEOSContextHandle_t when you are finished calling GEOS functions.

Parameters
handleto be freed
Since
3.5

◆ GEOS_getWKBByteOrder()

int GEOS_getWKBByteOrder ( void  )

◆ GEOS_getWKBByteOrder_r()

int GEOS_getWKBByteOrder_r ( GEOSContextHandle_t  handle)

◆ GEOS_getWKBOutputDims()

int GEOS_getWKBOutputDims ( void  )

◆ GEOS_getWKBOutputDims_r()

int GEOS_getWKBOutputDims_r ( GEOSContextHandle_t  handle)

◆ GEOS_init_r()

GEOSContextHandle_t GEOS_init_r ( void  )

Allocate and initialize a context. Pass this context as the first argument when calling other *_r functions. Contexts must only be used from a single thread at a time.

Returns
a new GEOS context.
Since
3.5

◆ GEOS_interruptCancel()

void GEOS_interruptCancel ( void  )

Cancel a pending interruption request

Since
3.4

◆ GEOS_interruptRegisterCallback()

GEOSInterruptCallback* GEOS_interruptRegisterCallback ( GEOSInterruptCallback cb)

Register a function to be called when processing is interrupted.

Parameters
cbCallback function to invoke
Returns
the previously configured callback
See also
GEOSInterruptCallback
Since
3.4

◆ GEOS_interruptRequest()

void GEOS_interruptRequest ( void  )

Request safe interruption of operations

Since
3.4

◆ GEOS_printDouble()

int GEOS_printDouble ( double  d,
unsigned int  precision,
char *  result 
)

Print the shortest representation of a double. Non-zero absolute values that are <1e-4 and >=1e+17 are formatted using scientific notation, and other values are formatted with positional notation with precision used for the max digits after decimal point.

Parameters
dThe number to format.
precisionThe desired precision.
resultThe buffer to write the result to, with a suggested size 28.
Returns
the length of the written string.

◆ GEOS_setWKBByteOrder()

int GEOS_setWKBByteOrder ( int  byteOrder)

◆ GEOS_setWKBByteOrder_r()

int GEOS_setWKBByteOrder_r ( GEOSContextHandle_t  handle,
int  byteOrder 
)

◆ GEOS_setWKBOutputDims()

int GEOS_setWKBOutputDims ( int  newDims)

◆ GEOS_setWKBOutputDims_r()

int GEOS_setWKBOutputDims_r ( GEOSContextHandle_t  handle,
int  newDims 
)

◆ GEOSArea()

int GEOSArea ( const GEOSGeometry g,
double *  area 
)

Calculate the area of a geometry.

Parameters
[in]gInput geometry
[out]areaPointer to be filled in with area result
Returns
1 on success, 0 on exception.
Since
2.2

◆ GEOSArea_r()

int GEOSArea_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  area 
)
See also
GEOSArea

◆ GEOSBoundary()

GEOSGeometry* GEOSBoundary ( const GEOSGeometry g)

Returns the "boundary" of a geometry, as defined by the DE9IM:

  • the boundary of a polygon is the linear rings dividing the exterior from the interior
  • the boundary of a linestring is the end points
  • the boundary of a point is the point
Parameters
gThe input geometry
Returns
A newly allocated geometry of the boundary. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
2.2

◆ GEOSBoundary_r()

GEOSGeometry* GEOSBoundary_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSBoundary

◆ GEOSBuffer()

GEOSGeometry* GEOSBuffer ( const GEOSGeometry g,
double  width,
int  quadsegs 
)

Buffer a geometry.

Parameters
gThe input geometry to be buffered.
widthThe distance by which to expand the geometry (or contract) if the value is negative.
quadsegsThe number of segments per quadrant to generate. More segments provides a more "precise" buffer at the expense of size.
Returns
A GEOSGeometry of the buffered result. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
2.2

◆ GEOSBuffer_r()

GEOSGeometry* GEOSBuffer_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  width,
int  quadsegs 
)
See also
GEOSBuffer

◆ GEOSBufferParams_create()

GEOSBufferParams* GEOSBufferParams_create ( void  )

Create a default GEOSBufferParams object for controlling the shape of buffered generated by GEOSBuffer.

Returns
A newly allocated GEOSBufferParams. NULL on exception. Caller is responsible for freeing with GEOSBufferParams_destroy().
Since
3.3

◆ GEOSBufferParams_create_r()

GEOSBufferParams* GEOSBufferParams_create_r ( GEOSContextHandle_t  handle)

◆ GEOSBufferParams_destroy()

void GEOSBufferParams_destroy ( GEOSBufferParams parms)

Destroy a GEOSBufferParams and free all associated memory.

Parameters
parmsThe object to destroy.
Since
3.3

◆ GEOSBufferParams_destroy_r()

void GEOSBufferParams_destroy_r ( GEOSContextHandle_t  handle,
GEOSBufferParams parms 
)

◆ GEOSBufferParams_setEndCapStyle()

int GEOSBufferParams_setEndCapStyle ( GEOSBufferParams p,
int  style 
)

Set the end cap type of a GEOSBufferParams to the desired style, which must be one enumerated in GEOSBufCapStyles.

Returns
0 on exception, 1 on success.
Since
3.3

◆ GEOSBufferParams_setEndCapStyle_r()

int GEOSBufferParams_setEndCapStyle_r ( GEOSContextHandle_t  handle,
GEOSBufferParams p,
int  style 
)

◆ GEOSBufferParams_setJoinStyle()

int GEOSBufferParams_setJoinStyle ( GEOSBufferParams p,
int  joinStyle 
)

Set the join type of a GEOSBufferParams to the desired style, which must be one enumerated in GEOSBufJoinStyles.

Returns
0 on exception, 1 on success.
Since
3.3

◆ GEOSBufferParams_setJoinStyle_r()

int GEOSBufferParams_setJoinStyle_r ( GEOSContextHandle_t  handle,
GEOSBufferParams p,
int  joinStyle 
)

◆ GEOSBufferParams_setMitreLimit()

int GEOSBufferParams_setMitreLimit ( GEOSBufferParams p,
double  mitreLimit 
)

Set the mitre limit of a GEOSBufferParams to the desired size. For acute angles, a mitre join can extend very very far from the input geometry, which is probably not desired. The mitre limit places an upper bound on that.

Parameters
pThe GEOSBufferParams to operate on
mitreLimitThe limit to set
Returns
0 on exception, 1 on success.
Since
3.3

◆ GEOSBufferParams_setMitreLimit_r()

int GEOSBufferParams_setMitreLimit_r ( GEOSContextHandle_t  handle,
GEOSBufferParams p,
double  mitreLimit 
)

◆ GEOSBufferParams_setQuadrantSegments()

int GEOSBufferParams_setQuadrantSegments ( GEOSBufferParams p,
int  quadSegs 
)

Set the number of segments to use to stroke each quadrant of circular arcs generated by the buffering process. More segments means a smoother output, but with larger size.

Parameters
pThe GEOSBufferParams to operate on
quadSegsNumber of segments per quadrant
Returns
0 on exception, 1 on success.
Since
3.3

◆ GEOSBufferParams_setQuadrantSegments_r()

int GEOSBufferParams_setQuadrantSegments_r ( GEOSContextHandle_t  handle,
GEOSBufferParams p,
int  quadSegs 
)

◆ GEOSBufferParams_setSingleSided()

int GEOSBufferParams_setSingleSided ( GEOSBufferParams p,
int  singleSided 
)

Sets whether the computed buffer should be single-sided. A single-sided buffer is constructed on only one side of each input line.

See also
geos::operation::buffer::BufferParameters::setSingleSided
Parameters
pThe GEOSBufferParams to operate on
singleSidedSet to 1 for single-sided output 0 otherwise
Returns
0 on exception, 1 on success.
Since
3.3

◆ GEOSBufferParams_setSingleSided_r()

int GEOSBufferParams_setSingleSided_r ( GEOSContextHandle_t  handle,
GEOSBufferParams p,
int  singleSided 
)

◆ GEOSBufferWithParams()

GEOSGeometry* GEOSBufferWithParams ( const GEOSGeometry g,
const GEOSBufferParams p,
double  width 
)

Generates a buffer using the special parameters in the GEOSBufferParams

Parameters
gThe geometry to buffer
pThe parameters to apply to the buffer process
widthThe buffer distance
Returns
The buffered geometry, or NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.3

◆ GEOSBufferWithParams_r()

GEOSGeometry* GEOSBufferWithParams_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
const GEOSBufferParams p,
double  width 
)

◆ GEOSBufferWithStyle()

GEOSGeometry* GEOSBufferWithStyle ( const GEOSGeometry g,
double  width,
int  quadsegs,
int  endCapStyle,
int  joinStyle,
double  mitreLimit 
)

Generate a buffer using the provided style parameters.

Parameters
gThe geometry to buffer
widthWidth of the buffer
quadsegsNumber of segments per quadrant
endCapStyleSee GEOSBufCapStyles
joinStyleSee GEOSBufJoinStyles
mitreLimitSee GEOSBufferParams_setMitreLimit
Returns
The buffered geometry, or NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.2

◆ GEOSBufferWithStyle_r()

GEOSGeometry* GEOSBufferWithStyle_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  width,
int  quadsegs,
int  endCapStyle,
int  joinStyle,
double  mitreLimit 
)

◆ GEOSBuildArea()

GEOSGeometry* GEOSBuildArea ( const GEOSGeometry g)

Perform a polygonization using all the linework, assuming that rings contained within rings are empty holes, rather then extra polygons.

Parameters
gThe input linework
Returns
The polygonal output Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::polygonize::BuildArea
Since
3.8

◆ GEOSBuildArea_r()

GEOSGeometry* GEOSBuildArea_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSBuildArea

◆ GEOSClipByRect()

GEOSGeometry* GEOSClipByRect ( const GEOSGeometry g,
double  xmin,
double  ymin,
double  xmax,
double  ymax 
)

Intersection optimized for a rectangular clipping polygon. Supposed to be faster than using GEOSIntersection(). Not guaranteed to return valid results.

Parameters
gThe input geometry to be clipped
xminLeft bound of clipping rectangle
yminLower bound of clipping rectangle
xmaxRight bound of clipping rectangle
ymaxUpper bound of clipping rectangle
Returns
The clipped geometry or NULL on exception Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::intersection::RectangleIntersection
Since
3.5

◆ GEOSClipByRect_r()

GEOSGeometry* GEOSClipByRect_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  xmin,
double  ymin,
double  xmax,
double  ymax 
)
See also
GEOSClipByRect

◆ GEOSConcaveHull()

GEOSGeometry* GEOSConcaveHull ( const GEOSGeometry g,
double  ratio,
unsigned int  allowHoles 
)

Returns a "concave hull" of a geometry. A concave hull is a polygon which contains all the points of the input, but is a better approximation than the convex hull to the area occupied by the input. Frequently used to convert a multi-point into a polygonal area. that contains all the points in the input Geometry.

A set of points has a sequence of hulls of increasing concaveness, determined by a numeric target parameter. The concave hull is constructed by removing the longest outer edges of the Delaunay Triangulation of the space between the polygons, until the target criterion parameter is reached. This can be expressed as a ratio between the lengths of the longest and shortest edges. 1 produces the convex hull; 0 produces a hull with maximum concaveness

Parameters
gThe input geometry
ratioThe edge length ratio value, between 0 and 1.
allowHolesWhen non-zero, the polygonal output may contain holes.
Returns
A newly allocated geometry of the concave hull. NULL on exception.

Caller is responsible for freeing with GEOSGeom_destroy().

See also
geos::algorithm::hull::ConcaveHull
GEOSConcaveHullByLength
GEOSConcaveHullOfPolygons
GEOSConvexHull
Since
3.11

◆ GEOSConcaveHull_r()

GEOSGeometry* GEOSConcaveHull_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  ratio,
unsigned int  allowHoles 
)
See also
GEOSConcaveHull

◆ GEOSConcaveHullByLength()

GEOSGeometry* GEOSConcaveHullByLength ( const GEOSGeometry g,
double  length,
unsigned int  allowHoles 
)

Returns a "concave hull" of a geometry. A concave hull is a polygon which contains all the points of the input, but is a better approximation than the convex hull to the area occupied by the input. Frequently used to convert a multi-point into a polygonal area. that contains all the points in the input Geometry.

A set of points has a sequence of hulls of increasing concaveness, determined by a numeric target parameter. The concave hull is constructed by removing the longest outer edges of the Delaunay Triangulation of the space between the polygons, until the specified maximm edge length is reached. A large value produces the convex hull, 0 produces the hull of maximum concaveness.

Parameters
gThe input geometry
lengthThe maximum edge length (0 or greater)
allowHolesWhen non-zero, the polygonal output may contain holes.
Returns
A newly allocated geometry of the concave hull. NULL on exception.

Caller is responsible for freeing with GEOSGeom_destroy().

See also
geos::algorithm::hull::ConcaveHull
GEOSConcaveHull
GEOSConcaveHullOfPolygons
GEOSConvexHull
Since
3.12

◆ GEOSConcaveHullByLength_r()

GEOSGeometry* GEOSConcaveHullByLength_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  ratio,
unsigned int  allowHoles 
)

◆ GEOSConcaveHullOfPolygons()

GEOSGeometry* GEOSConcaveHullOfPolygons ( const GEOSGeometry g,
double  lengthRatio,
unsigned int  isTight,
unsigned int  isHolesAllowed 
)

Constructs a concave hull of a set of polygons, respecting the polygons as constraints.

A concave hull is a (possibly) non-convex polygon containing all the input polygons. The computed hull "fills the gap" between the polygons, and does not intersect their interior. A set of polygons has a sequence of hulls of increasing concaveness, determined by a numeric target parameter.

The concave hull is constructed by removing the longest outer edges of the Delaunay Triangulation of the space between the polygons, until the target criterion parameter is reached. The "Maximum Edge Length" parameter limits the length of the longest edge between polygons to be no larger than this value. This can be expressed as a ratio between the lengths of the longest and shortest edges.

The input polygons must be a valid MultiPolygon (i.e. they must be non-overlapping).

Parameters
gthe valid MultiPolygon geometry to process
lengthRatiospecifies the Maximum Edge Length as a fraction of the difference between the longest and shortest edge lengths between the polygons. This normalizes the Maximum Edge Length to be scale-free. A value of 1 produces the convex hull; a value of 0 produces the original polygons.
isHolesAllowedis the concave hull allowed to contain holes?
isTightdoes the hull follow the outer boundaries of the input polygons.
Returns
A newly allocated geometry of the concave hull. NULL on exception.

Caller is responsible for freeing with GEOSGeom_destroy().

See also
geos::algorithm::hull::ConcaveHullOfPolygons
GEOSConcaveHull
GEOSConvexHull
Since
3.11

◆ GEOSConcaveHullOfPolygons_r()

GEOSGeometry* GEOSConcaveHullOfPolygons_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  lengthRatio,
unsigned int  isTight,
unsigned int  isHolesAllowed 
)

◆ GEOSConstrainedDelaunayTriangulation()

GEOSGeometry* GEOSConstrainedDelaunayTriangulation ( const GEOSGeometry g)

Return a constrained Delaunay triangulation of the vertices of the given polygon(s). For non-polygonal inputs, returns an empty geometry collection.

Parameters
gthe input geometry whose rings will be used as input
Returns
A newly allocated geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.10

◆ GEOSConstrainedDelaunayTriangulation_r()

GEOSGeometry* GEOSConstrainedDelaunayTriangulation_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSContains()

char GEOSContains ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Tests if geometry g2 is completely within g1, but not wholly contained in the boundary of g1.

Parameters
g1Input geometry
g2Input geometry
Returns
1 on true, 0 on false, 2 on exception
See also
geos::geom::Geometry::contains
Since
2.2

◆ GEOSContains_r()

char GEOSContains_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSContains

◆ GEOSContext_setErrorHandler_r()

GEOSMessageHandler GEOSContext_setErrorHandler_r ( GEOSContextHandle_t  extHandle,
GEOSMessageHandler  ef 
)

Set the notice handler callback function for run-time error messages.

Parameters
extHandlethe GEOS context from GEOS_init_r
efthe handler callback
Returns
the previously configured message handler or NULL if no message handler was configured
Since
3.3

◆ GEOSContext_setErrorMessageHandler_r()

GEOSMessageHandler_r GEOSContext_setErrorMessageHandler_r ( GEOSContextHandle_t  extHandle,
GEOSMessageHandler_r  ef,
void *  userData 
)

Sets an error message handler on the given GEOS context.

Parameters
extHandlethe GEOS context
efthe message handler
userDataoptional user data pointer that will be passed to the message handler
Returns
the previously configured message handler or NULL if no message handler was configured
Since
3.5

◆ GEOSContext_setNoticeHandler_r()

GEOSMessageHandler GEOSContext_setNoticeHandler_r ( GEOSContextHandle_t  extHandle,
GEOSMessageHandler  nf 
)

Set the notice handler callback function for run-time notice messages.

Parameters
extHandlethe context returned by GEOS_init_r.
nfthe handler callback
Returns
the previously configured message handler or NULL if no message handler was configured
Since
3.3

◆ GEOSContext_setNoticeMessageHandler_r()

GEOSMessageHandler_r GEOSContext_setNoticeMessageHandler_r ( GEOSContextHandle_t  extHandle,
GEOSMessageHandler_r  nf,
void *  userData 
)

Sets a notice message handler on the given GEOS context.

Parameters
extHandlethe GEOS context from GEOS_init_r
nfthe message handler
userDataoptional user data pointer that will be passed to the message handler
Returns
the previously configured message handler or NULL if no message handler was configured
Since
3.5

◆ GEOSConvexHull()

GEOSGeometry* GEOSConvexHull ( const GEOSGeometry g)

Returns convex hull of a geometry. The smallest convex Geometry that contains all the points in the input Geometry

Parameters
gThe input geometry
Returns
A newly allocated geometry of the convex hull. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::overlayng::OverlayNG
Since
2.2

◆ GEOSConvexHull_r()

GEOSGeometry* GEOSConvexHull_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSConvexHull

◆ GEOSCoordSeq_clone()

GEOSCoordSequence* GEOSCoordSeq_clone ( const GEOSCoordSequence s)

Clone a coordinate sequence.

Parameters
sthe coordinate sequence to clone
Returns
a copy of the coordinate sequence or NULL on exception
Since
2.2

◆ GEOSCoordSeq_clone_r()

GEOSCoordSequence* GEOSCoordSeq_clone_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s 
)

◆ GEOSCoordSeq_copyFromArrays()

GEOSCoordSequence* GEOSCoordSeq_copyFromArrays ( const double *  x,
const double *  y,
const double *  z,
const double *  m,
unsigned int  size 
)

Create a coordinate sequence by copying from arrays of doubles

Parameters
xarray of x coordinates
yarray of y coordinates
zarray of z coordinates, or NULL
marray of m coordinates, or NULL
sizelength of each array
Returns
the sequence or NULL on exception
Since
3.10

◆ GEOSCoordSeq_copyFromArrays_r()

GEOSCoordSequence* GEOSCoordSeq_copyFromArrays_r ( GEOSContextHandle_t  handle,
const double *  x,
const double *  y,
const double *  z,
const double *  m,
unsigned int  size 
)

◆ GEOSCoordSeq_copyFromBuffer()

GEOSCoordSequence* GEOSCoordSeq_copyFromBuffer ( const double *  buf,
unsigned int  size,
int  hasZ,
int  hasM 
)

Create a coordinate sequence by copying from an interleaved buffer of doubles (e.g., XYXY or XYZXYZ)

Parameters
bufpointer to buffer
sizenumber of coordinates in the sequence
hasZdoes buffer have Z values?
hasMdoes buffer have M values?
Returns
the sequence or NULL on exception
Since
3.10

◆ GEOSCoordSeq_copyFromBuffer_r()

GEOSCoordSequence* GEOSCoordSeq_copyFromBuffer_r ( GEOSContextHandle_t  handle,
const double *  buf,
unsigned int  size,
int  hasZ,
int  hasM 
)

◆ GEOSCoordSeq_copyToArrays()

int GEOSCoordSeq_copyToArrays ( const GEOSCoordSequence s,
double *  x,
double *  y,
double *  z,
double *  m 
)

Copy the contents of a coordinate sequence to arrays of doubles

Parameters
ssequence to copy
xarray to which x values should be copied
yarray to which y values should be copied
zarray to which z values should be copied, or NULL
marray to which m values should be copied, or NULL
Returns
1 on success, 0 on error
Since
3.10

◆ GEOSCoordSeq_copyToArrays_r()

int GEOSCoordSeq_copyToArrays_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
double *  x,
double *  y,
double *  z,
double *  m 
)

◆ GEOSCoordSeq_copyToBuffer()

int GEOSCoordSeq_copyToBuffer ( const GEOSCoordSequence s,
double *  buf,
int  hasZ,
int  hasM 
)

Copy the contents of a coordinate sequence to an interleaved buffer of doubles (e.g., XYXY or XYZXYZ)

Parameters
ssequence to copy
bufbuffer to which coordinates should be copied
hasZcopy Z values to buffer?
hasMcopy M values to buffer?
Returns
1 on success, 0 on error
Since
3.10

◆ GEOSCoordSeq_copyToBuffer_r()

int GEOSCoordSeq_copyToBuffer_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
double *  buf,
int  hasZ,
int  hasM 
)

◆ GEOSCoordSeq_create()

GEOSCoordSequence* GEOSCoordSeq_create ( unsigned int  size,
unsigned int  dims 
)

Create a coordinate sequence.

Parameters
sizenumber of coordinates in the sequence
dimsdimensionality of the coordinates (2, 3 or 4)
Returns
the sequence or NULL on exception
Since
2.2

◆ GEOSCoordSeq_create_r()

GEOSCoordSequence* GEOSCoordSeq_create_r ( GEOSContextHandle_t  handle,
unsigned int  size,
unsigned int  dims 
)

◆ GEOSCoordSeq_destroy()

void GEOSCoordSeq_destroy ( GEOSCoordSequence s)

Destroy a coordinate sequence, freeing all memory.

Parameters
sthe coordinate sequence to destroy
Since
2.2

◆ GEOSCoordSeq_destroy_r()

void GEOSCoordSeq_destroy_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s 
)

◆ GEOSCoordSeq_getDimensions()

int GEOSCoordSeq_getDimensions ( const GEOSCoordSequence s,
unsigned int *  dims 
)

Get dimension info from a coordinate sequence.

Parameters
[in]sthe coordinate sequence
[out]dimspointer where dimension value will be placed
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_getDimensions_r()

int GEOSCoordSeq_getDimensions_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
unsigned int *  dims 
)

◆ GEOSCoordSeq_getOrdinate()

int GEOSCoordSeq_getOrdinate ( const GEOSCoordSequence s,
unsigned int  idx,
unsigned int  dim,
double *  val 
)

Read Nth ordinate value from a coordinate sequence.

Parameters
[in]sthe coordinate sequence
[in]idxthe index of the coordinate to alter, zero based
[in]dimthe dimension number of the ordinate to read, zero based
[out]valpointer where ordinate value will be placed
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_getOrdinate_r()

int GEOSCoordSeq_getOrdinate_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
unsigned int  idx,
unsigned int  dim,
double *  val 
)

◆ GEOSCoordSeq_getSize()

int GEOSCoordSeq_getSize ( const GEOSCoordSequence s,
unsigned int *  size 
)

Get size info from a coordinate sequence.

Parameters
[in]sthe coordinate sequence
[out]sizepointer where size value will be placed
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_getSize_r()

int GEOSCoordSeq_getSize_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
unsigned int *  size 
)

◆ GEOSCoordSeq_getX()

int GEOSCoordSeq_getX ( const GEOSCoordSequence s,
unsigned int  idx,
double *  val 
)

Read X ordinate values from a coordinate sequence.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
valpointer where ordinate value will be placed
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_getX_r()

int GEOSCoordSeq_getX_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
unsigned int  idx,
double *  val 
)

◆ GEOSCoordSeq_getXY()

int GEOSCoordSeq_getXY ( const GEOSCoordSequence s,
unsigned int  idx,
double *  x,
double *  y 
)

Read X and Y ordinate values from a coordinate sequence.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
xpointer where ordinate X value will be placed
ypointer where ordinate Y value will be placed
Returns
0 on exception
Since
3.8

◆ GEOSCoordSeq_getXY_r()

int GEOSCoordSeq_getXY_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
unsigned int  idx,
double *  x,
double *  y 
)

◆ GEOSCoordSeq_getXYZ()

int GEOSCoordSeq_getXYZ ( const GEOSCoordSequence s,
unsigned int  idx,
double *  x,
double *  y,
double *  z 
)

Read X and Y ordinate values from a coordinate sequence.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
xpointer where ordinate X value will be placed
ypointer where ordinate Y value will be placed
zpointer where ordinate Z value will be placed
Returns
0 on exception
Since
3.8

◆ GEOSCoordSeq_getXYZ_r()

int GEOSCoordSeq_getXYZ_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
unsigned int  idx,
double *  x,
double *  y,
double *  z 
)

◆ GEOSCoordSeq_getY()

int GEOSCoordSeq_getY ( const GEOSCoordSequence s,
unsigned int  idx,
double *  val 
)

Read Y ordinate values from a coordinate sequence.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
valpointer where ordinate value will be placed
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_getY_r()

int GEOSCoordSeq_getY_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
unsigned int  idx,
double *  val 
)

◆ GEOSCoordSeq_getZ()

int GEOSCoordSeq_getZ ( const GEOSCoordSequence s,
unsigned int  idx,
double *  val 
)

Read Z ordinate values from a coordinate sequence.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
valpointer where ordinate value will be placed
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_getZ_r()

int GEOSCoordSeq_getZ_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
unsigned int  idx,
double *  val 
)

◆ GEOSCoordSeq_isCCW()

int GEOSCoordSeq_isCCW ( const GEOSCoordSequence s,
char *  is_ccw 
)

Check orientation of a coordinate sequence. Closure of the sequence is assumed. Invalid (collapsed) or short (fewer than 4 points) sequences return false.

Parameters
sthe coordinate sequence
is_ccwpointer for ccw value, 1 if counter-clockwise orientation, 0 otherwise
Returns
0 on exception, 1 on success
Since
3.7

◆ GEOSCoordSeq_isCCW_r()

int GEOSCoordSeq_isCCW_r ( GEOSContextHandle_t  handle,
const GEOSCoordSequence s,
char *  is_ccw 
)

◆ GEOSCoordSeq_setOrdinate()

int GEOSCoordSeq_setOrdinate ( GEOSCoordSequence s,
unsigned int  idx,
unsigned int  dim,
double  val 
)

Set Nth ordinate value in a coordinate sequence.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
dimthe dimension number of the ordinate to alter, zero based
valthe value to set the ordinate to
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_setOrdinate_r()

int GEOSCoordSeq_setOrdinate_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s,
unsigned int  idx,
unsigned int  dim,
double  val 
)

◆ GEOSCoordSeq_setX()

int GEOSCoordSeq_setX ( GEOSCoordSequence s,
unsigned int  idx,
double  val 
)

Set X ordinate values in a coordinate sequence.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
valthe value to set the ordinate to
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_setX_r()

int GEOSCoordSeq_setX_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s,
unsigned int  idx,
double  val 
)

◆ GEOSCoordSeq_setXY()

int GEOSCoordSeq_setXY ( GEOSCoordSequence s,
unsigned int  idx,
double  x,
double  y 
)

Set X and Y ordinate values in a coordinate sequence simultaneously.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
xthe value to set the X ordinate to
ythe value to set the Y ordinate to
Returns
0 on exception
Since
3.8

◆ GEOSCoordSeq_setXY_r()

int GEOSCoordSeq_setXY_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s,
unsigned int  idx,
double  x,
double  y 
)

◆ GEOSCoordSeq_setXYZ()

int GEOSCoordSeq_setXYZ ( GEOSCoordSequence s,
unsigned int  idx,
double  x,
double  y,
double  z 
)

Set X, Y and Z ordinate values in a coordinate sequence simultaneously.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
xthe value to set the X ordinate to
ythe value to set the Y ordinate to
zthe value to set the Z ordinate to
Returns
0 on exception
Since
3.8

◆ GEOSCoordSeq_setXYZ_r()

int GEOSCoordSeq_setXYZ_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s,
unsigned int  idx,
double  x,
double  y,
double  z 
)

◆ GEOSCoordSeq_setY()

int GEOSCoordSeq_setY ( GEOSCoordSequence s,
unsigned int  idx,
double  val 
)

Set Y ordinate values in a coordinate sequence.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
valthe value to set the ordinate to
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_setY_r()

int GEOSCoordSeq_setY_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s,
unsigned int  idx,
double  val 
)

◆ GEOSCoordSeq_setZ()

int GEOSCoordSeq_setZ ( GEOSCoordSequence s,
unsigned int  idx,
double  val 
)

Set Z ordinate values in a coordinate sequence.

Parameters
sthe coordinate sequence
idxthe index of the coordinate to alter, zero based
valthe value to set the ordinate to
Returns
0 on exception
Since
2.2

◆ GEOSCoordSeq_setZ_r()

int GEOSCoordSeq_setZ_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s,
unsigned int  idx,
double  val 
)

◆ GEOSCoverageIsValid()

int GEOSCoverageIsValid ( const GEOSGeometry input,
double  gapWidth,
GEOSGeometry **  invalidEdges 
)

Analyze a coverage (represented as a collection of polygonal geometry with exactly matching edge geometry) to find places where the assumption of exactly matching edges is not met.

Parameters
inputThe polygonal coverage to access, stored in a geometry collection. All members must be POLYGON or MULTIPOLYGON.
gapWidthThe maximum width of gaps to detect.
invalidEdgesWhen there are invalidities in the coverage, this pointer will be set with a geometry collection of the same length as the input, with a MULTILINESTRING of the error edges for each invalid polygon, or an EMPTY where the polygon is a valid participant in the coverage. Pass NULL if you do not want the invalid edges returned.
Returns
A value of 1 for a valid coverage, 0 for invalid and 2 for an exception or error. Invalidity includes polygons that overlap, that have gaps smaller than the gapWidth, or non-polygonal entries in the input collection.
Since
3.12

◆ GEOSCoverageIsValid_r()

int GEOSCoverageIsValid_r ( GEOSContextHandle_t  extHandle,
const GEOSGeometry input,
double  gapWidth,
GEOSGeometry **  output 
)

◆ GEOSCoverageSimplifyVW()

GEOSGeometry* GEOSCoverageSimplifyVW ( const GEOSGeometry input,
double  tolerance,
int  preserveBoundary 
)

Operates on a coverage (represented as a list of polygonal geometry with exactly matching edge geometry) to apply a Visvalingam–Whyatt simplification to the edges, reducing complexity in proportion with the provided tolerance, while retaining a valid coverage (no edges will cross or touch after the simplification). Geometries never disappear, but they may be simplified down to just a triangle. Also, some invalid geoms (such as Polygons which have too few non-repeated points) will be returned unchanged. If the input dataset is not a valid coverage due to overlaps, it will still be simplified, but invalid topology such as crossing edges will still be invalid.

Parameters
inputThe polygonal coverage to access, stored in a geometry collection. All members must be POLYGON or MULTIPOLYGON.
toleranceA tolerance parameter in linear units.
preserveBoundaryUse 1 to preserve the outside edges of the coverage without simplification, 0 to allow them to be simplified.
Returns
A collection containing the simplified geometries, or null on error.
Since
3.12

◆ GEOSCoverageSimplifyVW_r()

GEOSGeometry* GEOSCoverageSimplifyVW_r ( GEOSContextHandle_t  extHandle,
const GEOSGeometry input,
double  tolerance,
int  preserveBoundary 
)

◆ GEOSCoverageUnion()

GEOSGeometry* GEOSCoverageUnion ( const GEOSGeometry g)

Optimized union algorithm for polygonal inputs that are correctly noded and do not overlap. It may generate an error (return NULL) for inputs that do not satisfy this constraint, however this is not guaranteed.

Parameters
gThe input geometry
Returns
A geometry that covers all the points of the input geometry. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.8

◆ GEOSCoverageUnion_r()

GEOSGeometry* GEOSCoverageUnion_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSCoveredBy()

char GEOSCoveredBy ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Tests if geometry g1 is covered by g2, which is the case if every point of g1 lies in g2.

Parameters
g1Input geometry
g2Input geometry
Returns
1 on true, 0 on false, 2 on exception
See also
geos::geom::Geometry::coveredBy
Since
3.3

◆ GEOSCoveredBy_r()

char GEOSCoveredBy_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSCoveredBy

◆ GEOSCovers()

char GEOSCovers ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Tests if geometry g1 covers g2, which is the case if every point of g2 lies in g1.

Parameters
g1Input geometry
g2Input geometry
Returns
1 on true, 0 on false, 2 on exception
See also
geos::geom::Geometry::covers
Since
3.3

◆ GEOSCovers_r()

char GEOSCovers_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSCovers

◆ GEOSCrosses()

char GEOSCrosses ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Tests if two geometries interiors intersect but their boundaries do not. Most useful for finding line crosses cases.

Parameters
g1Input geometry
g2Input geometry
Returns
1 on true, 0 on false, 2 on exception
See also
geos::geom::Geometry::crosses
Since
2.2

◆ GEOSCrosses_r()

char GEOSCrosses_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSCrosses

◆ GEOSDelaunayTriangulation()

GEOSGeometry* GEOSDelaunayTriangulation ( const GEOSGeometry g,
double  tolerance,
int  onlyEdges 
)

Return a Delaunay triangulation of the vertices of the given geometry.

Parameters
gthe input geometry whose vertices will be used as "sites"
toleranceoptional snapping tolerance to use for improved robustness
onlyEdgesif non-zero will return a MultiLineString, otherwise it will return a GeometryCollection containing triangular Polygons.
Returns
A newly allocated geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.4

◆ GEOSDelaunayTriangulation_r()

GEOSGeometry* GEOSDelaunayTriangulation_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  tolerance,
int  onlyEdges 
)

◆ GEOSDensify()

GEOSGeometry* GEOSDensify ( const GEOSGeometry g,
double  tolerance 
)

Densifies a geometry using a given distance tolerance. Additional vertices will be added to every line segment that is greater this tolerance; these vertices will evenly subdivide that segment. Only linear components of input geometry are densified.

Parameters
gThe geometry to densify
tolerancethe distance tolerance to densify
Returns
The densified geometry, or NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.10

◆ GEOSDensify_r()

GEOSGeometry* GEOSDensify_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  tolerance 
)
See also
GEOSDensify

◆ GEOSDifference()

GEOSGeometry* GEOSDifference ( const GEOSGeometry ga,
const GEOSGeometry gb 
)

Returns the difference of two geometries A and B: the set of points that fall within A but not within B.

Parameters
gathe base geometry
gbthe geometry to subtract from it
Returns
A newly allocated geometry of the difference. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::overlayng::OverlayNG
Since
2.2

◆ GEOSDifference_r()

GEOSGeometry* GEOSDifference_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSDifference

◆ GEOSDifferencePrec()

GEOSGeometry* GEOSDifferencePrec ( const GEOSGeometry ga,
const GEOSGeometry gb,
double  gridSize 
)

Returns the difference of two geometries A and B: the set of points that fall within A but not within B. All the vertices of the output geometry must fall on the grid defined by the gridSize, and the output will be a valid geometry.

Parameters
gaone of the geometries
gbthe other geometry
gridSizethe cell size of the precision grid
Returns
A newly allocated geometry of the difference. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::overlayng::OverlayNG
Since
3.9

◆ GEOSDifferencePrec_r()

GEOSGeometry* GEOSDifferencePrec_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double  gridSize 
)

◆ GEOSDisjoint()

char GEOSDisjoint ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Tests if two geometries have no point in common.

Parameters
g1Input geometry
g2Input geometry
Returns
1 on true, 0 on false, 2 on exception
See also
geos::geom::Geometry::disjoint
Since
2.2

◆ GEOSDisjoint_r()

char GEOSDisjoint_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSDisjoint

◆ GEOSDisjointSubsetUnion()

GEOSGeometry* GEOSDisjointSubsetUnion ( const GEOSGeometry g)

Optimized union algorithm for inputs that can be divided into subsets that do not intersect. If there is only one such subset, performance can be expected to be worse than GEOSUnionaryUnion.

Parameters
gThe input geometry
Returns
A newly allocated geometry of the union, or NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.12

◆ GEOSDisjointSubsetUnion_r()

GEOSGeometry* GEOSDisjointSubsetUnion_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSDistance()

int GEOSDistance ( const GEOSGeometry g1,
const GEOSGeometry g2,
double *  dist 
)

Calculate the distance between two geometries.

Parameters
[in]g1Input geometry
[in]g2Input geometry
[out]distPointer to be filled in with distance result
Returns
1 on success, 0 on exception.
Since
2.2

◆ GEOSDistance_r()

int GEOSDistance_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double *  dist 
)
See also
GEOSDistance

◆ GEOSDistanceIndexed()

int GEOSDistanceIndexed ( const GEOSGeometry g1,
const GEOSGeometry g2,
double *  dist 
)

Calculate the distance between two geometries, using the indexed facet distance, which first indexes the geometries internally, then calculates the distance. Useful when one or both geometries is very large.

Parameters
[in]g1Input geometry
[in]g2Input geometry
[out]distPointer to be filled in with distance result
Returns
1 on success, 0 on exception.
See also
geos::operation::distance:;IndexedFacetDistance
Since
3.7

◆ GEOSDistanceIndexed_r()

int GEOSDistanceIndexed_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double *  dist 
)

◆ GEOSDistanceWithin()

char GEOSDistanceWithin ( const GEOSGeometry g1,
const GEOSGeometry g2,
double  dist 
)

Test whether the distance between two geometries is within the given dist.

Parameters
g1Input geometry
g2Input geometry
distThe max distance
Returns
1 on true, 0 on false, 2 on exception
Since
3.10

◆ GEOSDistanceWithin_r()

char GEOSDistanceWithin_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double  dist 
)

◆ GEOSEnvelope()

GEOSGeometry* GEOSEnvelope ( const GEOSGeometry g)

Returns minimum rectangular polygon or point that contains the geometry, or an empty point for empty inputs.

Parameters
gThe geometry to calculate an envelope for
Returns
A newly allocated polygonal envelope or point. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
2.2

◆ GEOSEnvelope_r()

GEOSGeometry* GEOSEnvelope_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSEnvelope

◆ GEOSEquals()

char GEOSEquals ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Tests if two geometries contain the same set of points in the plane.

Parameters
g1Input geometry
g2Input geometry
Returns
1 on true, 0 on false, 2 on exception
See also
geos::geom::Geometry::equals
Since
2.2

◆ GEOSEquals_r()

char GEOSEquals_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSEquals

◆ GEOSEqualsExact()

char GEOSEqualsExact ( const GEOSGeometry g1,
const GEOSGeometry g2,
double  tolerance 
)

Determine pointwise equality of two geometries, by checking that they have identical structure and that each vertex of g2 is within the distance tolerance of the corresponding vertex in g1. Z and M values are ignored by GEOSEqualsExact, and this function may return true for inputs with different dimensionality. Unlike GEOSEquals(), geometries that are topologically equivalent but have different representations (e.g., LINESTRING (0 0, 1 1) and MULTILINESTRING ((0 0, 1 1)) ) are not considered equal by GEOSEqualsExact().

Parameters
g1Input geometry
g2Input geometry
toleranceTolerance to determine vertex equality
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSNormalize()
Since
3.0

◆ GEOSEqualsExact_r()

char GEOSEqualsExact_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double  tolerance 
)
See also
GEOSEqualsExact

◆ GEOSEqualsIdentical()

char GEOSEqualsIdentical ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Determine pointwise equality of two geometries by checking that the structure, ordering, and values of all vertices are identical in all dimensions. NaN values are considered to be equal to other NaN values.

Parameters
g1Input geometry
g2Input geometry
Returns
1 on true, 0 on false, 2 on exception
Since
3.12

◆ GEOSEqualsIdentical_r()

char GEOSEqualsIdentical_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)

◆ GEOSFrechetDistance()

int GEOSFrechetDistance ( const GEOSGeometry g1,
const GEOSGeometry g2,
double *  dist 
)

Calculate the Frechet distance between two geometries, a similarity measure for linear features.

Parameters
[in]g1Input geometry
[in]g2Input geometry
[out]distPointer to be filled in with distance result
Returns
1 on success, 0 on exception.
See also
geos::algorithm::distance::DiscreteFrechetDistance
Since
3.7

◆ GEOSFrechetDistance_r()

int GEOSFrechetDistance_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double *  dist 
)

◆ GEOSFrechetDistanceDensify()

int GEOSFrechetDistanceDensify ( const GEOSGeometry g1,
const GEOSGeometry g2,
double  densifyFrac,
double *  dist 
)

Calculate the Frechet distance between two geometries, a similarity measure for linear features. The inputs can be densified to provide a more accurate result.

Parameters
[in]g1Input geometry
[in]g2Input geometry
[in]densifyFracThe largest % of the overall line length that any given two-point segment should be
[out]distPointer to be filled in with distance result
Returns
1 on success, 0 on exception.
See also
geos::algorithm::distance::DiscreteFrechetDistance
Since
3.7

◆ GEOSFrechetDistanceDensify_r()

int GEOSFrechetDistanceDensify_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double  densifyFrac,
double *  dist 
)

◆ GEOSFree()

void GEOSFree ( void *  buffer)

Free strings and byte buffers returned by functions such as GEOSWKBWriter_write(), GEOSWKBWriter_writeHEX() and GEOSWKTWriter_write(), etc. If passed a null pointer the function does nothing.

Parameters
bufferThe memory to free (may be null)
Since
3.1

◆ GEOSFree_r()

void GEOSFree_r ( GEOSContextHandle_t  handle,
void *  buffer 
)
See also
GEOSFree

◆ GEOSGeoJSONReader_create()

GEOSGeoJSONReader* GEOSGeoJSONReader_create ( void  )

Allocate a new GEOSGeoJSONReader.

Returns
a new reader. Caller must free with GEOSGeoJSONReader_destroy()
Since
3.10

◆ GEOSGeoJSONReader_create_r()

GEOSGeoJSONReader* GEOSGeoJSONReader_create_r ( GEOSContextHandle_t  handle)

◆ GEOSGeoJSONReader_destroy()

void GEOSGeoJSONReader_destroy ( GEOSGeoJSONReader reader)

Free the memory associated with a GEOSGeoJSONReader.

Parameters
readerThe reader to destroy.
Since
3.10

◆ GEOSGeoJSONReader_destroy_r()

void GEOSGeoJSONReader_destroy_r ( GEOSContextHandle_t  handle,
GEOSGeoJSONReader reader 
)

◆ GEOSGeoJSONReader_readGeometry()

GEOSGeometry* GEOSGeoJSONReader_readGeometry ( GEOSGeoJSONReader reader,
const char *  geojson 
)

Use a reader to parse a GeoJSON string. A single geometry or Feature is parsed as a geometry. A FeatureCollection is parsed as a GeometryCollection. Feature properties are not read.

Parameters
readerA GeoJSON reader object, caller retains ownership
geojsonThe json string to parse, caller retains ownership
Returns
A GEOSGeometry, caller to free with GEOSGeom_destroy())
Since
3.10

◆ GEOSGeoJSONReader_readGeometry_r()

GEOSGeometry* GEOSGeoJSONReader_readGeometry_r ( GEOSContextHandle_t  handle,
GEOSGeoJSONReader reader,
const char *  geojson 
)
See also
GEOSGeoJSONReader_read

◆ GEOSGeoJSONWriter_create()

GEOSGeoJSONWriter* GEOSGeoJSONWriter_create ( void  )

Allocate a new GEOSGeoJSONWriter.

Returns
a new writer. Caller must free with GEOSGeoJSONWriter_destroy()
Since
3.10

◆ GEOSGeoJSONWriter_create_r()

GEOSGeoJSONWriter* GEOSGeoJSONWriter_create_r ( GEOSContextHandle_t  handle)

◆ GEOSGeoJSONWriter_destroy()

void GEOSGeoJSONWriter_destroy ( GEOSGeoJSONWriter writer)

Free the memory associated with a GEOSGeoJSONWriter.

Parameters
writerThe writer to destroy.
Since
3.10

◆ GEOSGeoJSONWriter_destroy_r()

void GEOSGeoJSONWriter_destroy_r ( GEOSContextHandle_t  handle,
GEOSGeoJSONWriter writer 
)

◆ GEOSGeoJSONWriter_writeGeometry()

char* GEOSGeoJSONWriter_writeGeometry ( GEOSGeoJSONWriter writer,
const GEOSGeometry g,
int  indent 
)

Write out the GeoJSON representation of a geometry. Note that writing a GeoJSON Feature or FeatureCollection is unsupported through the GEOS C API.

Parameters
writerA GeoJSON reader object, caller retains ownership.
gThe geometry to convert, caller retains ownership.
indentThe indentation used. Use -1 for no formatting.
Returns
A char pointer, caller to free with GEOSFree())
Since
3.10

◆ GEOSGeoJSONWriter_writeGeometry_r()

char* GEOSGeoJSONWriter_writeGeometry_r ( GEOSContextHandle_t  handle,
GEOSGeoJSONWriter writer,
const GEOSGeometry g,
int  indent 
)

◆ GEOSGeom_clone()

GEOSGeometry* GEOSGeom_clone ( const GEOSGeometry g)

Create a new copy of the input geometry.

Parameters
gThe geometry to copy
Returns
A newly allocated geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
2.2

◆ GEOSGeom_clone_r()

GEOSGeometry* GEOSGeom_clone_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSGeom_clone

◆ GEOSGeom_createCircularString()

GEOSGeometry* GEOSGeom_createCircularString ( GEOSCoordSequence s)

Creates a CircularString geometry.

Parameters
sInput coordinate sequence, ownership passes to the geometry
Returns
A newly allocated CircularString geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.13

◆ GEOSGeom_createCircularString_r()

GEOSGeometry* GEOSGeom_createCircularString_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s 
)

◆ GEOSGeom_createCollection()

GEOSGeometry* GEOSGeom_createCollection ( int  type,
GEOSGeometry **  geoms,
unsigned int  ngeoms 
)

Create a geometry collection.

Parameters
typeThe geometry type, enumerated by GEOSGeomTypes
geomsA list of geometries that will form the collection
ngeomsThe number of geometries in the geoms list
Returns
A newly allocated geometry collection. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Note
The geoms argument is an array of GEOSGeometry* objects. The caller retains ownership of the containing array, but the ownership of the pointed-to objects is transferred to the returned GEOSGeometry.
Since
2.2

◆ GEOSGeom_createCollection_r()

GEOSGeometry* GEOSGeom_createCollection_r ( GEOSContextHandle_t  handle,
int  type,
GEOSGeometry **  geoms,
unsigned int  ngeoms 
)

◆ GEOSGeom_createCompoundCurve()

GEOSGeometry* GEOSGeom_createCompoundCurve ( GEOSGeometry **  curves,
unsigned int  ncurves 
)

Creates a CompoundCurve geometry.

Parameters
curvesA list of geometries that will form the CompoundCurve
ncurvesThe number of geometries in the curves list
Returns
A newly allocated CompoundCurve geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.13

◆ GEOSGeom_createCompoundCurve_r()

GEOSGeometry* GEOSGeom_createCompoundCurve_r ( GEOSContextHandle_t  handle,
GEOSGeometry **  curves,
unsigned int  ncurves 
)

◆ GEOSGeom_createCurvePolygon()

GEOSGeometry* GEOSGeom_createCurvePolygon ( GEOSGeometry shell,
GEOSGeometry **  holes,
unsigned int  nholes 
)

Creates a CurvePolygon geometry from ring geometries.

Parameters
shellA ring that is the exterior ring of the polygon.
holesAn array of rings that are the holes.
nholesThe number of rings in the holes array.
Returns
A newly allocated geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Note
The holes argument is an array of GEOSGeometry* objects. The caller retains ownership of the containing array, but the ownership of the pointed-to objects is transferred to the returned GEOSGeometry.
Since
3.13

◆ GEOSGeom_createCurvePolygon_r()

GEOSGeometry* GEOSGeom_createCurvePolygon_r ( GEOSContextHandle_t  handle,
GEOSGeometry shell,
GEOSGeometry **  holes,
unsigned int  nholes 
)

◆ GEOSGeom_createEmptyCircularString()

GEOSGeometry* GEOSGeom_createEmptyCircularString ( )

Creates an empty CircularString geometry.

Returns
A newly allocated CircularString geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.13

◆ GEOSGeom_createEmptyCircularString_r()

GEOSGeometry* GEOSGeom_createEmptyCircularString_r ( GEOSContextHandle_t  handle)

◆ GEOSGeom_createEmptyCollection()

GEOSGeometry* GEOSGeom_createEmptyCollection ( int  type)

Create an empty geometry collection.

Parameters
typeThe geometry type, enumerated by GEOSGeomTypes
Returns
A newly allocated empty geometry collection. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.3

◆ GEOSGeom_createEmptyCollection_r()

GEOSGeometry* GEOSGeom_createEmptyCollection_r ( GEOSContextHandle_t  handle,
int  type 
)

◆ GEOSGeom_createEmptyCompoundCurve()

GEOSGeometry* GEOSGeom_createEmptyCompoundCurve ( )

Creates an empty CompoundCurve geometry.

Returns
A newly allocated CompoundCurve geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.13

◆ GEOSGeom_createEmptyCompoundCurve_r()

GEOSGeometry* GEOSGeom_createEmptyCompoundCurve_r ( GEOSContextHandle_t  handle)

◆ GEOSGeom_createEmptyCurvePolygon()

GEOSGeometry* GEOSGeom_createEmptyCurvePolygon ( )

Creates an empty CurvePolygon geometry.

Returns
A newly allocated CurvePolygon geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.13

◆ GEOSGeom_createEmptyCurvePolygon_r()

GEOSGeometry* GEOSGeom_createEmptyCurvePolygon_r ( GEOSContextHandle_t  handle)

◆ GEOSGeom_createEmptyLineString()

GEOSGeometry* GEOSGeom_createEmptyLineString ( void  )

Creates an emptylinestring geometry.

Returns
A newly allocated linestring geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.3

◆ GEOSGeom_createEmptyLineString_r()

GEOSGeometry* GEOSGeom_createEmptyLineString_r ( GEOSContextHandle_t  handle)

◆ GEOSGeom_createEmptyPoint()

GEOSGeometry* GEOSGeom_createEmptyPoint ( void  )

Creates an empty point.

Returns
A newly allocated empty point geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.3

◆ GEOSGeom_createEmptyPoint_r()

GEOSGeometry* GEOSGeom_createEmptyPoint_r ( GEOSContextHandle_t  handle)

◆ GEOSGeom_createEmptyPolygon()

GEOSGeometry* GEOSGeom_createEmptyPolygon ( void  )

Creates an empty polygon geometry.

Returns
A newly allocated empty polygon geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.3

◆ GEOSGeom_createEmptyPolygon_r()

GEOSGeometry* GEOSGeom_createEmptyPolygon_r ( GEOSContextHandle_t  handle)

◆ GEOSGeom_createLinearRing()

GEOSGeometry* GEOSGeom_createLinearRing ( GEOSCoordSequence s)

Creates a linear ring geometry, for use in a polygon.

Parameters
sInput coordinate sequence, ownership passes to the geometry
Returns
A newly allocated linear ring geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
2.2

◆ GEOSGeom_createLinearRing_r()

GEOSGeometry* GEOSGeom_createLinearRing_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s 
)

◆ GEOSGeom_createLineString()

GEOSGeometry* GEOSGeom_createLineString ( GEOSCoordSequence s)

Creates a linestring geometry.

Parameters
sInput coordinate sequence, ownership passes to the geometry
Returns
A newly allocated linestring geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
2.2

◆ GEOSGeom_createLineString_r()

GEOSGeometry* GEOSGeom_createLineString_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s 
)

◆ GEOSGeom_createPoint()

GEOSGeometry* GEOSGeom_createPoint ( GEOSCoordSequence s)

Creates a point geometry from a coordinate sequence.

Parameters
sInput coordinate sequence, ownership passes to the geometry
Returns
A newly allocated point geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
2.2

◆ GEOSGeom_createPoint_r()

GEOSGeometry* GEOSGeom_createPoint_r ( GEOSContextHandle_t  handle,
GEOSCoordSequence s 
)

◆ GEOSGeom_createPointFromXY()

GEOSGeometry* GEOSGeom_createPointFromXY ( double  x,
double  y 
)

Creates a point geometry from a pair of coordinates.

Parameters
xThe X coordinate
yThe Y coordinate
Returns
A newly allocated point geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.8

◆ GEOSGeom_createPointFromXY_r()

GEOSGeometry* GEOSGeom_createPointFromXY_r ( GEOSContextHandle_t  handle,
double  x,
double  y 
)

◆ GEOSGeom_createPolygon()

GEOSGeometry* GEOSGeom_createPolygon ( GEOSGeometry shell,
GEOSGeometry **  holes,
unsigned int  nholes 
)

Creates a polygon geometry from linear ring geometries.

Parameters
shellA linear ring that is the exterior ring of the polygon.
holesAn array of linear rings that are the holes.
nholesThe number of rings in the holes array.
Returns
A newly allocated geometry. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Note
The holes argument is an array of GEOSGeometry* objects. The caller retains ownership of the containing array, but the ownership of the pointed-to objects is transferred to the returned GEOSGeometry.
Since
2.2

◆ GEOSGeom_createPolygon_r()

GEOSGeometry* GEOSGeom_createPolygon_r ( GEOSContextHandle_t  handle,
GEOSGeometry shell,
GEOSGeometry **  holes,
unsigned int  nholes 
)

◆ GEOSGeom_createRectangle()

GEOSGeometry* GEOSGeom_createRectangle ( double  xmin,
double  ymin,
double  xmax,
double  ymax 
)

Create a rectangular polygon from bounding coordinates. Will return a point geometry if width and height are 0.

Parameters
xminLeft bound of envelope
yminLower bound of envelope
xmaxRight bound of envelope
ymaxUpper bound of envelope
Since
3.11

◆ GEOSGeom_createRectangle_r()

GEOSGeometry* GEOSGeom_createRectangle_r ( GEOSContextHandle_t  handle,
double  xmin,
double  ymin,
double  xmax,
double  ymax 
)

◆ GEOSGeom_destroy()

void GEOSGeom_destroy ( GEOSGeometry g)

Release the memory associated with a geometry.

Parameters
gThe geometry to be destroyed.
Since
2.2

◆ GEOSGeom_destroy_r()

void GEOSGeom_destroy_r ( GEOSContextHandle_t  handle,
GEOSGeometry g 
)

◆ GEOSGeom_extractUniquePoints()

GEOSGeometry* GEOSGeom_extractUniquePoints ( const GEOSGeometry g)

Return all distinct vertices of input geometry as a MultiPoint. Note that only 2 dimensions of the vertices are considered when testing for equality.

Parameters
gThe input geometry
Returns
The distinct points Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.3

◆ GEOSGeom_extractUniquePoints_r()

GEOSGeometry* GEOSGeom_extractUniquePoints_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeom_getCoordinateDimension()

int GEOSGeom_getCoordinateDimension ( const GEOSGeometry g)

Return the cartesian dimension of the geometry.

  • 2 for XY data
  • 3 for XYZ data
Parameters
gInput geometry
Returns
The dimension
Since
3.3

◆ GEOSGeom_getCoordinateDimension_r()

int GEOSGeom_getCoordinateDimension_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeom_getCoordSeq()

const GEOSCoordSequence* GEOSGeom_getCoordSeq ( const GEOSGeometry g)

Return the coordinate sequence underlying the given geometry (Must be a LineString, LinearRing or Point). Do not directly free the coordinate sequence, it is owned by the parent geometry.

Parameters
gInput geometry
Returns
Coordinate sequence or NULL on exception.
Since
2.2

◆ GEOSGeom_getCoordSeq_r()

const GEOSCoordSequence* GEOSGeom_getCoordSeq_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeom_getDimensions()

int GEOSGeom_getDimensions ( const GEOSGeometry g)

Return the planar dimensionality of the geometry.

  • 0 for point, multipoint
  • 1 for linestring, multilinestring
  • 2 for polygon, multipolygon
See also
geos::geom::Dimension::DimensionType
Parameters
gInput geometry
Returns
The dimensionality
Since
2.2

◆ GEOSGeom_getDimensions_r()

int GEOSGeom_getDimensions_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeom_getExtent()

int GEOSGeom_getExtent ( const GEOSGeometry g,
double *  xmin,
double *  ymin,
double *  xmax,
double *  ymax 
)

Finds the extent (minimum and maximum X and Y value) of the geometry. Raises an exception for empty geometry input.

Parameters
[in]gInput geometry
[out]xminPointer to place result for minimum X value
[out]yminPointer to place result for minimum Y value
[out]xmaxPointer to place result for maximum X value
[out]ymaxPointer to place result for maximum Y value
Returns
1 on success, 0 on exception
Since
3.11

◆ GEOSGeom_getExtent_r()

int GEOSGeom_getExtent_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  xmin,
double *  ymin,
double *  xmax,
double *  ymax 
)

◆ GEOSGeom_getPrecision()

double GEOSGeom_getPrecision ( const GEOSGeometry g)

Read the currently set precision value from the geometry and returns the grid size if it is a fixed precision or 0.0 if it is full floating point precision.

Parameters
gInput geometry
Returns
The grid size, or -1 on exception
Since
3.6

◆ GEOSGeom_getPrecision_r()

double GEOSGeom_getPrecision_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeom_getUserData()

void* GEOSGeom_getUserData ( const GEOSGeometry g)

Return the anonymous "user data" for this geometry. User data must be managed by the caller, and is not freed when the geometry is destroyed.

Parameters
gInput geometry
Returns
A void* to the user data, caller is responsible for casting to the appropriate type.
Since
3.6

◆ GEOSGeom_getUserData_r()

void* GEOSGeom_getUserData_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeom_getXMax()

int GEOSGeom_getXMax ( const GEOSGeometry g,
double *  value 
)

Finds the maximum X value in the geometry.

Parameters
[in]gInput geometry
[out]valuePointer to place result
Returns
0 on exception
Since
3.7

◆ GEOSGeom_getXMax_r()

int GEOSGeom_getXMax_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  value 
)

◆ GEOSGeom_getXMin()

int GEOSGeom_getXMin ( const GEOSGeometry g,
double *  value 
)

Finds the minimum X value in the geometry.

Parameters
[in]gInput geometry
[out]valuePointer to place result
Returns
0 on exception
Since
3.7

◆ GEOSGeom_getXMin_r()

int GEOSGeom_getXMin_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  value 
)

◆ GEOSGeom_getYMax()

int GEOSGeom_getYMax ( const GEOSGeometry g,
double *  value 
)

Finds the maximum Y value in the geometry.

Parameters
[in]gInput geometry
[out]valuePointer to place result
Returns
0 on exception
Since
3.7

◆ GEOSGeom_getYMax_r()

int GEOSGeom_getYMax_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  value 
)

◆ GEOSGeom_getYMin()

int GEOSGeom_getYMin ( const GEOSGeometry g,
double *  value 
)

Finds the minimum Y value in the geometry.

Parameters
[in]gInput geometry
[out]valuePointer to place result
Returns
0 on exception
Since
3.7

◆ GEOSGeom_getYMin_r()

int GEOSGeom_getYMin_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  value 
)

◆ GEOSGeom_releaseCollection()

GEOSGeometry** GEOSGeom_releaseCollection ( GEOSGeometry collection,
unsigned int *  ngeoms 
)

Release the sub-geometries of a collection for management. by the caller. The input collection remains as an empty collection, that the caller is responsible for destroying. The output geometries are also the responsibility of the caller, as is the containing array, which must be freed with GEOSFree().

Parameters
collectionThe collection that will have its components released.
ngeomsA pointer to a variable that will be filled with the size of the output array.
Returns
A newly allocated array of GEOSGeometry pointers.
Note
The caller is responsible for freeing the returned array with GEOSFree() and all the elements with GEOSGeom_destroy(). If called with an empty collection, null will be returned and ngeoms set to zero.
Since
3.12

◆ GEOSGeom_releaseCollection_r()

GEOSGeometry** GEOSGeom_releaseCollection_r ( GEOSContextHandle_t  handle,
GEOSGeometry collection,
unsigned int *  ngeoms 
)

◆ GEOSGeom_setPrecision()

GEOSGeometry* GEOSGeom_setPrecision ( const GEOSGeometry g,
double  gridSize,
int  flags 
)

Change the coordinate precision of a geometry. This will affect the precision of the existing geometry as well as any geometries derived from this geometry using overlay functions. The output will be a valid GEOSGeometry.

Note that operations will always be performed in the precision of the geometry with higher precision (smaller "gridSize"). That same precision will be attached to the operation outputs.

In the Default and GEOS_PREC_KEEP_COLLAPSED modes invalid input may cause an error to occur, unless the invalidity is below the scale of the requested precision

There are only 3 modes. The GEOS_PREC_NO_TOPO mode takes precedence over GEOS_PREC_KEEP_COLLAPSED. So the combination GEOS_PREC_NO_TOPO || GEOS_PREC_KEEP_COLLAPSED has the same semantics as GEOS_PREC_NO_TOPO

Parameters
gInput geometry
gridSizecell size of grid to round coordinates to, or 0 for FLOATING precision
flagsThe bitwise OR of members of the GEOSPrecisionRules enum
Returns
The precision reduced result. Caller must free with GEOSGeom_destroy() NULL on exception.
Since
3.6

◆ GEOSGeom_setPrecision_r()

GEOSGeometry* GEOSGeom_setPrecision_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  gridSize,
int  flags 
)

◆ GEOSGeom_setUserData()

void GEOSGeom_setUserData ( GEOSGeometry g,
void *  userData 
)

Set the anonymous "user data" for this geometry.

Parameters
gInput geometry
userDataVoid pointer to user data
Since
3.6

◆ GEOSGeom_setUserData_r()

void GEOSGeom_setUserData_r ( GEOSContextHandle_t  handle,
GEOSGeometry g,
void *  userData 
)

◆ GEOSGeom_transformXY()

GEOSGeometry* GEOSGeom_transformXY ( const GEOSGeometry g,
GEOSTransformXYCallback  callback,
void *  userdata 
)

Apply XY coordinate transform callback to all coordinates in a copy of input geometry. If the callback returns an error, returned geometry will be NULL. Z and M values, if present, are not modified by this function.

Parameters
[in]gInput geometry
[in]callbacka function to be executed for each coordinate in the geometry. The callback takes 3 parameters: x and y coordinate values to be updated and a void userdata pointer.
userdataan optional pointer to pe passed to 'callback' as an argument
Returns
a copy of the input geometry with transformed coordinates. Caller must free with GEOSGeom_destroy().
Since
3.11

◆ GEOSGeom_transformXY_r()

GEOSGeometry* GEOSGeom_transformXY_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
GEOSTransformXYCallback  callback,
void *  userdata 
)

◆ GEOSGeom_transformXYZ()

GEOSGeometry* GEOSGeom_transformXYZ ( const GEOSGeometry g,
GEOSTransformXYZCallback  callback,
void *  userdata 
)

Apply XYZ coordinate transform callback to all coordinates in a copy of input geometry. If the callback returns an error, returned geometry will be NULL. M values, if present, are not modified by this function.

Parameters
[in]gInput geometry
[in]callbacka function to be executed for each coordinate in the geometry. The callback takes 4 parameters: x, y and z coordinate values to be updated and a void userdata pointer.
userdataan optional pointer to pe passed to 'callback' as an argument
Returns
a copy of the input geometry with transformed coordinates. Caller must free with GEOSGeom_destroy().
Since
3.13

◆ GEOSGeom_transformXYZ_r()

GEOSGeometry* GEOSGeom_transformXYZ_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
GEOSTransformXYZCallback  callback,
void *  userdata 
)

◆ GEOSGeomFromHEX_buf()

GEOSGeometry* GEOSGeomFromHEX_buf ( const unsigned char *  hex,
size_t  size 
)
Deprecated:
use GEOSWKBReader and GEOSWKBWriter_readHEX()

◆ GEOSGeomFromHEX_buf_r()

GEOSGeometry* GEOSGeomFromHEX_buf_r ( GEOSContextHandle_t  handle,
const unsigned char *  hex,
size_t  size 
)

◆ GEOSGeomFromWKB_buf()

GEOSGeometry* GEOSGeomFromWKB_buf ( const unsigned char *  wkb,
size_t  size 
)
Deprecated:
use GEOSWKBReader and GEOSWKBWriter_read()

◆ GEOSGeomFromWKB_buf_r()

GEOSGeometry* GEOSGeomFromWKB_buf_r ( GEOSContextHandle_t  handle,
const unsigned char *  wkb,
size_t  size 
)

◆ GEOSGeomFromWKT()

GEOSGeometry* GEOSGeomFromWKT ( const char *  wkt)

◆ GEOSGeomFromWKT_r()

GEOSGeometry* GEOSGeomFromWKT_r ( GEOSContextHandle_t  handle,
const char *  wkt 
)

◆ GEOSGeomGetEndPoint()

GEOSGeometry* GEOSGeomGetEndPoint ( const GEOSGeometry g)

Return the last point of a LineString

Parameters
gInput geometry, must be a LineString
Returns
A Point geometry. Caller must free with GEOSGeom_destroy() NULL on exception.
Since
3.3

◆ GEOSGeomGetEndPoint_r()

GEOSGeometry* GEOSGeomGetEndPoint_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeomGetLength()

int GEOSGeomGetLength ( const GEOSGeometry g,
double *  length 
)

Calculate the length of a LineString. Only works for LineString inputs, returns exception otherwise.

Parameters
[in]gInput geometry
[out]lengthPointer to be filled in with length result
Returns
1 on success, 0 on exception.
Since
3.3

◆ GEOSGeomGetLength_r()

int GEOSGeomGetLength_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  length 
)

◆ GEOSGeomGetM()

int GEOSGeomGetM ( const GEOSGeometry g,
double *  m 
)

Returns the M coordinate, for a Point input, or an exception otherwise.

Parameters
[in]gInput Point geometry
[out]mPointer to hold return value
Returns
1 on success, 0 on exception
Since
3.12

◆ GEOSGeomGetM_r()

int GEOSGeomGetM_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  m 
)
See also
GEOSGeomGetM

◆ GEOSGeomGetNumPoints()

int GEOSGeomGetNumPoints ( const GEOSGeometry g)

Returns the number of points, for a LineString input, or an exception otherwise.

Parameters
gInput LineString geometry
Returns
Number of points, -1 on exception
Since
2.2

◆ GEOSGeomGetNumPoints_r()

int GEOSGeomGetNumPoints_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeomGetPointN()

GEOSGeometry* GEOSGeomGetPointN ( const GEOSGeometry g,
int  n 
)

Return the N'th point of a LineString

Parameters
gInput geometry, must be a LineString
nIndex of desired point (zero based)
Returns
A Point geometry. Caller must free with GEOSGeom_destroy() NULL on exception.
Since
3.3

◆ GEOSGeomGetPointN_r()

GEOSGeometry* GEOSGeomGetPointN_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
int  n 
)

◆ GEOSGeomGetStartPoint()

GEOSGeometry* GEOSGeomGetStartPoint ( const GEOSGeometry g)

Return the first point of a LineString

Parameters
gInput geometry, must be a LineString
Returns
A Point geometry. Caller must free with GEOSGeom_destroy() NULL on exception.
Since
3.3

◆ GEOSGeomGetStartPoint_r()

GEOSGeometry* GEOSGeomGetStartPoint_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeomGetX()

int GEOSGeomGetX ( const GEOSGeometry g,
double *  x 
)

Returns the X coordinate, for a Point input, or an exception otherwise.

Parameters
[in]gInput Point geometry
[out]xPointer to hold return value
Returns
1 on success, 0 on exception
Since
2.2

◆ GEOSGeomGetX_r()

int GEOSGeomGetX_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  x 
)
See also
GEOSGeomGetX

◆ GEOSGeomGetY()

int GEOSGeomGetY ( const GEOSGeometry g,
double *  y 
)

Returns the Y coordinate, for a Point input, or an exception otherwise.

Parameters
[in]gInput Point geometry
[out]yPointer to hold return value
Returns
1 on success, 0 on exception
Since
2.2

◆ GEOSGeomGetY_r()

int GEOSGeomGetY_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  y 
)
See also
GEOSGeomGetY

◆ GEOSGeomGetZ()

int GEOSGeomGetZ ( const GEOSGeometry g,
double *  z 
)

Returns the Z coordinate, for a Point input, or an exception otherwise.

Parameters
[in]gInput Point geometry
[out]zPointer to hold return value
Returns
1 on success, 0 on exception
Since
3.7

◆ GEOSGeomGetZ_r()

int GEOSGeomGetZ_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  z 
)
See also
GEOSGeomGetZ

◆ GEOSGeomToHEX_buf()

unsigned char* GEOSGeomToHEX_buf ( const GEOSGeometry g,
size_t *  size 
)

◆ GEOSGeomToHEX_buf_r()

unsigned char* GEOSGeomToHEX_buf_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
size_t *  size 
)

◆ GEOSGeomToWKB_buf()

unsigned char* GEOSGeomToWKB_buf ( const GEOSGeometry g,
size_t *  size 
)

◆ GEOSGeomToWKB_buf_r()

unsigned char* GEOSGeomToWKB_buf_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
size_t *  size 
)

◆ GEOSGeomToWKT()

char* GEOSGeomToWKT ( const GEOSGeometry g)

◆ GEOSGeomToWKT_r()

char* GEOSGeomToWKT_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGeomType()

char* GEOSGeomType ( const GEOSGeometry g)

Returns the geometry type string for this geometry. eg: "GeometryCollection", "LineString"

Parameters
gInput geometry
Returns
A string with the geometry type. Caller must free with GEOSFree(). NULL on exception.
Since
2.2

◆ GEOSGeomType_r()

char* GEOSGeomType_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSGeomType

◆ GEOSGeomTypeId()

int GEOSGeomTypeId ( const GEOSGeometry g)

Returns the GEOSGeomTypeId number for this geometry.

Parameters
gInput geometry
Returns
The geometry type number, or -1 on exception.
Since
2.2

◆ GEOSGeomTypeId_r()

int GEOSGeomTypeId_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSGeomTypeId

◆ GEOSGetCentroid()

GEOSGeometry* GEOSGetCentroid ( const GEOSGeometry g)

Returns a point at the center of mass of the input.

Parameters
gThe input geometry
Returns
A point at the center of mass of the input Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::algorithm::Centroid
Since
2.2

◆ GEOSGetCentroid_r()

GEOSGeometry* GEOSGetCentroid_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSGetCentroid

◆ GEOSGetExteriorRing()

const GEOSGeometry* GEOSGetExteriorRing ( const GEOSGeometry g)

Get the external ring of a Polygon.

Note
Returned object is a pointer to internal storage: it must NOT be destroyed directly.
Parameters
gInput Polygon geometry
Returns
LinearRing geometry. Owned by parent geometry, do not free. NULL on exception.
Since
2.2

◆ GEOSGetExteriorRing_r()

const GEOSGeometry* GEOSGetExteriorRing_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGetGeometryN()

const GEOSGeometry* GEOSGetGeometryN ( const GEOSGeometry g,
int  n 
)

Returns the specified sub-geometry of a collection. For a simple geometry, returns a pointer to the input. Returned object is a pointer to internal storage: it must NOT be destroyed directly.

Parameters
gInput geometry
nSub-geometry index, zero-based
Returns
A const GEOSGeometry, do not free! It will be freed when the parent is freed. Returns NULL on exception.
Note
Up to GEOS 3.2.0 the input geometry must be a Collection, in later versions it doesn't matter (getGeometryN(0) for a single will return the input).
Since
2.2

◆ GEOSGetGeometryN_r()

const GEOSGeometry* GEOSGetGeometryN_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
int  n 
)

◆ GEOSGetInteriorRingN()

const GEOSGeometry* GEOSGetInteriorRingN ( const GEOSGeometry g,
int  n 
)

Returns the N'th ring for a Polygon input.

Note
Returned object is a pointer to internal storage: it must NOT be destroyed directly.
Parameters
gInput Polygon geometry
nIndex of the desired ring
Returns
LinearRing geometry. Owned by parent geometry, do not free. NULL on exception.
Since
2.2

◆ GEOSGetInteriorRingN_r()

const GEOSGeometry* GEOSGetInteriorRingN_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
int  n 
)

◆ GEOSGetNumCoordinates()

int GEOSGetNumCoordinates ( const GEOSGeometry g)

Get the total number of points in a geometry, of any type.

Parameters
gInput geometry
Returns
Number of points in the geometry. -1 on exception.
Since
2.2

◆ GEOSGetNumCoordinates_r()

int GEOSGetNumCoordinates_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGetNumGeometries()

int GEOSGetNumGeometries ( const GEOSGeometry g)

Returns the number of sub-geometries immediately under a multi-geometry or collection or 1 for a simple geometry. For nested collections, remember to check if returned sub-geometries are themselves also collections. Empty collection or multi-geometry types return 0, and empty simple geometry types return 1.

Parameters
gInput geometry
Returns
Number of direct children in this collection
Warning
For GEOS < 3.2 this function may crash when fed simple geometries
Since
2.2

◆ GEOSGetNumGeometries_r()

int GEOSGetNumGeometries_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGetNumInteriorRings()

int GEOSGetNumInteriorRings ( const GEOSGeometry g)

Returns the number of interior rings, for a Polygon input, or an exception otherwise.

Parameters
gInput Polygon geometry
Returns
Number of interior rings, -1 on exception
Since
2.2

◆ GEOSGetNumInteriorRings_r()

int GEOSGetNumInteriorRings_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSGetSRID()

int GEOSGetSRID ( const GEOSGeometry g)

Returns the "spatial reference id" (SRID) for this geometry.

Parameters
gInput geometry
Returns
SRID number or 0 if unknown / not set.
Since
2.2

◆ GEOSGetSRID_r()

int GEOSGetSRID_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSGetSRID

◆ GEOSHasM()

char GEOSHasM ( const GEOSGeometry g)

Tests whether the input geometry has M coordinates.

Parameters
gThe geometry to test
Returns
1 on true, 0 on false, 2 on exception
Since
3.12

◆ GEOSHasM_r()

char GEOSHasM_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSHasM

◆ GEOSHasZ()

char GEOSHasZ ( const GEOSGeometry g)

Tests whether the input geometry has Z coordinates.

Parameters
gThe geometry to test
Returns
1 on true, 0 on false, 2 on exception
Since
2.2

◆ GEOSHasZ_r()

char GEOSHasZ_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSHasZ

◆ GEOSHausdorffDistance()

int GEOSHausdorffDistance ( const GEOSGeometry g1,
const GEOSGeometry g2,
double *  dist 
)

Calculate the Hausdorff distance between two geometries. Hausdorff distance is the largest distance between two geometries.

Parameters
[in]g1Input geometry
[in]g2Input geometry
[out]distPointer to be filled in with distance result
Returns
1 on success, 0 on exception.
See also
geos::algorithm::distance::DiscreteHausdorffDistance
Since
3.2

◆ GEOSHausdorffDistance_r()

int GEOSHausdorffDistance_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double *  dist 
)

◆ GEOSHausdorffDistanceDensify()

int GEOSHausdorffDistanceDensify ( const GEOSGeometry g1,
const GEOSGeometry g2,
double  densifyFrac,
double *  dist 
)

Calculate a more precise Hausdorff distance between two geometries, by densifying the inputs before computation. Hausdorff distance is the largest distance between two geometries.

Parameters
[in]g1Input geometry
[in]g2Input geometry
[in]densifyFracThe largest % of the overall line length that any given two-point segment should be
[out]distPointer to be filled in with distance result
Returns
1 on success, 0 on exception.
See also
geos::algorithm::distance::DiscreteHausdorffDistance
Since
3.2

◆ GEOSHausdorffDistanceDensify_r()

int GEOSHausdorffDistanceDensify_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double  densifyFrac,
double *  dist 
)

◆ GEOSHilbertCode()

int GEOSHilbertCode ( const GEOSGeometry geom,
const GEOSGeometry extent,
unsigned int  level,
unsigned int *  code 
)

Calculate the Hilbert code of the centroid of a geometry relative to an extent. This allows sorting geometries in a deterministic way, such that similar Hilbert codes are likely to be near each other in two-dimensional space. The caller must ensure that the geometry is contained within the extent.

Parameters
[in]geomInput geometry, must be non-empty
[in]extentExtent within which to calculate the Hilbert code for geom
[in]levelThe level of precision of the Hilbert curve, up to 16
[out]codePointer to be filled in with Hilbert code result
Returns
1 on success, 0 on exception.
Since
3.11

◆ GEOSHilbertCode_r()

int GEOSHilbertCode_r ( GEOSContextHandle_t  handle,
const GEOSGeometry geom,
const GEOSGeometry extent,
unsigned int  level,
unsigned int *  code 
)
See also
GEOSHilbertCode

◆ GEOSInterpolate()

GEOSGeometry* GEOSInterpolate ( const GEOSGeometry line,
double  d 
)

Measuring from start of line, return point that is distance the start. Line parameter must be a LineString. The returned point is not guaranteed to intersect the line due to limitations of floating point calculations.

Parameters
linelinear target of projection
ddistance from start of line to created point
Returns
The point GEOSGeometry that is distance from the start of line. Caller takes ownership of returned geometry.
Since
3.2

◆ GEOSInterpolate_r()

GEOSGeometry* GEOSInterpolate_r ( GEOSContextHandle_t  handle,
const GEOSGeometry line,
double  d 
)
See also
GEOSInterpolate

◆ GEOSInterpolateNormalized()

GEOSGeometry* GEOSInterpolateNormalized ( const GEOSGeometry line,
double  proportion 
)

Measuring from start of line, return point that is a proportion the start. Line parameter must be a LineString.

Parameters
linelinear target of projection
proportionThe proportion from the start of line to created point
Returns
The point GEOSGeometry that is distance from the start of line. Caller takes ownership of returned geometry.
Since
3.2

◆ GEOSInterpolateNormalized_r()

GEOSGeometry* GEOSInterpolateNormalized_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  d 
)

◆ GEOSIntersection()

GEOSGeometry* GEOSIntersection ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Returns the intersection of two geometries: the set of points that fall within both geometries.

Parameters
g1one of the geometries
g2the other geometry
Returns
A newly allocated geometry of the intersection. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::overlayng::OverlayNG
Since
2.2

◆ GEOSIntersection_r()

GEOSGeometry* GEOSIntersection_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)

◆ GEOSIntersectionPrec()

GEOSGeometry* GEOSIntersectionPrec ( const GEOSGeometry g1,
const GEOSGeometry g2,
double  gridSize 
)

Returns the intersection of two geometries: the set of points that fall within both geometries. All the vertices of the output geometry must fall on the grid defined by the gridSize, and the output will be a valid geometry.

Parameters
g1one of the geometries
g2the other geometry
gridSizethe cell size of the precision grid
Returns
A newly allocated geometry of the intersection. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::overlayng::OverlayNG
Since
3.9

◆ GEOSIntersectionPrec_r()

GEOSGeometry* GEOSIntersectionPrec_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
double  gridSize 
)

◆ GEOSIntersects()

char GEOSIntersects ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Tests if two geometries intersect.

Parameters
g1Input geometry
g2Input geometry
Returns
1 on true, 0 on false, 2 on exception
See also
geos::geom::Geometry::intersects
Since
2.2

◆ GEOSIntersects_r()

char GEOSIntersects_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSIntersects

◆ GEOSisClosed()

char GEOSisClosed ( const GEOSGeometry g)

Tests whether the input geometry is closed. A closed geometry is a linestring or multilinestring with the start and end points being the same.

Parameters
gThe geometry to test
Returns
1 on true, 0 on false, 2 on exception
Since
3.3

◆ GEOSisClosed_r()

char GEOSisClosed_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSisClosed

◆ GEOSisEmpty()

char GEOSisEmpty ( const GEOSGeometry g)

Tests whether the input geometry is empty. If the geometry or any component is non-empty, the geometry is non-empty. An empty geometry has no boundary or interior.

Parameters
gThe geometry to test
Returns
1 on true, 0 on false, 2 on exception
Since
2.2

◆ GEOSisEmpty_r()

char GEOSisEmpty_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSisEmpty

◆ GEOSisRing()

char GEOSisRing ( const GEOSGeometry g)

Tests whether the input geometry is a ring. Rings are linestrings, without self-intersections, with start and end point being identical.

Parameters
gThe geometry to test
Returns
1 on true, 0 on false, 2 on exception
Since
2.2

◆ GEOSisRing_r()

char GEOSisRing_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSisRing

◆ GEOSisSimple()

char GEOSisSimple ( const GEOSGeometry g)

Tests whether the input geometry is "simple". Mostly relevant for linestrings. A "simple" linestring has no self-intersections.

Parameters
gThe geometry to test
Returns
1 on true, 0 on false, 2 on exception
Since
2.2

◆ GEOSisSimple_r()

char GEOSisSimple_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSisSimple

◆ GEOSisValid()

char GEOSisValid ( const GEOSGeometry g)

Check the validity of the provided geometry.

  • All points are valid.
  • All non-zero-length linestrings are valid.
  • Polygon rings must be non-self-intersecting, and interior rings contained within exterior rings.
  • Multi-polygon components may not touch or overlap.
Parameters
gThe geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
geos::operation::valid::isValidOp
Since
2.2

◆ GEOSisValid_r()

char GEOSisValid_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSisValid

◆ GEOSisValidDetail()

char GEOSisValidDetail ( const GEOSGeometry g,
int  flags,
char **  reason,
GEOSGeometry **  location 
)

In one step, calculate and return the validity, the human readable validity reason and a point at which validity rules are broken. Caller has the responsibility to destroy 'reason' with GEOSFree() and 'location' with GEOSGeom_destroy()

Parameters
gThe geometry to test
flagsA value from the GEOSValidFlags enum
reasonA pointer in which the reason string will be places
locationA pointer in which the location GEOSGeometry will be placed
Returns
1 when valid, 0 when invalid, 2 on exception
Since
3.3

◆ GEOSisValidDetail_r()

char GEOSisValidDetail_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
int  flags,
char **  reason,
GEOSGeometry **  location 
)

◆ GEOSisValidReason()

char* GEOSisValidReason ( const GEOSGeometry g)

Return the human readable reason a geometry is invalid, "Valid Geometry" string otherwise, or NULL on exception.

Parameters
gThe geometry to test
Returns
A string with the reason, NULL on exception. Caller must GEOSFree() their result.
Since
3.1

◆ GEOSisValidReason_r()

char* GEOSisValidReason_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSLargestEmptyCircle()

GEOSGeometry* GEOSLargestEmptyCircle ( const GEOSGeometry obstacles,
const GEOSGeometry boundary,
double  tolerance 
)

Constructs the "largest empty circle" (LEC) for a set of obstacle geometries and within a polygonal boundary, with accuracy to to a specified distance tolerance. The obstacles may be any collection of points, lines and polygons. The LEC is the largest circle whose interior does not intersect with any obstacle. and which has its center inside the given boundary. If no boundary is provided, the convex hull of the obstacles is used. The LEC center is the point in the interior of the boundary which has the farthest distance from the obstacles (up to the given distance tolerance). The LEC is determined by the center point and a point indicating the circle radius (which will lie on an obstacle).
To compute an LEC which lies wholly within a polygonal boundary, include the boundary of the polygon(s) as a linear obstacle.
The implementation uses a successive-approximation technique over a grid of square cells covering the obstacles and boundary. The grid is refined using a branch-and-bound algorithm. Point containment and distance are computed in a performant way by using spatial indexes.
Returns the LEC radius as a two-point linestring, with the start point at the center of the inscribed circle and the end on the boundary of the circle.

Parameters
obstaclesThe geometries that the LEC must not cross
boundaryThe area to contain the LEC center (may be null or empty)
toleranceStop the algorithm when the search area is smaller than this tolerance
Returns
A newly allocated geometry of the LEC radius line. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::algorithm::construct::LargestEmptyCircle
Since
3.9

◆ GEOSLargestEmptyCircle_r()

GEOSGeometry* GEOSLargestEmptyCircle_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
const GEOSGeometry boundary,
double  tolerance 
)

◆ GEOSLength()

int GEOSLength ( const GEOSGeometry g,
double *  length 
)

Calculate the length of a geometry.

Parameters
[in]gInput geometry
[out]lengthPointer to be filled in with length result
Returns
1 on success, 0 on exception.
Since
2.2

◆ GEOSLength_r()

int GEOSLength_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  length 
)
See also
GEOSLength

◆ GEOSLineMerge()

GEOSGeometry* GEOSLineMerge ( const GEOSGeometry g)

Merges a set of LineStrings, joining them at nodes which have cardinality 2. Lines may have their direction reversed.

Parameters
gThe input linework
Returns
The merged linework. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::linemerge::LineMerger
Since
2.2

◆ GEOSLineMerge_r()

GEOSGeometry* GEOSLineMerge_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSLineMerge

◆ GEOSLineMergeDirected()

GEOSGeometry* GEOSLineMergeDirected ( const GEOSGeometry g)

Merges a set of LineStrings, joining them at nodes which have cardinality 2. and where the lines have the same direction. This means that lines do not have their direction reversed.

Parameters
gThe input linework
Returns
The merged linework. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::linemerge::LineMerger
Since
3.11

◆ GEOSLineMergeDirected_r()

GEOSGeometry* GEOSLineMergeDirected_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSLineSubstring()

GEOSGeometry* GEOSLineSubstring ( const GEOSGeometry g,
double  start_fraction,
double  end_fraction 
)

Computes the line which is the section of the input LineString starting and ending at the given length fractions.

Parameters
gThe input LineString
start_fractionstart fraction (0-1) along the length of g
end_fractionend fraction (0-1) along the length of g
Returns
selected substring. Caller is responsible for freeing with GEOSGeom_destroy()
Since
3.12

◆ GEOSLineSubstring_r()

GEOSGeometry* GEOSLineSubstring_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  start_fraction,
double  end_fdraction 
)

◆ GEOSMakeValid()

GEOSGeometry* GEOSMakeValid ( const GEOSGeometry g)

Repair an invalid geometry, returning a valid output.

Parameters
gThe geometry to repair
Returns
The repaired geometry. Caller must free with GEOSGeom_destroy().
Since
3.8

◆ GEOSMakeValid_r()

GEOSGeometry* GEOSMakeValid_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSMakeValid

◆ GEOSMakeValidParams_create()

GEOSMakeValidParams* GEOSMakeValidParams_create ( void  )

Create a GEOSMakeValidParams to hold the desired parameters to control the algorithm and behavior of the validation process.

Returns
a parameter object
See also
GEOSMakeValidWithParams
Since
3.10

◆ GEOSMakeValidParams_create_r()

GEOSMakeValidParams* GEOSMakeValidParams_create_r ( GEOSContextHandle_t  extHandle)

◆ GEOSMakeValidParams_destroy()

void GEOSMakeValidParams_destroy ( GEOSMakeValidParams parms)

Destroy a GEOSMakeValidParams.

Parameters
parmsthe object to destroy
See also
GEOSMakeValidWithParams
Since
3.10

◆ GEOSMakeValidParams_destroy_r()

void GEOSMakeValidParams_destroy_r ( GEOSContextHandle_t  handle,
GEOSMakeValidParams parms 
)

◆ GEOSMakeValidParams_setKeepCollapsed()

int GEOSMakeValidParams_setKeepCollapsed ( GEOSMakeValidParams p,
int  keepCollapsed 
)

When this parameter is nn-zero, the GEOS_MAKE_VALID_STRUCTURE method will keep components that have collapsed into a lower dimensionality. For example, a ring collapsing to a line, or a line collapsing to a point.

Returns
0 on exception, 1 on success.
See also
GEOSMakeValidWithParams
Since
3.10

◆ GEOSMakeValidParams_setKeepCollapsed_r()

int GEOSMakeValidParams_setKeepCollapsed_r ( GEOSContextHandle_t  handle,
GEOSMakeValidParams p,
int  style 
)

◆ GEOSMakeValidParams_setMethod()

int GEOSMakeValidParams_setMethod ( GEOSMakeValidParams p,
enum GEOSMakeValidMethods  method 
)

Set the GEOSMakeValidMethods to use in making the geometry valid.

Returns
0 on exception, 1 on success.
See also
GEOSMakeValidWithParams
Since
3.10

◆ GEOSMakeValidParams_setMethod_r()

int GEOSMakeValidParams_setMethod_r ( GEOSContextHandle_t  handle,
GEOSMakeValidParams p,
enum GEOSMakeValidMethods  method 
)

◆ GEOSMakeValidWithParams()

GEOSGeometry* GEOSMakeValidWithParams ( const GEOSGeometry g,
const GEOSMakeValidParams makeValidParams 
)

Repair an invalid geometry, returning a valid output, using the indicated GEOSMakeValidMethods algorithm and options.

Parameters
gis the geometry to test.
makeValidParamsis a GEOSMakeValidParams with the desired parameters set on it.
Returns
A repaired geometry. Caller must free with GEOSGeom_destroy().
See also
GEOSMakeValidParams_create
GEOSMakeValidParams_destroy
GEOSMakeValidParams_setMethod
GEOSMakeValidParams_setKeepCollapsed
Since
3.10

◆ GEOSMakeValidWithParams_r()

GEOSGeometry* GEOSMakeValidWithParams_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
const GEOSMakeValidParams makeValidParams 
)

◆ GEOSMaximumInscribedCircle()

GEOSGeometry* GEOSMaximumInscribedCircle ( const GEOSGeometry g,
double  tolerance 
)

Constructs the "maximum inscribed circle" (MIC) for a polygonal geometry, up to a specified tolerance. The MIC is determined by a point in the interior of the area which has the farthest distance from the area boundary, along with a boundary point at that distance. In the context of geography the center of the MIC is known as the "pole of inaccessibility". A cartographic use case is to determine a suitable point to place a map label within a polygon. The radius length of the MIC is a measure of how "narrow" a polygon is. It is the distance at which the negative buffer becomes empty. The class supports polygons with holes and multipolygons. The implementation uses a successive-approximation technique over a grid of square cells covering the area geometry. The grid is refined using a branch-and-bound algorithm. Point containment and distance are computed in a performant way by using spatial indexes. Returns a two-point linestring, with one point at the center of the inscribed circle and the other on the boundary of the inscribed circle.

Parameters
gInput geometry
toleranceStop the algorithm when the search area is smaller than this tolerance
Returns
A newly allocated geometry of the MIC. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::algorithm::construct::MaximumInscribedCircle
Since
3.9

◆ GEOSMaximumInscribedCircle_r()

GEOSGeometry* GEOSMaximumInscribedCircle_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  tolerance 
)

◆ GEOSMinimumBoundingCircle()

GEOSGeometry* GEOSMinimumBoundingCircle ( const GEOSGeometry g,
double *  radius,
GEOSGeometry **  center 
)

Returns a geometry which represents the "minimum bounding circle", the smallest circle that contains the input.

Parameters
[in]gThe input geometry
[out]radiusPointer will be filled with output radius.
[out]centerPointer will be filled with output circle center. Caller must free.
Returns
The circle geometry or NULL on exception Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::algorithm::MinimumBoundingCircle::getCircle
Since
3.8

◆ GEOSMinimumBoundingCircle_r()

GEOSGeometry* GEOSMinimumBoundingCircle_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  radius,
GEOSGeometry **  center 
)

◆ GEOSMinimumClearance()

int GEOSMinimumClearance ( const GEOSGeometry g,
double *  d 
)

Computes 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 'eps', 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.

Parameters
gthe input geometry
da double to which the result can be stored
Returns
0 if no exception occurred. 2 if an exception occurred.
See also
geos::precision::MinimumClearance
Since
3.6

◆ GEOSMinimumClearance_r()

int GEOSMinimumClearance_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double *  distance 
)

◆ GEOSMinimumClearanceLine()

GEOSGeometry* GEOSMinimumClearanceLine ( const GEOSGeometry g)

Returns a LineString whose endpoints define the minimum clearance of a geometry. If the geometry has no minimum clearance, an empty LineString will be returned.

Parameters
gthe input geometry
Returns
a linestring geometry, or NULL if an exception occurred. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::precision::MinimumClearance
Since
3.6

◆ GEOSMinimumClearanceLine_r()

GEOSGeometry* GEOSMinimumClearanceLine_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSMinimumRotatedRectangle()

GEOSGeometry* GEOSMinimumRotatedRectangle ( const GEOSGeometry g)

Returns the minimum rotated rectangular POLYGON which encloses the input geometry. The rectangle has width equal to the minimum diameter, and a longer length. If the convex hill of the input is degenerate (a line or point) a linestring or point is returned. The minimum rotated rectangle can be used as an extremely generalized representation for the given geometry.

Parameters
gThe input geometry
Returns
A newly allocated geometry of the rotated envelope. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
Since
3.6

◆ GEOSMinimumRotatedRectangle_r()

GEOSGeometry* GEOSMinimumRotatedRectangle_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSMinimumWidth()

GEOSGeometry* GEOSMinimumWidth ( const GEOSGeometry g)

Returns 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.

Parameters
gThe input geometry
Returns
A newly allocated geometry of the LEC. NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::algorithm::MinimumDiameter
Since
3.6

◆ GEOSMinimumWidth_r()

GEOSGeometry* GEOSMinimumWidth_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSNearestPoints()

GEOSCoordSequence* GEOSNearestPoints ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

The closest points of the two geometries. The first point comes from g1 geometry and the second point comes from g2.

Parameters
[in]g1Input geometry
[in]g2Input geometry
Returns
A coordinate sequence with the two points, or NULL on exception. Caller must free with GEOSCoordSeq_destroy().
Since
3.5

◆ GEOSNearestPoints_r()

GEOSCoordSequence* GEOSNearestPoints_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)

◆ GEOSNode()

GEOSGeometry* GEOSNode ( const GEOSGeometry g)

For linear inputs, returns a new geometry in which no lines cross each other, and all touching occurs at end points.

Parameters
gThe input geometry
Returns
The noded geometry or NULL on exception Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::noding::GeometryNoder::node
Since
3.4

◆ GEOSNode_r()

GEOSGeometry* GEOSNode_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSNode

◆ GEOSNormalize()

int GEOSNormalize ( GEOSGeometry g)

Organize the elements, rings, and coordinate order of geometries in a consistent way, so that geometries that represent the same object can be easily compared. Modifies the geometry in-place.

Normalization ensures the following:

  • Lines are oriented to have smallest coordinate first (apart from duplicate endpoints)
  • Rings start with their smallest coordinate (using XY ordering)
  • Polygon shell rings are oriented CW, and holes CCW
  • Collection elements are sorted by their first coordinate

Use before calling GEOSEqualsExact to avoid false "not equal" results.

Parameters
gInput geometry
Returns
0 on success or -1 on exception
Since
3.0

◆ GEOSNormalize_r()

int GEOSNormalize_r ( GEOSContextHandle_t  handle,
GEOSGeometry g 
)
See also
GEOSNormalize

◆ GEOSOffsetCurve()

GEOSGeometry* GEOSOffsetCurve ( const GEOSGeometry g,
double  width,
int  quadsegs,
int  joinStyle,
double  mitreLimit 
)

Generates offset curve line(s) for a geometry. Handles all geometry types as input.

  • For a LineString the result is a LineString.
  • For a Point the result is an empty LineString.
  • For a Polygon the result is the boundary lines(s) of the polygon buffered to the offset distance (which may be a MultiLineString).
  • For a collection the result is a collection of the element offset curves.
    Parameters
    gThe linear geometry to offset from
    widthDistance to offset from the curve. Negative for a right-side offset. Positive for a left-side offset.
    quadsegsNumber of segments per quadrant
    joinStyleSee GEOSBufJoinStyles
    mitreLimitSee GEOSBufferParams_setMitreLimit
    Returns
    The offset geometry. Returns NULL on exception. Caller is responsible for freeing with GEOSGeom_destroy().
    See also
    geos::operation::buffer::BufferBuilder::bufferLineSingleSided
    Since
    3.3

◆ GEOSOffsetCurve_r()

GEOSGeometry* GEOSOffsetCurve_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  width,
int  quadsegs,
int  joinStyle,
double  mitreLimit 
)
See also
GEOSOffsetCurve

◆ GEOSOrientationIndex()

int GEOSOrientationIndex ( double  Ax,
double  Ay,
double  Bx,
double  By,
double  Px,
double  Py 
)

For the points formed by the six input ordinates, walking from A to B and then to P.

Parameters
AxX coordinate of A
AyY coordinate of A
BxX coordinate of B
ByY coordinate of B
PxX coordinate of P
PyY coordinate of P
Returns
-1 if reaching P takes a counter-clockwise (left) turn, 1 if reaching P takes a clockwise (right) turn, 0 if P is collinear with A-B
Since
3.3

◆ GEOSOrientationIndex_r()

int GEOSOrientationIndex_r ( GEOSContextHandle_t  handle,
double  Ax,
double  Ay,
double  Bx,
double  By,
double  Px,
double  Py 
)

◆ GEOSOrientPolygons()

int GEOSOrientPolygons ( GEOSGeometry g,
int  exteriorCW 
)

Enforce a ring orientation on all polygonal elements in the input geometry. Non-polygonal geometries will not be modified.

Parameters
gInput geometry
exteriorCWif 1, exterior rings will be clockwise and interior rings will be counter-clockwise
Returns
0 on success or -1 on exception
Since
3.12

◆ GEOSOrientPolygons_r()

int GEOSOrientPolygons_r ( GEOSContextHandle_t  handle,
GEOSGeometry g,
int  exteriorCW 
)

◆ GEOSOverlaps()

char GEOSOverlaps ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Tests if two geometries share interiors but are neither within nor contained.

Parameters
g1Input geometry
g2Input geometry
Returns
1 on true, 0 on false, 2 on exception
See also
geos::geom::Geometry::overlaps
Since
2.2

◆ GEOSOverlaps_r()

char GEOSOverlaps_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSOverlaps

◆ GEOSPointOnSurface()

GEOSGeometry* GEOSPointOnSurface ( const GEOSGeometry g)

Returns a point that is inside the boundary of a polygonal geometry.

Parameters
gThe input geometry
Returns
A point that is inside the input Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::algorithm::InteriorPointArea
Since
2.2

◆ GEOSPointOnSurface_r()

GEOSGeometry* GEOSPointOnSurface_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)

◆ GEOSPolygonHullSimplify()

GEOSGeometry* GEOSPolygonHullSimplify ( const GEOSGeometry g,
unsigned int  isOuter,
double  vertexNumFraction 
)

Computes a boundary-respecting hull of a polygonal geometry, with hull shape determined by a target parameter specifying the fraction of the input vertices retained in the result. Larger values produce less concave results. A value of 1 produces the convex hull; a value of 0 produces the original geometry. An outer hull is computed if the parameter is positive, an inner hull is computed if it is negative.

Parameters
gthe polygonal geometry to process
isOuterindicates whether to compute an outer or inner hull (1 for outer hull, 0 for inner)
vertexNumFractionthe target fraction of the count of input vertices to retain in result
Returns
A newly allocated geometry of the concave hull. NULL on exception.

Caller is responsible for freeing with GEOSGeom_destroy().

See also
geos::simplify::PolygonHullSimplifier
Since
3.11

◆ GEOSPolygonHullSimplify_r()

GEOSGeometry* GEOSPolygonHullSimplify_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
unsigned int  isOuter,
double  vertexNumFraction 
)

◆ GEOSPolygonHullSimplifyMode()

GEOSGeometry* GEOSPolygonHullSimplifyMode ( const GEOSGeometry g,
unsigned int  isOuter,
unsigned int  parameterMode,
double  parameter 
)

Computes a topology-preserving simplified hull of a polygonal geometry, with hull shape determined by the parameter, controlled by a parameter mode, which is one defined in GEOSPolygonHullParameterModes. Larger values compute less concave results and a value of 0 produces the original geometry. Either outer or inner hulls can be computed.

Parameters
gthe polygonal geometry to process
isOuterindicates whether to compute an outer or inner hull (1 for outer hull, 0 for inner)
parameterModethe interpretation to apply to the parameter argument; see GEOSPolygonHullParameterModes
parameterthe target ratio of area difference to original area
Returns
A newly allocated geometry of the concave hull. NULL on exception.

Caller is responsible for freeing with GEOSGeom_destroy().

See also
geos::simplify::PolygonHullSimplifier
GEOSPolygonHullParameterModes
GEOSPolygonHullSimplify
Since
3.11

◆ GEOSPolygonHullSimplifyMode_r()

GEOSGeometry* GEOSPolygonHullSimplifyMode_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
unsigned int  isOuter,
unsigned int  parameterMode,
double  parameter 
)

◆ GEOSPolygonize()

GEOSGeometry* GEOSPolygonize ( const GEOSGeometry *const  geoms[],
unsigned int  ngeoms 
)

Polygonizes a set of Geometries which contain linework that represents the edges of a planar graph.

All types of Geometry are accepted as input; the constituent linework is extracted as the edges to be polygonized.

The edges must be correctly noded; that is, they must only meet at their endpoints and not overlap anywhere. If your edges are not already noded, run them through GEOSUnaryUnion() first. Polygonization will accept incorrectly noded input but will not form polygons from non-noded edges, and reports them as errors.

The Polygonizer reports the following kinds of errors:

  • Dangles - edges which have one or both ends which are not incident on another edge endpoint
  • Cut Edges - edges which are connected at both ends but which do not form part of a polygon
  • Invalid Ring Lines - edges which form rings which are invalid (e.g. the component lines contain a self-intersection)

Errors are reported to output parameters "cuts", "dangles" and "invalid" (if not-null). Formed polygons are returned as a collection. NULL is returned on exception. All returned geometries must be destroyed by caller.

The GEOSPolygonize_valid() variant allows extracting only polygons which form a valid polygonal result. The set of extracted polygons is guaranteed to be edge-disjoint. This is useful when it is known that the input lines form a valid polygonal geometry (which may include holes or nested polygons).

Parameters
geomsArray of linear geometries to polygons. Caller retains ownersihp of both array container and objects.
ngeomsSize of the geoms array.
Returns
The polygonal output geometry. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::polygonize::Polygonizer
Since
2.2

◆ GEOSPolygonize_full()

GEOSGeometry* GEOSPolygonize_full ( const GEOSGeometry input,
GEOSGeometry **  cuts,
GEOSGeometry **  dangles,
GEOSGeometry **  invalid 
)

Perform the polygonization as GEOSPolygonize() and return the polygonal result as well as all extra outputs.

Parameters
[in]inputA single geometry with all the input lines to polygonize.
[out]cutsPointer to hold "cut edges", connected on both ends but not part of output. Caller must free.
[out]danglesPointer to hold "dangles", connected one end but not part of output. Caller must free.
[out]invalidPointer to hold invalid outputs, polygons formed but not valid. Caller must free.
Returns
The polygonal valid output Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::polygonize::Polygonizer
Since
3.3

◆ GEOSPolygonize_full_r()

GEOSGeometry* GEOSPolygonize_full_r ( GEOSContextHandle_t  handle,
const GEOSGeometry input,
GEOSGeometry **  cuts,
GEOSGeometry **  dangles,
GEOSGeometry **  invalidRings 
)

◆ GEOSPolygonize_r()

GEOSGeometry* GEOSPolygonize_r ( GEOSContextHandle_t  handle,
const GEOSGeometry *const  geoms[],
unsigned int  ngeoms 
)
See also
GEOSPolygonize

◆ GEOSPolygonize_valid()

GEOSGeometry* GEOSPolygonize_valid ( const GEOSGeometry *const  geoms[],
unsigned int  ngeoms 
)

Has the same polygonizing behavior as GEOSPolygonize(), but returns a result which is a valid polygonal geometry. The result will not contain any edge-adjacent elements.

Parameters
geomsArray of linear geometries to polygons. Caller retains ownersihp of both array container and objects.
ngeomsSize of the geoms array.
Returns
The polygonal output geometry. Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::polygonize::Polygonizer
GEOSBuildArea()
Since
3.8

◆ GEOSPolygonize_valid_r()

GEOSGeometry* GEOSPolygonize_valid_r ( GEOSContextHandle_t  handle,
const GEOSGeometry *const  geoms[],
unsigned int  ngems 
)

◆ GEOSPolygonizer_getCutEdges()

GEOSGeometry* GEOSPolygonizer_getCutEdges ( const GEOSGeometry *const  geoms[],
unsigned int  ngeoms 
)

Perform the polygonization as GEOSPolygonize() but return only the "cut edges", the linear features that are connected at both ends, do not participate in the final polygon.

Parameters
geomsArray of linear geometries to polygons. Caller retains ownersihp of both array container and objects.
ngeomsSize of the geoms array.
Returns
The "cut edges" Caller is responsible for freeing with GEOSGeom_destroy().
See also
geos::operation::polygonize::Polygonizer
Since
3.1

◆ GEOSPolygonizer_getCutEdges_r()

GEOSGeometry* GEOSPolygonizer_getCutEdges_r ( GEOSContextHandle_t  handle,
const GEOSGeometry *const  geoms[],
unsigned int  ngeoms 
)

◆ GEOSPrepare()

const GEOSPreparedGeometry* GEOSPrepare ( const GEOSGeometry g)

Create a Prepared Geometry. The caller retains ownership of the base geometry, and after processing is complete, must free both the prepared and the base geometry. (Ideally, destroy the prepared geometry first, as it has an internal reference to the base geometry.)

Parameters
gThe base geometry to wrap in a prepared geometry.
Returns
A prepared geometry. Caller is responsible for freeing with GEOSPreparedGeom_destroy()
Since
3.1

◆ GEOSPrepare_r()

const GEOSPreparedGeometry* GEOSPrepare_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
See also
GEOSPrepare

◆ GEOSPreparedContains()

char GEOSPreparedContains ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Use a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry is contained.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSContains
Since
3.1

◆ GEOSPreparedContains_r()

char GEOSPreparedContains_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedContainsProperly()

char GEOSPreparedContainsProperly ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Use a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry is contained properly.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSContainsProperly
Since
3.1

◆ GEOSPreparedContainsProperly_r()

char GEOSPreparedContainsProperly_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedContainsXY()

char GEOSPreparedContainsXY ( const GEOSPreparedGeometry pg1,
double  x,
double  y 
)

Use a GEOSPreparedGeometry do a high performance calculation of whether the provided point is contained.

Parameters
pg1The prepared geometry
xx coordinate of point to test
yy coordinate of point to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSContains
Since
3.12

◆ GEOSPreparedContainsXY_r()

char GEOSPreparedContainsXY_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
double  x,
double  y 
)

◆ GEOSPreparedCoveredBy()

char GEOSPreparedCoveredBy ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Using a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry is covered by.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSCoveredBy
Since
3.3

◆ GEOSPreparedCoveredBy_r()

char GEOSPreparedCoveredBy_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedCovers()

char GEOSPreparedCovers ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Using a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry covers.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSCovers
Since
3.1

◆ GEOSPreparedCovers_r()

char GEOSPreparedCovers_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedCrosses()

char GEOSPreparedCrosses ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Using a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry crosses.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSCrosses
Since
3.3

◆ GEOSPreparedCrosses_r()

char GEOSPreparedCrosses_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedDisjoint()

char GEOSPreparedDisjoint ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Use a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry is disjoint.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSDisjoint
Since
3.3

◆ GEOSPreparedDisjoint_r()

char GEOSPreparedDisjoint_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedDistance()

int GEOSPreparedDistance ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2,
double *  dist 
)

Use a GEOSPreparedGeometry do a high performance calculation to find the distance between the prepared and provided geometry. Useful for situations where one geometry is large and static and needs to be tested against a large number of other geometries.

Parameters
[in]pg1The prepared geometry
[in]g2The geometry to test
[out]distPointer to store the result in
Returns
1 on success
Since
3.9

◆ GEOSPreparedDistance_r()

int GEOSPreparedDistance_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2,
double *  dist 
)

◆ GEOSPreparedDistanceWithin()

char GEOSPreparedDistanceWithin ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2,
double  dist 
)

Use a GEOSPreparedGeometry do a high performance calculation to find whether the prepared and provided geometry are within the given max distance. Useful for situations where one geometry is large and static and needs to be tested against a large number of other geometries.

Parameters
pg1The prepared geometry
g2The geometry to test
distThe max distance
Returns
1 on success
Since
3.10

◆ GEOSPreparedDistanceWithin_r()

char GEOSPreparedDistanceWithin_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2,
double  dist 
)

◆ GEOSPreparedGeom_destroy()

void GEOSPreparedGeom_destroy ( const GEOSPreparedGeometry g)

Free the memory associated with a GEOSPreparedGeometry. Caller must separately free the base GEOSGeometry used to create the prepared geometry.

Parameters
gPrepared geometry to destroy.
Since
3.1

◆ GEOSPreparedGeom_destroy_r()

void GEOSPreparedGeom_destroy_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry g 
)

◆ GEOSPreparedIntersects()

char GEOSPreparedIntersects ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Use a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry intersects.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSIntersects
Since
3.1

◆ GEOSPreparedIntersects_r()

char GEOSPreparedIntersects_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedIntersectsXY()

char GEOSPreparedIntersectsXY ( const GEOSPreparedGeometry pg1,
double  x,
double  y 
)

Use a GEOSPreparedGeometry do a high performance calculation of whether the provided point intersects.

Parameters
pg1The prepared geometry
xx coordinate of point to test
yy coordinate of point to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSIntersects
Since
3.12

◆ GEOSPreparedIntersectsXY_r()

char GEOSPreparedIntersectsXY_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
double  x,
double  y 
)

◆ GEOSPreparedNearestPoints()

GEOSCoordSequence* GEOSPreparedNearestPoints ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Use a GEOSPreparedGeometry do a high performance calculation to find the nearest points between the prepared and provided geometry.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
A coordinate sequence containing the nearest points, or NULL on exception. The first point in the sequence is from the prepared geometry, and the seconds is from the other argument.
Since
3.9

◆ GEOSPreparedNearestPoints_r()

GEOSCoordSequence* GEOSPreparedNearestPoints_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedOverlaps()

char GEOSPreparedOverlaps ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Use a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry overlaps.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSOverlaps
Since
3.3

◆ GEOSPreparedOverlaps_r()

char GEOSPreparedOverlaps_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedRelate()

char* GEOSPreparedRelate ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Use a GEOSPreparedGeometry do a high-performance calculation of the DE9IM relationship between the prepared and provided geometry.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
The DE9IM string
See also
GEOSPrepare
GEOSRelate
GEOSPreparedRelatePattern
Since
3.13

◆ GEOSPreparedRelate_r()

char* GEOSPreparedRelate_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedRelatePattern()

char GEOSPreparedRelatePattern ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2,
const char *  imPattern 
)

Use a GEOSPreparedGeometry do a high-performance calculation of the DE9IM relationship between the prepared and provided geometry, and compare the relationship to the provided DE9IM pattern. Returns true if the patterns are consistent and false otherwise.

Parameters
pg1The prepared geometry
g2The geometry to test
imPatternThe DE9IM pattern to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSPrepare
GEOSRelatePattern
GEOSPreparedRelate
Since
3.13

◆ GEOSPreparedRelatePattern_r()

char GEOSPreparedRelatePattern_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2,
const char *  im 
)

◆ GEOSPreparedTouches()

char GEOSPreparedTouches ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Use a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry touches.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSTouches
Since
3.3

◆ GEOSPreparedTouches_r()

char GEOSPreparedTouches_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSPreparedWithin()

char GEOSPreparedWithin ( const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

Use a GEOSPreparedGeometry do a high performance calculation of whether the provided geometry is within.

Parameters
pg1The prepared geometry
g2The geometry to test
Returns
1 on true, 0 on false, 2 on exception
See also
GEOSWithin
Since
3.3

◆ GEOSPreparedWithin_r()

char GEOSPreparedWithin_r ( GEOSContextHandle_t  handle,
const GEOSPreparedGeometry pg1,
const GEOSGeometry g2 
)

◆ GEOSProject()

double GEOSProject ( const GEOSGeometry line,
const GEOSGeometry point 
)

Distance of point projected onto line from the start of the line.

Parameters
linelinear target of projection
pointpoint to be projected onto 'g'
Returns
distance along line that point projects to, -1 on exception
Note
Line parameter must be a LineString.
Since
3.2

◆ GEOSProject_r()

double GEOSProject_r ( GEOSContextHandle_t  handle,
const GEOSGeometry line,
const GEOSGeometry point 
)
See also
GEOSProject

◆ GEOSProjectNormalized()

double GEOSProjectNormalized ( const GEOSGeometry line,
const GEOSGeometry point 
)

Project point to line and calculate the proportion of the line the point is from the start. For example, a point that projects to the middle of a line would be return 0.5.

Parameters
linelinear target of projection
pointthe point to project
Returns
The proportion of the overall line length that the projected point falls at.
Since
3.2

◆ GEOSProjectNormalized_r()

double GEOSProjectNormalized_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
const GEOSGeometry p 
)

◆ GEOSRelate()

char* GEOSRelate ( const GEOSGeometry g1,
const GEOSGeometry g2 
)

Calculate the DE9IM string for this geometry pair. The result is a 9-character string containing dimension symbols in the set "012F".

See also
geos::geom::Geometry::relate
Parameters
g1First geometry in pair
g2Second geometry in pair
Returns
DE9IM string. Caller is responsible for freeing with GEOSFree(). NULL on exception
Since
2.2

◆ GEOSRelate_r()

char* GEOSRelate_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2 
)
See also
GEOSRelate

◆ GEOSRelateBoundaryNodeRule()

char* GEOSRelateBoundaryNodeRule ( const GEOSGeometry g1,
const GEOSGeometry g2,
int  bnr 
)

Calculate the DE9IM string for this geometry pair, using the supplied GEOSRelateBoundaryNodeRules.

See also
geos::geom::Geometry::relate
geos::algorithm::BoundaryNodeRule
Parameters
g1First geometry in pair
g2Second geometry in pair
bnrA member of the GEOSRelateBoundaryNodeRules enum
Returns
DE9IM string. Caller is responsible for freeing with GEOSFree(). NULL on exception
Since
3.3

◆ GEOSRelateBoundaryNodeRule_r()

char* GEOSRelateBoundaryNodeRule_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
int  bnr 
)

◆ GEOSRelatePattern()

char GEOSRelatePattern ( const GEOSGeometry g1,
const GEOSGeometry g2,
const char *  imPattern 
)

Calculate the DE9IM string for a geometry pair and compare against a DE9IM pattern. Returns true if the computed matrix matches the pattern. The pattern is a 9-character string containing symbols in the set "012TF*". "012F" match the corresponding dimension symbol; "T" matches any non-empty dimension; "*" matches any dimension.

See also
geos::geom::Geometry::relate
Parameters
g1First geometry in pair
g2Second geometry in pair
imPatternDE9IM pattern to match
Returns
1 on true, 0 on false, 2 on exception
Since
2.2

◆ GEOSRelatePattern_r()

char GEOSRelatePattern_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g1,
const GEOSGeometry g2,
const char *  imPattern 
)

◆ GEOSRelatePatternMatch()

char GEOSRelatePatternMatch ( const char *  intMatrix,
const char *  imPattern 
)

Compare a DE9IM string to a pattern and return true if they are consistent.

Parameters
intMatrixDE9IM string (contains symbols "012F")
imPatternPattern to match to (may also contain symbols "T" and "*")
Returns
1 on true, 0 on false, 2 on exception
Since
3.3

◆ GEOSRelatePatternMatch_r()

char GEOSRelatePatternMatch_r ( GEOSContextHandle_t  handle,
const char *  intMatrix,
const char *  imPattern 
)

◆ GEOSRemoveRepeatedPoints()

GEOSGeometry* GEOSRemoveRepeatedPoints ( const GEOSGeometry g,
double  tolerance 
)

Works from start of each coordinate sequence in the geometry, retaining points that are further away from the previous retained point than the tolerance value.

Removing repeated points with a non-zero tolerance may result in an invalid geometry being returned. Be sure to check and repair validity.

Returns
A geometry with all points within the tolerance of each other removed.
Parameters
gThe geometry to filter
toleranceRemove all points within this distance of each other. Use 0.0 to remove only exactly repeated points.
See also