geos_c.h
Go to the documentation of this file.
/************************************************************************
*
* C-Wrapper for GEOS library
*
* Copyright (C) 2010 2011 Sandro Santilli <strk@kbt.io>
* Copyright (C) 2005 Refractions Research Inc.
*
* This is free software; you can redistribute and/or modify it under
* the terms of the GNU Lesser General Public Licence as published
* by the Free Software Foundation.
* See the COPYING file for more information.
***********************************************************************/
#ifndef GEOS_C_H_INCLUDED
#define GEOS_C_H_INCLUDED
#ifndef __cplusplus
# include <stddef.h> /* for size_t definition */
#else
# include <cstddef>
using std::size_t;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* ====================================================================== */
/* Version */
/* ====================================================================== */
#ifndef GEOS_VERSION_MAJOR
#define GEOS_VERSION_MAJOR 3
#endif
#ifndef GEOS_VERSION_MINOR
#define GEOS_VERSION_MINOR 14
#endif
#ifndef GEOS_VERSION_PATCH
#define GEOS_VERSION_PATCH 1
#endif
#ifndef GEOS_VERSION
#define GEOS_VERSION "3.14.1"
#endif
#ifndef GEOS_JTS_PORT
#define GEOS_JTS_PORT "1.18.0"
#endif
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 20
#define GEOS_CAPI_VERSION_PATCH 5
#define GEOS_CAPI_VERSION "3.14.1-CAPI-1.20.5"
#define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
#define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
#include <geos/export.h>
typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
typedef void (*GEOSMessageHandler)(GEOS_PRINTF_FORMAT const char *fmt, ...)
GEOS_PRINTF_FORMAT_ATTR(1, 2);
typedef void (*GEOSMessageHandler_r)(const char *message, void *userdata);
/*
* When we're included by geos_c.cpp, these types are #defined to the
* C++ definitions via preprocessor. We don't touch them to allow the
* compiler to cross-check the declarations. However, for all "normal"
* C-API users, we need to define these types as "opaque" struct pointers, as
* those clients don't have access to the original C++ headers, by design.
*/
#ifndef GEOSGeometry
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 GEOSCoverageCleanParams_t GEOSCoverageCleanParams;
typedef struct GEOSMakeValidParams_t GEOSMakeValidParams;
typedef struct GEOSClusterInfo_t GEOSClusterInfo;
#endif
/*
* These are compatibility definitions for source compatibility
* with GEOS 2.X clients relying on that type.
*/
typedef GEOSGeometry* GEOSGeom;
typedef GEOSCoordSequence* GEOSCoordSeq;
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 GEOSOverlapMerge {
GEOS_MERGE_LONGEST_BORDER = 0,
GEOS_MERGE_MAX_AREA = 1,
GEOS_MERGE_MIN_AREA = 2,
GEOS_MERGE_MIN_INDEX = 3
};
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);
/* ========== Interruption ========== */
typedef void (GEOSInterruptCallback)(void);
typedef int (GEOSContextInterruptCallback)(void*);
extern GEOSInterruptCallback GEOS_DLL *GEOS_interruptRegisterCallback(
GEOSInterruptCallback* cb);
extern GEOSContextInterruptCallback GEOS_DLL *GEOSContext_setInterruptCallback_r(
GEOSContextHandle_t extHandle,
GEOSContextInterruptCallback* cb,
void* userData);
extern void GEOS_DLL GEOS_interruptRequest(void);
extern void GEOS_DLL GEOS_interruptThread(void);
extern void GEOS_DLL GEOS_interruptCancel(void);
/* ========== Initialization and Cleanup ========== */
extern GEOSContextHandle_t GEOS_DLL GEOS_init_r(void);
extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
extern GEOSMessageHandler GEOS_DLL GEOSContext_setNoticeHandler_r(
GEOSContextHandle_t extHandle,
GEOSMessageHandler nf);
extern GEOSMessageHandler GEOS_DLL GEOSContext_setErrorHandler_r(
GEOSContextHandle_t extHandle,
GEOSMessageHandler ef);
extern GEOSMessageHandler_r GEOS_DLL GEOSContext_setNoticeMessageHandler_r(
GEOSContextHandle_t extHandle,
GEOSMessageHandler_r nf,
void *userData);
extern GEOSMessageHandler_r GEOS_DLL GEOSContext_setErrorMessageHandler_r(
GEOSContextHandle_t extHandle,
GEOSMessageHandler_r ef,
void *userData);
/* ========== Coordinate Sequence functions ========== */
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create_r(
GEOSContextHandle_t handle,
unsigned int size,
unsigned int dims);
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_createWithDimensions_r(
GEOSContextHandle_t handle,
unsigned int size,
int hasZ,
int hasM);
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromBuffer_r(
GEOSContextHandle_t handle,
const double* buf,
unsigned int size,
int hasZ,
int hasM);
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromArrays_r(
GEOSContextHandle_t handle,
const double* x,
const double* y,
const double* z,
const double* m,
unsigned int size);
extern int GEOS_DLL GEOSCoordSeq_copyToBuffer_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
double* buf,
int hasZ,
int hasM);
extern int GEOS_DLL GEOSCoordSeq_copyToArrays_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
double* x,
double* y,
double* z,
double* m);
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s);
extern void GEOS_DLL GEOSCoordSeq_destroy_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s);
extern char GEOS_DLL GEOSCoordSeq_hasZ_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s);
extern char GEOS_DLL GEOSCoordSeq_hasM_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s);
extern int GEOS_DLL GEOSCoordSeq_setX_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s, unsigned int idx,
double val);
extern int GEOS_DLL GEOSCoordSeq_setY_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s, unsigned int idx,
double val);
extern int GEOS_DLL GEOSCoordSeq_setZ_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s, unsigned int idx,
double val);
extern int GEOS_DLL GEOSCoordSeq_setM_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s, unsigned int idx,
double val);
extern int GEOS_DLL GEOSCoordSeq_setXY_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s, unsigned int idx,
double x, double y);
extern int GEOS_DLL GEOSCoordSeq_setXYZ_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s, unsigned int idx,
double x, double y, double z);
extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s,
unsigned int idx,
unsigned int dim, double val);
extern int GEOS_DLL GEOSCoordSeq_getX_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
unsigned int idx, double *val);
extern int GEOS_DLL GEOSCoordSeq_getY_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
unsigned int idx, double *val);
extern int GEOS_DLL GEOSCoordSeq_getZ_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
unsigned int idx, double *val);
extern int GEOS_DLL GEOSCoordSeq_getM_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
unsigned int idx, double *val);
extern int GEOS_DLL GEOSCoordSeq_getXY_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
unsigned int idx,
double *x, double *y);
extern int GEOS_DLL GEOSCoordSeq_getXYZ_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
unsigned int idx,
double *x, double *y, double *z);
extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
unsigned int idx,
unsigned int dim, double *val);
extern int GEOS_DLL GEOSCoordSeq_getSize_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
unsigned int *size);
extern int GEOS_DLL GEOSCoordSeq_getDimensions_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
unsigned int *dims);
extern int GEOS_DLL GEOSCoordSeq_isCCW_r(
GEOSContextHandle_t handle,
const GEOSCoordSequence* s,
char* is_ccw);
/* ========= Linear referencing functions ========= */
extern double GEOS_DLL GEOSProject_r(
GEOSContextHandle_t handle,
const GEOSGeometry *line,
const GEOSGeometry *point);
extern GEOSGeometry GEOS_DLL *GEOSInterpolate_r(
GEOSContextHandle_t handle,
const GEOSGeometry *line,
double d);
extern double GEOS_DLL GEOSProjectNormalized_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
const GEOSGeometry *p);
extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double d);
/* ========== Buffer related functions ========== */
extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double width, int quadsegs);
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
};
extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create_r(
GEOSContextHandle_t handle);
extern void GEOS_DLL GEOSBufferParams_destroy_r(
GEOSContextHandle_t handle,
GEOSBufferParams* parms);
extern int GEOS_DLL GEOSBufferParams_setEndCapStyle_r(
GEOSContextHandle_t handle,
GEOSBufferParams* p,
int style);
extern int GEOS_DLL GEOSBufferParams_setJoinStyle_r(
GEOSContextHandle_t handle,
GEOSBufferParams* p,
int joinStyle);
extern int GEOS_DLL GEOSBufferParams_setMitreLimit_r(
GEOSContextHandle_t handle,
GEOSBufferParams* p,
double mitreLimit);
extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments_r(
GEOSContextHandle_t handle,
GEOSBufferParams* p,
int quadSegs);
extern int GEOS_DLL GEOSBufferParams_setSingleSided_r(
GEOSContextHandle_t handle,
GEOSBufferParams* p,
int singleSided);
extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
const GEOSBufferParams* p,
double width);
extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double width, int quadsegs, int endCapStyle,
int joinStyle, double mitreLimit);
extern GEOSGeometry GEOS_DLL *GEOSDensify_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g, double width, int quadsegs,
int joinStyle, double mitreLimit);
/* ========= Geometry Constructors ========= */
extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createPointFromXY_r(
GEOSContextHandle_t handle,
double x, double y);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint_r(
GEOSContextHandle_t handle);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString_r(
GEOSContextHandle_t handle);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon_r(
GEOSContextHandle_t handle);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon_r(
GEOSContextHandle_t handle,
GEOSGeometry* shell,
GEOSGeometry** holes,
unsigned int nholes);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection_r(
GEOSContextHandle_t handle,
int type,
GEOSGeometry* *geoms,
unsigned int ngeoms);
extern GEOSGeometry GEOS_DLL ** GEOSGeom_releaseCollection_r(
GEOSContextHandle_t handle,
GEOSGeometry * collection,
unsigned int * ngeoms);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection_r(
GEOSContextHandle_t handle, int type);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createRectangle_r(
GEOSContextHandle_t handle,
double xmin, double ymin,
double xmax, double ymax);
extern GEOSGeometry GEOS_DLL *GEOSGeom_clone_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createCircularString_r(
GEOSContextHandle_t handle,
GEOSCoordSequence* s);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCircularString_r(
GEOSContextHandle_t handle);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createCompoundCurve_r(
GEOSContextHandle_t handle,
GEOSGeometry** curves,
unsigned int ncurves);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCompoundCurve_r(
GEOSContextHandle_t handle);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createCurvePolygon_r(
GEOSContextHandle_t handle,
GEOSGeometry* shell,
GEOSGeometry** holes,
unsigned int nholes);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCurvePolygon_r(
GEOSContextHandle_t handle);
/* ========= Memory management ========= */
extern void GEOS_DLL GEOSGeom_destroy_r(
GEOSContextHandle_t handle,
GEOSGeometry* g);
/* ========= Coverages ========= */
extern GEOSGeometry GEOS_DLL *
GEOSCoverageUnion_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL
GEOSCoverageIsValid_r(
GEOSContextHandle_t extHandle,
const GEOSGeometry* input,
double gapWidth,
GEOSGeometry** output);
extern GEOSGeometry GEOS_DLL *
GEOSCoverageSimplifyVW_r(
GEOSContextHandle_t extHandle,
const GEOSGeometry* input,
double tolerance,
int preserveBoundary);
extern GEOSCoverageCleanParams GEOS_DLL *
GEOSCoverageCleanParams_create_r(
GEOSContextHandle_t extHandle);
extern void GEOS_DLL
GEOSCoverageCleanParams_destroy_r(
GEOSContextHandle_t extHandle,
GEOSCoverageCleanParams* params);
extern int GEOS_DLL
GEOSCoverageCleanParams_setSnappingDistance_r(
GEOSContextHandle_t extHandle,
GEOSCoverageCleanParams* params,
double snappingDistance);
extern int GEOS_DLL
GEOSCoverageCleanParams_setGapMaximumWidth_r(
GEOSContextHandle_t extHandle,
GEOSCoverageCleanParams* params,
double gapMaximumWidth);
extern int GEOS_DLL
GEOSCoverageCleanParams_setOverlapMergeStrategy_r(
GEOSContextHandle_t extHandle,
GEOSCoverageCleanParams* params,
int overlapMergeStrategy);
extern GEOSGeometry GEOS_DLL *
GEOSCoverageCleanWithParams_r(
GEOSContextHandle_t extHandle,
const GEOSGeometry* input,
const GEOSCoverageCleanParams* params);
extern GEOSGeometry GEOS_DLL *
GEOSCoverageClean_r(
GEOSContextHandle_t extHandle,
const GEOSGeometry* input);
/* ========= Topology Operations ========= */
extern GEOSGeometry GEOS_DLL *GEOSEnvelope_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSConcaveHull_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double ratio,
unsigned int allowHoles);
extern GEOSGeometry GEOS_DLL *GEOSConcaveHullByLength_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double ratio,
unsigned int allowHoles);
extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplify_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
unsigned int isOuter,
double vertexNumFraction);
extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplifyMode_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
unsigned int isOuter,
unsigned int parameterMode,
double parameter);
extern GEOSGeometry GEOS_DLL *GEOSConcaveHullOfPolygons_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double lengthRatio,
unsigned int isTight,
unsigned int isHolesAllowed);
extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSMaximumInscribedCircle_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSLargestEmptyCircle_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
const GEOSGeometry* boundary,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSMinimumClearance_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* distance);
extern GEOSGeometry GEOS_DLL *GEOSDifference_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSDifferencePrec_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSSymDifference_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSSymDifferencePrec_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSBoundary_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSUnion_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSUnionPrec_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSUnaryUnionPrec_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSDisjointSubsetUnion_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSGetCentroid_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSMinimumBoundingCircle_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* radius,
GEOSGeometry** center);
extern GEOSGeometry GEOS_DLL *GEOSNode_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSClipByRect_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double xmin, double ymin,
double xmax, double ymax);
extern int GEOS_DLL GEOSGridIntersectionFractions_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double xmin, double ymin,
double xmax, double ymax,
unsigned nx, unsigned ny,
float* buf);
extern GEOSGeometry GEOS_DLL *GEOSPolygonize_r(
GEOSContextHandle_t handle,
const GEOSGeometry *const geoms[],
unsigned int ngeoms);
extern GEOSGeometry GEOS_DLL *GEOSPolygonize_valid_r(
GEOSContextHandle_t handle,
const GEOSGeometry *const geoms[],
unsigned int ngems);
extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges_r(
GEOSContextHandle_t handle,
const GEOSGeometry * const geoms[],
unsigned int ngeoms);
extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full_r(
GEOSContextHandle_t handle,
const GEOSGeometry* input,
GEOSGeometry** cuts,
GEOSGeometry** dangles,
GEOSGeometry** invalidRings);
extern GEOSGeometry GEOS_DLL *GEOSBuildArea_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSLineMerge_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSLineMergeDirected_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSLineSubstring_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double start_fraction,
double end_fdraction);
extern GEOSGeometry GEOS_DLL *GEOSReverse_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSSimplify_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g, double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSSharedPaths_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSSnap_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double tolerance,
int onlyEdges);
extern GEOSGeometry GEOS_DLL * GEOSConstrainedDelaunayTriangulation_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g);
extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram_r(
GEOSContextHandle_t extHandle,
const GEOSGeometry *g,
const GEOSGeometry *env,
double tolerance,
int flags);
extern int GEOS_DLL 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);
/* ========= Binary predicates ========= */
extern char GEOS_DLL GEOSDisjoint_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSTouches_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSIntersects_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSCrosses_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSWithin_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSContains_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSOverlaps_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSEquals_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSEqualsExact_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
extern char GEOS_DLL GEOSEqualsIdentical_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSCovers_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSCoveredBy_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
/* ========= Prepared Geometry Binary Predicates ========== */
extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern void GEOS_DLL GEOSPreparedGeom_destroy_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* g);
extern char GEOS_DLL GEOSPreparedContains_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedContainsXY_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
double x,
double y);
extern char GEOS_DLL GEOSPreparedContainsProperly_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedCoveredBy_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedCovers_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedCrosses_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedDisjoint_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedIntersects_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedIntersectsXY_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
double x,
double y);
extern char GEOS_DLL GEOSPreparedOverlaps_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedTouches_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedWithin_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL * GEOSPreparedRelate_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedRelatePattern_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2,
const char* im);
extern GEOSCoordSequence GEOS_DLL *GEOSPreparedNearestPoints_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern int GEOS_DLL GEOSPreparedDistance_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2, double *dist);
extern char GEOS_DLL GEOSPreparedDistanceWithin_r(
GEOSContextHandle_t handle,
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2, double dist);
/* ========== STRtree ========== */
extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create_r(
GEOSContextHandle_t handle,
size_t nodeCapacity);
extern int GEOS_DLL GEOSSTRtree_build_r(
GEOSContextHandle_t handle,
GEOSSTRtree *tree);
extern void GEOS_DLL GEOSSTRtree_insert_r(
GEOSContextHandle_t handle,
GEOSSTRtree *tree,
const GEOSGeometry *g,
void *item);
extern void GEOS_DLL GEOSSTRtree_query_r(
GEOSContextHandle_t handle,
GEOSSTRtree *tree,
const GEOSGeometry *g,
GEOSQueryCallback callback,
void *userdata);
extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest_r(
GEOSContextHandle_t handle,
GEOSSTRtree *tree,
const GEOSGeometry* geom);
extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(
GEOSContextHandle_t handle,
GEOSSTRtree *tree,
const void* item,
const GEOSGeometry* itemEnvelope,
GEOSDistanceCallback distancefn,
void* userdata);
extern void GEOS_DLL GEOSSTRtree_iterate_r(
GEOSContextHandle_t handle,
GEOSSTRtree *tree,
GEOSQueryCallback callback,
void *userdata);
extern char GEOS_DLL GEOSSTRtree_remove_r(
GEOSContextHandle_t handle,
GEOSSTRtree *tree,
const GEOSGeometry *g,
void *item);
extern void GEOS_DLL GEOSSTRtree_destroy_r(
GEOSContextHandle_t handle,
GEOSSTRtree *tree);
/* ========= Unary predicate ========= */
extern char GEOS_DLL GEOSisEmpty_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern char GEOS_DLL GEOSisSimple_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern char GEOS_DLL GEOSisRing_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern char GEOS_DLL GEOSHasZ_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern char GEOS_DLL GEOSHasM_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern char GEOS_DLL GEOSisClosed_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g);
/* ========== Dimensionally Extended 9 Intersection Model ========== */
enum GEOSRelateBoundaryNodeRules {
GEOSRELATE_BNR_MOD2 = 1,
GEOSRELATE_BNR_OGC = 1,
GEOSRELATE_BNR_ENDPOINT = 2,
GEOSRELATE_BNR_MULTIVALENT_ENDPOINT = 3,
GEOSRELATE_BNR_MONOVALENT_ENDPOINT = 4
};
extern char GEOS_DLL GEOSRelatePattern_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
const char *imPattern);
extern char GEOS_DLL *GEOSRelate_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSRelatePatternMatch_r(
GEOSContextHandle_t handle,
const char *intMatrix,
const char *imPattern);
extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
int bnr);
/* ========= Validity checking ========= */
enum GEOSValidFlags
{
GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE = 1
};
extern char GEOS_DLL GEOSisValid_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern char GEOS_DLL *GEOSisValidReason_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern char GEOS_DLL GEOSisSimpleDetail_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
int findAllLocations,
GEOSGeometry** location);
extern char GEOS_DLL GEOSisValidDetail_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
int flags,
char** reason,
GEOSGeometry** location);
/* ========== Make Valid ========== */
enum GEOSMakeValidMethods {
GEOS_MAKE_VALID_LINEWORK = 0,
GEOS_MAKE_VALID_STRUCTURE = 1
};
extern GEOSMakeValidParams GEOS_DLL *GEOSMakeValidParams_create_r(
GEOSContextHandle_t extHandle);
extern void GEOS_DLL GEOSMakeValidParams_destroy_r(
GEOSContextHandle_t handle,
GEOSMakeValidParams* parms);
extern int GEOS_DLL GEOSMakeValidParams_setKeepCollapsed_r(
GEOSContextHandle_t handle,
GEOSMakeValidParams* p,
int style);
extern int GEOS_DLL GEOSMakeValidParams_setMethod_r(
GEOSContextHandle_t handle,
GEOSMakeValidParams* p,
enum GEOSMakeValidMethods method);
extern GEOSGeometry GEOS_DLL *GEOSMakeValid_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSMakeValidWithParams_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
const GEOSMakeValidParams* makeValidParams);
extern GEOSGeometry GEOS_DLL *GEOSRemoveRepeatedPoints_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double tolerance);
/* ========== Geometry info ========== */
/* Return NULL on exception, result must be freed by caller. */
extern char GEOS_DLL *GEOSGeomType_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeomTypeId_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGetSRID_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern void GEOS_DLL GEOSSetSRID_r(
GEOSContextHandle_t handle,
GEOSGeometry* g, int SRID);
extern void GEOS_DLL *GEOSGeom_getUserData_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern void GEOS_DLL GEOSGeom_setUserData_r(
GEOSContextHandle_t handle,
GEOSGeometry* g,
void* userData);
extern int GEOS_DLL GEOSGetNumGeometries_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g, int n);
extern int GEOS_DLL GEOSNormalize_r(
GEOSContextHandle_t handle,
GEOSGeometry* g);
extern int GEOS_DLL GEOSOrientPolygons_r(
GEOSContextHandle_t handle,
GEOSGeometry* g,
int exteriorCW);
enum GEOSPrecisionRules {
GEOS_PREC_VALID_OUTPUT = 0,
GEOS_PREC_NO_TOPO = 1,
GEOS_PREC_KEEP_COLLAPSED = 2
};
extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double gridSize,
int flags);
extern double GEOS_DLL GEOSGeom_getPrecision_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g);
extern int GEOS_DLL GEOSGetNumInteriorRings_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeomGetNumPoints_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeomGetX_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *x);
extern int GEOS_DLL GEOSGeomGetY_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *y);
extern int GEOS_DLL GEOSGeomGetZ_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *z);
extern int GEOS_DLL GEOSGeomGetM_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *m);
extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g, int n);
extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGetNumCoordinates_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeom_getDimensions_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeom_getCoordinateDimension_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeom_getXMin_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* value);
extern int GEOS_DLL GEOSGeom_getYMin_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* value);
extern int GEOS_DLL GEOSGeom_getXMax_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* value);
extern int GEOS_DLL GEOSGeom_getYMax_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* value);
extern int GEOS_DLL GEOSGeom_getExtent_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* xmin,
double* ymin,
double* xmax,
double* ymax);
extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
int n);
extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g);
extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g);
/* ========= Misc functions ========= */
extern int GEOS_DLL GEOSArea_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double *area);
extern int GEOS_DLL GEOSLength_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double *length);
extern int GEOS_DLL GEOSDistance_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double *dist);
extern char GEOS_DLL GEOSDistanceWithin_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double dist);
extern int GEOS_DLL GEOSDistanceIndexed_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double *dist);
extern int GEOS_DLL GEOSHausdorffDistance_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g1,
const GEOSGeometry *g2,
double *dist);
extern int GEOS_DLL GEOSHausdorffDistanceDensify_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g1,
const GEOSGeometry *g2,
double densifyFrac, double *dist);
extern int GEOS_DLL GEOSFrechetDistance_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g1,
const GEOSGeometry *g2,
double *dist);
extern int GEOS_DLL GEOSFrechetDistanceDensify_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g1,
const GEOSGeometry *g2,
double densifyFrac,
double *dist);
extern int GEOS_DLL GEOSHilbertCode_r(
GEOSContextHandle_t handle,
const GEOSGeometry *geom,
const GEOSGeometry* extent,
unsigned int level,
unsigned int *code
);
extern int GEOS_DLL GEOSGeomGetLength_r(
GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *length);
extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSGeom_transformXY_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
GEOSTransformXYCallback callback,
void* userdata);
extern GEOSGeometry GEOS_DLL *GEOSGeom_transformXYZ_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
GEOSTransformXYZCallback callback,
void* userdata);
extern GEOSClusterInfo GEOS_DLL* GEOSClusterDBSCAN_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double eps,
unsigned minPoints);
extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryDistance_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double d);
extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryIntersects_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern GEOSClusterInfo GEOS_DLL* GEOSClusterEnvelopeDistance_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double d);
extern GEOSClusterInfo GEOS_DLL* GEOSClusterEnvelopeIntersects_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern size_t GEOS_DLL GEOSClusterInfo_getNumClusters_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters);
extern size_t GEOS_DLL GEOSClusterInfo_getClusterSize_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters, size_t i);
extern size_t GEOS_DLL* GEOSClusterInfo_getClustersForInputs_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters);
extern const size_t GEOS_DLL* GEOSClusterInfo_getInputsForClusterN_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters, size_t i);
extern void GEOS_DLL GEOSClusterInfo_destroy_r(GEOSContextHandle_t, GEOSClusterInfo* info);
/* ========= Algorithms ========= */
extern int GEOS_DLL GEOSOrientationIndex_r(
GEOSContextHandle_t handle,
double Ax, double Ay,
double Bx, double By,
double Px, double Py);
/* ========== Reader and Writer APIs ========== */
#ifndef GEOSWKTReader
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;
#endif
/* ========== WKT Reader ========== */
extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create_r(
GEOSContextHandle_t handle);
extern void GEOS_DLL GEOSWKTReader_destroy_r(GEOSContextHandle_t handle,
GEOSWKTReader* reader);
extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read_r(
GEOSContextHandle_t handle,
GEOSWKTReader* reader,
const char *wkt);
extern void GEOS_DLL GEOSWKTReader_setFixStructure_r(
GEOSContextHandle_t handle,
GEOSWKTReader *reader,
char doFix);
/* ========== WKT Writer ========== */
extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create_r(
GEOSContextHandle_t handle);
extern void GEOS_DLL GEOSWKTWriter_destroy_r(
GEOSContextHandle_t handle,
GEOSWKTWriter* writer);
extern char GEOS_DLL *GEOSWKTWriter_write_r(
GEOSContextHandle_t handle,
GEOSWKTWriter* writer,
const GEOSGeometry* g);
extern void GEOS_DLL GEOSWKTWriter_setTrim_r(
GEOSContextHandle_t handle,
GEOSWKTWriter *writer,
char trim);
extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision_r(
GEOSContextHandle_t handle,
GEOSWKTWriter *writer,
int precision);
extern void GEOS_DLL GEOSWKTWriter_setOutputDimension_r(
GEOSContextHandle_t handle,
GEOSWKTWriter *writer,
int dim);
extern int GEOS_DLL GEOSWKTWriter_getOutputDimension_r(
GEOSContextHandle_t handle,
GEOSWKTWriter *writer);
extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(
GEOSContextHandle_t handle,
GEOSWKTWriter *writer,
int useOld3D);
extern int GEOS_DLL GEOS_printDouble(
double d,
unsigned int precision,
char *result
);
/* ========== WKB Reader ========== */
extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create_r(
GEOSContextHandle_t handle);
extern void GEOS_DLL GEOSWKBReader_destroy_r(
GEOSContextHandle_t handle,
GEOSWKBReader* reader);
extern void GEOS_DLL GEOSWKBReader_setFixStructure_r(
GEOSContextHandle_t handle,
GEOSWKBReader *reader,
char doFix);
extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read_r(
GEOSContextHandle_t handle,
GEOSWKBReader* reader,
const unsigned char *wkb,
size_t size);
extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX_r(
GEOSContextHandle_t handle,
GEOSWKBReader* reader,
const unsigned char *hex,
size_t size);
/* ========== WKB Writer ========== */
extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create_r(
GEOSContextHandle_t handle);
extern void GEOS_DLL GEOSWKBWriter_destroy_r(
GEOSContextHandle_t handle,
GEOSWKBWriter* writer);
extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
GEOSContextHandle_t handle,
GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
GEOSContextHandle_t handle,
GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
extern int GEOS_DLL GEOSWKBWriter_getOutputDimension_r(
GEOSContextHandle_t handle,
const GEOSWKBWriter* writer);
extern void GEOS_DLL GEOSWKBWriter_setOutputDimension_r(
GEOSContextHandle_t handle,
GEOSWKBWriter* writer, int newDimension);
extern int GEOS_DLL GEOSWKBWriter_getByteOrder_r(
GEOSContextHandle_t handle,
const GEOSWKBWriter* writer);
extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(
GEOSContextHandle_t handle,
GEOSWKBWriter* writer,
int byteOrder);
extern int GEOS_DLL GEOSWKBWriter_getFlavor_r(
GEOSContextHandle_t handle,
const GEOSWKBWriter* writer);
extern void GEOS_DLL GEOSWKBWriter_setFlavor_r(
GEOSContextHandle_t handle,
GEOSWKBWriter* writer,
int flavor);
extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID_r(
GEOSContextHandle_t handle,
const GEOSWKBWriter* writer);
extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID_r(
GEOSContextHandle_t handle,
GEOSWKBWriter* writer, const char writeSRID);
/* ========== GeoJSON Reader ========== */
extern GEOSGeoJSONReader GEOS_DLL *GEOSGeoJSONReader_create_r(
GEOSContextHandle_t handle);
extern void GEOS_DLL GEOSGeoJSONReader_destroy_r(GEOSContextHandle_t handle,
GEOSGeoJSONReader* reader);
extern GEOSGeometry GEOS_DLL *GEOSGeoJSONReader_readGeometry_r(
GEOSContextHandle_t handle,
GEOSGeoJSONReader* reader,
const char *geojson);
/* ========== GeoJSON Writer ========== */
extern GEOSGeoJSONWriter GEOS_DLL *GEOSGeoJSONWriter_create_r(
GEOSContextHandle_t handle);
extern void GEOS_DLL GEOSGeoJSONWriter_destroy_r(GEOSContextHandle_t handle,
GEOSGeoJSONWriter* writer);
extern char GEOS_DLL *GEOSGeoJSONWriter_writeGeometry_r(
GEOSContextHandle_t handle,
GEOSGeoJSONWriter* writer,
const GEOSGeometry* g,
int indent);
extern void GEOS_DLL GEOSGeoJSONWriter_setOutputDimension_r(
GEOSContextHandle_t handle,
GEOSGeoJSONWriter *writer,
int dim);
extern int GEOS_DLL GEOSGeoJSONWriter_getOutputDimension_r(
GEOSContextHandle_t handle,
GEOSGeoJSONWriter *writer);
extern void GEOS_DLL GEOSFree_r(
GEOSContextHandle_t handle,
void *buffer);
extern const char GEOS_DLL *GEOSversion(void);
/*
* External code to GEOS can define GEOS_USE_ONLY_R_API
* to strip the non-reentrant API functions from this header,
* leaving only the "_r" compatible variants.
*/
#ifndef GEOS_USE_ONLY_R_API
/* ========== Initialization, cleanup ================================= */
extern void GEOS_DLL initGEOS(
GEOSMessageHandler notice_function,
GEOSMessageHandler error_function);
extern void GEOS_DLL finishGEOS(void);
extern void GEOS_DLL GEOSFree(void *buffer);
/* ========= Coordinate Sequence functions ========= */
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(unsigned int size, unsigned int dims);
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_createWithDimensions(unsigned int size, int hasZ, int hasM);
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromBuffer(const double* buf, unsigned int size, int hasZ, int hasM);
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromArrays(const double* x, const double* y, const double* z, const double* m, unsigned int size);
extern int GEOS_DLL GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence* s, double* buf, int hasZ, int hasM);
extern int GEOS_DLL GEOSCoordSeq_copyToArrays(const GEOSCoordSequence* s, double* x, double* y, double* z, double* m);
extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone(const GEOSCoordSequence* s);
extern void GEOS_DLL GEOSCoordSeq_destroy(GEOSCoordSequence* s);
extern char GEOS_DLL GEOSCoordSeq_hasZ(GEOSCoordSequence* s);
extern char GEOS_DLL GEOSCoordSeq_hasM(GEOSCoordSequence* s);
extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
unsigned int idx, double val);
extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
unsigned int idx, double val);
extern int GEOS_DLL GEOSCoordSeq_setZ(GEOSCoordSequence* s,
unsigned int idx, double val);
extern int GEOS_DLL GEOSCoordSeq_setM(GEOSCoordSequence* s,
unsigned int idx, double val);
extern int GEOS_DLL GEOSCoordSeq_setXY(GEOSCoordSequence* s,
unsigned int idx, double x, double y);
extern int GEOS_DLL GEOSCoordSeq_setXYZ(GEOSCoordSequence* s,
unsigned int idx, double x, double y, double z);
extern int GEOS_DLL GEOSCoordSeq_setOrdinate(GEOSCoordSequence* s,
unsigned int idx, unsigned int dim, double val);
extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
unsigned int idx, double *val);
extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
unsigned int idx, double *val);
extern int GEOS_DLL GEOSCoordSeq_getZ(const GEOSCoordSequence* s,
unsigned int idx, double *val);
extern int GEOS_DLL GEOSCoordSeq_getM(const GEOSCoordSequence* s,
unsigned int idx, double *val);
extern int GEOS_DLL GEOSCoordSeq_getXY(const GEOSCoordSequence* s,
unsigned int idx, double *x, double *y);
extern int GEOS_DLL GEOSCoordSeq_getXYZ(const GEOSCoordSequence* s,
unsigned int idx, double *x, double *y, double *z);
extern int GEOS_DLL GEOSCoordSeq_getOrdinate(const GEOSCoordSequence* s,
unsigned int idx, unsigned int dim, double *val);
extern int GEOS_DLL GEOSCoordSeq_getSize(
const GEOSCoordSequence* s,
unsigned int *size);
extern int GEOS_DLL GEOSCoordSeq_getDimensions(
const GEOSCoordSequence* s,
unsigned int *dims);
extern int GEOS_DLL GEOSCoordSeq_isCCW(
const GEOSCoordSequence* s,
char* is_ccw);
/* ========= Geometry Constructors ========= */
extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint(GEOSCoordSequence* s);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createPointFromXY(double x, double y);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint(void);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing(GEOSCoordSequence* s);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString(GEOSCoordSequence* s);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString(void);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon(void);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon(
GEOSGeometry* shell,
GEOSGeometry** holes,
unsigned int nholes);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createCircularString(GEOSCoordSequence* s);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCircularString();
extern GEOSGeometry GEOS_DLL *GEOSGeom_createCompoundCurve(GEOSGeometry** curves,
unsigned int ncurves);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCompoundCurve();
extern GEOSGeometry GEOS_DLL *GEOSGeom_createCurvePolygon(
GEOSGeometry* shell,
GEOSGeometry** holes,
unsigned int nholes);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCurvePolygon();
extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection(
int type,
GEOSGeometry** geoms,
unsigned int ngeoms);
extern GEOSGeometry GEOS_DLL ** GEOSGeom_releaseCollection(
GEOSGeometry * collection,
unsigned int * ngeoms);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection(int type);
extern GEOSGeometry GEOS_DLL *GEOSGeom_createRectangle(
double xmin, double ymin,
double xmax, double ymax);
extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(const GEOSGeometry* g);
extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
/* ========== Geometry info ========== */
extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
const GEOSGeometry* g,
int n);
extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeomGetNumPoints(const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeomGetX(const GEOSGeometry *g, double *x);
extern int GEOS_DLL GEOSGeomGetY(const GEOSGeometry *g, double *y);
extern int GEOS_DLL GEOSGeomGetZ(const GEOSGeometry *g, double *z);
extern int GEOS_DLL GEOSGeomGetM(const GEOSGeometry *g, double *m);
extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
const GEOSGeometry* g,
int n);
extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGetNumCoordinates(
const GEOSGeometry* g);
extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq(
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeom_getDimensions(
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeom_getCoordinateDimension(
const GEOSGeometry* g);
extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
extern int GEOS_DLL GEOSGeom_getYMax(const GEOSGeometry* g, double* value);
extern int GEOS_DLL GEOSGeom_getExtent(
const GEOSGeometry* g,
double* xmin,
double* ymin,
double* xmax,
double* ymax);
extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint(const GEOSGeometry *g);
extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint(const GEOSGeometry *g);
extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g);
extern char GEOS_DLL GEOSisRing(const GEOSGeometry* g);
extern char GEOS_DLL GEOSHasZ(const GEOSGeometry* g);
extern char GEOS_DLL GEOSHasM(const GEOSGeometry* g);
extern char GEOS_DLL GEOSisClosed(const GEOSGeometry *g);
/* ==================================================================================== */
extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
extern int GEOS_DLL GEOSOrientPolygons(GEOSGeometry* g,
int exteriorCW);
/* ========== Validity checking ============================================================ */
extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g);
extern char GEOS_DLL GEOSisSimpleDetail(
const GEOSGeometry* g,
int findAllLocations,
GEOSGeometry** locations);
extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g);
extern char GEOS_DLL GEOSisValidDetail(
const GEOSGeometry* g,
int flags,
char** reason,
GEOSGeometry** location);
extern GEOSGeometry GEOS_DLL *GEOSMakeValid(
const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSMakeValidWithParams(
const GEOSGeometry* g,
const GEOSMakeValidParams *makeValidParams);
extern GEOSMakeValidParams GEOS_DLL *GEOSMakeValidParams_create(void);
extern void GEOS_DLL GEOSMakeValidParams_destroy(GEOSMakeValidParams* parms);
extern int GEOS_DLL GEOSMakeValidParams_setMethod(
GEOSMakeValidParams* p,
enum GEOSMakeValidMethods method);
extern int GEOS_DLL GEOSMakeValidParams_setKeepCollapsed(
GEOSMakeValidParams* p,
int keepCollapsed);
extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSRemoveRepeatedPoints(
const GEOSGeometry* g,
double tolerance);
/* ========= Metric functions ================================================== */
extern int GEOS_DLL GEOSArea(
const GEOSGeometry* g,
double *area);
extern int GEOS_DLL GEOSLength(
const GEOSGeometry* g,
double *length);
extern int GEOS_DLL GEOSGeomGetLength(
const GEOSGeometry *g,
double *length);
/* ========== Distance functions ================================================ */
extern int GEOS_DLL GEOSDistance(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double *dist);
extern char GEOS_DLL GEOSDistanceWithin(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double dist);
extern int GEOS_DLL GEOSDistanceIndexed(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double *dist);
extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern int GEOS_DLL GEOSHausdorffDistance(
const GEOSGeometry *g1,
const GEOSGeometry *g2,
double *dist);
extern int GEOS_DLL GEOSHausdorffDistanceDensify(
const GEOSGeometry *g1,
const GEOSGeometry *g2,
double densifyFrac,
double *dist);
extern int GEOS_DLL GEOSFrechetDistance(
const GEOSGeometry *g1,
const GEOSGeometry *g2,
double *dist);
extern int GEOS_DLL GEOSFrechetDistanceDensify(
const GEOSGeometry *g1,
const GEOSGeometry *g2,
double densifyFrac,
double *dist);
/* ========== Linear referencing functions */
extern double GEOS_DLL GEOSProject(const GEOSGeometry* line,
const GEOSGeometry* point);
extern GEOSGeometry GEOS_DLL *GEOSInterpolate(const GEOSGeometry* line,
double d);
extern double GEOS_DLL GEOSProjectNormalized(const GEOSGeometry* line,
const GEOSGeometry* point);
extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized(
const GEOSGeometry *line,
double proportion);
/* ========== Overlay functions ========== */
extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec(const GEOSGeometry* g1, const GEOSGeometry* g2, double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSDifference(
const GEOSGeometry* ga,
const GEOSGeometry* gb);
extern GEOSGeometry GEOS_DLL *GEOSDifferencePrec(
const GEOSGeometry* ga,
const GEOSGeometry* gb,
double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSSymDifference(
const GEOSGeometry* ga,
const GEOSGeometry* gb);
extern GEOSGeometry GEOS_DLL *GEOSSymDifferencePrec(
const GEOSGeometry* ga,
const GEOSGeometry* gb,
double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSUnion(
const GEOSGeometry* ga,
const GEOSGeometry* gb);
extern GEOSGeometry GEOS_DLL *GEOSUnionPrec(
const GEOSGeometry* ga,
const GEOSGeometry* gb,
double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSUnaryUnionPrec(
const GEOSGeometry* g,
double gridSize);
extern GEOSGeometry GEOS_DLL *GEOSDisjointSubsetUnion(const GEOSGeometry *g);
extern GEOSGeometry GEOS_DLL *GEOSClipByRect(
const GEOSGeometry* g,
double xmin, double ymin,
double xmax, double ymax);
extern int GEOS_DLL GEOSGridIntersectionFractions(
const GEOSGeometry* g,
double xmin, double ymin,
double xmax, double ymax,
unsigned nx, unsigned ny,
float* buf);
extern GEOSGeometry GEOS_DLL *GEOSSharedPaths(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
/* ========== Clustering functions ========== */
static const size_t GEOS_CLUSTER_NONE = (size_t) -1;
extern GEOSClusterInfo GEOS_DLL* GEOSClusterDBSCAN(const GEOSGeometry* g, double eps, unsigned minPoints);
extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryDistance(const GEOSGeometry* g, double d);
extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryIntersects(const GEOSGeometry* g);
extern GEOSClusterInfo GEOS_DLL* GEOSClusterEnvelopeDistance(const GEOSGeometry* g, double d);
extern GEOSClusterInfo GEOS_DLL* GEOSClusterEnvelopeIntersects(const GEOSGeometry* g);
extern size_t GEOS_DLL GEOSClusterInfo_getNumClusters(const GEOSClusterInfo* clusters);
extern size_t GEOS_DLL GEOSClusterInfo_getClusterSize(const GEOSClusterInfo* clusters, size_t i );
extern size_t GEOS_DLL* GEOSClusterInfo_getClustersForInputs(const GEOSClusterInfo* clusters);
extern const size_t GEOS_DLL* GEOSClusterInfo_getInputsForClusterN(const GEOSClusterInfo* clusters, size_t i);
extern void GEOS_DLL GEOSClusterInfo_destroy(GEOSClusterInfo* clusters);
/* ========== Buffer related functions ========== */
extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g,
double width, int quadsegs);
extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create(void);
extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
extern int GEOS_DLL GEOSBufferParams_setEndCapStyle(
GEOSBufferParams* p,
int style);
extern int GEOS_DLL GEOSBufferParams_setJoinStyle(
GEOSBufferParams* p,
int joinStyle);
extern int GEOS_DLL GEOSBufferParams_setMitreLimit(
GEOSBufferParams* p,
double mitreLimit);
extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments(
GEOSBufferParams* p,
int quadSegs);
extern int GEOS_DLL GEOSBufferParams_setSingleSided(
GEOSBufferParams* p,
int singleSided);
extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams(
const GEOSGeometry* g,
const GEOSBufferParams* p,
double width);
extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle(
const GEOSGeometry* g,
double width,
int quadsegs,
int endCapStyle,
int joinStyle,
double mitreLimit);
extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve(const GEOSGeometry* g,
double width, int quadsegs, int joinStyle, double mitreLimit);
/* ====================================================================== */
extern GEOSGeometry GEOS_DLL *GEOSCoverageUnion(const GEOSGeometry *g);
extern int GEOS_DLL GEOSCoverageIsValid(
const GEOSGeometry* input,
double gapWidth,
GEOSGeometry** invalidEdges);
extern GEOSGeometry GEOS_DLL * GEOSCoverageSimplifyVW(
const GEOSGeometry* input,
double tolerance,
int preserveBoundary);
extern GEOSCoverageCleanParams GEOS_DLL *
GEOSCoverageCleanParams_create();
extern void GEOS_DLL
GEOSCoverageCleanParams_destroy(
GEOSCoverageCleanParams* params);
extern int GEOS_DLL
GEOSCoverageCleanParams_setSnappingDistance(
GEOSCoverageCleanParams *params,
double snappingDistance);
extern int GEOS_DLL
GEOSCoverageCleanParams_setGapMaximumWidth(
GEOSCoverageCleanParams* params,
double gapMaximumWidth);
/*
* Sets the overlap merge strategy to use, using one from \ref GEOSOverlapMerge.
* Overlaps are merged with an adjacent polygon chosen according to a specified merge strategy.
* The supported strategies are:
*
* * **Longest Border**: (default) merge with the polygon with longest shared border (GEOS_MERGE_LONGEST_BORDER.)
* * **Maximum/Minimum Area**: merge with the polygon with largest or smallest area (GEOS_MERGE_MAX_AREA, GEOS_MERGE_MIN_AREA.)
* * **Minimum Index**: merge with the polygon with the lowest index in the input array (GEOS_MERGE_MIN_INDEX.)
*
* This allows sorting the input according to some criteria to provide a priority
* for merging gaps.
*
* The default is GEOS_MERGE_LONGEST_BORDER.
*
* \see geos::coverage::CoverageCleaner::setGapMaximumWidth
* \param params The GEOSCoverageCleanParams to operate on
* \param overlapMergeStrategy One of \ref GEOSOverlapMerge strategies
* \return 0 on exception, 1 on success.
*
* \since 3.14
*/
extern int GEOS_DLL
GEOSCoverageCleanParams_setOverlapMergeStrategy(
GEOSCoverageCleanParams* params,
int overlapMergeStrategy);
extern GEOSGeometry GEOS_DLL *
GEOSCoverageCleanWithParams(
const GEOSGeometry* input,
const GEOSCoverageCleanParams* params
);
extern GEOSGeometry GEOS_DLL *
GEOSCoverageClean(
const GEOSGeometry* input);
/* ========== Construction Operations ========== */
extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSConcaveHull(
const GEOSGeometry* g,
double ratio,
unsigned int allowHoles);
extern GEOSGeometry GEOS_DLL *GEOSConcaveHullByLength(
const GEOSGeometry* g,
double length,
unsigned int allowHoles);
extern GEOSGeometry GEOS_DLL *GEOSConcaveHullOfPolygons(
const GEOSGeometry* g,
double lengthRatio,
unsigned int isTight,
unsigned int isHolesAllowed);
extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplify(
const GEOSGeometry* g,
unsigned int isOuter,
double vertexNumFraction);
enum GEOSPolygonHullParameterModes {
GEOSHULL_PARAM_VERTEX_RATIO = 1,
GEOSHULL_PARAM_AREA_RATIO = 2
};
extern GEOSGeometry GEOS_DLL *GEOSPolygonHullSimplifyMode(
const GEOSGeometry* g,
unsigned int isOuter,
unsigned int parameterMode,
double parameter);
extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSMaximumInscribedCircle(
const GEOSGeometry* g,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSLargestEmptyCircle(
const GEOSGeometry* obstacles,
const GEOSGeometry* boundary,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSMinimumBoundingCircle(
const GEOSGeometry* g,
double* radius,
GEOSGeometry** center);
extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
const GEOSGeometry *g,
double tolerance,
int onlyEdges);
extern GEOSGeometry GEOS_DLL * GEOSConstrainedDelaunayTriangulation(
const GEOSGeometry *g);
enum GEOSVoronoiFlags
{
GEOS_VORONOI_ONLY_EDGES = 1,
GEOS_VORONOI_PRESERVE_ORDER = 2
};
extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram(
const GEOSGeometry *g,
const GEOSGeometry *env,
double tolerance,
int flags);
/* ============================================================== */
extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSPolygonize(
const GEOSGeometry * const geoms[],
unsigned int ngeoms);
extern GEOSGeometry GEOS_DLL *GEOSPolygonize_valid(
const GEOSGeometry * const geoms[],
unsigned int ngeoms);
extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges(
const GEOSGeometry * const geoms[],
unsigned int ngeoms);
extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full(
const GEOSGeometry* input,
GEOSGeometry** cuts,
GEOSGeometry** dangles,
GEOSGeometry** invalid);
extern GEOSGeometry GEOS_DLL *GEOSBuildArea(const GEOSGeometry* g);
/* ============================================================== */
extern GEOSGeometry GEOS_DLL *GEOSDensify(
const GEOSGeometry* g,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSLineMergeDirected(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSLineSubstring(
const GEOSGeometry* g,
double start_fraction,
double end_fraction);
extern GEOSGeometry GEOS_DLL *GEOSReverse(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSSimplify(
const GEOSGeometry* g,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify(
const GEOSGeometry* g,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints(
const GEOSGeometry* g);
extern int GEOS_DLL GEOSHilbertCode(
const GEOSGeometry *geom,
const GEOSGeometry* extent,
unsigned int level,
unsigned int *code
);
extern GEOSGeometry GEOS_DLL *GEOSGeom_transformXY(
const GEOSGeometry* g,
GEOSTransformXYCallback callback,
void* userdata);
extern GEOSGeometry GEOS_DLL *GEOSGeom_transformXYZ(
const GEOSGeometry* g,
GEOSTransformXYZCallback callback,
void* userdata);
extern GEOSGeometry GEOS_DLL *GEOSSnap(
const GEOSGeometry* input,
const GEOSGeometry* snap_target,
double tolerance);
extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision(
const GEOSGeometry *g,
double gridSize,
int flags);
/* ============================================================== */
extern char GEOS_DLL GEOSDisjoint(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSTouches(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSContains(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSOverlaps(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSEquals(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSCovers(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSCoveredBy(const GEOSGeometry* g1, const GEOSGeometry* g2);
extern char GEOS_DLL GEOSEqualsExact(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
extern char GEOS_DLL GEOSEqualsIdentical(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSRelatePattern(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
const char *imPattern);
extern char GEOS_DLL *GEOSRelate(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSRelatePatternMatch(
const char *intMatrix,
const char *imPattern);
extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
int bnr);
/* ========== Prepared Geometry Binary predicates ========== */
extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(const GEOSGeometry* g);
extern void GEOS_DLL GEOSPreparedGeom_destroy(const GEOSPreparedGeometry* g);
extern char GEOS_DLL GEOSPreparedContains(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedContainsXY(
const GEOSPreparedGeometry* pg1,
double x,
double y);
extern char GEOS_DLL GEOSPreparedContainsProperly(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedCoveredBy(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedCovers(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedCrosses(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedDisjoint(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedIntersects(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedIntersectsXY(
const GEOSPreparedGeometry* pg1,
double x,
double y);
extern char GEOS_DLL GEOSPreparedOverlaps(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedTouches(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedWithin(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL * GEOSPreparedRelate(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern char GEOS_DLL GEOSPreparedRelatePattern(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2,
const char* imPattern);
extern GEOSCoordSequence GEOS_DLL *GEOSPreparedNearestPoints(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
extern int GEOS_DLL GEOSPreparedDistance(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2,
double *dist);
extern char GEOS_DLL GEOSPreparedDistanceWithin(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2,
double dist);
/* ========== STRtree functions ========== */
extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
extern int GEOS_DLL GEOSSTRtree_build(GEOSSTRtree *tree);
extern void GEOS_DLL GEOSSTRtree_insert(
GEOSSTRtree *tree,
const GEOSGeometry *g,
void *item);
extern void GEOS_DLL GEOSSTRtree_query(
GEOSSTRtree *tree,
const GEOSGeometry *g,
GEOSQueryCallback callback,
void *userdata);
extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(
GEOSSTRtree *tree,
const GEOSGeometry* geom);
extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(
GEOSSTRtree *tree,
const void* item,
const GEOSGeometry* itemEnvelope,
GEOSDistanceCallback distancefn,
void* userdata);
extern void GEOS_DLL GEOSSTRtree_iterate(
GEOSSTRtree *tree,
GEOSQueryCallback callback,
void *userdata);
extern char GEOS_DLL GEOSSTRtree_remove(
GEOSSTRtree *tree,
const GEOSGeometry *g,
void *item);
extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
/* ========== Algorithms ====================================================== */
extern int GEOS_DLL GEOSSegmentIntersection(
double ax0, double ay0,
double ax1, double ay1,
double bx0, double by0,
double bx1, double by1,
double* cx, double* cy);
extern int GEOS_DLL GEOSOrientationIndex(
double Ax, double Ay,
double Bx, double By,
double Px, double Py);
/* ========= Reader and Writer APIs ========= */
/* ========= WKT Reader ========= */
extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create(void);
extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read(
GEOSWKTReader* reader,
const char *wkt);
extern void GEOS_DLL GEOSWKTReader_setFixStructure(
GEOSWKTReader *reader,
char doFix);
/* ========= WKT Writer ========= */
extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create(void);
extern void GEOS_DLL GEOSWKTWriter_destroy(
GEOSWKTWriter* writer);
extern char GEOS_DLL *GEOSWKTWriter_write(
GEOSWKTWriter* writer,
const GEOSGeometry* g);
extern void GEOS_DLL GEOSWKTWriter_setTrim(
GEOSWKTWriter *writer,
char trim);
extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision(
GEOSWKTWriter *writer,
int precision);
extern void GEOS_DLL GEOSWKTWriter_setOutputDimension(
GEOSWKTWriter *writer,
int dim);
extern int GEOS_DLL GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer);
extern void GEOS_DLL GEOSWKTWriter_setOld3D(
GEOSWKTWriter *writer,
int useOld3D);
/* ============================================================================== */
/* ========== WKB Reader ========== */
extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create(void);
extern void GEOS_DLL GEOSWKBReader_destroy(
GEOSWKBReader* reader);
extern void GEOS_DLL GEOSWKBReader_setFixStructure(
GEOSWKBReader *reader,
char doFix);
extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read(
GEOSWKBReader* reader,
const unsigned char *wkb,
size_t size);
extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX(
GEOSWKBReader* reader,
const unsigned char *hex,
size_t size);
/* ========== WKB Writer ========== */
extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create(void);
extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
extern unsigned char GEOS_DLL *GEOSWKBWriter_write(
GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(
GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
extern int GEOS_DLL GEOSWKBWriter_getOutputDimension(
const GEOSWKBWriter* writer);
extern void GEOS_DLL GEOSWKBWriter_setOutputDimension(
GEOSWKBWriter* writer,
int newDimension);
extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
const GEOSWKBWriter* writer);
extern void GEOS_DLL GEOSWKBWriter_setByteOrder(
GEOSWKBWriter* writer,
int byteOrder);
extern int GEOS_DLL GEOSWKBWriter_getFlavor(
const GEOSWKBWriter* writer);
extern void GEOS_DLL GEOSWKBWriter_setFlavor(
GEOSWKBWriter* writer,
int flavor);
extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
const GEOSWKBWriter* writer);
extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(
GEOSWKBWriter* writer,
const char writeSRID);
/* ============================================================================= */
/* ========= GeoJSON Reader ========= */
extern GEOSGeoJSONReader GEOS_DLL *GEOSGeoJSONReader_create(void);
extern void GEOS_DLL GEOSGeoJSONReader_destroy(GEOSGeoJSONReader* reader);
extern GEOSGeometry GEOS_DLL *GEOSGeoJSONReader_readGeometry(
GEOSGeoJSONReader* reader,
const char *geojson);
/* ========= GeoJSON Writer ========= */
extern GEOSGeoJSONWriter GEOS_DLL *GEOSGeoJSONWriter_create(void);
extern void GEOS_DLL GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter* writer);
extern char GEOS_DLL *GEOSGeoJSONWriter_writeGeometry(
GEOSGeoJSONWriter* writer,
const GEOSGeometry* g,
int indent);
extern void GEOS_DLL GEOSGeoJSONWriter_setOutputDimension(
GEOSGeoJSONWriter *writer,
int dim);
extern int GEOS_DLL GEOSGeoJSONWriter_getOutputDimension(GEOSGeoJSONWriter *writer);
#endif /* #ifndef GEOS_USE_ONLY_R_API */
/* ====================================================================== */
/* DEPRECATIONS */
/* ====================================================================== */
extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer(
const GEOSGeometry* g,
double width, int quadsegs,
int joinStyle, double mitreLimit,
int leftSide);
extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
double width, int quadsegs,
int joinStyle, double mitreLimit,
int leftSide);
extern GEOSContextHandle_t GEOS_DLL initGEOS_r(
GEOSMessageHandler notice_function,
GEOSMessageHandler error_function);
extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT_r(
GEOSContextHandle_t handle,
const char *wkt);
extern char GEOS_DLL *GEOSGeomToWKT_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
extern int GEOS_DLL GEOS_getWKBOutputDims_r(
GEOSContextHandle_t handle);
extern int GEOS_DLL GEOS_setWKBOutputDims_r(
GEOSContextHandle_t handle,
int newDims);
extern int GEOS_DLL GEOS_getWKBByteOrder_r(
GEOSContextHandle_t handle);
extern int GEOS_DLL GEOS_setWKBByteOrder_r(
GEOSContextHandle_t handle,
int byteOrder);
extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf_r(
GEOSContextHandle_t handle,
const unsigned char *wkb,
size_t size);
extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
size_t *size);
extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf_r(
GEOSContextHandle_t handle,
const unsigned char *hex,
size_t size);
extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g,
size_t *size);
extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(const char *wkt);
extern char GEOS_DLL *GEOSGeomToWKT(const GEOSGeometry* g);
extern int GEOS_DLL GEOS_getWKBOutputDims(void);
extern int GEOS_DLL GEOS_setWKBOutputDims(int newDims);
extern int GEOS_DLL GEOS_getWKBByteOrder(void);
extern int GEOS_DLL GEOS_setWKBByteOrder(int byteOrder);
extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size);
extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(const GEOSGeometry* g, size_t *size);
extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded(const GEOSGeometry* g);
extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded_r(
GEOSContextHandle_t handle,
const GEOSGeometry* g);
/* ====================================================================== */
/* END DEPRECATIONS */
/* ====================================================================== */
#ifdef __cplusplus
} // extern "C"
#endif
#endif /* #ifndef GEOS_C_H_INCLUDED */
GEOS_setWKBOutputDims_r
int GEOS_setWKBOutputDims_r(GEOSContextHandle_t handle, int newDims)
GEOSMaximumInscribedCircle_r
GEOSGeometry * GEOSMaximumInscribedCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSBufferParams_setEndCapStyle_r
int GEOSBufferParams_setEndCapStyle_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int style)
GEOSisEmpty_r
char GEOSisEmpty_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSisSimple
char GEOSisSimple(const GEOSGeometry *g)
GEOSWKBWriter_setByteOrder
void GEOSWKBWriter_setByteOrder(GEOSWKBWriter *writer, int byteOrder)
GEOSIntersectionPrec_r
GEOSGeometry * GEOSIntersectionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeom_getCoordSeq
const GEOSCoordSequence * GEOSGeom_getCoordSeq(const GEOSGeometry *g)
GEOSCoordSeq_setZ_r
int GEOSCoordSeq_setZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSGeom_setUserData_r
void GEOSGeom_setUserData_r(GEOSContextHandle_t handle, GEOSGeometry *g, void *userData)
GEOSGeom_createEmptyPoint
GEOSGeometry * GEOSGeom_createEmptyPoint(void)
GEOSReverse_r
GEOSGeometry * GEOSReverse_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOS_getWKBOutputDims_r
int GEOS_getWKBOutputDims_r(GEOSContextHandle_t handle)
GEOSGeom_createEmptyCompoundCurve_r
GEOSGeometry * GEOSGeom_createEmptyCompoundCurve_r(GEOSContextHandle_t handle)
GEOSGeomGetM
int GEOSGeomGetM(const GEOSGeometry *g, double *m)
GEOSPolygonHullSimplify
GEOSGeometry * GEOSPolygonHullSimplify(const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
GEOSisRing_r
char GEOSisRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSSTRtree_build_r
int GEOSSTRtree_build_r(GEOSContextHandle_t handle, GEOSSTRtree *tree)
GEOSGetCentroid
GEOSGeometry * GEOSGetCentroid(const GEOSGeometry *g)
GEOSBufferParams_destroy_r
void GEOSBufferParams_destroy_r(GEOSContextHandle_t handle, GEOSBufferParams *parms)
GEOSCoverageCleanWithParams
GEOSGeometry * GEOSCoverageCleanWithParams(const GEOSGeometry *input, const GEOSCoverageCleanParams *params)
GEOSMinimumRotatedRectangle_r
GEOSGeometry * GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSeq_create
GEOSCoordSequence * GEOSCoordSeq_create(unsigned int size, unsigned int dims)
GEOSPreparedDistanceWithin
char GEOSPreparedDistanceWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
GEOSWKBReader_read_r
GEOSGeometry * GEOSWKBReader_read_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
GEOSClusterEnvelopeIntersects
GEOSClusterInfo * GEOSClusterEnvelopeIntersects(const GEOSGeometry *g)
GEOSClusterEnvelopeIntersects.
GEOSGeomToWKT_r
char * GEOSGeomToWKT_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSBufferWithParams_r
GEOSGeometry * GEOSBufferWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSBufferParams *p, double width)
GEOSBufferParams_setQuadrantSegments_r
int GEOSBufferParams_setQuadrantSegments_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int quadSegs)
GEOSConcaveHull_r
GEOSGeometry * GEOSConcaveHull_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
GEOSSTRtree_iterate
void GEOSSTRtree_iterate(GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
GEOSGetExteriorRing_r
const GEOSGeometry * GEOSGetExteriorRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPreparedNearestPoints
GEOSCoordSequence * GEOSPreparedNearestPoints(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSDelaunayTriangulation_r
GEOSGeometry * GEOSDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance, int onlyEdges)
GEOSGeoJSONWriter_getOutputDimension_r
int GEOSGeoJSONWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
GEOSGeom_releaseCollection
GEOSGeometry ** GEOSGeom_releaseCollection(GEOSGeometry *collection, unsigned int *ngeoms)
GEOSGeom_getUserData_r
void * GEOSGeom_getUserData_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeoJSONReader
struct GEOSGeoJSONReader_t GEOSGeoJSONReader
Definition geos_c.h:2097
GEOSCoverageCleanParams_setOverlapMergeStrategy_r
int GEOSCoverageCleanParams_setOverlapMergeStrategy_r(GEOSContextHandle_t extHandle, GEOSCoverageCleanParams *params, int overlapMergeStrategy)
GEOSRelatePattern_r
char GEOSRelatePattern_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, const char *imPattern)
GEOS_getWKBByteOrder
int GEOS_getWKBByteOrder(void)
GEOSWKBReader_destroy
void GEOSWKBReader_destroy(GEOSWKBReader *reader)
GEOSPreparedContainsProperly
char GEOSPreparedContainsProperly(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSContextInterruptCallback
int GEOSContextInterruptCallback(void *)
Definition geos_c.h:369
GEOSCoverageCleanParams_destroy
void GEOSCoverageCleanParams_destroy(GEOSCoverageCleanParams *params)
GEOSSTRtree_iterate_r
void GEOSSTRtree_iterate_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
GEOS_printDouble
int GEOS_printDouble(double d, unsigned int precision, char *result)
GEOSGeoJSONWriter_create_r
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create_r(GEOSContextHandle_t handle)
GEOSDistanceIndexed
int GEOSDistanceIndexed(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeom_getDimensions_r
int GEOSGeom_getDimensions_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSClusterEnvelopeDistance
GEOSClusterInfo * GEOSClusterEnvelopeDistance(const GEOSGeometry *g, double d)
GEOSClusterEnvelopeDistance.
GEOSCoordSeq_getZ
int GEOSCoordSeq_getZ(const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSSTRtree_nearest_r
const GEOSGeometry * GEOSSTRtree_nearest_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *geom)
GEOSWKTWriter_setOld3D_r
void GEOSWKTWriter_setOld3D_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int useOld3D)
GEOSGeom_createRectangle_r
GEOSGeometry * GEOSGeom_createRectangle_r(GEOSContextHandle_t handle, double xmin, double ymin, double xmax, double ymax)
GEOSGeoJSONWriter_create
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create(void)
GEOSDistanceCallback
int(* GEOSDistanceCallback)(const void *item1, const void *item2, double *distance, void *userdata)
Definition geos_c.h:305
GEOSPolygonize_valid
GEOSGeometry * GEOSPolygonize_valid(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSGridIntersectionFractions_r
int GEOSGridIntersectionFractions_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax, unsigned nx, unsigned ny, float *buf)
GEOSWKTReader_create
GEOSWKTReader * GEOSWKTReader_create(void)
GEOSWKBReader
struct GEOSWKBReader_t GEOSWKBReader
Definition geos_c.h:2083
GEOSHasM
char GEOSHasM(const GEOSGeometry *g)
GEOSConcaveHullByLength_r
GEOSGeometry * GEOSConcaveHullByLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
GEOSGeom_destroy
void GEOSGeom_destroy(GEOSGeometry *g)
GEOS_setWKBByteOrder_r
int GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle, int byteOrder)
GEOSClipByRect
GEOSGeometry * GEOSClipByRect(const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
GEOSCoverageSimplifyVW_r
GEOSGeometry * GEOSCoverageSimplifyVW_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, double tolerance, int preserveBoundary)
GEOSMessageHandler
void(* GEOSMessageHandler)(GEOS_PRINTF_FORMAT const char *fmt,...) GEOS_PRINTF_FORMAT_ATTR(1
Definition geos_c.h:105
GEOSDistance_r
int GEOSDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeomGetM_r
int GEOSGeomGetM_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *m)
GEOSTouches
char GEOSTouches(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoordSequence
struct GEOSCoordSeq_t GEOSCoordSequence
Definition geos_c.h:155
GEOSGeomGetStartPoint_r
GEOSGeometry * GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSRelatePatternMatch_r
char GEOSRelatePatternMatch_r(GEOSContextHandle_t handle, const char *intMatrix, const char *imPattern)
GEOSSTRtree_destroy
void GEOSSTRtree_destroy(GEOSSTRtree *tree)
GEOSCoverageCleanParams_create_r
GEOSCoverageCleanParams * GEOSCoverageCleanParams_create_r(GEOSContextHandle_t extHandle)
GEOSGeom_createCircularString_r
GEOSGeometry * GEOSGeom_createCircularString_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSBufferParams_destroy
void GEOSBufferParams_destroy(GEOSBufferParams *parms)
GEOSClusterInfo_getInputsForClusterN_r
const size_t * GEOSClusterInfo_getInputsForClusterN_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters, size_t i)
GEOSCoordSeq_setXY_r
int GEOSCoordSeq_setXY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSGeomTypes
GEOSGeomTypes
Definition geos_c.h:211
GEOS_MULTILINESTRING
@ GEOS_MULTILINESTRING
Definition geos_c.h:223
GEOS_GEOMETRYCOLLECTION
@ GEOS_GEOMETRYCOLLECTION
Definition geos_c.h:227
GEOS_POINT
@ GEOS_POINT
Definition geos_c.h:213
GEOS_MULTIPOLYGON
@ GEOS_MULTIPOLYGON
Definition geos_c.h:225
GEOS_LINEARRING
@ GEOS_LINEARRING
Definition geos_c.h:217
GEOS_POLYGON
@ GEOS_POLYGON
Definition geos_c.h:219
GEOS_MULTIPOINT
@ GEOS_MULTIPOINT
Definition geos_c.h:221
GEOS_LINESTRING
@ GEOS_LINESTRING
Definition geos_c.h:215
GEOSIntersectionPrec
GEOSGeometry * GEOSIntersectionPrec(const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGetNumInteriorRings
int GEOSGetNumInteriorRings(const GEOSGeometry *g)
GEOSSTRtree_remove_r
char GEOSSTRtree_remove_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSSTRtree_query_r
void GEOSSTRtree_query_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
GEOSGeom_setPrecision_r
GEOSGeometry * GEOSGeom_setPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize, int flags)
GEOSEqualsExact
char GEOSEqualsExact(const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSDisjointSubsetUnion_r
GEOSGeometry * GEOSDisjointSubsetUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSContext_setNoticeMessageHandler_r
GEOSMessageHandler_r GEOSContext_setNoticeMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r nf, void *userData)
GEOSCoordSeq_getOrdinate
int GEOSCoordSeq_getOrdinate(const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
GEOSWKBReader_destroy_r
void GEOSWKBReader_destroy_r(GEOSContextHandle_t handle, GEOSWKBReader *reader)
GEOSBoundary
GEOSGeometry * GEOSBoundary(const GEOSGeometry *g)
GEOSUnaryUnion_r
GEOSGeometry * GEOSUnaryUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSDistanceIndexed_r
int GEOSDistanceIndexed_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSCoordSeq_hasM
char GEOSCoordSeq_hasM(GEOSCoordSequence *s)
GEOSWKTReader_destroy
void GEOSWKTReader_destroy(GEOSWKTReader *reader)
GEOSMinimumWidth
GEOSGeometry * GEOSMinimumWidth(const GEOSGeometry *g)
GEOSWKTWriter_write
char * GEOSWKTWriter_write(GEOSWKTWriter *writer, const GEOSGeometry *g)
GEOSTopologyPreserveSimplify
GEOSGeometry * GEOSTopologyPreserveSimplify(const GEOSGeometry *g, double tolerance)
GEOSQueryCallback
void(* GEOSQueryCallback)(void *item, void *userdata)
Definition geos_c.h:286
GEOSCoordSeq_getSize_r
int GEOSCoordSeq_getSize_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *size)
GEOSGeomFromWKT
GEOSGeometry * GEOSGeomFromWKT(const char *wkt)
GEOSWKBReader_read
GEOSGeometry * GEOSWKBReader_read(GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
GEOSCoverageSimplifyVW
GEOSGeometry * GEOSCoverageSimplifyVW(const GEOSGeometry *input, double tolerance, int preserveBoundary)
GEOSContains_r
char GEOSContains_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSProject_r
double GEOSProject_r(GEOSContextHandle_t handle, const GEOSGeometry *line, const GEOSGeometry *point)
GEOSGeom_destroy_r
void GEOSGeom_destroy_r(GEOSContextHandle_t handle, GEOSGeometry *g)
GEOSTopologyPreserveSimplify_r
GEOSGeometry * GEOSTopologyPreserveSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSSingleSidedBuffer_r
GEOSGeometry * GEOSSingleSidedBuffer_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOS_init_r
GEOSContextHandle_t GEOS_init_r(void)
GEOSGeometry
struct GEOSGeom_t GEOSGeometry
Definition geos_c.h:140
GEOSPreparedContainsXY_r
char GEOSPreparedContainsXY_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
GEOSGeom_createRectangle
GEOSGeometry * GEOSGeom_createRectangle(double xmin, double ymin, double xmax, double ymax)
GEOSGeom_setPrecision
GEOSGeometry * GEOSGeom_setPrecision(const GEOSGeometry *g, double gridSize, int flags)
GEOSSTRtree_nearest_generic_r
const void * GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
GEOSCoordSeq_getM_r
int GEOSCoordSeq_getM_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSGeomTypeId
int GEOSGeomTypeId(const GEOSGeometry *g)
GEOSSTRtree_build
int GEOSSTRtree_build(GEOSSTRtree *tree)
GEOSPolygonize_full_r
GEOSGeometry * GEOSPolygonize_full_r(GEOSContextHandle_t handle, const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalidRings)
GEOSCoveredBy_r
char GEOSCoveredBy_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGetNumCoordinates_r
int GEOSGetNumCoordinates_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKTWriter_destroy
void GEOSWKTWriter_destroy(GEOSWKTWriter *writer)
GEOSCoordSeq_getDimensions_r
int GEOSCoordSeq_getDimensions_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *dims)
GEOSGeom_createEmptyCollection_r
GEOSGeometry * GEOSGeom_createEmptyCollection_r(GEOSContextHandle_t handle, int type)
GEOSGeom_createEmptyCircularString_r
GEOSGeometry * GEOSGeom_createEmptyCircularString_r(GEOSContextHandle_t handle)
GEOSWKBWriter_setOutputDimension
void GEOSWKBWriter_setOutputDimension(GEOSWKBWriter *writer, int newDimension)
GEOSEnvelope
GEOSGeometry * GEOSEnvelope(const GEOSGeometry *g)
GEOSGeom_createPoint_r
GEOSGeometry * GEOSGeom_createPoint_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSWKBFlavors
GEOSWKBFlavors
Definition geos_c.h:257
GEOS_WKB_ISO
@ GEOS_WKB_ISO
Definition geos_c.h:261
GEOS_WKB_EXTENDED
@ GEOS_WKB_EXTENDED
Definition geos_c.h:259
GEOSDensify
GEOSGeometry * GEOSDensify(const GEOSGeometry *g, double tolerance)
GEOSConstrainedDelaunayTriangulation_r
GEOSGeometry * GEOSConstrainedDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBReader_setFixStructure_r
void GEOSWKBReader_setFixStructure_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, char doFix)
GEOSFree_r
void GEOSFree_r(GEOSContextHandle_t handle, void *buffer)
GEOSGeom_extractUniquePoints
GEOSGeometry * GEOSGeom_extractUniquePoints(const GEOSGeometry *g)
GEOSHausdorffDistance
int GEOSHausdorffDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSWKBWriter_getOutputDimension
int GEOSWKBWriter_getOutputDimension(const GEOSWKBWriter *writer)
GEOSPreparedGeom_destroy_r
void GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *g)
GEOSCoordSeq_hasZ_r
char GEOSCoordSeq_hasZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOS_getWKBOutputDims
int GEOS_getWKBOutputDims(void)
GEOSGeom_createPolygon_r
GEOSGeometry * GEOSGeom_createPolygon_r(GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSGeomGetPointN
GEOSGeometry * GEOSGeomGetPointN(const GEOSGeometry *g, int n)
GEOSversion
const char * GEOSversion(void)
GEOSGetExteriorRing
const GEOSGeometry * GEOSGetExteriorRing(const GEOSGeometry *g)
GEOSMakeValidParams_setMethod
int GEOSMakeValidParams_setMethod(GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
initGEOS
void initGEOS(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOSNode
GEOSGeometry * GEOSNode(const GEOSGeometry *g)
GEOSOrientPolygons_r
int GEOSOrientPolygons_r(GEOSContextHandle_t handle, GEOSGeometry *g, int exteriorCW)
GEOSCoverageCleanParams_setGapMaximumWidth
int GEOSCoverageCleanParams_setGapMaximumWidth(GEOSCoverageCleanParams *params, double gapMaximumWidth)
GEOSOffsetCurve_r
GEOSGeometry * GEOSOffsetCurve_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
GEOSSTRtree_create
GEOSSTRtree * GEOSSTRtree_create(size_t nodeCapacity)
GEOSBoundary_r
GEOSGeometry * GEOSBoundary_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSFrechetDistanceDensify_r
int GEOSFrechetDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSPreparedRelatePattern_r
char GEOSPreparedRelatePattern_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, const char *im)
GEOSPreparedIntersects_r
char GEOSPreparedIntersects_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeom_createLinearRing_r
GEOSGeometry * GEOSGeom_createLinearRing_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSCrosses_r
char GEOSCrosses_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSEquals
char GEOSEquals(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeom_getYMin
int GEOSGeom_getYMin(const GEOSGeometry *g, double *value)
GEOSGeomGetX
int GEOSGeomGetX(const GEOSGeometry *g, double *x)
GEOSOverlapMerge
GEOSOverlapMerge
Definition geos_c.h:268
GEOS_MERGE_MIN_AREA
@ GEOS_MERGE_MIN_AREA
Definition geos_c.h:274
GEOS_MERGE_MIN_INDEX
@ GEOS_MERGE_MIN_INDEX
Definition geos_c.h:276
GEOS_MERGE_LONGEST_BORDER
@ GEOS_MERGE_LONGEST_BORDER
Definition geos_c.h:270
GEOS_MERGE_MAX_AREA
@ GEOS_MERGE_MAX_AREA
Definition geos_c.h:272
GEOSisSimpleDetail
char GEOSisSimpleDetail(const GEOSGeometry *g, int findAllLocations, GEOSGeometry **locations)
GEOSPreparedDistanceWithin_r
char GEOSPreparedDistanceWithin_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
GEOSSTRtree_query
void GEOSSTRtree_query(GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
GEOSOffsetCurve
GEOSGeometry * GEOSOffsetCurve(const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
GEOSCoverageUnion_r
GEOSGeometry * GEOSCoverageUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOS_interruptCancel
void GEOS_interruptCancel(void)
GEOSMakeValidParams_destroy
void GEOSMakeValidParams_destroy(GEOSMakeValidParams *parms)
GEOSGeomGetY
int GEOSGeomGetY(const GEOSGeometry *g, double *y)
GEOSLineMergeDirected_r
GEOSGeometry * GEOSLineMergeDirected_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSClusterInfo_getClustersForInputs_r
size_t * GEOSClusterInfo_getClustersForInputs_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters)
GEOSFrechetDistance
int GEOSFrechetDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSWKTReader_setFixStructure_r
void GEOSWKTReader_setFixStructure_r(GEOSContextHandle_t handle, GEOSWKTReader *reader, char doFix)
GEOSWKTWriter_create_r
GEOSWKTWriter * GEOSWKTWriter_create_r(GEOSContextHandle_t handle)
GEOSGeomGetPointN_r
GEOSGeometry * GEOSGeomGetPointN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSClusterInfo_destroy_r
void GEOSClusterInfo_destroy_r(GEOSContextHandle_t, GEOSClusterInfo *info)
GEOSDifference
GEOSGeometry * GEOSDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
GEOSGeom_createLineString_r
GEOSGeometry * GEOSGeom_createLineString_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSPolygonizer_getCutEdges_r
GEOSGeometry * GEOSPolygonizer_getCutEdges_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSMinimumClearance
int GEOSMinimumClearance(const GEOSGeometry *g, double *d)
GEOSClusterInfo_getNumClusters_r
size_t GEOSClusterInfo_getNumClusters_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters)
GEOSDelaunayTriangulation
GEOSGeometry * GEOSDelaunayTriangulation(const GEOSGeometry *g, double tolerance, int onlyEdges)
GEOSGeom_createCurvePolygon_r
GEOSGeometry * GEOSGeom_createCurvePolygon_r(GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSSTRtree_remove
char GEOSSTRtree_remove(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSBufferWithParams
GEOSGeometry * GEOSBufferWithParams(const GEOSGeometry *g, const GEOSBufferParams *p, double width)
GEOSContext_setNoticeHandler_r
GEOSMessageHandler GEOSContext_setNoticeHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler nf)
GEOSCoordSeq_getXYZ
int GEOSCoordSeq_getXYZ(const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
GEOSisValidDetail_r
char GEOSisValidDetail_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSMakeValidParams_create
GEOSMakeValidParams * GEOSMakeValidParams_create(void)
GEOSGeom_createEmptyLineString_r
GEOSGeometry * GEOSGeom_createEmptyLineString_r(GEOSContextHandle_t handle)
GEOSGeomType_r
char * GEOSGeomType_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSMinimumClearanceLine
GEOSGeometry * GEOSMinimumClearanceLine(const GEOSGeometry *g)
GEOSGeoJSONWriter_setOutputDimension
void GEOSGeoJSONWriter_setOutputDimension(GEOSGeoJSONWriter *writer, int dim)
GEOSRelateBoundaryNodeRule_r
char * GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
GEOSDisjoint
char GEOSDisjoint(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoordSeq_setX
int GEOSCoordSeq_setX(GEOSCoordSequence *s, unsigned int idx, double val)
GEOSCoverageIsValid
int GEOSCoverageIsValid(const GEOSGeometry *input, double gapWidth, GEOSGeometry **invalidEdges)
GEOSPreparedDistance
int GEOSPreparedDistance(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSUnion_r
GEOSGeometry * GEOSUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSMakeValidParams_create_r
GEOSMakeValidParams * GEOSMakeValidParams_create_r(GEOSContextHandle_t extHandle)
GEOSCoverageCleanWithParams_r
GEOSGeometry * GEOSCoverageCleanWithParams_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, const GEOSCoverageCleanParams *params)
GEOSPreparedContains
char GEOSPreparedContains(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSPolygonHullSimplifyMode_r
GEOSGeometry * GEOSPolygonHullSimplifyMode_r(GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
GEOSCoordSeq_getXYZ_r
int GEOSCoordSeq_getXYZ_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
GEOSGeomGetEndPoint_r
GEOSGeometry * GEOSGeomGetEndPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBWriter_setFlavor
void GEOSWKBWriter_setFlavor(GEOSWKBWriter *writer, int flavor)
initGEOS_r
GEOSContextHandle_t initGEOS_r(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOSCoordSeq_createWithDimensions_r
GEOSCoordSequence * GEOSCoordSeq_createWithDimensions_r(GEOSContextHandle_t handle, unsigned int size, int hasZ, int hasM)
GEOSBufCapStyles
GEOSBufCapStyles
Definition geos_c.h:711
GEOSBUF_CAP_SQUARE
@ GEOSBUF_CAP_SQUARE
Definition geos_c.h:720
GEOSBUF_CAP_FLAT
@ GEOSBUF_CAP_FLAT
Definition geos_c.h:717
GEOSBUF_CAP_ROUND
@ GEOSBUF_CAP_ROUND
Definition geos_c.h:714
GEOSConvexHull
GEOSGeometry * GEOSConvexHull(const GEOSGeometry *g)
GEOSVoronoiFlags
GEOSVoronoiFlags
Definition geos_c.h:4954
GEOS_VORONOI_PRESERVE_ORDER
@ GEOS_VORONOI_PRESERVE_ORDER
Definition geos_c.h:4960
GEOS_VORONOI_ONLY_EDGES
@ GEOS_VORONOI_ONLY_EDGES
Definition geos_c.h:4956
GEOSCoverageUnion
GEOSGeometry * GEOSCoverageUnion(const GEOSGeometry *g)
GEOSCoordSeq_setY_r
int GEOSCoordSeq_setY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSMakeValidParams_setMethod_r
int GEOSMakeValidParams_setMethod_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
GEOSWKBWriter_write_r
unsigned char * GEOSWKBWriter_write_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSSymDifference_r
GEOSGeometry * GEOSSymDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSPreparedGeom_destroy
void GEOSPreparedGeom_destroy(const GEOSPreparedGeometry *g)
GEOSNode_r
GEOSGeometry * GEOSNode_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSBufferParams_setJoinStyle
int GEOSBufferParams_setJoinStyle(GEOSBufferParams *p, int joinStyle)
GEOSCoordSeq_destroy
void GEOSCoordSeq_destroy(GEOSCoordSequence *s)
GEOSGeomFromWKT_r
GEOSGeometry * GEOSGeomFromWKT_r(GEOSContextHandle_t handle, const char *wkt)
GEOSGeoJSONReader_create
GEOSGeoJSONReader * GEOSGeoJSONReader_create(void)
GEOSCoordSeq_setOrdinate
int GEOSCoordSeq_setOrdinate(GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
GEOSPreparedIntersectsXY
char GEOSPreparedIntersectsXY(const GEOSPreparedGeometry *pg1, double x, double y)
GEOSBufferParams_setMitreLimit_r
int GEOSBufferParams_setMitreLimit_r(GEOSContextHandle_t handle, GEOSBufferParams *p, double mitreLimit)
GEOSContains
char GEOSContains(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoverageCleanParams_destroy_r
void GEOSCoverageCleanParams_destroy_r(GEOSContextHandle_t extHandle, GEOSCoverageCleanParams *params)
GEOSGeom_transformXYZ_r
GEOSGeometry * GEOSGeom_transformXYZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYZCallback callback, void *userdata)
GEOSPreparedIntersectsXY_r
char GEOSPreparedIntersectsXY_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
GEOSBufferWithStyle
GEOSGeometry * GEOSBufferWithStyle(const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
GEOSGeom_transformXY_r
GEOSGeometry * GEOSGeom_transformXY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
GEOSBuildArea
GEOSGeometry * GEOSBuildArea(const GEOSGeometry *g)
GEOSClusterEnvelopeDistance_r
GEOSClusterInfo * GEOSClusterEnvelopeDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
GEOSValidFlags
GEOSValidFlags
Definition geos_c.h:1626
GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE
@ GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE
Definition geos_c.h:1628
GEOSGeoJSONWriter_getOutputDimension
int GEOSGeoJSONWriter_getOutputDimension(GEOSGeoJSONWriter *writer)
GEOSWKBWriter_setByteOrder_r
void GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int byteOrder)
GEOSGeom_transformXYZ
GEOSGeometry * GEOSGeom_transformXYZ(const GEOSGeometry *g, GEOSTransformXYZCallback callback, void *userdata)
GEOSBufferParams_create
GEOSBufferParams * GEOSBufferParams_create(void)
GEOSClusterGeometryIntersects_r
GEOSClusterInfo * GEOSClusterGeometryIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBWriter
struct GEOSWKBWriter_t GEOSWKBWriter
Definition geos_c.h:2090
GEOSWKBWriter_setFlavor_r
void GEOSWKBWriter_setFlavor_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int flavor)
GEOSPreparedOverlaps_r
char GEOSPreparedOverlaps_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSCoordSeq_copyToBuffer
int GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
GEOSWKTReader_setFixStructure
void GEOSWKTReader_setFixStructure(GEOSWKTReader *reader, char doFix)
GEOSConcaveHullOfPolygons
GEOSGeometry * GEOSConcaveHullOfPolygons(const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
GEOSGeomTypeId_r
int GEOSGeomTypeId_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKTReader_create_r
GEOSWKTReader * GEOSWKTReader_create_r(GEOSContextHandle_t handle)
GEOSGeom_createCompoundCurve_r
GEOSGeometry * GEOSGeom_createCompoundCurve_r(GEOSContextHandle_t handle, GEOSGeometry **curves, unsigned int ncurves)
GEOSWKTWriter
struct GEOSWKTWriter_t GEOSWKTWriter
Definition geos_c.h:2076
GEOSPreparedWithin_r
char GEOSPreparedWithin_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSSegmentIntersection
int GEOSSegmentIntersection(double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
GEOSCoordSeq_setY
int GEOSCoordSeq_setY(GEOSCoordSequence *s, unsigned int idx, double val)
GEOSMakeValidParams_destroy_r
void GEOSMakeValidParams_destroy_r(GEOSContextHandle_t handle, GEOSMakeValidParams *parms)
GEOSPreparedCovers
char GEOSPreparedCovers(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSContext_setErrorMessageHandler_r
GEOSMessageHandler_r GEOSContext_setErrorMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r ef, void *userData)
GEOSGeom_releaseCollection_r
GEOSGeometry ** GEOSGeom_releaseCollection_r(GEOSContextHandle_t handle, GEOSGeometry *collection, unsigned int *ngeoms)
GEOSGeoJSONReader_readGeometry
GEOSGeometry * GEOSGeoJSONReader_readGeometry(GEOSGeoJSONReader *reader, const char *geojson)
GEOSInterruptCallback
void GEOSInterruptCallback(void)
Definition geos_c.h:359
GEOSEnvelope_r
GEOSGeometry * GEOSEnvelope_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSEqualsIdentical
char GEOSEqualsIdentical(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeomFromHEX_buf
GEOSGeometry * GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size)
GEOSWKBWriter_writeHEX
unsigned char * GEOSWKBWriter_writeHEX(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSInterpolate_r
GEOSGeometry * GEOSInterpolate_r(GEOSContextHandle_t handle, const GEOSGeometry *line, double d)
GEOSSharedPaths_r
GEOSGeometry * GEOSSharedPaths_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeom_getExtent_r
int GEOSGeom_getExtent_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
GEOSWKTReader_read_r
GEOSGeometry * GEOSWKTReader_read_r(GEOSContextHandle_t handle, GEOSWKTReader *reader, const char *wkt)
GEOSPreparedRelatePattern
char GEOSPreparedRelatePattern(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, const char *imPattern)
GEOS_setWKBByteOrder
int GEOS_setWKBByteOrder(int byteOrder)
GEOSCoverageIsValid_r
int GEOSCoverageIsValid_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, double gapWidth, GEOSGeometry **output)
GEOSCoverageCleanParams_setGapMaximumWidth_r
int GEOSCoverageCleanParams_setGapMaximumWidth_r(GEOSContextHandle_t extHandle, GEOSCoverageCleanParams *params, double gapMaximumWidth)
GEOSWKBReader_setFixStructure
void GEOSWKBReader_setFixStructure(GEOSWKBReader *reader, char doFix)
GEOSInterpolate
GEOSGeometry * GEOSInterpolate(const GEOSGeometry *line, double d)
GEOSPreparedContains_r
char GEOSPreparedContains_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSInterpolateNormalized_r
GEOSGeometry * GEOSInterpolateNormalized_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
GEOSCoordSeq_getY_r
int GEOSCoordSeq_getY_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSGeomGetEndPoint
GEOSGeometry * GEOSGeomGetEndPoint(const GEOSGeometry *g)
GEOSSnap_r
GEOSGeometry * GEOSSnap_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSPolygonize_full
GEOSGeometry * GEOSPolygonize_full(const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalid)
GEOSRelateBoundaryNodeRule
char * GEOSRelateBoundaryNodeRule(const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
GEOSGeom_getPrecision
double GEOSGeom_getPrecision(const GEOSGeometry *g)
GEOSLargestEmptyCircle
GEOSGeometry * GEOSLargestEmptyCircle(const GEOSGeometry *obstacles, const GEOSGeometry *boundary, double tolerance)
GEOSIntersects
char GEOSIntersects(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoordSeq_getDimensions
int GEOSCoordSeq_getDimensions(const GEOSCoordSequence *s, unsigned int *dims)
GEOSPreparedCoveredBy
char GEOSPreparedCoveredBy(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSCovers
char GEOSCovers(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOS_interruptRegisterCallback
GEOSInterruptCallback * GEOS_interruptRegisterCallback(GEOSInterruptCallback *cb)
GEOSGeom_getXMin_r
int GEOSGeom_getXMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSCoordSeq_getOrdinate_r
int GEOSCoordSeq_getOrdinate_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
GEOSCoordSeq_getXY
int GEOSCoordSeq_getXY(const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
GEOSSimplify_r
GEOSGeometry * GEOSSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSIntersection_r
GEOSGeometry * GEOSIntersection_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSMessageHandler_r
void typedef void(* GEOSMessageHandler_r)(const char *message, void *userdata)
Definition geos_c.h:118
GEOSOrientPolygons
int GEOSOrientPolygons(GEOSGeometry *g, int exteriorCW)
GEOSOverlaps
char GEOSOverlaps(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSHasM_r
char GEOSHasM_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKTWriter_setTrim_r
void GEOSWKTWriter_setTrim_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, char trim)
GEOSLineMergeDirected
GEOSGeometry * GEOSLineMergeDirected(const GEOSGeometry *g)
GEOSMakeValidWithParams
GEOSGeometry * GEOSMakeValidWithParams(const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
GEOSGeomFromWKB_buf_r
GEOSGeometry * GEOSGeomFromWKB_buf_r(GEOSContextHandle_t handle, const unsigned char *wkb, size_t size)
GEOSPointOnSurface
GEOSGeometry * GEOSPointOnSurface(const GEOSGeometry *g)
GEOSUnaryUnionPrec
GEOSGeometry * GEOSUnaryUnionPrec(const GEOSGeometry *g, double gridSize)
GEOSWKTWriter_setTrim
void GEOSWKTWriter_setTrim(GEOSWKTWriter *writer, char trim)
GEOSBuffer_r
GEOSGeometry * GEOSBuffer_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs)
GEOSMinimumWidth_r
GEOSGeometry * GEOSMinimumWidth_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBReader_readHEX_r
GEOSGeometry * GEOSWKBReader_readHEX_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *hex, size_t size)
GEOSWKBByteOrders
GEOSWKBByteOrders
Definition geos_c.h:241
GEOS_WKB_NDR
@ GEOS_WKB_NDR
Definition geos_c.h:245
GEOS_WKB_XDR
@ GEOS_WKB_XDR
Definition geos_c.h:243
GEOSVoronoiDiagram_r
GEOSGeometry * GEOSVoronoiDiagram_r(GEOSContextHandle_t extHandle, const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
GEOSWKBWriter_setIncludeSRID_r
void GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const char writeSRID)
GEOSClusterDBSCAN_r
GEOSClusterInfo * GEOSClusterDBSCAN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double eps, unsigned minPoints)
GEOSConstrainedDelaunayTriangulation
GEOSGeometry * GEOSConstrainedDelaunayTriangulation(const GEOSGeometry *g)
GEOSCoordSeq_copyToArrays
int GEOSCoordSeq_copyToArrays(const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
GEOSMinimumBoundingCircle
GEOSGeometry * GEOSMinimumBoundingCircle(const GEOSGeometry *g, double *radius, GEOSGeometry **center)
GEOSSymDifference
GEOSGeometry * GEOSSymDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
GEOSDistanceWithin_r
char GEOSDistanceWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
GEOSMakeValidWithParams_r
GEOSGeometry * GEOSMakeValidWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
GEOSWKTReader
struct GEOSWKTReader_t GEOSWKTReader
Definition geos_c.h:2069
GEOSNearestPoints_r
GEOSCoordSequence * GEOSNearestPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSPolygonize
GEOSGeometry * GEOSPolygonize(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSPreparedCoveredBy_r
char GEOSPreparedCoveredBy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSDisjointSubsetUnion
GEOSGeometry * GEOSDisjointSubsetUnion(const GEOSGeometry *g)
GEOSGeom_createPointFromXY
GEOSGeometry * GEOSGeom_createPointFromXY(double x, double y)
GEOSRemoveRepeatedPoints
GEOSGeometry * GEOSRemoveRepeatedPoints(const GEOSGeometry *g, double tolerance)
GEOSVoronoiDiagram
GEOSGeometry * GEOSVoronoiDiagram(const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
GEOSGeom_createPolygon
GEOSGeometry * GEOSGeom_createPolygon(GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSWKBWriter_setOutputDimension_r
void GEOSWKBWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int newDimension)
GEOSSetSRID_r
void GEOSSetSRID_r(GEOSContextHandle_t handle, GEOSGeometry *g, int SRID)
GEOSWKTReader_destroy_r
void GEOSWKTReader_destroy_r(GEOSContextHandle_t handle, GEOSWKTReader *reader)
GEOSSTRtree_destroy_r
void GEOSSTRtree_destroy_r(GEOSContextHandle_t handle, GEOSSTRtree *tree)
GEOSGeomType
char * GEOSGeomType(const GEOSGeometry *g)
GEOSPreparedDisjoint
char GEOSPreparedDisjoint(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeom_createEmptyPoint_r
GEOSGeometry * GEOSGeom_createEmptyPoint_r(GEOSContextHandle_t handle)
GEOSRelateBoundaryNodeRules
GEOSRelateBoundaryNodeRules
Definition geos_c.h:1583
GEOSRELATE_BNR_OGC
@ GEOSRELATE_BNR_OGC
Definition geos_c.h:1587
GEOSRELATE_BNR_MULTIVALENT_ENDPOINT
@ GEOSRELATE_BNR_MULTIVALENT_ENDPOINT
Definition geos_c.h:1591
GEOSRELATE_BNR_ENDPOINT
@ GEOSRELATE_BNR_ENDPOINT
Definition geos_c.h:1589
GEOSRELATE_BNR_MOD2
@ GEOSRELATE_BNR_MOD2
Definition geos_c.h:1585
GEOSRELATE_BNR_MONOVALENT_ENDPOINT
@ GEOSRELATE_BNR_MONOVALENT_ENDPOINT
Definition geos_c.h:1593
GEOSClusterInfo_getInputsForClusterN
const size_t * GEOSClusterInfo_getInputsForClusterN(const GEOSClusterInfo *clusters, size_t i)
GEOSClusterInfo_getInputsForClusterN.
GEOSSymDifferencePrec_r
GEOSGeometry * GEOSSymDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeoJSONWriter_writeGeometry_r
char * GEOSGeoJSONWriter_writeGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
GEOSBufferParams_setSingleSided_r
int GEOSBufferParams_setSingleSided_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int singleSided)
GEOSCrosses
char GEOSCrosses(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeomGetStartPoint
GEOSGeometry * GEOSGeomGetStartPoint(const GEOSGeometry *g)
GEOSMakeValidParams_setKeepCollapsed_r
int GEOSMakeValidParams_setKeepCollapsed_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, int style)
GEOSCoordSeq_setOrdinate_r
int GEOSCoordSeq_setOrdinate_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
GEOSSetSRID
void GEOSSetSRID(GEOSGeometry *g, int SRID)
GEOSGeoJSONReader_readGeometry_r
GEOSGeometry * GEOSGeoJSONReader_readGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader, const char *geojson)
GEOSGeoJSONWriter_writeGeometry
char * GEOSGeoJSONWriter_writeGeometry(GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
GEOSGeom_createLineString
GEOSGeometry * GEOSGeom_createLineString(GEOSCoordSequence *s)
GEOSWKBWriter_write
unsigned char * GEOSWKBWriter_write(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSMakeValid_r
GEOSGeometry * GEOSMakeValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSLineSubstring_r
GEOSGeometry * GEOSLineSubstring_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double start_fraction, double end_fdraction)
GEOSReverse
GEOSGeometry * GEOSReverse(const GEOSGeometry *g)
GEOSWKBWriter_getFlavor
int GEOSWKBWriter_getFlavor(const GEOSWKBWriter *writer)
GEOSIntersects_r
char GEOSIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSRelate
char * GEOSRelate(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoordSeq_getSize
int GEOSCoordSeq_getSize(const GEOSCoordSequence *s, unsigned int *size)
GEOSPolygonHullParameterModes
GEOSPolygonHullParameterModes
Definition geos_c.h:4750
GEOSHULL_PARAM_AREA_RATIO
@ GEOSHULL_PARAM_AREA_RATIO
Definition geos_c.h:4754
GEOSHULL_PARAM_VERTEX_RATIO
@ GEOSHULL_PARAM_VERTEX_RATIO
Definition geos_c.h:4752
GEOSOrientationIndex
int GEOSOrientationIndex(double Ax, double Ay, double Bx, double By, double Px, double Py)
GEOSGeomFromWKB_buf
GEOSGeometry * GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size)
GEOSWKTWriter_setOutputDimension_r
void GEOSWKTWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int dim)
GEOSClipByRect_r
GEOSGeometry * GEOSClipByRect_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
GEOSGetNumInteriorRings_r
int GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeomGetZ
int GEOSGeomGetZ(const GEOSGeometry *g, double *z)
GEOSDensify_r
GEOSGeometry * GEOSDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSWKBWriter_getFlavor_r
int GEOSWKBWriter_getFlavor_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
GEOSCoordSeq_isCCW
int GEOSCoordSeq_isCCW(const GEOSCoordSequence *s, char *is_ccw)
GEOSContextHandle_t
struct GEOSContextHandle_HS * GEOSContextHandle_t
Definition geos_c.h:95
GEOSCoordSeq_copyToBuffer_r
int GEOSCoordSeq_copyToBuffer_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
GEOSCoordSeq_setXY
int GEOSCoordSeq_setXY(GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSMakeValid
GEOSGeometry * GEOSMakeValid(const GEOSGeometry *g)
GEOSCoordSeq_destroy_r
void GEOSCoordSeq_destroy_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSPolygonizer_getCutEdges
GEOSGeometry * GEOSPolygonizer_getCutEdges(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSGetSRID_r
int GEOSGetSRID_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSHilbertCode_r
int GEOSHilbertCode_r(GEOSContextHandle_t handle, const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
GEOSSTRtree_create_r
GEOSSTRtree * GEOSSTRtree_create_r(GEOSContextHandle_t handle, size_t nodeCapacity)
GEOSMakeValidParams_setKeepCollapsed
int GEOSMakeValidParams_setKeepCollapsed(GEOSMakeValidParams *p, int keepCollapsed)
GEOSUnionPrec
GEOSGeometry * GEOSUnionPrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
GEOSHausdorffDistanceDensify
int GEOSHausdorffDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSMinimumRotatedRectangle
GEOSGeometry * GEOSMinimumRotatedRectangle(const GEOSGeometry *g)
GEOSGeom_createEmptyPolygon_r
GEOSGeometry * GEOSGeom_createEmptyPolygon_r(GEOSContextHandle_t handle)
GEOSBufJoinStyles
GEOSBufJoinStyles
Definition geos_c.h:727
GEOSBUF_JOIN_MITRE
@ GEOSBUF_JOIN_MITRE
Definition geos_c.h:737
GEOSBUF_JOIN_ROUND
@ GEOSBUF_JOIN_ROUND
Definition geos_c.h:732
GEOSBUF_JOIN_BEVEL
@ GEOSBUF_JOIN_BEVEL
Definition geos_c.h:742
GEOSGeom_createEmptyCollection
GEOSGeometry * GEOSGeom_createEmptyCollection(int type)
GEOSIntersection
GEOSGeometry * GEOSIntersection(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSWKBWriter_getByteOrder_r
int GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
GEOSGeom_getXMax_r
int GEOSGeom_getXMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSWKBWriter_destroy
void GEOSWKBWriter_destroy(GEOSWKBWriter *writer)
GEOSEquals_r
char GEOSEquals_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoverageCleanParams_setSnappingDistance_r
int GEOSCoverageCleanParams_setSnappingDistance_r(GEOSContextHandle_t extHandle, GEOSCoverageCleanParams *params, double snappingDistance)
GEOSGeom_getXMin
int GEOSGeom_getXMin(const GEOSGeometry *g, double *value)
GEOSCovers_r
char GEOSCovers_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeomGetLength
int GEOSGeomGetLength(const GEOSGeometry *g, double *length)
GEOSOverlaps_r
char GEOSOverlaps_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSLength_r
int GEOSLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
GEOSSTRtree_nearest
const GEOSGeometry * GEOSSTRtree_nearest(GEOSSTRtree *tree, const GEOSGeometry *geom)
GEOSClusterGeometryIntersects
GEOSClusterInfo * GEOSClusterGeometryIntersects(const GEOSGeometry *g)
GEOSClusterGeometryIntersects.
GEOSGeomToHEX_buf
unsigned char * GEOSGeomToHEX_buf(const GEOSGeometry *g, size_t *size)
GEOSCoordSeq_copyFromBuffer_r
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer_r(GEOSContextHandle_t handle, const double *buf, unsigned int size, int hasZ, int hasM)
GEOSWKBReader_create_r
GEOSWKBReader * GEOSWKBReader_create_r(GEOSContextHandle_t handle)
GEOSisSimpleDetail_r
char GEOSisSimpleDetail_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int findAllLocations, GEOSGeometry **location)
GEOSDisjoint_r
char GEOSDisjoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSPreparedContainsProperly_r
char GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSPreparedNearestPoints_r
GEOSCoordSequence * GEOSPreparedNearestPoints_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeomFromHEX_buf_r
GEOSGeometry * GEOSGeomFromHEX_buf_r(GEOSContextHandle_t handle, const unsigned char *hex, size_t size)
GEOSClusterGeometryDistance_r
GEOSClusterInfo * GEOSClusterGeometryDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
GEOSCoordSeq_clone
GEOSCoordSequence * GEOSCoordSeq_clone(const GEOSCoordSequence *s)
GEOSGeom_getCoordinateDimension_r
int GEOSGeom_getCoordinateDimension_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSNormalize
int GEOSNormalize(GEOSGeometry *g)
GEOSGeomToWKB_buf
unsigned char * GEOSGeomToWKB_buf(const GEOSGeometry *g, size_t *size)
GEOSGetNumGeometries_r
int GEOSGetNumGeometries_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSEqualsExact_r
char GEOSEqualsExact_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSMinimumBoundingCircle_r
GEOSGeometry * GEOSMinimumBoundingCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *radius, GEOSGeometry **center)
GEOSWKTWriter_getOutputDimension
int GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer)
GEOSTouches_r
char GEOSTouches_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSWKTReader_read
GEOSGeometry * GEOSWKTReader_read(GEOSWKTReader *reader, const char *wkt)
GEOSUnaryUnionPrec_r
GEOSGeometry * GEOSUnaryUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize)
GEOSCoordSeq_getM
int GEOSCoordSeq_getM(const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSArea_r
int GEOSArea_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *area)
GEOSGeom_getPrecision_r
double GEOSGeom_getPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKTWriter_setOutputDimension
void GEOSWKTWriter_setOutputDimension(GEOSWKTWriter *writer, int dim)
GEOSCoordSeq_copyFromArrays
GEOSCoordSequence * GEOSCoordSeq_copyFromArrays(const double *x, const double *y, const double *z, const double *m, unsigned int size)
GEOSWKBReader_create
GEOSWKBReader * GEOSWKBReader_create(void)
GEOSCoordSeq_getY
int GEOSCoordSeq_getY(const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOS_interruptThread
void GEOS_interruptThread(void)
GEOSCoordSeq_setZ
int GEOSCoordSeq_setZ(GEOSCoordSequence *s, unsigned int idx, double val)
GEOSBufferParams_setMitreLimit
int GEOSBufferParams_setMitreLimit(GEOSBufferParams *p, double mitreLimit)
GEOSTransformXYCallback
int(* GEOSTransformXYCallback)(double *x, double *y, void *userdata)
Definition geos_c.h:324
GEOSWKTWriter_setOld3D
void GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer, int useOld3D)
GEOSGeom_getExtent
int GEOSGeom_getExtent(const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
GEOSCoordSeq_copyToArrays_r
int GEOSCoordSeq_copyToArrays_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
GEOSWithin
char GEOSWithin(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSNormalize_r
int GEOSNormalize_r(GEOSContextHandle_t handle, GEOSGeometry *g)
GEOSWKBWriter_destroy_r
void GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer)
GEOSCoordSeq_createWithDimensions
GEOSCoordSequence * GEOSCoordSeq_createWithDimensions(unsigned int size, int hasZ, int hasM)
GEOSCoverageCleanParams_setSnappingDistance
int GEOSCoverageCleanParams_setSnappingDistance(GEOSCoverageCleanParams *params, double snappingDistance)
GEOSDistance
int GEOSDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeom_createEmptyPolygon
GEOSGeometry * GEOSGeom_createEmptyPolygon(void)
finishGEOS_r
void finishGEOS_r(GEOSContextHandle_t handle)
GEOSisClosed
char GEOSisClosed(const GEOSGeometry *g)
GEOSPolygonHullSimplifyMode
GEOSGeometry * GEOSPolygonHullSimplifyMode(const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
GEOSGeom_getCoordinateDimension
int GEOSGeom_getCoordinateDimension(const GEOSGeometry *g)
GEOSClusterInfo_getClusterSize
size_t GEOSClusterInfo_getClusterSize(const GEOSClusterInfo *clusters, size_t i)
GEOSClusterInfo_getSize.
GEOSClusterInfo
struct GEOSClusterInfo_t GEOSClusterInfo
Definition geos_c.h:189
GEOSFrechetDistance_r
int GEOSFrechetDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSRelatePattern
char GEOSRelatePattern(const GEOSGeometry *g1, const GEOSGeometry *g2, const char *imPattern)
GEOSBufferWithStyle_r
GEOSGeometry * GEOSBufferWithStyle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
GEOSRelate_r
char * GEOSRelate_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSConvexHull_r
GEOSGeometry * GEOSConvexHull_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeoJSONWriter
struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter
Definition geos_c.h:2104
GEOSGeomToWKB_buf_r
unsigned char * GEOSGeomToWKB_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
GEOSSingleSidedBuffer
GEOSGeometry * GEOSSingleSidedBuffer(const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOSUnionCascaded
GEOSGeometry * GEOSUnionCascaded(const GEOSGeometry *g)
GEOSPreparedTouches_r
char GEOSPreparedTouches_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSContext_setErrorHandler_r
GEOSMessageHandler GEOSContext_setErrorHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler ef)
GEOSCoordSeq_setXYZ
int GEOSCoordSeq_setXYZ(GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
GEOSClusterInfo_getClustersForInputs
size_t * GEOSClusterInfo_getClustersForInputs(const GEOSClusterInfo *clusters)
GEOSClusterInfo_getClustersForInputs.
GEOSCoverageClean_r
GEOSGeometry * GEOSCoverageClean_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input)
GEOSWKTWriter_getOutputDimension_r
int GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
GEOSProjectNormalized
double GEOSProjectNormalized(const GEOSGeometry *line, const GEOSGeometry *point)
GEOSGeom_createEmptyCircularString
GEOSGeometry * GEOSGeom_createEmptyCircularString()
GEOSGeom_getYMin_r
int GEOSGeom_getYMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeom_clone_r
GEOSGeometry * GEOSGeom_clone_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPrepare_r
const GEOSPreparedGeometry * GEOSPrepare_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSMinimumClearanceLine_r
GEOSGeometry * GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeom_setUserData
void GEOSGeom_setUserData(GEOSGeometry *g, void *userData)
GEOSGeom_createCollection
GEOSGeometry * GEOSGeom_createCollection(int type, GEOSGeometry **geoms, unsigned int ngeoms)
GEOSGeoJSONReader_destroy
void GEOSGeoJSONReader_destroy(GEOSGeoJSONReader *reader)
GEOSGetCentroid_r
GEOSGeometry * GEOSGetCentroid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSeq_copyFromBuffer
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer(const double *buf, unsigned int size, int hasZ, int hasM)
GEOSGridIntersectionFractions
int GEOSGridIntersectionFractions(const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax, unsigned nx, unsigned ny, float *buf)
GEOSGeomGetNumPoints
int GEOSGeomGetNumPoints(const GEOSGeometry *g)
GEOSGeoJSONWriter_destroy
void GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter *writer)
GEOSGeom_transformXY
GEOSGeometry * GEOSGeom_transformXY(const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
GEOSClusterInfo_getNumClusters
size_t GEOSClusterInfo_getNumClusters(const GEOSClusterInfo *clusters)
GEOSClusterInfo_getNumClusters.
GEOSProjectNormalized_r
double GEOSProjectNormalized_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *p)
GEOSPreparedCrosses
char GEOSPreparedCrosses(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeomGetNumPoints_r
int GEOSGeomGetNumPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSisValidReason_r
char * GEOSisValidReason_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPolygonize_valid_r
GEOSGeometry * GEOSPolygonize_valid_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngems)
GEOSGeom_createCurvePolygon
GEOSGeometry * GEOSGeom_createCurvePolygon(GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSLineSubstring
GEOSGeometry * GEOSLineSubstring(const GEOSGeometry *g, double start_fraction, double end_fraction)
GEOSPreparedIntersects
char GEOSPreparedIntersects(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSWithin_r
char GEOSWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSClusterDBSCAN
GEOSClusterInfo * GEOSClusterDBSCAN(const GEOSGeometry *g, double eps, unsigned minPoints)
GEOSClusterDBSCAN.
GEOSConcaveHullOfPolygons_r
GEOSGeometry * GEOSConcaveHullOfPolygons_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
GEOS_setWKBOutputDims
int GEOS_setWKBOutputDims(int newDims)
GEOSGeom_getCoordSeq_r
const GEOSCoordSequence * GEOSGeom_getCoordSeq_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSPointOnSurface_r
GEOSGeometry * GEOSPointOnSurface_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeom_createEmptyCurvePolygon
GEOSGeometry * GEOSGeom_createEmptyCurvePolygon()
GEOSFrechetDistanceDensify
int GEOSFrechetDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSBufferParams
struct GEOSBufParams_t GEOSBufferParams
Definition geos_c.h:169
GEOSPreparedCovers_r
char GEOSPreparedCovers_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSDifference_r
GEOSGeometry * GEOSDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSCoordSeq_hasM_r
char GEOSCoordSeq_hasM_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSLargestEmptyCircle_r
GEOSGeometry * GEOSLargestEmptyCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *boundary, double tolerance)
GEOSOrientationIndex_r
int GEOSOrientationIndex_r(GEOSContextHandle_t handle, double Ax, double Ay, double Bx, double By, double Px, double Py)
GEOSPolygonHullSimplify_r
GEOSGeometry * GEOSPolygonHullSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
GEOSPrecisionRules
GEOSPrecisionRules
Definition geos_c.h:1772
GEOS_PREC_NO_TOPO
@ GEOS_PREC_NO_TOPO
Definition geos_c.h:1776
GEOS_PREC_KEEP_COLLAPSED
@ GEOS_PREC_KEEP_COLLAPSED
Definition geos_c.h:1778
GEOS_PREC_VALID_OUTPUT
@ GEOS_PREC_VALID_OUTPUT
Definition geos_c.h:1774
GEOSGetNumGeometries
int GEOSGetNumGeometries(const GEOSGeometry *g)
GEOSCoordSeq_setM
int GEOSCoordSeq_setM(GEOSCoordSequence *s, unsigned int idx, double val)
GEOSGeom_getUserData
void * GEOSGeom_getUserData(const GEOSGeometry *g)
GEOSCoordSeq_hasZ
char GEOSCoordSeq_hasZ(GEOSCoordSequence *s)
GEOSGetNumCoordinates
int GEOSGetNumCoordinates(const GEOSGeometry *g)
GEOSMakeValidParams
struct GEOSMakeValidParams_t GEOSMakeValidParams
Definition geos_c.h:183
GEOSRelatePatternMatch
char GEOSRelatePatternMatch(const char *intMatrix, const char *imPattern)
GEOS_finish_r
void GEOS_finish_r(GEOSContextHandle_t handle)
GEOSMakeValidMethods
GEOSMakeValidMethods
Definition geos_c.h:1663
GEOS_MAKE_VALID_LINEWORK
@ GEOS_MAKE_VALID_LINEWORK
Definition geos_c.h:1667
GEOS_MAKE_VALID_STRUCTURE
@ GEOS_MAKE_VALID_STRUCTURE
Definition geos_c.h:1672
GEOSWKBReader_readHEX
GEOSGeometry * GEOSWKBReader_readHEX(GEOSWKBReader *reader, const unsigned char *hex, size_t size)
GEOSGeom_getYMax_r
int GEOSGeom_getYMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeom_createEmptyLineString
GEOSGeometry * GEOSGeom_createEmptyLineString(void)
GEOSGetInteriorRingN_r
const GEOSGeometry * GEOSGetInteriorRingN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSInterpolateNormalized
GEOSGeometry * GEOSInterpolateNormalized(const GEOSGeometry *line, double proportion)
GEOSGeom_createEmptyCompoundCurve
GEOSGeometry * GEOSGeom_createEmptyCompoundCurve()
GEOSGeom_clone
GEOSGeometry * GEOSGeom_clone(const GEOSGeometry *g)
GEOSGeoJSONWriter_destroy_r
void GEOSGeoJSONWriter_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
GEOSBufferParams_setSingleSided
int GEOSBufferParams_setSingleSided(GEOSBufferParams *p, int singleSided)
GEOSGetInteriorRingN
const GEOSGeometry * GEOSGetInteriorRingN(const GEOSGeometry *g, int n)
GEOSGeomGetZ_r
int GEOSGeomGetZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *z)
GEOSUnionPrec_r
GEOSGeometry * GEOSUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeom_createPointFromXY_r
GEOSGeometry * GEOSGeom_createPointFromXY_r(GEOSContextHandle_t handle, double x, double y)
GEOSEqualsIdentical_r
char GEOSEqualsIdentical_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSClusterGeometryDistance
GEOSClusterInfo * GEOSClusterGeometryDistance(const GEOSGeometry *g, double d)
GEOSClusterGeometryDistance.
GEOSClusterEnvelopeIntersects_r
GEOSClusterInfo * GEOSClusterEnvelopeIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKTWriter_destroy_r
void GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
GEOSPrepare
const GEOSPreparedGeometry * GEOSPrepare(const GEOSGeometry *g)
GEOSWKBWriter_getByteOrder
int GEOSWKBWriter_getByteOrder(const GEOSWKBWriter *writer)
GEOSPreparedOverlaps
char GEOSPreparedOverlaps(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSHasZ_r
char GEOSHasZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSeq_setM_r
int GEOSCoordSeq_setM_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSUnion
GEOSGeometry * GEOSUnion(const GEOSGeometry *ga, const GEOSGeometry *gb)
GEOSGeoJSONReader_destroy_r
void GEOSGeoJSONReader_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader)
GEOSSimplify
GEOSGeometry * GEOSSimplify(const GEOSGeometry *g, double tolerance)
GEOSSTRtree_insert
void GEOSSTRtree_insert(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSisSimple_r
char GEOSisSimple_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBWriter_create_r
GEOSWKBWriter * GEOSWKBWriter_create_r(GEOSContextHandle_t handle)
GEOSDistanceWithin
char GEOSDistanceWithin(const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
GEOSCoordSeq_setXYZ_r
int GEOSCoordSeq_setXYZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
GEOSGeomGetX_r
int GEOSGeomGetX_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *x)
GEOSGeomToHEX_buf_r
unsigned char * GEOSGeomToHEX_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
GEOSPreparedWithin
char GEOSPreparedWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSHasZ
char GEOSHasZ(const GEOSGeometry *g)
GEOSWKBWriter_getOutputDimension_r
int GEOSWKBWriter_getOutputDimension_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
GEOSBufferParams_setQuadrantSegments
int GEOSBufferParams_setQuadrantSegments(GEOSBufferParams *p, int quadSegs)
GEOS_interruptRequest
void GEOS_interruptRequest(void)
GEOSWKBWriter_getIncludeSRID_r
char GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
finishGEOS
void finishGEOS(void)
GEOSLength
int GEOSLength(const GEOSGeometry *g, double *length)
GEOSConcaveHull
GEOSGeometry * GEOSConcaveHull(const GEOSGeometry *g, double ratio, unsigned int allowHoles)
GEOSCoordSeq_getZ_r
int GEOSCoordSeq_getZ_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSBufferParams_setEndCapStyle
int GEOSBufferParams_setEndCapStyle(GEOSBufferParams *p, int style)
GEOSUnionCascaded_r
GEOSGeometry * GEOSUnionCascaded_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGetSRID
int GEOSGetSRID(const GEOSGeometry *g)
GEOSBuffer
GEOSGeometry * GEOSBuffer(const GEOSGeometry *g, double width, int quadsegs)
GEOSWKBWriter_writeHEX_r
unsigned char * GEOSWKBWriter_writeHEX_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSWKTWriter_setRoundingPrecision
void GEOSWKTWriter_setRoundingPrecision(GEOSWKTWriter *writer, int precision)
GEOSisClosed_r
char GEOSisClosed_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSisValidReason
char * GEOSisValidReason(const GEOSGeometry *g)
GEOSGeoJSONWriter_setOutputDimension_r
void GEOSGeoJSONWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer, int dim)
GEOSBufferParams_setJoinStyle_r
int GEOSBufferParams_setJoinStyle_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int joinStyle)
GEOSisRing
char GEOSisRing(const GEOSGeometry *g)
GEOSCoordSeq_getXY_r
int GEOSCoordSeq_getXY_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
GEOSPreparedContainsXY
char GEOSPreparedContainsXY(const GEOSPreparedGeometry *pg1, double x, double y)
GEOSGetGeometryN_r
const GEOSGeometry * GEOSGetGeometryN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSCoordSeq_getX_r
int GEOSCoordSeq_getX_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSPreparedDistance_r
int GEOSPreparedDistance_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSWKTWriter_create
GEOSWKTWriter * GEOSWKTWriter_create(void)
GEOSPreparedRelate_r
char * GEOSPreparedRelate_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSSegmentIntersection_r
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)
GEOSisValid
char GEOSisValid(const GEOSGeometry *g)
GEOSCoveredBy
char GEOSCoveredBy(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeom_getDimensions
int GEOSGeom_getDimensions(const GEOSGeometry *g)
GEOSPreparedDisjoint_r
char GEOSPreparedDisjoint_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSHausdorffDistance_r
int GEOSHausdorffDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeom_createCircularString
GEOSGeometry * GEOSGeom_createCircularString(GEOSCoordSequence *s)
GEOSWKBWriter_setIncludeSRID
void GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter *writer, const char writeSRID)
GEOSBuildArea_r
GEOSGeometry * GEOSBuildArea_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSisEmpty
char GEOSisEmpty(const GEOSGeometry *g)
GEOSCoverageCleanParams_create
GEOSCoverageCleanParams * GEOSCoverageCleanParams_create()
GEOSGetGeometryN
const GEOSGeometry * GEOSGetGeometryN(const GEOSGeometry *g, int n)
GEOSMinimumClearance_r
int GEOSMinimumClearance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *distance)
GEOSHilbertCode
int GEOSHilbertCode(const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
GEOSConcaveHullByLength
GEOSGeometry * GEOSConcaveHullByLength(const GEOSGeometry *g, double length, unsigned int allowHoles)
GEOSContext_setInterruptCallback_r
GEOSContextInterruptCallback * GEOSContext_setInterruptCallback_r(GEOSContextHandle_t extHandle, GEOSContextInterruptCallback *cb, void *userData)
GEOSGeom_createCollection_r
GEOSGeometry * GEOSGeom_createCollection_r(GEOSContextHandle_t handle, int type, GEOSGeometry **geoms, unsigned int ngeoms)
GEOSMaximumInscribedCircle
GEOSGeometry * GEOSMaximumInscribedCircle(const GEOSGeometry *g, double tolerance)
GEOSGeoJSONReader_create_r
GEOSGeoJSONReader * GEOSGeoJSONReader_create_r(GEOSContextHandle_t handle)
GEOSGeom_createPoint
GEOSGeometry * GEOSGeom_createPoint(GEOSCoordSequence *s)
GEOS_getWKBByteOrder_r
int GEOS_getWKBByteOrder_r(GEOSContextHandle_t handle)
GEOSPreparedTouches
char GEOSPreparedTouches(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSWKBWriter_getIncludeSRID
char GEOSWKBWriter_getIncludeSRID(const GEOSWKBWriter *writer)
GEOSCoverageClean
GEOSGeometry * GEOSCoverageClean(const GEOSGeometry *input)
GEOSSnap
GEOSGeometry * GEOSSnap(const GEOSGeometry *input, const GEOSGeometry *snap_target, double tolerance)
GEOSWKBWriter_create
GEOSWKBWriter * GEOSWKBWriter_create(void)
GEOSSTRtree
struct GEOSSTRtree_t GEOSSTRtree
Definition geos_c.h:162
GEOSCoordSeq_create_r
GEOSCoordSequence * GEOSCoordSeq_create_r(GEOSContextHandle_t handle, unsigned int size, unsigned int dims)
GEOSNearestPoints
GEOSCoordSequence * GEOSNearestPoints(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSSymDifferencePrec
GEOSGeometry * GEOSSymDifferencePrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
GEOSGeom_getXMax
int GEOSGeom_getXMax(const GEOSGeometry *g, double *value)
GEOSRemoveRepeatedPoints_r
GEOSGeometry * GEOSRemoveRepeatedPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSGeom_extractUniquePoints_r
GEOSGeometry * GEOSGeom_extractUniquePoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSFree
void GEOSFree(void *buffer)
GEOSBufferParams_create_r
GEOSBufferParams * GEOSBufferParams_create_r(GEOSContextHandle_t handle)
GEOSCoordSeq_getX
int GEOSCoordSeq_getX(const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSPreparedRelate
char * GEOSPreparedRelate(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSDifferencePrec_r
GEOSGeometry * GEOSDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeomToWKT
char * GEOSGeomToWKT(const GEOSGeometry *g)
GEOSSharedPaths
GEOSGeometry * GEOSSharedPaths(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSArea
int GEOSArea(const GEOSGeometry *g, double *area)
GEOSGeomGetLength_r
int GEOSGeomGetLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
GEOSPreparedCrosses_r
char GEOSPreparedCrosses_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeom_createCompoundCurve
GEOSGeometry * GEOSGeom_createCompoundCurve(GEOSGeometry **curves, unsigned int ncurves)
GEOSGeomGetY_r
int GEOSGeomGetY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *y)
GEOSCoordSeq_isCCW_r
int GEOSCoordSeq_isCCW_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, char *is_ccw)
GEOSisValid_r
char GEOSisValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSSTRtree_insert_r
void GEOSSTRtree_insert_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSCoordSeq_copyFromArrays_r
GEOSCoordSequence * GEOSCoordSeq_copyFromArrays_r(GEOSContextHandle_t handle, const double *x, const double *y, const double *z, const double *m, unsigned int size)
GEOSCoordSeq_setX_r
int GEOSCoordSeq_setX_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSLineMerge_r
GEOSGeometry * GEOSLineMerge_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSisValidDetail
char GEOSisValidDetail(const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSPolygonize_r
GEOSGeometry * GEOSPolygonize_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSLineMerge
GEOSGeometry * GEOSLineMerge(const GEOSGeometry *g)
GEOSGeom_createEmptyCurvePolygon_r
GEOSGeometry * GEOSGeom_createEmptyCurvePolygon_r(GEOSContextHandle_t handle)
GEOSClusterInfo_getClusterSize_r
size_t GEOSClusterInfo_getClusterSize_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters, size_t i)
GEOSGeom_createLinearRing
GEOSGeometry * GEOSGeom_createLinearRing(GEOSCoordSequence *s)
GEOSCoverageCleanParams
struct GEOSCoverageCleanParams_t GEOSCoverageCleanParams
Definition geos_c.h:176
GEOSClusterInfo_destroy
void GEOSClusterInfo_destroy(GEOSClusterInfo *clusters)
GEOSClusterInfo_destroy.
GEOSWKTWriter_setRoundingPrecision_r
void GEOSWKTWriter_setRoundingPrecision_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int precision)
GEOSSTRtree_nearest_generic
const void * GEOSSTRtree_nearest_generic(GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
GEOSGeom_getYMax
int GEOSGeom_getYMax(const GEOSGeometry *g, double *value)
GEOSHausdorffDistanceDensify_r
int GEOSHausdorffDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSProject
double GEOSProject(const GEOSGeometry *line, const GEOSGeometry *point)
GEOSTransformXYZCallback
int(* GEOSTransformXYZCallback)(double *x, double *y, double *z, void *userdata)
Definition geos_c.h:343
GEOSWKTWriter_write_r
char * GEOSWKTWriter_write_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, const GEOSGeometry *g)
GEOSCoordSeq_clone_r
GEOSCoordSequence * GEOSCoordSeq_clone_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s)
GEOSDifferencePrec
GEOSGeometry * GEOSDifferencePrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
GEOSUnaryUnion
GEOSGeometry * GEOSUnaryUnion(const GEOSGeometry *g)
GEOSPreparedGeometry
struct GEOSPrepGeom_t GEOSPreparedGeometry
Definition geos_c.h:147