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 11 63 #define GEOS_CAPI_VERSION_PATCH 0 64 #define GEOS_CAPI_VERSION "3.7.2-CAPI-1.11.0" 66 #ifndef GEOS_VERSION_MAJOR 67 #define GEOS_VERSION_MAJOR 3 69 #ifndef GEOS_VERSION_MINOR 70 #define GEOS_VERSION_MINOR 7 72 #ifndef GEOS_VERSION_PATCH 73 #define GEOS_VERSION_PATCH 2 76 #define GEOS_VERSION "3.7.2" 79 #define GEOS_JTS_PORT "1.13.0" 82 #define GEOS_CAPI_VERSION_MAJOR 1 83 #define GEOS_CAPI_VERSION_MINOR 11 84 #define GEOS_CAPI_VERSION_PATCH 2 85 #define GEOS_CAPI_VERSION "3.7.2-CAPI-1.11.2" 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,
354 extern int GEOS_DLL GEOSCoordSeq_isCCW_r(GEOSContextHandle_t handle,
355 const GEOSCoordSequence* s,
372 extern double GEOS_DLL GEOSProject_r(GEOSContextHandle_t handle,
373 const GEOSGeometry *g,
374 const GEOSGeometry *p);
378 extern GEOSGeometry GEOS_DLL *GEOSInterpolate_r(GEOSContextHandle_t handle,
379 const GEOSGeometry *g,
382 extern double GEOS_DLL GEOSProjectNormalized_r(GEOSContextHandle_t handle,
383 const GEOSGeometry *g,
384 const GEOSGeometry *p);
386 extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized_r(
387 GEOSContextHandle_t handle,
388 const GEOSGeometry *g,
399 extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(GEOSContextHandle_t handle,
400 const GEOSGeometry* g,
401 double width,
int quadsegs);
403 enum GEOSBufCapStyles {
409 enum GEOSBufJoinStyles {
410 GEOSBUF_JOIN_ROUND=1,
411 GEOSBUF_JOIN_MITRE=2,
416 extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create_r(
417 GEOSContextHandle_t handle);
418 extern void GEOS_DLL GEOSBufferParams_destroy_r(
419 GEOSContextHandle_t handle,
420 GEOSBufferParams* parms);
423 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle_r(
424 GEOSContextHandle_t handle,
429 extern int GEOS_DLL GEOSBufferParams_setJoinStyle_r(
430 GEOSContextHandle_t handle,
435 extern int GEOS_DLL GEOSBufferParams_setMitreLimit_r(
436 GEOSContextHandle_t handle,
441 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments_r(
442 GEOSContextHandle_t handle,
448 extern int GEOS_DLL GEOSBufferParams_setSingleSided_r(
449 GEOSContextHandle_t handle,
454 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams_r(
455 GEOSContextHandle_t handle,
456 const GEOSGeometry* g,
457 const GEOSBufferParams* p,
461 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle_r(GEOSContextHandle_t handle,
462 const GEOSGeometry* g,
double width,
int quadsegs,
int endCapStyle,
463 int joinStyle,
double mitreLimit);
467 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer_r(
468 GEOSContextHandle_t handle,
469 const GEOSGeometry* g,
double width,
int quadsegs,
470 int joinStyle,
double mitreLimit,
int leftSide);
479 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve_r(GEOSContextHandle_t handle,
480 const GEOSGeometry* g,
double width,
int quadsegs,
481 int joinStyle,
double mitreLimit);
492 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint_r(
493 GEOSContextHandle_t handle,
494 GEOSCoordSequence* s);
495 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint_r(
496 GEOSContextHandle_t handle);
497 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing_r(
498 GEOSContextHandle_t handle,
499 GEOSCoordSequence* s);
500 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString_r(
501 GEOSContextHandle_t handle,
502 GEOSCoordSequence* s);
503 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString_r(
504 GEOSContextHandle_t handle);
511 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon_r(
512 GEOSContextHandle_t handle);
513 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon_r(
514 GEOSContextHandle_t handle,
516 GEOSGeometry** holes,
517 unsigned int nholes);
518 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection_r(
519 GEOSContextHandle_t handle,
int type,
520 GEOSGeometry* *geoms,
521 unsigned int ngeoms);
522 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection_r(
523 GEOSContextHandle_t handle,
int type);
525 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone_r(GEOSContextHandle_t handle,
526 const GEOSGeometry* g);
534 extern void GEOS_DLL GEOSGeom_destroy_r(GEOSContextHandle_t handle,
543 extern GEOSGeometry GEOS_DLL *GEOSEnvelope_r(GEOSContextHandle_t handle,
544 const GEOSGeometry* g);
545 extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(GEOSContextHandle_t handle,
546 const GEOSGeometry* g1,
547 const GEOSGeometry* g2);
548 extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(GEOSContextHandle_t handle,
549 const GEOSGeometry* g);
556 extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle,
557 const GEOSGeometry* g);
565 extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth_r(GEOSContextHandle_t handle,
566 const GEOSGeometry* g);
568 extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle,
569 const GEOSGeometry* g);
571 extern int GEOS_DLL GEOSMinimumClearance_r(GEOSContextHandle_t handle,
572 const GEOSGeometry* g,
575 extern GEOSGeometry GEOS_DLL *GEOSDifference_r(GEOSContextHandle_t handle,
576 const GEOSGeometry* g1,
577 const GEOSGeometry* g2);
578 extern GEOSGeometry GEOS_DLL *GEOSSymDifference_r(GEOSContextHandle_t handle,
579 const GEOSGeometry* g1,
580 const GEOSGeometry* g2);
581 extern GEOSGeometry GEOS_DLL *GEOSBoundary_r(GEOSContextHandle_t handle,
582 const GEOSGeometry* g);
583 extern GEOSGeometry GEOS_DLL *GEOSUnion_r(GEOSContextHandle_t handle,
584 const GEOSGeometry* g1,
585 const GEOSGeometry* g2);
586 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion_r(GEOSContextHandle_t handle,
587 const GEOSGeometry* g);
589 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded_r(GEOSContextHandle_t handle,
590 const GEOSGeometry* g);
591 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface_r(GEOSContextHandle_t handle,
592 const GEOSGeometry* g);
593 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid_r(GEOSContextHandle_t handle,
594 const GEOSGeometry* g);
595 extern GEOSGeometry GEOS_DLL *GEOSNode_r(GEOSContextHandle_t handle,
596 const GEOSGeometry* g);
599 extern GEOSGeometry GEOS_DLL *GEOSClipByRect_r(GEOSContextHandle_t handle,
600 const GEOSGeometry* g,
601 double xmin,
double ymin,
602 double xmax,
double ymax);
636 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_r(GEOSContextHandle_t handle,
637 const GEOSGeometry *
const geoms[],
638 unsigned int ngeoms);
639 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges_r(
640 GEOSContextHandle_t handle,
641 const GEOSGeometry *
const geoms[],
642 unsigned int ngeoms);
643 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full_r(GEOSContextHandle_t handle,
644 const GEOSGeometry* input, GEOSGeometry** cuts,
645 GEOSGeometry** dangles, GEOSGeometry** invalidRings);
647 extern GEOSGeometry GEOS_DLL *GEOSLineMerge_r(GEOSContextHandle_t handle,
648 const GEOSGeometry* g);
649 extern GEOSGeometry GEOS_DLL *GEOSReverse_r(GEOSContextHandle_t handle,
650 const GEOSGeometry* g);
651 extern GEOSGeometry GEOS_DLL *GEOSSimplify_r(GEOSContextHandle_t handle,
652 const GEOSGeometry* g,
654 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify_r(
655 GEOSContextHandle_t handle,
656 const GEOSGeometry* g,
double tolerance);
663 extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints_r(
664 GEOSContextHandle_t handle,
665 const GEOSGeometry* g);
678 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths_r(GEOSContextHandle_t handle,
679 const GEOSGeometry* g1,
const GEOSGeometry* g2);
685 extern GEOSGeometry GEOS_DLL *GEOSSnap_r(GEOSContextHandle_t handle,
686 const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
698 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
699 GEOSContextHandle_t handle,
700 const GEOSGeometry *g,
717 extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram_r(
718 GEOSContextHandle_t extHandle,
719 const GEOSGeometry *g,
720 const GEOSGeometry *env,
741 extern int GEOS_DLL GEOSSegmentIntersection_r(
742 GEOSContextHandle_t extHandle,
743 double ax0,
double ay0,
744 double ax1,
double ay1,
745 double bx0,
double by0,
746 double bx1,
double by1,
747 double* cx,
double* cy);
755 extern char GEOS_DLL GEOSDisjoint_r(GEOSContextHandle_t handle,
756 const GEOSGeometry* g1,
757 const GEOSGeometry* g2);
758 extern char GEOS_DLL GEOSTouches_r(GEOSContextHandle_t handle,
759 const GEOSGeometry* g1,
760 const GEOSGeometry* g2);
761 extern char GEOS_DLL GEOSIntersects_r(GEOSContextHandle_t handle,
762 const GEOSGeometry* g1,
763 const GEOSGeometry* g2);
764 extern char GEOS_DLL GEOSCrosses_r(GEOSContextHandle_t handle,
765 const GEOSGeometry* g1,
766 const GEOSGeometry* g2);
767 extern char GEOS_DLL GEOSWithin_r(GEOSContextHandle_t handle,
768 const GEOSGeometry* g1,
769 const GEOSGeometry* g2);
770 extern char GEOS_DLL GEOSContains_r(GEOSContextHandle_t handle,
771 const GEOSGeometry* g1,
772 const GEOSGeometry* g2);
773 extern char GEOS_DLL GEOSOverlaps_r(GEOSContextHandle_t handle,
774 const GEOSGeometry* g1,
775 const GEOSGeometry* g2);
776 extern char GEOS_DLL GEOSEquals_r(GEOSContextHandle_t handle,
777 const GEOSGeometry* g1,
778 const GEOSGeometry* g2);
779 extern char GEOS_DLL GEOSEqualsExact_r(GEOSContextHandle_t handle,
780 const GEOSGeometry* g1,
781 const GEOSGeometry* g2,
783 extern char GEOS_DLL GEOSCovers_r(GEOSContextHandle_t handle,
784 const GEOSGeometry* g1,
785 const GEOSGeometry* g2);
786 extern char GEOS_DLL GEOSCoveredBy_r(GEOSContextHandle_t handle,
787 const GEOSGeometry* g1,
788 const GEOSGeometry* g2);
799 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare_r(
800 GEOSContextHandle_t handle,
801 const GEOSGeometry* g);
803 extern void GEOS_DLL GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle,
804 const GEOSPreparedGeometry* g);
806 extern char GEOS_DLL GEOSPreparedContains_r(GEOSContextHandle_t handle,
807 const GEOSPreparedGeometry* pg1,
808 const GEOSGeometry* g2);
809 extern char GEOS_DLL GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle,
810 const GEOSPreparedGeometry* pg1,
811 const GEOSGeometry* g2);
812 extern char GEOS_DLL GEOSPreparedCoveredBy_r(GEOSContextHandle_t handle,
813 const GEOSPreparedGeometry* pg1,
814 const GEOSGeometry* g2);
815 extern char GEOS_DLL GEOSPreparedCovers_r(GEOSContextHandle_t handle,
816 const GEOSPreparedGeometry* pg1,
817 const GEOSGeometry* g2);
818 extern char GEOS_DLL GEOSPreparedCrosses_r(GEOSContextHandle_t handle,
819 const GEOSPreparedGeometry* pg1,
820 const GEOSGeometry* g2);
821 extern char GEOS_DLL GEOSPreparedDisjoint_r(GEOSContextHandle_t handle,
822 const GEOSPreparedGeometry* pg1,
823 const GEOSGeometry* g2);
824 extern char GEOS_DLL GEOSPreparedIntersects_r(GEOSContextHandle_t handle,
825 const GEOSPreparedGeometry* pg1,
826 const GEOSGeometry* g2);
827 extern char GEOS_DLL GEOSPreparedOverlaps_r(GEOSContextHandle_t handle,
828 const GEOSPreparedGeometry* pg1,
829 const GEOSGeometry* g2);
830 extern char GEOS_DLL GEOSPreparedTouches_r(GEOSContextHandle_t handle,
831 const GEOSPreparedGeometry* pg1,
832 const GEOSGeometry* g2);
833 extern char GEOS_DLL GEOSPreparedWithin_r(GEOSContextHandle_t handle,
834 const GEOSPreparedGeometry* pg1,
835 const GEOSGeometry* g2);
847 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create_r(
848 GEOSContextHandle_t handle,
849 size_t nodeCapacity);
850 extern void GEOS_DLL GEOSSTRtree_insert_r(GEOSContextHandle_t handle,
852 const GEOSGeometry *g,
854 extern void GEOS_DLL GEOSSTRtree_query_r(GEOSContextHandle_t handle,
856 const GEOSGeometry *g,
857 GEOSQueryCallback callback,
860 extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest_r(GEOSContextHandle_t handle,
862 const GEOSGeometry* geom);
865 extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t handle,
868 const GEOSGeometry* itemEnvelope,
869 GEOSDistanceCallback distancefn,
872 extern void GEOS_DLL GEOSSTRtree_iterate_r(GEOSContextHandle_t handle,
874 GEOSQueryCallback callback,
876 extern char GEOS_DLL GEOSSTRtree_remove_r(GEOSContextHandle_t handle,
878 const GEOSGeometry *g,
880 extern void GEOS_DLL GEOSSTRtree_destroy_r(GEOSContextHandle_t handle,
890 extern char GEOS_DLL GEOSisEmpty_r(GEOSContextHandle_t handle,
891 const GEOSGeometry* g);
892 extern char GEOS_DLL GEOSisSimple_r(GEOSContextHandle_t handle,
893 const GEOSGeometry* g);
894 extern char GEOS_DLL GEOSisRing_r(GEOSContextHandle_t handle,
895 const GEOSGeometry* g);
896 extern char GEOS_DLL GEOSHasZ_r(GEOSContextHandle_t handle,
897 const GEOSGeometry* g);
898 extern char GEOS_DLL GEOSisClosed_r(GEOSContextHandle_t handle,
899 const GEOSGeometry *g);
908 enum GEOSRelateBoundaryNodeRules {
912 GEOSRELATE_BNR_MOD2=1,
913 GEOSRELATE_BNR_OGC=1,
914 GEOSRELATE_BNR_ENDPOINT=2,
915 GEOSRELATE_BNR_MULTIVALENT_ENDPOINT=3,
916 GEOSRELATE_BNR_MONOVALENT_ENDPOINT=4
920 extern char GEOS_DLL GEOSRelatePattern_r(GEOSContextHandle_t handle,
921 const GEOSGeometry* g1,
922 const GEOSGeometry* g2,
926 extern char GEOS_DLL *GEOSRelate_r(GEOSContextHandle_t handle,
927 const GEOSGeometry* g1,
928 const GEOSGeometry* g2);
931 extern char GEOS_DLL GEOSRelatePatternMatch_r(GEOSContextHandle_t handle,
936 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle,
937 const GEOSGeometry* g1,
938 const GEOSGeometry* g2,
948 enum GEOSValidFlags {
949 GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE=1
953 extern char GEOS_DLL GEOSisValid_r(GEOSContextHandle_t handle,
954 const GEOSGeometry* g);
957 extern char GEOS_DLL *GEOSisValidReason_r(GEOSContextHandle_t handle,
958 const GEOSGeometry* g);
965 extern char GEOS_DLL GEOSisValidDetail_r(GEOSContextHandle_t handle,
966 const GEOSGeometry* g,
969 GEOSGeometry** location);
978 extern char GEOS_DLL *GEOSGeomType_r(GEOSContextHandle_t handle,
979 const GEOSGeometry* g);
982 extern int GEOS_DLL GEOSGeomTypeId_r(GEOSContextHandle_t handle,
983 const GEOSGeometry* g);
986 extern int GEOS_DLL GEOSGetSRID_r(GEOSContextHandle_t handle,
987 const GEOSGeometry* g);
989 extern void GEOS_DLL GEOSSetSRID_r(GEOSContextHandle_t handle,
990 GEOSGeometry* g,
int SRID);
992 extern void GEOS_DLL *GEOSGeom_getUserData_r(GEOSContextHandle_t handle,
993 const GEOSGeometry* g);
995 extern void GEOS_DLL GEOSGeom_setUserData_r(GEOSContextHandle_t handle,
996 GEOSGeometry* g,
void* userData);
1004 extern int GEOS_DLL GEOSGetNumGeometries_r(GEOSContextHandle_t handle,
1005 const GEOSGeometry* g);
1015 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1016 GEOSContextHandle_t handle,
1017 const GEOSGeometry* g,
int n);
1020 extern int GEOS_DLL GEOSNormalize_r(GEOSContextHandle_t handle,
1025 #define GEOS_PREC_NO_TOPO (1<<0) 1029 #define GEOS_PREC_KEEP_COLLAPSED (1<<1) 1046 extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision_r(
1047 GEOSContextHandle_t handle,
1048 const GEOSGeometry *g,
1049 double gridSize,
int flags);
1057 extern double GEOS_DLL GEOSGeom_getPrecision_r(
1058 GEOSContextHandle_t handle,
1059 const GEOSGeometry *g);
1062 extern int GEOS_DLL GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle,
1063 const GEOSGeometry* g);
1066 extern int GEOS_DLL GEOSGeomGetNumPoints_r(GEOSContextHandle_t handle,
1067 const GEOSGeometry* g);
1070 extern int GEOS_DLL GEOSGeomGetX_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *x);
1071 extern int GEOS_DLL GEOSGeomGetY_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *y);
1072 extern int GEOS_DLL GEOSGeomGetZ_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *z);
1079 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN_r(
1080 GEOSContextHandle_t handle,
1081 const GEOSGeometry* g,
int n);
1088 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing_r(
1089 GEOSContextHandle_t handle,
1090 const GEOSGeometry* g);
1093 extern int GEOS_DLL GEOSGetNumCoordinates_r(GEOSContextHandle_t handle,
1094 const GEOSGeometry* g);
1100 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq_r(
1101 GEOSContextHandle_t handle,
1102 const GEOSGeometry* g);
1107 extern int GEOS_DLL GEOSGeom_getDimensions_r(GEOSContextHandle_t handle,
1108 const GEOSGeometry* g);
1113 extern int GEOS_DLL GEOSGeom_getCoordinateDimension_r(GEOSContextHandle_t handle,
1114 const GEOSGeometry* g);
1118 extern int GEOS_DLL GEOSGeom_getXMin_r(GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* value);
1119 extern int GEOS_DLL GEOSGeom_getYMin_r(GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* value);
1120 extern int GEOS_DLL GEOSGeom_getXMax_r(GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* value);
1121 extern int GEOS_DLL GEOSGeom_getYMax_r(GEOSContextHandle_t handle,
const GEOSGeometry* g,
double* value);
1127 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
int n);
1128 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle,
const GEOSGeometry *g);
1129 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint_r(GEOSContextHandle_t handle,
const GEOSGeometry *g);
1138 extern int GEOS_DLL GEOSArea_r(GEOSContextHandle_t handle,
1139 const GEOSGeometry* g,
double *area);
1140 extern int GEOS_DLL GEOSLength_r(GEOSContextHandle_t handle,
1141 const GEOSGeometry* g,
double *length);
1142 extern int GEOS_DLL GEOSDistance_r(GEOSContextHandle_t handle,
1143 const GEOSGeometry* g1,
1144 const GEOSGeometry* g2,
double *dist);
1145 extern int GEOS_DLL GEOSDistanceIndexed_r(GEOSContextHandle_t handle,
1146 const GEOSGeometry* g1,
1147 const GEOSGeometry* g2,
double *dist);
1148 extern int GEOS_DLL GEOSHausdorffDistance_r(GEOSContextHandle_t handle,
1149 const GEOSGeometry *g1,
1150 const GEOSGeometry *g2,
1152 extern int GEOS_DLL GEOSHausdorffDistanceDensify_r(GEOSContextHandle_t handle,
1153 const GEOSGeometry *g1,
1154 const GEOSGeometry *g2,
1155 double densifyFrac,
double *dist);
1156 extern int GEOS_DLL GEOSFrechetDistance_r(GEOSContextHandle_t handle,
1157 const GEOSGeometry *g1,
1158 const GEOSGeometry *g2,
1160 extern int GEOS_DLL GEOSFrechetDistanceDensify_r(GEOSContextHandle_t handle,
1161 const GEOSGeometry *g1,
1162 const GEOSGeometry *g2,
1163 double densifyFrac,
double *dist);
1164 extern int GEOS_DLL GEOSGeomGetLength_r(GEOSContextHandle_t handle,
1165 const GEOSGeometry *g,
double *length);
1170 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints_r(
1171 GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1188 extern int GEOS_DLL GEOSOrientationIndex_r(GEOSContextHandle_t handle,
1189 double Ax,
double Ay,
double Bx,
double By,
double Px,
double Py);
1198 typedef struct GEOSWKTReader_t GEOSWKTReader;
1199 typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1200 typedef struct GEOSWKBReader_t GEOSWKBReader;
1201 typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1205 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create_r(
1206 GEOSContextHandle_t handle);
1207 extern void GEOS_DLL GEOSWKTReader_destroy_r(GEOSContextHandle_t handle,
1208 GEOSWKTReader* reader);
1209 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read_r(GEOSContextHandle_t handle,
1210 GEOSWKTReader* reader,
1214 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create_r(
1215 GEOSContextHandle_t handle);
1216 extern void GEOS_DLL GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle,
1217 GEOSWKTWriter* writer);
1218 extern char GEOS_DLL *GEOSWKTWriter_write_r(GEOSContextHandle_t handle,
1219 GEOSWKTWriter* writer,
1220 const GEOSGeometry* g);
1221 extern void GEOS_DLL GEOSWKTWriter_setTrim_r(GEOSContextHandle_t handle,
1222 GEOSWKTWriter *writer,
1224 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision_r(GEOSContextHandle_t handle,
1225 GEOSWKTWriter *writer,
1227 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension_r(GEOSContextHandle_t handle,
1228 GEOSWKTWriter *writer,
1230 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle,
1231 GEOSWKTWriter *writer);
1232 extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(GEOSContextHandle_t handle,
1233 GEOSWKTWriter *writer,
1237 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create_r(
1238 GEOSContextHandle_t handle);
1239 extern void GEOS_DLL GEOSWKBReader_destroy_r(GEOSContextHandle_t handle,
1240 GEOSWKBReader* reader);
1241 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read_r(GEOSContextHandle_t handle,
1242 GEOSWKBReader* reader,
1243 const unsigned char *wkb,
1245 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX_r(
1246 GEOSContextHandle_t handle,
1247 GEOSWKBReader* reader,
1248 const unsigned char *hex,
1252 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create_r(
1253 GEOSContextHandle_t handle);
1254 extern void GEOS_DLL GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle,
1255 GEOSWKBWriter* writer);
1258 extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
1259 GEOSContextHandle_t handle,
1260 GEOSWKBWriter* writer,
1261 const GEOSGeometry* g,
1263 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
1264 GEOSContextHandle_t handle,
1265 GEOSWKBWriter* writer,
1266 const GEOSGeometry* g,
1273 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension_r(
1274 GEOSContextHandle_t handle,
1275 const GEOSWKBWriter* writer);
1276 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension_r(
1277 GEOSContextHandle_t handle,
1278 GEOSWKBWriter* writer,
int newDimension);
1284 extern int GEOS_DLL GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle,
1285 const GEOSWKBWriter* writer);
1286 extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle,
1287 GEOSWKBWriter* writer,
1293 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle,
1294 const GEOSWKBWriter* writer);
1295 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle,
1296 GEOSWKBWriter* writer,
const char writeSRID);
1303 extern void GEOS_DLL GEOSFree_r(GEOSContextHandle_t handle,
void *buffer);
1308 #ifndef GEOS_USE_ONLY_R_API 1316 extern void GEOS_DLL initGEOS(GEOSMessageHandler notice_function,
1317 GEOSMessageHandler error_function);
1318 extern void GEOS_DLL finishGEOS(
void);
1327 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(
const char *wkt);
1328 extern char GEOS_DLL *GEOSGeomToWKT(
const GEOSGeometry* g);
1334 extern int GEOS_DLL GEOS_getWKBOutputDims();
1335 extern int GEOS_DLL GEOS_setWKBOutputDims(
int newDims);
1341 extern int GEOS_DLL GEOS_getWKBByteOrder();
1342 extern int GEOS_DLL GEOS_setWKBByteOrder(
int byteOrder);
1344 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(
const unsigned char *wkb,
size_t size);
1345 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(
const GEOSGeometry* g,
size_t *size);
1347 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(
const unsigned char *hex,
size_t size);
1348 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(
const GEOSGeometry* g,
size_t *size);
1361 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(
unsigned int size,
unsigned int dims);
1367 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone(
const GEOSCoordSequence* s);
1372 extern void GEOS_DLL GEOSCoordSeq_destroy(GEOSCoordSequence* s);
1378 extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
1379 unsigned int idx,
double val);
1380 extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
1381 unsigned int idx,
double val);
1382 extern int GEOS_DLL GEOSCoordSeq_setZ(GEOSCoordSequence* s,
1383 unsigned int idx,
double val);
1384 extern int GEOS_DLL GEOSCoordSeq_setOrdinate(GEOSCoordSequence* s,
1385 unsigned int idx,
unsigned int dim,
double val);
1391 extern int GEOS_DLL GEOSCoordSeq_getX(
const GEOSCoordSequence* s,
1392 unsigned int idx,
double *val);
1393 extern int GEOS_DLL GEOSCoordSeq_getY(
const GEOSCoordSequence* s,
1394 unsigned int idx,
double *val);
1395 extern int GEOS_DLL GEOSCoordSeq_getZ(
const GEOSCoordSequence* s,
1396 unsigned int idx,
double *val);
1397 extern int GEOS_DLL GEOSCoordSeq_getOrdinate(
const GEOSCoordSequence* s,
1398 unsigned int idx,
unsigned int dim,
double *val);
1403 extern int GEOS_DLL GEOSCoordSeq_getSize(
const GEOSCoordSequence* s,
1404 unsigned int *size);
1405 extern int GEOS_DLL GEOSCoordSeq_getDimensions(
const GEOSCoordSequence* s,
1406 unsigned int *dims);
1413 extern int GEOS_DLL GEOSCoordSeq_isCCW(
const GEOSCoordSequence* s,
char* is_ccw);
1429 extern double GEOS_DLL GEOSProject(
const GEOSGeometry *g,
1430 const GEOSGeometry* p);
1434 extern GEOSGeometry GEOS_DLL *GEOSInterpolate(
const GEOSGeometry *g,
1437 extern double GEOS_DLL GEOSProjectNormalized(
const GEOSGeometry *g,
1438 const GEOSGeometry* p);
1440 extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized(
const GEOSGeometry *g,
1451 extern GEOSGeometry GEOS_DLL *GEOSBuffer(
const GEOSGeometry* g,
1452 double width,
int quadsegs);
1455 extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create();
1456 extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
1459 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle(
1460 GEOSBufferParams* p,
1464 extern int GEOS_DLL GEOSBufferParams_setJoinStyle(
1465 GEOSBufferParams* p,
1469 extern int GEOS_DLL GEOSBufferParams_setMitreLimit(
1470 GEOSBufferParams* p,
1474 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments(
1475 GEOSBufferParams* p,
1480 extern int GEOS_DLL GEOSBufferParams_setSingleSided(
1481 GEOSBufferParams* p,
1485 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams(
1486 const GEOSGeometry* g,
1487 const GEOSBufferParams* p,
1491 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle(
const GEOSGeometry* g,
1492 double width,
int quadsegs,
int endCapStyle,
int joinStyle,
1497 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer(
const GEOSGeometry* g,
1498 double width,
int quadsegs,
int joinStyle,
double mitreLimit,
1508 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve(
const GEOSGeometry* g,
1509 double width,
int quadsegs,
int joinStyle,
double mitreLimit);
1519 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint(GEOSCoordSequence* s);
1520 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint();
1521 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing(GEOSCoordSequence* s);
1522 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString(GEOSCoordSequence* s);
1523 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString();
1530 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon();
1531 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon(GEOSGeometry* shell,
1532 GEOSGeometry** holes,
unsigned int nholes);
1533 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection(
int type,
1534 GEOSGeometry* *geoms,
unsigned int ngeoms);
1535 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection(
int type);
1537 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(
const GEOSGeometry* g);
1545 extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
1553 extern GEOSGeometry GEOS_DLL *GEOSEnvelope(
const GEOSGeometry* g);
1554 extern GEOSGeometry GEOS_DLL *GEOSIntersection(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1555 extern GEOSGeometry GEOS_DLL *GEOSConvexHull(
const GEOSGeometry* g);
1562 extern GEOSGeometry GEOS_DLL *GEOSMinimumRotatedRectangle(
const GEOSGeometry* g);
1570 extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(
const GEOSGeometry* g);
1588 extern int GEOS_DLL GEOSMinimumClearance(
const GEOSGeometry* g,
double* d);
1596 extern GEOSGeometry GEOS_DLL *GEOSMinimumClearanceLine(
const GEOSGeometry* g);
1598 extern GEOSGeometry GEOS_DLL *GEOSDifference(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1599 extern GEOSGeometry GEOS_DLL *GEOSSymDifference(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1600 extern GEOSGeometry GEOS_DLL *GEOSBoundary(
const GEOSGeometry* g);
1601 extern GEOSGeometry GEOS_DLL *GEOSUnion(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1602 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(
const GEOSGeometry* g);
1605 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded(
const GEOSGeometry* g);
1606 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(
const GEOSGeometry* g);
1607 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(
const GEOSGeometry* g);
1608 extern GEOSGeometry GEOS_DLL *GEOSNode(
const GEOSGeometry* g);
1609 extern GEOSGeometry GEOS_DLL *GEOSClipByRect(
const GEOSGeometry* g,
double xmin,
double ymin,
double xmax,
double ymax);
1615 extern GEOSGeometry GEOS_DLL *GEOSPolygonize(
const GEOSGeometry *
const geoms[],
unsigned int ngeoms);
1616 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges(
const GEOSGeometry *
const geoms[],
unsigned int ngeoms);
1644 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full(
const GEOSGeometry* input,
1645 GEOSGeometry** cuts, GEOSGeometry** dangles, GEOSGeometry** invalid);
1647 extern GEOSGeometry GEOS_DLL *GEOSLineMerge(
const GEOSGeometry* g);
1648 extern GEOSGeometry GEOS_DLL *GEOSReverse(
const GEOSGeometry* g);
1649 extern GEOSGeometry GEOS_DLL *GEOSSimplify(
const GEOSGeometry* g,
double tolerance);
1650 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify(
const GEOSGeometry* g,
1658 extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints(
1659 const GEOSGeometry* g);
1672 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths(
const GEOSGeometry* g1,
1673 const GEOSGeometry* g2);
1679 extern GEOSGeometry GEOS_DLL *GEOSSnap(
const GEOSGeometry* g1,
1680 const GEOSGeometry* g2,
double tolerance);
1692 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
1693 const GEOSGeometry *g,
1710 extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram(
1711 const GEOSGeometry *g,
1712 const GEOSGeometry *env,
1732 extern int GEOS_DLL GEOSSegmentIntersection(
1733 double ax0,
double ay0,
1734 double ax1,
double ay1,
1735 double bx0,
double by0,
1736 double bx1,
double by1,
1737 double* cx,
double* cy);
1745 extern char GEOS_DLL GEOSDisjoint(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1746 extern char GEOS_DLL GEOSTouches(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1747 extern char GEOS_DLL GEOSIntersects(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1748 extern char GEOS_DLL GEOSCrosses(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1749 extern char GEOS_DLL GEOSWithin(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1750 extern char GEOS_DLL GEOSContains(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1751 extern char GEOS_DLL GEOSOverlaps(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1752 extern char GEOS_DLL GEOSEquals(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1753 extern char GEOS_DLL GEOSEqualsExact(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
1754 extern char GEOS_DLL GEOSCovers(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1755 extern char GEOS_DLL GEOSCoveredBy(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1766 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(
const GEOSGeometry* g);
1768 extern void GEOS_DLL GEOSPreparedGeom_destroy(
const GEOSPreparedGeometry* g);
1770 extern char GEOS_DLL GEOSPreparedContains(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1771 extern char GEOS_DLL GEOSPreparedContainsProperly(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1772 extern char GEOS_DLL GEOSPreparedCoveredBy(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1773 extern char GEOS_DLL GEOSPreparedCovers(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1774 extern char GEOS_DLL GEOSPreparedCrosses(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1775 extern char GEOS_DLL GEOSPreparedDisjoint(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1776 extern char GEOS_DLL GEOSPreparedIntersects(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1777 extern char GEOS_DLL GEOSPreparedOverlaps(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1778 extern char GEOS_DLL GEOSPreparedTouches(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1779 extern char GEOS_DLL GEOSPreparedWithin(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1799 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(
size_t nodeCapacity);
1808 extern void GEOS_DLL GEOSSTRtree_insert(GEOSSTRtree *tree,
1809 const GEOSGeometry *g,
1822 extern void GEOS_DLL GEOSSTRtree_query(GEOSSTRtree *tree,
1823 const GEOSGeometry *g,
1824 GEOSQueryCallback callback,
1836 extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(GEOSSTRtree *tree,
const GEOSGeometry* geom);
1854 extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(GEOSSTRtree *tree,
1856 const GEOSGeometry* itemEnvelope,
1857 GEOSDistanceCallback distancefn,
1865 extern void GEOS_DLL GEOSSTRtree_iterate(GEOSSTRtree *tree,
1866 GEOSQueryCallback callback,
1879 extern char GEOS_DLL GEOSSTRtree_remove(GEOSSTRtree *tree,
1880 const GEOSGeometry *g,
1882 extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
1891 extern char GEOS_DLL GEOSisEmpty(
const GEOSGeometry* g);
1892 extern char GEOS_DLL GEOSisSimple(
const GEOSGeometry* g);
1893 extern char GEOS_DLL GEOSisRing(
const GEOSGeometry* g);
1894 extern char GEOS_DLL GEOSHasZ(
const GEOSGeometry* g);
1895 extern char GEOS_DLL GEOSisClosed(
const GEOSGeometry *g);
1904 extern char GEOS_DLL GEOSRelatePattern(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
const char *pat);
1907 extern char GEOS_DLL *GEOSRelate(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1910 extern char GEOS_DLL GEOSRelatePatternMatch(
const char *mat,
const char *pat);
1913 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
const GEOSGeometry* g1,
1914 const GEOSGeometry* g2,
1924 extern char GEOS_DLL GEOSisValid(
const GEOSGeometry* g);
1927 extern char GEOS_DLL *GEOSisValidReason(
const GEOSGeometry *g);
1934 extern char GEOS_DLL GEOSisValidDetail(
const GEOSGeometry* g,
1936 char** reason, GEOSGeometry** location);
1945 extern char GEOS_DLL *GEOSGeomType(
const GEOSGeometry* g);
1948 extern int GEOS_DLL GEOSGeomTypeId(
const GEOSGeometry* g);
1951 extern int GEOS_DLL GEOSGetSRID(
const GEOSGeometry* g);
1953 extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g,
int SRID);
1955 extern void GEOS_DLL *GEOSGeom_getUserData(
const GEOSGeometry* g);
1957 extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g,
void* userData);
1966 extern int GEOS_DLL GEOSGetNumGeometries(
const GEOSGeometry* g);
1976 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
const GEOSGeometry* g,
int n);
1979 extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
1982 extern GEOSGeometry GEOS_DLL *GEOSGeom_setPrecision(
1983 const GEOSGeometry *g,
double gridSize,
int flags);
1986 extern double GEOS_DLL GEOSGeom_getPrecision(
const GEOSGeometry *g);
1989 extern int GEOS_DLL GEOSGetNumInteriorRings(
const GEOSGeometry* g);
1992 extern int GEOS_DLL GEOSGeomGetNumPoints(
const GEOSGeometry* g);
1995 extern int GEOS_DLL GEOSGeomGetX(
const GEOSGeometry *g,
double *x);
1996 extern int GEOS_DLL GEOSGeomGetY(
const GEOSGeometry *g,
double *y);
1997 extern int GEOS_DLL GEOSGeomGetZ(
const GEOSGeometry *g,
double *z);
2004 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
const GEOSGeometry* g,
int n);
2011 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
const GEOSGeometry* g);
2014 extern int GEOS_DLL GEOSGetNumCoordinates(
const GEOSGeometry* g);
2020 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq(
const GEOSGeometry* g);
2025 extern int GEOS_DLL GEOSGeom_getDimensions(
const GEOSGeometry* g);
2030 extern int GEOS_DLL GEOSGeom_getCoordinateDimension(
const GEOSGeometry* g);
2035 extern int GEOS_DLL GEOSGeom_getXMin(
const GEOSGeometry* g,
double* value);
2036 extern int GEOS_DLL GEOSGeom_getYMin(
const GEOSGeometry* g,
double* value);
2037 extern int GEOS_DLL GEOSGeom_getXMax(
const GEOSGeometry* g,
double* value);
2038 extern int GEOS_DLL GEOSGeom_getYMax(
const GEOSGeometry* g,
double* value);
2044 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(
const GEOSGeometry *g,
int n);
2045 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint(
const GEOSGeometry *g);
2046 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint(
const GEOSGeometry *g);
2055 extern int GEOS_DLL GEOSArea(
const GEOSGeometry* g,
double *area);
2056 extern int GEOS_DLL GEOSLength(
const GEOSGeometry* g,
double *length);
2057 extern int GEOS_DLL GEOSDistance(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
2059 extern int GEOS_DLL GEOSDistanceIndexed(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
2061 extern int GEOS_DLL GEOSHausdorffDistance(
const GEOSGeometry *g1,
2062 const GEOSGeometry *g2,
double *dist);
2063 extern int GEOS_DLL GEOSHausdorffDistanceDensify(
const GEOSGeometry *g1,
2064 const GEOSGeometry *g2,
double densifyFrac,
double *dist);
2065 extern int GEOS_DLL GEOSFrechetDistance(
const GEOSGeometry *g1,
2066 const GEOSGeometry *g2,
double *dist);
2067 extern int GEOS_DLL GEOSFrechetDistanceDensify(
const GEOSGeometry *g1,
2068 const GEOSGeometry *g2,
double densifyFrac,
double *dist);
2069 extern int GEOS_DLL GEOSGeomGetLength(
const GEOSGeometry *g,
double *length);
2074 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints(
2075 const GEOSGeometry* g1,
const GEOSGeometry* g2);
2092 extern int GEOS_DLL GEOSOrientationIndex(
double Ax,
double Ay,
double Bx,
double By,
2093 double Px,
double Py);
2102 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create();
2103 extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
2104 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read(GEOSWKTReader* reader,
const char *wkt);
2107 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create();
2108 extern void GEOS_DLL GEOSWKTWriter_destroy(GEOSWKTWriter* writer);
2109 extern char GEOS_DLL *GEOSWKTWriter_write(GEOSWKTWriter* writer,
const GEOSGeometry* g);
2110 extern void GEOS_DLL GEOSWKTWriter_setTrim(GEOSWKTWriter *writer,
char trim);
2111 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision(GEOSWKTWriter *writer,
int precision);
2112 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension(GEOSWKTWriter *writer,
int dim);
2113 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer);
2114 extern void GEOS_DLL GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer,
int useOld3D);
2117 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create();
2118 extern void GEOS_DLL GEOSWKBReader_destroy(GEOSWKBReader* reader);
2119 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read(GEOSWKBReader* reader,
const unsigned char *wkb,
size_t size);
2120 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX(GEOSWKBReader* reader,
const unsigned char *hex,
size_t size);
2123 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create();
2124 extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
2127 extern unsigned char GEOS_DLL *GEOSWKBWriter_write(GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
2128 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
2134 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension(
const GEOSWKBWriter* writer);
2135 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension(GEOSWKBWriter* writer,
int newDimension);
2141 extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
const GEOSWKBWriter* writer);
2142 extern void GEOS_DLL GEOSWKBWriter_setByteOrder(GEOSWKBWriter* writer,
int byteOrder);
2147 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
const GEOSWKBWriter* writer);
2148 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter* writer,
const char writeSRID);
2154 extern void GEOS_DLL GEOSFree(
void *buffer);
a linestring
Definition: Geometry.h:79
a collection of heterogeneus geometries
Definition: Geometry.h:91
a collection of linestrings
Definition: Geometry.h:87
a collection of points
Definition: Geometry.h:85
a polygon
Definition: Geometry.h:83
a linear ring (linestring with 1st point == last point)
Definition: Geometry.h:81
a point
Definition: Geometry.h:77
a collection of polygons
Definition: Geometry.h:89