32 #ifndef GEOS_C_H_INCLUDED
33 #define GEOS_C_H_INCLUDED
58 #include <geos/version.h>
59 #define GEOS_CAPI_VERSION_MAJOR 1
60 #define GEOS_CAPI_VERSION_MINOR 8
61 #define GEOS_CAPI_VERSION_PATCH 2
62 #define GEOS_CAPI_VERSION "3.4.2-CAPI-1.8.2"
64 #ifndef GEOS_VERSION_MAJOR
65 #define GEOS_VERSION_MAJOR 3
67 #ifndef GEOS_VERSION_MINOR
68 #define GEOS_VERSION_MINOR 4
70 #ifndef GEOS_VERSION_PATCH
71 #define GEOS_VERSION_PATCH 2
74 #define GEOS_VERSION "3.4.2"
77 #define GEOS_JTS_PORT "1.12.0"
80 #define GEOS_CAPI_VERSION_MAJOR 1
81 #define GEOS_CAPI_VERSION_MINOR 8
82 #define GEOS_CAPI_VERSION_PATCH 2
83 #define GEOS_CAPI_VERSION "3.4.2-CAPI-1.8.2"
86 #define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
87 #define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
95 typedef void (*GEOSMessageHandler)(
const char *fmt, ...);
104 typedef struct GEOSGeom_t GEOSGeometry;
105 typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
106 typedef struct GEOSCoordSeq_t GEOSCoordSequence;
107 typedef struct GEOSSTRtree_t GEOSSTRtree;
108 typedef struct GEOSBufParams_t GEOSBufferParams;
114 typedef GEOSGeometry* GEOSGeom;
115 typedef GEOSCoordSequence* GEOSCoordSeq;
134 enum GEOSByteOrders {
139 typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
141 typedef void (*GEOSQueryCallback)(
void *item,
void *userdata);
149 #include <geos/export.h>
151 extern void GEOS_DLL initGEOS(GEOSMessageHandler notice_function,
152 GEOSMessageHandler error_function);
153 extern void GEOS_DLL finishGEOS(
void);
161 typedef void (GEOSInterruptCallback)();
162 extern GEOSInterruptCallback GEOS_DLL *GEOS_interruptRegisterCallback(GEOSInterruptCallback* cb);
164 extern void GEOS_DLL GEOS_interruptRequest();
166 extern void GEOS_DLL GEOS_interruptCancel();
169 extern GEOSContextHandle_t GEOS_DLL initGEOS_r(
170 GEOSMessageHandler notice_function,
171 GEOSMessageHandler error_function);
172 extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
174 extern GEOSMessageHandler GEOS_DLL GEOSContext_setNoticeHandler_r(GEOSContextHandle_t extHandle,
175 GEOSMessageHandler nf);
176 extern GEOSMessageHandler GEOS_DLL GEOSContext_setErrorHandler_r(GEOSContextHandle_t extHandle,
177 GEOSMessageHandler ef);
179 extern const char GEOS_DLL *GEOSversion();
189 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(
const char *wkt);
190 extern char GEOS_DLL *GEOSGeomToWKT(
const GEOSGeometry* g);
192 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT_r(GEOSContextHandle_t handle,
194 extern char GEOS_DLL *GEOSGeomToWKT_r(GEOSContextHandle_t handle,
195 const GEOSGeometry* g);
201 extern int GEOS_DLL GEOS_getWKBOutputDims();
202 extern int GEOS_DLL GEOS_setWKBOutputDims(
int newDims);
204 extern int GEOS_DLL GEOS_getWKBOutputDims_r(GEOSContextHandle_t handle);
205 extern int GEOS_DLL GEOS_setWKBOutputDims_r(GEOSContextHandle_t handle,
212 extern int GEOS_DLL GEOS_getWKBByteOrder();
213 extern int GEOS_DLL GEOS_setWKBByteOrder(
int byteOrder);
215 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(
const unsigned char *wkb,
size_t size);
216 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(
const GEOSGeometry* g,
size_t *size);
218 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(
const unsigned char *hex,
size_t size);
219 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(
const GEOSGeometry* g,
size_t *size);
221 extern int GEOS_DLL GEOS_getWKBByteOrder_r(GEOSContextHandle_t handle);
222 extern int GEOS_DLL GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle,
225 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf_r(GEOSContextHandle_t handle,
226 const unsigned char *wkb,
228 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(GEOSContextHandle_t handle,
229 const GEOSGeometry* g,
232 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf_r(GEOSContextHandle_t handle,
233 const unsigned char *hex,
235 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(GEOSContextHandle_t handle,
236 const GEOSGeometry* g,
250 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(
unsigned int size,
unsigned int dims);
252 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create_r(
253 GEOSContextHandle_t handle,
261 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone(
const GEOSCoordSequence* s);
263 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone_r(
264 GEOSContextHandle_t handle,
265 const GEOSCoordSequence* s);
270 extern void GEOS_DLL GEOSCoordSeq_destroy(GEOSCoordSequence* s);
272 extern void GEOS_DLL GEOSCoordSeq_destroy_r(GEOSContextHandle_t handle,
273 GEOSCoordSequence* s);
279 extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
280 unsigned int idx,
double val);
281 extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
282 unsigned int idx,
double val);
283 extern int GEOS_DLL GEOSCoordSeq_setZ(GEOSCoordSequence* s,
284 unsigned int idx,
double val);
285 extern int GEOS_DLL GEOSCoordSeq_setOrdinate(GEOSCoordSequence* s,
286 unsigned int idx,
unsigned int dim,
double val);
288 extern int GEOS_DLL GEOSCoordSeq_setX_r(GEOSContextHandle_t handle,
289 GEOSCoordSequence* s,
unsigned int idx,
291 extern int GEOS_DLL GEOSCoordSeq_setY_r(GEOSContextHandle_t handle,
292 GEOSCoordSequence* s,
unsigned int idx,
294 extern int GEOS_DLL GEOSCoordSeq_setZ_r(GEOSContextHandle_t handle,
295 GEOSCoordSequence* s,
unsigned int idx,
297 extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(GEOSContextHandle_t handle,
298 GEOSCoordSequence* s,
300 unsigned int dim,
double val);
306 extern int GEOS_DLL GEOSCoordSeq_getX(
const GEOSCoordSequence* s,
307 unsigned int idx,
double *val);
308 extern int GEOS_DLL GEOSCoordSeq_getY(
const GEOSCoordSequence* s,
309 unsigned int idx,
double *val);
310 extern int GEOS_DLL GEOSCoordSeq_getZ(
const GEOSCoordSequence* s,
311 unsigned int idx,
double *val);
312 extern int GEOS_DLL GEOSCoordSeq_getOrdinate(
const GEOSCoordSequence* s,
313 unsigned int idx,
unsigned int dim,
double *val);
315 extern int GEOS_DLL GEOSCoordSeq_getX_r(GEOSContextHandle_t handle,
316 const GEOSCoordSequence* s,
317 unsigned int idx,
double *val);
318 extern int GEOS_DLL GEOSCoordSeq_getY_r(GEOSContextHandle_t handle,
319 const GEOSCoordSequence* s,
320 unsigned int idx,
double *val);
321 extern int GEOS_DLL GEOSCoordSeq_getZ_r(GEOSContextHandle_t handle,
322 const GEOSCoordSequence* s,
323 unsigned int idx,
double *val);
324 extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(GEOSContextHandle_t handle,
325 const GEOSCoordSequence* s,
327 unsigned int dim,
double *val);
332 extern int GEOS_DLL GEOSCoordSeq_getSize(
const GEOSCoordSequence* s,
334 extern int GEOS_DLL GEOSCoordSeq_getDimensions(
const GEOSCoordSequence* s,
337 extern int GEOS_DLL GEOSCoordSeq_getSize_r(GEOSContextHandle_t handle,
338 const GEOSCoordSequence* s,
340 extern int GEOS_DLL GEOSCoordSeq_getDimensions_r(GEOSContextHandle_t handle,
341 const GEOSCoordSequence* s,
358 extern double GEOS_DLL GEOSProject(
const GEOSGeometry *g,
359 const GEOSGeometry* p);
360 extern double GEOS_DLL GEOSProject_r(GEOSContextHandle_t handle,
361 const GEOSGeometry *g,
362 const GEOSGeometry *p);
366 extern GEOSGeometry GEOS_DLL *GEOSInterpolate(
const GEOSGeometry *g,
368 extern GEOSGeometry GEOS_DLL *GEOSInterpolate_r(GEOSContextHandle_t handle,
369 const GEOSGeometry *g,
372 extern double GEOS_DLL GEOSProjectNormalized(
const GEOSGeometry *g,
373 const GEOSGeometry* p);
374 extern double GEOS_DLL GEOSProjectNormalized_r(GEOSContextHandle_t handle,
375 const GEOSGeometry *g,
376 const GEOSGeometry *p);
378 extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized(
const GEOSGeometry *g,
380 extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized_r(
381 GEOSContextHandle_t handle,
382 const GEOSGeometry *g,
393 extern GEOSGeometry GEOS_DLL *GEOSBuffer(
const GEOSGeometry* g,
394 double width,
int quadsegs);
395 extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(GEOSContextHandle_t handle,
396 const GEOSGeometry* g,
397 double width,
int quadsegs);
399 enum GEOSBufCapStyles {
405 enum GEOSBufJoinStyles {
406 GEOSBUF_JOIN_ROUND=1,
407 GEOSBUF_JOIN_MITRE=2,
412 extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create();
413 extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create_r(
414 GEOSContextHandle_t handle);
415 extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
416 extern void GEOS_DLL GEOSBufferParams_destroy_r(
417 GEOSContextHandle_t handle,
418 GEOSBufferParams* parms);
421 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle(
424 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle_r(
425 GEOSContextHandle_t handle,
430 extern int GEOS_DLL GEOSBufferParams_setJoinStyle(
433 extern int GEOS_DLL GEOSBufferParams_setJoinStyle_r(
434 GEOSContextHandle_t handle,
439 extern int GEOS_DLL GEOSBufferParams_setMitreLimit(
442 extern int GEOS_DLL GEOSBufferParams_setMitreLimit_r(
443 GEOSContextHandle_t handle,
448 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments(
451 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments_r(
452 GEOSContextHandle_t handle,
458 extern int GEOS_DLL GEOSBufferParams_setSingleSided(
461 extern int GEOS_DLL GEOSBufferParams_setSingleSided_r(
462 GEOSContextHandle_t handle,
467 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams(
468 const GEOSGeometry* g,
469 const GEOSBufferParams* p,
471 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams_r(
472 GEOSContextHandle_t handle,
473 const GEOSGeometry* g,
474 const GEOSBufferParams* p,
478 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle(
const GEOSGeometry* g,
479 double width,
int quadsegs,
int endCapStyle,
int joinStyle,
481 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle_r(GEOSContextHandle_t handle,
482 const GEOSGeometry* g,
double width,
int quadsegs,
int endCapStyle,
483 int joinStyle,
double mitreLimit);
487 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer(
const GEOSGeometry* g,
488 double width,
int quadsegs,
int joinStyle,
double mitreLimit,
490 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer_r(
491 GEOSContextHandle_t handle,
492 const GEOSGeometry* g,
double width,
int quadsegs,
493 int joinStyle,
double mitreLimit,
int leftSide);
502 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve(
const GEOSGeometry* g,
503 double width,
int quadsegs,
int joinStyle,
double mitreLimit);
504 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve_r(GEOSContextHandle_t handle,
505 const GEOSGeometry* g,
double width,
int quadsegs,
506 int joinStyle,
double mitreLimit);
517 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint(GEOSCoordSequence* s);
518 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint();
519 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing(GEOSCoordSequence* s);
520 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString(GEOSCoordSequence* s);
521 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString();
523 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint_r(
524 GEOSContextHandle_t handle,
525 GEOSCoordSequence* s);
526 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint_r(
527 GEOSContextHandle_t handle);
528 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing_r(
529 GEOSContextHandle_t handle,
530 GEOSCoordSequence* s);
531 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString_r(
532 GEOSContextHandle_t handle,
533 GEOSCoordSequence* s);
534 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString_r(
535 GEOSContextHandle_t handle);
542 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon();
543 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon(GEOSGeometry* shell,
544 GEOSGeometry** holes,
unsigned int nholes);
545 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection(
int type,
546 GEOSGeometry* *geoms,
unsigned int ngeoms);
547 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection(
int type);
549 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon_r(
550 GEOSContextHandle_t handle);
551 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon_r(
552 GEOSContextHandle_t handle,
554 GEOSGeometry** holes,
555 unsigned int nholes);
556 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection_r(
557 GEOSContextHandle_t handle,
int type,
558 GEOSGeometry* *geoms,
559 unsigned int ngeoms);
560 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection_r(
561 GEOSContextHandle_t handle,
int type);
563 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(
const GEOSGeometry* g);
565 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone_r(GEOSContextHandle_t handle,
566 const GEOSGeometry* g);
574 extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
576 extern void GEOS_DLL GEOSGeom_destroy_r(GEOSContextHandle_t handle,
585 extern GEOSGeometry GEOS_DLL *GEOSEnvelope(
const GEOSGeometry* g);
586 extern GEOSGeometry GEOS_DLL *GEOSIntersection(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
587 extern GEOSGeometry GEOS_DLL *GEOSConvexHull(
const GEOSGeometry* g);
588 extern GEOSGeometry GEOS_DLL *GEOSDifference(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
589 extern GEOSGeometry GEOS_DLL *GEOSSymDifference(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
590 extern GEOSGeometry GEOS_DLL *GEOSBoundary(
const GEOSGeometry* g);
591 extern GEOSGeometry GEOS_DLL *GEOSUnion(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
592 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(
const GEOSGeometry* g);
595 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded(
const GEOSGeometry* g);
596 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(
const GEOSGeometry* g);
597 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(
const GEOSGeometry* g);
598 extern GEOSGeometry GEOS_DLL *GEOSNode(
const GEOSGeometry* g);
600 extern GEOSGeometry GEOS_DLL *GEOSEnvelope_r(GEOSContextHandle_t handle,
601 const GEOSGeometry* g);
602 extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(GEOSContextHandle_t handle,
603 const GEOSGeometry* g1,
604 const GEOSGeometry* g2);
605 extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(GEOSContextHandle_t handle,
606 const GEOSGeometry* g);
607 extern GEOSGeometry GEOS_DLL *GEOSDifference_r(GEOSContextHandle_t handle,
608 const GEOSGeometry* g1,
609 const GEOSGeometry* g2);
610 extern GEOSGeometry GEOS_DLL *GEOSSymDifference_r(GEOSContextHandle_t handle,
611 const GEOSGeometry* g1,
612 const GEOSGeometry* g2);
613 extern GEOSGeometry GEOS_DLL *GEOSBoundary_r(GEOSContextHandle_t handle,
614 const GEOSGeometry* g);
615 extern GEOSGeometry GEOS_DLL *GEOSUnion_r(GEOSContextHandle_t handle,
616 const GEOSGeometry* g1,
617 const GEOSGeometry* g2);
618 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion_r(GEOSContextHandle_t handle,
619 const GEOSGeometry* g);
620 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded_r(GEOSContextHandle_t handle,
621 const GEOSGeometry* g);
622 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface_r(GEOSContextHandle_t handle,
623 const GEOSGeometry* g);
624 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid_r(GEOSContextHandle_t handle,
625 const GEOSGeometry* g);
626 extern GEOSGeometry GEOS_DLL *GEOSNode_r(GEOSContextHandle_t handle,
627 const GEOSGeometry* g);
633 extern GEOSGeometry GEOS_DLL *GEOSPolygonize(
const GEOSGeometry *
const geoms[],
unsigned int ngeoms);
634 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges(
const GEOSGeometry *
const geoms[],
unsigned int ngeoms);
662 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full(
const GEOSGeometry* input,
663 GEOSGeometry** cuts, GEOSGeometry** dangles, GEOSGeometry** invalid);
665 extern GEOSGeometry GEOS_DLL *GEOSLineMerge(
const GEOSGeometry* g);
666 extern GEOSGeometry GEOS_DLL *GEOSSimplify(
const GEOSGeometry* g,
double tolerance);
667 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify(
const GEOSGeometry* g,
670 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_r(GEOSContextHandle_t handle,
671 const GEOSGeometry *
const geoms[],
672 unsigned int ngeoms);
673 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges_r(
674 GEOSContextHandle_t handle,
675 const GEOSGeometry *
const geoms[],
676 unsigned int ngeoms);
677 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full_r(GEOSContextHandle_t handle,
678 const GEOSGeometry* input, GEOSGeometry** cuts,
679 GEOSGeometry** dangles, GEOSGeometry** invalidRings);
681 extern GEOSGeometry GEOS_DLL *GEOSLineMerge_r(GEOSContextHandle_t handle,
682 const GEOSGeometry* g);
683 extern GEOSGeometry GEOS_DLL *GEOSSimplify_r(GEOSContextHandle_t handle,
684 const GEOSGeometry* g,
686 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify_r(
687 GEOSContextHandle_t handle,
688 const GEOSGeometry* g,
double tolerance);
695 extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints(
696 const GEOSGeometry* g);
697 extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints_r(
698 GEOSContextHandle_t handle,
699 const GEOSGeometry* g);
712 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths(
const GEOSGeometry* g1,
713 const GEOSGeometry* g2);
714 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths_r(GEOSContextHandle_t handle,
715 const GEOSGeometry* g1,
const GEOSGeometry* g2);
721 extern GEOSGeometry GEOS_DLL *GEOSSnap(
const GEOSGeometry* g1,
722 const GEOSGeometry* g2,
double tolerance);
723 extern GEOSGeometry GEOS_DLL *GEOSSnap_r(GEOSContextHandle_t handle,
724 const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
736 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
737 const GEOSGeometry *g,
741 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
742 GEOSContextHandle_t handle,
743 const GEOSGeometry *g,
753 extern char GEOS_DLL GEOSDisjoint(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
754 extern char GEOS_DLL GEOSTouches(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
755 extern char GEOS_DLL GEOSIntersects(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
756 extern char GEOS_DLL GEOSCrosses(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
757 extern char GEOS_DLL GEOSWithin(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
758 extern char GEOS_DLL GEOSContains(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
759 extern char GEOS_DLL GEOSOverlaps(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
760 extern char GEOS_DLL GEOSEquals(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
761 extern char GEOS_DLL GEOSEqualsExact(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
762 extern char GEOS_DLL GEOSCovers(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
763 extern char GEOS_DLL GEOSCoveredBy(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
765 extern char GEOS_DLL GEOSDisjoint_r(GEOSContextHandle_t handle,
766 const GEOSGeometry* g1,
767 const GEOSGeometry* g2);
768 extern char GEOS_DLL GEOSTouches_r(GEOSContextHandle_t handle,
769 const GEOSGeometry* g1,
770 const GEOSGeometry* g2);
771 extern char GEOS_DLL GEOSIntersects_r(GEOSContextHandle_t handle,
772 const GEOSGeometry* g1,
773 const GEOSGeometry* g2);
774 extern char GEOS_DLL GEOSCrosses_r(GEOSContextHandle_t handle,
775 const GEOSGeometry* g1,
776 const GEOSGeometry* g2);
777 extern char GEOS_DLL GEOSWithin_r(GEOSContextHandle_t handle,
778 const GEOSGeometry* g1,
779 const GEOSGeometry* g2);
780 extern char GEOS_DLL GEOSContains_r(GEOSContextHandle_t handle,
781 const GEOSGeometry* g1,
782 const GEOSGeometry* g2);
783 extern char GEOS_DLL GEOSOverlaps_r(GEOSContextHandle_t handle,
784 const GEOSGeometry* g1,
785 const GEOSGeometry* g2);
786 extern char GEOS_DLL GEOSEquals_r(GEOSContextHandle_t handle,
787 const GEOSGeometry* g1,
788 const GEOSGeometry* g2);
789 extern char GEOS_DLL GEOSEqualsExact_r(GEOSContextHandle_t handle,
790 const GEOSGeometry* g1,
791 const GEOSGeometry* g2,
793 extern char GEOS_DLL GEOSCovers_r(GEOSContextHandle_t handle,
794 const GEOSGeometry* g1,
795 const GEOSGeometry* g2);
796 extern char GEOS_DLL GEOSCoveredBy_r(GEOSContextHandle_t handle,
797 const GEOSGeometry* g1,
798 const GEOSGeometry* g2);
809 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(
const GEOSGeometry* g);
811 extern void GEOS_DLL GEOSPreparedGeom_destroy(
const GEOSPreparedGeometry* g);
813 extern char GEOS_DLL GEOSPreparedContains(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
814 extern char GEOS_DLL GEOSPreparedContainsProperly(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
815 extern char GEOS_DLL GEOSPreparedCoveredBy(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
816 extern char GEOS_DLL GEOSPreparedCovers(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
817 extern char GEOS_DLL GEOSPreparedCrosses(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
818 extern char GEOS_DLL GEOSPreparedDisjoint(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
819 extern char GEOS_DLL GEOSPreparedIntersects(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
820 extern char GEOS_DLL GEOSPreparedOverlaps(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
821 extern char GEOS_DLL GEOSPreparedTouches(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
822 extern char GEOS_DLL GEOSPreparedWithin(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
827 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare_r(
828 GEOSContextHandle_t handle,
829 const GEOSGeometry* g);
831 extern void GEOS_DLL GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle,
832 const GEOSPreparedGeometry* g);
834 extern char GEOS_DLL GEOSPreparedContains_r(GEOSContextHandle_t handle,
835 const GEOSPreparedGeometry* pg1,
836 const GEOSGeometry* g2);
837 extern char GEOS_DLL GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle,
838 const GEOSPreparedGeometry* pg1,
839 const GEOSGeometry* g2);
840 extern char GEOS_DLL GEOSPreparedCoveredBy_r(GEOSContextHandle_t handle,
841 const GEOSPreparedGeometry* pg1,
842 const GEOSGeometry* g2);
843 extern char GEOS_DLL GEOSPreparedCovers_r(GEOSContextHandle_t handle,
844 const GEOSPreparedGeometry* pg1,
845 const GEOSGeometry* g2);
846 extern char GEOS_DLL GEOSPreparedCrosses_r(GEOSContextHandle_t handle,
847 const GEOSPreparedGeometry* pg1,
848 const GEOSGeometry* g2);
849 extern char GEOS_DLL GEOSPreparedDisjoint_r(GEOSContextHandle_t handle,
850 const GEOSPreparedGeometry* pg1,
851 const GEOSGeometry* g2);
852 extern char GEOS_DLL GEOSPreparedIntersects_r(GEOSContextHandle_t handle,
853 const GEOSPreparedGeometry* pg1,
854 const GEOSGeometry* g2);
855 extern char GEOS_DLL GEOSPreparedOverlaps_r(GEOSContextHandle_t handle,
856 const GEOSPreparedGeometry* pg1,
857 const GEOSGeometry* g2);
858 extern char GEOS_DLL GEOSPreparedTouches_r(GEOSContextHandle_t handle,
859 const GEOSPreparedGeometry* pg1,
860 const GEOSGeometry* g2);
861 extern char GEOS_DLL GEOSPreparedWithin_r(GEOSContextHandle_t handle,
862 const GEOSPreparedGeometry* pg1,
863 const GEOSGeometry* g2);
875 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(
size_t nodeCapacity);
876 extern void GEOS_DLL GEOSSTRtree_insert(GEOSSTRtree *tree,
877 const GEOSGeometry *g,
879 extern void GEOS_DLL GEOSSTRtree_query(GEOSSTRtree *tree,
880 const GEOSGeometry *g,
881 GEOSQueryCallback callback,
883 extern void GEOS_DLL GEOSSTRtree_iterate(GEOSSTRtree *tree,
884 GEOSQueryCallback callback,
886 extern char GEOS_DLL GEOSSTRtree_remove(GEOSSTRtree *tree,
887 const GEOSGeometry *g,
889 extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
892 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create_r(
893 GEOSContextHandle_t handle,
894 size_t nodeCapacity);
895 extern void GEOS_DLL GEOSSTRtree_insert_r(GEOSContextHandle_t handle,
897 const GEOSGeometry *g,
899 extern void GEOS_DLL GEOSSTRtree_query_r(GEOSContextHandle_t handle,
901 const GEOSGeometry *g,
902 GEOSQueryCallback callback,
904 extern void GEOS_DLL GEOSSTRtree_iterate_r(GEOSContextHandle_t handle,
906 GEOSQueryCallback callback,
908 extern char GEOS_DLL GEOSSTRtree_remove_r(GEOSContextHandle_t handle,
910 const GEOSGeometry *g,
912 extern void GEOS_DLL GEOSSTRtree_destroy_r(GEOSContextHandle_t handle,
922 extern char GEOS_DLL GEOSisEmpty(
const GEOSGeometry* g);
923 extern char GEOS_DLL GEOSisSimple(
const GEOSGeometry* g);
924 extern char GEOS_DLL GEOSisRing(
const GEOSGeometry* g);
925 extern char GEOS_DLL GEOSHasZ(
const GEOSGeometry* g);
926 extern char GEOS_DLL GEOSisClosed(
const GEOSGeometry *g);
928 extern char GEOS_DLL GEOSisEmpty_r(GEOSContextHandle_t handle,
929 const GEOSGeometry* g);
930 extern char GEOS_DLL GEOSisSimple_r(GEOSContextHandle_t handle,
931 const GEOSGeometry* g);
932 extern char GEOS_DLL GEOSisRing_r(GEOSContextHandle_t handle,
933 const GEOSGeometry* g);
934 extern char GEOS_DLL GEOSHasZ_r(GEOSContextHandle_t handle,
935 const GEOSGeometry* g);
936 extern char GEOS_DLL GEOSisClosed_r(GEOSContextHandle_t handle,
937 const GEOSGeometry *g);
946 enum GEOSRelateBoundaryNodeRules {
950 GEOSRELATE_BNR_MOD2=1,
951 GEOSRELATE_BNR_OGC=1,
952 GEOSRELATE_BNR_ENDPOINT=2,
953 GEOSRELATE_BNR_MULTIVALENT_ENDPOINT=3,
954 GEOSRELATE_BNR_MONOVALENT_ENDPOINT=4
958 extern char GEOS_DLL GEOSRelatePattern(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
const char *pat);
959 extern char GEOS_DLL GEOSRelatePattern_r(GEOSContextHandle_t handle,
960 const GEOSGeometry* g1,
961 const GEOSGeometry* g2,
965 extern char GEOS_DLL *GEOSRelate(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
966 extern char GEOS_DLL *GEOSRelate_r(GEOSContextHandle_t handle,
967 const GEOSGeometry* g1,
968 const GEOSGeometry* g2);
971 extern char GEOS_DLL GEOSRelatePatternMatch(
const char *mat,
const char *pat);
972 extern char GEOS_DLL GEOSRelatePatternMatch_r(GEOSContextHandle_t handle,
977 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
const GEOSGeometry* g1,
978 const GEOSGeometry* g2,
980 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle,
981 const GEOSGeometry* g1,
982 const GEOSGeometry* g2,
992 enum GEOSValidFlags {
993 GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE=1
997 extern char GEOS_DLL GEOSisValid(
const GEOSGeometry* g);
998 extern char GEOS_DLL GEOSisValid_r(GEOSContextHandle_t handle,
999 const GEOSGeometry* g);
1002 extern char GEOS_DLL *GEOSisValidReason(
const GEOSGeometry *g);
1003 extern char GEOS_DLL *GEOSisValidReason_r(GEOSContextHandle_t handle,
1004 const GEOSGeometry* g);
1011 extern char GEOS_DLL GEOSisValidDetail(
const GEOSGeometry* g,
1013 char** reason, GEOSGeometry** location);
1014 extern char GEOS_DLL GEOSisValidDetail_r(GEOSContextHandle_t handle,
1015 const GEOSGeometry* g,
1018 GEOSGeometry** location);
1027 extern char GEOS_DLL *GEOSGeomType(
const GEOSGeometry* g);
1029 extern char GEOS_DLL *GEOSGeomType_r(GEOSContextHandle_t handle,
1030 const GEOSGeometry* g);
1033 extern int GEOS_DLL GEOSGeomTypeId(
const GEOSGeometry* g);
1035 extern int GEOS_DLL GEOSGeomTypeId_r(GEOSContextHandle_t handle,
1036 const GEOSGeometry* g);
1039 extern int GEOS_DLL GEOSGetSRID(
const GEOSGeometry* g);
1040 extern int GEOS_DLL GEOSGetSRID_r(GEOSContextHandle_t handle,
1041 const GEOSGeometry* g);
1043 extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g,
int SRID);
1044 extern void GEOS_DLL GEOSSetSRID_r(GEOSContextHandle_t handle,
1045 GEOSGeometry* g,
int SRID);
1053 extern int GEOS_DLL GEOSGetNumGeometries(
const GEOSGeometry* g);
1055 extern int GEOS_DLL GEOSGetNumGeometries_r(GEOSContextHandle_t handle,
1056 const GEOSGeometry* g);
1066 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
const GEOSGeometry* g,
int n);
1068 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1069 GEOSContextHandle_t handle,
1070 const GEOSGeometry* g,
int n);
1073 extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
1075 extern int GEOS_DLL GEOSNormalize_r(GEOSContextHandle_t handle,
1079 extern int GEOS_DLL GEOSGetNumInteriorRings(
const GEOSGeometry* g);
1081 extern int GEOS_DLL GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle,
1082 const GEOSGeometry* g);
1085 extern int GEOS_DLL GEOSGeomGetNumPoints(
const GEOSGeometry* g);
1087 extern int GEOS_DLL GEOSGeomGetNumPoints_r(GEOSContextHandle_t handle,
1088 const GEOSGeometry* g);
1091 extern int GEOS_DLL GEOSGeomGetX(
const GEOSGeometry *g,
double *x);
1092 extern int GEOS_DLL GEOSGeomGetY(
const GEOSGeometry *g,
double *y);
1094 extern int GEOS_DLL GEOSGeomGetX_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *x);
1095 extern int GEOS_DLL GEOSGeomGetY_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *y);
1102 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
const GEOSGeometry* g,
int n);
1104 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN_r(
1105 GEOSContextHandle_t handle,
1106 const GEOSGeometry* g,
int n);
1113 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
const GEOSGeometry* g);
1115 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing_r(
1116 GEOSContextHandle_t handle,
1117 const GEOSGeometry* g);
1120 extern int GEOS_DLL GEOSGetNumCoordinates(
const GEOSGeometry* g);
1122 extern int GEOS_DLL GEOSGetNumCoordinates_r(GEOSContextHandle_t handle,
1123 const GEOSGeometry* g);
1129 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq(
const GEOSGeometry* g);
1131 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq_r(
1132 GEOSContextHandle_t handle,
1133 const GEOSGeometry* g);
1138 extern int GEOS_DLL GEOSGeom_getDimensions(
const GEOSGeometry* g);
1140 extern int GEOS_DLL GEOSGeom_getDimensions_r(GEOSContextHandle_t handle,
1141 const GEOSGeometry* g);
1146 extern int GEOS_DLL GEOSGeom_getCoordinateDimension(
const GEOSGeometry* g);
1148 extern int GEOS_DLL GEOSGeom_getCoordinateDimension_r(GEOSContextHandle_t handle,
1149 const GEOSGeometry* g);
1155 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(
const GEOSGeometry *g,
int n);
1156 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint(
const GEOSGeometry *g);
1157 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint(
const GEOSGeometry *g);
1159 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
int n);
1160 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle,
const GEOSGeometry *g);
1161 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint_r(GEOSContextHandle_t handle,
const GEOSGeometry *g);
1170 extern int GEOS_DLL GEOSArea(
const GEOSGeometry* g,
double *area);
1171 extern int GEOS_DLL GEOSLength(
const GEOSGeometry* g,
double *length);
1172 extern int GEOS_DLL GEOSDistance(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
1174 extern int GEOS_DLL GEOSHausdorffDistance(
const GEOSGeometry *g1,
1175 const GEOSGeometry *g2,
double *dist);
1176 extern int GEOS_DLL GEOSHausdorffDistanceDensify(
const GEOSGeometry *g1,
1177 const GEOSGeometry *g2,
double densifyFrac,
double *dist);
1178 extern int GEOS_DLL GEOSGeomGetLength(
const GEOSGeometry *g,
double *length);
1180 extern int GEOS_DLL GEOSArea_r(GEOSContextHandle_t handle,
1181 const GEOSGeometry* g,
double *area);
1182 extern int GEOS_DLL GEOSLength_r(GEOSContextHandle_t handle,
1183 const GEOSGeometry* g,
double *length);
1184 extern int GEOS_DLL GEOSDistance_r(GEOSContextHandle_t handle,
1185 const GEOSGeometry* g1,
1186 const GEOSGeometry* g2,
double *dist);
1187 extern int GEOS_DLL GEOSHausdorffDistance_r(GEOSContextHandle_t handle,
1188 const GEOSGeometry *g1,
1189 const GEOSGeometry *g2,
1191 extern int GEOS_DLL GEOSHausdorffDistanceDensify_r(GEOSContextHandle_t handle,
1192 const GEOSGeometry *g1,
1193 const GEOSGeometry *g2,
1194 double densifyFrac,
double *dist);
1195 extern int GEOS_DLL GEOSGeomGetLength_r(GEOSContextHandle_t handle,
1196 const GEOSGeometry *g,
double *length);
1201 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints(
1202 const GEOSGeometry* g1,
const GEOSGeometry* g2);
1203 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints_r(
1204 GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1221 extern int GEOS_DLL GEOSOrientationIndex(
double Ax,
double Ay,
double Bx,
double By,
1222 double Px,
double Py);
1223 extern int GEOS_DLL GEOSOrientationIndex_r(GEOSContextHandle_t handle,
1224 double Ax,
double Ay,
double Bx,
double By,
double Px,
double Py);
1233 typedef struct GEOSWKTReader_t GEOSWKTReader;
1234 typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1235 typedef struct GEOSWKBReader_t GEOSWKBReader;
1236 typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1240 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create();
1241 extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
1242 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read(GEOSWKTReader* reader,
const char *wkt);
1244 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create_r(
1245 GEOSContextHandle_t handle);
1246 extern void GEOS_DLL GEOSWKTReader_destroy_r(GEOSContextHandle_t handle,
1247 GEOSWKTReader* reader);
1248 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read_r(GEOSContextHandle_t handle,
1249 GEOSWKTReader* reader,
1253 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create();
1254 extern void GEOS_DLL GEOSWKTWriter_destroy(GEOSWKTWriter* writer);
1255 extern char GEOS_DLL *GEOSWKTWriter_write(GEOSWKTWriter* writer,
const GEOSGeometry* g);
1256 extern void GEOS_DLL GEOSWKTWriter_setTrim(GEOSWKTWriter *writer,
char trim);
1257 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision(GEOSWKTWriter *writer,
int precision);
1258 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension(GEOSWKTWriter *writer,
int dim);
1259 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer);
1260 extern void GEOS_DLL GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer,
int useOld3D);
1262 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create_r(
1263 GEOSContextHandle_t handle);
1264 extern void GEOS_DLL GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle,
1265 GEOSWKTWriter* writer);
1266 extern char GEOS_DLL *GEOSWKTWriter_write_r(GEOSContextHandle_t handle,
1267 GEOSWKTWriter* writer,
1268 const GEOSGeometry* g);
1269 extern void GEOS_DLL GEOSWKTWriter_setTrim_r(GEOSContextHandle_t handle,
1270 GEOSWKTWriter *writer,
1272 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision_r(GEOSContextHandle_t handle,
1273 GEOSWKTWriter *writer,
1275 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension_r(GEOSContextHandle_t handle,
1276 GEOSWKTWriter *writer,
1278 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle,
1279 GEOSWKTWriter *writer);
1280 extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(GEOSContextHandle_t handle,
1281 GEOSWKTWriter *writer,
1285 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create();
1286 extern void GEOS_DLL GEOSWKBReader_destroy(GEOSWKBReader* reader);
1287 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read(GEOSWKBReader* reader,
const unsigned char *wkb,
size_t size);
1288 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX(GEOSWKBReader* reader,
const unsigned char *hex,
size_t size);
1290 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create_r(
1291 GEOSContextHandle_t handle);
1292 extern void GEOS_DLL GEOSWKBReader_destroy_r(GEOSContextHandle_t handle,
1293 GEOSWKBReader* reader);
1294 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read_r(GEOSContextHandle_t handle,
1295 GEOSWKBReader* reader,
1296 const unsigned char *wkb,
1298 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX_r(
1299 GEOSContextHandle_t handle,
1300 GEOSWKBReader* reader,
1301 const unsigned char *hex,
1305 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create();
1306 extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
1308 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create_r(
1309 GEOSContextHandle_t handle);
1310 extern void GEOS_DLL GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle,
1311 GEOSWKBWriter* writer);
1314 extern unsigned char GEOS_DLL *GEOSWKBWriter_write(GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
1315 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
1317 extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
1318 GEOSContextHandle_t handle,
1319 GEOSWKBWriter* writer,
1320 const GEOSGeometry* g,
1322 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
1323 GEOSContextHandle_t handle,
1324 GEOSWKBWriter* writer,
1325 const GEOSGeometry* g,
1332 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension(
const GEOSWKBWriter* writer);
1333 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension(GEOSWKBWriter* writer,
int newDimension);
1335 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension_r(
1336 GEOSContextHandle_t handle,
1337 const GEOSWKBWriter* writer);
1338 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension_r(
1339 GEOSContextHandle_t handle,
1340 GEOSWKBWriter* writer,
int newDimension);
1346 extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
const GEOSWKBWriter* writer);
1347 extern void GEOS_DLL GEOSWKBWriter_setByteOrder(GEOSWKBWriter* writer,
int byteOrder);
1349 extern int GEOS_DLL GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle,
1350 const GEOSWKBWriter* writer);
1351 extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle,
1352 GEOSWKBWriter* writer,
1358 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
const GEOSWKBWriter* writer);
1359 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter* writer,
const char writeSRID);
1361 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle,
1362 const GEOSWKBWriter* writer);
1363 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle,
1364 GEOSWKBWriter* writer,
const char writeSRID);
1371 extern void GEOS_DLL GEOSFree(
void *buffer);
1372 extern void GEOS_DLL GEOSFree_r(GEOSContextHandle_t handle,
void *buffer);
a linestring
Definition: Geometry.h:69
a collection of heterogeneus geometries
Definition: Geometry.h:81
a collection of linestrings
Definition: Geometry.h:77
a collection of points
Definition: Geometry.h:75
a polygon
Definition: Geometry.h:73
a linear ring (linestring with 1st point == last point)
Definition: Geometry.h:71
a point
Definition: Geometry.h:67
a collection of polygons
Definition: Geometry.h:79