GEOS 3.14.0dev
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
40#ifndef GEOS_C_H_INCLUDED
41#define GEOS_C_H_INCLUDED
42
43#ifndef __cplusplus
44# include <stddef.h> /* for size_t definition */
45#else
46# include <cstddef>
47using std::size_t;
48#endif
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54/* ====================================================================== */
55/* Version */
56/* ====================================================================== */
57
60#ifndef GEOS_VERSION_MAJOR
61#define GEOS_VERSION_MAJOR 3
62#endif
63#ifndef GEOS_VERSION_MINOR
64#define GEOS_VERSION_MINOR 14
65#endif
66#ifndef GEOS_VERSION_PATCH
67#define GEOS_VERSION_PATCH 0dev
68#endif
69#ifndef GEOS_VERSION
70#define GEOS_VERSION "3.14.0dev"
71#endif
72#ifndef GEOS_JTS_PORT
73#define GEOS_JTS_PORT "1.18.0"
74#endif
75
76#define GEOS_CAPI_VERSION_MAJOR 1
77#define GEOS_CAPI_VERSION_MINOR 20
78#define GEOS_CAPI_VERSION_PATCH 0
79#define GEOS_CAPI_VERSION "3.14.0dev-CAPI-1.20.0"
80
81#define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
82#define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
83
86#include <geos/export.h>
87
88
95typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
96
105typedef void (*GEOSMessageHandler)(GEOS_PRINTF_FORMAT const char *fmt, ...)
106 GEOS_PRINTF_FORMAT_ATTR(1, 2);
107
118typedef void (*GEOSMessageHandler_r)(const char *message, void *userdata);
119
120/*
121* When we're included by geos_c.cpp, these types are #defined to the
122* C++ definitions via preprocessor. We don't touch them to allow the
123* compiler to cross-check the declarations. However, for all "normal"
124* C-API users, we need to define these types as "opaque" struct pointers, as
125* those clients don't have access to the original C++ headers, by design.
126*/
127#ifndef GEOSGeometry
128
140typedef struct GEOSGeom_t GEOSGeometry;
141
147typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
148
155typedef struct GEOSCoordSeq_t GEOSCoordSequence;
156
162typedef struct GEOSSTRtree_t GEOSSTRtree;
163
169typedef struct GEOSBufParams_t GEOSBufferParams;
170
176typedef struct GEOSMakeValidParams_t GEOSMakeValidParams;
177
182typedef struct GEOSClusterInfo_t GEOSClusterInfo;
183
184#endif
185
188/*
189* These are compatibility definitions for source compatibility
190* with GEOS 2.X clients relying on that type.
191*/
192typedef GEOSGeometry* GEOSGeom;
193typedef GEOSCoordSequence* GEOSCoordSeq;
194
221 GEOS_CIRCULARSTRING,
222 GEOS_COMPOUNDCURVE,
223 GEOS_CURVEPOLYGON,
224 GEOS_MULTICURVE,
225 GEOS_MULTISURFACE,
226};
227
240
256
264typedef void (*GEOSQueryCallback)(void *item, void *userdata);
265
283typedef int (*GEOSDistanceCallback)(
284 const void* item1,
285 const void* item2,
286 double* distance,
287 void* userdata);
288
289
303 double* x,
304 double* y,
305 void* userdata);
306
307
322 double* x,
323 double* y,
324 double* z,
325 void* userdata);
326
327
328/* ========== Interruption ========== */
329
338typedef void (GEOSInterruptCallback)(void);
339
349
354extern void GEOS_DLL GEOS_interruptRequest(void);
355
360extern void GEOS_DLL GEOS_interruptCancel(void);
361
362/* ========== Initialization and Cleanup ========== */
363
372extern GEOSContextHandle_t GEOS_DLL GEOS_init_r(void);
373
381extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
382
392 GEOSContextHandle_t extHandle,
394
406 GEOSContextHandle_t extHandle,
408
419 GEOSContextHandle_t extHandle,
421 void *userData);
422
435 GEOSContextHandle_t extHandle,
437 void *userData);
438
439/* ========== Coordinate Sequence functions ========== */
440
443 GEOSContextHandle_t handle,
444 unsigned int size,
445 unsigned int dims);
446
449 GEOSContextHandle_t handle,
450 const double* buf,
451 unsigned int size,
452 int hasZ,
453 int hasM);
454
457 GEOSContextHandle_t handle,
458 const double* x,
459 const double* y,
460 const double* z,
461 const double* m,
462 unsigned int size);
463
465extern int GEOS_DLL GEOSCoordSeq_copyToBuffer_r(
466 GEOSContextHandle_t handle,
467 const GEOSCoordSequence* s,
468 double* buf,
469 int hasZ,
470 int hasM);
471
473extern int GEOS_DLL GEOSCoordSeq_copyToArrays_r(
474 GEOSContextHandle_t handle,
475 const GEOSCoordSequence* s,
476 double* x,
477 double* y,
478 double* z,
479 double* m);
480
483 GEOSContextHandle_t handle,
484 const GEOSCoordSequence* s);
485
487extern void GEOS_DLL GEOSCoordSeq_destroy_r(
488 GEOSContextHandle_t handle,
490
492extern int GEOS_DLL GEOSCoordSeq_setX_r(
493 GEOSContextHandle_t handle,
494 GEOSCoordSequence* s, unsigned int idx,
495 double val);
496
498extern int GEOS_DLL GEOSCoordSeq_setY_r(
499 GEOSContextHandle_t handle,
500 GEOSCoordSequence* s, unsigned int idx,
501 double val);
502
504extern int GEOS_DLL GEOSCoordSeq_setZ_r(
505 GEOSContextHandle_t handle,
506 GEOSCoordSequence* s, unsigned int idx,
507 double val);
508
510extern int GEOS_DLL GEOSCoordSeq_setXY_r(
511 GEOSContextHandle_t handle,
512 GEOSCoordSequence* s, unsigned int idx,
513 double x, double y);
514
516extern int GEOS_DLL GEOSCoordSeq_setXYZ_r(
517 GEOSContextHandle_t handle,
518 GEOSCoordSequence* s, unsigned int idx,
519 double x, double y, double z);
520
522extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(
523 GEOSContextHandle_t handle,
525 unsigned int idx,
526 unsigned int dim, double val);
527
529extern int GEOS_DLL GEOSCoordSeq_getX_r(
530 GEOSContextHandle_t handle,
531 const GEOSCoordSequence* s,
532 unsigned int idx, double *val);
533
535extern int GEOS_DLL GEOSCoordSeq_getY_r(
536 GEOSContextHandle_t handle,
537 const GEOSCoordSequence* s,
538 unsigned int idx, double *val);
539
541extern int GEOS_DLL GEOSCoordSeq_getZ_r(
542 GEOSContextHandle_t handle,
543 const GEOSCoordSequence* s,
544 unsigned int idx, double *val);
545
547extern int GEOS_DLL GEOSCoordSeq_getXY_r(
548 GEOSContextHandle_t handle,
549 const GEOSCoordSequence* s,
550 unsigned int idx,
551 double *x, double *y);
552
554extern int GEOS_DLL GEOSCoordSeq_getXYZ_r(
555 GEOSContextHandle_t handle,
556 const GEOSCoordSequence* s,
557 unsigned int idx,
558 double *x, double *y, double *z);
559
561extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(
562 GEOSContextHandle_t handle,
563 const GEOSCoordSequence* s,
564 unsigned int idx,
565 unsigned int dim, double *val);
566
568extern int GEOS_DLL GEOSCoordSeq_getSize_r(
569 GEOSContextHandle_t handle,
570 const GEOSCoordSequence* s,
571 unsigned int *size);
572
575 GEOSContextHandle_t handle,
576 const GEOSCoordSequence* s,
577 unsigned int *dims);
578
580extern int GEOS_DLL GEOSCoordSeq_isCCW_r(
581 GEOSContextHandle_t handle,
582 const GEOSCoordSequence* s,
583 char* is_ccw);
584
585/* ========= Linear referencing functions ========= */
586
588extern double GEOS_DLL GEOSProject_r(
589 GEOSContextHandle_t handle,
590 const GEOSGeometry *line,
591 const GEOSGeometry *point);
592
595 GEOSContextHandle_t handle,
596 const GEOSGeometry *line,
597 double d);
598
600extern double GEOS_DLL GEOSProjectNormalized_r(
601 GEOSContextHandle_t handle,
602 const GEOSGeometry *g,
603 const GEOSGeometry *p);
604
607 GEOSContextHandle_t handle,
608 const GEOSGeometry *g,
609 double d);
610
611/* ========== Buffer related functions ========== */
612
614extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(
615 GEOSContextHandle_t handle,
616 const GEOSGeometry* g,
617 double width, int quadsegs);
618
634
656
659 GEOSContextHandle_t handle);
660
662extern void GEOS_DLL GEOSBufferParams_destroy_r(
663 GEOSContextHandle_t handle,
664 GEOSBufferParams* parms);
665
668 GEOSContextHandle_t handle,
670 int style);
671
674 GEOSContextHandle_t handle,
676 int joinStyle);
677
680 GEOSContextHandle_t handle,
682 double mitreLimit);
683
686 GEOSContextHandle_t handle,
688 int quadSegs);
689
692 GEOSContextHandle_t handle,
694 int singleSided);
695
698 GEOSContextHandle_t handle,
699 const GEOSGeometry* g,
700 const GEOSBufferParams* p,
701 double width);
702
705 GEOSContextHandle_t handle,
706 const GEOSGeometry* g,
707 double width, int quadsegs, int endCapStyle,
708 int joinStyle, double mitreLimit);
709
712 GEOSContextHandle_t handle,
713 const GEOSGeometry* g,
714 double tolerance);
715
718 GEOSContextHandle_t handle,
719 const GEOSGeometry* g, double width, int quadsegs,
720 int joinStyle, double mitreLimit);
721
722
723/* ========= Geometry Constructors ========= */
724
727 GEOSContextHandle_t handle,
729
732 GEOSContextHandle_t handle,
733 double x, double y);
734
737 GEOSContextHandle_t handle);
738
741 GEOSContextHandle_t handle,
743
746 GEOSContextHandle_t handle,
748
751 GEOSContextHandle_t handle);
752
755 GEOSContextHandle_t handle);
756
759 GEOSContextHandle_t handle,
760 GEOSGeometry* shell,
761 GEOSGeometry** holes,
762 unsigned int nholes);
763
766 GEOSContextHandle_t handle,
767 int type,
768 GEOSGeometry* *geoms,
769 unsigned int ngeoms);
770
773 GEOSContextHandle_t handle,
774 GEOSGeometry * collection,
775 unsigned int * ngeoms);
776
779 GEOSContextHandle_t handle, int type);
780
783 GEOSContextHandle_t handle,
784 double xmin, double ymin,
785 double xmax, double ymax);
786
789 GEOSContextHandle_t handle,
790 const GEOSGeometry* g);
791
794 GEOSContextHandle_t handle,
796
799 GEOSContextHandle_t handle);
800
803 GEOSContextHandle_t handle,
804 GEOSGeometry** curves,
805 unsigned int ncurves);
806
809 GEOSContextHandle_t handle);
810
813 GEOSContextHandle_t handle,
814 GEOSGeometry* shell,
815 GEOSGeometry** holes,
816 unsigned int nholes);
817
820 GEOSContextHandle_t handle);
821
822/* ========= Memory management ========= */
823
825extern void GEOS_DLL GEOSGeom_destroy_r(
826 GEOSContextHandle_t handle,
827 GEOSGeometry* g);
828
829/* ========= Coverages ========= */
830
832extern GEOSGeometry GEOS_DLL *
834 GEOSContextHandle_t handle,
835 const GEOSGeometry* g);
836
838extern int GEOS_DLL
840 GEOSContextHandle_t extHandle,
841 const GEOSGeometry* input,
842 double gapWidth,
843 GEOSGeometry** output);
844
846extern GEOSGeometry GEOS_DLL *
848 GEOSContextHandle_t extHandle,
849 const GEOSGeometry* input,
850 double tolerance,
851 int preserveBoundary);
852
853/* ========= Topology Operations ========= */
854
857 GEOSContextHandle_t handle,
858 const GEOSGeometry* g);
859
862 GEOSContextHandle_t handle,
863 const GEOSGeometry* g1,
864 const GEOSGeometry* g2);
865
868 GEOSContextHandle_t handle,
869 const GEOSGeometry* g1,
870 const GEOSGeometry* g2,
871 double gridSize);
872
875 GEOSContextHandle_t handle,
876 const GEOSGeometry* g);
877
880 GEOSContextHandle_t handle,
881 const GEOSGeometry* g,
882 double ratio,
883 unsigned int allowHoles);
884
887 GEOSContextHandle_t handle,
888 const GEOSGeometry* g,
889 double ratio,
890 unsigned int allowHoles);
891
894 GEOSContextHandle_t handle,
895 const GEOSGeometry* g,
896 unsigned int isOuter,
897 double vertexNumFraction);
898
901 GEOSContextHandle_t handle,
902 const GEOSGeometry* g,
903 unsigned int isOuter,
904 unsigned int parameterMode,
905 double parameter);
906
909 GEOSContextHandle_t handle,
910 const GEOSGeometry* g,
911 double lengthRatio,
912 unsigned int isTight,
913 unsigned int isHolesAllowed);
914
917 GEOSContextHandle_t handle,
918 const GEOSGeometry* g);
919
922 GEOSContextHandle_t handle,
923 const GEOSGeometry* g,
924 double tolerance);
925
928 GEOSContextHandle_t handle,
929 const GEOSGeometry* g,
930 const GEOSGeometry* boundary,
931 double tolerance);
932
935 GEOSContextHandle_t handle,
936 const GEOSGeometry* g);
937
940 GEOSContextHandle_t handle,
941 const GEOSGeometry* g);
942
944extern int GEOS_DLL GEOSMinimumClearance_r(
945 GEOSContextHandle_t handle,
946 const GEOSGeometry* g,
947 double* distance);
948
951 GEOSContextHandle_t handle,
952 const GEOSGeometry* g1,
953 const GEOSGeometry* g2);
954
957 GEOSContextHandle_t handle,
958 const GEOSGeometry* g1,
959 const GEOSGeometry* g2,
960 double gridSize);
961
964 GEOSContextHandle_t handle,
965 const GEOSGeometry* g1,
966 const GEOSGeometry* g2);
967
970 GEOSContextHandle_t handle,
971 const GEOSGeometry* g1,
972 const GEOSGeometry* g2,
973 double gridSize);
974
977 GEOSContextHandle_t handle,
978 const GEOSGeometry* g);
979
981extern GEOSGeometry GEOS_DLL *GEOSUnion_r(
982 GEOSContextHandle_t handle,
983 const GEOSGeometry* g1,
984 const GEOSGeometry* g2);
985
988 GEOSContextHandle_t handle,
989 const GEOSGeometry* g1,
990 const GEOSGeometry* g2,
991 double gridSize);
992
995 GEOSContextHandle_t handle,
996 const GEOSGeometry* g);
997
1000 GEOSContextHandle_t handle,
1001 const GEOSGeometry* g,
1002 double gridSize);
1003
1006 GEOSContextHandle_t handle,
1007 const GEOSGeometry* g);
1008
1011 GEOSContextHandle_t handle,
1012 const GEOSGeometry* g);
1013
1016 GEOSContextHandle_t handle,
1017 const GEOSGeometry* g);
1018
1021 GEOSContextHandle_t handle,
1022 const GEOSGeometry* g,
1023 double* radius,
1024 GEOSGeometry** center);
1025
1027extern GEOSGeometry GEOS_DLL *GEOSNode_r(
1028 GEOSContextHandle_t handle,
1029 const GEOSGeometry* g);
1030
1033 GEOSContextHandle_t handle,
1034 const GEOSGeometry* g,
1035 double xmin, double ymin,
1036 double xmax, double ymax);
1037
1040 GEOSContextHandle_t handle,
1041 const GEOSGeometry *const geoms[],
1042 unsigned int ngeoms);
1043
1046 GEOSContextHandle_t handle,
1047 const GEOSGeometry *const geoms[],
1048 unsigned int ngems);
1049
1052 GEOSContextHandle_t handle,
1053 const GEOSGeometry * const geoms[],
1054 unsigned int ngeoms);
1055
1058 GEOSContextHandle_t handle,
1059 const GEOSGeometry* input,
1060 GEOSGeometry** cuts,
1061 GEOSGeometry** dangles,
1062 GEOSGeometry** invalidRings);
1063
1066 GEOSContextHandle_t handle,
1067 const GEOSGeometry* g);
1068
1071 GEOSContextHandle_t handle,
1072 const GEOSGeometry* g);
1073
1076 GEOSContextHandle_t handle,
1077 const GEOSGeometry* g);
1078
1081 GEOSContextHandle_t handle,
1082 const GEOSGeometry* g,
1083 double start_fraction,
1084 double end_fdraction);
1085
1088 GEOSContextHandle_t handle,
1089 const GEOSGeometry* g);
1090
1093 GEOSContextHandle_t handle,
1094 const GEOSGeometry* g,
1095 double tolerance);
1096
1099 GEOSContextHandle_t handle,
1100 const GEOSGeometry* g, double tolerance);
1101
1104 GEOSContextHandle_t handle,
1105 const GEOSGeometry* g);
1106
1109 GEOSContextHandle_t handle,
1110 const GEOSGeometry* g1,
1111 const GEOSGeometry* g2);
1112
1114extern GEOSGeometry GEOS_DLL *GEOSSnap_r(
1115 GEOSContextHandle_t handle,
1116 const GEOSGeometry* g1,
1117 const GEOSGeometry* g2,
1118 double tolerance);
1119
1122 GEOSContextHandle_t handle,
1123 const GEOSGeometry *g,
1124 double tolerance,
1125 int onlyEdges);
1126
1129 GEOSContextHandle_t handle,
1130 const GEOSGeometry *g);
1131
1134 GEOSContextHandle_t extHandle,
1135 const GEOSGeometry *g,
1136 const GEOSGeometry *env,
1137 double tolerance,
1138 int flags);
1139
1141extern int GEOS_DLL GEOSSegmentIntersection_r(
1142 GEOSContextHandle_t extHandle,
1143 double ax0, double ay0,
1144 double ax1, double ay1,
1145 double bx0, double by0,
1146 double bx1, double by1,
1147 double* cx, double* cy);
1148
1149/* ========= Binary predicates ========= */
1150
1152extern char GEOS_DLL GEOSDisjoint_r(
1153 GEOSContextHandle_t handle,
1154 const GEOSGeometry* g1,
1155 const GEOSGeometry* g2);
1156
1158extern char GEOS_DLL GEOSTouches_r(
1159 GEOSContextHandle_t handle,
1160 const GEOSGeometry* g1,
1161 const GEOSGeometry* g2);
1162
1164extern char GEOS_DLL GEOSIntersects_r(
1165 GEOSContextHandle_t handle,
1166 const GEOSGeometry* g1,
1167 const GEOSGeometry* g2);
1168
1170extern char GEOS_DLL GEOSCrosses_r(
1171 GEOSContextHandle_t handle,
1172 const GEOSGeometry* g1,
1173 const GEOSGeometry* g2);
1174
1176extern char GEOS_DLL GEOSWithin_r(
1177 GEOSContextHandle_t handle,
1178 const GEOSGeometry* g1,
1179 const GEOSGeometry* g2);
1180
1182extern char GEOS_DLL GEOSContains_r(
1183 GEOSContextHandle_t handle,
1184 const GEOSGeometry* g1,
1185 const GEOSGeometry* g2);
1186
1188extern char GEOS_DLL GEOSOverlaps_r(
1189 GEOSContextHandle_t handle,
1190 const GEOSGeometry* g1,
1191 const GEOSGeometry* g2);
1192
1194extern char GEOS_DLL GEOSEquals_r(
1195 GEOSContextHandle_t handle,
1196 const GEOSGeometry* g1,
1197 const GEOSGeometry* g2);
1198
1200extern char GEOS_DLL GEOSEqualsExact_r(
1201 GEOSContextHandle_t handle,
1202 const GEOSGeometry* g1,
1203 const GEOSGeometry* g2,
1204 double tolerance);
1205
1207extern char GEOS_DLL GEOSEqualsIdentical_r(
1208 GEOSContextHandle_t handle,
1209 const GEOSGeometry* g1,
1210 const GEOSGeometry* g2);
1211
1213extern char GEOS_DLL GEOSCovers_r(
1214 GEOSContextHandle_t handle,
1215 const GEOSGeometry* g1,
1216 const GEOSGeometry* g2);
1217
1219extern char GEOS_DLL GEOSCoveredBy_r(
1220 GEOSContextHandle_t handle,
1221 const GEOSGeometry* g1,
1222 const GEOSGeometry* g2);
1223
1224/* ========= Prepared Geometry Binary Predicates ========== */
1225
1228 GEOSContextHandle_t handle,
1229 const GEOSGeometry* g);
1230
1232extern void GEOS_DLL GEOSPreparedGeom_destroy_r(
1233 GEOSContextHandle_t handle,
1234 const GEOSPreparedGeometry* g);
1235
1237extern char GEOS_DLL GEOSPreparedContains_r(
1238 GEOSContextHandle_t handle,
1239 const GEOSPreparedGeometry* pg1,
1240 const GEOSGeometry* g2);
1241
1243extern char GEOS_DLL GEOSPreparedContainsXY_r(
1244 GEOSContextHandle_t handle,
1245 const GEOSPreparedGeometry* pg1,
1246 double x,
1247 double y);
1248
1251 GEOSContextHandle_t handle,
1252 const GEOSPreparedGeometry* pg1,
1253 const GEOSGeometry* g2);
1254
1256extern char GEOS_DLL GEOSPreparedCoveredBy_r(
1257 GEOSContextHandle_t handle,
1258 const GEOSPreparedGeometry* pg1,
1259 const GEOSGeometry* g2);
1260
1262extern char GEOS_DLL GEOSPreparedCovers_r(
1263 GEOSContextHandle_t handle,
1264 const GEOSPreparedGeometry* pg1,
1265 const GEOSGeometry* g2);
1266
1268extern char GEOS_DLL GEOSPreparedCrosses_r(
1269 GEOSContextHandle_t handle,
1270 const GEOSPreparedGeometry* pg1,
1271 const GEOSGeometry* g2);
1272
1274extern char GEOS_DLL GEOSPreparedDisjoint_r(
1275 GEOSContextHandle_t handle,
1276 const GEOSPreparedGeometry* pg1,
1277 const GEOSGeometry* g2);
1278
1280extern char GEOS_DLL GEOSPreparedIntersects_r(
1281 GEOSContextHandle_t handle,
1282 const GEOSPreparedGeometry* pg1,
1283 const GEOSGeometry* g2);
1284
1286extern char GEOS_DLL GEOSPreparedIntersectsXY_r(
1287 GEOSContextHandle_t handle,
1288 const GEOSPreparedGeometry* pg1,
1289 double x,
1290 double y);
1291
1293extern char GEOS_DLL GEOSPreparedOverlaps_r(
1294 GEOSContextHandle_t handle,
1295 const GEOSPreparedGeometry* pg1,
1296 const GEOSGeometry* g2);
1297
1299extern char GEOS_DLL GEOSPreparedTouches_r(
1300 GEOSContextHandle_t handle,
1301 const GEOSPreparedGeometry* pg1,
1302 const GEOSGeometry* g2);
1303
1305extern char GEOS_DLL GEOSPreparedWithin_r(
1306 GEOSContextHandle_t handle,
1307 const GEOSPreparedGeometry* pg1,
1308 const GEOSGeometry* g2);
1309
1311extern char GEOS_DLL * GEOSPreparedRelate_r(
1312 GEOSContextHandle_t handle,
1313 const GEOSPreparedGeometry* pg1,
1314 const GEOSGeometry* g2);
1315
1317extern char GEOS_DLL GEOSPreparedRelatePattern_r(
1318 GEOSContextHandle_t handle,
1319 const GEOSPreparedGeometry* pg1,
1320 const GEOSGeometry* g2,
1321 const char* im);
1322
1325 GEOSContextHandle_t handle,
1326 const GEOSPreparedGeometry* pg1,
1327 const GEOSGeometry* g2);
1328
1330extern int GEOS_DLL GEOSPreparedDistance_r(
1331 GEOSContextHandle_t handle,
1332 const GEOSPreparedGeometry* pg1,
1333 const GEOSGeometry* g2, double *dist);
1334
1336extern char GEOS_DLL GEOSPreparedDistanceWithin_r(
1337 GEOSContextHandle_t handle,
1338 const GEOSPreparedGeometry* pg1,
1339 const GEOSGeometry* g2, double dist);
1340
1341/* ========== STRtree ========== */
1342
1345 GEOSContextHandle_t handle,
1346 size_t nodeCapacity);
1347
1349extern int GEOS_DLL GEOSSTRtree_build_r(
1350 GEOSContextHandle_t handle,
1351 GEOSSTRtree *tree);
1352
1354extern void GEOS_DLL GEOSSTRtree_insert_r(
1355 GEOSContextHandle_t handle,
1356 GEOSSTRtree *tree,
1357 const GEOSGeometry *g,
1358 void *item);
1359
1361extern void GEOS_DLL GEOSSTRtree_query_r(
1362 GEOSContextHandle_t handle,
1363 GEOSSTRtree *tree,
1364 const GEOSGeometry *g,
1365 GEOSQueryCallback callback,
1366 void *userdata);
1367
1370 GEOSContextHandle_t handle,
1371 GEOSSTRtree *tree,
1372 const GEOSGeometry* geom);
1373
1375extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(
1376 GEOSContextHandle_t handle,
1377 GEOSSTRtree *tree,
1378 const void* item,
1379 const GEOSGeometry* itemEnvelope,
1380 GEOSDistanceCallback distancefn,
1381 void* userdata);
1382
1384extern void GEOS_DLL GEOSSTRtree_iterate_r(
1385 GEOSContextHandle_t handle,
1386 GEOSSTRtree *tree,
1387 GEOSQueryCallback callback,
1388 void *userdata);
1389
1391extern char GEOS_DLL GEOSSTRtree_remove_r(
1392 GEOSContextHandle_t handle,
1393 GEOSSTRtree *tree,
1394 const GEOSGeometry *g,
1395 void *item);
1396
1398extern void GEOS_DLL GEOSSTRtree_destroy_r(
1399 GEOSContextHandle_t handle,
1400 GEOSSTRtree *tree);
1401
1402
1403/* ========= Unary predicate ========= */
1404
1406extern char GEOS_DLL GEOSisEmpty_r(
1407 GEOSContextHandle_t handle,
1408 const GEOSGeometry* g);
1409
1411extern char GEOS_DLL GEOSisSimple_r(
1412 GEOSContextHandle_t handle,
1413 const GEOSGeometry* g);
1414
1416extern char GEOS_DLL GEOSisRing_r(
1417 GEOSContextHandle_t handle,
1418 const GEOSGeometry* g);
1419
1421extern char GEOS_DLL GEOSHasZ_r(
1422 GEOSContextHandle_t handle,
1423 const GEOSGeometry* g);
1424
1426extern char GEOS_DLL GEOSHasM_r(
1427 GEOSContextHandle_t handle,
1428 const GEOSGeometry* g);
1429
1431extern char GEOS_DLL GEOSisClosed_r(
1432 GEOSContextHandle_t handle,
1433 const GEOSGeometry *g);
1434
1435/* ========== Dimensionally Extended 9 Intersection Model ========== */
1436
1453
1455extern char GEOS_DLL GEOSRelatePattern_r(
1456 GEOSContextHandle_t handle,
1457 const GEOSGeometry* g1,
1458 const GEOSGeometry* g2,
1459 const char *imPattern);
1460
1462extern char GEOS_DLL *GEOSRelate_r(
1463 GEOSContextHandle_t handle,
1464 const GEOSGeometry* g1,
1465 const GEOSGeometry* g2);
1466
1468extern char GEOS_DLL GEOSRelatePatternMatch_r(
1469 GEOSContextHandle_t handle,
1470 const char *intMatrix,
1471 const char *imPattern);
1472
1474extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(
1475 GEOSContextHandle_t handle,
1476 const GEOSGeometry* g1,
1477 const GEOSGeometry* g2,
1478 int bnr);
1479
1480/* ========= Validity checking ========= */
1481
1488
1490extern char GEOS_DLL GEOSisValid_r(
1491 GEOSContextHandle_t handle,
1492 const GEOSGeometry* g);
1493
1495extern char GEOS_DLL *GEOSisValidReason_r(
1496 GEOSContextHandle_t handle,
1497 const GEOSGeometry* g);
1498
1500extern char GEOS_DLL GEOSisValidDetail_r(
1501 GEOSContextHandle_t handle,
1502 const GEOSGeometry* g,
1503 int flags,
1504 char** reason,
1505 GEOSGeometry** location);
1506
1507/* ========== Make Valid ========== */
1508
1525
1528 GEOSContextHandle_t extHandle);
1529
1532 GEOSContextHandle_t handle,
1533 GEOSMakeValidParams* parms);
1534
1537 GEOSContextHandle_t handle,
1539 int style);
1540
1543 GEOSContextHandle_t handle,
1545 enum GEOSMakeValidMethods method);
1546
1549 GEOSContextHandle_t handle,
1550 const GEOSGeometry* g);
1551
1554 GEOSContextHandle_t handle,
1555 const GEOSGeometry* g,
1556 const GEOSMakeValidParams* makeValidParams);
1557
1560 GEOSContextHandle_t handle,
1561 const GEOSGeometry* g,
1562 double tolerance);
1563
1564/* ========== Geometry info ========== */
1565
1567/* Return NULL on exception, result must be freed by caller. */
1568extern char GEOS_DLL *GEOSGeomType_r(
1569 GEOSContextHandle_t handle,
1570 const GEOSGeometry* g);
1571
1573extern int GEOS_DLL GEOSGeomTypeId_r(
1574 GEOSContextHandle_t handle,
1575 const GEOSGeometry* g);
1576
1578extern int GEOS_DLL GEOSGetSRID_r(
1579 GEOSContextHandle_t handle,
1580 const GEOSGeometry* g);
1581
1583extern void GEOS_DLL GEOSSetSRID_r(
1584 GEOSContextHandle_t handle,
1585 GEOSGeometry* g, int SRID);
1586
1588extern void GEOS_DLL *GEOSGeom_getUserData_r(
1589 GEOSContextHandle_t handle,
1590 const GEOSGeometry* g);
1591
1593extern void GEOS_DLL GEOSGeom_setUserData_r(
1594 GEOSContextHandle_t handle,
1595 GEOSGeometry* g,
1596 void* userData);
1597
1599extern int GEOS_DLL GEOSGetNumGeometries_r(
1600 GEOSContextHandle_t handle,
1601 const GEOSGeometry* g);
1602
1604extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1605 GEOSContextHandle_t handle,
1606 const GEOSGeometry* g, int n);
1607
1609extern int GEOS_DLL GEOSNormalize_r(
1610 GEOSContextHandle_t handle,
1611 GEOSGeometry* g);
1612
1614extern int GEOS_DLL GEOSOrientPolygons_r(
1615 GEOSContextHandle_t handle,
1616 GEOSGeometry* g,
1617 int exteriorCW);
1618
1631
1634 GEOSContextHandle_t handle,
1635 const GEOSGeometry *g,
1636 double gridSize,
1637 int flags);
1638
1640extern double GEOS_DLL GEOSGeom_getPrecision_r(
1641 GEOSContextHandle_t handle,
1642 const GEOSGeometry *g);
1643
1645extern int GEOS_DLL GEOSGetNumInteriorRings_r(
1646 GEOSContextHandle_t handle,
1647 const GEOSGeometry* g);
1648
1650extern int GEOS_DLL GEOSGeomGetNumPoints_r(
1651 GEOSContextHandle_t handle,
1652 const GEOSGeometry* g);
1653
1655extern int GEOS_DLL GEOSGeomGetX_r(
1656 GEOSContextHandle_t handle,
1657 const GEOSGeometry *g,
1658 double *x);
1659
1661extern int GEOS_DLL GEOSGeomGetY_r(
1662 GEOSContextHandle_t handle,
1663 const GEOSGeometry *g,
1664 double *y);
1665
1667extern int GEOS_DLL GEOSGeomGetZ_r(
1668 GEOSContextHandle_t handle,
1669 const GEOSGeometry *g,
1670 double *z);
1671
1673extern int GEOS_DLL GEOSGeomGetM_r(
1674 GEOSContextHandle_t handle,
1675 const GEOSGeometry *g,
1676 double *m);
1677
1680 GEOSContextHandle_t handle,
1681 const GEOSGeometry* g, int n);
1682
1685 GEOSContextHandle_t handle,
1686 const GEOSGeometry* g);
1687
1689extern int GEOS_DLL GEOSGetNumCoordinates_r(
1690 GEOSContextHandle_t handle,
1691 const GEOSGeometry* g);
1692
1695 GEOSContextHandle_t handle,
1696 const GEOSGeometry* g);
1697
1699extern int GEOS_DLL GEOSGeom_getDimensions_r(
1700 GEOSContextHandle_t handle,
1701 const GEOSGeometry* g);
1702
1705 GEOSContextHandle_t handle,
1706 const GEOSGeometry* g);
1707
1709extern int GEOS_DLL GEOSGeom_getXMin_r(
1710 GEOSContextHandle_t handle,
1711 const GEOSGeometry* g,
1712 double* value);
1713
1715extern int GEOS_DLL GEOSGeom_getYMin_r(
1716 GEOSContextHandle_t handle,
1717 const GEOSGeometry* g,
1718 double* value);
1719
1721extern int GEOS_DLL GEOSGeom_getXMax_r(
1722 GEOSContextHandle_t handle,
1723 const GEOSGeometry* g,
1724 double* value);
1725
1727extern int GEOS_DLL GEOSGeom_getYMax_r(
1728 GEOSContextHandle_t handle,
1729 const GEOSGeometry* g,
1730 double* value);
1731
1733extern int GEOS_DLL GEOSGeom_getExtent_r(
1734 GEOSContextHandle_t handle,
1735 const GEOSGeometry* g,
1736 double* xmin,
1737 double* ymin,
1738 double* xmax,
1739 double* ymax);
1740
1743 GEOSContextHandle_t handle,
1744 const GEOSGeometry *g,
1745 int n);
1746
1749 GEOSContextHandle_t handle,
1750 const GEOSGeometry *g);
1751
1754 GEOSContextHandle_t handle,
1755 const GEOSGeometry *g);
1756
1757/* ========= Misc functions ========= */
1758
1760extern int GEOS_DLL GEOSArea_r(
1761 GEOSContextHandle_t handle,
1762 const GEOSGeometry* g,
1763 double *area);
1764
1766extern int GEOS_DLL GEOSLength_r(
1767 GEOSContextHandle_t handle,
1768 const GEOSGeometry* g,
1769 double *length);
1770
1772extern int GEOS_DLL GEOSDistance_r(
1773 GEOSContextHandle_t handle,
1774 const GEOSGeometry* g1,
1775 const GEOSGeometry* g2,
1776 double *dist);
1777
1779extern char GEOS_DLL GEOSDistanceWithin_r(
1780 GEOSContextHandle_t handle,
1781 const GEOSGeometry* g1,
1782 const GEOSGeometry* g2,
1783 double dist);
1784
1786extern int GEOS_DLL GEOSDistanceIndexed_r(
1787 GEOSContextHandle_t handle,
1788 const GEOSGeometry* g1,
1789 const GEOSGeometry* g2,
1790 double *dist);
1791
1793extern int GEOS_DLL GEOSHausdorffDistance_r(
1794 GEOSContextHandle_t handle,
1795 const GEOSGeometry *g1,
1796 const GEOSGeometry *g2,
1797 double *dist);
1798
1801 GEOSContextHandle_t handle,
1802 const GEOSGeometry *g1,
1803 const GEOSGeometry *g2,
1804 double densifyFrac, double *dist);
1805
1807extern int GEOS_DLL GEOSFrechetDistance_r(
1808 GEOSContextHandle_t handle,
1809 const GEOSGeometry *g1,
1810 const GEOSGeometry *g2,
1811 double *dist);
1812
1815 GEOSContextHandle_t handle,
1816 const GEOSGeometry *g1,
1817 const GEOSGeometry *g2,
1818 double densifyFrac,
1819 double *dist);
1820
1821
1823extern int GEOS_DLL GEOSHilbertCode_r(
1824 GEOSContextHandle_t handle,
1825 const GEOSGeometry *geom,
1826 const GEOSGeometry* extent,
1827 unsigned int level,
1828 unsigned int *code
1829);
1830
1832extern int GEOS_DLL GEOSGeomGetLength_r(
1833 GEOSContextHandle_t handle,
1834 const GEOSGeometry *g,
1835 double *length);
1836
1839 GEOSContextHandle_t handle,
1840 const GEOSGeometry* g1,
1841 const GEOSGeometry* g2);
1842
1845 GEOSContextHandle_t handle,
1846 const GEOSGeometry* g,
1847 GEOSTransformXYCallback callback,
1848 void* userdata);
1849
1852 GEOSContextHandle_t handle,
1853 const GEOSGeometry* g,
1854 GEOSTransformXYZCallback callback,
1855 void* userdata);
1856
1859 GEOSContextHandle_t handle,
1860 const GEOSGeometry* g,
1861 double eps,
1862 unsigned minPoints);
1863
1866 GEOSContextHandle_t handle,
1867 const GEOSGeometry* g,
1868 double d);
1869
1872 GEOSContextHandle_t handle,
1873 const GEOSGeometry* g);
1874
1877 GEOSContextHandle_t handle,
1878 const GEOSGeometry* g,
1879 double d);
1880
1883 GEOSContextHandle_t handle,
1884 const GEOSGeometry* g);
1885
1888
1890extern size_t GEOS_DLL GEOSClusterInfo_getClusterSize_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters, size_t i);
1891
1894
1896extern const size_t GEOS_DLL* GEOSClusterInfo_getInputsForClusterN_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters, size_t i);
1897
1900
1901/* ========= Algorithms ========= */
1902
1904extern int GEOS_DLL GEOSOrientationIndex_r(
1905 GEOSContextHandle_t handle,
1906 double Ax, double Ay,
1907 double Bx, double By,
1908 double Px, double Py);
1909
1910
1911/* ========== Reader and Writer APIs ========== */
1912
1913#ifndef GEOSWKTReader
1914
1920typedef struct GEOSWKTReader_t GEOSWKTReader;
1921
1927typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1928
1934typedef struct GEOSWKBReader_t GEOSWKBReader;
1935
1941typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1942
1948typedef struct GEOSGeoJSONReader_t GEOSGeoJSONReader;
1949
1955typedef struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter;
1956
1957#endif
1958
1959/* ========== WKT Reader ========== */
1960
1963 GEOSContextHandle_t handle);
1964
1967 GEOSWKTReader* reader);
1968
1971 GEOSContextHandle_t handle,
1972 GEOSWKTReader* reader,
1973 const char *wkt);
1974
1977 GEOSContextHandle_t handle,
1978 GEOSWKTReader *reader,
1979 char doFix);
1980
1981
1982/* ========== WKT Writer ========== */
1983
1986 GEOSContextHandle_t handle);
1987
1989extern void GEOS_DLL GEOSWKTWriter_destroy_r(
1990 GEOSContextHandle_t handle,
1991 GEOSWKTWriter* writer);
1992
1994extern char GEOS_DLL *GEOSWKTWriter_write_r(
1995 GEOSContextHandle_t handle,
1996 GEOSWKTWriter* writer,
1997 const GEOSGeometry* g);
1998
2000extern void GEOS_DLL GEOSWKTWriter_setTrim_r(
2001 GEOSContextHandle_t handle,
2002 GEOSWKTWriter *writer,
2003 char trim);
2004
2007 GEOSContextHandle_t handle,
2008 GEOSWKTWriter *writer,
2009 int precision);
2010
2013 GEOSContextHandle_t handle,
2014 GEOSWKTWriter *writer,
2015 int dim);
2016
2019 GEOSContextHandle_t handle,
2020 GEOSWKTWriter *writer);
2021
2023extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(
2024 GEOSContextHandle_t handle,
2025 GEOSWKTWriter *writer,
2026 int useOld3D);
2027
2037extern int GEOS_DLL GEOS_printDouble(
2038 double d,
2039 unsigned int precision,
2040 char *result
2041);
2042
2043/* ========== WKB Reader ========== */
2044
2047 GEOSContextHandle_t handle);
2048
2050extern void GEOS_DLL GEOSWKBReader_destroy_r(
2051 GEOSContextHandle_t handle,
2052 GEOSWKBReader* reader);
2053
2056 GEOSContextHandle_t handle,
2057 GEOSWKBReader *reader,
2058 char doFix);
2059
2062 GEOSContextHandle_t handle,
2063 GEOSWKBReader* reader,
2064 const unsigned char *wkb,
2065 size_t size);
2066
2069 GEOSContextHandle_t handle,
2070 GEOSWKBReader* reader,
2071 const unsigned char *hex,
2072 size_t size);
2073
2074
2075/* ========== WKB Writer ========== */
2076
2079 GEOSContextHandle_t handle);
2080
2082extern void GEOS_DLL GEOSWKBWriter_destroy_r(
2083 GEOSContextHandle_t handle,
2084 GEOSWKBWriter* writer);
2085
2087extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
2088 GEOSContextHandle_t handle,
2089 GEOSWKBWriter* writer,
2090 const GEOSGeometry* g,
2091 size_t *size);
2092
2094extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
2095 GEOSContextHandle_t handle,
2096 GEOSWKBWriter* writer,
2097 const GEOSGeometry* g,
2098 size_t *size);
2099
2102 GEOSContextHandle_t handle,
2103 const GEOSWKBWriter* writer);
2104
2107 GEOSContextHandle_t handle,
2108 GEOSWKBWriter* writer, int newDimension);
2109
2112 GEOSContextHandle_t handle,
2113 const GEOSWKBWriter* writer);
2114
2116extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(
2117 GEOSContextHandle_t handle,
2118 GEOSWKBWriter* writer,
2119 int byteOrder);
2120
2122extern int GEOS_DLL GEOSWKBWriter_getFlavor_r(
2123 GEOSContextHandle_t handle,
2124 const GEOSWKBWriter* writer);
2125
2127extern void GEOS_DLL GEOSWKBWriter_setFlavor_r(
2128 GEOSContextHandle_t handle,
2129 GEOSWKBWriter* writer,
2130 int flavor);
2131
2134 GEOSContextHandle_t handle,
2135 const GEOSWKBWriter* writer);
2136
2139 GEOSContextHandle_t handle,
2140 GEOSWKBWriter* writer, const char writeSRID);
2141
2142/* ========== GeoJSON Reader ========== */
2143
2146 GEOSContextHandle_t handle);
2147
2150 GEOSGeoJSONReader* reader);
2151
2154 GEOSContextHandle_t handle,
2155 GEOSGeoJSONReader* reader,
2156 const char *geojson);
2157
2158/* ========== GeoJSON Writer ========== */
2159
2162 GEOSContextHandle_t handle);
2163
2166 GEOSGeoJSONWriter* writer);
2167
2170 GEOSContextHandle_t handle,
2171 GEOSGeoJSONWriter* writer,
2172 const GEOSGeometry* g,
2173 int indent);
2174
2176extern void GEOS_DLL GEOSFree_r(
2177 GEOSContextHandle_t handle,
2178 void *buffer);
2179
2187extern const char GEOS_DLL *GEOSversion(void);
2188
2189/*
2190* External code to GEOS can define GEOS_USE_ONLY_R_API
2191* to strip the non-reentrant API functions from this header,
2192* leaving only the "_r" compatible variants.
2193*/
2194#ifndef GEOS_USE_ONLY_R_API
2195
2196/* ========== Initialization, cleanup ================================= */
2202
2215extern void GEOS_DLL initGEOS(
2216 GEOSMessageHandler notice_function,
2217 GEOSMessageHandler error_function);
2218
2224extern void GEOS_DLL finishGEOS(void);
2225
2235extern void GEOS_DLL GEOSFree(void *buffer);
2236
2238
2239/* ========= Coordinate Sequence functions ========= */
2245
2253extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(unsigned int size, unsigned int dims);
2254
2265extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromBuffer(const double* buf, unsigned int size, int hasZ, int hasM);
2266
2278extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromArrays(const double* x, const double* y, const double* z, const double* m, unsigned int size);
2279
2290extern int GEOS_DLL GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence* s, double* buf, int hasZ, int hasM);
2291
2303extern int GEOS_DLL GEOSCoordSeq_copyToArrays(const GEOSCoordSequence* s, double* x, double* y, double* z, double* m);
2304
2312
2319
2329 unsigned int idx, double val);
2339 unsigned int idx, double val);
2349 unsigned int idx, double val);
2361 unsigned int idx, double x, double y);
2374 unsigned int idx, double x, double y, double z);
2385 unsigned int idx, unsigned int dim, double val);
2386
2395extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
2396 unsigned int idx, double *val);
2397
2406extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
2407 unsigned int idx, double *val);
2416extern int GEOS_DLL GEOSCoordSeq_getZ(const GEOSCoordSequence* s,
2417 unsigned int idx, double *val);
2428extern int GEOS_DLL GEOSCoordSeq_getXY(const GEOSCoordSequence* s,
2429 unsigned int idx, double *x, double *y);
2441extern int GEOS_DLL GEOSCoordSeq_getXYZ(const GEOSCoordSequence* s,
2442 unsigned int idx, double *x, double *y, double *z);
2452extern int GEOS_DLL GEOSCoordSeq_getOrdinate(const GEOSCoordSequence* s,
2453 unsigned int idx, unsigned int dim, double *val);
2454
2462extern int GEOS_DLL GEOSCoordSeq_getSize(
2463 const GEOSCoordSequence* s,
2464 unsigned int *size);
2465
2473extern int GEOS_DLL GEOSCoordSeq_getDimensions(
2474 const GEOSCoordSequence* s,
2475 unsigned int *dims);
2476
2486extern int GEOS_DLL GEOSCoordSeq_isCCW(
2487 const GEOSCoordSequence* s,
2488 char* is_ccw);
2489
2491
2492/* ========= Geometry Constructors ========= */
2498
2507
2517extern GEOSGeometry GEOS_DLL *GEOSGeom_createPointFromXY(double x, double y);
2518
2527
2536
2545
2554
2563
2578 GEOSGeometry* shell,
2579 GEOSGeometry** holes,
2580 unsigned int nholes);
2581
2590
2598
2608 unsigned int ncurves);
2609
2617
2632 GEOSGeometry* shell,
2633 GEOSGeometry** holes,
2634 unsigned int nholes);
2635
2643
2658 int type,
2659 GEOSGeometry** geoms,
2660 unsigned int ngeoms);
2661
2679 GEOSGeometry * collection,
2680 unsigned int * ngeoms);
2681
2691
2703 double xmin, double ymin,
2704 double xmax, double ymax);
2705
2713extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(const GEOSGeometry* g);
2714
2720extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
2721
2723
2724/* ========== Geometry info ========== */
2729
2739extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
2740
2747extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
2748
2755extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
2756
2767extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
2768
2781extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
2782
2798extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
2799 const GEOSGeometry* g,
2800 int n);
2801
2811extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
2812
2820extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
2821
2829extern int GEOS_DLL GEOSGeomGetNumPoints(const GEOSGeometry* g);
2830
2839extern int GEOS_DLL GEOSGeomGetX(const GEOSGeometry *g, double *x);
2840
2849extern int GEOS_DLL GEOSGeomGetY(const GEOSGeometry *g, double *y);
2850
2860extern int GEOS_DLL GEOSGeomGetZ(const GEOSGeometry *g, double *z);
2861
2871extern int GEOS_DLL GEOSGeomGetM(const GEOSGeometry *g, double *m);
2872
2882extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
2883 const GEOSGeometry* g,
2884 int n);
2885
2894extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
2895 const GEOSGeometry* g);
2896
2904extern int GEOS_DLL GEOSGetNumCoordinates(
2905 const GEOSGeometry* g);
2906
2917 const GEOSGeometry* g);
2918
2931extern int GEOS_DLL GEOSGeom_getDimensions(
2932 const GEOSGeometry* g);
2933
2946 const GEOSGeometry* g);
2947
2956extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
2957
2966extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
2967
2976extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
2977
2986extern int GEOS_DLL GEOSGeom_getYMax(const GEOSGeometry* g, double* value);
2987
3001extern int GEOS_DLL GEOSGeom_getExtent(
3002 const GEOSGeometry* g,
3003 double* xmin,
3004 double* ymin,
3005 double* xmax,
3006 double* ymax);
3007
3017extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
3018
3028
3038
3039
3048extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g);
3049
3058extern char GEOS_DLL GEOSisRing(const GEOSGeometry* g);
3059
3066extern char GEOS_DLL GEOSHasZ(const GEOSGeometry* g);
3067
3075extern char GEOS_DLL GEOSHasM(const GEOSGeometry* g);
3076
3085extern char GEOS_DLL GEOSisClosed(const GEOSGeometry *g);
3086
3088
3089/* ==================================================================================== */
3094
3101extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
3102
3110extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
3111
3131extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
3132
3143extern int GEOS_DLL GEOSOrientPolygons(GEOSGeometry* g,
3144 int exteriorCW);
3145
3147
3148/* ========== Validity checking ============================================================ */
3154
3162extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g);
3163
3177extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
3178
3188extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g);
3189
3204extern char GEOS_DLL GEOSisValidDetail(
3205 const GEOSGeometry* g,
3206 int flags,
3207 char** reason,
3208 GEOSGeometry** location);
3209
3218 const GEOSGeometry* g);
3219
3234 const GEOSGeometry* g,
3235 const GEOSMakeValidParams *makeValidParams);
3236
3246
3255
3266 enum GEOSMakeValidMethods method);
3267
3280 int keepCollapsed);
3281
3301extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
3302
3315
3334 const GEOSGeometry* g,
3335 double tolerance);
3336
3338
3339/* ========= Metric functions ================================================== */
3344
3352extern int GEOS_DLL GEOSArea(
3353 const GEOSGeometry* g,
3354 double *area);
3355
3363extern int GEOS_DLL GEOSLength(
3364 const GEOSGeometry* g,
3365 double *length);
3366
3376extern int GEOS_DLL GEOSGeomGetLength(
3377 const GEOSGeometry *g,
3378 double *length);
3379
3381
3382/* ========== Distance functions ================================================ */
3388
3397extern int GEOS_DLL GEOSDistance(
3398 const GEOSGeometry* g1,
3399 const GEOSGeometry* g2,
3400 double *dist);
3401
3412extern char GEOS_DLL GEOSDistanceWithin(
3413 const GEOSGeometry* g1,
3414 const GEOSGeometry* g2,
3415 double dist);
3416
3430extern int GEOS_DLL GEOSDistanceIndexed(
3431 const GEOSGeometry* g1,
3432 const GEOSGeometry* g2,
3433 double *dist);
3434
3447 const GEOSGeometry* g1,
3448 const GEOSGeometry* g2);
3449
3461extern int GEOS_DLL GEOSHausdorffDistance(
3462 const GEOSGeometry *g1,
3463 const GEOSGeometry *g2,
3464 double *dist);
3465
3481 const GEOSGeometry *g1,
3482 const GEOSGeometry *g2,
3483 double densifyFrac,
3484 double *dist);
3485
3499extern int GEOS_DLL GEOSFrechetDistance(
3500 const GEOSGeometry *g1,
3501 const GEOSGeometry *g2,
3502 double *dist);
3503
3520extern int GEOS_DLL GEOSFrechetDistanceDensify(
3521 const GEOSGeometry *g1,
3522 const GEOSGeometry *g2,
3523 double densifyFrac,
3524 double *dist);
3525
3527
3528/* ========== Linear referencing functions */
3534
3544extern double GEOS_DLL GEOSProject(const GEOSGeometry* line,
3545 const GEOSGeometry* point);
3546
3558extern GEOSGeometry GEOS_DLL *GEOSInterpolate(const GEOSGeometry* line,
3559 double d);
3560
3571extern double GEOS_DLL GEOSProjectNormalized(const GEOSGeometry* line,
3572 const GEOSGeometry* point);
3573
3584 const GEOSGeometry *line,
3585 double proportion);
3586
3588
3589/* ========== Overlay functions ========== */
3595
3606extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
3607
3622extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec(const GEOSGeometry* g1, const GEOSGeometry* g2, double gridSize);
3623
3635 const GEOSGeometry* ga,
3636 const GEOSGeometry* gb);
3637
3654 const GEOSGeometry* ga,
3655 const GEOSGeometry* gb,
3656 double gridSize);
3657
3670 const GEOSGeometry* ga,
3671 const GEOSGeometry* gb);
3672
3690 const GEOSGeometry* ga,
3691 const GEOSGeometry* gb,
3692 double gridSize);
3693
3704extern GEOSGeometry GEOS_DLL *GEOSUnion(
3705 const GEOSGeometry* ga,
3706 const GEOSGeometry* gb);
3707
3724 const GEOSGeometry* ga,
3725 const GEOSGeometry* gb,
3726 double gridSize);
3727
3739extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(const GEOSGeometry* g);
3740
3757 const GEOSGeometry* g,
3758 double gridSize);
3759
3771
3788 const GEOSGeometry* g,
3789 double xmin, double ymin,
3790 double xmax, double ymax);
3791
3811 const GEOSGeometry* g1,
3812 const GEOSGeometry* g2);
3814
3815/* ========== Clustering functions ========== */
3823static const size_t GEOS_CLUSTER_NONE = (size_t) -1;
3824
3826
3836extern GEOSClusterInfo GEOS_DLL* GEOSClusterDBSCAN(const GEOSGeometry* g, double eps, unsigned minPoints);
3837
3847extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryDistance(const GEOSGeometry* g, double d);
3848
3858
3868extern GEOSClusterInfo GEOS_DLL* GEOSClusterEnvelopeDistance(const GEOSGeometry* g, double d);
3869
3879
3888extern size_t GEOS_DLL GEOSClusterInfo_getNumClusters(const GEOSClusterInfo* clusters);
3889
3899extern size_t GEOS_DLL GEOSClusterInfo_getClusterSize(const GEOSClusterInfo* clusters, size_t i );
3900
3910extern size_t GEOS_DLL* GEOSClusterInfo_getClustersForInputs(const GEOSClusterInfo* clusters);
3911
3920extern const size_t GEOS_DLL* GEOSClusterInfo_getInputsForClusterN(const GEOSClusterInfo* clusters, size_t i);
3921
3929extern void GEOS_DLL GEOSClusterInfo_destroy(GEOSClusterInfo* clusters);
3930
3932
3933/* ========== Buffer related functions ========== */
3938
3950extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g,
3951 double width, int quadsegs);
3952
3962
3969extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
3970
3980 int style);
3981
3991 int joinStyle);
3992
4006 double mitreLimit);
4007
4020 int quadSegs);
4021
4034 int singleSided);
4035
4047 const GEOSGeometry* g,
4048 const GEOSBufferParams* p,
4049 double width);
4050
4065 const GEOSGeometry* g,
4066 double width,
4067 int quadsegs,
4068 int endCapStyle,
4069 int joinStyle,
4070 double mitreLimit);
4071
4095 double width, int quadsegs, int joinStyle, double mitreLimit);
4096
4098
4099
4100/* ====================================================================== */
4106
4119
4120
4144extern int GEOS_DLL GEOSCoverageIsValid(
4145 const GEOSGeometry* input,
4146 double gapWidth,
4147 GEOSGeometry** invalidEdges);
4148
4175 const GEOSGeometry* input,
4176 double tolerance,
4177 int preserveBoundary);
4178
4180
4181/* ========== Construction Operations ========== */
4186
4195extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
4196
4210extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
4211
4221extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
4222
4254 const GEOSGeometry* g,
4255 double ratio,
4256 unsigned int allowHoles);
4257
4288 const GEOSGeometry* g,
4289 double length,
4290 unsigned int allowHoles);
4291
4331 const GEOSGeometry* g,
4332 double lengthRatio,
4333 unsigned int isTight,
4334 unsigned int isHolesAllowed);
4335
4356 const GEOSGeometry* g,
4357 unsigned int isOuter,
4358 double vertexNumFraction);
4359
4360
4370
4393 const GEOSGeometry* g,
4394 unsigned int isOuter,
4395 unsigned int parameterMode,
4396 double parameter);
4397
4412
4438 const GEOSGeometry* g,
4439 double tolerance);
4440
4475 const GEOSGeometry* obstacles,
4476 const GEOSGeometry* boundary,
4477 double tolerance);
4478
4492extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
4493
4494
4505
4515extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
4516
4530 const GEOSGeometry* g,
4531 double* radius,
4532 GEOSGeometry** center);
4533
4548 const GEOSGeometry *g,
4549 double tolerance,
4550 int onlyEdges);
4551
4564 const GEOSGeometry *g);
4565
4576
4598 const GEOSGeometry *g,
4599 const GEOSGeometry *env,
4600 double tolerance,
4601 int flags);
4602
4604
4605/* ============================================================== */
4610
4621extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
4622
4666 const GEOSGeometry * const geoms[],
4667 unsigned int ngeoms);
4668
4684 const GEOSGeometry * const geoms[],
4685 unsigned int ngeoms);
4686
4701 const GEOSGeometry * const geoms[],
4702 unsigned int ngeoms);
4703
4719 const GEOSGeometry* input,
4720 GEOSGeometry** cuts,
4721 GEOSGeometry** dangles,
4722 GEOSGeometry** invalid);
4723
4735extern GEOSGeometry GEOS_DLL *GEOSBuildArea(const GEOSGeometry* g);
4736
4738
4739/* ============================================================== */
4744
4758extern GEOSGeometry GEOS_DLL *GEOSDensify(
4759 const GEOSGeometry* g,
4760 double tolerance);
4761
4773extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
4774
4789
4802 const GEOSGeometry* g,
4803 double start_fraction,
4804 double end_fraction);
4805
4816extern GEOSGeometry GEOS_DLL *GEOSReverse(const GEOSGeometry* g);
4817
4833 const GEOSGeometry* g,
4834 double tolerance);
4835
4853 const GEOSGeometry* g,
4854 double tolerance);
4855
4867 const GEOSGeometry* g);
4868
4884extern int GEOS_DLL GEOSHilbertCode(
4885 const GEOSGeometry *geom,
4886 const GEOSGeometry* extent,
4887 unsigned int level,
4888 unsigned int *code
4889);
4890
4906 const GEOSGeometry* g,
4907 GEOSTransformXYCallback callback,
4908 void* userdata);
4909
4925 const GEOSGeometry* g,
4926 GEOSTransformXYZCallback callback,
4927 void* userdata);
4928
4950extern GEOSGeometry GEOS_DLL *GEOSSnap(
4951 const GEOSGeometry* input,
4952 const GEOSGeometry* snap_target,
4953 double tolerance);
4954
4985 const GEOSGeometry *g,
4986 double gridSize,
4987 int flags);
4988
4990
4991/* ============================================================== */
4996
5005extern char GEOS_DLL GEOSDisjoint(const GEOSGeometry* g1, const GEOSGeometry* g2);
5006
5016extern char GEOS_DLL GEOSTouches(const GEOSGeometry* g1, const GEOSGeometry* g2);
5017
5026extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
5027
5037extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
5038
5048extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
5049
5059extern char GEOS_DLL GEOSContains(const GEOSGeometry* g1, const GEOSGeometry* g2);
5060
5070extern char GEOS_DLL GEOSOverlaps(const GEOSGeometry* g1, const GEOSGeometry* g2);
5071
5080extern char GEOS_DLL GEOSEquals(const GEOSGeometry* g1, const GEOSGeometry* g2);
5081
5092extern char GEOS_DLL GEOSCovers(const GEOSGeometry* g1, const GEOSGeometry* g2);
5093
5104extern char GEOS_DLL GEOSCoveredBy(const GEOSGeometry* g1, const GEOSGeometry* g2);
5105
5123extern char GEOS_DLL GEOSEqualsExact(
5124 const GEOSGeometry* g1,
5125 const GEOSGeometry* g2,
5126 double tolerance);
5127
5140extern char GEOS_DLL GEOSEqualsIdentical(
5141 const GEOSGeometry* g1,
5142 const GEOSGeometry* g2);
5143
5159extern char GEOS_DLL GEOSRelatePattern(
5160 const GEOSGeometry* g1,
5161 const GEOSGeometry* g2,
5162 const char *imPattern);
5163
5174extern char GEOS_DLL *GEOSRelate(
5175 const GEOSGeometry* g1,
5176 const GEOSGeometry* g2);
5177
5187extern char GEOS_DLL GEOSRelatePatternMatch(
5188 const char *intMatrix,
5189 const char *imPattern);
5190
5204extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
5205 const GEOSGeometry* g1,
5206 const GEOSGeometry* g2,
5207 int bnr);
5208
5210
5211/* ========== Prepared Geometry Binary predicates ========== */
5212
5224
5238extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(const GEOSGeometry* g);
5239
5248extern void GEOS_DLL GEOSPreparedGeom_destroy(const GEOSPreparedGeometry* g);
5249
5260extern char GEOS_DLL GEOSPreparedContains(
5261 const GEOSPreparedGeometry* pg1,
5262 const GEOSGeometry* g2);
5263
5275extern char GEOS_DLL GEOSPreparedContainsXY(
5276 const GEOSPreparedGeometry* pg1,
5277 double x,
5278 double y);
5279
5290extern char GEOS_DLL GEOSPreparedContainsProperly(
5291 const GEOSPreparedGeometry* pg1,
5292 const GEOSGeometry* g2);
5293
5304extern char GEOS_DLL GEOSPreparedCoveredBy(
5305 const GEOSPreparedGeometry* pg1,
5306 const GEOSGeometry* g2);
5307
5318extern char GEOS_DLL GEOSPreparedCovers(
5319 const GEOSPreparedGeometry* pg1,
5320 const GEOSGeometry* g2);
5321
5332extern char GEOS_DLL GEOSPreparedCrosses(
5333 const GEOSPreparedGeometry* pg1,
5334 const GEOSGeometry* g2);
5335
5346extern char GEOS_DLL GEOSPreparedDisjoint(
5347 const GEOSPreparedGeometry* pg1,
5348 const GEOSGeometry* g2);
5349
5360extern char GEOS_DLL GEOSPreparedIntersects(
5361 const GEOSPreparedGeometry* pg1,
5362 const GEOSGeometry* g2);
5363
5375extern char GEOS_DLL GEOSPreparedIntersectsXY(
5376 const GEOSPreparedGeometry* pg1,
5377 double x,
5378 double y);
5379
5390extern char GEOS_DLL GEOSPreparedOverlaps(
5391 const GEOSPreparedGeometry* pg1,
5392 const GEOSGeometry* g2);
5393
5404extern char GEOS_DLL GEOSPreparedTouches(
5405 const GEOSPreparedGeometry* pg1,
5406 const GEOSGeometry* g2);
5407
5418extern char GEOS_DLL GEOSPreparedWithin(
5419 const GEOSPreparedGeometry* pg1,
5420 const GEOSGeometry* g2);
5421
5435extern char GEOS_DLL * GEOSPreparedRelate(
5436 const GEOSPreparedGeometry* pg1,
5437 const GEOSGeometry* g2);
5438
5455extern char GEOS_DLL GEOSPreparedRelatePattern(
5456 const GEOSPreparedGeometry* pg1,
5457 const GEOSGeometry* g2,
5458 const char* imPattern);
5459
5473 const GEOSPreparedGeometry* pg1,
5474 const GEOSGeometry* g2);
5475
5489extern int GEOS_DLL GEOSPreparedDistance(
5490 const GEOSPreparedGeometry* pg1,
5491 const GEOSGeometry* g2,
5492 double *dist);
5493
5508extern char GEOS_DLL GEOSPreparedDistanceWithin(
5509 const GEOSPreparedGeometry* pg1,
5510 const GEOSGeometry* g2,
5511 double dist);
5512
5514
5515/* ========== STRtree functions ========== */
5521
5534extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
5535
5548extern int GEOS_DLL GEOSSTRtree_build(GEOSSTRtree *tree);
5549
5562extern void GEOS_DLL GEOSSTRtree_insert(
5563 GEOSSTRtree *tree,
5564 const GEOSGeometry *g,
5565 void *item);
5566
5581extern void GEOS_DLL GEOSSTRtree_query(
5582 GEOSSTRtree *tree,
5583 const GEOSGeometry *g,
5584 GEOSQueryCallback callback,
5585 void *userdata);
5586
5601extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(
5602 GEOSSTRtree *tree,
5603 const GEOSGeometry* geom);
5604
5625extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(
5626 GEOSSTRtree *tree,
5627 const void* item,
5628 const GEOSGeometry* itemEnvelope,
5629 GEOSDistanceCallback distancefn,
5630 void* userdata);
5631
5642extern void GEOS_DLL GEOSSTRtree_iterate(
5643 GEOSSTRtree *tree,
5644 GEOSQueryCallback callback,
5645 void *userdata);
5646
5661extern char GEOS_DLL GEOSSTRtree_remove(
5662 GEOSSTRtree *tree,
5663 const GEOSGeometry *g,
5664 void *item);
5665
5676extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
5677
5679
5680/* ========== Algorithms ====================================================== */
5685
5704extern int GEOS_DLL GEOSSegmentIntersection(
5705 double ax0, double ay0,
5706 double ax1, double ay1,
5707 double bx0, double by0,
5708 double bx1, double by1,
5709 double* cx, double* cy);
5710
5726extern int GEOS_DLL GEOSOrientationIndex(
5727 double Ax, double Ay,
5728 double Bx, double By,
5729 double Px, double Py);
5730
5732
5733/* ========= Reader and Writer APIs ========= */
5734
5739/* ========= WKT Reader ========= */
5740
5747
5753extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
5754
5764 GEOSWKTReader* reader,
5765 const char *wkt);
5766
5776 GEOSWKTReader *reader,
5777 char doFix);
5778
5779/* ========= WKT Writer ========= */
5780
5787
5793extern void GEOS_DLL GEOSWKTWriter_destroy(
5794 GEOSWKTWriter* writer);
5795
5805extern char GEOS_DLL *GEOSWKTWriter_write(
5806 GEOSWKTWriter* writer,
5807 const GEOSGeometry* g);
5808
5823extern void GEOS_DLL GEOSWKTWriter_setTrim(
5824 GEOSWKTWriter *writer,
5825 char trim);
5826
5836 GEOSWKTWriter *writer,
5837 int precision);
5838
5848 GEOSWKTWriter *writer,
5849 int dim);
5850
5859
5870extern void GEOS_DLL GEOSWKTWriter_setOld3D(
5871 GEOSWKTWriter *writer,
5872 int useOld3D);
5874
5875/* ============================================================================== */
5880
5881/* ========== WKB Reader ========== */
5888
5894extern void GEOS_DLL GEOSWKBReader_destroy(
5895 GEOSWKBReader* reader);
5896
5906 GEOSWKBReader *reader,
5907 char doFix);
5908
5918 GEOSWKBReader* reader,
5919 const unsigned char *wkb,
5920 size_t size);
5921
5931 GEOSWKBReader* reader,
5932 const unsigned char *hex,
5933 size_t size);
5934
5935/* ========== WKB Writer ========== */
5936
5943
5949extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
5950
5960extern unsigned char GEOS_DLL *GEOSWKBWriter_write(
5961 GEOSWKBWriter* writer,
5962 const GEOSGeometry* g,
5963 size_t *size);
5964
5974extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(
5975 GEOSWKBWriter* writer,
5976 const GEOSGeometry* g,
5977 size_t *size);
5978
5988 const GEOSWKBWriter* writer);
5989
5998 GEOSWKBWriter* writer,
5999 int newDimension);
6000
6010extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
6011 const GEOSWKBWriter* writer);
6012
6020extern void GEOS_DLL GEOSWKBWriter_setByteOrder(
6021 GEOSWKBWriter* writer,
6022 int byteOrder);
6023
6038extern int GEOS_DLL GEOSWKBWriter_getFlavor(
6039 const GEOSWKBWriter* writer);
6040
6049extern void GEOS_DLL GEOSWKBWriter_setFlavor(
6050 GEOSWKBWriter* writer,
6051 int flavor);
6052
6058extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
6059 const GEOSWKBWriter* writer);
6060
6068extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(
6069 GEOSWKBWriter* writer,
6070 const char writeSRID);
6071
6073
6074/* ============================================================================= */
6079/* ========= GeoJSON Reader ========= */
6080
6088
6095extern void GEOS_DLL GEOSGeoJSONReader_destroy(GEOSGeoJSONReader* reader);
6096
6108 GEOSGeoJSONReader* reader,
6109 const char *geojson);
6110
6111/* ========= GeoJSON Writer ========= */
6112
6120
6127extern void GEOS_DLL GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter* writer);
6128
6140 GEOSGeoJSONWriter* writer,
6141 const GEOSGeometry* g,
6142 int indent);
6143
6145
6146#endif /* #ifndef GEOS_USE_ONLY_R_API */
6147
6148/* ====================================================================== */
6149/* DEPRECATIONS */
6150/* ====================================================================== */
6151
6157
6162 const GEOSGeometry* g,
6163 double width, int quadsegs,
6164 int joinStyle, double mitreLimit,
6165 int leftSide);
6166
6171 GEOSContextHandle_t handle,
6172 const GEOSGeometry* g,
6173 double width, int quadsegs,
6174 int joinStyle, double mitreLimit,
6175 int leftSide);
6176
6182 GEOSMessageHandler notice_function,
6183 GEOSMessageHandler error_function);
6184
6188extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
6189
6194 GEOSContextHandle_t handle,
6195 const char *wkt);
6196
6200extern char GEOS_DLL *GEOSGeomToWKT_r(
6201 GEOSContextHandle_t handle,
6202 const GEOSGeometry* g);
6203
6207extern int GEOS_DLL GEOS_getWKBOutputDims_r(
6208 GEOSContextHandle_t handle);
6209
6213extern int GEOS_DLL GEOS_setWKBOutputDims_r(
6214 GEOSContextHandle_t handle,
6215 int newDims);
6216
6220extern int GEOS_DLL GEOS_getWKBByteOrder_r(
6221 GEOSContextHandle_t handle);
6222
6226extern int GEOS_DLL GEOS_setWKBByteOrder_r(
6227 GEOSContextHandle_t handle,
6228 int byteOrder);
6229
6234 GEOSContextHandle_t handle,
6235 const unsigned char *wkb,
6236 size_t size);
6237
6241extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(
6242 GEOSContextHandle_t handle,
6243 const GEOSGeometry* g,
6244 size_t *size);
6245
6250 GEOSContextHandle_t handle,
6251 const unsigned char *hex,
6252 size_t size);
6253
6257extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(
6258 GEOSContextHandle_t handle,
6259 const GEOSGeometry* g,
6260 size_t *size);
6261
6265extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(const char *wkt);
6266
6270extern char GEOS_DLL *GEOSGeomToWKT(const GEOSGeometry* g);
6271
6275extern int GEOS_DLL GEOS_getWKBOutputDims(void);
6276
6280extern int GEOS_DLL GEOS_setWKBOutputDims(int newDims);
6281
6285extern int GEOS_DLL GEOS_getWKBByteOrder(void);
6286
6290extern int GEOS_DLL GEOS_setWKBByteOrder(int byteOrder);
6291
6295extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size);
6296
6300extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
6301
6305extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
6306
6310extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(const GEOSGeometry* g, size_t *size);
6311
6316
6321 GEOSContextHandle_t handle,
6322 const GEOSGeometry* g);
6323
6325
6326/* ====================================================================== */
6327/* END DEPRECATIONS */
6328/* ====================================================================== */
6329
6330
6331#ifdef __cplusplus
6332} // extern "C"
6333#endif
6334
6335#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)
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)
GEOSGeometry * GEOSGeom_createEmptyCompoundCurve_r(GEOSContextHandle_t handle)
int GEOSGeomGetM(const GEOSGeometry *g, double *m)
GEOSGeometry * GEOSPolygonHullSimplify(const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
char GEOSisRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSSTRtree_build_r(GEOSContextHandle_t handle, GEOSSTRtree *tree)
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)
GEOSClusterInfo * GEOSClusterEnvelopeIntersects(const GEOSGeometry *g)
GEOSClusterEnvelopeIntersects.
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)
GEOSGeometry * GEOSConcaveHull_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
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)
void(*) typedef void(* GEOSMessageHandler_r)(const char *message, void *userdata)
Definition geos_c.h:118
GEOSGeometry * GEOSDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance, int onlyEdges)
GEOSGeometry ** GEOSGeom_releaseCollection(GEOSGeometry *collection, unsigned int *ngeoms)
void * GEOSGeom_getUserData_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSGeoJSONReader_t GEOSGeoJSONReader
Definition geos_c.h:1948
char GEOSRelatePattern_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, const char *imPattern)
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)
int GEOS_printDouble(double d, unsigned int precision, char *result)
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)
GEOSClusterInfo * GEOSClusterEnvelopeDistance(const GEOSGeometry *g, double d)
GEOSClusterEnvelopeDistance.
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)
GEOSGeometry * GEOSGeom_createRectangle_r(GEOSContextHandle_t handle, double xmin, double ymin, double xmax, double ymax)
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create(void)
int(* GEOSDistanceCallback)(const void *item1, const void *item2, double *distance, void *userdata)
Definition geos_c.h:283
GEOSGeometry * GEOSPolygonize_valid(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSWKTReader * GEOSWKTReader_create(void)
struct GEOSWKBReader_t GEOSWKBReader
Definition geos_c.h:1934
char GEOSHasM(const GEOSGeometry *g)
GEOSGeometry * GEOSConcaveHullByLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
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)
GEOSGeometry * GEOSCoverageSimplifyVW_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, double tolerance, int preserveBoundary)
void(* GEOSMessageHandler)(GEOS_PRINTF_FORMAT const char *fmt,...) GEOS_PRINTF_FORMAT_ATTR(1
Definition geos_c.h:105
int GEOSDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
int GEOSGeomGetM_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *m)
char GEOSTouches(const GEOSGeometry *g1, const GEOSGeometry *g2)
struct GEOSCoordSeq_t GEOSCoordSequence
Definition geos_c.h:155
GEOSGeometry * GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSRelatePatternMatch_r(GEOSContextHandle_t handle, const char *intMatrix, const char *imPattern)
void GEOSSTRtree_destroy(GEOSSTRtree *tree)
GEOSGeometry * GEOSGeom_createCircularString_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
void GEOSBufferParams_destroy(GEOSBufferParams *parms)
const size_t * GEOSClusterInfo_getInputsForClusterN_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters, size_t i)
int GEOSCoordSeq_setXY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSGeomTypes
Definition geos_c.h:204
@ GEOS_MULTILINESTRING
Definition geos_c.h:216
@ GEOS_GEOMETRYCOLLECTION
Definition geos_c.h:220
@ GEOS_POINT
Definition geos_c.h:206
@ GEOS_MULTIPOLYGON
Definition geos_c.h:218
@ GEOS_LINEARRING
Definition geos_c.h:210
@ GEOS_POLYGON
Definition geos_c.h:212
@ GEOS_MULTIPOINT
Definition geos_c.h:214
@ GEOS_LINESTRING
Definition geos_c.h:208
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)
GEOSGeometry * GEOSDisjointSubsetUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
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:264
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)
GEOSGeometry * GEOSCoverageSimplifyVW(const GEOSGeometry *input, double tolerance, int preserveBoundary)
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:140
char GEOSPreparedContainsXY_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
GEOSGeometry * GEOSGeom_createRectangle(double xmin, double ymin, double xmax, double ymax)
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)
int GEOSSTRtree_build(GEOSSTRtree *tree)
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)
GEOSGeometry * GEOSGeom_createEmptyCircularString_r(GEOSContextHandle_t handle)
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:250
@ GEOS_WKB_ISO
Definition geos_c.h:254
@ GEOS_WKB_EXTENDED
Definition geos_c.h:252
GEOSGeometry * GEOSDensify(const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSConstrainedDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKBReader_setFixStructure_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, char doFix)
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)
int GEOSOrientPolygons_r(GEOSContextHandle_t handle, GEOSGeometry *g, int exteriorCW)
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 GEOSPreparedRelatePattern_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, const char *im)
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)
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)
GEOSGeometry * GEOSLineMergeDirected_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
size_t * GEOSClusterInfo_getClustersForInputs_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters)
int GEOSFrechetDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
void GEOSWKTReader_setFixStructure_r(GEOSContextHandle_t handle, GEOSWKTReader *reader, char doFix)
GEOSWKTWriter * GEOSWKTWriter_create_r(GEOSContextHandle_t handle)
GEOSGeometry * GEOSGeomGetPointN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
void GEOSClusterInfo_destroy_r(GEOSContextHandle_t, GEOSClusterInfo *info)
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)
size_t GEOSClusterInfo_getNumClusters_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters)
GEOSGeometry * GEOSDelaunayTriangulation(const GEOSGeometry *g, double tolerance, int onlyEdges)
GEOSGeometry * GEOSGeom_createCurvePolygon_r(GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
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 GEOSCoverageIsValid(const GEOSGeometry *input, double gapWidth, GEOSGeometry **invalidEdges)
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)
GEOSGeometry * GEOSPolygonHullSimplifyMode_r(GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
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:623
@ GEOSBUF_CAP_SQUARE
Definition geos_c.h:632
@ GEOSBUF_CAP_FLAT
Definition geos_c.h:629
@ GEOSBUF_CAP_ROUND
Definition geos_c.h:626
GEOSGeometry * GEOSConvexHull(const GEOSGeometry *g)
GEOSVoronoiFlags
Definition geos_c.h:4568
@ GEOS_VORONOI_PRESERVE_ORDER
Definition geos_c.h:4574
@ GEOS_VORONOI_ONLY_EDGES
Definition geos_c.h:4570
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)
char GEOSPreparedIntersectsXY(const GEOSPreparedGeometry *pg1, double x, double y)
int GEOSBufferParams_setMitreLimit_r(GEOSContextHandle_t handle, GEOSBufferParams *p, double mitreLimit)
char GEOSContains(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_transformXYZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYZCallback callback, void *userdata)
char GEOSPreparedIntersectsXY_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
GEOSGeometry * GEOSBufferWithStyle(const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
GEOSGeometry * GEOSGeom_transformXY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
GEOSGeometry * GEOSBuildArea(const GEOSGeometry *g)
GEOSClusterInfo * GEOSClusterEnvelopeDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
GEOSValidFlags
Definition geos_c.h:1484
@ GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE
Definition geos_c.h:1486
void GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int byteOrder)
GEOSGeometry * GEOSGeom_transformXYZ(const GEOSGeometry *g, GEOSTransformXYZCallback callback, void *userdata)
GEOSBufferParams * GEOSBufferParams_create(void)
GEOSClusterInfo * GEOSClusterGeometryIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSWKBWriter_t GEOSWKBWriter
Definition geos_c.h:1941
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)
void GEOSWKTReader_setFixStructure(GEOSWKTReader *reader, char doFix)
GEOSGeometry * GEOSConcaveHullOfPolygons(const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
int GEOSGeomTypeId_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKTReader * GEOSWKTReader_create_r(GEOSContextHandle_t handle)
GEOSGeometry * GEOSGeom_createCompoundCurve_r(GEOSContextHandle_t handle, GEOSGeometry **curves, unsigned int ncurves)
struct GEOSWKTWriter_t GEOSWKTWriter
Definition geos_c.h:1927
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 ** GEOSGeom_releaseCollection_r(GEOSContextHandle_t handle, GEOSGeometry *collection, unsigned int *ngeoms)
GEOSGeometry * GEOSGeoJSONReader_readGeometry(GEOSGeoJSONReader *reader, const char *geojson)
GEOSGeometry * GEOSEnvelope_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSEqualsIdentical(const GEOSGeometry *g1, const GEOSGeometry *g2)
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)
int GEOSGeom_getExtent_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
GEOSGeometry * GEOSWKTReader_read_r(GEOSContextHandle_t handle, GEOSWKTReader *reader, const char *wkt)
char GEOSPreparedRelatePattern(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, const char *imPattern)
int GEOS_setWKBByteOrder(int byteOrder)
int GEOSCoverageIsValid_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, double gapWidth, GEOSGeometry **output)
void GEOSWKBReader_setFixStructure(GEOSWKBReader *reader, char doFix)
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)
int GEOSOrientPolygons(GEOSGeometry *g, int exteriorCW)
char GEOSOverlaps(const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSHasM_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKTWriter_setTrim_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, char trim)
GEOSGeometry * GEOSLineMergeDirected(const GEOSGeometry *g)
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:234
@ GEOS_WKB_NDR
Definition geos_c.h:238
@ GEOS_WKB_XDR
Definition geos_c.h:236
GEOSGeometry * GEOSVoronoiDiagram_r(GEOSContextHandle_t extHandle, const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
void GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const char writeSRID)
GEOSClusterInfo * GEOSClusterDBSCAN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double eps, unsigned minPoints)
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:1920
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 * GEOSDisjointSubsetUnion(const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createPointFromXY(double x, double y)
GEOSGeometry * GEOSRemoveRepeatedPoints(const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSVoronoiDiagram(const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
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:1441
@ GEOSRELATE_BNR_OGC
Definition geos_c.h:1445
@ GEOSRELATE_BNR_MULTIVALENT_ENDPOINT
Definition geos_c.h:1449
@ GEOSRELATE_BNR_ENDPOINT
Definition geos_c.h:1447
@ GEOSRELATE_BNR_MOD2
Definition geos_c.h:1443
@ GEOSRELATE_BNR_MONOVALENT_ENDPOINT
Definition geos_c.h:1451
const size_t * GEOSClusterInfo_getInputsForClusterN(const GEOSClusterInfo *clusters, size_t i)
GEOSClusterInfo_getInputsForClusterN.
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 * GEOSLineSubstring_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double start_fraction, double end_fdraction)
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)
GEOSPolygonHullParameterModes
Definition geos_c.h:4364
@ GEOSHULL_PARAM_AREA_RATIO
Definition geos_c.h:4368
@ GEOSHULL_PARAM_VERTEX_RATIO
Definition geos_c.h:4366
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:95
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)
int GEOSHilbertCode_r(GEOSContextHandle_t handle, const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
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:639
@ GEOSBUF_JOIN_MITRE
Definition geos_c.h:649
@ GEOSBUF_JOIN_ROUND
Definition geos_c.h:644
@ GEOSBUF_JOIN_BEVEL
Definition geos_c.h:654
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)
GEOSClusterInfo * GEOSClusterGeometryIntersects(const GEOSGeometry *g)
GEOSClusterGeometryIntersects.
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)
GEOSClusterInfo * GEOSClusterGeometryDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
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)
int(* GEOSTransformXYCallback)(double *x, double *y, void *userdata)
Definition geos_c.h:302
void GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer, int useOld3D)
int GEOSGeom_getExtent(const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
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)
GEOSGeometry * GEOSPolygonHullSimplifyMode(const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
int GEOSGeom_getCoordinateDimension(const GEOSGeometry *g)
size_t GEOSClusterInfo_getClusterSize(const GEOSClusterInfo *clusters, size_t i)
GEOSClusterInfo_getSize.
struct GEOSClusterInfo_t GEOSClusterInfo
Definition geos_c.h:182
int GEOSFrechetDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
char GEOSRelatePattern(const GEOSGeometry *g1, const GEOSGeometry *g2, const char *imPattern)
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:1955
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)
size_t * GEOSClusterInfo_getClustersForInputs(const GEOSClusterInfo *clusters)
GEOSClusterInfo_getClustersForInputs.
int GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
double GEOSProjectNormalized(const GEOSGeometry *line, const GEOSGeometry *point)
GEOSGeometry * GEOSGeom_createEmptyCircularString()
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)
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)
GEOSGeometry * GEOSGeom_transformXY(const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
size_t GEOSClusterInfo_getNumClusters(const GEOSClusterInfo *clusters)
GEOSClusterInfo_getNumClusters.
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)
GEOSGeometry * GEOSGeom_createCurvePolygon(GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSGeometry * GEOSLineSubstring(const GEOSGeometry *g, double start_fraction, double end_fraction)
char GEOSPreparedIntersects(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSClusterInfo * GEOSClusterDBSCAN(const GEOSGeometry *g, double eps, unsigned minPoints)
GEOSClusterDBSCAN.
GEOSGeometry * GEOSConcaveHullOfPolygons_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
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)
GEOSGeometry * GEOSGeom_createEmptyCurvePolygon()
int GEOSFrechetDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
struct GEOSBufParams_t GEOSBufferParams
Definition geos_c.h:169
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)
GEOSGeometry * GEOSPolygonHullSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
GEOSPrecisionRules
Definition geos_c.h:1623
@ GEOS_PREC_NO_TOPO
Definition geos_c.h:1627
@ GEOS_PREC_KEEP_COLLAPSED
Definition geos_c.h:1629
@ GEOS_PREC_VALID_OUTPUT
Definition geos_c.h:1625
int GEOSGetNumGeometries(const GEOSGeometry *g)
void * GEOSGeom_getUserData(const GEOSGeometry *g)
int GEOSGetNumCoordinates(const GEOSGeometry *g)
struct GEOSMakeValidParams_t GEOSMakeValidParams
Definition geos_c.h:176
char GEOSRelatePatternMatch(const char *intMatrix, const char *imPattern)
void GEOS_finish_r(GEOSContextHandle_t handle)
GEOSMakeValidMethods
Definition geos_c.h:1514
@ GEOS_MAKE_VALID_LINEWORK
Definition geos_c.h:1518
@ GEOS_MAKE_VALID_STRUCTURE
Definition geos_c.h:1523
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_createEmptyCompoundCurve()
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)
char GEOSEqualsIdentical_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSClusterInfo * GEOSClusterGeometryDistance(const GEOSGeometry *g, double d)
GEOSClusterGeometryDistance.
GEOSClusterInfo * GEOSClusterEnvelopeIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
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)
GEOSGeometry * GEOSConcaveHull(const GEOSGeometry *g, double ratio, unsigned int allowHoles)
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)
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)
char GEOSPreparedContainsXY(const GEOSPreparedGeometry *pg1, 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)
char * GEOSPreparedRelate_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
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)
GEOSGeometry * GEOSGeom_createCircularString(GEOSCoordSequence *s)
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)
int GEOSHilbertCode(const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
GEOSGeometry * GEOSConcaveHullByLength(const GEOSGeometry *g, double length, unsigned int allowHoles)
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:338
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:162
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 * GEOSRemoveRepeatedPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
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)
char * GEOSPreparedRelate(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
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)
GEOSGeometry * GEOSGeom_createCompoundCurve(GEOSGeometry **curves, unsigned int ncurves)
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_createEmptyCurvePolygon_r(GEOSContextHandle_t handle)
size_t GEOSClusterInfo_getClusterSize_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters, size_t i)
GEOSGeometry * GEOSGeom_createLinearRing(GEOSCoordSequence *s)
void GEOSClusterInfo_destroy(GEOSClusterInfo *clusters)
GEOSClusterInfo_destroy.
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)
int(* GEOSTransformXYZCallback)(double *x, double *y, double *z, void *userdata)
Definition geos_c.h:321
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:147