34 #ifndef GEOS_C_H_INCLUDED 35 #define GEOS_C_H_INCLUDED 60 #include <geos/version.h> 61 #define GEOS_CAPI_VERSION_MAJOR 1 62 #define GEOS_CAPI_VERSION_MINOR 10 63 #define GEOS_CAPI_VERSION_PATCH 1 64 #define GEOS_CAPI_VERSION "3.6.1-CAPI-1.10.1" 66 #ifndef GEOS_VERSION_MAJOR 67 #define GEOS_VERSION_MAJOR 3 69 #ifndef GEOS_VERSION_MINOR 70 #define GEOS_VERSION_MINOR 6 72 #ifndef GEOS_VERSION_PATCH 73 #define GEOS_VERSION_PATCH 1 76 #define GEOS_VERSION "3.6.1" 79 #define GEOS_JTS_PORT "1.13.0" 82 #define GEOS_CAPI_VERSION_MAJOR 1 83 #define GEOS_CAPI_VERSION_MINOR 10 84 #define GEOS_CAPI_VERSION_PATCH 1 85 #define GEOS_CAPI_VERSION "3.6.1-CAPI-1.10.1" 88 #define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR 89 #define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR) 97 typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
99 typedef void (*GEOSMessageHandler)(
const char *fmt, ...);
111 typedef void (*GEOSMessageHandler_r)(
const char *message,
void *userdata);
120 typedef struct GEOSGeom_t GEOSGeometry;
121 typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
122 typedef struct GEOSCoordSeq_t GEOSCoordSequence;
123 typedef struct GEOSSTRtree_t GEOSSTRtree;
124 typedef struct GEOSBufParams_t GEOSBufferParams;
130 typedef GEOSGeometry* GEOSGeom;
131 typedef GEOSCoordSequence* GEOSCoordSeq;
150 enum GEOSByteOrders {
155 typedef void (*GEOSQueryCallback)(
void *item,
void *userdata);
156 typedef int (*GEOSDistanceCallback)(
const void *item1,
const void* item2,
double* distance,
void* userdata);
164 #include <geos/export.h> 172 typedef void (GEOSInterruptCallback)();
173 extern GEOSInterruptCallback GEOS_DLL *GEOS_interruptRegisterCallback(GEOSInterruptCallback* cb);
175 extern void GEOS_DLL GEOS_interruptRequest();
177 extern void GEOS_DLL GEOS_interruptCancel();
184 extern GEOSContextHandle_t GEOS_DLL initGEOS_r(
185 GEOSMessageHandler notice_function,
186 GEOSMessageHandler error_function);
190 extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
192 extern GEOSContextHandle_t GEOS_DLL GEOS_init_r();
193 extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
196 extern GEOSMessageHandler GEOS_DLL GEOSContext_setNoticeHandler_r(GEOSContextHandle_t extHandle,
197 GEOSMessageHandler nf);
198 extern GEOSMessageHandler GEOS_DLL GEOSContext_setErrorHandler_r(GEOSContextHandle_t extHandle,
199 GEOSMessageHandler ef);
210 extern GEOSMessageHandler_r GEOS_DLL GEOSContext_setNoticeMessageHandler_r(GEOSContextHandle_t extHandle,
211 GEOSMessageHandler_r nf,
223 extern GEOSMessageHandler_r GEOS_DLL GEOSContext_setErrorMessageHandler_r(GEOSContextHandle_t extHandle,
224 GEOSMessageHandler_r ef,
227 extern const char GEOS_DLL *GEOSversion();
237 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT_r(GEOSContextHandle_t handle,
239 extern char GEOS_DLL *GEOSGeomToWKT_r(GEOSContextHandle_t handle,
240 const GEOSGeometry* g);
247 extern int GEOS_DLL GEOS_getWKBOutputDims_r(GEOSContextHandle_t handle);
248 extern int GEOS_DLL GEOS_setWKBOutputDims_r(GEOSContextHandle_t handle,
256 extern int GEOS_DLL GEOS_getWKBByteOrder_r(GEOSContextHandle_t handle);
257 extern int GEOS_DLL GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle,
260 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf_r(GEOSContextHandle_t handle,
261 const unsigned char *wkb,
263 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(GEOSContextHandle_t handle,
264 const GEOSGeometry* g,
267 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf_r(GEOSContextHandle_t handle,
268 const unsigned char *hex,
270 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(GEOSContextHandle_t handle,
271 const GEOSGeometry* g,
285 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create_r(
286 GEOSContextHandle_t handle,
294 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone_r(
295 GEOSContextHandle_t handle,
296 const GEOSCoordSequence* s);
301 extern void GEOS_DLL GEOSCoordSeq_destroy_r(GEOSContextHandle_t handle,
302 GEOSCoordSequence* s);
308 extern int GEOS_DLL GEOSCoordSeq_setX_r(GEOSContextHandle_t handle,
309 GEOSCoordSequence* s,
unsigned int idx,
311 extern int GEOS_DLL GEOSCoordSeq_setY_r(GEOSContextHandle_t handle,
312 GEOSCoordSequence* s,
unsigned int idx,
314 extern int GEOS_DLL GEOSCoordSeq_setZ_r(GEOSContextHandle_t handle,
315 GEOSCoordSequence* s,
unsigned int idx,
317 extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(GEOSContextHandle_t handle,
318 GEOSCoordSequence* s,
320 unsigned int dim,
double val);
326 extern int GEOS_DLL GEOSCoordSeq_getX_r(GEOSContextHandle_t handle,
327 const GEOSCoordSequence* s,
328 unsigned int idx,
double *val);
329 extern int GEOS_DLL GEOSCoordSeq_getY_r(GEOSContextHandle_t handle,
330 const GEOSCoordSequence* s,
331 unsigned int idx,
double *val);
332 extern int GEOS_DLL GEOSCoordSeq_getZ_r(GEOSContextHandle_t handle,
333 const GEOSCoordSequence* s,
334 unsigned int idx,
double *val);
335 extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(GEOSContextHandle_t handle,
336 const GEOSCoordSequence* s,
338 unsigned int dim,
double *val);
343 extern int GEOS_DLL GEOSCoordSeq_getSize_r(GEOSContextHandle_t handle,
344 const GEOSCoordSequence* s,
346 extern int GEOS_DLL GEOSCoordSeq_getDimensions_r(GEOSContextHandle_t handle,
347 const GEOSCoordSequence* s,
364 extern double GEOS_DLL GEOSProject_r(GEOSContextHandle_t handle,
365 const GEOSGeometry *g,
366 const GEOSGeometry *p);
370 extern GEOSGeometry GEOS_DLL *GEOSInterpolate_r(GEOSContextHandle_t handle,
371 const GEOSGeometry *g,
374 extern double GEOS_DLL GEOSProjectNormalized_r(GEOSContextHandle_t handle,
375 const GEOSGeometry *g,
376 const GEOSGeometry *p);
378 extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized_r(
379 GEOSContextHandle_t handle,
380 const GEOSGeometry *g,
391 extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(GEOSContextHandle_t handle,
392 const GEOSGeometry* g,
393 double width,
int quadsegs);
395 enum GEOSBufCapStyles {
401 enum GEOSBufJoinStyles {
402 GEOSBUF_JOIN_ROUND=1,
403 GEOSBUF_JOIN_MITRE=2,
408 extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create_r(
409 GEOSContextHandle_t handle);
410 extern void GEOS_DLL GEOSBufferParams_destroy_r(
411 GEOSContextHandle_t handle,
412 GEOSBufferParams* parms);
415 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle_r(
416 GEOSContextHandle_t handle,
421 extern int GEOS_DLL GEOSBufferParams_setJoinStyle_r(
422 GEOSContextHandle_t handle,
427 extern int GEOS_DLL GEOSBufferParams_setMitreLimit_r(
428 GEOSContextHandle_t handle,
433 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments_r(
434 GEOSContextHandle_t handle,
440 extern int GEOS_DLL GEOSBufferParams_setSingleSided_r(
441 GEOSContextHandle_t handle,
446 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams_r(
447 GEOSContextHandle_t handle,
448 const GEOSGeometry* g,
449 const GEOSBufferParams* p,
453 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle_r(GEOSContextHandle_t handle,
454 const GEOSGeometry* g,
double width,
int quadsegs,
int endCapStyle,
455 int joinStyle,
double mitreLimit);
459 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer_r(
460 GEOSContextHandle_t handle,
461 const GEOSGeometry* g,
double width,
int quadsegs,
462 int joinStyle,
double mitreLimit,
int leftSide);
471 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve_r(GEOSContextHandle_t handle,
472 const GEOSGeometry* g,
double width,
int quadsegs,
473 int joinStyle,
double mitreLimit);
484 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint_r(
485 GEOSContextHandle_t handle,
486 GEOSCoordSequence* s);
487 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint_r(
488 GEOSContextHandle_t handle);
489 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing_r(
490 GEOSContextHandle_t handle,
491 GEOSCoordSequence* s);
492 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString_r(
493 GEOSContextHandle_t handle,
494 GEOSCoordSequence* s);
495 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString_r(
496 GEOSContextHandle_t handle);
503 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon_r(
504 GEOSContextHandle_t handle);
505 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon_r(
506 GEOSContextHandle_t handle,
508 GEOSGeometry** holes,
509 unsigned int nholes);
510 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection_r(
511 GEOSContextHandle_t handle,
int type,
512 GEOSGeometry* *geoms,
513 unsigned int ngeoms);
514 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection_r(
515 GEOSContextHandle_t handle,
int type);
517 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone_r(GEOSContextHandle_t handle,
518 const GEOSGeometry* g);
526 extern void GEOS_DLL GEOSGeom_destroy_r(GEOSContextHandle_t handle,
535 extern GEOSGeometry GEOS_DLL *GEOSEnvelope_r(GEOSContextHandle_t handle,
536 const GEOSGeometry* g);
537 extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(GEOSContextHandle_t handle,
538 const GEOSGeometry* g1,
539 const GEOSGeometry* g2);
540 extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(GEOSContextHandle_t handle,
541 const GEOSGeometry* g);
548 extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle,
549 const GEOSGeometry* g);
557 extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth_r(GEOSContextHandle_t handle,
558 const GEOSGeometry* g);
560 extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle,
561 const GEOSGeometry* g);
563 extern int GEOS_DLL GEOSMinimumClearance_r(GEOSContextHandle_t handle,
564 const GEOSGeometry* g,
567 extern GEOSGeometry GEOS_DLL *GEOSDifference_r(GEOSContextHandle_t handle,
568 const GEOSGeometry* g1,
569 const GEOSGeometry* g2);
570 extern GEOSGeometry GEOS_DLL *GEOSSymDifference_r(GEOSContextHandle_t handle,
571 const GEOSGeometry* g1,
572 const GEOSGeometry* g2);
573 extern GEOSGeometry GEOS_DLL *GEOSBoundary_r(GEOSContextHandle_t handle,
574 const GEOSGeometry* g);
575 extern GEOSGeometry GEOS_DLL *GEOSUnion_r(GEOSContextHandle_t handle,
576 const GEOSGeometry* g1,
577 const GEOSGeometry* g2);
578 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion_r(GEOSContextHandle_t handle,
579 const GEOSGeometry* g);
581 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded_r(GEOSContextHandle_t handle,
582 const GEOSGeometry* g);
583 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface_r(GEOSContextHandle_t handle,
584 const GEOSGeometry* g);
585 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid_r(GEOSContextHandle_t handle,
586 const GEOSGeometry* g);
587 extern GEOSGeometry GEOS_DLL *GEOSNode_r(GEOSContextHandle_t handle,
588 const GEOSGeometry* g);
591 extern GEOSGeometry GEOS_DLL *GEOSClipByRect_r(GEOSContextHandle_t handle,
592 const GEOSGeometry* g,
593 double xmin,
double ymin,
594 double xmax,
double ymax);
628 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_r(GEOSContextHandle_t handle,
629 const GEOSGeometry *
const geoms[],
630 unsigned int ngeoms);
631 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges_r(
632 GEOSContextHandle_t handle,
633 const GEOSGeometry *
const geoms[],
634 unsigned int ngeoms);
635 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full_r(GEOSContextHandle_t handle,
636 const GEOSGeometry* input, GEOSGeometry** cuts,
637 GEOSGeometry** dangles, GEOSGeometry** invalidRings);
639 extern GEOSGeometry GEOS_DLL *GEOSLineMerge_r(GEOSContextHandle_t handle,
640 const GEOSGeometry* g);
641 extern GEOSGeometry GEOS_DLL *GEOSSimplify_r(GEOSContextHandle_t handle,
642 const GEOSGeometry* g,
644 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify_r(
645 GEOSContextHandle_t handle,
646 const GEOSGeometry* g,
double tolerance);
653 extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints_r(
654 GEOSContextHandle_t handle,
655 const GEOSGeometry* g);
668 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths_r(GEOSContextHandle_t handle,
669 const GEOSGeometry* g1,
const GEOSGeometry* g2);
675 extern GEOSGeometry GEOS_DLL *GEOSSnap_r(GEOSContextHandle_t handle,
676 const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
688 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
689 GEOSContextHandle_t handle,
690 const GEOSGeometry *g,
707 extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram_r(
708 GEOSContextHandle_t extHandle,
709 const GEOSGeometry *g,
710 const GEOSGeometry *env,
721 extern char GEOS_DLL GEOSDisjoint_r(GEOSContextHandle_t handle,
722 const GEOSGeometry* g1,
723 const GEOSGeometry* g2);
724 extern char GEOS_DLL GEOSTouches_r(GEOSContextHandle_t handle,
725 const GEOSGeometry* g1,
726 const GEOSGeometry* g2);
727 extern char GEOS_DLL GEOSIntersects_r(GEOSContextHandle_t handle,
728 const GEOSGeometry* g1,
729 const GEOSGeometry* g2);
730 extern char GEOS_DLL GEOSCrosses_r(GEOSContextHandle_t handle,
731 const GEOSGeometry* g1,
732 const GEOSGeometry* g2);
733 extern char GEOS_DLL GEOSWithin_r(GEOSContextHandle_t handle,
734 const GEOSGeometry* g1,
735 const GEOSGeometry* g2);
736 extern char GEOS_DLL GEOSContains_r(GEOSContextHandle_t handle,
737 const GEOSGeometry* g1,
738 const GEOSGeometry* g2);
739 extern char GEOS_DLL GEOSOverlaps_r(GEOSContextHandle_t handle,
740 const GEOSGeometry* g1,
741 const GEOSGeometry* g2);
742 extern char GEOS_DLL GEOSEquals_r(GEOSContextHandle_t handle,
743 const GEOSGeometry* g1,
744 const GEOSGeometry* g2);
745 extern char GEOS_DLL GEOSEqualsExact_r(GEOSContextHandle_t handle,
746 const GEOSGeometry* g1,
747 const GEOSGeometry* g2,
749 extern char GEOS_DLL GEOSCovers_r(GEOSContextHandle_t handle,
750 const GEOSGeometry* g1,
751 const GEOSGeometry* g2);
752 extern char GEOS_DLL GEOSCoveredBy_r(GEOSContextHandle_t handle,
753 const GEOSGeometry* g1,
754 const GEOSGeometry* g2);
765 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare_r(
766 GEOSContextHandle_t handle,
767 const GEOSGeometry* g);
769 extern void GEOS_DLL GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle,
770 const GEOSPreparedGeometry* g);
772 extern char GEOS_DLL GEOSPreparedContains_r(GEOSContextHandle_t handle,
773 const GEOSPreparedGeometry* pg1,
774 const GEOSGeometry* g2);
775 extern char GEOS_DLL GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle,
776 const GEOSPreparedGeometry* pg1,
777 const GEOSGeometry* g2);
778 extern char GEOS_DLL GEOSPreparedCoveredBy_r(GEOSContextHandle_t handle,
779 const GEOSPreparedGeometry* pg1,
780 const GEOSGeometry* g2);
781 extern char GEOS_DLL GEOSPreparedCovers_r(GEOSContextHandle_t handle,
782 const GEOSPreparedGeometry* pg1,
783 const GEOSGeometry* g2);
784 extern char GEOS_DLL GEOSPreparedCrosses_r(GEOSContextHandle_t handle,
785 const GEOSPreparedGeometry* pg1,
786 const GEOSGeometry* g2);
787 extern char GEOS_DLL GEOSPreparedDisjoint_r(GEOSContextHandle_t handle,
788 const GEOSPreparedGeometry* pg1,
789 const GEOSGeometry* g2);
790 extern char GEOS_DLL GEOSPreparedIntersects_r(GEOSContextHandle_t handle,
791 const GEOSPreparedGeometry* pg1,
792 const GEOSGeometry* g2);
793 extern char GEOS_DLL GEOSPreparedOverlaps_r(GEOSContextHandle_t handle,
794 const GEOSPreparedGeometry* pg1,
795 const GEOSGeometry* g2);
796 extern char GEOS_DLL GEOSPreparedTouches_r(GEOSContextHandle_t handle,
797 const GEOSPreparedGeometry* pg1,
798 const GEOSGeometry* g2);
799 extern char GEOS_DLL GEOSPreparedWithin_r(GEOSContextHandle_t handle,
800 const GEOSPreparedGeometry* pg1,
801 const GEOSGeometry* g2);
813 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create_r(
814 GEOSContextHandle_t handle,
815 size_t nodeCapacity);
816 extern void GEOS_DLL GEOSSTRtree_insert_r(GEOSContextHandle_t handle,
818 const GEOSGeometry *g,
820 extern void GEOS_DLL GEOSSTRtree_query_r(GEOSContextHandle_t handle,
822 const GEOSGeometry *g,
823 GEOSQueryCallback callback,
826 extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest_r(GEOSContextHandle_t handle,
828 const GEOSGeometry* geom);
831 extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t handle,
834 const GEOSGeometry* itemEnvelope,
835 GEOSDistanceCallback distancefn,
838 extern void GEOS_DLL GEOSSTRtree_iterate_r(GEOSContextHandle_t handle,
840 GEOSQueryCallback callback,
842 extern char GEOS_DLL GEOSSTRtree_remove_r(GEOSContextHandle_t handle,
844 const GEOSGeometry *g,
846 extern void GEOS_DLL GEOSSTRtree_destroy_r(GEOSContextHandle_t handle,
856 extern char GEOS_DLL GEOSisEmpty_r(GEOSContextHandle_t handle,
857 const GEOSGeometry* g);
858 extern char GEOS_DLL GEOSisSimple_r(GEOSContextHandle_t handle,
859 const GEOSGeometry* g);
860 extern char GEOS_DLL GEOSisRing_r(GEOSContextHandle_t handle,
861 const GEOSGeometry* g);
862 extern char GEOS_DLL GEOSHasZ_r(GEOSContextHandle_t handle,
863 const GEOSGeometry* g);
864 extern char GEOS_DLL GEOSisClosed_r(GEOSContextHandle_t handle,
865 const GEOSGeometry *g);
874 enum GEOSRelateBoundaryNodeRules {
878 GEOSRELATE_BNR_MOD2=1,
879 GEOSRELATE_BNR_OGC=1,
880 GEOSRELATE_BNR_ENDPOINT=2,
881 GEOSRELATE_BNR_MULTIVALENT_ENDPOINT=3,
882 GEOSRELATE_BNR_MONOVALENT_ENDPOINT=4
886 extern char GEOS_DLL GEOSRelatePattern_r(GEOSContextHandle_t handle,
887 const GEOSGeometry* g1,
888 const GEOSGeometry* g2,
892 extern char GEOS_DLL *GEOSRelate_r(GEOSContextHandle_t handle,
893 const GEOSGeometry* g1,
894 const GEOSGeometry* g2);
897 extern char GEOS_DLL GEOSRelatePatternMatch_r(GEOSContextHandle_t handle,
902 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle,
903 const GEOSGeometry* g1,
904 const GEOSGeometry* g2,
914 enum GEOSValidFlags {
915 GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE=1
919 extern char GEOS_DLL GEOSisValid_r(GEOSContextHandle_t handle,
920 const GEOSGeometry* g);
923 extern char GEOS_DLL *GEOSisValidReason_r(GEOSContextHandle_t handle,
924 const GEOSGeometry* g);
931 extern char GEOS_DLL GEOSisValidDetail_r(GEOSContextHandle_t handle,
932 const GEOSGeometry* g,
935 GEOSGeometry** location);
944 extern char GEOS_DLL *GEOSGeomType_r(GEOSContextHandle_t handle,
945 const GEOSGeometry* g);
948 extern int GEOS_DLL GEOSGeomTypeId_r(GEOSContextHandle_t handle,
949 const GEOSGeometry* g);
952 extern int GEOS_DLL GEOSGetSRID_r(GEOSContextHandle_t handle,
953 const GEOSGeometry* g);
955 extern void GEOS_DLL GEOSSetSRID_r(GEOSContextHandle_t handle,
956 GEOSGeometry* g,
int SRID);
958 extern void GEOS_DLL *GEOSGeom_getUserData_r(GEOSContextHandle_t handle,
959 const GEOSGeometry* g);
961 extern void GEOS_DLL GEOSGeom_setUserData_r(GEOSContextHandle_t handle,
962 GEOSGeometry* g,
void* userData);
970 extern int GEOS_DLL GEOSGetNumGeometries_r(GEOSContextHandle_t handle,
971 const GEOSGeometry* g);
981 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
982 GEOSContextHandle_t handle,
983 const GEOSGeometry* g,
int n);
986 extern int GEOS_DLL GEOSNormalize_r(GEOSContextHandle_t handle,
991 #define GEOS_PREC_NO_TOPO (1<<0) 995 #define GEOS_PREC_KEEP_COLLAPSED (1<<1) 1012 extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision_r(
1013 GEOSContextHandle_t handle,
1014 const GEOSGeometry *g,
1015 double gridSize,
int flags);
1023 extern double GEOS_DLL GEOSGeom_getPrecision_r(
1024 GEOSContextHandle_t handle,
1025 const GEOSGeometry *g);
1028 extern int GEOS_DLL GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle,
1029 const GEOSGeometry* g);
1032 extern int GEOS_DLL GEOSGeomGetNumPoints_r(GEOSContextHandle_t handle,
1033 const GEOSGeometry* g);
1036 extern int GEOS_DLL GEOSGeomGetX_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *x);
1037 extern int GEOS_DLL GEOSGeomGetY_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *y);
1044 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN_r(
1045 GEOSContextHandle_t handle,
1046 const GEOSGeometry* g,
int n);
1053 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing_r(
1054 GEOSContextHandle_t handle,
1055 const GEOSGeometry* g);
1058 extern int GEOS_DLL GEOSGetNumCoordinates_r(GEOSContextHandle_t handle,
1059 const GEOSGeometry* g);
1065 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq_r(
1066 GEOSContextHandle_t handle,
1067 const GEOSGeometry* g);
1072 extern int GEOS_DLL GEOSGeom_getDimensions_r(GEOSContextHandle_t handle,
1073 const GEOSGeometry* g);
1078 extern int GEOS_DLL GEOSGeom_getCoordinateDimension_r(GEOSContextHandle_t handle,
1079 const GEOSGeometry* g);
1085 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
int n);
1086 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle,
const GEOSGeometry *g);
1087 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint_r(GEOSContextHandle_t handle,
const GEOSGeometry *g);
1096 extern int GEOS_DLL GEOSArea_r(GEOSContextHandle_t handle,
1097 const GEOSGeometry* g,
double *area);
1098 extern int GEOS_DLL GEOSLength_r(GEOSContextHandle_t handle,
1099 const GEOSGeometry* g,
double *length);
1100 extern int GEOS_DLL GEOSDistance_r(GEOSContextHandle_t handle,
1101 const GEOSGeometry* g1,
1102 const GEOSGeometry* g2,
double *dist);
1103 extern int GEOS_DLL GEOSHausdorffDistance_r(GEOSContextHandle_t handle,
1104 const GEOSGeometry *g1,
1105 const GEOSGeometry *g2,
1107 extern int GEOS_DLL GEOSHausdorffDistanceDensify_r(GEOSContextHandle_t handle,
1108 const GEOSGeometry *g1,
1109 const GEOSGeometry *g2,
1110 double densifyFrac,
double *dist);
1111 extern int GEOS_DLL GEOSGeomGetLength_r(GEOSContextHandle_t handle,
1112 const GEOSGeometry *g,
double *length);
1117 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints_r(
1118 GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1135 extern int GEOS_DLL GEOSOrientationIndex_r(GEOSContextHandle_t handle,
1136 double Ax,
double Ay,
double Bx,
double By,
double Px,
double Py);
1145 typedef struct GEOSWKTReader_t GEOSWKTReader;
1146 typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1147 typedef struct GEOSWKBReader_t GEOSWKBReader;
1148 typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1152 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create_r(
1153 GEOSContextHandle_t handle);
1154 extern void GEOS_DLL GEOSWKTReader_destroy_r(GEOSContextHandle_t handle,
1155 GEOSWKTReader* reader);
1156 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read_r(GEOSContextHandle_t handle,
1157 GEOSWKTReader* reader,
1161 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create_r(
1162 GEOSContextHandle_t handle);
1163 extern void GEOS_DLL GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle,
1164 GEOSWKTWriter* writer);
1165 extern char GEOS_DLL *GEOSWKTWriter_write_r(GEOSContextHandle_t handle,
1166 GEOSWKTWriter* writer,
1167 const GEOSGeometry* g);
1168 extern void GEOS_DLL GEOSWKTWriter_setTrim_r(GEOSContextHandle_t handle,
1169 GEOSWKTWriter *writer,
1171 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision_r(GEOSContextHandle_t handle,
1172 GEOSWKTWriter *writer,
1174 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension_r(GEOSContextHandle_t handle,
1175 GEOSWKTWriter *writer,
1177 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle,
1178 GEOSWKTWriter *writer);
1179 extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(GEOSContextHandle_t handle,
1180 GEOSWKTWriter *writer,
1184 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create_r(
1185 GEOSContextHandle_t handle);
1186 extern void GEOS_DLL GEOSWKBReader_destroy_r(GEOSContextHandle_t handle,
1187 GEOSWKBReader* reader);
1188 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read_r(GEOSContextHandle_t handle,
1189 GEOSWKBReader* reader,
1190 const unsigned char *wkb,
1192 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX_r(
1193 GEOSContextHandle_t handle,
1194 GEOSWKBReader* reader,
1195 const unsigned char *hex,
1199 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create_r(
1200 GEOSContextHandle_t handle);
1201 extern void GEOS_DLL GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle,
1202 GEOSWKBWriter* writer);
1205 extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
1206 GEOSContextHandle_t handle,
1207 GEOSWKBWriter* writer,
1208 const GEOSGeometry* g,
1210 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
1211 GEOSContextHandle_t handle,
1212 GEOSWKBWriter* writer,
1213 const GEOSGeometry* g,
1220 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension_r(
1221 GEOSContextHandle_t handle,
1222 const GEOSWKBWriter* writer);
1223 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension_r(
1224 GEOSContextHandle_t handle,
1225 GEOSWKBWriter* writer,
int newDimension);
1231 extern int GEOS_DLL GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle,
1232 const GEOSWKBWriter* writer);
1233 extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle,
1234 GEOSWKBWriter* writer,
1240 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle,
1241 const GEOSWKBWriter* writer);
1242 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle,
1243 GEOSWKBWriter* writer,
const char writeSRID);
1250 extern void GEOS_DLL GEOSFree_r(GEOSContextHandle_t handle,
void *buffer);
1255 #ifndef GEOS_USE_ONLY_R_API 1263 extern void GEOS_DLL initGEOS(GEOSMessageHandler notice_function,
1264 GEOSMessageHandler error_function);
1265 extern void GEOS_DLL finishGEOS(
void);
1274 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(
const char *wkt);
1275 extern char GEOS_DLL *GEOSGeomToWKT(
const GEOSGeometry* g);
1281 extern int GEOS_DLL GEOS_getWKBOutputDims();
1282 extern int GEOS_DLL GEOS_setWKBOutputDims(
int newDims);
1288 extern int GEOS_DLL GEOS_getWKBByteOrder();
1289 extern int GEOS_DLL GEOS_setWKBByteOrder(
int byteOrder);
1291 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(
const unsigned char *wkb,
size_t size);
1292 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(
const GEOSGeometry* g,
size_t *size);
1294 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(
const unsigned char *hex,
size_t size);
1295 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(
const GEOSGeometry* g,
size_t *size);
1308 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(
unsigned int size,
unsigned int dims);
1314 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone(
const GEOSCoordSequence* s);
1319 extern void GEOS_DLL GEOSCoordSeq_destroy(GEOSCoordSequence* s);
1325 extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
1326 unsigned int idx,
double val);
1327 extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
1328 unsigned int idx,
double val);
1329 extern int GEOS_DLL GEOSCoordSeq_setZ(GEOSCoordSequence* s,
1330 unsigned int idx,
double val);
1331 extern int GEOS_DLL GEOSCoordSeq_setOrdinate(GEOSCoordSequence* s,
1332 unsigned int idx,
unsigned int dim,
double val);
1338 extern int GEOS_DLL GEOSCoordSeq_getX(
const GEOSCoordSequence* s,
1339 unsigned int idx,
double *val);
1340 extern int GEOS_DLL GEOSCoordSeq_getY(
const GEOSCoordSequence* s,
1341 unsigned int idx,
double *val);
1342 extern int GEOS_DLL GEOSCoordSeq_getZ(
const GEOSCoordSequence* s,
1343 unsigned int idx,
double *val);
1344 extern int GEOS_DLL GEOSCoordSeq_getOrdinate(
const GEOSCoordSequence* s,
1345 unsigned int idx,
unsigned int dim,
double *val);
1350 extern int GEOS_DLL GEOSCoordSeq_getSize(
const GEOSCoordSequence* s,
1351 unsigned int *size);
1352 extern int GEOS_DLL GEOSCoordSeq_getDimensions(
const GEOSCoordSequence* s,
1353 unsigned int *dims);
1369 extern double GEOS_DLL GEOSProject(
const GEOSGeometry *g,
1370 const GEOSGeometry* p);
1374 extern GEOSGeometry GEOS_DLL *GEOSInterpolate(
const GEOSGeometry *g,
1377 extern double GEOS_DLL GEOSProjectNormalized(
const GEOSGeometry *g,
1378 const GEOSGeometry* p);
1380 extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized(
const GEOSGeometry *g,
1391 extern GEOSGeometry GEOS_DLL *GEOSBuffer(
const GEOSGeometry* g,
1392 double width,
int quadsegs);
1395 extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create();
1396 extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
1399 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle(
1400 GEOSBufferParams* p,
1404 extern int GEOS_DLL GEOSBufferParams_setJoinStyle(
1405 GEOSBufferParams* p,
1409 extern int GEOS_DLL GEOSBufferParams_setMitreLimit(
1410 GEOSBufferParams* p,
1414 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments(
1415 GEOSBufferParams* p,
1420 extern int GEOS_DLL GEOSBufferParams_setSingleSided(
1421 GEOSBufferParams* p,
1425 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams(
1426 const GEOSGeometry* g,
1427 const GEOSBufferParams* p,
1431 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle(
const GEOSGeometry* g,
1432 double width,
int quadsegs,
int endCapStyle,
int joinStyle,
1437 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer(
const GEOSGeometry* g,
1438 double width,
int quadsegs,
int joinStyle,
double mitreLimit,
1448 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve(
const GEOSGeometry* g,
1449 double width,
int quadsegs,
int joinStyle,
double mitreLimit);
1459 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint(GEOSCoordSequence* s);
1460 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint();
1461 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing(GEOSCoordSequence* s);
1462 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString(GEOSCoordSequence* s);
1463 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString();
1470 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon();
1471 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon(GEOSGeometry* shell,
1472 GEOSGeometry** holes,
unsigned int nholes);
1473 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection(
int type,
1474 GEOSGeometry* *geoms,
unsigned int ngeoms);
1475 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection(
int type);
1477 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(
const GEOSGeometry* g);
1485 extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
1493 extern GEOSGeometry GEOS_DLL *GEOSEnvelope(
const GEOSGeometry* g);
1494 extern GEOSGeometry GEOS_DLL *GEOSIntersection(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1495 extern GEOSGeometry GEOS_DLL *GEOSConvexHull(
const GEOSGeometry* g);
1502 extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle(
const GEOSGeometry* g);
1510 extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(
const GEOSGeometry* g);
1528 extern int GEOS_DLL GEOSMinimumClearance(
const GEOSGeometry* g,
double* d);
1536 extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine(
const GEOSGeometry* g);
1538 extern GEOSGeometry GEOS_DLL *GEOSDifference(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1539 extern GEOSGeometry GEOS_DLL *GEOSSymDifference(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1540 extern GEOSGeometry GEOS_DLL *GEOSBoundary(
const GEOSGeometry* g);
1541 extern GEOSGeometry GEOS_DLL *GEOSUnion(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1542 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(
const GEOSGeometry* g);
1545 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded(
const GEOSGeometry* g);
1546 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(
const GEOSGeometry* g);
1547 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(
const GEOSGeometry* g);
1548 extern GEOSGeometry GEOS_DLL *GEOSNode(
const GEOSGeometry* g);
1549 extern GEOSGeometry GEOS_DLL *GEOSClipByRect(
const GEOSGeometry* g,
double xmin,
double ymin,
double xmax,
double ymax);
1555 extern GEOSGeometry GEOS_DLL *GEOSPolygonize(
const GEOSGeometry *
const geoms[],
unsigned int ngeoms);
1556 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges(
const GEOSGeometry *
const geoms[],
unsigned int ngeoms);
1584 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full(
const GEOSGeometry* input,
1585 GEOSGeometry** cuts, GEOSGeometry** dangles, GEOSGeometry** invalid);
1587 extern GEOSGeometry GEOS_DLL *GEOSLineMerge(
const GEOSGeometry* g);
1588 extern GEOSGeometry GEOS_DLL *GEOSSimplify(
const GEOSGeometry* g,
double tolerance);
1589 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify(
const GEOSGeometry* g,
1597 extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints(
1598 const GEOSGeometry* g);
1611 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths(
const GEOSGeometry* g1,
1612 const GEOSGeometry* g2);
1618 extern GEOSGeometry GEOS_DLL *GEOSSnap(
const GEOSGeometry* g1,
1619 const GEOSGeometry* g2,
double tolerance);
1631 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
1632 const GEOSGeometry *g,
1649 extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram(
1650 const GEOSGeometry *g,
1651 const GEOSGeometry *env,
1661 extern char GEOS_DLL GEOSDisjoint(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1662 extern char GEOS_DLL GEOSTouches(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1663 extern char GEOS_DLL GEOSIntersects(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1664 extern char GEOS_DLL GEOSCrosses(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1665 extern char GEOS_DLL GEOSWithin(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1666 extern char GEOS_DLL GEOSContains(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1667 extern char GEOS_DLL GEOSOverlaps(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1668 extern char GEOS_DLL GEOSEquals(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1669 extern char GEOS_DLL GEOSEqualsExact(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
1670 extern char GEOS_DLL GEOSCovers(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1671 extern char GEOS_DLL GEOSCoveredBy(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1682 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(
const GEOSGeometry* g);
1684 extern void GEOS_DLL GEOSPreparedGeom_destroy(
const GEOSPreparedGeometry* g);
1686 extern char GEOS_DLL GEOSPreparedContains(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1687 extern char GEOS_DLL GEOSPreparedContainsProperly(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1688 extern char GEOS_DLL GEOSPreparedCoveredBy(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1689 extern char GEOS_DLL GEOSPreparedCovers(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1690 extern char GEOS_DLL GEOSPreparedCrosses(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1691 extern char GEOS_DLL GEOSPreparedDisjoint(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1692 extern char GEOS_DLL GEOSPreparedIntersects(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1693 extern char GEOS_DLL GEOSPreparedOverlaps(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1694 extern char GEOS_DLL GEOSPreparedTouches(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1695 extern char GEOS_DLL GEOSPreparedWithin(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1715 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(
size_t nodeCapacity);
1724 extern void GEOS_DLL GEOSSTRtree_insert(GEOSSTRtree *tree,
1725 const GEOSGeometry *g,
1738 extern void GEOS_DLL GEOSSTRtree_query(GEOSSTRtree *tree,
1739 const GEOSGeometry *g,
1740 GEOSQueryCallback callback,
1752 extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(GEOSSTRtree *tree,
const GEOSGeometry* geom);
1770 extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(GEOSSTRtree *tree,
1772 const GEOSGeometry* itemEnvelope,
1773 GEOSDistanceCallback distancefn,
1781 extern void GEOS_DLL GEOSSTRtree_iterate(GEOSSTRtree *tree,
1782 GEOSQueryCallback callback,
1795 extern char GEOS_DLL GEOSSTRtree_remove(GEOSSTRtree *tree,
1796 const GEOSGeometry *g,
1798 extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
1807 extern char GEOS_DLL GEOSisEmpty(
const GEOSGeometry* g);
1808 extern char GEOS_DLL GEOSisSimple(
const GEOSGeometry* g);
1809 extern char GEOS_DLL GEOSisRing(
const GEOSGeometry* g);
1810 extern char GEOS_DLL GEOSHasZ(
const GEOSGeometry* g);
1811 extern char GEOS_DLL GEOSisClosed(
const GEOSGeometry *g);
1820 extern char GEOS_DLL GEOSRelatePattern(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
const char *pat);
1823 extern char GEOS_DLL *GEOSRelate(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1826 extern char GEOS_DLL GEOSRelatePatternMatch(
const char *mat,
const char *pat);
1829 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
const GEOSGeometry* g1,
1830 const GEOSGeometry* g2,
1840 extern char GEOS_DLL GEOSisValid(
const GEOSGeometry* g);
1843 extern char GEOS_DLL *GEOSisValidReason(
const GEOSGeometry *g);
1850 extern char GEOS_DLL GEOSisValidDetail(
const GEOSGeometry* g,
1852 char** reason, GEOSGeometry** location);
1861 extern char GEOS_DLL *GEOSGeomType(
const GEOSGeometry* g);
1864 extern int GEOS_DLL GEOSGeomTypeId(
const GEOSGeometry* g);
1867 extern int GEOS_DLL GEOSGetSRID(
const GEOSGeometry* g);
1869 extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g,
int SRID);
1871 extern void GEOS_DLL *GEOSGeom_getUserData(
const GEOSGeometry* g);
1873 extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g,
void* userData);
1882 extern int GEOS_DLL GEOSGetNumGeometries(
const GEOSGeometry* g);
1892 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
const GEOSGeometry* g,
int n);
1895 extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
1898 extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision(
1899 const GEOSGeometry *g,
double gridSize,
int flags);
1902 extern double GEOS_DLL GEOSGeom_getPrecision(
const GEOSGeometry *g);
1905 extern int GEOS_DLL GEOSGetNumInteriorRings(
const GEOSGeometry* g);
1908 extern int GEOS_DLL GEOSGeomGetNumPoints(
const GEOSGeometry* g);
1911 extern int GEOS_DLL GEOSGeomGetX(
const GEOSGeometry *g,
double *x);
1912 extern int GEOS_DLL GEOSGeomGetY(
const GEOSGeometry *g,
double *y);
1919 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
const GEOSGeometry* g,
int n);
1926 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
const GEOSGeometry* g);
1929 extern int GEOS_DLL GEOSGetNumCoordinates(
const GEOSGeometry* g);
1935 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq(
const GEOSGeometry* g);
1940 extern int GEOS_DLL GEOSGeom_getDimensions(
const GEOSGeometry* g);
1945 extern int GEOS_DLL GEOSGeom_getCoordinateDimension(
const GEOSGeometry* g);
1951 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(
const GEOSGeometry *g,
int n);
1952 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint(
const GEOSGeometry *g);
1953 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint(
const GEOSGeometry *g);
1962 extern int GEOS_DLL GEOSArea(
const GEOSGeometry* g,
double *area);
1963 extern int GEOS_DLL GEOSLength(
const GEOSGeometry* g,
double *length);
1964 extern int GEOS_DLL GEOSDistance(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
1966 extern int GEOS_DLL GEOSHausdorffDistance(
const GEOSGeometry *g1,
1967 const GEOSGeometry *g2,
double *dist);
1968 extern int GEOS_DLL GEOSHausdorffDistanceDensify(
const GEOSGeometry *g1,
1969 const GEOSGeometry *g2,
double densifyFrac,
double *dist);
1970 extern int GEOS_DLL GEOSGeomGetLength(
const GEOSGeometry *g,
double *length);
1975 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints(
1976 const GEOSGeometry* g1,
const GEOSGeometry* g2);
1993 extern int GEOS_DLL GEOSOrientationIndex(
double Ax,
double Ay,
double Bx,
double By,
1994 double Px,
double Py);
2003 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create();
2004 extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
2005 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read(GEOSWKTReader* reader,
const char *wkt);
2008 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create();
2009 extern void GEOS_DLL GEOSWKTWriter_destroy(GEOSWKTWriter* writer);
2010 extern char GEOS_DLL *GEOSWKTWriter_write(GEOSWKTWriter* writer,
const GEOSGeometry* g);
2011 extern void GEOS_DLL GEOSWKTWriter_setTrim(GEOSWKTWriter *writer,
char trim);
2012 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision(GEOSWKTWriter *writer,
int precision);
2013 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension(GEOSWKTWriter *writer,
int dim);
2014 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer);
2015 extern void GEOS_DLL GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer,
int useOld3D);
2018 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create();
2019 extern void GEOS_DLL GEOSWKBReader_destroy(GEOSWKBReader* reader);
2020 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read(GEOSWKBReader* reader,
const unsigned char *wkb,
size_t size);
2021 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX(GEOSWKBReader* reader,
const unsigned char *hex,
size_t size);
2024 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create();
2025 extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
2028 extern unsigned char GEOS_DLL *GEOSWKBWriter_write(GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
2029 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
2035 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension(
const GEOSWKBWriter* writer);
2036 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension(GEOSWKBWriter* writer,
int newDimension);
2042 extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
const GEOSWKBWriter* writer);
2043 extern void GEOS_DLL GEOSWKBWriter_setByteOrder(GEOSWKBWriter* writer,
int byteOrder);
2048 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
const GEOSWKBWriter* writer);
2049 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter* writer,
const char writeSRID);
2055 extern void GEOS_DLL GEOSFree(
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