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 struct GEOSClusterInfo_t GEOSClusterInfo
 
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)
 
GEOSClusterInfoGEOSClusterDBSCAN_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double eps, unsigned minPoints)
 
GEOSClusterInfoGEOSClusterGeometryDistance_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
 
GEOSClusterInfoGEOSClusterGeometryIntersects_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
GEOSClusterInfoGEOSClusterEnvelopeDistance_r (GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
 
GEOSClusterInfoGEOSClusterEnvelopeIntersects_r (GEOSContextHandle_t handle, const GEOSGeometry *g)
 
size_t GEOSClusterInfo_getNumClusters_r (GEOSContextHandle_t, const GEOSClusterInfo *clusters)
 
size_t GEOSClusterInfo_getClusterSize_r (GEOSContextHandle_t, const GEOSClusterInfo *clusters, size_t i)
 
size_t * GEOSClusterInfo_getClustersForInputs_r (GEOSContextHandle_t, const GEOSClusterInfo *clusters)
 
const size_t * GEOSClusterInfo_getInputsForClusterN_r (GEOSContextHandle_t, const GEOSClusterInfo *clusters, size_t i)
 
void GEOSClusterInfo_destroy_r (GEOSContextHandle_t, GEOSClusterInfo *info)
 
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)
 

Clustering

Functions for clustering geometries

GEOSClusterInfoGEOSClusterDBSCAN (const GEOSGeometry *g, double eps, unsigned minPoints)
 GEOSClusterDBSCAN.
 
GEOSClusterInfoGEOSClusterGeometryDistance (const GEOSGeometry *g, double d)
 GEOSClusterGeometryDistance.
 
GEOSClusterInfoGEOSClusterGeometryIntersects (const GEOSGeometry *g)
 GEOSClusterGeometryIntersects.
 
GEOSClusterInfoGEOSClusterEnvelopeDistance (const GEOSGeometry *g, double d)
 GEOSClusterEnvelopeDistance.
 
GEOSClusterInfoGEOSClusterEnvelopeIntersects (const GEOSGeometry *g)
 GEOSClusterEnvelopeIntersects.
 
size_t GEOSClusterInfo_getNumClusters (const GEOSClusterInfo *clusters)
 GEOSClusterInfo_getNumClusters.
 
size_t GEOSClusterInfo_getClusterSize (const GEOSClusterInfo *clusters, size_t i)
 GEOSClusterInfo_getSize.
 
size_t * GEOSClusterInfo_getClustersForInputs (const GEOSClusterInfo *clusters)
 GEOSClusterInfo_getClustersForInputs.
 
const size_t * GEOSClusterInfo_getInputsForClusterN (const GEOSClusterInfo *clusters, size_t i)
 GEOSClusterInfo_getInputsForClusterN.
 
void GEOSClusterInfo_destroy (GEOSClusterInfo *clusters)
 GEOSClusterInfo_destroy.
 

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()

◆ GEOSClusterInfo

typedef struct GEOSClusterInfo_t GEOSClusterInfo

Object containing information about cluster of geometries.

See also
GEOSClusterInfo_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  )
extern

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)
extern
Deprecated:
in 3.5.0, replaced by GEOS_finish_r()

◆ GEOS_finish_r()

void GEOS_finish_r ( GEOSContextHandle_t  handle)
extern

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  )
extern

◆ GEOS_getWKBByteOrder_r()

int GEOS_getWKBByteOrder_r ( GEOSContextHandle_t  handle)
extern

◆ GEOS_getWKBOutputDims()

int GEOS_getWKBOutputDims ( void  )
extern

◆ GEOS_getWKBOutputDims_r()

int GEOS_getWKBOutputDims_r ( GEOSContextHandle_t  handle)
extern

◆ GEOS_init_r()

GEOSContextHandle_t GEOS_init_r ( void  )
extern

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  )
extern

Cancel a pending interruption request

Since
3.4

◆ GEOS_interruptRegisterCallback()

GEOSInterruptCallback * GEOS_interruptRegisterCallback ( GEOSInterruptCallback cb)
extern

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  )
extern

Request safe interruption of operations

Since
3.4

◆ GEOS_printDouble()

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

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)
extern

◆ GEOS_setWKBByteOrder_r()

int GEOS_setWKBByteOrder_r ( GEOSContextHandle_t  handle,
int  byteOrder 
)
extern

◆ GEOS_setWKBOutputDims()

int GEOS_setWKBOutputDims ( int  newDims)
extern

◆ GEOS_setWKBOutputDims_r()

int GEOS_setWKBOutputDims_r ( GEOSContextHandle_t  handle,
int  newDims 
)
extern

◆ GEOSArea()

int GEOSArea ( const GEOSGeometry g,
double *  area 
)
extern

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 
)
extern
See also
GEOSArea

◆ GEOSBoundary()

GEOSGeometry * GEOSBoundary ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSBoundary

◆ GEOSBuffer()

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

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 
)
extern
See also
GEOSBuffer

◆ GEOSBufferParams_create()

GEOSBufferParams * GEOSBufferParams_create ( void  )
extern

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)
extern

◆ GEOSBufferParams_destroy()

void GEOSBufferParams_destroy ( GEOSBufferParams parms)
extern

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 
)
extern

◆ GEOSBufferParams_setEndCapStyle()

int GEOSBufferParams_setEndCapStyle ( GEOSBufferParams p,
int  style 
)
extern

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 
)
extern

◆ GEOSBufferParams_setJoinStyle()

int GEOSBufferParams_setJoinStyle ( GEOSBufferParams p,
int  joinStyle 
)
extern

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 
)
extern

◆ GEOSBufferParams_setMitreLimit()

int GEOSBufferParams_setMitreLimit ( GEOSBufferParams p,
double  mitreLimit 
)
extern

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 
)
extern

◆ GEOSBufferParams_setQuadrantSegments()

int GEOSBufferParams_setQuadrantSegments ( GEOSBufferParams p,
int  quadSegs 
)
extern

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 
)
extern

◆ GEOSBufferParams_setSingleSided()

int GEOSBufferParams_setSingleSided ( GEOSBufferParams p,
int  singleSided 
)
extern

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 
)
extern

◆ GEOSBufferWithParams()

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

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 
)
extern

◆ GEOSBufferWithStyle()

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

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 
)
extern

◆ GEOSBuildArea()

GEOSGeometry * GEOSBuildArea ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSBuildArea

◆ GEOSClipByRect()

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

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 
)
extern
See also
GEOSClipByRect

◆ GEOSClusterDBSCAN()

GEOSClusterInfo * GEOSClusterDBSCAN ( const GEOSGeometry g,
double  eps,
unsigned  minPoints 
)
extern

GEOSClusterDBSCAN.

Cluster geometries using the DBSCAN algorithm

Parameters
ga collection of geometries to be clustered
epsdistance parameter for clustering
minPointsdensity parameter for clustering
Returns
cluster information object

◆ GEOSClusterDBSCAN_r()

GEOSClusterInfo * GEOSClusterDBSCAN_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  eps,
unsigned  minPoints 
)
extern

◆ GEOSClusterEnvelopeDistance()

GEOSClusterInfo * GEOSClusterEnvelopeDistance ( const GEOSGeometry g,
double  d 
)
extern

GEOSClusterEnvelopeDistance.

Cluster geometries according to an envelope distance threshold

Parameters
ga collection of geometries to be clustered
dminimum envelope distance between geometries in the same cluster
Returns
cluster information object

◆ GEOSClusterEnvelopeDistance_r()

GEOSClusterInfo * GEOSClusterEnvelopeDistance_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  d 
)
extern

◆ GEOSClusterEnvelopeIntersects()

GEOSClusterInfo * GEOSClusterEnvelopeIntersects ( const GEOSGeometry g)
extern

GEOSClusterEnvelopeIntersects.

Cluster geometries whose envelopes intersect

Parameters
g
Returns
cluster information object

◆ GEOSClusterEnvelopeIntersects_r()

GEOSClusterInfo * GEOSClusterEnvelopeIntersects_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
extern

◆ GEOSClusterGeometryDistance()

GEOSClusterInfo * GEOSClusterGeometryDistance ( const GEOSGeometry g,
double  d 
)
extern

GEOSClusterGeometryDistance.

Cluster geometries according to a distance threshold

Parameters
ga collection of geometries to be clustered
dminimum distance between geometries in the same cluster
Returns
cluster information object

◆ GEOSClusterGeometryDistance_r()

GEOSClusterInfo * GEOSClusterGeometryDistance_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g,
double  d 
)
extern

◆ GEOSClusterGeometryIntersects()

GEOSClusterInfo * GEOSClusterGeometryIntersects ( const GEOSGeometry g)
extern

GEOSClusterGeometryIntersects.

Cluster geometries that intersect

Parameters
ga collection of geometries to be clustered
Returns
cluster information object

◆ GEOSClusterGeometryIntersects_r()

GEOSClusterInfo * GEOSClusterGeometryIntersects_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
extern

◆ GEOSClusterInfo_destroy()

void GEOSClusterInfo_destroy ( GEOSClusterInfo clusters)
extern

GEOSClusterInfo_destroy.

Destroy a cluster information object.

Parameters
clusterscluster information object

◆ GEOSClusterInfo_destroy_r()

void GEOSClusterInfo_destroy_r ( GEOSContextHandle_t  ,
GEOSClusterInfo info 
)
extern

◆ GEOSClusterInfo_getClustersForInputs()

size_t * GEOSClusterInfo_getClustersForInputs ( const GEOSClusterInfo clusters)
extern

GEOSClusterInfo_getClustersForInputs.

Get the cluster index associated with each input to the clustering operation. Inputs that do are not associated with any cluster will have an index of GEOS_CLUSTER_NONE.

Parameters
clusterscluster information object
Returns
an array of cluster indices, to be freed by the caller.

◆ GEOSClusterInfo_getClustersForInputs_r()

size_t * GEOSClusterInfo_getClustersForInputs_r ( GEOSContextHandle_t  ,
const GEOSClusterInfo clusters 
)
extern

◆ GEOSClusterInfo_getClusterSize()

size_t GEOSClusterInfo_getClusterSize ( const GEOSClusterInfo clusters,
size_t  i 
)
extern

GEOSClusterInfo_getSize.

Get the number of elements in the ith cluster (0-indexed)

Parameters
clusterscluster information object
icluster for which a size will be returned
Returns
number of elements in the cluster

◆ GEOSClusterInfo_getClusterSize_r()

size_t GEOSClusterInfo_getClusterSize_r ( GEOSContextHandle_t  ,
const GEOSClusterInfo clusters,
size_t  i 
)
extern

◆ GEOSClusterInfo_getInputsForClusterN()

const size_t * GEOSClusterInfo_getInputsForClusterN ( const GEOSClusterInfo clusters,
size_t  i 
)
extern

GEOSClusterInfo_getInputsForClusterN.

Parameters
clusterscluster information object
iindex of the cluster for which indices should be retrieved
Returns
a pointer to an array of cluster indices. Size of the array is indicated by GEOSClusterInfo_getNumElements. The array is owner by the cluster information object and should not be modified or freed by the caller.

◆ GEOSClusterInfo_getInputsForClusterN_r()

const size_t * GEOSClusterInfo_getInputsForClusterN_r ( GEOSContextHandle_t  ,
const GEOSClusterInfo clusters,
size_t  i 
)
extern

◆ GEOSClusterInfo_getNumClusters()

size_t GEOSClusterInfo_getNumClusters ( const GEOSClusterInfo clusters)
extern

GEOSClusterInfo_getNumClusters.

Get the number of clusters identified by a clustering operation

Parameters
clusterscluster information object
Returns
number of clusters identified

◆ GEOSClusterInfo_getNumClusters_r()

size_t GEOSClusterInfo_getNumClusters_r ( GEOSContextHandle_t  ,
const GEOSClusterInfo clusters 
)
extern

◆ GEOSConcaveHull()

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

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 
)
extern
See also
GEOSConcaveHull

◆ GEOSConcaveHullByLength()

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

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 
)
extern

◆ GEOSConcaveHullOfPolygons()

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

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 
)
extern

◆ GEOSConstrainedDelaunayTriangulation()

GEOSGeometry * GEOSConstrainedDelaunayTriangulation ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSContains()

char GEOSContains ( const GEOSGeometry g1,
const GEOSGeometry g2 
)
extern

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 
)
extern
See also
GEOSContains

◆ GEOSContext_setErrorHandler_r()

GEOSMessageHandler GEOSContext_setErrorHandler_r ( GEOSContextHandle_t  extHandle,
GEOSMessageHandler  ef 
)
extern

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 
)
extern

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 
)
extern

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 
)
extern

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)
extern

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 
)
extern
See also
GEOSConvexHull

◆ GEOSCoordSeq_clone()

GEOSCoordSequence * GEOSCoordSeq_clone ( const GEOSCoordSequence s)
extern

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 
)
extern

◆ GEOSCoordSeq_copyFromArrays()

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

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 
)
extern

◆ GEOSCoordSeq_copyFromBuffer()

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

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 
)
extern

◆ GEOSCoordSeq_copyToArrays()

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

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 
)
extern

◆ GEOSCoordSeq_copyToBuffer()

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

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 
)
extern

◆ GEOSCoordSeq_create()

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

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 
)
extern

◆ GEOSCoordSeq_destroy()

void GEOSCoordSeq_destroy ( GEOSCoordSequence s)
extern

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 
)
extern

◆ GEOSCoordSeq_getDimensions()

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

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 
)
extern

◆ GEOSCoordSeq_getOrdinate()

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

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 
)
extern

◆ GEOSCoordSeq_getSize()

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

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 
)
extern

◆ GEOSCoordSeq_getX()

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

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 
)
extern

◆ GEOSCoordSeq_getXY()

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

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 
)
extern

◆ GEOSCoordSeq_getXYZ()

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

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 
)
extern

◆ GEOSCoordSeq_getY()

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

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 
)
extern

◆ GEOSCoordSeq_getZ()

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

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 
)
extern

◆ GEOSCoordSeq_isCCW()

int GEOSCoordSeq_isCCW ( const GEOSCoordSequence s,
char *  is_ccw 
)
extern

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 
)
extern

◆ GEOSCoordSeq_setOrdinate()

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

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 
)
extern

◆ GEOSCoordSeq_setX()

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

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 
)
extern

◆ GEOSCoordSeq_setXY()

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

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 
)
extern

◆ GEOSCoordSeq_setXYZ()

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

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 
)
extern

◆ GEOSCoordSeq_setY()

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

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 
)
extern

◆ GEOSCoordSeq_setZ()

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

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 
)
extern

◆ GEOSCoverageIsValid()

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

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 
)
extern

◆ GEOSCoverageSimplifyVW()

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

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 
)
extern

◆ GEOSCoverageUnion()

GEOSGeometry * GEOSCoverageUnion ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSCoveredBy()

char GEOSCoveredBy ( const GEOSGeometry g1,
const GEOSGeometry g2 
)
extern

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 
)
extern
See also
GEOSCoveredBy

◆ GEOSCovers()

char GEOSCovers ( const GEOSGeometry g1,
const GEOSGeometry g2 
)
extern

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 
)
extern
See also
GEOSCovers

◆ GEOSCrosses()

char GEOSCrosses ( const GEOSGeometry g1,
const GEOSGeometry g2 
)
extern

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 
)
extern
See also
GEOSCrosses

◆ GEOSDelaunayTriangulation()

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

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 
)
extern

◆ GEOSDensify()

GEOSGeometry * GEOSDensify ( const GEOSGeometry g,
double  tolerance 
)
extern

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 
)
extern
See also
GEOSDensify

◆ GEOSDifference()

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

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 
)
extern
See also
GEOSDifference

◆ GEOSDifferencePrec()

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

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 
)
extern

◆ GEOSDisjoint()

char GEOSDisjoint ( const GEOSGeometry g1,
const GEOSGeometry g2 
)
extern

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 
)
extern
See also
GEOSDisjoint

◆ GEOSDisjointSubsetUnion()

GEOSGeometry * GEOSDisjointSubsetUnion ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSDistance()

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

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 
)
extern
See also
GEOSDistance

◆ GEOSDistanceIndexed()

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

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 
)
extern

◆ GEOSDistanceWithin()

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

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 
)
extern

◆ GEOSEnvelope()

GEOSGeometry * GEOSEnvelope ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSEnvelope

◆ GEOSEquals()

char GEOSEquals ( const GEOSGeometry g1,
const GEOSGeometry g2 
)
extern

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 
)
extern
See also
GEOSEquals

◆ GEOSEqualsExact()

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

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 
)
extern
See also
GEOSEqualsExact

◆ GEOSEqualsIdentical()

char GEOSEqualsIdentical ( const GEOSGeometry g1,
const GEOSGeometry g2 
)
extern

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 
)
extern

◆ GEOSFrechetDistance()

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

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 
)
extern

◆ GEOSFrechetDistanceDensify()

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

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 
)
extern

◆ GEOSFree()

void GEOSFree ( void *  buffer)
extern

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 
)
extern
See also
GEOSFree

◆ GEOSGeoJSONReader_create()

GEOSGeoJSONReader * GEOSGeoJSONReader_create ( void  )
extern

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)
extern

◆ GEOSGeoJSONReader_destroy()

void GEOSGeoJSONReader_destroy ( GEOSGeoJSONReader reader)
extern

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 
)
extern

◆ GEOSGeoJSONReader_readGeometry()

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

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 
)
extern
See also
GEOSGeoJSONReader_read

◆ GEOSGeoJSONWriter_create()

GEOSGeoJSONWriter * GEOSGeoJSONWriter_create ( void  )
extern

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)
extern

◆ GEOSGeoJSONWriter_destroy()

void GEOSGeoJSONWriter_destroy ( GEOSGeoJSONWriter writer)
extern

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 
)
extern

◆ GEOSGeoJSONWriter_writeGeometry()

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

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 
)
extern

◆ GEOSGeom_clone()

GEOSGeometry * GEOSGeom_clone ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSGeom_clone

◆ GEOSGeom_createCircularString()

GEOSGeometry * GEOSGeom_createCircularString ( GEOSCoordSequence s)
extern

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 
)
extern

◆ GEOSGeom_createCollection()

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

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 
)
extern

◆ GEOSGeom_createCompoundCurve()

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

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 
)
extern

◆ GEOSGeom_createCurvePolygon()

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

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 
)
extern

◆ GEOSGeom_createEmptyCircularString()

GEOSGeometry * GEOSGeom_createEmptyCircularString ( )
extern

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)
extern

◆ GEOSGeom_createEmptyCollection()

GEOSGeometry * GEOSGeom_createEmptyCollection ( int  type)
extern

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 
)
extern

◆ GEOSGeom_createEmptyCompoundCurve()

GEOSGeometry * GEOSGeom_createEmptyCompoundCurve ( )
extern

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)
extern

◆ GEOSGeom_createEmptyCurvePolygon()

GEOSGeometry * GEOSGeom_createEmptyCurvePolygon ( )
extern

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)
extern

◆ GEOSGeom_createEmptyLineString()

GEOSGeometry * GEOSGeom_createEmptyLineString ( void  )
extern

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)
extern

◆ GEOSGeom_createEmptyPoint()

GEOSGeometry * GEOSGeom_createEmptyPoint ( void  )
extern

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)
extern

◆ GEOSGeom_createEmptyPolygon()

GEOSGeometry * GEOSGeom_createEmptyPolygon ( void  )
extern

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)
extern

◆ GEOSGeom_createLinearRing()

GEOSGeometry * GEOSGeom_createLinearRing ( GEOSCoordSequence s)
extern

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 
)
extern

◆ GEOSGeom_createLineString()

GEOSGeometry * GEOSGeom_createLineString ( GEOSCoordSequence s)
extern

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 
)
extern

◆ GEOSGeom_createPoint()

GEOSGeometry * GEOSGeom_createPoint ( GEOSCoordSequence s)
extern

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 
)
extern

◆ GEOSGeom_createPointFromXY()

GEOSGeometry * GEOSGeom_createPointFromXY ( double  x,
double  y 
)
extern

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 
)
extern

◆ GEOSGeom_createPolygon()

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

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 
)
extern

◆ GEOSGeom_createRectangle()

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

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 
)
extern

◆ GEOSGeom_destroy()

void GEOSGeom_destroy ( GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeom_extractUniquePoints()

GEOSGeometry * GEOSGeom_extractUniquePoints ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeom_getCoordinateDimension()

int GEOSGeom_getCoordinateDimension ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeom_getCoordSeq()

const GEOSCoordSequence * GEOSGeom_getCoordSeq ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeom_getDimensions()

int GEOSGeom_getDimensions ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeom_getExtent()

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

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 
)
extern

◆ GEOSGeom_getPrecision()

double GEOSGeom_getPrecision ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeom_getUserData()

void * GEOSGeom_getUserData ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeom_getXMax()

int GEOSGeom_getXMax ( const GEOSGeometry g,
double *  value 
)
extern

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 
)
extern

◆ GEOSGeom_getXMin()

int GEOSGeom_getXMin ( const GEOSGeometry g,
double *  value 
)
extern

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 
)
extern

◆ GEOSGeom_getYMax()

int GEOSGeom_getYMax ( const GEOSGeometry g,
double *  value 
)
extern

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 
)
extern

◆ GEOSGeom_getYMin()

int GEOSGeom_getYMin ( const GEOSGeometry g,
double *  value 
)
extern

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 
)
extern

◆ GEOSGeom_releaseCollection()

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

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 
)
extern

◆ GEOSGeom_setPrecision()

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

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 
)
extern

◆ GEOSGeom_setUserData()

void GEOSGeom_setUserData ( GEOSGeometry g,
void *  userData 
)
extern

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 
)
extern

◆ GEOSGeom_transformXY()

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

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 
)
extern

◆ GEOSGeom_transformXYZ()

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

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 
)
extern

◆ GEOSGeomFromHEX_buf()

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

◆ GEOSGeomFromHEX_buf_r()

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

◆ GEOSGeomFromWKB_buf()

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

◆ GEOSGeomFromWKB_buf_r()

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

◆ GEOSGeomFromWKT()

GEOSGeometry * GEOSGeomFromWKT ( const char *  wkt)
extern

◆ GEOSGeomFromWKT_r()

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

◆ GEOSGeomGetEndPoint()

GEOSGeometry * GEOSGeomGetEndPoint ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeomGetLength()

int GEOSGeomGetLength ( const GEOSGeometry g,
double *  length 
)
extern

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 
)
extern

◆ GEOSGeomGetM()

int GEOSGeomGetM ( const GEOSGeometry g,
double *  m 
)
extern

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 
)
extern
See also
GEOSGeomGetM

◆ GEOSGeomGetNumPoints()

int GEOSGeomGetNumPoints ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeomGetPointN()

GEOSGeometry * GEOSGeomGetPointN ( const GEOSGeometry g,
int  n 
)
extern

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 
)
extern

◆ GEOSGeomGetStartPoint()

GEOSGeometry * GEOSGeomGetStartPoint ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGeomGetX()

int GEOSGeomGetX ( const GEOSGeometry g,
double *  x 
)
extern

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 
)
extern
See also
GEOSGeomGetX

◆ GEOSGeomGetY()

int GEOSGeomGetY ( const GEOSGeometry g,
double *  y 
)
extern

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 
)
extern
See also
GEOSGeomGetY

◆ GEOSGeomGetZ()

int GEOSGeomGetZ ( const GEOSGeometry g,
double *  z 
)
extern

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 
)
extern
See also
GEOSGeomGetZ

◆ GEOSGeomToHEX_buf()

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

◆ GEOSGeomToHEX_buf_r()

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

◆ GEOSGeomToWKB_buf()

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

◆ GEOSGeomToWKB_buf_r()

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

◆ GEOSGeomToWKT()

char * GEOSGeomToWKT ( const GEOSGeometry g)
extern

◆ GEOSGeomToWKT_r()

char * GEOSGeomToWKT_r ( GEOSContextHandle_t  handle,
const GEOSGeometry g 
)
extern

◆ GEOSGeomType()

char * GEOSGeomType ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSGeomType

◆ GEOSGeomTypeId()

int GEOSGeomTypeId ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSGeomTypeId

◆ GEOSGetCentroid()

GEOSGeometry * GEOSGetCentroid ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSGetCentroid

◆ GEOSGetExteriorRing()

const GEOSGeometry * GEOSGetExteriorRing ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGetGeometryN()

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

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 
)
extern

◆ GEOSGetInteriorRingN()

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

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 
)
extern

◆ GEOSGetNumCoordinates()

int GEOSGetNumCoordinates ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGetNumGeometries()

int GEOSGetNumGeometries ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGetNumInteriorRings()

int GEOSGetNumInteriorRings ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSGetSRID()

int GEOSGetSRID ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSGetSRID

◆ GEOSHasM()

char GEOSHasM ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSHasM

◆ GEOSHasZ()

char GEOSHasZ ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSHasZ

◆ GEOSHausdorffDistance()

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

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 
)
extern

◆ GEOSHausdorffDistanceDensify()

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

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 
)
extern

◆ GEOSHilbertCode()

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

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 
)
extern
See also
GEOSHilbertCode

◆ GEOSInterpolate()

GEOSGeometry * GEOSInterpolate ( const GEOSGeometry line,
double  d 
)
extern

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 
)
extern
See also
GEOSInterpolate

◆ GEOSInterpolateNormalized()

GEOSGeometry * GEOSInterpolateNormalized ( const GEOSGeometry line,
double  proportion 
)
extern

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 
)
extern

◆ GEOSIntersection()

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

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 
)
extern

◆ GEOSIntersectionPrec()

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

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 
)
extern

◆ GEOSIntersects()

char GEOSIntersects ( const GEOSGeometry g1,
const GEOSGeometry g2 
)
extern

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 
)
extern
See also
GEOSIntersects

◆ GEOSisClosed()

char GEOSisClosed ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSisClosed

◆ GEOSisEmpty()

char GEOSisEmpty ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSisEmpty

◆ GEOSisRing()

char GEOSisRing ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSisRing

◆ GEOSisSimple()

char GEOSisSimple ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSisSimple

◆ GEOSisValid()

char GEOSisValid ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSisValid

◆ GEOSisValidDetail()

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

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 
)
extern

◆ GEOSisValidReason()

char * GEOSisValidReason ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSLargestEmptyCircle()

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

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 
)
extern

◆ GEOSLength()

int GEOSLength ( const GEOSGeometry g,
double *  length 
)
extern

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 
)
extern
See also
GEOSLength

◆ GEOSLineMerge()

GEOSGeometry * GEOSLineMerge ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSLineMerge

◆ GEOSLineMergeDirected()

GEOSGeometry * GEOSLineMergeDirected ( const GEOSGeometry g)
extern

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 
)
extern

◆ GEOSLineSubstring()

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

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 
)
extern

◆ GEOSMakeValid()

GEOSGeometry * GEOSMakeValid ( const GEOSGeometry g)
extern

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 
)
extern
See also
GEOSMakeValid

◆ GEOSMakeValidParams_create()

GEOSMakeValidParams * GEOSMakeValidParams_create ( void  )
extern

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)
extern

◆ GEOSMakeValidParams_destroy()

void GEOSMakeValidParams_destroy ( GEOSMakeValidParams parms)
extern

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 
)
extern

◆ GEOSMakeValidParams_setKeepCollapsed()

int GEOSMakeValidParams_setKeepCollapsed ( GEOSMakeValidParams p,
int  keepCollapsed 
)
extern

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 
)
extern

◆ GEOSMakeValidParams_setMethod()

int GEOSMakeValidParams_setMethod ( GEOSMakeValidParams p,
enum GEOSMakeValidMethods  method 
)
extern

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 
)
extern

◆ GEOSMakeValidWithParams()

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

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 
)
extern

◆ GEOSMaximumInscribedCircle()

GEOSGeometry * GEOSMaximumInscribedCircle ( const GEOSGeometry g,
double  tolerance 
)
extern

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 
)
extern

◆ GEOSMinimumBoundingCircle()

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

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,