GEOS 3.10.1
geos_c.h
Go to the documentation of this file.
1/************************************************************************
2 *
3 * C-Wrapper for GEOS library
4 *
5 * Copyright (C) 2010 2011 Sandro Santilli <strk@kbt.io>
6 * Copyright (C) 2005 Refractions Research Inc.
7 *
8 * This is free software; you can redistribute and/or modify it under
9 * the terms of the GNU Lesser General Public Licence as published
10 * by the Free Software Foundation.
11 * See the COPYING file for more information.
12 ***********************************************************************/
13
39#ifndef GEOS_C_H_INCLUDED
40#define GEOS_C_H_INCLUDED
41
42#ifndef __cplusplus
43# include <stddef.h> /* for size_t definition */
44#else
45# include <cstddef>
46using std::size_t;
47#endif
48
49#ifdef __cplusplus
50extern "C" {
51#endif
52
53/* ====================================================================== */
54/* Version */
55/* ====================================================================== */
56
59#ifndef GEOS_VERSION_MAJOR
60#define GEOS_VERSION_MAJOR 3
61#endif
62#ifndef GEOS_VERSION_MINOR
63#define GEOS_VERSION_MINOR 10
64#endif
65#ifndef GEOS_VERSION_PATCH
66#define GEOS_VERSION_PATCH 1
67#endif
68#ifndef GEOS_VERSION
69#define GEOS_VERSION "3.10.1"
70#endif
71#ifndef GEOS_JTS_PORT
72#define GEOS_JTS_PORT "1.18.0"
73#endif
74
75#define GEOS_CAPI_VERSION_MAJOR 1
76#define GEOS_CAPI_VERSION_MINOR 16
77#define GEOS_CAPI_VERSION_PATCH 0
78#define GEOS_CAPI_VERSION "3.10.1-CAPI-1.16.0"
79
80#define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
81#define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
82
85#include <geos/export.h>
86
87
94typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
95
105typedef void (*GEOSMessageHandler)(const char *fmt, ...);
106
117typedef void (*GEOSMessageHandler_r)(const char *message, void *userdata);
118
119/*
120* When we're included by geos_c.cpp, these types are #defined to the
121* C++ definitions via preprocessor. We don't touch them to allow the
122* compiler to cross-check the declarations. However, for all "normal"
123* C-API users, we need to define these types as "opaque" struct pointers, as
124* those clients don't have access to the original C++ headers, by design.
125*/
126#ifndef GEOSGeometry
127
139typedef struct GEOSGeom_t GEOSGeometry;
140
146typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
147
153typedef struct GEOSCoordSeq_t GEOSCoordSequence;
154
160typedef struct GEOSSTRtree_t GEOSSTRtree;
161
167typedef struct GEOSBufParams_t GEOSBufferParams;
168
174typedef struct GEOSMakeValidParams_t GEOSMakeValidParams;
175
176#endif
177
180/*
181* These are compatibility definitions for source compatibility
182* with GEOS 2.X clients relying on that type.
183*/
184typedef GEOSGeometry* GEOSGeom;
185typedef GEOSCoordSequence* GEOSCoordSeq;
186
214
225 GEOS_WKB_NDR = 1
227
241 GEOS_WKB_ISO = 2
243
251typedef void (*GEOSQueryCallback)(void *item, void *userdata);
252
270typedef int (*GEOSDistanceCallback)(
271 const void* item1,
272 const void* item2,
273 double* distance,
274 void* userdata);
275
276/* ========== Interruption ========== */
277
286typedef void (GEOSInterruptCallback)(void);
287
296
300extern void GEOS_DLL GEOS_interruptRequest(void);
301
305extern void GEOS_DLL GEOS_interruptCancel(void);
306
307/* ========== Initialization and Cleanup ========== */
308
314extern GEOSContextHandle_t GEOS_DLL GEOS_init_r(void);
315
321extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
322
330 GEOSContextHandle_t extHandle,
332
342 GEOSContextHandle_t extHandle,
344
353 GEOSContextHandle_t extHandle,
355 void *userData);
356
367 GEOSContextHandle_t extHandle,
369 void *userData);
370
371/* ========== Coordinate Sequence functions ========== */
372
375 GEOSContextHandle_t handle,
376 unsigned int size,
377 unsigned int dims);
378
381 GEOSContextHandle_t handle,
382 const double* buf,
383 unsigned int size,
384 int hasZ,
385 int hasM);
386
389 GEOSContextHandle_t handle,
390 const double* x,
391 const double* y,
392 const double* z,
393 const double* m,
394 unsigned int size);
395
397extern int GEOS_DLL GEOSCoordSeq_copyToBuffer_r(
398 GEOSContextHandle_t handle,
399 const GEOSCoordSequence* s,
400 double* buf,
401 int hasZ,
402 int hasM);
403
405extern int GEOS_DLL GEOSCoordSeq_copyToArrays_r(
406 GEOSContextHandle_t handle,
407 const GEOSCoordSequence* s,
408 double* x,
409 double* y,
410 double* z,
411 double* m);
412
415 GEOSContextHandle_t handle,
416 const GEOSCoordSequence* s);
417
419extern void GEOS_DLL GEOSCoordSeq_destroy_r(
420 GEOSContextHandle_t handle,
422
424extern int GEOS_DLL GEOSCoordSeq_setX_r(
425 GEOSContextHandle_t handle,
426 GEOSCoordSequence* s, unsigned int idx,
427 double val);
428
430extern int GEOS_DLL GEOSCoordSeq_setY_r(
431 GEOSContextHandle_t handle,
432 GEOSCoordSequence* s, unsigned int idx,
433 double val);
434
436extern int GEOS_DLL GEOSCoordSeq_setZ_r(
437 GEOSContextHandle_t handle,
438 GEOSCoordSequence* s, unsigned int idx,
439 double val);
440
442extern int GEOS_DLL GEOSCoordSeq_setXY_r(
443 GEOSContextHandle_t handle,
444 GEOSCoordSequence* s, unsigned int idx,
445 double x, double y);
446
448extern int GEOS_DLL GEOSCoordSeq_setXYZ_r(
449 GEOSContextHandle_t handle,
450 GEOSCoordSequence* s, unsigned int idx,
451 double x, double y, double z);
452
454extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(
455 GEOSContextHandle_t handle,
457 unsigned int idx,
458 unsigned int dim, double val);
459
461extern int GEOS_DLL GEOSCoordSeq_getX_r(
462 GEOSContextHandle_t handle,
463 const GEOSCoordSequence* s,
464 unsigned int idx, double *val);
465
467extern int GEOS_DLL GEOSCoordSeq_getY_r(
468 GEOSContextHandle_t handle,
469 const GEOSCoordSequence* s,
470 unsigned int idx, double *val);
471
473extern int GEOS_DLL GEOSCoordSeq_getZ_r(
474 GEOSContextHandle_t handle,
475 const GEOSCoordSequence* s,
476 unsigned int idx, double *val);
477
479extern int GEOS_DLL GEOSCoordSeq_getXY_r(
480 GEOSContextHandle_t handle,
481 const GEOSCoordSequence* s,
482 unsigned int idx,
483 double *x, double *y);
484
486extern int GEOS_DLL GEOSCoordSeq_getXYZ_r(
487 GEOSContextHandle_t handle,
488 const GEOSCoordSequence* s,
489 unsigned int idx,
490 double *x, double *y, double *z);
491
493extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(
494 GEOSContextHandle_t handle,
495 const GEOSCoordSequence* s,
496 unsigned int idx,
497 unsigned int dim, double *val);
498
500extern int GEOS_DLL GEOSCoordSeq_getSize_r(
501 GEOSContextHandle_t handle,
502 const GEOSCoordSequence* s,
503 unsigned int *size);
504
507 GEOSContextHandle_t handle,
508 const GEOSCoordSequence* s,
509 unsigned int *dims);
510
512extern int GEOS_DLL GEOSCoordSeq_isCCW_r(
513 GEOSContextHandle_t handle,
514 const GEOSCoordSequence* s,
515 char* is_ccw);
516
517/* ========= Linear referencing functions ========= */
518
520extern double GEOS_DLL GEOSProject_r(
521 GEOSContextHandle_t handle,
522 const GEOSGeometry *line,
523 const GEOSGeometry *point);
524
527 GEOSContextHandle_t handle,
528 const GEOSGeometry *line,
529 double d);
530
532extern double GEOS_DLL GEOSProjectNormalized_r(
533 GEOSContextHandle_t handle,
534 const GEOSGeometry *g,
535 const GEOSGeometry *p);
536
539 GEOSContextHandle_t handle,
540 const GEOSGeometry *g,
541 double d);
542
543/* ========== Buffer related functions ========== */
544
546extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(
547 GEOSContextHandle_t handle,
548 const GEOSGeometry* g,
549 double width, int quadsegs);
550
556
559
562
566
588
591 GEOSContextHandle_t handle);
592
594extern void GEOS_DLL GEOSBufferParams_destroy_r(
595 GEOSContextHandle_t handle,
596 GEOSBufferParams* parms);
597
600 GEOSContextHandle_t handle,
602 int style);
603
606 GEOSContextHandle_t handle,
608 int joinStyle);
609
612 GEOSContextHandle_t handle,
614 double mitreLimit);
615
618 GEOSContextHandle_t handle,
620 int quadSegs);
621
624 GEOSContextHandle_t handle,
626 int singleSided);
627
630 GEOSContextHandle_t handle,
631 const GEOSGeometry* g,
632 const GEOSBufferParams* p,
633 double width);
634
637 GEOSContextHandle_t handle,
638 const GEOSGeometry* g,
639 double width, int quadsegs, int endCapStyle,
640 int joinStyle, double mitreLimit);
641
644 GEOSContextHandle_t handle,
645 const GEOSGeometry* g,
646 double tolerance);
647
650 GEOSContextHandle_t handle,
651 const GEOSGeometry* g, double width, int quadsegs,
652 int joinStyle, double mitreLimit);
653
654
655/* ========= Geometry Constructors ========= */
656
659 GEOSContextHandle_t handle,
661
664 GEOSContextHandle_t handle,
665 double x, double y);
666
669 GEOSContextHandle_t handle);
670
673 GEOSContextHandle_t handle,
675
678 GEOSContextHandle_t handle,
680
683 GEOSContextHandle_t handle);
684
687 GEOSContextHandle_t handle);
688
691 GEOSContextHandle_t handle,
692 GEOSGeometry* shell,
693 GEOSGeometry** holes,
694 unsigned int nholes);
695
698 GEOSContextHandle_t handle,
699 int type,
700 GEOSGeometry* *geoms,
701 unsigned int ngeoms);
702
705 GEOSContextHandle_t handle, int type);
706
709 GEOSContextHandle_t handle,
710 const GEOSGeometry* g);
711
712/* ========= Memory management ========= */
713
715extern void GEOS_DLL GEOSGeom_destroy_r(
716 GEOSContextHandle_t handle,
717 GEOSGeometry* g);
718
719/* ========= Topology Operations ========= */
720
723 GEOSContextHandle_t handle,
724 const GEOSGeometry* g);
725
728 GEOSContextHandle_t handle,
729 const GEOSGeometry* g1,
730 const GEOSGeometry* g2);
731
734 GEOSContextHandle_t handle,
735 const GEOSGeometry* g1,
736 const GEOSGeometry* g2,
737 double gridSize);
738
741 GEOSContextHandle_t handle,
742 const GEOSGeometry* g);
743
746 GEOSContextHandle_t handle,
747 const GEOSGeometry* g);
748
751 GEOSContextHandle_t handle,
752 const GEOSGeometry* g,
753 double tolerance);
754
757 GEOSContextHandle_t handle,
758 const GEOSGeometry* g,
759 const GEOSGeometry* boundary,
760 double tolerance);
761
764 GEOSContextHandle_t handle,
765 const GEOSGeometry* g);
766
769 GEOSContextHandle_t handle,
770 const GEOSGeometry* g);
771
773extern int GEOS_DLL GEOSMinimumClearance_r(
774 GEOSContextHandle_t handle,
775 const GEOSGeometry* g,
776 double* distance);
777
780 GEOSContextHandle_t handle,
781 const GEOSGeometry* g1,
782 const GEOSGeometry* g2);
783
786 GEOSContextHandle_t handle,
787 const GEOSGeometry* g1,
788 const GEOSGeometry* g2,
789 double gridSize);
790
793 GEOSContextHandle_t handle,
794 const GEOSGeometry* g1,
795 const GEOSGeometry* g2);
796
799 GEOSContextHandle_t handle,
800 const GEOSGeometry* g1,
801 const GEOSGeometry* g2,
802 double gridSize);
803
806 GEOSContextHandle_t handle,
807 const GEOSGeometry* g);
808
810extern GEOSGeometry GEOS_DLL *GEOSUnion_r(
811 GEOSContextHandle_t handle,
812 const GEOSGeometry* g1,
813 const GEOSGeometry* g2);
814
817 GEOSContextHandle_t handle,
818 const GEOSGeometry* g1,
819 const GEOSGeometry* g2,
820 double gridSize);
821
824 GEOSContextHandle_t handle,
825 const GEOSGeometry* g);
826
829 GEOSContextHandle_t handle,
830 const GEOSGeometry* g,
831 double gridSize);
832
835 GEOSContextHandle_t handle,
836 const GEOSGeometry* g);
837
840 GEOSContextHandle_t handle,
841 const GEOSGeometry* g);
842
845 GEOSContextHandle_t handle,
846 const GEOSGeometry* g);
847
850 GEOSContextHandle_t handle,
851 const GEOSGeometry* g,
852 double* radius,
853 GEOSGeometry** center);
854
856extern GEOSGeometry GEOS_DLL *GEOSNode_r(
857 GEOSContextHandle_t handle,
858 const GEOSGeometry* g);
859
862 GEOSContextHandle_t handle,
863 const GEOSGeometry* g,
864 double xmin, double ymin,
865 double xmax, double ymax);
866
869 GEOSContextHandle_t handle,
870 const GEOSGeometry *const geoms[],
871 unsigned int ngeoms);
872
875 GEOSContextHandle_t handle,
876 const GEOSGeometry *const geoms[],
877 unsigned int ngems);
878
881 GEOSContextHandle_t handle,
882 const GEOSGeometry * const geoms[],
883 unsigned int ngeoms);
884
887 GEOSContextHandle_t handle,
888 const GEOSGeometry* input,
889 GEOSGeometry** cuts,
890 GEOSGeometry** dangles,
891 GEOSGeometry** invalidRings);
892
895 GEOSContextHandle_t handle,
896 const GEOSGeometry* g);
897
900 GEOSContextHandle_t handle,
901 const GEOSGeometry* g);
902
905 GEOSContextHandle_t handle,
906 const GEOSGeometry* g);
907
910 GEOSContextHandle_t handle,
911 const GEOSGeometry* g,
912 double tolerance);
913
916 GEOSContextHandle_t handle,
917 const GEOSGeometry* g, double tolerance);
918
921 GEOSContextHandle_t handle,
922 const GEOSGeometry* g);
923
926 GEOSContextHandle_t handle,
927 const GEOSGeometry* g1,
928 const GEOSGeometry* g2);
929
931extern GEOSGeometry GEOS_DLL *GEOSSnap_r(
932 GEOSContextHandle_t handle,
933 const GEOSGeometry* g1,
934 const GEOSGeometry* g2,
935 double tolerance);
936
939 GEOSContextHandle_t handle,
940 const GEOSGeometry *g,
941 double tolerance,
942 int onlyEdges);
943
946 GEOSContextHandle_t handle,
947 const GEOSGeometry *g);
948
951 GEOSContextHandle_t extHandle,
952 const GEOSGeometry *g,
953 const GEOSGeometry *env,
954 double tolerance,
955 int onlyEdges);
956
958extern int GEOS_DLL GEOSSegmentIntersection_r(
959 GEOSContextHandle_t extHandle,
960 double ax0, double ay0,
961 double ax1, double ay1,
962 double bx0, double by0,
963 double bx1, double by1,
964 double* cx, double* cy);
965
966/* ========= Binary predicates ========= */
967
969extern char GEOS_DLL GEOSDisjoint_r(
970 GEOSContextHandle_t handle,
971 const GEOSGeometry* g1,
972 const GEOSGeometry* g2);
973
975extern char GEOS_DLL GEOSTouches_r(
976 GEOSContextHandle_t handle,
977 const GEOSGeometry* g1,
978 const GEOSGeometry* g2);
979
981extern char GEOS_DLL GEOSIntersects_r(
982 GEOSContextHandle_t handle,
983 const GEOSGeometry* g1,
984 const GEOSGeometry* g2);
985
987extern char GEOS_DLL GEOSCrosses_r(
988 GEOSContextHandle_t handle,
989 const GEOSGeometry* g1,
990 const GEOSGeometry* g2);
991
993extern char GEOS_DLL GEOSWithin_r(
994 GEOSContextHandle_t handle,
995 const GEOSGeometry* g1,
996 const GEOSGeometry* g2);
997
999extern char GEOS_DLL GEOSContains_r(
1000 GEOSContextHandle_t handle,
1001 const GEOSGeometry* g1,
1002 const GEOSGeometry* g2);
1003
1005extern char GEOS_DLL GEOSOverlaps_r(
1006 GEOSContextHandle_t handle,
1007 const GEOSGeometry* g1,
1008 const GEOSGeometry* g2);
1009
1011extern char GEOS_DLL GEOSEquals_r(
1012 GEOSContextHandle_t handle,
1013 const GEOSGeometry* g1,
1014 const GEOSGeometry* g2);
1015
1017extern char GEOS_DLL GEOSEqualsExact_r(
1018 GEOSContextHandle_t handle,
1019 const GEOSGeometry* g1,
1020 const GEOSGeometry* g2,
1021 double tolerance);
1022
1024extern char GEOS_DLL GEOSCovers_r(
1025 GEOSContextHandle_t handle,
1026 const GEOSGeometry* g1,
1027 const GEOSGeometry* g2);
1028
1030extern char GEOS_DLL GEOSCoveredBy_r(
1031 GEOSContextHandle_t handle,
1032 const GEOSGeometry* g1,
1033 const GEOSGeometry* g2);
1034
1035/* ========= Prepared Geometry Binary Predicates ========== */
1036
1039 GEOSContextHandle_t handle,
1040 const GEOSGeometry* g);
1041
1043extern void GEOS_DLL GEOSPreparedGeom_destroy_r(
1044 GEOSContextHandle_t handle,
1045 const GEOSPreparedGeometry* g);
1046
1048extern char GEOS_DLL GEOSPreparedContains_r(
1049 GEOSContextHandle_t handle,
1050 const GEOSPreparedGeometry* pg1,
1051 const GEOSGeometry* g2);
1052
1055 GEOSContextHandle_t handle,
1056 const GEOSPreparedGeometry* pg1,
1057 const GEOSGeometry* g2);
1058
1060extern char GEOS_DLL GEOSPreparedCoveredBy_r(
1061 GEOSContextHandle_t handle,
1062 const GEOSPreparedGeometry* pg1,
1063 const GEOSGeometry* g2);
1064
1066extern char GEOS_DLL GEOSPreparedCovers_r(
1067 GEOSContextHandle_t handle,
1068 const GEOSPreparedGeometry* pg1,
1069 const GEOSGeometry* g2);
1070
1072extern char GEOS_DLL GEOSPreparedCrosses_r(
1073 GEOSContextHandle_t handle,
1074 const GEOSPreparedGeometry* pg1,
1075 const GEOSGeometry* g2);
1076
1078extern char GEOS_DLL GEOSPreparedDisjoint_r(
1079 GEOSContextHandle_t handle,
1080 const GEOSPreparedGeometry* pg1,
1081 const GEOSGeometry* g2);
1082
1084extern char GEOS_DLL GEOSPreparedIntersects_r(
1085 GEOSContextHandle_t handle,
1086 const GEOSPreparedGeometry* pg1,
1087 const GEOSGeometry* g2);
1088
1090extern char GEOS_DLL GEOSPreparedOverlaps_r(
1091 GEOSContextHandle_t handle,
1092 const GEOSPreparedGeometry* pg1,
1093 const GEOSGeometry* g2);
1094
1096extern char GEOS_DLL GEOSPreparedTouches_r(
1097 GEOSContextHandle_t handle,
1098 const GEOSPreparedGeometry* pg1,
1099 const GEOSGeometry* g2);
1100
1102extern char GEOS_DLL GEOSPreparedWithin_r(
1103 GEOSContextHandle_t handle,
1104 const GEOSPreparedGeometry* pg1,
1105 const GEOSGeometry* g2);
1106
1109 GEOSContextHandle_t handle,
1110 const GEOSPreparedGeometry* pg1,
1111 const GEOSGeometry* g2);
1112
1114extern int GEOS_DLL GEOSPreparedDistance_r(
1115 GEOSContextHandle_t handle,
1116 const GEOSPreparedGeometry* pg1,
1117 const GEOSGeometry* g2, double *dist);
1118
1120extern char GEOS_DLL GEOSPreparedDistanceWithin_r(
1121 GEOSContextHandle_t handle,
1122 const GEOSPreparedGeometry* pg1,
1123 const GEOSGeometry* g2, double dist);
1124
1125/* ========== STRtree ========== */
1126
1129 GEOSContextHandle_t handle,
1130 size_t nodeCapacity);
1131
1133extern void GEOS_DLL GEOSSTRtree_insert_r(
1134 GEOSContextHandle_t handle,
1135 GEOSSTRtree *tree,
1136 const GEOSGeometry *g,
1137 void *item);
1138
1140extern void GEOS_DLL GEOSSTRtree_query_r(
1141 GEOSContextHandle_t handle,
1142 GEOSSTRtree *tree,
1143 const GEOSGeometry *g,
1144 GEOSQueryCallback callback,
1145 void *userdata);
1146
1149 GEOSContextHandle_t handle,
1150 GEOSSTRtree *tree,
1151 const GEOSGeometry* geom);
1152
1154extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(
1155 GEOSContextHandle_t handle,
1156 GEOSSTRtree *tree,
1157 const void* item,
1158 const GEOSGeometry* itemEnvelope,
1159 GEOSDistanceCallback distancefn,
1160 void* userdata);
1161
1163extern void GEOS_DLL GEOSSTRtree_iterate_r(
1164 GEOSContextHandle_t handle,
1165 GEOSSTRtree *tree,
1166 GEOSQueryCallback callback,
1167 void *userdata);
1168
1170extern char GEOS_DLL GEOSSTRtree_remove_r(
1171 GEOSContextHandle_t handle,
1172 GEOSSTRtree *tree,
1173 const GEOSGeometry *g,
1174 void *item);
1175
1177extern void GEOS_DLL GEOSSTRtree_destroy_r(
1178 GEOSContextHandle_t handle,
1179 GEOSSTRtree *tree);
1180
1181
1182/* ========= Unary predicate ========= */
1183
1185extern char GEOS_DLL GEOSisEmpty_r(
1186 GEOSContextHandle_t handle,
1187 const GEOSGeometry* g);
1188
1190extern char GEOS_DLL GEOSisSimple_r(
1191 GEOSContextHandle_t handle,
1192 const GEOSGeometry* g);
1193
1195extern char GEOS_DLL GEOSisRing_r(
1196 GEOSContextHandle_t handle,
1197 const GEOSGeometry* g);
1198
1200extern char GEOS_DLL GEOSHasZ_r(
1201 GEOSContextHandle_t handle,
1202 const GEOSGeometry* g);
1203
1205extern char GEOS_DLL GEOSisClosed_r(
1206 GEOSContextHandle_t handle,
1207 const GEOSGeometry *g);
1208
1209/* ========== Dimensionally Extended 9 Intersection Model ========== */
1210
1227
1229extern char GEOS_DLL GEOSRelatePattern_r(
1230 GEOSContextHandle_t handle,
1231 const GEOSGeometry* g1,
1232 const GEOSGeometry* g2,
1233 const char *pat);
1234
1236extern char GEOS_DLL *GEOSRelate_r(
1237 GEOSContextHandle_t handle,
1238 const GEOSGeometry* g1,
1239 const GEOSGeometry* g2);
1240
1242extern char GEOS_DLL GEOSRelatePatternMatch_r(
1243 GEOSContextHandle_t handle,
1244 const char *mat,
1245 const char *pat);
1246
1248extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(
1249 GEOSContextHandle_t handle,
1250 const GEOSGeometry* g1,
1251 const GEOSGeometry* g2,
1252 int bnr);
1253
1254/* ========= Validity checking ========= */
1255
1258{
1262
1264extern char GEOS_DLL GEOSisValid_r(
1265 GEOSContextHandle_t handle,
1266 const GEOSGeometry* g);
1267
1269extern char GEOS_DLL *GEOSisValidReason_r(
1270 GEOSContextHandle_t handle,
1271 const GEOSGeometry* g);
1272
1274extern char GEOS_DLL GEOSisValidDetail_r(
1275 GEOSContextHandle_t handle,
1276 const GEOSGeometry* g,
1277 int flags,
1278 char** reason,
1279 GEOSGeometry** location);
1280
1281/* ========== Make Valid ========== */
1282
1299
1302 GEOSContextHandle_t extHandle);
1303
1306 GEOSContextHandle_t handle,
1307 GEOSMakeValidParams* parms);
1308
1311 GEOSContextHandle_t handle,
1313 int style);
1314
1317 GEOSContextHandle_t handle,
1319 enum GEOSMakeValidMethods method);
1320
1323 GEOSContextHandle_t handle,
1324 const GEOSGeometry* g);
1325
1328 GEOSContextHandle_t handle,
1329 const GEOSGeometry* g,
1330 const GEOSMakeValidParams* makeValidParams);
1331
1332
1333/* ========== Geometry info ========== */
1334
1336/* Return NULL on exception, result must be freed by caller. */
1337extern char GEOS_DLL *GEOSGeomType_r(
1338 GEOSContextHandle_t handle,
1339 const GEOSGeometry* g);
1340
1342extern int GEOS_DLL GEOSGeomTypeId_r(
1343 GEOSContextHandle_t handle,
1344 const GEOSGeometry* g);
1345
1347extern int GEOS_DLL GEOSGetSRID_r(
1348 GEOSContextHandle_t handle,
1349 const GEOSGeometry* g);
1350
1352extern void GEOS_DLL GEOSSetSRID_r(
1353 GEOSContextHandle_t handle,
1354 GEOSGeometry* g, int SRID);
1355
1357extern void GEOS_DLL *GEOSGeom_getUserData_r(
1358 GEOSContextHandle_t handle,
1359 const GEOSGeometry* g);
1360
1362extern void GEOS_DLL GEOSGeom_setUserData_r(
1363 GEOSContextHandle_t handle,
1364 GEOSGeometry* g,
1365 void* userData);
1366
1368extern int GEOS_DLL GEOSGetNumGeometries_r(
1369 GEOSContextHandle_t handle,
1370 const GEOSGeometry* g);
1371
1373extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1374 GEOSContextHandle_t handle,
1375 const GEOSGeometry* g, int n);
1376
1378extern int GEOS_DLL GEOSNormalize_r(
1379 GEOSContextHandle_t handle,
1380 GEOSGeometry* g);
1381
1394
1397 GEOSContextHandle_t handle,
1398 const GEOSGeometry *g,
1399 double gridSize,
1400 int flags);
1401
1403extern double GEOS_DLL GEOSGeom_getPrecision_r(
1404 GEOSContextHandle_t handle,
1405 const GEOSGeometry *g);
1406
1408extern int GEOS_DLL GEOSGetNumInteriorRings_r(
1409 GEOSContextHandle_t handle,
1410 const GEOSGeometry* g);
1411
1413extern int GEOS_DLL GEOSGeomGetNumPoints_r(
1414 GEOSContextHandle_t handle,
1415 const GEOSGeometry* g);
1416
1418extern int GEOS_DLL GEOSGeomGetX_r(
1419 GEOSContextHandle_t handle,
1420 const GEOSGeometry *g,
1421 double *x);
1422
1424extern int GEOS_DLL GEOSGeomGetY_r(
1425 GEOSContextHandle_t handle,
1426 const GEOSGeometry *g,
1427 double *y);
1428
1430extern int GEOS_DLL GEOSGeomGetZ_r(
1431 GEOSContextHandle_t handle,
1432 const GEOSGeometry *g,
1433 double *z);
1434
1437 GEOSContextHandle_t handle,
1438 const GEOSGeometry* g, int n);
1439
1442 GEOSContextHandle_t handle,
1443 const GEOSGeometry* g);
1444
1446extern int GEOS_DLL GEOSGetNumCoordinates_r(
1447 GEOSContextHandle_t handle,
1448 const GEOSGeometry* g);
1449
1452 GEOSContextHandle_t handle,
1453 const GEOSGeometry* g);
1454
1456extern int GEOS_DLL GEOSGeom_getDimensions_r(
1457 GEOSContextHandle_t handle,
1458 const GEOSGeometry* g);
1459
1462 GEOSContextHandle_t handle,
1463 const GEOSGeometry* g);
1464
1466extern int GEOS_DLL GEOSGeom_getXMin_r(
1467 GEOSContextHandle_t handle,
1468 const GEOSGeometry* g,
1469 double* value);
1470
1472extern int GEOS_DLL GEOSGeom_getYMin_r(
1473 GEOSContextHandle_t handle,
1474 const GEOSGeometry* g,
1475 double* value);
1476
1478extern int GEOS_DLL GEOSGeom_getXMax_r(
1479 GEOSContextHandle_t handle,
1480 const GEOSGeometry* g,
1481 double* value);
1482
1484extern int GEOS_DLL GEOSGeom_getYMax_r(
1485 GEOSContextHandle_t handle,
1486 const GEOSGeometry* g,
1487 double* value);
1488
1491 GEOSContextHandle_t handle,
1492 const GEOSGeometry *g,
1493 int n);
1494
1497 GEOSContextHandle_t handle,
1498 const GEOSGeometry *g);
1499
1502 GEOSContextHandle_t handle,
1503 const GEOSGeometry *g);
1504
1505/* ========= Misc functions ========= */
1506
1508extern int GEOS_DLL GEOSArea_r(
1509 GEOSContextHandle_t handle,
1510 const GEOSGeometry* g,
1511 double *area);
1512
1514extern int GEOS_DLL GEOSLength_r(
1515 GEOSContextHandle_t handle,
1516 const GEOSGeometry* g,
1517 double *length);
1518
1520extern int GEOS_DLL GEOSDistance_r(
1521 GEOSContextHandle_t handle,
1522 const GEOSGeometry* g1,
1523 const GEOSGeometry* g2,
1524 double *dist);
1525
1527extern char GEOS_DLL GEOSDistanceWithin_r(
1528 GEOSContextHandle_t handle,
1529 const GEOSGeometry* g1,
1530 const GEOSGeometry* g2,
1531 double dist);
1532
1534extern int GEOS_DLL GEOSDistanceIndexed_r(
1535 GEOSContextHandle_t handle,
1536 const GEOSGeometry* g1,
1537 const GEOSGeometry* g2,
1538 double *dist);
1539
1541extern int GEOS_DLL GEOSHausdorffDistance_r(
1542 GEOSContextHandle_t handle,
1543 const GEOSGeometry *g1,
1544 const GEOSGeometry *g2,
1545 double *dist);
1546
1549 GEOSContextHandle_t handle,
1550 const GEOSGeometry *g1,
1551 const GEOSGeometry *g2,
1552 double densifyFrac, double *dist);
1553
1555extern int GEOS_DLL GEOSFrechetDistance_r(
1556 GEOSContextHandle_t handle,
1557 const GEOSGeometry *g1,
1558 const GEOSGeometry *g2,
1559 double *dist);
1560
1563 GEOSContextHandle_t handle,
1564 const GEOSGeometry *g1,
1565 const GEOSGeometry *g2,
1566 double densifyFrac,
1567 double *dist);
1568
1570extern int GEOS_DLL GEOSGeomGetLength_r(
1571 GEOSContextHandle_t handle,
1572 const GEOSGeometry *g,
1573 double *length);
1574
1577 GEOSContextHandle_t handle,
1578 const GEOSGeometry* g1,
1579 const GEOSGeometry* g2);
1580
1581
1582/* ========= Algorithms ========= */
1583
1585extern int GEOS_DLL GEOSOrientationIndex_r(
1586 GEOSContextHandle_t handle,
1587 double Ax, double Ay,
1588 double Bx, double By,
1589 double Px, double Py);
1590
1591
1592/* ========== Reader and Writer APIs ========== */
1593
1594#ifndef GEOSWKTReader
1595
1601typedef struct GEOSWKTReader_t GEOSWKTReader;
1602
1608typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1609
1615typedef struct GEOSWKBReader_t GEOSWKBReader;
1616
1622typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1623
1629typedef struct GEOSGeoJSONReader_t GEOSGeoJSONReader;
1630
1636typedef struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter;
1637
1638#endif
1639
1640/* ========== WKT Reader ========== */
1641
1644 GEOSContextHandle_t handle);
1645
1648 GEOSWKTReader* reader);
1649
1652 GEOSContextHandle_t handle,
1653 GEOSWKTReader* reader,
1654 const char *wkt);
1655
1656/* ========== WKT Writer ========== */
1657
1660 GEOSContextHandle_t handle);
1661
1663extern void GEOS_DLL GEOSWKTWriter_destroy_r(
1664 GEOSContextHandle_t handle,
1665 GEOSWKTWriter* writer);
1666
1668extern char GEOS_DLL *GEOSWKTWriter_write_r(
1669 GEOSContextHandle_t handle,
1670 GEOSWKTWriter* writer,
1671 const GEOSGeometry* g);
1672
1674extern void GEOS_DLL GEOSWKTWriter_setTrim_r(
1675 GEOSContextHandle_t handle,
1676 GEOSWKTWriter *writer,
1677 char trim);
1678
1681 GEOSContextHandle_t handle,
1682 GEOSWKTWriter *writer,
1683 int precision);
1684
1687 GEOSContextHandle_t handle,
1688 GEOSWKTWriter *writer,
1689 int dim);
1690
1693 GEOSContextHandle_t handle,
1694 GEOSWKTWriter *writer);
1695
1697extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(
1698 GEOSContextHandle_t handle,
1699 GEOSWKTWriter *writer,
1700 int useOld3D);
1701
1702/* ========== WKB Reader ========== */
1703
1706 GEOSContextHandle_t handle);
1707
1709extern void GEOS_DLL GEOSWKBReader_destroy_r(
1710 GEOSContextHandle_t handle,
1711 GEOSWKBReader* reader);
1712
1715 GEOSContextHandle_t handle,
1716 GEOSWKBReader* reader,
1717 const unsigned char *wkb,
1718 size_t size);
1719
1722 GEOSContextHandle_t handle,
1723 GEOSWKBReader* reader,
1724 const unsigned char *hex,
1725 size_t size);
1726
1727/* ========== WKB Writer ========== */
1728
1731 GEOSContextHandle_t handle);
1732
1734extern void GEOS_DLL GEOSWKBWriter_destroy_r(
1735 GEOSContextHandle_t handle,
1736 GEOSWKBWriter* writer);
1737
1739extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
1740 GEOSContextHandle_t handle,
1741 GEOSWKBWriter* writer,
1742 const GEOSGeometry* g,
1743 size_t *size);
1744
1746extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
1747 GEOSContextHandle_t handle,
1748 GEOSWKBWriter* writer,
1749 const GEOSGeometry* g,
1750 size_t *size);
1751
1754 GEOSContextHandle_t handle,
1755 const GEOSWKBWriter* writer);
1756
1759 GEOSContextHandle_t handle,
1760 GEOSWKBWriter* writer, int newDimension);
1761
1764 GEOSContextHandle_t handle,
1765 const GEOSWKBWriter* writer);
1766
1768extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(
1769 GEOSContextHandle_t handle,
1770 GEOSWKBWriter* writer,
1771 int byteOrder);
1772
1774extern int GEOS_DLL GEOSWKBWriter_getFlavor_r(
1775 GEOSContextHandle_t handle,
1776 const GEOSWKBWriter* writer);
1777
1779extern void GEOS_DLL GEOSWKBWriter_setFlavor_r(
1780 GEOSContextHandle_t handle,
1781 GEOSWKBWriter* writer,
1782 int flavor);
1783
1786 GEOSContextHandle_t handle,
1787 const GEOSWKBWriter* writer);
1788
1791 GEOSContextHandle_t handle,
1792 GEOSWKBWriter* writer, const char writeSRID);
1793
1794/* ========== GeoJSON Reader ========== */
1795
1798 GEOSContextHandle_t handle);
1799
1802 GEOSGeoJSONReader* reader);
1803
1806 GEOSContextHandle_t handle,
1807 GEOSGeoJSONReader* reader,
1808 const char *geojson);
1809
1810/* ========== GeoJSON Writer ========== */
1811
1814 GEOSContextHandle_t handle);
1815
1818 GEOSGeoJSONWriter* writer);
1819
1822 GEOSContextHandle_t handle,
1823 GEOSGeoJSONWriter* writer,
1824 const GEOSGeometry* g,
1825 int indent);
1826
1828extern void GEOS_DLL GEOSFree_r(
1829 GEOSContextHandle_t handle,
1830 void *buffer);
1831
1838extern const char GEOS_DLL *GEOSversion(void);
1839
1840/*
1841* External code to GEOS can define GEOS_USE_ONLY_R_API
1842* to strip the non-reentrant API functions from this header,
1843* leaving only the "_r" compatible variants.
1844*/
1845#ifndef GEOS_USE_ONLY_R_API
1846
1847/* ========== Initialization, cleanup, version ========== */
1848
1860extern void GEOS_DLL initGEOS(
1861 GEOSMessageHandler notice_function,
1862 GEOSMessageHandler error_function);
1863
1868extern void GEOS_DLL finishGEOS(void);
1869
1870/* ========= Coordinate Sequence functions ========= */
1871
1878extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(unsigned int size, unsigned int dims);
1879
1888extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromBuffer(const double* buf, unsigned int size, int hasZ, int hasM);
1889
1899extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromArrays(const double* x, const double* y, const double* z, const double* m, unsigned int size);
1900
1909extern int GEOS_DLL GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence* s, double* buf, int hasZ, int hasM);
1910
1920extern int GEOS_DLL GEOSCoordSeq_copyToArrays(const GEOSCoordSequence* s, double* x, double* y, double* z, double* m);
1921
1928
1934
1943 unsigned int idx, double val);
1952 unsigned int idx, double val);
1961 unsigned int idx, double val);
1971 unsigned int idx, double x, double y);
1982 unsigned int idx, double x, double y, double z);
1992 unsigned int idx, unsigned int dim, double val);
1993
2001extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
2002 unsigned int idx, double *val);
2003
2011extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
2012 unsigned int idx, double *val);
2020extern int GEOS_DLL GEOSCoordSeq_getZ(const GEOSCoordSequence* s,
2021 unsigned int idx, double *val);
2030extern int GEOS_DLL GEOSCoordSeq_getXY(const GEOSCoordSequence* s,
2031 unsigned int idx, double *x, double *y);
2041extern int GEOS_DLL GEOSCoordSeq_getXYZ(const GEOSCoordSequence* s,
2042 unsigned int idx, double *x, double *y, double *z);
2051extern int GEOS_DLL GEOSCoordSeq_getOrdinate(const GEOSCoordSequence* s,
2052 unsigned int idx, unsigned int dim, double *val);
2053
2060extern int GEOS_DLL GEOSCoordSeq_getSize(
2061 const GEOSCoordSequence* s,
2062 unsigned int *size);
2063
2070extern int GEOS_DLL GEOSCoordSeq_getDimensions(
2071 const GEOSCoordSequence* s,
2072 unsigned int *dims);
2073
2082extern int GEOS_DLL GEOSCoordSeq_isCCW(
2083 const GEOSCoordSequence* s,
2084 char* is_ccw);
2085
2086/* ========== Linear referencing functions */
2087
2096extern double GEOS_DLL GEOSProject(const GEOSGeometry* line,
2097 const GEOSGeometry* point);
2098
2107extern GEOSGeometry GEOS_DLL *GEOSInterpolate(const GEOSGeometry* line,
2108 double d);
2109
2119extern double GEOS_DLL GEOSProjectNormalized(const GEOSGeometry* line,
2120 const GEOSGeometry* point);
2121
2131 const GEOSGeometry *line,
2132 double proportion);
2133
2134/* ========== Buffer related functions ========== */
2135
2146extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g,
2147 double width, int quadsegs);
2148
2156
2161extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
2162
2170 int style);
2171
2179 int joinStyle);
2180
2192 double mitreLimit);
2193
2204 int quadSegs);
2205
2216 int singleSided);
2217
2227 const GEOSGeometry* g,
2228 const GEOSBufferParams* p,
2229 double width);
2230
2243 const GEOSGeometry* g,
2244 double width,
2245 int quadsegs,
2246 int endCapStyle,
2247 int joinStyle,
2248 double mitreLimit);
2249
2261extern GEOSGeometry GEOS_DLL *GEOSDensify(
2262 const GEOSGeometry* g,
2263 double tolerance);
2264
2280 double width, int quadsegs, int joinStyle, double mitreLimit);
2281
2282/* ========= Geometry Constructors ========= */
2283
2291
2299extern GEOSGeometry GEOS_DLL *GEOSGeom_createPointFromXY(double x, double y);
2300
2307
2315
2323
2330
2337
2351 GEOSGeometry* shell,
2352 GEOSGeometry** holes,
2353 unsigned int nholes);
2354
2368 int type,
2369 GEOSGeometry** geoms,
2370 unsigned int ngeoms);
2371
2379
2386extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(const GEOSGeometry* g);
2387
2388/* ========== Memory management ========== */
2389
2394extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
2395
2396/* ========== Topology Operations ========== */
2397
2404extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
2405
2415extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
2416
2429extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec(const GEOSGeometry* g1, const GEOSGeometry* g2, double gridSize);
2430
2441 const GEOSGeometry* ga,
2442 const GEOSGeometry* gb);
2443
2458 const GEOSGeometry* ga,
2459 const GEOSGeometry* gb,
2460 double gridSize);
2461
2473 const GEOSGeometry* ga,
2474 const GEOSGeometry* gb);
2475
2491 const GEOSGeometry* ga,
2492 const GEOSGeometry* gb,
2493 double gridSize);
2494
2504extern GEOSGeometry GEOS_DLL *GEOSUnion(
2505 const GEOSGeometry* ga,
2506 const GEOSGeometry* gb);
2507
2522 const GEOSGeometry* ga,
2523 const GEOSGeometry* gb,
2524 double gridSize);
2525
2535extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(const GEOSGeometry* g);
2536
2551 const GEOSGeometry* g,
2552 double gridSize);
2553
2566extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
2567
2576extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
2577
2590
2614 const GEOSGeometry* g,
2615 double tolerance);
2616
2638 const GEOSGeometry* obstacles,
2639 const GEOSGeometry* boundary,
2640 double tolerance);
2641
2653extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
2654
2672extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
2673
2684
2685
2695
2704
2712extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
2713
2725 const GEOSGeometry* g,
2726 double* radius,
2727 GEOSGeometry** center);
2728
2737extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
2738
2753 const GEOSGeometry* g,
2754 double xmin, double ymin,
2755 double xmax, double ymax);
2756
2796 const GEOSGeometry * const geoms[],
2797 unsigned int ngeoms);
2798
2810 const GEOSGeometry * const geoms[],
2811 unsigned int ngeoms);
2812
2825 const GEOSGeometry * const geoms[],
2826 unsigned int ngeoms);
2827
2841 const GEOSGeometry* input,
2842 GEOSGeometry** cuts,
2843 GEOSGeometry** dangles,
2844 GEOSGeometry** invalid);
2845
2855extern GEOSGeometry GEOS_DLL *GEOSBuildArea(const GEOSGeometry* g);
2856
2865extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
2866
2875extern GEOSGeometry GEOS_DLL *GEOSReverse(const GEOSGeometry* g);
2876
2890 const GEOSGeometry* g,
2891 double tolerance);
2892
2908 const GEOSGeometry* g,
2909 double tolerance);
2910
2920 const GEOSGeometry* g);
2921
2939 const GEOSGeometry* g1,
2940 const GEOSGeometry* g2);
2941
2950extern GEOSGeometry GEOS_DLL *GEOSSnap(
2951 const GEOSGeometry* input,
2952 const GEOSGeometry* snap_target,
2953 double tolerance);
2954
2967 const GEOSGeometry *g,
2968 double tolerance,
2969 int onlyEdges);
2970
2981 const GEOSGeometry *g);
2982
2998 const GEOSGeometry *g,
2999 const GEOSGeometry *env,
3000 double tolerance,
3001 int onlyEdges);
3002
3019extern int GEOS_DLL GEOSSegmentIntersection(
3020 double ax0, double ay0,
3021 double ax1, double ay1,
3022 double bx0, double by0,
3023 double bx1, double by1,
3024 double* cx, double* cy);
3025
3026/* ========= Binary Predicates ========= */
3027
3035extern char GEOS_DLL GEOSDisjoint(const GEOSGeometry* g1, const GEOSGeometry* g2);
3036
3045extern char GEOS_DLL GEOSTouches(const GEOSGeometry* g1, const GEOSGeometry* g2);
3046
3054extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
3055
3064extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
3065
3074extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
3075
3083extern char GEOS_DLL GEOSContains(const GEOSGeometry* g1, const GEOSGeometry* g2);
3084
3093extern char GEOS_DLL GEOSOverlaps(const GEOSGeometry* g1, const GEOSGeometry* g2);
3094
3102extern char GEOS_DLL GEOSEquals(const GEOSGeometry* g1, const GEOSGeometry* g2);
3103
3112extern char GEOS_DLL GEOSCovers(const GEOSGeometry* g1, const GEOSGeometry* g2);
3113
3122extern char GEOS_DLL GEOSCoveredBy(const GEOSGeometry* g1, const GEOSGeometry* g2);
3123
3135extern char GEOS_DLL GEOSEqualsExact(
3136 const GEOSGeometry* g1,
3137 const GEOSGeometry* g2,
3138 double tolerance);
3139
3140/* ========== Prepared Geometry Binary predicates ========== */
3141
3159extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(const GEOSGeometry* g);
3160
3167extern void GEOS_DLL GEOSPreparedGeom_destroy(const GEOSPreparedGeometry* g);
3168
3177extern char GEOS_DLL GEOSPreparedContains(
3178 const GEOSPreparedGeometry* pg1,
3179 const GEOSGeometry* g2);
3180
3189extern char GEOS_DLL GEOSPreparedContainsProperly(
3190 const GEOSPreparedGeometry* pg1,
3191 const GEOSGeometry* g2);
3192
3201extern char GEOS_DLL GEOSPreparedCoveredBy(
3202 const GEOSPreparedGeometry* pg1,
3203 const GEOSGeometry* g2);
3204
3213extern char GEOS_DLL GEOSPreparedCovers(
3214 const GEOSPreparedGeometry* pg1,
3215 const GEOSGeometry* g2);
3216
3225extern char GEOS_DLL GEOSPreparedCrosses(
3226 const GEOSPreparedGeometry* pg1,
3227 const GEOSGeometry* g2);
3228
3237extern char GEOS_DLL GEOSPreparedDisjoint(
3238 const GEOSPreparedGeometry* pg1,
3239 const GEOSGeometry* g2);
3240
3249extern char GEOS_DLL GEOSPreparedIntersects(
3250 const GEOSPreparedGeometry* pg1,
3251 const GEOSGeometry* g2);
3252
3261extern char GEOS_DLL GEOSPreparedOverlaps(
3262 const GEOSPreparedGeometry* pg1,
3263 const GEOSGeometry* g2);
3264
3273extern char GEOS_DLL GEOSPreparedTouches(
3274 const GEOSPreparedGeometry* pg1,
3275 const GEOSGeometry* g2);
3276
3285extern char GEOS_DLL GEOSPreparedWithin(
3286 const GEOSPreparedGeometry* pg1,
3287 const GEOSGeometry* g2);
3288
3300 const GEOSPreparedGeometry* pg1,
3301 const GEOSGeometry* g2);
3302
3314extern int GEOS_DLL GEOSPreparedDistance(
3315 const GEOSPreparedGeometry* pg1,
3316 const GEOSGeometry* g2,
3317 double *dist);
3318
3331extern char GEOS_DLL GEOSPreparedDistanceWithin(
3332 const GEOSPreparedGeometry* pg1,
3333 const GEOSGeometry* g2,
3334 double dist);
3335
3336/* ========== STRtree functions ========== */
3337
3348extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
3349
3360extern void GEOS_DLL GEOSSTRtree_insert(
3361 GEOSSTRtree *tree,
3362 const GEOSGeometry *g,
3363 void *item);
3364
3375extern void GEOS_DLL GEOSSTRtree_query(
3376 GEOSSTRtree *tree,
3377 const GEOSGeometry *g,
3378 GEOSQueryCallback callback,
3379 void *userdata);
3380
3391extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(
3392 GEOSSTRtree *tree,
3393 const GEOSGeometry* geom);
3394
3411extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(
3412 GEOSSTRtree *tree,
3413 const void* item,
3414 const GEOSGeometry* itemEnvelope,
3415 GEOSDistanceCallback distancefn,
3416 void* userdata);
3417
3425extern void GEOS_DLL GEOSSTRtree_iterate(
3426 GEOSSTRtree *tree,
3427 GEOSQueryCallback callback,
3428 void *userdata);
3429
3440extern char GEOS_DLL GEOSSTRtree_remove(
3441 GEOSSTRtree *tree,
3442 const GEOSGeometry *g,
3443 void *item);
3444
3451extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
3452
3453
3454/* ========= Unary predicates ========= */
3455
3463extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g);
3464
3471extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g);
3472
3480extern char GEOS_DLL GEOSisRing(const GEOSGeometry* g);
3481
3487extern char GEOS_DLL GEOSHasZ(const GEOSGeometry* g);
3488
3496extern char GEOS_DLL GEOSisClosed(const GEOSGeometry *g);
3497
3498/* ========= Dimensionally Extended 9 Intersection Model ========= */
3499
3512extern char GEOS_DLL GEOSRelatePattern(
3513 const GEOSGeometry* g1,
3514 const GEOSGeometry* g2,
3515 const char *pat);
3516
3525extern char GEOS_DLL *GEOSRelate(
3526 const GEOSGeometry* g1,
3527 const GEOSGeometry* g2);
3528
3536extern char GEOS_DLL GEOSRelatePatternMatch(
3537 const char *mat,
3538 const char *pat);
3539
3551extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
3552 const GEOSGeometry* g1,
3553 const GEOSGeometry* g2,
3554 int bnr);
3555
3556
3557/* ========== Validity checking ========== */
3558
3571extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
3572
3580extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g);
3581
3594extern char GEOS_DLL GEOSisValidDetail(
3595 const GEOSGeometry* g,
3596 int flags,
3597 char** reason,
3598 GEOSGeometry** location);
3599
3606 const GEOSGeometry* g);
3607
3620 const GEOSGeometry* g,
3621 const GEOSMakeValidParams *makeValidParams);
3622
3630
3637
3646 enum GEOSMakeValidMethods method);
3647
3658 int keepCollapsed);
3659
3660
3661/* ========== Geometry info ========== */
3662
3671extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
3672
3678extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
3679
3685extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
3686
3692extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
3693
3702extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
3703
3710extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
3711
3712
3722extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
3723
3738extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
3739 const GEOSGeometry* g,
3740 int n);
3741
3752extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
3753
3782 const GEOSGeometry *g,
3783 double gridSize,
3784 int flags);
3785
3793extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
3794
3801extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
3802
3809extern int GEOS_DLL GEOSGeomGetNumPoints(const GEOSGeometry* g);
3810
3818extern int GEOS_DLL GEOSGeomGetX(const GEOSGeometry *g, double *x);
3819
3827extern int GEOS_DLL GEOSGeomGetY(const GEOSGeometry *g, double *y);
3828
3836extern int GEOS_DLL GEOSGeomGetZ(const GEOSGeometry *g, double *z);
3837
3846extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
3847 const GEOSGeometry* g,
3848 int n);
3849
3857extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
3858 const GEOSGeometry* g);
3859
3866extern int GEOS_DLL GEOSGetNumCoordinates(
3867 const GEOSGeometry* g);
3868
3878 const GEOSGeometry* g);
3879
3891extern int GEOS_DLL GEOSGeom_getDimensions(
3892 const GEOSGeometry* g);
3893
3904 const GEOSGeometry* g);
3905
3912extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
3913
3920extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
3921
3928extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
3929
3936extern int GEOS_DLL GEOSGeom_getYMax(const GEOSGeometry* g, double* value);
3937
3946extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
3947
3956
3965
3966/* ========= Misc functions ========= */
3967
3974extern int GEOS_DLL GEOSArea(
3975 const GEOSGeometry* g,
3976 double *area);
3977
3984extern int GEOS_DLL GEOSLength(
3985 const GEOSGeometry* g,
3986 double *length);
3987
3995extern int GEOS_DLL GEOSDistance(
3996 const GEOSGeometry* g1,
3997 const GEOSGeometry* g2,
3998 double *dist);
3999
4008extern char GEOS_DLL GEOSDistanceWithin(
4009 const GEOSGeometry* g1,
4010 const GEOSGeometry* g2,
4011 double dist);
4012
4024extern int GEOS_DLL GEOSDistanceIndexed(
4025 const GEOSGeometry* g1,
4026 const GEOSGeometry* g2,
4027 double *dist);
4028
4039extern int GEOS_DLL GEOSHausdorffDistance(
4040 const GEOSGeometry *g1,
4041 const GEOSGeometry *g2,
4042 double *dist);
4043
4058 const GEOSGeometry *g1,
4059 const GEOSGeometry *g2,
4060 double densifyFrac,
4061 double *dist);
4062
4074extern int GEOS_DLL GEOSFrechetDistance(
4075 const GEOSGeometry *g1,
4076 const GEOSGeometry *g2,
4077 double *dist);
4078
4093extern int GEOS_DLL GEOSFrechetDistanceDensify(
4094 const GEOSGeometry *g1,
4095 const GEOSGeometry *g2,
4096 double densifyFrac,
4097 double *dist);
4098
4107extern int GEOS_DLL GEOSGeomGetLength(
4108 const GEOSGeometry *g,
4109 double *length);
4110
4121 const GEOSGeometry* g1,
4122 const GEOSGeometry* g2);
4123
4124
4125/* ========== Algorithms ========== */
4126
4140extern int GEOS_DLL GEOSOrientationIndex(
4141 double Ax, double Ay,
4142 double Bx, double By,
4143 double Px, double Py);
4144
4145/* ========= Reader and Writer APIs ========= */
4146
4147/* ========= WKT Reader ========= */
4148
4154
4159extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
4160
4169 GEOSWKTReader* reader,
4170 const char *wkt);
4171
4172/* ========= WKT Writer ========= */
4173
4179
4184extern void GEOS_DLL GEOSWKTWriter_destroy(
4185 GEOSWKTWriter* writer);
4186
4195extern char GEOS_DLL *GEOSWKTWriter_write(
4196 GEOSWKTWriter* writer,
4197 const GEOSGeometry* g);
4198
4207extern void GEOS_DLL GEOSWKTWriter_setTrim(
4208 GEOSWKTWriter *writer,
4209 char trim);
4210
4218 GEOSWKTWriter *writer,
4219 int precision);
4220
4228 GEOSWKTWriter *writer,
4229 int dim);
4230
4237
4245extern void GEOS_DLL GEOSWKTWriter_setOld3D(
4246 GEOSWKTWriter *writer,
4247 int useOld3D);
4248
4249/* ========== WKB Reader ========== */
4250
4256
4261extern void GEOS_DLL GEOSWKBReader_destroy(
4262 GEOSWKBReader* reader);
4263
4272 GEOSWKBReader* reader,
4273 const unsigned char *wkb,
4274 size_t size);
4275
4284 GEOSWKBReader* reader,
4285 const unsigned char *hex,
4286 size_t size);
4287
4288/* ========== WKB Writer ========== */
4289
4295
4300extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
4301
4310extern unsigned char GEOS_DLL *GEOSWKBWriter_write(
4311 GEOSWKBWriter* writer,
4312 const GEOSGeometry* g,
4313 size_t *size);
4314
4323extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(
4324 GEOSWKBWriter* writer,
4325 const GEOSGeometry* g,
4326 size_t *size);
4327
4336 const GEOSWKBWriter* writer);
4337
4345 GEOSWKBWriter* writer,
4346 int newDimension);
4347
4356extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
4357 const GEOSWKBWriter* writer);
4358
4365extern void GEOS_DLL GEOSWKBWriter_setByteOrder(
4366 GEOSWKBWriter* writer,
4367 int byteOrder);
4368
4381extern int GEOS_DLL GEOSWKBWriter_getFlavor(
4382 const GEOSWKBWriter* writer);
4383
4390extern void GEOS_DLL GEOSWKBWriter_setFlavor(
4391 GEOSWKBWriter* writer,
4392 int flavor);
4393
4398extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
4399 const GEOSWKBWriter* writer);
4400
4407extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(
4408 GEOSWKBWriter* writer,
4409 const char writeSRID);
4410
4417extern void GEOS_DLL GEOSFree(void *buffer);
4418
4419/* ========= GeoJSON Reader ========= */
4420
4426
4431extern void GEOS_DLL GEOSGeoJSONReader_destroy(GEOSGeoJSONReader* reader);
4432
4442 GEOSGeoJSONReader* reader,
4443 const char *geojson);
4444
4445/* ========= GeoJSON Writer ========= */
4446
4452
4457extern void GEOS_DLL GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter* writer);
4458
4468 GEOSGeoJSONWriter* writer,
4469 const GEOSGeometry* g,
4470 int indent);
4471
4472#endif /* #ifndef GEOS_USE_ONLY_R_API */
4473
4474/* ====================================================================== */
4475/* DEPRECATIONS */
4476/* ====================================================================== */
4477
4482 const GEOSGeometry* g,
4483 double width, int quadsegs,
4484 int joinStyle, double mitreLimit,
4485 int leftSide);
4486
4491 GEOSContextHandle_t handle,
4492 const GEOSGeometry* g,
4493 double width, int quadsegs,
4494 int joinStyle, double mitreLimit,
4495 int leftSide);
4496
4502 GEOSMessageHandler notice_function,
4503 GEOSMessageHandler error_function);
4504
4508extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
4509
4514 GEOSContextHandle_t handle,
4515 const char *wkt);
4516
4520extern char GEOS_DLL *GEOSGeomToWKT_r(
4521 GEOSContextHandle_t handle,
4522 const GEOSGeometry* g);
4523
4527extern int GEOS_DLL GEOS_getWKBOutputDims_r(
4528 GEOSContextHandle_t handle);
4529
4533extern int GEOS_DLL GEOS_setWKBOutputDims_r(
4534 GEOSContextHandle_t handle,
4535 int newDims);
4536
4540extern int GEOS_DLL GEOS_getWKBByteOrder_r(
4541 GEOSContextHandle_t handle);
4542
4546extern int GEOS_DLL GEOS_setWKBByteOrder_r(
4547 GEOSContextHandle_t handle,
4548 int byteOrder);
4549
4554 GEOSContextHandle_t handle,
4555 const unsigned char *wkb,
4556 size_t size);
4557
4561extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(
4562 GEOSContextHandle_t handle,
4563 const GEOSGeometry* g,
4564 size_t *size);
4565
4570 GEOSContextHandle_t handle,
4571 const unsigned char *hex,
4572 size_t size);
4573
4577extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(
4578 GEOSContextHandle_t handle,
4579 const GEOSGeometry* g,
4580 size_t *size);
4581
4585extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(const char *wkt);
4586
4590extern char GEOS_DLL *GEOSGeomToWKT(const GEOSGeometry* g);
4591
4595extern int GEOS_DLL GEOS_getWKBOutputDims(void);
4596
4600extern int GEOS_DLL GEOS_setWKBOutputDims(int newDims);
4601
4605extern int GEOS_DLL GEOS_getWKBByteOrder(void);
4606
4610extern int GEOS_DLL GEOS_setWKBByteOrder(int byteOrder);
4611
4615extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size);
4616
4620extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
4621
4625extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
4626
4630extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(const GEOSGeometry* g, size_t *size);
4631
4636
4641 GEOSContextHandle_t handle,
4642 const GEOSGeometry* g);
4643
4644/* ====================================================================== */
4645/* END DEPRECATIONS */
4646/* ====================================================================== */
4647
4648
4649#ifdef __cplusplus
4650} // extern "C"
4651#endif
4652
4653#endif /* #ifndef GEOS_C_H_INCLUDED */
int GEOS_setWKBOutputDims_r(GEOSContextHandle_t handle, int newDims)
GEOSGeometry * GEOSMaximumInscribedCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
int GEOSBufferParams_setEndCapStyle_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int style)
char GEOSisEmpty_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSisSimple(const GEOSGeometry *g)
void GEOSWKBWriter_setByteOrder(GEOSWKBWriter *writer, int byteOrder)
GEOSGeometry * GEOSIntersectionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
const GEOSCoordSequence * GEOSGeom_getCoordSeq(const GEOSGeometry *g)
GEOSGeometry * GEOSVoronoiDiagram_r(GEOSContextHandle_t extHandle, const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int onlyEdges)
int GEOSCoordSeq_setZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
void GEOSGeom_setUserData_r(GEOSContextHandle_t handle, GEOSGeometry *g, void *userData)
GEOSGeometry * GEOSGeom_createEmptyPoint(void)
GEOSGeometry * GEOSReverse_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOS_getWKBOutputDims_r(GEOSContextHandle_t handle)
char GEOSisRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSGetCentroid(const GEOSGeometry *g)
void GEOSBufferParams_destroy_r(GEOSContextHandle_t handle, GEOSBufferParams *parms)
GEOSGeometry * GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_create(unsigned int size, unsigned int dims)
char GEOSPreparedDistanceWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
GEOSGeometry * GEOSWKBReader_read_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
char * GEOSGeomToWKT_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSBufferWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSBufferParams *p, double width)
int GEOSBufferParams_setQuadrantSegments_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int quadSegs)
void GEOSSTRtree_iterate(GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
const GEOSGeometry * GEOSGetExteriorRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence * GEOSPreparedNearestPoints(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance, int onlyEdges)
void * GEOSGeom_getUserData_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSGeoJSONReader_t GEOSGeoJSONReader
Definition: geos_c.h:1629
int GEOS_getWKBByteOrder(void)
void GEOSWKBReader_destroy(GEOSWKBReader *reader)
char GEOSPreparedContainsProperly(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
void GEOSSTRtree_iterate_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create_r(GEOSContextHandle_t handle)
int GEOSDistanceIndexed(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
int GEOSGeom_getDimensions_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSCoordSeq_getZ(const GEOSCoordSequence *s, unsigned int idx, double *val)
const GEOSGeometry * GEOSSTRtree_nearest_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *geom)
void GEOSWKTWriter_setOld3D_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int useOld3D)
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create(void)
int(* GEOSDistanceCallback)(const void *item1, const void *item2, double *distance, void *userdata)
Definition: geos_c.h:270
GEOSGeometry * GEOSPolygonize_valid(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSWKTReader * GEOSWKTReader_create(void)
struct GEOSWKBReader_t GEOSWKBReader
Definition: geos_c.h:1615
void GEOSGeom_destroy(GEOSGeometry *g)
int GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle, int byteOrder)
GEOSGeometry * GEOSClipByRect(const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
int GEOSDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
char GEOSTouches(const GEOSGeometry *g1, const GEOSGeometry *g2)
struct GEOSCoordSeq_t GEOSCoordSequence
Definition: geos_c.h:153
GEOSGeometry * GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSSTRtree_destroy(GEOSSTRtree *tree)
void GEOSBufferParams_destroy(GEOSBufferParams *parms)
int GEOSCoordSeq_setXY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSGeomTypes
Definition: geos_c.h:196
@ GEOS_MULTILINESTRING
Definition: geos_c.h:208
@ GEOS_GEOMETRYCOLLECTION
Definition: geos_c.h:212
@ GEOS_POINT
Definition: geos_c.h:198
@ GEOS_MULTIPOLYGON
Definition: geos_c.h:210
@ GEOS_LINEARRING
Definition: geos_c.h:202
@ GEOS_POLYGON
Definition: geos_c.h:204
@ GEOS_MULTIPOINT
Definition: geos_c.h:206
@ GEOS_LINESTRING
Definition: geos_c.h:200
GEOSGeometry * GEOSIntersectionPrec(const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
int GEOSGetNumInteriorRings(const GEOSGeometry *g)
char GEOSSTRtree_remove_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
void GEOSSTRtree_query_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
GEOSGeometry * GEOSGeom_setPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize, int flags)
char GEOSEqualsExact(const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSMessageHandler_r GEOSContext_setNoticeMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r nf, void *userData)
int GEOSCoordSeq_getOrdinate(const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
void GEOSWKBReader_destroy_r(GEOSContextHandle_t handle, GEOSWKBReader *reader)
GEOSGeometry * GEOSBoundary(const GEOSGeometry *g)
GEOSGeometry * GEOSUnaryUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSDistanceIndexed_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
void GEOSWKTReader_destroy(GEOSWKTReader *reader)
GEOSGeometry * GEOSMinimumWidth(const GEOSGeometry *g)
char * GEOSWKTWriter_write(GEOSWKTWriter *writer, const GEOSGeometry *g)
GEOSGeometry * GEOSTopologyPreserveSimplify(const GEOSGeometry *g, double tolerance)
void(* GEOSQueryCallback)(void *item, void *userdata)
Definition: geos_c.h:251
int GEOSCoordSeq_getSize_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *size)
GEOSGeometry * GEOSGeomFromWKT(const char *wkt)
GEOSGeometry * GEOSWKBReader_read(GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
char GEOSContains_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
double GEOSProject_r(GEOSContextHandle_t handle, const GEOSGeometry *line, const GEOSGeometry *point)
void GEOSGeom_destroy_r(GEOSContextHandle_t handle, GEOSGeometry *g)
GEOSGeometry * GEOSTopologyPreserveSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSSingleSidedBuffer_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOSContextHandle_t GEOS_init_r(void)
struct GEOSGeom_t GEOSGeometry
Definition: geos_c.h:139
GEOSGeometry * GEOSGeom_setPrecision(const GEOSGeometry *g, double gridSize, int flags)
const void * GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
int GEOSGeomTypeId(const GEOSGeometry *g)
GEOSGeometry * GEOSPolygonize_full_r(GEOSContextHandle_t handle, const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalidRings)
char GEOSCoveredBy_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGetNumCoordinates_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKTWriter_destroy(GEOSWKTWriter *writer)
int GEOSCoordSeq_getDimensions_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *dims)
GEOSGeometry * GEOSGeom_createEmptyCollection_r(GEOSContextHandle_t handle, int type)
void GEOSWKBWriter_setOutputDimension(GEOSWKBWriter *writer, int newDimension)
GEOSGeometry * GEOSEnvelope(const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createPoint_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSWKBFlavors
Definition: geos_c.h:237
@ GEOS_WKB_ISO
Definition: geos_c.h:241
@ GEOS_WKB_EXTENDED
Definition: geos_c.h:239
GEOSGeometry * GEOSDensify(const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSConstrainedDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSFree_r(GEOSContextHandle_t handle, void *buffer)
GEOSGeometry * GEOSGeom_extractUniquePoints(const GEOSGeometry *g)
int GEOSHausdorffDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
int GEOSWKBWriter_getOutputDimension(const GEOSWKBWriter *writer)
void GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *g)
int GEOS_getWKBOutputDims(void)
GEOSGeometry * GEOSGeom_createPolygon_r(GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSGeometry * GEOSGeomGetPointN(const GEOSGeometry *g, int n)
const char * GEOSversion(void)
const GEOSGeometry * GEOSGetExteriorRing(const GEOSGeometry *g)
int GEOSMakeValidParams_setMethod(GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
void initGEOS(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOSGeometry * GEOSNode(const GEOSGeometry *g)
GEOSGeometry * GEOSOffsetCurve_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
GEOSSTRtree * GEOSSTRtree_create(size_t nodeCapacity)
GEOSGeometry * GEOSBoundary_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSFrechetDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
char GEOSPreparedIntersects_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_createLinearRing_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
char GEOSCrosses_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSEquals(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getYMin(const GEOSGeometry *g, double *value)
int GEOSGeomGetX(const GEOSGeometry *g, double *x)
void(* GEOSMessageHandler_r)(const char *message, void *userdata)
Definition: geos_c.h:117
char GEOSPreparedDistanceWithin_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
void GEOSSTRtree_query(GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
GEOSGeometry * GEOSOffsetCurve(const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
GEOSGeometry * GEOSCoverageUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOS_interruptCancel(void)
void GEOSMakeValidParams_destroy(GEOSMakeValidParams *parms)
int GEOSGeomGetY(const GEOSGeometry *g, double *y)
int GEOSFrechetDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSWKTWriter * GEOSWKTWriter_create_r(GEOSContextHandle_t handle)
GEOSGeometry * GEOSGeomGetPointN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSGeometry * GEOSDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
GEOSGeometry * GEOSGeom_createLineString_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSGeometry * GEOSPolygonizer_getCutEdges_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
int GEOSMinimumClearance(const GEOSGeometry *g, double *d)
GEOSGeometry * GEOSDelaunayTriangulation(const GEOSGeometry *g, double tolerance, int onlyEdges)
char GEOSSTRtree_remove(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSGeometry * GEOSBufferWithParams(const GEOSGeometry *g, const GEOSBufferParams *p, double width)
GEOSMessageHandler GEOSContext_setNoticeHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler nf)
int GEOSCoordSeq_getXYZ(const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
char GEOSisValidDetail_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSMakeValidParams * GEOSMakeValidParams_create(void)
GEOSGeometry * GEOSGeom_createEmptyLineString_r(GEOSContextHandle_t handle)
char * GEOSGeomType_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSMinimumClearanceLine(const GEOSGeometry *g)
char * GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
char GEOSDisjoint(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSCoordSeq_setX(GEOSCoordSequence *s, unsigned int idx, double val)
int GEOSPreparedDistance(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSGeometry * GEOSUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSMakeValidParams * GEOSMakeValidParams_create_r(GEOSContextHandle_t extHandle)
char GEOSPreparedContains(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSCoordSeq_getXYZ_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
GEOSGeometry * GEOSGeomGetEndPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKBWriter_setFlavor(GEOSWKBWriter *writer, int flavor)
GEOSContextHandle_t initGEOS_r(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOSBufCapStyles
Definition: geos_c.h:555
@ GEOSBUF_CAP_SQUARE
Definition: geos_c.h:564
@ GEOSBUF_CAP_FLAT
Definition: geos_c.h:561
@ GEOSBUF_CAP_ROUND
Definition: geos_c.h:558
GEOSGeometry * GEOSConvexHull(const GEOSGeometry *g)
GEOSGeometry * GEOSCoverageUnion(const GEOSGeometry *g)
int GEOSCoordSeq_setY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
int GEOSMakeValidParams_setMethod_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
unsigned char * GEOSWKBWriter_write_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSSymDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
void GEOSPreparedGeom_destroy(const GEOSPreparedGeometry *g)
GEOSGeometry * GEOSNode_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSBufferParams_setJoinStyle(GEOSBufferParams *p, int joinStyle)
void GEOSCoordSeq_destroy(GEOSCoordSequence *s)
GEOSGeometry * GEOSGeomFromWKT_r(GEOSContextHandle_t handle, const char *wkt)
GEOSGeoJSONReader * GEOSGeoJSONReader_create(void)
int GEOSCoordSeq_setOrdinate(GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
int GEOSBufferParams_setMitreLimit_r(GEOSContextHandle_t handle, GEOSBufferParams *p, double mitreLimit)
char GEOSContains(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSBufferWithStyle(const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
GEOSGeometry * GEOSBuildArea(const GEOSGeometry *g)
GEOSValidFlags
Definition: geos_c.h:1258
@ GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE
Definition: geos_c.h:1260
void GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int byteOrder)
GEOSBufferParams * GEOSBufferParams_create(void)
struct GEOSWKBWriter_t GEOSWKBWriter
Definition: geos_c.h:1622
void GEOSWKBWriter_setFlavor_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int flavor)
char GEOSPreparedOverlaps_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
int GEOSGeomTypeId_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKTReader * GEOSWKTReader_create_r(GEOSContextHandle_t handle)
char GEOSRelatePatternMatch_r(GEOSContextHandle_t handle, const char *mat, const char *pat)
struct GEOSWKTWriter_t GEOSWKTWriter
Definition: geos_c.h:1608
char GEOSPreparedWithin_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSSegmentIntersection(double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
int GEOSCoordSeq_setY(GEOSCoordSequence *s, unsigned int idx, double val)
void GEOSMakeValidParams_destroy_r(GEOSContextHandle_t handle, GEOSMakeValidParams *parms)
char GEOSPreparedCovers(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSMessageHandler_r GEOSContext_setErrorMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r ef, void *userData)
GEOSGeometry * GEOSGeoJSONReader_readGeometry(GEOSGeoJSONReader *reader, const char *geojson)
GEOSGeometry * GEOSEnvelope_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size)
unsigned char * GEOSWKBWriter_writeHEX(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSInterpolate_r(GEOSContextHandle_t handle, const GEOSGeometry *line, double d)
GEOSGeometry * GEOSSharedPaths_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSWKTReader_read_r(GEOSContextHandle_t handle, GEOSWKTReader *reader, const char *wkt)
int GEOS_setWKBByteOrder(int byteOrder)
GEOSGeometry * GEOSInterpolate(const GEOSGeometry *line, double d)
char GEOSPreparedContains_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSInterpolateNormalized_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
int GEOSCoordSeq_getY_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSGeometry * GEOSGeomGetEndPoint(const GEOSGeometry *g)
GEOSGeometry * GEOSSnap_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSGeometry * GEOSPolygonize_full(const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalid)
char * GEOSRelateBoundaryNodeRule(const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
double GEOSGeom_getPrecision(const GEOSGeometry *g)
GEOSGeometry * GEOSLargestEmptyCircle(const GEOSGeometry *obstacles, const GEOSGeometry *boundary, double tolerance)
char GEOSIntersects(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSCoordSeq_getDimensions(const GEOSCoordSequence *s, unsigned int *dims)
char GEOSPreparedCoveredBy(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSCovers(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSInterruptCallback * GEOS_interruptRegisterCallback(GEOSInterruptCallback *cb)
int GEOSGeom_getXMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
int GEOSCoordSeq_getOrdinate_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
int GEOSCoordSeq_getXY(const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
GEOSGeometry * GEOSSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSIntersection_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSOverlaps(const GEOSGeometry *g1, const GEOSGeometry *g2)
void GEOSWKTWriter_setTrim_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, char trim)
GEOSGeometry * GEOSMakeValidWithParams(const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
GEOSGeometry * GEOSGeomFromWKB_buf_r(GEOSContextHandle_t handle, const unsigned char *wkb, size_t size)
GEOSGeometry * GEOSPointOnSurface(const GEOSGeometry *g)
GEOSGeometry * GEOSUnaryUnionPrec(const GEOSGeometry *g, double gridSize)
void GEOSWKTWriter_setTrim(GEOSWKTWriter *writer, char trim)
GEOSGeometry * GEOSBuffer_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs)
GEOSGeometry * GEOSMinimumWidth_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSWKBReader_readHEX_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *hex, size_t size)
GEOSWKBByteOrders
Definition: geos_c.h:221
@ GEOS_WKB_NDR
Definition: geos_c.h:225
@ GEOS_WKB_XDR
Definition: geos_c.h:223
void GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const char writeSRID)
GEOSGeometry * GEOSConstrainedDelaunayTriangulation(const GEOSGeometry *g)
int GEOSCoordSeq_copyToArrays(const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
GEOSGeometry * GEOSMinimumBoundingCircle(const GEOSGeometry *g, double *radius, GEOSGeometry **center)
GEOSGeometry * GEOSSymDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
char GEOSDistanceWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
GEOSGeometry * GEOSMakeValidWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
struct GEOSWKTReader_t GEOSWKTReader
Definition: geos_c.h:1601
GEOSCoordSequence * GEOSNearestPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSPolygonize(const GEOSGeometry *const geoms[], unsigned int ngeoms)
char GEOSPreparedCoveredBy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_createPointFromXY(double x, double y)
char GEOSRelatePattern(const GEOSGeometry *g1, const GEOSGeometry *g2, const char *pat)
GEOSGeometry * GEOSGeom_createPolygon(GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
void GEOSWKBWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int newDimension)
void GEOSSetSRID_r(GEOSContextHandle_t handle, GEOSGeometry *g, int SRID)
void GEOSWKTReader_destroy_r(GEOSContextHandle_t handle, GEOSWKTReader *reader)
void GEOSSTRtree_destroy_r(GEOSContextHandle_t handle, GEOSSTRtree *tree)
char * GEOSGeomType(const GEOSGeometry *g)
char GEOSPreparedDisjoint(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_createEmptyPoint_r(GEOSContextHandle_t handle)
GEOSRelateBoundaryNodeRules
Definition: geos_c.h:1215
@ GEOSRELATE_BNR_OGC
Definition: geos_c.h:1219
@ GEOSRELATE_BNR_MULTIVALENT_ENDPOINT
Definition: geos_c.h:1223
@ GEOSRELATE_BNR_ENDPOINT
Definition: geos_c.h:1221
@ GEOSRELATE_BNR_MOD2
Definition: geos_c.h:1217
@ GEOSRELATE_BNR_MONOVALENT_ENDPOINT
Definition: geos_c.h:1225
GEOSGeometry * GEOSSymDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
char * GEOSGeoJSONWriter_writeGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
int GEOSBufferParams_setSingleSided_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int singleSided)
char GEOSCrosses(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeomGetStartPoint(const GEOSGeometry *g)
int GEOSMakeValidParams_setKeepCollapsed_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, int style)
int GEOSCoordSeq_setOrdinate_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
void GEOSSetSRID(GEOSGeometry *g, int SRID)
GEOSGeometry * GEOSGeoJSONReader_readGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader, const char *geojson)
char * GEOSGeoJSONWriter_writeGeometry(GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
GEOSGeometry * GEOSGeom_createLineString(GEOSCoordSequence *s)
unsigned char * GEOSWKBWriter_write(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSMakeValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSVoronoiDiagram(const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int onlyEdges)
GEOSGeometry * GEOSReverse(const GEOSGeometry *g)
int GEOSWKBWriter_getFlavor(const GEOSWKBWriter *writer)
char GEOSIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char * GEOSRelate(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSCoordSeq_getSize(const GEOSCoordSequence *s, unsigned int *size)
int GEOSOrientationIndex(double Ax, double Ay, double Bx, double By, double Px, double Py)
GEOSGeometry * GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size)
void GEOSWKTWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int dim)
GEOSGeometry * GEOSClipByRect_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
int GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSGeomGetZ(const GEOSGeometry *g, double *z)
GEOSGeometry * GEOSDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
int GEOSWKBWriter_getFlavor_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
int GEOSCoordSeq_isCCW(const GEOSCoordSequence *s, char *is_ccw)
struct GEOSContextHandle_HS * GEOSContextHandle_t
Definition: geos_c.h:94
int GEOSCoordSeq_copyToBuffer_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
int GEOSCoordSeq_setXY(GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSGeometry * GEOSMakeValid(const GEOSGeometry *g)
void GEOSCoordSeq_destroy_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSGeometry * GEOSPolygonizer_getCutEdges(const GEOSGeometry *const geoms[], unsigned int ngeoms)
int GEOSGetSRID_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSSTRtree * GEOSSTRtree_create_r(GEOSContextHandle_t handle, size_t nodeCapacity)
int GEOSMakeValidParams_setKeepCollapsed(GEOSMakeValidParams *p, int keepCollapsed)
GEOSGeometry * GEOSUnionPrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
int GEOSHausdorffDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSGeometry * GEOSMinimumRotatedRectangle(const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createEmptyPolygon_r(GEOSContextHandle_t handle)
GEOSBufJoinStyles
Definition: geos_c.h:571
@ GEOSBUF_JOIN_MITRE
Definition: geos_c.h:581
@ GEOSBUF_JOIN_ROUND
Definition: geos_c.h:576
@ GEOSBUF_JOIN_BEVEL
Definition: geos_c.h:586
GEOSGeometry * GEOSGeom_createEmptyCollection(int type)
GEOSGeometry * GEOSIntersection(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
int GEOSGeom_getXMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
void GEOSWKBWriter_destroy(GEOSWKBWriter *writer)
char GEOSEquals_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getXMin(const GEOSGeometry *g, double *value)
char GEOSCovers_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeomGetLength(const GEOSGeometry *g, double *length)
char GEOSOverlaps_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
const GEOSGeometry * GEOSSTRtree_nearest(GEOSSTRtree *tree, const GEOSGeometry *geom)
unsigned char * GEOSGeomToHEX_buf(const GEOSGeometry *g, size_t *size)
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer_r(GEOSContextHandle_t handle, const double *buf, unsigned int size, int hasZ, int hasM)
GEOSWKBReader * GEOSWKBReader_create_r(GEOSContextHandle_t handle)
char GEOSDisjoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSCoordSequence * GEOSPreparedNearestPoints_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeomFromHEX_buf_r(GEOSContextHandle_t handle, const unsigned char *hex, size_t size)
GEOSCoordSequence * GEOSCoordSeq_clone(const GEOSCoordSequence *s)
int GEOSGeom_getCoordinateDimension_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSNormalize(GEOSGeometry *g)
unsigned char * GEOSGeomToWKB_buf(const GEOSGeometry *g, size_t *size)
int GEOSGetNumGeometries_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSEqualsExact_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSGeometry * GEOSMinimumBoundingCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *radius, GEOSGeometry **center)
int GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer)
char GEOSTouches_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSWKTReader_read(GEOSWKTReader *reader, const char *wkt)
GEOSGeometry * GEOSUnaryUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize)
int GEOSArea_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *area)
double GEOSGeom_getPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKTWriter_setOutputDimension(GEOSWKTWriter *writer, int dim)
GEOSCoordSequence * GEOSCoordSeq_copyFromArrays(const double *x, const double *y, const double *z, const double *m, unsigned int size)
GEOSWKBReader * GEOSWKBReader_create(void)
int GEOSCoordSeq_getY(const GEOSCoordSequence *s, unsigned int idx, double *val)
int GEOSCoordSeq_setZ(GEOSCoordSequence *s, unsigned int idx, double val)
int GEOSBufferParams_setMitreLimit(GEOSBufferParams *p, double mitreLimit)
char GEOSRelatePatternMatch(const char *mat, const char *pat)
void GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer, int useOld3D)
int GEOSCoordSeq_copyToArrays_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
char GEOSWithin(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSNormalize_r(GEOSContextHandle_t handle, GEOSGeometry *g)
void GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer)
int GEOSDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeometry * GEOSGeom_createEmptyPolygon(void)
void finishGEOS_r(GEOSContextHandle_t handle)
char GEOSisClosed(const GEOSGeometry *g)
int GEOSGeom_getCoordinateDimension(const GEOSGeometry *g)
int GEOSFrechetDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeometry * GEOSBufferWithStyle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
char * GEOSRelate_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSConvexHull_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter
Definition: geos_c.h:1636
unsigned char * GEOSGeomToWKB_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSSingleSidedBuffer(const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOSGeometry * GEOSUnionCascaded(const GEOSGeometry *g)
char GEOSPreparedTouches_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSMessageHandler GEOSContext_setErrorHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler ef)
int GEOSCoordSeq_setXYZ(GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
int GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
double GEOSProjectNormalized(const GEOSGeometry *line, const GEOSGeometry *point)
int GEOSGeom_getYMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSGeom_clone_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
const GEOSPreparedGeometry * GEOSPrepare_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSGeom_setUserData(GEOSGeometry *g, void *userData)
GEOSGeometry * GEOSGeom_createCollection(int type, GEOSGeometry **geoms, unsigned int ngeoms)
void GEOSGeoJSONReader_destroy(GEOSGeoJSONReader *reader)
char GEOSRelatePattern_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, const char *pat)
GEOSGeometry * GEOSGetCentroid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer(const double *buf, unsigned int size, int hasZ, int hasM)
int GEOSGeomGetNumPoints(const GEOSGeometry *g)
void GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter *writer)
double GEOSProjectNormalized_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *p)
char GEOSPreparedCrosses(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSGeomGetNumPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char * GEOSisValidReason_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSPolygonize_valid_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngems)
char GEOSPreparedIntersects(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOS_setWKBOutputDims(int newDims)
const GEOSCoordSequence * GEOSGeom_getCoordSeq_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSPointOnSurface_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSFrechetDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
struct GEOSBufParams_t GEOSBufferParams
Definition: geos_c.h:167
char GEOSPreparedCovers_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSLargestEmptyCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *boundary, double tolerance)
int GEOSOrientationIndex_r(GEOSContextHandle_t handle, double Ax, double Ay, double Bx, double By, double Px, double Py)
GEOSPrecisionRules
Definition: geos_c.h:1386
@ GEOS_PREC_NO_TOPO
Definition: geos_c.h:1390
@ GEOS_PREC_KEEP_COLLAPSED
Definition: geos_c.h:1392
@ GEOS_PREC_VALID_OUTPUT
Definition: geos_c.h:1388
int GEOSGetNumGeometries(const GEOSGeometry *g)
void * GEOSGeom_getUserData(const GEOSGeometry *g)
int GEOSGetNumCoordinates(const GEOSGeometry *g)
struct GEOSMakeValidParams_t GEOSMakeValidParams
Definition: geos_c.h:174
void GEOS_finish_r(GEOSContextHandle_t handle)
GEOSMakeValidMethods
Definition: geos_c.h:1288
@ GEOS_MAKE_VALID_LINEWORK
Definition: geos_c.h:1292
@ GEOS_MAKE_VALID_STRUCTURE
Definition: geos_c.h:1297
GEOSGeometry * GEOSWKBReader_readHEX(GEOSWKBReader *reader, const unsigned char *hex, size_t size)
int GEOSGeom_getYMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSGeom_createEmptyLineString(void)
const GEOSGeometry * GEOSGetInteriorRingN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSGeometry * GEOSInterpolateNormalized(const GEOSGeometry *line, double proportion)
GEOSGeometry * GEOSGeom_clone(const GEOSGeometry *g)
void GEOSGeoJSONWriter_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
int GEOSBufferParams_setSingleSided(GEOSBufferParams *p, int singleSided)
const GEOSGeometry * GEOSGetInteriorRingN(const GEOSGeometry *g, int n)
int GEOSGeomGetZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *z)
GEOSGeometry * GEOSUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeometry * GEOSGeom_createPointFromXY_r(GEOSContextHandle_t handle, double x, double y)
void GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
const GEOSPreparedGeometry * GEOSPrepare(const GEOSGeometry *g)
int GEOSWKBWriter_getByteOrder(const GEOSWKBWriter *writer)
char GEOSPreparedOverlaps(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSHasZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSUnion(const GEOSGeometry *ga, const GEOSGeometry *gb)
void GEOSGeoJSONReader_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader)
GEOSGeometry * GEOSSimplify(const GEOSGeometry *g, double tolerance)
void GEOSSTRtree_insert(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
char GEOSisSimple_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBWriter * GEOSWKBWriter_create_r(GEOSContextHandle_t handle)
char GEOSDistanceWithin(const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
int GEOSCoordSeq_setXYZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
int GEOSGeomGetX_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *x)
unsigned char * GEOSGeomToHEX_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
char GEOSPreparedWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSHasZ(const GEOSGeometry *g)
int GEOSWKBWriter_getOutputDimension_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
int GEOSBufferParams_setQuadrantSegments(GEOSBufferParams *p, int quadSegs)
void GEOS_interruptRequest(void)
char GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
void finishGEOS(void)
int GEOSLength(const GEOSGeometry *g, double *length)
int GEOSCoordSeq_getZ_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
int GEOSBufferParams_setEndCapStyle(GEOSBufferParams *p, int style)
GEOSGeometry * GEOSUnionCascaded_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSGetSRID(const GEOSGeometry *g)
GEOSGeometry * GEOSBuffer(const GEOSGeometry *g, double width, int quadsegs)
unsigned char * GEOSWKBWriter_writeHEX_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
void GEOSWKTWriter_setRoundingPrecision(GEOSWKTWriter *writer, int precision)
char GEOSisClosed_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char * GEOSisValidReason(const GEOSGeometry *g)
void(* GEOSMessageHandler)(const char *fmt,...)
Definition: geos_c.h:105
int GEOSBufferParams_setJoinStyle_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int joinStyle)
char GEOSisRing(const GEOSGeometry *g)
int GEOSCoordSeq_getXY_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
const GEOSGeometry * GEOSGetGeometryN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
int GEOSCoordSeq_getX_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
int GEOSPreparedDistance_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSWKTWriter * GEOSWKTWriter_create(void)
int GEOSSegmentIntersection_r(GEOSContextHandle_t extHandle, double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
char GEOSisValid(const GEOSGeometry *g)
char GEOSCoveredBy(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getDimensions(const GEOSGeometry *g)
char GEOSPreparedDisjoint_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSHausdorffDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
void GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter *writer, const char writeSRID)
GEOSGeometry * GEOSBuildArea_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSisEmpty(const GEOSGeometry *g)
const GEOSGeometry * GEOSGetGeometryN(const GEOSGeometry *g, int n)
int GEOSMinimumClearance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *distance)
GEOSGeometry * GEOSGeom_createCollection_r(GEOSContextHandle_t handle, int type, GEOSGeometry **geoms, unsigned int ngeoms)
GEOSGeometry * GEOSMaximumInscribedCircle(const GEOSGeometry *g, double tolerance)
GEOSGeoJSONReader * GEOSGeoJSONReader_create_r(GEOSContextHandle_t handle)
void() GEOSInterruptCallback(void)
Definition: geos_c.h:286
GEOSGeometry * GEOSGeom_createPoint(GEOSCoordSequence *s)
int GEOS_getWKBByteOrder_r(GEOSContextHandle_t handle)
char GEOSPreparedTouches(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSWKBWriter_getIncludeSRID(const GEOSWKBWriter *writer)
GEOSGeometry * GEOSSnap(const GEOSGeometry *input, const GEOSGeometry *snap_target, double tolerance)
GEOSWKBWriter * GEOSWKBWriter_create(void)
struct GEOSSTRtree_t GEOSSTRtree
Definition: geos_c.h:160
GEOSCoordSequence * GEOSCoordSeq_create_r(GEOSContextHandle_t handle, unsigned int size, unsigned int dims)
GEOSCoordSequence * GEOSNearestPoints(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSSymDifferencePrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
int GEOSGeom_getXMax(const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSGeom_extractUniquePoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSFree(void *buffer)
GEOSBufferParams * GEOSBufferParams_create_r(GEOSContextHandle_t handle)
int GEOSCoordSeq_getX(const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSGeometry * GEOSDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
char * GEOSGeomToWKT(const GEOSGeometry *g)
GEOSGeometry * GEOSSharedPaths(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSArea(const GEOSGeometry *g, double *area)
int GEOSGeomGetLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
char GEOSPreparedCrosses_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSGeomGetY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *y)
int GEOSCoordSeq_isCCW_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, char *is_ccw)
char GEOSisValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSSTRtree_insert_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSCoordSequence * GEOSCoordSeq_copyFromArrays_r(GEOSContextHandle_t handle, const double *x, const double *y, const double *z, const double *m, unsigned int size)
int GEOSCoordSeq_setX_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSGeometry * GEOSLineMerge_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSisValidDetail(const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSGeometry * GEOSPolygonize_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSGeometry * GEOSLineMerge(const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createLinearRing(GEOSCoordSequence *s)
void GEOSWKTWriter_setRoundingPrecision_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int precision)
const void * GEOSSTRtree_nearest_generic(GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
int GEOSGeom_getYMax(const GEOSGeometry *g, double *value)
int GEOSHausdorffDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
double GEOSProject(const GEOSGeometry *line, const GEOSGeometry *point)
char * GEOSWKTWriter_write_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_clone_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s)
GEOSGeometry * GEOSDifferencePrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
GEOSGeometry * GEOSUnaryUnion(const GEOSGeometry *g)
struct GEOSPrepGeom_t GEOSPreparedGeometry
Definition: geos_c.h:146