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 9 63 #define GEOS_CAPI_VERSION_PATCH 0 64 #define GEOS_CAPI_VERSION "3.5.0-CAPI-1.9.0" 66 #ifndef GEOS_VERSION_MAJOR 67 #define GEOS_VERSION_MAJOR 3 69 #ifndef GEOS_VERSION_MINOR 70 #define GEOS_VERSION_MINOR 5 72 #ifndef GEOS_VERSION_PATCH 73 #define GEOS_VERSION_PATCH 0 76 #define GEOS_VERSION "3.5.0" 79 #define GEOS_JTS_PORT "1.13.0" 82 #define GEOS_CAPI_VERSION_MAJOR 1 83 #define GEOS_CAPI_VERSION_MINOR 9 84 #define GEOS_CAPI_VERSION_PATCH 0 85 #define GEOS_CAPI_VERSION "3.5.0-CAPI-1.9.0" 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);
163 #include <geos/export.h> 171 typedef void (GEOSInterruptCallback)();
172 extern GEOSInterruptCallback GEOS_DLL *GEOS_interruptRegisterCallback(GEOSInterruptCallback* cb);
174 extern void GEOS_DLL GEOS_interruptRequest();
176 extern void GEOS_DLL GEOS_interruptCancel();
183 extern GEOSContextHandle_t GEOS_DLL initGEOS_r(
184 GEOSMessageHandler notice_function,
185 GEOSMessageHandler error_function);
189 extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
191 extern GEOSContextHandle_t GEOS_DLL GEOS_init_r();
192 extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
195 extern GEOSMessageHandler GEOS_DLL GEOSContext_setNoticeHandler_r(GEOSContextHandle_t extHandle,
196 GEOSMessageHandler nf);
197 extern GEOSMessageHandler GEOS_DLL GEOSContext_setErrorHandler_r(GEOSContextHandle_t extHandle,
198 GEOSMessageHandler ef);
209 extern GEOSMessageHandler_r GEOS_DLL GEOSContext_setNoticeMessageHandler_r(GEOSContextHandle_t extHandle,
210 GEOSMessageHandler_r nf,
222 extern GEOSMessageHandler_r GEOS_DLL GEOSContext_setErrorMessageHandler_r(GEOSContextHandle_t extHandle,
223 GEOSMessageHandler_r ef,
226 extern const char GEOS_DLL *GEOSversion();
236 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT_r(GEOSContextHandle_t handle,
238 extern char GEOS_DLL *GEOSGeomToWKT_r(GEOSContextHandle_t handle,
239 const GEOSGeometry* g);
246 extern int GEOS_DLL GEOS_getWKBOutputDims_r(GEOSContextHandle_t handle);
247 extern int GEOS_DLL GEOS_setWKBOutputDims_r(GEOSContextHandle_t handle,
255 extern int GEOS_DLL GEOS_getWKBByteOrder_r(GEOSContextHandle_t handle);
256 extern int GEOS_DLL GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle,
259 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf_r(GEOSContextHandle_t handle,
260 const unsigned char *wkb,
262 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(GEOSContextHandle_t handle,
263 const GEOSGeometry* g,
266 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf_r(GEOSContextHandle_t handle,
267 const unsigned char *hex,
269 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(GEOSContextHandle_t handle,
270 const GEOSGeometry* g,
284 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create_r(
285 GEOSContextHandle_t handle,
293 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone_r(
294 GEOSContextHandle_t handle,
295 const GEOSCoordSequence* s);
300 extern void GEOS_DLL GEOSCoordSeq_destroy_r(GEOSContextHandle_t handle,
301 GEOSCoordSequence* s);
307 extern int GEOS_DLL GEOSCoordSeq_setX_r(GEOSContextHandle_t handle,
308 GEOSCoordSequence* s,
unsigned int idx,
310 extern int GEOS_DLL GEOSCoordSeq_setY_r(GEOSContextHandle_t handle,
311 GEOSCoordSequence* s,
unsigned int idx,
313 extern int GEOS_DLL GEOSCoordSeq_setZ_r(GEOSContextHandle_t handle,
314 GEOSCoordSequence* s,
unsigned int idx,
316 extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(GEOSContextHandle_t handle,
317 GEOSCoordSequence* s,
319 unsigned int dim,
double val);
325 extern int GEOS_DLL GEOSCoordSeq_getX_r(GEOSContextHandle_t handle,
326 const GEOSCoordSequence* s,
327 unsigned int idx,
double *val);
328 extern int GEOS_DLL GEOSCoordSeq_getY_r(GEOSContextHandle_t handle,
329 const GEOSCoordSequence* s,
330 unsigned int idx,
double *val);
331 extern int GEOS_DLL GEOSCoordSeq_getZ_r(GEOSContextHandle_t handle,
332 const GEOSCoordSequence* s,
333 unsigned int idx,
double *val);
334 extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(GEOSContextHandle_t handle,
335 const GEOSCoordSequence* s,
337 unsigned int dim,
double *val);
342 extern int GEOS_DLL GEOSCoordSeq_getSize_r(GEOSContextHandle_t handle,
343 const GEOSCoordSequence* s,
345 extern int GEOS_DLL GEOSCoordSeq_getDimensions_r(GEOSContextHandle_t handle,
346 const GEOSCoordSequence* s,
363 extern double GEOS_DLL GEOSProject_r(GEOSContextHandle_t handle,
364 const GEOSGeometry *g,
365 const GEOSGeometry *p);
369 extern GEOSGeometry GEOS_DLL *GEOSInterpolate_r(GEOSContextHandle_t handle,
370 const GEOSGeometry *g,
373 extern double GEOS_DLL GEOSProjectNormalized_r(GEOSContextHandle_t handle,
374 const GEOSGeometry *g,
375 const GEOSGeometry *p);
377 extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized_r(
378 GEOSContextHandle_t handle,
379 const GEOSGeometry *g,
390 extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(GEOSContextHandle_t handle,
391 const GEOSGeometry* g,
392 double width,
int quadsegs);
394 enum GEOSBufCapStyles {
400 enum GEOSBufJoinStyles {
401 GEOSBUF_JOIN_ROUND=1,
402 GEOSBUF_JOIN_MITRE=2,
407 extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create_r(
408 GEOSContextHandle_t handle);
409 extern void GEOS_DLL GEOSBufferParams_destroy_r(
410 GEOSContextHandle_t handle,
411 GEOSBufferParams* parms);
414 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle_r(
415 GEOSContextHandle_t handle,
420 extern int GEOS_DLL GEOSBufferParams_setJoinStyle_r(
421 GEOSContextHandle_t handle,
426 extern int GEOS_DLL GEOSBufferParams_setMitreLimit_r(
427 GEOSContextHandle_t handle,
432 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments_r(
433 GEOSContextHandle_t handle,
439 extern int GEOS_DLL GEOSBufferParams_setSingleSided_r(
440 GEOSContextHandle_t handle,
445 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams_r(
446 GEOSContextHandle_t handle,
447 const GEOSGeometry* g,
448 const GEOSBufferParams* p,
452 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle_r(GEOSContextHandle_t handle,
453 const GEOSGeometry* g,
double width,
int quadsegs,
int endCapStyle,
454 int joinStyle,
double mitreLimit);
458 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer_r(
459 GEOSContextHandle_t handle,
460 const GEOSGeometry* g,
double width,
int quadsegs,
461 int joinStyle,
double mitreLimit,
int leftSide);
470 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve_r(GEOSContextHandle_t handle,
471 const GEOSGeometry* g,
double width,
int quadsegs,
472 int joinStyle,
double mitreLimit);
483 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint_r(
484 GEOSContextHandle_t handle,
485 GEOSCoordSequence* s);
486 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint_r(
487 GEOSContextHandle_t handle);
488 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing_r(
489 GEOSContextHandle_t handle,
490 GEOSCoordSequence* s);
491 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString_r(
492 GEOSContextHandle_t handle,
493 GEOSCoordSequence* s);
494 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString_r(
495 GEOSContextHandle_t handle);
502 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon_r(
503 GEOSContextHandle_t handle);
504 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon_r(
505 GEOSContextHandle_t handle,
507 GEOSGeometry** holes,
508 unsigned int nholes);
509 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection_r(
510 GEOSContextHandle_t handle,
int type,
511 GEOSGeometry* *geoms,
512 unsigned int ngeoms);
513 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection_r(
514 GEOSContextHandle_t handle,
int type);
516 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone_r(GEOSContextHandle_t handle,
517 const GEOSGeometry* g);
525 extern void GEOS_DLL GEOSGeom_destroy_r(GEOSContextHandle_t handle,
534 extern GEOSGeometry GEOS_DLL *GEOSEnvelope_r(GEOSContextHandle_t handle,
535 const GEOSGeometry* g);
536 extern GEOSGeometry GEOS_DLL *GEOSIntersection_r(GEOSContextHandle_t handle,
537 const GEOSGeometry* g1,
538 const GEOSGeometry* g2);
539 extern GEOSGeometry GEOS_DLL *GEOSConvexHull_r(GEOSContextHandle_t handle,
540 const GEOSGeometry* g);
541 extern GEOSGeometry GEOS_DLL *GEOSDifference_r(GEOSContextHandle_t handle,
542 const GEOSGeometry* g1,
543 const GEOSGeometry* g2);
544 extern GEOSGeometry GEOS_DLL *GEOSSymDifference_r(GEOSContextHandle_t handle,
545 const GEOSGeometry* g1,
546 const GEOSGeometry* g2);
547 extern GEOSGeometry GEOS_DLL *GEOSBoundary_r(GEOSContextHandle_t handle,
548 const GEOSGeometry* g);
549 extern GEOSGeometry GEOS_DLL *GEOSUnion_r(GEOSContextHandle_t handle,
550 const GEOSGeometry* g1,
551 const GEOSGeometry* g2);
552 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion_r(GEOSContextHandle_t handle,
553 const GEOSGeometry* g);
555 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded_r(GEOSContextHandle_t handle,
556 const GEOSGeometry* g);
557 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface_r(GEOSContextHandle_t handle,
558 const GEOSGeometry* g);
559 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid_r(GEOSContextHandle_t handle,
560 const GEOSGeometry* g);
561 extern GEOSGeometry GEOS_DLL *GEOSNode_r(GEOSContextHandle_t handle,
562 const GEOSGeometry* g);
565 extern GEOSGeometry GEOS_DLL *GEOSClipByRect_r(GEOSContextHandle_t handle,
566 const GEOSGeometry* g,
567 double xmin,
double ymin,
568 double xmax,
double ymax);
602 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_r(GEOSContextHandle_t handle,
603 const GEOSGeometry *
const geoms[],
604 unsigned int ngeoms);
605 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges_r(
606 GEOSContextHandle_t handle,
607 const GEOSGeometry *
const geoms[],
608 unsigned int ngeoms);
609 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full_r(GEOSContextHandle_t handle,
610 const GEOSGeometry* input, GEOSGeometry** cuts,
611 GEOSGeometry** dangles, GEOSGeometry** invalidRings);
613 extern GEOSGeometry GEOS_DLL *GEOSLineMerge_r(GEOSContextHandle_t handle,
614 const GEOSGeometry* g);
615 extern GEOSGeometry GEOS_DLL *GEOSSimplify_r(GEOSContextHandle_t handle,
616 const GEOSGeometry* g,
618 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify_r(
619 GEOSContextHandle_t handle,
620 const GEOSGeometry* g,
double tolerance);
627 extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints_r(
628 GEOSContextHandle_t handle,
629 const GEOSGeometry* g);
642 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths_r(GEOSContextHandle_t handle,
643 const GEOSGeometry* g1,
const GEOSGeometry* g2);
649 extern GEOSGeometry GEOS_DLL *GEOSSnap_r(GEOSContextHandle_t handle,
650 const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
662 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation_r(
663 GEOSContextHandle_t handle,
664 const GEOSGeometry *g,
681 extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram_r(
682 GEOSContextHandle_t extHandle,
683 const GEOSGeometry *g,
684 const GEOSGeometry *env,
695 extern char GEOS_DLL GEOSDisjoint_r(GEOSContextHandle_t handle,
696 const GEOSGeometry* g1,
697 const GEOSGeometry* g2);
698 extern char GEOS_DLL GEOSTouches_r(GEOSContextHandle_t handle,
699 const GEOSGeometry* g1,
700 const GEOSGeometry* g2);
701 extern char GEOS_DLL GEOSIntersects_r(GEOSContextHandle_t handle,
702 const GEOSGeometry* g1,
703 const GEOSGeometry* g2);
704 extern char GEOS_DLL GEOSCrosses_r(GEOSContextHandle_t handle,
705 const GEOSGeometry* g1,
706 const GEOSGeometry* g2);
707 extern char GEOS_DLL GEOSWithin_r(GEOSContextHandle_t handle,
708 const GEOSGeometry* g1,
709 const GEOSGeometry* g2);
710 extern char GEOS_DLL GEOSContains_r(GEOSContextHandle_t handle,
711 const GEOSGeometry* g1,
712 const GEOSGeometry* g2);
713 extern char GEOS_DLL GEOSOverlaps_r(GEOSContextHandle_t handle,
714 const GEOSGeometry* g1,
715 const GEOSGeometry* g2);
716 extern char GEOS_DLL GEOSEquals_r(GEOSContextHandle_t handle,
717 const GEOSGeometry* g1,
718 const GEOSGeometry* g2);
719 extern char GEOS_DLL GEOSEqualsExact_r(GEOSContextHandle_t handle,
720 const GEOSGeometry* g1,
721 const GEOSGeometry* g2,
723 extern char GEOS_DLL GEOSCovers_r(GEOSContextHandle_t handle,
724 const GEOSGeometry* g1,
725 const GEOSGeometry* g2);
726 extern char GEOS_DLL GEOSCoveredBy_r(GEOSContextHandle_t handle,
727 const GEOSGeometry* g1,
728 const GEOSGeometry* g2);
739 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare_r(
740 GEOSContextHandle_t handle,
741 const GEOSGeometry* g);
743 extern void GEOS_DLL GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle,
744 const GEOSPreparedGeometry* g);
746 extern char GEOS_DLL GEOSPreparedContains_r(GEOSContextHandle_t handle,
747 const GEOSPreparedGeometry* pg1,
748 const GEOSGeometry* g2);
749 extern char GEOS_DLL GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle,
750 const GEOSPreparedGeometry* pg1,
751 const GEOSGeometry* g2);
752 extern char GEOS_DLL GEOSPreparedCoveredBy_r(GEOSContextHandle_t handle,
753 const GEOSPreparedGeometry* pg1,
754 const GEOSGeometry* g2);
755 extern char GEOS_DLL GEOSPreparedCovers_r(GEOSContextHandle_t handle,
756 const GEOSPreparedGeometry* pg1,
757 const GEOSGeometry* g2);
758 extern char GEOS_DLL GEOSPreparedCrosses_r(GEOSContextHandle_t handle,
759 const GEOSPreparedGeometry* pg1,
760 const GEOSGeometry* g2);
761 extern char GEOS_DLL GEOSPreparedDisjoint_r(GEOSContextHandle_t handle,
762 const GEOSPreparedGeometry* pg1,
763 const GEOSGeometry* g2);
764 extern char GEOS_DLL GEOSPreparedIntersects_r(GEOSContextHandle_t handle,
765 const GEOSPreparedGeometry* pg1,
766 const GEOSGeometry* g2);
767 extern char GEOS_DLL GEOSPreparedOverlaps_r(GEOSContextHandle_t handle,
768 const GEOSPreparedGeometry* pg1,
769 const GEOSGeometry* g2);
770 extern char GEOS_DLL GEOSPreparedTouches_r(GEOSContextHandle_t handle,
771 const GEOSPreparedGeometry* pg1,
772 const GEOSGeometry* g2);
773 extern char GEOS_DLL GEOSPreparedWithin_r(GEOSContextHandle_t handle,
774 const GEOSPreparedGeometry* pg1,
775 const GEOSGeometry* g2);
787 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create_r(
788 GEOSContextHandle_t handle,
789 size_t nodeCapacity);
790 extern void GEOS_DLL GEOSSTRtree_insert_r(GEOSContextHandle_t handle,
792 const GEOSGeometry *g,
794 extern void GEOS_DLL GEOSSTRtree_query_r(GEOSContextHandle_t handle,
796 const GEOSGeometry *g,
797 GEOSQueryCallback callback,
799 extern void GEOS_DLL GEOSSTRtree_iterate_r(GEOSContextHandle_t handle,
801 GEOSQueryCallback callback,
803 extern char GEOS_DLL GEOSSTRtree_remove_r(GEOSContextHandle_t handle,
805 const GEOSGeometry *g,
807 extern void GEOS_DLL GEOSSTRtree_destroy_r(GEOSContextHandle_t handle,
817 extern char GEOS_DLL GEOSisEmpty_r(GEOSContextHandle_t handle,
818 const GEOSGeometry* g);
819 extern char GEOS_DLL GEOSisSimple_r(GEOSContextHandle_t handle,
820 const GEOSGeometry* g);
821 extern char GEOS_DLL GEOSisRing_r(GEOSContextHandle_t handle,
822 const GEOSGeometry* g);
823 extern char GEOS_DLL GEOSHasZ_r(GEOSContextHandle_t handle,
824 const GEOSGeometry* g);
825 extern char GEOS_DLL GEOSisClosed_r(GEOSContextHandle_t handle,
826 const GEOSGeometry *g);
835 enum GEOSRelateBoundaryNodeRules {
839 GEOSRELATE_BNR_MOD2=1,
840 GEOSRELATE_BNR_OGC=1,
841 GEOSRELATE_BNR_ENDPOINT=2,
842 GEOSRELATE_BNR_MULTIVALENT_ENDPOINT=3,
843 GEOSRELATE_BNR_MONOVALENT_ENDPOINT=4
847 extern char GEOS_DLL GEOSRelatePattern_r(GEOSContextHandle_t handle,
848 const GEOSGeometry* g1,
849 const GEOSGeometry* g2,
853 extern char GEOS_DLL *GEOSRelate_r(GEOSContextHandle_t handle,
854 const GEOSGeometry* g1,
855 const GEOSGeometry* g2);
858 extern char GEOS_DLL GEOSRelatePatternMatch_r(GEOSContextHandle_t handle,
863 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle,
864 const GEOSGeometry* g1,
865 const GEOSGeometry* g2,
875 enum GEOSValidFlags {
876 GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE=1
880 extern char GEOS_DLL GEOSisValid_r(GEOSContextHandle_t handle,
881 const GEOSGeometry* g);
884 extern char GEOS_DLL *GEOSisValidReason_r(GEOSContextHandle_t handle,
885 const GEOSGeometry* g);
892 extern char GEOS_DLL GEOSisValidDetail_r(GEOSContextHandle_t handle,
893 const GEOSGeometry* g,
896 GEOSGeometry** location);
905 extern char GEOS_DLL *GEOSGeomType_r(GEOSContextHandle_t handle,
906 const GEOSGeometry* g);
909 extern int GEOS_DLL GEOSGeomTypeId_r(GEOSContextHandle_t handle,
910 const GEOSGeometry* g);
913 extern int GEOS_DLL GEOSGetSRID_r(GEOSContextHandle_t handle,
914 const GEOSGeometry* g);
916 extern void GEOS_DLL GEOSSetSRID_r(GEOSContextHandle_t handle,
917 GEOSGeometry* g,
int SRID);
925 extern int GEOS_DLL GEOSGetNumGeometries_r(GEOSContextHandle_t handle,
926 const GEOSGeometry* g);
936 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
937 GEOSContextHandle_t handle,
938 const GEOSGeometry* g,
int n);
941 extern int GEOS_DLL GEOSNormalize_r(GEOSContextHandle_t handle,
945 extern int GEOS_DLL GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle,
946 const GEOSGeometry* g);
949 extern int GEOS_DLL GEOSGeomGetNumPoints_r(GEOSContextHandle_t handle,
950 const GEOSGeometry* g);
953 extern int GEOS_DLL GEOSGeomGetX_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *x);
954 extern int GEOS_DLL GEOSGeomGetY_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
double *y);
961 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN_r(
962 GEOSContextHandle_t handle,
963 const GEOSGeometry* g,
int n);
970 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing_r(
971 GEOSContextHandle_t handle,
972 const GEOSGeometry* g);
975 extern int GEOS_DLL GEOSGetNumCoordinates_r(GEOSContextHandle_t handle,
976 const GEOSGeometry* g);
982 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq_r(
983 GEOSContextHandle_t handle,
984 const GEOSGeometry* g);
989 extern int GEOS_DLL GEOSGeom_getDimensions_r(GEOSContextHandle_t handle,
990 const GEOSGeometry* g);
995 extern int GEOS_DLL GEOSGeom_getCoordinateDimension_r(GEOSContextHandle_t handle,
996 const GEOSGeometry* g);
1002 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN_r(GEOSContextHandle_t handle,
const GEOSGeometry *g,
int n);
1003 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle,
const GEOSGeometry *g);
1004 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint_r(GEOSContextHandle_t handle,
const GEOSGeometry *g);
1013 extern int GEOS_DLL GEOSArea_r(GEOSContextHandle_t handle,
1014 const GEOSGeometry* g,
double *area);
1015 extern int GEOS_DLL GEOSLength_r(GEOSContextHandle_t handle,
1016 const GEOSGeometry* g,
double *length);
1017 extern int GEOS_DLL GEOSDistance_r(GEOSContextHandle_t handle,
1018 const GEOSGeometry* g1,
1019 const GEOSGeometry* g2,
double *dist);
1020 extern int GEOS_DLL GEOSHausdorffDistance_r(GEOSContextHandle_t handle,
1021 const GEOSGeometry *g1,
1022 const GEOSGeometry *g2,
1024 extern int GEOS_DLL GEOSHausdorffDistanceDensify_r(GEOSContextHandle_t handle,
1025 const GEOSGeometry *g1,
1026 const GEOSGeometry *g2,
1027 double densifyFrac,
double *dist);
1028 extern int GEOS_DLL GEOSGeomGetLength_r(GEOSContextHandle_t handle,
1029 const GEOSGeometry *g,
double *length);
1034 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints_r(
1035 GEOSContextHandle_t handle,
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1052 extern int GEOS_DLL GEOSOrientationIndex_r(GEOSContextHandle_t handle,
1053 double Ax,
double Ay,
double Bx,
double By,
double Px,
double Py);
1062 typedef struct GEOSWKTReader_t GEOSWKTReader;
1063 typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1064 typedef struct GEOSWKBReader_t GEOSWKBReader;
1065 typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1069 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create_r(
1070 GEOSContextHandle_t handle);
1071 extern void GEOS_DLL GEOSWKTReader_destroy_r(GEOSContextHandle_t handle,
1072 GEOSWKTReader* reader);
1073 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read_r(GEOSContextHandle_t handle,
1074 GEOSWKTReader* reader,
1078 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create_r(
1079 GEOSContextHandle_t handle);
1080 extern void GEOS_DLL GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle,
1081 GEOSWKTWriter* writer);
1082 extern char GEOS_DLL *GEOSWKTWriter_write_r(GEOSContextHandle_t handle,
1083 GEOSWKTWriter* writer,
1084 const GEOSGeometry* g);
1085 extern void GEOS_DLL GEOSWKTWriter_setTrim_r(GEOSContextHandle_t handle,
1086 GEOSWKTWriter *writer,
1088 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision_r(GEOSContextHandle_t handle,
1089 GEOSWKTWriter *writer,
1091 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension_r(GEOSContextHandle_t handle,
1092 GEOSWKTWriter *writer,
1094 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle,
1095 GEOSWKTWriter *writer);
1096 extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(GEOSContextHandle_t handle,
1097 GEOSWKTWriter *writer,
1101 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create_r(
1102 GEOSContextHandle_t handle);
1103 extern void GEOS_DLL GEOSWKBReader_destroy_r(GEOSContextHandle_t handle,
1104 GEOSWKBReader* reader);
1105 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read_r(GEOSContextHandle_t handle,
1106 GEOSWKBReader* reader,
1107 const unsigned char *wkb,
1109 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX_r(
1110 GEOSContextHandle_t handle,
1111 GEOSWKBReader* reader,
1112 const unsigned char *hex,
1116 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create_r(
1117 GEOSContextHandle_t handle);
1118 extern void GEOS_DLL GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle,
1119 GEOSWKBWriter* writer);
1122 extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
1123 GEOSContextHandle_t handle,
1124 GEOSWKBWriter* writer,
1125 const GEOSGeometry* g,
1127 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
1128 GEOSContextHandle_t handle,
1129 GEOSWKBWriter* writer,
1130 const GEOSGeometry* g,
1137 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension_r(
1138 GEOSContextHandle_t handle,
1139 const GEOSWKBWriter* writer);
1140 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension_r(
1141 GEOSContextHandle_t handle,
1142 GEOSWKBWriter* writer,
int newDimension);
1148 extern int GEOS_DLL GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle,
1149 const GEOSWKBWriter* writer);
1150 extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle,
1151 GEOSWKBWriter* writer,
1157 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle,
1158 const GEOSWKBWriter* writer);
1159 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle,
1160 GEOSWKBWriter* writer,
const char writeSRID);
1167 extern void GEOS_DLL GEOSFree_r(GEOSContextHandle_t handle,
void *buffer);
1172 #ifndef GEOS_USE_ONLY_R_API 1180 extern void GEOS_DLL initGEOS(GEOSMessageHandler notice_function,
1181 GEOSMessageHandler error_function);
1182 extern void GEOS_DLL finishGEOS(
void);
1191 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(
const char *wkt);
1192 extern char GEOS_DLL *GEOSGeomToWKT(
const GEOSGeometry* g);
1198 extern int GEOS_DLL GEOS_getWKBOutputDims();
1199 extern int GEOS_DLL GEOS_setWKBOutputDims(
int newDims);
1205 extern int GEOS_DLL GEOS_getWKBByteOrder();
1206 extern int GEOS_DLL GEOS_setWKBByteOrder(
int byteOrder);
1208 extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(
const unsigned char *wkb,
size_t size);
1209 extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(
const GEOSGeometry* g,
size_t *size);
1211 extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(
const unsigned char *hex,
size_t size);
1212 extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(
const GEOSGeometry* g,
size_t *size);
1225 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(
unsigned int size,
unsigned int dims);
1231 extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_clone(
const GEOSCoordSequence* s);
1236 extern void GEOS_DLL GEOSCoordSeq_destroy(GEOSCoordSequence* s);
1242 extern int GEOS_DLL GEOSCoordSeq_setX(GEOSCoordSequence* s,
1243 unsigned int idx,
double val);
1244 extern int GEOS_DLL GEOSCoordSeq_setY(GEOSCoordSequence* s,
1245 unsigned int idx,
double val);
1246 extern int GEOS_DLL GEOSCoordSeq_setZ(GEOSCoordSequence* s,
1247 unsigned int idx,
double val);
1248 extern int GEOS_DLL GEOSCoordSeq_setOrdinate(GEOSCoordSequence* s,
1249 unsigned int idx,
unsigned int dim,
double val);
1255 extern int GEOS_DLL GEOSCoordSeq_getX(
const GEOSCoordSequence* s,
1256 unsigned int idx,
double *val);
1257 extern int GEOS_DLL GEOSCoordSeq_getY(
const GEOSCoordSequence* s,
1258 unsigned int idx,
double *val);
1259 extern int GEOS_DLL GEOSCoordSeq_getZ(
const GEOSCoordSequence* s,
1260 unsigned int idx,
double *val);
1261 extern int GEOS_DLL GEOSCoordSeq_getOrdinate(
const GEOSCoordSequence* s,
1262 unsigned int idx,
unsigned int dim,
double *val);
1267 extern int GEOS_DLL GEOSCoordSeq_getSize(
const GEOSCoordSequence* s,
1268 unsigned int *size);
1269 extern int GEOS_DLL GEOSCoordSeq_getDimensions(
const GEOSCoordSequence* s,
1270 unsigned int *dims);
1286 extern double GEOS_DLL GEOSProject(
const GEOSGeometry *g,
1287 const GEOSGeometry* p);
1291 extern GEOSGeometry GEOS_DLL *GEOSInterpolate(
const GEOSGeometry *g,
1294 extern double GEOS_DLL GEOSProjectNormalized(
const GEOSGeometry *g,
1295 const GEOSGeometry* p);
1297 extern GEOSGeometry GEOS_DLL *GEOSInterpolateNormalized(
const GEOSGeometry *g,
1308 extern GEOSGeometry GEOS_DLL *GEOSBuffer(
const GEOSGeometry* g,
1309 double width,
int quadsegs);
1312 extern GEOSBufferParams GEOS_DLL *GEOSBufferParams_create();
1313 extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
1316 extern int GEOS_DLL GEOSBufferParams_setEndCapStyle(
1317 GEOSBufferParams* p,
1321 extern int GEOS_DLL GEOSBufferParams_setJoinStyle(
1322 GEOSBufferParams* p,
1326 extern int GEOS_DLL GEOSBufferParams_setMitreLimit(
1327 GEOSBufferParams* p,
1331 extern int GEOS_DLL GEOSBufferParams_setQuadrantSegments(
1332 GEOSBufferParams* p,
1337 extern int GEOS_DLL GEOSBufferParams_setSingleSided(
1338 GEOSBufferParams* p,
1342 extern GEOSGeometry GEOS_DLL *GEOSBufferWithParams(
1343 const GEOSGeometry* g,
1344 const GEOSBufferParams* p,
1348 extern GEOSGeometry GEOS_DLL *GEOSBufferWithStyle(
const GEOSGeometry* g,
1349 double width,
int quadsegs,
int endCapStyle,
int joinStyle,
1354 extern GEOSGeometry GEOS_DLL *GEOSSingleSidedBuffer(
const GEOSGeometry* g,
1355 double width,
int quadsegs,
int joinStyle,
double mitreLimit,
1365 extern GEOSGeometry GEOS_DLL *GEOSOffsetCurve(
const GEOSGeometry* g,
1366 double width,
int quadsegs,
int joinStyle,
double mitreLimit);
1376 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPoint(GEOSCoordSequence* s);
1377 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPoint();
1378 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLinearRing(GEOSCoordSequence* s);
1379 extern GEOSGeometry GEOS_DLL *GEOSGeom_createLineString(GEOSCoordSequence* s);
1380 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyLineString();
1387 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyPolygon();
1388 extern GEOSGeometry GEOS_DLL *GEOSGeom_createPolygon(GEOSGeometry* shell,
1389 GEOSGeometry** holes,
unsigned int nholes);
1390 extern GEOSGeometry GEOS_DLL *GEOSGeom_createCollection(
int type,
1391 GEOSGeometry* *geoms,
unsigned int ngeoms);
1392 extern GEOSGeometry GEOS_DLL *GEOSGeom_createEmptyCollection(
int type);
1394 extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(
const GEOSGeometry* g);
1402 extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
1410 extern GEOSGeometry GEOS_DLL *GEOSEnvelope(
const GEOSGeometry* g);
1411 extern GEOSGeometry GEOS_DLL *GEOSIntersection(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1412 extern GEOSGeometry GEOS_DLL *GEOSConvexHull(
const GEOSGeometry* g);
1413 extern GEOSGeometry GEOS_DLL *GEOSDifference(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1414 extern GEOSGeometry GEOS_DLL *GEOSSymDifference(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1415 extern GEOSGeometry GEOS_DLL *GEOSBoundary(
const GEOSGeometry* g);
1416 extern GEOSGeometry GEOS_DLL *GEOSUnion(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1417 extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(
const GEOSGeometry* g);
1420 extern GEOSGeometry GEOS_DLL *GEOSUnionCascaded(
const GEOSGeometry* g);
1421 extern GEOSGeometry GEOS_DLL *GEOSPointOnSurface(
const GEOSGeometry* g);
1422 extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(
const GEOSGeometry* g);
1423 extern GEOSGeometry GEOS_DLL *GEOSNode(
const GEOSGeometry* g);
1424 extern GEOSGeometry GEOS_DLL *GEOSClipByRect(
const GEOSGeometry* g,
double xmin,
double ymin,
double xmax,
double ymax);
1430 extern GEOSGeometry GEOS_DLL *GEOSPolygonize(
const GEOSGeometry *
const geoms[],
unsigned int ngeoms);
1431 extern GEOSGeometry GEOS_DLL *GEOSPolygonizer_getCutEdges(
const GEOSGeometry *
const geoms[],
unsigned int ngeoms);
1459 extern GEOSGeometry GEOS_DLL *GEOSPolygonize_full(
const GEOSGeometry* input,
1460 GEOSGeometry** cuts, GEOSGeometry** dangles, GEOSGeometry** invalid);
1462 extern GEOSGeometry GEOS_DLL *GEOSLineMerge(
const GEOSGeometry* g);
1463 extern GEOSGeometry GEOS_DLL *GEOSSimplify(
const GEOSGeometry* g,
double tolerance);
1464 extern GEOSGeometry GEOS_DLL *GEOSTopologyPreserveSimplify(
const GEOSGeometry* g,
1472 extern GEOSGeometry GEOS_DLL *GEOSGeom_extractUniquePoints(
1473 const GEOSGeometry* g);
1486 extern GEOSGeometry GEOS_DLL *GEOSSharedPaths(
const GEOSGeometry* g1,
1487 const GEOSGeometry* g2);
1493 extern GEOSGeometry GEOS_DLL *GEOSSnap(
const GEOSGeometry* g1,
1494 const GEOSGeometry* g2,
double tolerance);
1506 extern GEOSGeometry GEOS_DLL * GEOSDelaunayTriangulation(
1507 const GEOSGeometry *g,
1524 extern GEOSGeometry GEOS_DLL * GEOSVoronoiDiagram(
1525 const GEOSGeometry *g,
1526 const GEOSGeometry *env,
1536 extern char GEOS_DLL GEOSDisjoint(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1537 extern char GEOS_DLL GEOSTouches(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1538 extern char GEOS_DLL GEOSIntersects(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1539 extern char GEOS_DLL GEOSCrosses(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1540 extern char GEOS_DLL GEOSWithin(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1541 extern char GEOS_DLL GEOSContains(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1542 extern char GEOS_DLL GEOSOverlaps(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1543 extern char GEOS_DLL GEOSEquals(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1544 extern char GEOS_DLL GEOSEqualsExact(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
double tolerance);
1545 extern char GEOS_DLL GEOSCovers(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1546 extern char GEOS_DLL GEOSCoveredBy(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1557 extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(
const GEOSGeometry* g);
1559 extern void GEOS_DLL GEOSPreparedGeom_destroy(
const GEOSPreparedGeometry* g);
1561 extern char GEOS_DLL GEOSPreparedContains(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1562 extern char GEOS_DLL GEOSPreparedContainsProperly(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1563 extern char GEOS_DLL GEOSPreparedCoveredBy(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1564 extern char GEOS_DLL GEOSPreparedCovers(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1565 extern char GEOS_DLL GEOSPreparedCrosses(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1566 extern char GEOS_DLL GEOSPreparedDisjoint(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1567 extern char GEOS_DLL GEOSPreparedIntersects(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1568 extern char GEOS_DLL GEOSPreparedOverlaps(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1569 extern char GEOS_DLL GEOSPreparedTouches(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1570 extern char GEOS_DLL GEOSPreparedWithin(
const GEOSPreparedGeometry* pg1,
const GEOSGeometry* g2);
1582 extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(
size_t nodeCapacity);
1583 extern void GEOS_DLL GEOSSTRtree_insert(GEOSSTRtree *tree,
1584 const GEOSGeometry *g,
1586 extern void GEOS_DLL GEOSSTRtree_query(GEOSSTRtree *tree,
1587 const GEOSGeometry *g,
1588 GEOSQueryCallback callback,
1590 extern void GEOS_DLL GEOSSTRtree_iterate(GEOSSTRtree *tree,
1591 GEOSQueryCallback callback,
1593 extern char GEOS_DLL GEOSSTRtree_remove(GEOSSTRtree *tree,
1594 const GEOSGeometry *g,
1596 extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
1605 extern char GEOS_DLL GEOSisEmpty(
const GEOSGeometry* g);
1606 extern char GEOS_DLL GEOSisSimple(
const GEOSGeometry* g);
1607 extern char GEOS_DLL GEOSisRing(
const GEOSGeometry* g);
1608 extern char GEOS_DLL GEOSHasZ(
const GEOSGeometry* g);
1609 extern char GEOS_DLL GEOSisClosed(
const GEOSGeometry *g);
1618 extern char GEOS_DLL GEOSRelatePattern(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
const char *pat);
1621 extern char GEOS_DLL *GEOSRelate(
const GEOSGeometry* g1,
const GEOSGeometry* g2);
1624 extern char GEOS_DLL GEOSRelatePatternMatch(
const char *mat,
const char *pat);
1627 extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
const GEOSGeometry* g1,
1628 const GEOSGeometry* g2,
1638 extern char GEOS_DLL GEOSisValid(
const GEOSGeometry* g);
1641 extern char GEOS_DLL *GEOSisValidReason(
const GEOSGeometry *g);
1648 extern char GEOS_DLL GEOSisValidDetail(
const GEOSGeometry* g,
1650 char** reason, GEOSGeometry** location);
1659 extern char GEOS_DLL *GEOSGeomType(
const GEOSGeometry* g);
1662 extern int GEOS_DLL GEOSGeomTypeId(
const GEOSGeometry* g);
1665 extern int GEOS_DLL GEOSGetSRID(
const GEOSGeometry* g);
1667 extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g,
int SRID);
1675 extern int GEOS_DLL GEOSGetNumGeometries(
const GEOSGeometry* g);
1685 extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
const GEOSGeometry* g,
int n);
1688 extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
1691 extern int GEOS_DLL GEOSGetNumInteriorRings(
const GEOSGeometry* g);
1694 extern int GEOS_DLL GEOSGeomGetNumPoints(
const GEOSGeometry* g);
1697 extern int GEOS_DLL GEOSGeomGetX(
const GEOSGeometry *g,
double *x);
1698 extern int GEOS_DLL GEOSGeomGetY(
const GEOSGeometry *g,
double *y);
1705 extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
const GEOSGeometry* g,
int n);
1712 extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
const GEOSGeometry* g);
1715 extern int GEOS_DLL GEOSGetNumCoordinates(
const GEOSGeometry* g);
1721 extern const GEOSCoordSequence GEOS_DLL *GEOSGeom_getCoordSeq(
const GEOSGeometry* g);
1726 extern int GEOS_DLL GEOSGeom_getDimensions(
const GEOSGeometry* g);
1731 extern int GEOS_DLL GEOSGeom_getCoordinateDimension(
const GEOSGeometry* g);
1737 extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(
const GEOSGeometry *g,
int n);
1738 extern GEOSGeometry GEOS_DLL *GEOSGeomGetStartPoint(
const GEOSGeometry *g);
1739 extern GEOSGeometry GEOS_DLL *GEOSGeomGetEndPoint(
const GEOSGeometry *g);
1748 extern int GEOS_DLL GEOSArea(
const GEOSGeometry* g,
double *area);
1749 extern int GEOS_DLL GEOSLength(
const GEOSGeometry* g,
double *length);
1750 extern int GEOS_DLL GEOSDistance(
const GEOSGeometry* g1,
const GEOSGeometry* g2,
1752 extern int GEOS_DLL GEOSHausdorffDistance(
const GEOSGeometry *g1,
1753 const GEOSGeometry *g2,
double *dist);
1754 extern int GEOS_DLL GEOSHausdorffDistanceDensify(
const GEOSGeometry *g1,
1755 const GEOSGeometry *g2,
double densifyFrac,
double *dist);
1756 extern int GEOS_DLL GEOSGeomGetLength(
const GEOSGeometry *g,
double *length);
1761 extern GEOSCoordSequence GEOS_DLL *GEOSNearestPoints(
1762 const GEOSGeometry* g1,
const GEOSGeometry* g2);
1779 extern int GEOS_DLL GEOSOrientationIndex(
double Ax,
double Ay,
double Bx,
double By,
1780 double Px,
double Py);
1789 extern GEOSWKTReader GEOS_DLL *GEOSWKTReader_create();
1790 extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
1791 extern GEOSGeometry GEOS_DLL *GEOSWKTReader_read(GEOSWKTReader* reader,
const char *wkt);
1794 extern GEOSWKTWriter GEOS_DLL *GEOSWKTWriter_create();
1795 extern void GEOS_DLL GEOSWKTWriter_destroy(GEOSWKTWriter* writer);
1796 extern char GEOS_DLL *GEOSWKTWriter_write(GEOSWKTWriter* writer,
const GEOSGeometry* g);
1797 extern void GEOS_DLL GEOSWKTWriter_setTrim(GEOSWKTWriter *writer,
char trim);
1798 extern void GEOS_DLL GEOSWKTWriter_setRoundingPrecision(GEOSWKTWriter *writer,
int precision);
1799 extern void GEOS_DLL GEOSWKTWriter_setOutputDimension(GEOSWKTWriter *writer,
int dim);
1800 extern int GEOS_DLL GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer);
1801 extern void GEOS_DLL GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer,
int useOld3D);
1804 extern GEOSWKBReader GEOS_DLL *GEOSWKBReader_create();
1805 extern void GEOS_DLL GEOSWKBReader_destroy(GEOSWKBReader* reader);
1806 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_read(GEOSWKBReader* reader,
const unsigned char *wkb,
size_t size);
1807 extern GEOSGeometry GEOS_DLL *GEOSWKBReader_readHEX(GEOSWKBReader* reader,
const unsigned char *hex,
size_t size);
1810 extern GEOSWKBWriter GEOS_DLL *GEOSWKBWriter_create();
1811 extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
1814 extern unsigned char GEOS_DLL *GEOSWKBWriter_write(GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
1815 extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(GEOSWKBWriter* writer,
const GEOSGeometry* g,
size_t *size);
1821 extern int GEOS_DLL GEOSWKBWriter_getOutputDimension(
const GEOSWKBWriter* writer);
1822 extern void GEOS_DLL GEOSWKBWriter_setOutputDimension(GEOSWKBWriter* writer,
int newDimension);
1828 extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
const GEOSWKBWriter* writer);
1829 extern void GEOS_DLL GEOSWKBWriter_setByteOrder(GEOSWKBWriter* writer,
int byteOrder);
1834 extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
const GEOSWKBWriter* writer);
1835 extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter* writer,
const char writeSRID);
1841 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