GEOS 3.16.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 16
65#endif
66#ifndef GEOS_VERSION_PATCH
67#define GEOS_VERSION_PATCH 0dev
68#endif
69#ifndef GEOS_VERSION
70#define GEOS_VERSION "3.16.0dev"
71#endif
72#ifndef GEOS_REVISION
73#define GEOS_REVISION "0d790d1"
74#endif
75#ifndef GEOS_JTS_PORT
76#define GEOS_JTS_PORT "1.20.0"
77#endif
78
79#define GEOS_CAPI_VERSION_MAJOR 1
80#define GEOS_CAPI_VERSION_MINOR 23
81#define GEOS_CAPI_VERSION_PATCH 0
82#define GEOS_CAPI_VERSION "3.16.0dev-CAPI-1.23.0"
83
84#define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
85#define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
86
89#include <geos/export.h>
90
91
98typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
99
108typedef void (*GEOSMessageHandler)(GEOS_PRINTF_FORMAT const char *fmt, ...)
109 GEOS_PRINTF_FORMAT_ATTR(1, 2);
110
121typedef void (*GEOSMessageHandler_r)(const char *message, void *userdata);
122
123
134typedef void (GEOSProgressCallback)(double progressRatio,
135 const char* message, void* userdata);
136
137
138/*
139* When we're included by geos_c.cpp, these types are #defined to the
140* C++ definitions via preprocessor. We don't touch them to allow the
141* compiler to cross-check the declarations. However, for all "normal"
142* C-API users, we need to define these types as "opaque" struct pointers, as
143* those clients don't have access to the original C++ headers, by design.
144*/
145#ifndef GEOSGeometry
146
158typedef struct GEOSGeom_t GEOSGeometry;
159
165typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
166
173typedef struct GEOSCoordSeq_t GEOSCoordSequence;
174
180typedef struct GEOSSTRtree_t GEOSSTRtree;
181
187typedef struct GEOSBufParams_t GEOSBufferParams;
188
194typedef struct GEOSCoverageCleanParams_t GEOSCoverageCleanParams;
195
201typedef struct GEOSMakeValidParams_t GEOSMakeValidParams;
202
207typedef struct GEOSClusterInfo_t GEOSClusterInfo;
208
214typedef struct GEOSCurveToLineParams_t GEOSCurveToLineParams;
215
221typedef struct GEOSLineToCurveParams_t GEOSLineToCurveParams;
222
228typedef struct GEOSisSimpleParams_t GEOSisSimpleParams;
229
230#endif /* ndef GEOSGeometry */
231
232
235/*
236* These are compatibility definitions for source compatibility
237* with GEOS 2.X clients relying on that type.
238*/
239typedef GEOSGeometry* GEOSGeom;
240typedef GEOSCoordSequence* GEOSCoordSeq;
241
268 GEOS_CIRCULARSTRING,
269 GEOS_COMPOUNDCURVE,
270 GEOS_CURVEPOLYGON,
271 GEOS_MULTICURVE,
272 GEOS_MULTISURFACE,
273};
274
287
303
318
326typedef void (*GEOSQueryCallback)(void *item, void *userdata);
327
345typedef int (*GEOSDistanceCallback)(
346 const void* item1,
347 const void* item2,
348 double* distance,
349 void* userdata);
350
351
365 double* x,
366 double* y,
367 void* userdata);
368
369
384 double* x,
385 double* y,
386 double* z,
387 void* userdata);
388
389
390/* ========== Interruption ========== */
399typedef void (GEOSInterruptCallback)(void);
400
409typedef int (GEOSContextInterruptCallback)(void*);
410
423
437 GEOSContextHandle_t extHandle,
439 void* userData);
440
447extern void GEOS_DLL GEOS_interruptRequest(void);
448
453extern void GEOS_DLL GEOS_interruptCancel(void);
454
455/* ========== Progress monitoring ========== */
456
468 GEOSContextHandle_t extHandle,
470 void* userData);
471
472/* ========== Initialization and Cleanup ========== */
473
482extern GEOSContextHandle_t GEOS_DLL GEOS_init_r(void);
483
491extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
492
502 GEOSContextHandle_t extHandle,
504
516 GEOSContextHandle_t extHandle,
518
529 GEOSContextHandle_t extHandle,
531 void *userData);
532
545 GEOSContextHandle_t extHandle,
547 void *userData);
548
562 GEOSContextHandle_t extHandle,
563 const GEOSCurveToLineParams* params);
564
578 GEOSContextHandle_t extHandle,
579 const GEOSLineToCurveParams* params);
580
581/* ========== Coordinate Sequence functions ========== */
582
585 GEOSContextHandle_t handle,
586 unsigned int size,
587 unsigned int dims);
588
591 GEOSContextHandle_t handle,
592 unsigned int size,
593 int hasZ,
594 int hasM);
595
598 GEOSContextHandle_t handle,
599 const double* buf,
600 unsigned int size,
601 int hasZ,
602 int hasM);
603
606 GEOSContextHandle_t handle,
607 const double* x,
608 const double* y,
609 const double* z,
610 const double* m,
611 unsigned int size);
612
614extern int GEOS_DLL GEOSCoordSeq_copyToBuffer_r(
615 GEOSContextHandle_t handle,
616 const GEOSCoordSequence* s,
617 double* buf,
618 int hasZ,
619 int hasM);
620
622extern int GEOS_DLL GEOSCoordSeq_copyToArrays_r(
623 GEOSContextHandle_t handle,
624 const GEOSCoordSequence* s,
625 double* x,
626 double* y,
627 double* z,
628 double* m);
629
632 GEOSContextHandle_t handle,
633 const GEOSCoordSequence* s);
634
636extern void GEOS_DLL GEOSCoordSeq_destroy_r(
637 GEOSContextHandle_t handle,
639
641extern char GEOS_DLL GEOSCoordSeq_hasZ_r(
642 GEOSContextHandle_t handle,
644
646extern char GEOS_DLL GEOSCoordSeq_hasM_r(
647 GEOSContextHandle_t handle,
649
651extern int GEOS_DLL GEOSCoordSeq_setX_r(
652 GEOSContextHandle_t handle,
653 GEOSCoordSequence* s, unsigned int idx,
654 double val);
655
657extern int GEOS_DLL GEOSCoordSeq_setY_r(
658 GEOSContextHandle_t handle,
659 GEOSCoordSequence* s, unsigned int idx,
660 double val);
661
663extern int GEOS_DLL GEOSCoordSeq_setZ_r(
664 GEOSContextHandle_t handle,
665 GEOSCoordSequence* s, unsigned int idx,
666 double val);
667
669extern int GEOS_DLL GEOSCoordSeq_setM_r(
670 GEOSContextHandle_t handle,
671 GEOSCoordSequence* s, unsigned int idx,
672 double val);
673
675extern int GEOS_DLL GEOSCoordSeq_setXY_r(
676 GEOSContextHandle_t handle,
677 GEOSCoordSequence* s, unsigned int idx,
678 double x, double y);
679
681extern int GEOS_DLL GEOSCoordSeq_setXYZ_r(
682 GEOSContextHandle_t handle,
683 GEOSCoordSequence* s, unsigned int idx,
684 double x, double y, double z);
685
687extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(
688 GEOSContextHandle_t handle,
690 unsigned int idx,
691 unsigned int dim, double val);
692
694extern int GEOS_DLL GEOSCoordSeq_getX_r(
695 GEOSContextHandle_t handle,
696 const GEOSCoordSequence* s,
697 unsigned int idx, double *val);
698
700extern int GEOS_DLL GEOSCoordSeq_getY_r(
701 GEOSContextHandle_t handle,
702 const GEOSCoordSequence* s,
703 unsigned int idx, double *val);
704
706extern int GEOS_DLL GEOSCoordSeq_getZ_r(
707 GEOSContextHandle_t handle,
708 const GEOSCoordSequence* s,
709 unsigned int idx, double *val);
710
712extern int GEOS_DLL GEOSCoordSeq_getM_r(
713 GEOSContextHandle_t handle,
714 const GEOSCoordSequence* s,
715 unsigned int idx, double *val);
716
718extern int GEOS_DLL GEOSCoordSeq_getXY_r(
719 GEOSContextHandle_t handle,
720 const GEOSCoordSequence* s,
721 unsigned int idx,
722 double *x, double *y);
723
725extern int GEOS_DLL GEOSCoordSeq_getXYZ_r(
726 GEOSContextHandle_t handle,
727 const GEOSCoordSequence* s,
728 unsigned int idx,
729 double *x, double *y, double *z);
730
732extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(
733 GEOSContextHandle_t handle,
734 const GEOSCoordSequence* s,
735 unsigned int idx,
736 unsigned int dim, double *val);
737
739extern int GEOS_DLL GEOSCoordSeq_getSize_r(
740 GEOSContextHandle_t handle,
741 const GEOSCoordSequence* s,
742 unsigned int *size);
743
746 GEOSContextHandle_t handle,
747 const GEOSCoordSequence* s,
748 unsigned int *dims);
749
751extern int GEOS_DLL GEOSCoordSeq_isCCW_r(
752 GEOSContextHandle_t handle,
753 const GEOSCoordSequence* s,
754 char* is_ccw);
755
756/* ========= Linear referencing functions ========= */
757
759extern double GEOS_DLL GEOSProject_r(
760 GEOSContextHandle_t handle,
761 const GEOSGeometry *line,
762 const GEOSGeometry *point);
763
766 GEOSContextHandle_t handle,
767 const GEOSGeometry *line,
768 double d);
769
771extern double GEOS_DLL GEOSProjectNormalized_r(
772 GEOSContextHandle_t handle,
773 const GEOSGeometry *g,
774 const GEOSGeometry *p);
775
778 GEOSContextHandle_t handle,
779 const GEOSGeometry *g,
780 double d);
781
782/* ========== Buffer related functions ========== */
783
785extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(
786 GEOSContextHandle_t handle,
787 const GEOSGeometry* g,
788 double width, int quadsegs);
789
805
827
830 GEOSContextHandle_t handle);
831
833extern void GEOS_DLL GEOSBufferParams_destroy_r(
834 GEOSContextHandle_t handle,
835 GEOSBufferParams* parms);
836
839 GEOSContextHandle_t handle,
841 int style);
842
845 GEOSContextHandle_t handle,
847 int joinStyle);
848
851 GEOSContextHandle_t handle,
853 double mitreLimit);
854
857 GEOSContextHandle_t handle,
859 int quadSegs);
860
863 GEOSContextHandle_t handle,
865 int singleSided);
866
869 GEOSContextHandle_t handle,
870 const GEOSGeometry* g,
871 const GEOSBufferParams* p,
872 double width);
873
876 GEOSContextHandle_t handle,
877 const GEOSGeometry* g,
878 double width, int quadsegs, int endCapStyle,
879 int joinStyle, double mitreLimit);
880
883 GEOSContextHandle_t handle,
884 const GEOSGeometry* g,
885 double tolerance);
886
889 GEOSContextHandle_t handle,
890 const GEOSGeometry* g, double width, int quadsegs,
891 int joinStyle, double mitreLimit);
892
893
894/* ========= Geometry Constructors ========= */
895
898 GEOSContextHandle_t handle,
900
903 GEOSContextHandle_t handle,
904 double x, double y);
905
908 GEOSContextHandle_t handle);
909
912 GEOSContextHandle_t handle,
914
917 GEOSContextHandle_t handle,
919
922 GEOSContextHandle_t handle);
923
926 GEOSContextHandle_t handle);
927
930 GEOSContextHandle_t handle,
931 GEOSGeometry* shell,
932 GEOSGeometry** holes,
933 unsigned int nholes);
934
937 GEOSContextHandle_t handle,
938 int type,
939 GEOSGeometry* *geoms,
940 unsigned int ngeoms);
941
944 GEOSContextHandle_t handle,
945 GEOSGeometry * collection,
946 unsigned int * ngeoms);
947
950 GEOSContextHandle_t handle, int type);
951
954 GEOSContextHandle_t handle,
955 double xmin, double ymin,
956 double xmax, double ymax);
957
960 GEOSContextHandle_t handle,
961 const GEOSGeometry* g);
962
965 GEOSContextHandle_t handle,
967
970 GEOSContextHandle_t handle);
971
974 GEOSContextHandle_t handle,
975 GEOSGeometry** curves,
976 unsigned int ncurves);
977
980 GEOSContextHandle_t handle);
981
984 GEOSContextHandle_t handle,
985 GEOSGeometry* shell,
986 GEOSGeometry** holes,
987 unsigned int nholes);
988
991 GEOSContextHandle_t handle);
992
993/* ========= Memory management ========= */
994
996extern void GEOS_DLL GEOSGeom_destroy_r(
997 GEOSContextHandle_t handle,
998 GEOSGeometry* g);
999
1000/* ========= Coverages ========= */
1001
1003extern GEOSGeometry GEOS_DLL *
1005 GEOSContextHandle_t handle,
1006 const GEOSGeometry* g);
1007
1009extern int GEOS_DLL
1011 GEOSContextHandle_t extHandle,
1012 const GEOSGeometry* input,
1013 double gapWidth,
1014 GEOSGeometry** output);
1015
1017extern GEOSGeometry GEOS_DLL *
1019 GEOSContextHandle_t extHandle,
1020 const GEOSGeometry* input,
1021 double tolerance,
1022 int preserveBoundary);
1023
1025extern GEOSGeometry GEOS_DLL *
1027 GEOSContextHandle_t handle,
1028 const GEOSGeometry* input,
1029 int edgetype);
1030
1032extern GEOSCoverageCleanParams GEOS_DLL *
1034 GEOSContextHandle_t extHandle);
1035
1037extern void GEOS_DLL
1039 GEOSContextHandle_t extHandle,
1040 GEOSCoverageCleanParams* params);
1041
1043extern int GEOS_DLL
1045 GEOSContextHandle_t extHandle,
1047 double snappingDistance);
1048
1050extern int GEOS_DLL
1052 GEOSContextHandle_t extHandle,
1054 double gapMaximumWidth);
1055
1057extern int GEOS_DLL
1059 GEOSContextHandle_t extHandle,
1061 int overlapMergeStrategy);
1062
1064extern GEOSGeometry GEOS_DLL *
1066 GEOSContextHandle_t extHandle,
1067 const GEOSGeometry* input,
1068 const GEOSCoverageCleanParams* params);
1069
1071extern GEOSGeometry GEOS_DLL *
1073 GEOSContextHandle_t extHandle,
1074 const GEOSGeometry* input);
1075
1076/* ========= Topology Operations ========= */
1077
1080 GEOSContextHandle_t handle,
1081 const GEOSGeometry* g);
1082
1085 GEOSContextHandle_t handle,
1086 const GEOSGeometry* g1,
1087 const GEOSGeometry* g2);
1088
1091 GEOSContextHandle_t handle,
1092 const GEOSGeometry* g1,
1093 const GEOSGeometry* g2,
1094 double gridSize);
1095
1098 GEOSContextHandle_t handle,
1099 const GEOSGeometry* g);
1100
1103 GEOSContextHandle_t handle,
1104 const GEOSGeometry* g,
1105 double ratio,
1106 unsigned int allowHoles);
1107
1110 GEOSContextHandle_t handle,
1111 const GEOSGeometry* g,
1112 double ratio,
1113 unsigned int allowHoles);
1114
1117 GEOSContextHandle_t handle,
1118 const GEOSGeometry* g,
1119 unsigned int isOuter,
1120 double vertexNumFraction);
1121
1131
1134 GEOSContextHandle_t handle,
1135 const GEOSGeometry* g,
1136 unsigned int isOuter,
1137 unsigned int parameterMode,
1138 double parameter);
1139
1142 GEOSContextHandle_t handle,
1143 const GEOSGeometry* g,
1144 double lengthRatio,
1145 unsigned int isTight,
1146 unsigned int isHolesAllowed);
1147
1150 GEOSContextHandle_t handle,
1151 const GEOSGeometry* g);
1152
1155 GEOSContextHandle_t handle,
1156 const GEOSGeometry* g,
1157 double tolerance);
1158
1161 GEOSContextHandle_t handle,
1162 const GEOSGeometry* g,
1163 const GEOSGeometry* boundary,
1164 double tolerance);
1165
1168 GEOSContextHandle_t handle,
1169 const GEOSGeometry* g);
1170
1173 GEOSContextHandle_t handle,
1174 const GEOSGeometry* g);
1175
1177extern int GEOS_DLL GEOSMinimumClearance_r(
1178 GEOSContextHandle_t handle,
1179 const GEOSGeometry* g,
1180 double* distance);
1181
1184 GEOSContextHandle_t handle,
1185 const GEOSGeometry* g1,
1186 const GEOSGeometry* g2);
1187
1190 GEOSContextHandle_t handle,
1191 const GEOSGeometry* g1,
1192 const GEOSGeometry* g2,
1193 double gridSize);
1194
1197 GEOSContextHandle_t handle,
1198 const GEOSGeometry* g1,
1199 const GEOSGeometry* g2);
1200
1203 GEOSContextHandle_t handle,
1204 const GEOSGeometry* g1,
1205 const GEOSGeometry* g2,
1206 double gridSize);
1207
1210 GEOSContextHandle_t handle,
1211 const GEOSGeometry* g);
1212
1214extern GEOSGeometry GEOS_DLL *GEOSUnion_r(
1215 GEOSContextHandle_t handle,
1216 const GEOSGeometry* g1,
1217 const GEOSGeometry* g2);
1218
1221 GEOSContextHandle_t handle,
1222 const GEOSGeometry* g1,
1223 const GEOSGeometry* g2,
1224 double gridSize);
1225
1228 GEOSContextHandle_t handle,
1229 const GEOSGeometry* g);
1230
1233 GEOSContextHandle_t handle,
1234 const GEOSGeometry* g,
1235 double gridSize);
1236
1239 GEOSContextHandle_t handle,
1240 const GEOSGeometry* g);
1241
1244 GEOSContextHandle_t handle,
1245 const GEOSGeometry* g);
1246
1249 GEOSContextHandle_t handle,
1250 const GEOSGeometry* g);
1251
1254 GEOSContextHandle_t handle,
1255 const GEOSGeometry* g,
1256 double* radius,
1257 GEOSGeometry** center);
1258
1260extern GEOSGeometry GEOS_DLL *GEOSNode_r(
1261 GEOSContextHandle_t handle,
1262 const GEOSGeometry* g);
1263
1265extern GEOSGeometry GEOS_DLL *GEOSSplit_r(
1266 GEOSContextHandle_t handle,
1267 const GEOSGeometry* g,
1268 const GEOSGeometry* edge);
1269
1272 GEOSContextHandle_t handle,
1273 const GEOSGeometry* g,
1274 double xmin, double ymin,
1275 double xmax, double ymax);
1276
1279 GEOSContextHandle_t handle,
1280 const GEOSGeometry* g,
1281 double xmin, double ymin,
1282 double xmax, double ymax,
1283 unsigned nx, unsigned ny,
1284 int includeExterior);
1285
1288 GEOSContextHandle_t handle,
1289 const GEOSGeometry* g,
1290 double xmin, double ymin,
1291 double xmax, double ymax,
1292 unsigned nx, unsigned ny,
1293 float* buf);
1294
1297 GEOSContextHandle_t handle,
1298 const GEOSGeometry *const geoms[],
1299 unsigned int ngeoms);
1300
1303 GEOSContextHandle_t handle,
1304 const GEOSGeometry *const geoms[],
1305 unsigned int ngems);
1306
1309 GEOSContextHandle_t handle,
1310 const GEOSGeometry * const geoms[],
1311 unsigned int ngeoms);
1312
1315 GEOSContextHandle_t handle,
1316 const GEOSGeometry* input,
1317 GEOSGeometry** cuts,
1318 GEOSGeometry** dangles,
1319 GEOSGeometry** invalidRings);
1320
1323 GEOSContextHandle_t handle,
1324 const GEOSGeometry* g);
1325
1328 GEOSContextHandle_t handle,
1329 const GEOSGeometry* g);
1330
1332extern size_t GEOS_DLL *GEOSMinimumSpanningTree_r(
1333 GEOSContextHandle_t handle,
1334 const GEOSGeometry * const geoms[],
1335 unsigned int ngeoms);
1336
1339 GEOSContextHandle_t handle,
1340 const GEOSGeometry* g);
1341
1344 GEOSContextHandle_t handle,
1345 const GEOSGeometry* g,
1346 double start_fraction,
1347 double end_fdraction);
1348
1351 GEOSContextHandle_t handle,
1352 const GEOSGeometry* g);
1353
1356 GEOSContextHandle_t handle,
1357 const GEOSGeometry* g,
1358 double tolerance);
1359
1362 GEOSContextHandle_t handle,
1363 const GEOSGeometry* g, double tolerance);
1364
1367 GEOSContextHandle_t handle,
1368 const GEOSGeometry* g);
1369
1372 GEOSContextHandle_t handle,
1373 const GEOSGeometry* g1,
1374 const GEOSGeometry* g2);
1375
1377extern GEOSGeometry GEOS_DLL *GEOSSnap_r(
1378 GEOSContextHandle_t handle,
1379 const GEOSGeometry* g1,
1380 const GEOSGeometry* g2,
1381 double tolerance);
1382
1385 GEOSContextHandle_t handle,
1386 const GEOSGeometry *g,
1387 double tolerance,
1388 int onlyEdges);
1389
1392 GEOSContextHandle_t handle,
1393 const GEOSGeometry *g);
1394
1405
1408 GEOSContextHandle_t extHandle,
1409 const GEOSGeometry *g,
1410 const GEOSGeometry *env,
1411 double tolerance,
1412 int flags);
1413
1415extern int GEOS_DLL GEOSSegmentIntersection_r(
1416 GEOSContextHandle_t extHandle,
1417 double ax0, double ay0,
1418 double ax1, double ay1,
1419 double bx0, double by0,
1420 double bx1, double by1,
1421 double* cx, double* cy);
1422
1423/* ========= Binary predicates ========= */
1424
1426extern char GEOS_DLL GEOSDisjoint_r(
1427 GEOSContextHandle_t handle,
1428 const GEOSGeometry* g1,
1429 const GEOSGeometry* g2);
1430
1432extern char GEOS_DLL GEOSTouches_r(
1433 GEOSContextHandle_t handle,
1434 const GEOSGeometry* g1,
1435 const GEOSGeometry* g2);
1436
1438extern char GEOS_DLL GEOSIntersects_r(
1439 GEOSContextHandle_t handle,
1440 const GEOSGeometry* g1,
1441 const GEOSGeometry* g2);
1442
1444extern char GEOS_DLL GEOSCrosses_r(
1445 GEOSContextHandle_t handle,
1446 const GEOSGeometry* g1,
1447 const GEOSGeometry* g2);
1448
1450extern char GEOS_DLL GEOSWithin_r(
1451 GEOSContextHandle_t handle,
1452 const GEOSGeometry* g1,
1453 const GEOSGeometry* g2);
1454
1456extern char GEOS_DLL GEOSContains_r(
1457 GEOSContextHandle_t handle,
1458 const GEOSGeometry* g1,
1459 const GEOSGeometry* g2);
1460
1462extern char GEOS_DLL GEOSOverlaps_r(
1463 GEOSContextHandle_t handle,
1464 const GEOSGeometry* g1,
1465 const GEOSGeometry* g2);
1466
1468extern char GEOS_DLL GEOSEquals_r(
1469 GEOSContextHandle_t handle,
1470 const GEOSGeometry* g1,
1471 const GEOSGeometry* g2);
1472
1474extern char GEOS_DLL GEOSEqualsExact_r(
1475 GEOSContextHandle_t handle,
1476 const GEOSGeometry* g1,
1477 const GEOSGeometry* g2,
1478 double tolerance);
1479
1481extern char GEOS_DLL GEOSEqualsIdentical_r(
1482 GEOSContextHandle_t handle,
1483 const GEOSGeometry* g1,
1484 const GEOSGeometry* g2);
1485
1487extern char GEOS_DLL GEOSCovers_r(
1488 GEOSContextHandle_t handle,
1489 const GEOSGeometry* g1,
1490 const GEOSGeometry* g2);
1491
1493extern char GEOS_DLL GEOSCoveredBy_r(
1494 GEOSContextHandle_t handle,
1495 const GEOSGeometry* g1,
1496 const GEOSGeometry* g2);
1497
1498/* ========= Prepared Geometry Binary Predicates ========== */
1499
1502 GEOSContextHandle_t handle,
1503 const GEOSGeometry* g);
1504
1506extern void GEOS_DLL GEOSPreparedGeom_destroy_r(
1507 GEOSContextHandle_t handle,
1508 const GEOSPreparedGeometry* g);
1509
1511extern char GEOS_DLL GEOSPreparedContains_r(
1512 GEOSContextHandle_t handle,
1513 const GEOSPreparedGeometry* pg1,
1514 const GEOSGeometry* g2);
1515
1517extern char GEOS_DLL GEOSPreparedContainsXY_r(
1518 GEOSContextHandle_t handle,
1519 const GEOSPreparedGeometry* pg1,
1520 double x,
1521 double y);
1522
1525 GEOSContextHandle_t handle,
1526 const GEOSPreparedGeometry* pg1,
1527 const GEOSGeometry* g2);
1528
1530extern char GEOS_DLL GEOSPreparedCoveredBy_r(
1531 GEOSContextHandle_t handle,
1532 const GEOSPreparedGeometry* pg1,
1533 const GEOSGeometry* g2);
1534
1536extern char GEOS_DLL GEOSPreparedCovers_r(
1537 GEOSContextHandle_t handle,
1538 const GEOSPreparedGeometry* pg1,
1539 const GEOSGeometry* g2);
1540
1542extern char GEOS_DLL GEOSPreparedCrosses_r(
1543 GEOSContextHandle_t handle,
1544 const GEOSPreparedGeometry* pg1,
1545 const GEOSGeometry* g2);
1546
1548extern char GEOS_DLL GEOSPreparedDisjoint_r(
1549 GEOSContextHandle_t handle,
1550 const GEOSPreparedGeometry* pg1,
1551 const GEOSGeometry* g2);
1552
1554extern char GEOS_DLL GEOSPreparedIntersects_r(
1555 GEOSContextHandle_t handle,
1556 const GEOSPreparedGeometry* pg1,
1557 const GEOSGeometry* g2);
1558
1560extern char GEOS_DLL GEOSPreparedIntersectsXY_r(
1561 GEOSContextHandle_t handle,
1562 const GEOSPreparedGeometry* pg1,
1563 double x,
1564 double y);
1565
1567extern char GEOS_DLL GEOSPreparedOverlaps_r(
1568 GEOSContextHandle_t handle,
1569 const GEOSPreparedGeometry* pg1,
1570 const GEOSGeometry* g2);
1571
1573extern char GEOS_DLL GEOSPreparedTouches_r(
1574 GEOSContextHandle_t handle,
1575 const GEOSPreparedGeometry* pg1,
1576 const GEOSGeometry* g2);
1577
1579extern char GEOS_DLL GEOSPreparedWithin_r(
1580 GEOSContextHandle_t handle,
1581 const GEOSPreparedGeometry* pg1,
1582 const GEOSGeometry* g2);
1583
1585extern char GEOS_DLL * GEOSPreparedRelate_r(
1586 GEOSContextHandle_t handle,
1587 const GEOSPreparedGeometry* pg1,
1588 const GEOSGeometry* g2);
1589
1591extern char GEOS_DLL GEOSPreparedRelatePattern_r(
1592 GEOSContextHandle_t handle,
1593 const GEOSPreparedGeometry* pg1,
1594 const GEOSGeometry* g2,
1595 const char* im);
1596
1599 GEOSContextHandle_t handle,
1600 const GEOSPreparedGeometry* pg1,
1601 const GEOSGeometry* g2);
1602
1604extern int GEOS_DLL GEOSPreparedDistance_r(
1605 GEOSContextHandle_t handle,
1606 const GEOSPreparedGeometry* pg1,
1607 const GEOSGeometry* g2, double *dist);
1608
1610extern char GEOS_DLL GEOSPreparedDistanceWithin_r(
1611 GEOSContextHandle_t handle,
1612 const GEOSPreparedGeometry* pg1,
1613 const GEOSGeometry* g2, double dist);
1614
1615/* ========== STRtree ========== */
1616
1619 GEOSContextHandle_t handle,
1620 size_t nodeCapacity);
1621
1623extern int GEOS_DLL GEOSSTRtree_build_r(
1624 GEOSContextHandle_t handle,
1625 GEOSSTRtree *tree);
1626
1628extern void GEOS_DLL GEOSSTRtree_insert_r(
1629 GEOSContextHandle_t handle,
1630 GEOSSTRtree *tree,
1631 const GEOSGeometry *g,
1632 void *item);
1633
1635extern void GEOS_DLL GEOSSTRtree_query_r(
1636 GEOSContextHandle_t handle,
1637 GEOSSTRtree *tree,
1638 const GEOSGeometry *g,
1639 GEOSQueryCallback callback,
1640 void *userdata);
1641
1644 GEOSContextHandle_t handle,
1645 GEOSSTRtree *tree,
1646 const GEOSGeometry* geom);
1647
1649extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(
1650 GEOSContextHandle_t handle,
1651 GEOSSTRtree *tree,
1652 const void* item,
1653 const GEOSGeometry* itemEnvelope,
1654 GEOSDistanceCallback distancefn,
1655 void* userdata);
1656
1658extern void GEOS_DLL GEOSSTRtree_iterate_r(
1659 GEOSContextHandle_t handle,
1660 GEOSSTRtree *tree,
1661 GEOSQueryCallback callback,
1662 void *userdata);
1663
1665extern char GEOS_DLL GEOSSTRtree_remove_r(
1666 GEOSContextHandle_t handle,
1667 GEOSSTRtree *tree,
1668 const GEOSGeometry *g,
1669 void *item);
1670
1672extern void GEOS_DLL GEOSSTRtree_destroy_r(
1673 GEOSContextHandle_t handle,
1674 GEOSSTRtree *tree);
1675
1676
1677/* ========= Unary predicate ========= */
1678
1680extern char GEOS_DLL GEOSisEmpty_r(
1681 GEOSContextHandle_t handle,
1682 const GEOSGeometry* g);
1683
1685extern char GEOS_DLL GEOSisSimple_r(
1686 GEOSContextHandle_t handle,
1687 const GEOSGeometry* g);
1688
1690extern GEOSisSimpleParams GEOS_DLL *
1692 GEOSContextHandle_t handle);
1693
1695extern void GEOS_DLL
1697 GEOSContextHandle_t handle,
1698 GEOSisSimpleParams* params);
1699
1702 GEOSContextHandle_t handle,
1703 GEOSisSimpleParams* params,
1704 int findAllLocations);
1705
1708 GEOSContextHandle_t handle,
1709 GEOSisSimpleParams* params,
1710 int bnr);
1711
1713extern char GEOS_DLL GEOSisSimpleWithParams_r(
1714 GEOSContextHandle_t handle,
1715 const GEOSGeometry* g,
1716 const GEOSisSimpleParams* params,
1717 GEOSGeometry** location);
1718
1720extern char GEOS_DLL GEOSisRing_r(
1721 GEOSContextHandle_t handle,
1722 const GEOSGeometry* g);
1723
1725extern char GEOS_DLL GEOSHasZ_r(
1726 GEOSContextHandle_t handle,
1727 const GEOSGeometry* g);
1728
1730extern char GEOS_DLL GEOSHasM_r(
1731 GEOSContextHandle_t handle,
1732 const GEOSGeometry* g);
1733
1735extern char GEOS_DLL GEOSisClosed_r(
1736 GEOSContextHandle_t handle,
1737 const GEOSGeometry *g);
1738
1739/* ========== Dimensionally Extended 9 Intersection Model ========== */
1740
1757
1759extern char GEOS_DLL GEOSRelatePattern_r(
1760 GEOSContextHandle_t handle,
1761 const GEOSGeometry* g1,
1762 const GEOSGeometry* g2,
1763 const char *imPattern);
1764
1766extern char GEOS_DLL *GEOSRelate_r(
1767 GEOSContextHandle_t handle,
1768 const GEOSGeometry* g1,
1769 const GEOSGeometry* g2);
1770
1772extern char GEOS_DLL GEOSRelatePatternMatch_r(
1773 GEOSContextHandle_t handle,
1774 const char *intMatrix,
1775 const char *imPattern);
1776
1778extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(
1779 GEOSContextHandle_t handle,
1780 const GEOSGeometry* g1,
1781 const GEOSGeometry* g2,
1782 int bnr);
1783
1784/* ========= Validity checking ========= */
1785
1792
1794extern char GEOS_DLL GEOSisValid_r(
1795 GEOSContextHandle_t handle,
1796 const GEOSGeometry* g);
1797
1799extern char GEOS_DLL *GEOSisValidReason_r(
1800 GEOSContextHandle_t handle,
1801 const GEOSGeometry* g);
1802
1804extern char GEOS_DLL GEOSisSimpleDetail_r(
1805 GEOSContextHandle_t handle,
1806 const GEOSGeometry* g,
1807 int findAllLocations,
1808 GEOSGeometry** location);
1809
1811extern char GEOS_DLL GEOSisValidDetail_r(
1812 GEOSContextHandle_t handle,
1813 const GEOSGeometry* g,
1814 int flags,
1815 char** reason,
1816 GEOSGeometry** location);
1817
1818/* ========== Make Valid ========== */
1819
1836
1839 GEOSContextHandle_t extHandle);
1840
1843 GEOSContextHandle_t handle,
1844 GEOSMakeValidParams* parms);
1845
1848 GEOSContextHandle_t handle,
1850 int style);
1851
1854 GEOSContextHandle_t handle,
1856 enum GEOSMakeValidMethods method);
1857
1860 GEOSContextHandle_t handle,
1861 const GEOSGeometry* g);
1862
1865 GEOSContextHandle_t handle,
1866 const GEOSGeometry* g,
1867 const GEOSMakeValidParams* makeValidParams);
1868
1871 GEOSContextHandle_t handle,
1872 const GEOSGeometry* g,
1873 double tolerance);
1874
1875/* ========== Geometry info ========== */
1876
1878/* Return NULL on exception, result must be freed by caller. */
1879extern char GEOS_DLL *GEOSGeomType_r(
1880 GEOSContextHandle_t handle,
1881 const GEOSGeometry* g);
1882
1884extern int GEOS_DLL GEOSGeomTypeId_r(
1885 GEOSContextHandle_t handle,
1886 const GEOSGeometry* g);
1887
1889extern int GEOS_DLL GEOSGetSRID_r(
1890 GEOSContextHandle_t handle,
1891 const GEOSGeometry* g);
1892
1894extern void GEOS_DLL GEOSSetSRID_r(
1895 GEOSContextHandle_t handle,
1896 GEOSGeometry* g, int SRID);
1897
1899extern void GEOS_DLL *GEOSGeom_getUserData_r(
1900 GEOSContextHandle_t handle,
1901 const GEOSGeometry* g);
1902
1904extern void GEOS_DLL GEOSGeom_setUserData_r(
1905 GEOSContextHandle_t handle,
1906 GEOSGeometry* g,
1907 void* userData);
1908
1910extern int GEOS_DLL GEOSGetNumGeometries_r(
1911 GEOSContextHandle_t handle,
1912 const GEOSGeometry* g);
1913
1915extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1916 GEOSContextHandle_t handle,
1917 const GEOSGeometry* g, int n);
1918
1920extern int GEOS_DLL GEOSGetNumCurves_r(
1921 GEOSContextHandle_t handle,
1922 const GEOSGeometry* g);
1923
1925extern const GEOSGeometry GEOS_DLL *GEOSGetCurveN_r(
1926 GEOSContextHandle_t handle,
1927 const GEOSGeometry* g, int n);
1928
1930extern int GEOS_DLL GEOSNormalize_r(
1931 GEOSContextHandle_t handle,
1932 GEOSGeometry* g);
1933
1935extern int GEOS_DLL GEOSOrientPolygons_r(
1936 GEOSContextHandle_t handle,
1937 GEOSGeometry* g,
1938 int exteriorCW);
1939
1952
1955 GEOSContextHandle_t handle,
1956 const GEOSGeometry *g,
1957 double gridSize,
1958 int flags);
1959
1961extern double GEOS_DLL GEOSGeom_getPrecision_r(
1962 GEOSContextHandle_t handle,
1963 const GEOSGeometry *g);
1964
1967 GEOSContextHandle_t handle,
1968 const GEOSGeometry* g,
1969 const GEOSCurveToLineParams* params);
1970
1973 GEOSContextHandle_t extHandle,
1974 GEOSCurveToLineParams* params,
1975 double tolerance);
1976
1979 GEOSContextHandle_t extHandle,
1980 GEOSCurveToLineParams* params,
1981 double tolerance);
1982
1985 GEOSContextHandle_t handle,
1986 const GEOSGeometry* g,
1987 const GEOSLineToCurveParams* params);
1988
1991 GEOSContextHandle_t extHandle,
1992 GEOSLineToCurveParams* params,
1993 double tolerance);
1994
1997 GEOSContextHandle_t extHandle,
1998 GEOSLineToCurveParams* params,
1999 double tolerance);
2000
2003 GEOSContextHandle_t extHandle,
2004 GEOSLineToCurveParams* params,
2005 double tolerance);
2006
2008extern int GEOS_DLL GEOSGetNumInteriorRings_r(
2009 GEOSContextHandle_t handle,
2010 const GEOSGeometry* g);
2011
2013extern int GEOS_DLL GEOSGeomGetNumPoints_r(
2014 GEOSContextHandle_t handle,
2015 const GEOSGeometry* g);
2016
2018extern int GEOS_DLL GEOSGeomGetX_r(
2019 GEOSContextHandle_t handle,
2020 const GEOSGeometry *g,
2021 double *x);
2022
2024extern int GEOS_DLL GEOSGeomGetY_r(
2025 GEOSContextHandle_t handle,
2026 const GEOSGeometry *g,
2027 double *y);
2028
2030extern int GEOS_DLL GEOSGeomGetZ_r(
2031 GEOSContextHandle_t handle,
2032 const GEOSGeometry *g,
2033 double *z);
2034
2036extern int GEOS_DLL GEOSGeomGetM_r(
2037 GEOSContextHandle_t handle,
2038 const GEOSGeometry *g,
2039 double *m);
2040
2043 GEOSContextHandle_t handle,
2044 const GEOSGeometry* g, int n);
2045
2048 GEOSContextHandle_t handle,
2049 const GEOSGeometry* g);
2050
2052extern int GEOS_DLL GEOSGetNumCoordinates_r(
2053 GEOSContextHandle_t handle,
2054 const GEOSGeometry* g);
2055
2058 GEOSContextHandle_t handle,
2059 const GEOSGeometry* g);
2060
2062extern int GEOS_DLL GEOSGeom_getDimensions_r(
2063 GEOSContextHandle_t handle,
2064 const GEOSGeometry* g);
2065
2068 GEOSContextHandle_t handle,
2069 const GEOSGeometry* g);
2070
2072extern int GEOS_DLL GEOSGeom_getXMin_r(
2073 GEOSContextHandle_t handle,
2074 const GEOSGeometry* g,
2075 double* value);
2076
2078extern int GEOS_DLL GEOSGeom_getYMin_r(
2079 GEOSContextHandle_t handle,
2080 const GEOSGeometry* g,
2081 double* value);
2082
2084extern int GEOS_DLL GEOSGeom_getXMax_r(
2085 GEOSContextHandle_t handle,
2086 const GEOSGeometry* g,
2087 double* value);
2088
2090extern int GEOS_DLL GEOSGeom_getYMax_r(
2091 GEOSContextHandle_t handle,
2092 const GEOSGeometry* g,
2093 double* value);
2094
2096extern int GEOS_DLL GEOSGeom_getExtent_r(
2097 GEOSContextHandle_t handle,
2098 const GEOSGeometry* g,
2099 double* xmin,
2100 double* ymin,
2101 double* xmax,
2102 double* ymax);
2103
2106 GEOSContextHandle_t handle,
2107 const GEOSGeometry *g,
2108 int n);
2109
2112 GEOSContextHandle_t handle,
2113 const GEOSGeometry *g);
2114
2117 GEOSContextHandle_t handle,
2118 const GEOSGeometry *g);
2119
2120/* ========= Misc functions ========= */
2121
2123extern int GEOS_DLL GEOSArea_r(
2124 GEOSContextHandle_t handle,
2125 const GEOSGeometry* g,
2126 double *area);
2127
2129extern int GEOS_DLL GEOSLength_r(
2130 GEOSContextHandle_t handle,
2131 const GEOSGeometry* g,
2132 double *length);
2133
2135extern int GEOS_DLL GEOSDistance_r(
2136 GEOSContextHandle_t handle,
2137 const GEOSGeometry* g1,
2138 const GEOSGeometry* g2,
2139 double *dist);
2140
2142extern char GEOS_DLL GEOSDistanceWithin_r(
2143 GEOSContextHandle_t handle,
2144 const GEOSGeometry* g1,
2145 const GEOSGeometry* g2,
2146 double dist);
2147
2149extern int GEOS_DLL GEOSDistanceIndexed_r(
2150 GEOSContextHandle_t handle,
2151 const GEOSGeometry* g1,
2152 const GEOSGeometry* g2,
2153 double *dist);
2154
2156extern int GEOS_DLL GEOSHausdorffDistance_r(
2157 GEOSContextHandle_t handle,
2158 const GEOSGeometry *g1,
2159 const GEOSGeometry *g2,
2160 double *dist);
2161
2164 GEOSContextHandle_t handle,
2165 const GEOSGeometry *g1,
2166 const GEOSGeometry *g2,
2167 double *dist,
2168 double *p1x, double *p1y,
2169 double *p2x, double *p2y);
2170
2173 GEOSContextHandle_t handle,
2174 const GEOSGeometry *g1,
2175 const GEOSGeometry *g2,
2176 double densifyFrac, double *dist);
2177
2180 GEOSContextHandle_t handle,
2181 const GEOSGeometry *g1,
2182 const GEOSGeometry *g2,
2183 double densifyFrac, double* dist,
2184 double *p1x, double *p1y,
2185 double *p2x, double *p2y);
2186
2189 GEOSContextHandle_t handle,
2190 const GEOSGeometry *g1,
2191 const GEOSGeometry *g2,
2192 double *dist);
2193
2196 GEOSContextHandle_t handle,
2197 const GEOSGeometry *g1,
2198 const GEOSGeometry *g2,
2199 double *dist,
2200 double *p1x, double *p1y,
2201 double *p2x, double *p2y);
2202
2205 GEOSContextHandle_t handle,
2206 const GEOSGeometry *g1,
2207 const GEOSGeometry *g2,
2208 double maxDistance);
2209
2212 GEOSContextHandle_t handle,
2213 const GEOSGeometry *g1,
2214 const GEOSGeometry *g2,
2215 double *dist);
2216
2218extern int GEOS_DLL GEOSFrechetDistance_r(
2219 GEOSContextHandle_t handle,
2220 const GEOSGeometry *g1,
2221 const GEOSGeometry *g2,
2222 double *dist);
2223
2226 GEOSContextHandle_t handle,
2227 const GEOSGeometry *g1,
2228 const GEOSGeometry *g2,
2229 double densifyFrac,
2230 double *dist);
2231
2232
2234extern int GEOS_DLL GEOSHilbertCode_r(
2235 GEOSContextHandle_t handle,
2236 const GEOSGeometry *geom,
2237 const GEOSGeometry* extent,
2238 unsigned int level,
2239 unsigned int *code
2240);
2241
2243extern int GEOS_DLL GEOSGeomGetLength_r(
2244 GEOSContextHandle_t handle,
2245 const GEOSGeometry *g,
2246 double *length);
2247
2250 GEOSContextHandle_t handle,
2251 const GEOSGeometry* g1,
2252 const GEOSGeometry* g2);
2253
2256 GEOSContextHandle_t handle,
2257 const GEOSGeometry* g,
2258 GEOSTransformXYCallback callback,
2259 void* userdata);
2260
2263 GEOSContextHandle_t handle,
2264 const GEOSGeometry* g,
2265 GEOSTransformXYZCallback callback,
2266 void* userdata);
2267
2270 GEOSContextHandle_t handle,
2271 const GEOSGeometry* g,
2272 double eps,
2273 unsigned minPoints);
2274
2277 GEOSContextHandle_t handle,
2278 const GEOSGeometry* g,
2279 double d);
2280
2283 GEOSContextHandle_t handle,
2284 const GEOSGeometry* g);
2285
2288 GEOSContextHandle_t handle,
2289 const GEOSGeometry* g,
2290 double d);
2291
2294 GEOSContextHandle_t handle,
2295 const GEOSGeometry* g);
2296
2299
2301extern size_t GEOS_DLL GEOSClusterInfo_getClusterSize_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters, size_t i);
2302
2305
2307extern const size_t GEOS_DLL* GEOSClusterInfo_getInputsForClusterN_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters, size_t i);
2308
2311
2312/* ========= Algorithms ========= */
2313
2315extern int GEOS_DLL GEOSOrientationIndex_r(
2316 GEOSContextHandle_t handle,
2317 double Ax, double Ay,
2318 double Bx, double By,
2319 double Px, double Py);
2320
2321
2322/* ========== Reader and Writer APIs ========== */
2323
2324#ifndef GEOSWKTReader
2325
2331typedef struct GEOSWKTReader_t GEOSWKTReader;
2332
2338typedef struct GEOSWKTWriter_t GEOSWKTWriter;
2339
2345typedef struct GEOSWKBReader_t GEOSWKBReader;
2346
2352typedef struct GEOSWKBWriter_t GEOSWKBWriter;
2353
2359typedef struct GEOSGeoJSONReader_t GEOSGeoJSONReader;
2360
2366typedef struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter;
2367
2368#endif
2369
2370/* ========== WKT Reader ========== */
2371
2374 GEOSContextHandle_t handle);
2375
2378 GEOSWKTReader* reader);
2379
2382 GEOSContextHandle_t handle,
2383 GEOSWKTReader* reader,
2384 const char *wkt);
2385
2388 GEOSContextHandle_t handle,
2389 GEOSWKTReader *reader,
2390 char doFix);
2391
2392
2393/* ========== WKT Writer ========== */
2394
2397 GEOSContextHandle_t handle);
2398
2400extern void GEOS_DLL GEOSWKTWriter_destroy_r(
2401 GEOSContextHandle_t handle,
2402 GEOSWKTWriter* writer);
2403
2405extern char GEOS_DLL *GEOSWKTWriter_write_r(
2406 GEOSContextHandle_t handle,
2407 GEOSWKTWriter* writer,
2408 const GEOSGeometry* g);
2409
2411extern void GEOS_DLL GEOSWKTWriter_setTrim_r(
2412 GEOSContextHandle_t handle,
2413 GEOSWKTWriter *writer,
2414 char trim);
2415
2418 GEOSContextHandle_t handle,
2419 GEOSWKTWriter *writer,
2420 int precision);
2421
2424 GEOSContextHandle_t handle,
2425 GEOSWKTWriter *writer,
2426 int dim);
2427
2430 GEOSContextHandle_t handle,
2431 GEOSWKTWriter *writer);
2432
2434extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(
2435 GEOSContextHandle_t handle,
2436 GEOSWKTWriter *writer,
2437 int useOld3D);
2438
2448extern int GEOS_DLL GEOS_printDouble(
2449 double d,
2450 unsigned int precision,
2451 char *result
2452);
2453
2454/* ========== WKB Reader ========== */
2455
2458 GEOSContextHandle_t handle);
2459
2461extern void GEOS_DLL GEOSWKBReader_destroy_r(
2462 GEOSContextHandle_t handle,
2463 GEOSWKBReader* reader);
2464
2467 GEOSContextHandle_t handle,
2468 GEOSWKBReader *reader,
2469 char doFix);
2470
2473 GEOSContextHandle_t handle,
2474 GEOSWKBReader* reader,
2475 const unsigned char *wkb,
2476 size_t size);
2477
2480 GEOSContextHandle_t handle,
2481 GEOSWKBReader* reader,
2482 const unsigned char *hex,
2483 size_t size);
2484
2485
2486/* ========== WKB Writer ========== */
2487
2490 GEOSContextHandle_t handle);
2491
2493extern void GEOS_DLL GEOSWKBWriter_destroy_r(
2494 GEOSContextHandle_t handle,
2495 GEOSWKBWriter* writer);
2496
2498extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
2499 GEOSContextHandle_t handle,
2500 GEOSWKBWriter* writer,
2501 const GEOSGeometry* g,
2502 size_t *size);
2503
2505extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
2506 GEOSContextHandle_t handle,
2507 GEOSWKBWriter* writer,
2508 const GEOSGeometry* g,
2509 size_t *size);
2510
2513 GEOSContextHandle_t handle,
2514 const GEOSWKBWriter* writer);
2515
2518 GEOSContextHandle_t handle,
2519 GEOSWKBWriter* writer, int newDimension);
2520
2523 GEOSContextHandle_t handle,
2524 const GEOSWKBWriter* writer);
2525
2527extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(
2528 GEOSContextHandle_t handle,
2529 GEOSWKBWriter* writer,
2530 int byteOrder);
2531
2533extern int GEOS_DLL GEOSWKBWriter_getFlavor_r(
2534 GEOSContextHandle_t handle,
2535 const GEOSWKBWriter* writer);
2536
2538extern void GEOS_DLL GEOSWKBWriter_setFlavor_r(
2539 GEOSContextHandle_t handle,
2540 GEOSWKBWriter* writer,
2541 int flavor);
2542
2545 GEOSContextHandle_t handle,
2546 const GEOSWKBWriter* writer);
2547
2550 GEOSContextHandle_t handle,
2551 GEOSWKBWriter* writer, const char writeSRID);
2552
2553/* ========== GeoJSON Reader ========== */
2554
2557 GEOSContextHandle_t handle);
2558
2561 GEOSGeoJSONReader* reader);
2562
2565 GEOSContextHandle_t handle,
2566 GEOSGeoJSONReader* reader,
2567 const char *geojson);
2568
2569/* ========== GeoJSON Writer ========== */
2570
2573 GEOSContextHandle_t handle);
2574
2577 GEOSGeoJSONWriter* writer);
2578
2581 GEOSContextHandle_t handle,
2582 GEOSGeoJSONWriter* writer,
2583 const GEOSGeometry* g,
2584 int indent);
2585
2588 GEOSContextHandle_t handle,
2589 GEOSGeoJSONWriter *writer,
2590 int dim);
2591
2594 GEOSContextHandle_t handle,
2595 GEOSGeoJSONWriter *writer);
2596
2598extern void GEOS_DLL GEOSFree_r(
2599 GEOSContextHandle_t handle,
2600 void *buffer);
2601
2609extern const char GEOS_DLL *GEOSversion(void);
2610
2618extern const char GEOS_DLL *GEOSrevision(void);
2619
2620/*
2621* External code to GEOS can define GEOS_USE_ONLY_R_API
2622* to strip the non-reentrant API functions from this header,
2623* leaving only the "_r" compatible variants.
2624*/
2625#ifndef GEOS_USE_ONLY_R_API
2626
2627/* ========== Initialization, cleanup ================================= */
2633
2646extern void GEOS_DLL initGEOS(
2647 GEOSMessageHandler notice_function,
2648 GEOSMessageHandler error_function);
2649
2655extern void GEOS_DLL finishGEOS(void);
2656
2666extern void GEOS_DLL GEOSFree(void *buffer);
2667
2669
2670/* ========= Coordinate Sequence functions ========= */
2676
2684extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(unsigned int size, unsigned int dims);
2685
2694extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_createWithDimensions(unsigned int size, int hasZ, int hasM);
2695
2706extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromBuffer(const double* buf, unsigned int size, int hasZ, int hasM);
2707
2719extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromArrays(const double* x, const double* y, const double* z, const double* m, unsigned int size);
2720
2731extern int GEOS_DLL GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence* s, double* buf, int hasZ, int hasM);
2732
2744extern int GEOS_DLL GEOSCoordSeq_copyToArrays(const GEOSCoordSequence* s, double* x, double* y, double* z, double* m);
2745
2753
2760
2768extern char GEOS_DLL GEOSCoordSeq_hasZ(GEOSCoordSequence* s);
2769
2777extern char GEOS_DLL GEOSCoordSeq_hasM(GEOSCoordSequence* s);
2778
2788 unsigned int idx, double val);
2798 unsigned int idx, double val);
2808 unsigned int idx, double val);
2809
2819 unsigned int idx, double val);
2820
2832 unsigned int idx, double x, double y);
2845 unsigned int idx, double x, double y, double z);
2856 unsigned int idx, unsigned int dim, double val);
2857
2866extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
2867 unsigned int idx, double *val);
2868
2877extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
2878 unsigned int idx, double *val);
2879
2888extern int GEOS_DLL GEOSCoordSeq_getZ(const GEOSCoordSequence* s,
2889 unsigned int idx, double *val);
2890
2899extern int GEOS_DLL GEOSCoordSeq_getM(const GEOSCoordSequence* s,
2900 unsigned int idx, double *val);
2901
2912extern int GEOS_DLL GEOSCoordSeq_getXY(const GEOSCoordSequence* s,
2913 unsigned int idx, double *x, double *y);
2925extern int GEOS_DLL GEOSCoordSeq_getXYZ(const GEOSCoordSequence* s,
2926 unsigned int idx, double *x, double *y, double *z);
2936extern int GEOS_DLL GEOSCoordSeq_getOrdinate(const GEOSCoordSequence* s,
2937 unsigned int idx, unsigned int dim, double *val);
2938
2946extern int GEOS_DLL GEOSCoordSeq_getSize(
2947 const GEOSCoordSequence* s,
2948 unsigned int *size);
2949
2957extern int GEOS_DLL GEOSCoordSeq_getDimensions(
2958 const GEOSCoordSequence* s,
2959 unsigned int *dims);
2960
2970extern int GEOS_DLL GEOSCoordSeq_isCCW(
2971 const GEOSCoordSequence* s,
2972 char* is_ccw);
2973
2975
2976/* ========= Geometry Constructors ========= */
2982
2991
3001extern GEOSGeometry GEOS_DLL *GEOSGeom_createPointFromXY(double x, double y);
3002
3011
3020
3029
3038
3047
3062 GEOSGeometry* shell,
3063 GEOSGeometry** holes,
3064 unsigned int nholes);
3065
3074
3082
3092 unsigned int ncurves);
3093
3101
3116 GEOSGeometry* shell,
3117 GEOSGeometry** holes,
3118 unsigned int nholes);
3119
3127
3142 int type,
3143 GEOSGeometry** geoms,
3144 unsigned int ngeoms);
3145
3163 GEOSGeometry * collection,
3164 unsigned int * ngeoms);
3165
3175
3187 double xmin, double ymin,
3188 double xmax, double ymax);
3189
3197extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(const GEOSGeometry* g);
3198
3204extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
3205
3207
3208/* ========== Geometry info ========== */
3213
3223extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
3224
3231extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
3232
3239extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
3240
3251extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
3252
3265extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
3266
3282extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
3283 const GEOSGeometry* g,
3284 int n);
3285
3294extern int GEOS_DLL GEOSGetNumCurves(const GEOSGeometry* g);
3295
3309extern const GEOSGeometry GEOS_DLL *GEOSGetCurveN(
3310 const GEOSGeometry* g,
3311 int n);
3312
3322extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
3323
3331extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
3332
3343extern int GEOS_DLL GEOSGeomGetNumPoints(const GEOSGeometry* g);
3344
3353extern int GEOS_DLL GEOSGeomGetX(const GEOSGeometry *g, double *x);
3354
3363extern int GEOS_DLL GEOSGeomGetY(const GEOSGeometry *g, double *y);
3364
3374extern int GEOS_DLL GEOSGeomGetZ(const GEOSGeometry *g, double *z);
3375
3385extern int GEOS_DLL GEOSGeomGetM(const GEOSGeometry *g, double *m);
3386
3396extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
3397 const GEOSGeometry* g,
3398 int n);
3399
3408extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
3409 const GEOSGeometry* g);
3410
3418extern int GEOS_DLL GEOSGetNumCoordinates(
3419 const GEOSGeometry* g);
3420
3431 const GEOSGeometry* g);
3432
3445extern int GEOS_DLL GEOSGeom_getDimensions(
3446 const GEOSGeometry* g);
3447
3461 const GEOSGeometry* g);
3462
3476extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
3477
3491extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
3492
3506extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
3507
3521extern int GEOS_DLL GEOSGeom_getYMax(const GEOSGeometry* g, double* value);
3522
3540extern int GEOS_DLL GEOSGeom_getExtent(
3541 const GEOSGeometry* g,
3542 double* xmin,
3543 double* ymin,
3544 double* xmax,
3545 double* ymax);
3546
3560extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
3561
3575
3589
3598extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g);
3599
3609extern char GEOS_DLL GEOSisRing(const GEOSGeometry* g);
3610
3617extern char GEOS_DLL GEOSHasZ(const GEOSGeometry* g);
3618
3626extern char GEOS_DLL GEOSHasM(const GEOSGeometry* g);
3627
3642extern char GEOS_DLL GEOSisClosed(const GEOSGeometry *g);
3643
3645
3646/* ==================================================================================== */
3651
3658extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
3659
3667extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
3668
3692extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
3693
3705extern int GEOS_DLL GEOSOrientPolygons(GEOSGeometry* g,
3706 int exteriorCW);
3707
3709
3710/* ========== Validity checking ============================================================ */
3716
3731extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g);
3732
3753extern char GEOS_DLL GEOSisSimpleDetail(
3754 const GEOSGeometry* g,
3755 int findAllLocations,
3756 GEOSGeometry** locations);
3757
3768
3777
3787 GEOSisSimpleParams* params,
3788 int findAllLocations);
3789
3799 GEOSisSimpleParams* params,
3800 int bnr);
3801
3821extern char GEOS_DLL GEOSisSimpleWithParams(
3822 const GEOSGeometry* g,
3823 const GEOSisSimpleParams* params,
3824 GEOSGeometry** locations);
3825
3846extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
3847
3863extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g);
3864
3885extern char GEOS_DLL GEOSisValidDetail(
3886 const GEOSGeometry* g,
3887 int flags,
3888 char** reason,
3889 GEOSGeometry** location);
3890
3909 const GEOSGeometry* g);
3910
3935 const GEOSGeometry* g,
3936 const GEOSMakeValidParams *makeValidParams);
3937
3947
3956
3967 enum GEOSMakeValidMethods method);
3968
3981 int keepCollapsed);
3982
4007extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
4008
4026
4048 const GEOSGeometry* g,
4049 double tolerance);
4050
4052
4053/* ========= Metric functions ================================================== */
4058
4071extern int GEOS_DLL GEOSArea(
4072 const GEOSGeometry* g,
4073 double *area);
4074
4086extern int GEOS_DLL GEOSLength(
4087 const GEOSGeometry* g,
4088 double *length);
4089
4104extern int GEOS_DLL GEOSGeomGetLength(
4105 const GEOSGeometry *g,
4106 double *length);
4107
4109
4110/* ========== Distance functions ================================================ */
4116
4133extern int GEOS_DLL GEOSDistance(
4134 const GEOSGeometry* g1,
4135 const GEOSGeometry* g2,
4136 double *dist);
4137
4155extern char GEOS_DLL GEOSDistanceWithin(
4156 const GEOSGeometry* g1,
4157 const GEOSGeometry* g2,
4158 double dist);
4159
4179extern int GEOS_DLL GEOSDistanceIndexed(
4180 const GEOSGeometry* g1,
4181 const GEOSGeometry* g2,
4182 double *dist);
4183
4202 const GEOSGeometry* g1,
4203 const GEOSGeometry* g2);
4204
4222extern int GEOS_DLL GEOSHausdorffDistance(
4223 const GEOSGeometry *g1,
4224 const GEOSGeometry *g2,
4225 double *dist);
4226
4227
4249 const GEOSGeometry *g1,
4250 const GEOSGeometry *g2,
4251 double *dist,
4252 double *p1x, double *p1y,
4253 double *p2x, double *p2y);
4254
4255
4256
4278 const GEOSGeometry *g1,
4279 const GEOSGeometry *g2,
4280 double densifyFrac,
4281 double *dist);
4282
4309 const GEOSGeometry *g1,
4310 const GEOSGeometry *g2,
4311 double densifyFrac,
4312 double *dist,
4313 double* p1x, double* p1y,
4314 double* p2x, double* p2y);
4315
4335 const GEOSGeometry *g1,
4336 const GEOSGeometry *g2,
4337 double *dist);
4338
4364 const GEOSGeometry *g1,
4365 const GEOSGeometry *g2,
4366 double *dist,
4367 double *p1x, double *p1y,
4368 double *p2x, double *p2y);
4369
4387 const GEOSGeometry *g1,
4388 const GEOSGeometry *g2,
4389 double maxDistance);
4390
4410 const GEOSGeometry *g1,
4411 const GEOSGeometry *g2,
4412 double *dist);
4413
4433extern int GEOS_DLL GEOSFrechetDistance(
4434 const GEOSGeometry *g1,
4435 const GEOSGeometry *g2,
4436 double *dist);
4437
4460extern int GEOS_DLL GEOSFrechetDistanceDensify(
4461 const GEOSGeometry *g1,
4462 const GEOSGeometry *g2,
4463 double densifyFrac,
4464 double *dist);
4465
4467
4468/* ========== Linear referencing functions */
4474
4490extern double GEOS_DLL GEOSProject(const GEOSGeometry* line,
4491 const GEOSGeometry* point);
4492
4512extern GEOSGeometry GEOS_DLL *GEOSInterpolate(const GEOSGeometry* line,
4513 double d);
4514
4531extern double GEOS_DLL GEOSProjectNormalized(const GEOSGeometry* line,
4532 const GEOSGeometry* point);
4533
4555 const GEOSGeometry *line,
4556 double proportion);
4557
4559
4560/* ========== Overlay functions ========== */
4566
4587extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
4588
4603extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec(const GEOSGeometry* g1, const GEOSGeometry* g2, double gridSize);
4604
4626 const GEOSGeometry* ga,
4627 const GEOSGeometry* gb);
4628
4645 const GEOSGeometry* ga,
4646 const GEOSGeometry* gb,
4647 double gridSize);
4648
4671 const GEOSGeometry* ga,
4672 const GEOSGeometry* gb);
4673
4691 const GEOSGeometry* ga,
4692 const GEOSGeometry* gb,
4693 double gridSize);
4694
4715extern GEOSGeometry GEOS_DLL *GEOSUnion(
4716 const GEOSGeometry* ga,
4717 const GEOSGeometry* gb);
4718
4735 const GEOSGeometry* ga,
4736 const GEOSGeometry* gb,
4737 double gridSize);
4738
4760extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(const GEOSGeometry* g);
4761
4778 const GEOSGeometry* g,
4779 double gridSize);
4780
4802
4829 const GEOSGeometry* g,
4830 double xmin, double ymin,
4831 double xmax, double ymax);
4832
4867 const GEOSGeometry* g,
4868 double xmin, double ymin,
4869 double xmax, double ymax,
4870 unsigned nx, unsigned ny,
4871 int includeExterior);
4872
4896 const GEOSGeometry* g,
4897 double xmin, double ymin,
4898 double xmax, double ymax,
4899 unsigned nx, unsigned ny,
4900 float* buf);
4901
4926 const GEOSGeometry* g1,
4927 const GEOSGeometry* g2);
4929
4930/* ========== Clustering functions ========== */
4937static const size_t GEOS_CLUSTER_NONE = (size_t) -1;
4938
4940
4955extern GEOSClusterInfo GEOS_DLL* GEOSClusterDBSCAN(const GEOSGeometry* g, double eps, unsigned minPoints);
4956
4971extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryDistance(const GEOSGeometry* g, double d);
4972
4987
4999extern GEOSClusterInfo GEOS_DLL* GEOSClusterEnvelopeDistance(const GEOSGeometry* g, double d);
5000
5012
5021extern size_t GEOS_DLL GEOSClusterInfo_getNumClusters(const GEOSClusterInfo* clusters);
5022
5032extern size_t GEOS_DLL GEOSClusterInfo_getClusterSize(const GEOSClusterInfo* clusters, size_t i );
5033
5043extern size_t GEOS_DLL* GEOSClusterInfo_getClustersForInputs(const GEOSClusterInfo* clusters);
5044
5053extern const size_t GEOS_DLL* GEOSClusterInfo_getInputsForClusterN(const GEOSClusterInfo* clusters, size_t i);
5054
5062extern void GEOS_DLL GEOSClusterInfo_destroy(GEOSClusterInfo* clusters);
5063
5065
5066/* ========== Buffer related functions ========== */
5071
5090extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g,
5091 double width, int quadsegs);
5092
5102
5109extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
5110
5120 int style);
5121
5131 int joinStyle);
5132
5146 double mitreLimit);
5147
5160 int quadSegs);
5161
5174 int singleSided);
5175
5193 const GEOSGeometry* g,
5194 const GEOSBufferParams* p,
5195 double width);
5196
5218 const GEOSGeometry* g,
5219 double width,
5220 int quadsegs,
5221 int endCapStyle,
5222 int joinStyle,
5223 double mitreLimit);
5224
5254 double width, int quadsegs, int joinStyle, double mitreLimit);
5255
5257
5258
5259/* ====================================================================== */
5265
5288
5289
5318extern int GEOS_DLL GEOSCoverageIsValid(
5319 const GEOSGeometry* input,
5320 double gapWidth,
5321 GEOSGeometry** invalidEdges);
5322
5358 const GEOSGeometry* input,
5359 double tolerance,
5360 int preserveBoundary);
5361
5371extern GEOSGeometry GEOS_DLL *GEOSCoverageEdges(const GEOSGeometry *input, int edgetype);
5372
5380extern GEOSCoverageCleanParams GEOS_DLL *
5382
5389extern void GEOS_DLL
5391 GEOSCoverageCleanParams* params);
5392
5417extern int GEOS_DLL
5420 double snappingDistance);
5421
5443extern int GEOS_DLL
5446 double gapMaximumWidth);
5447
5471extern int GEOS_DLL
5474 int overlapMergeStrategy);
5475
5508extern GEOSGeometry GEOS_DLL *
5510 const GEOSGeometry* input,
5511 const GEOSCoverageCleanParams* params
5512);
5513
5515extern GEOSGeometry GEOS_DLL *
5517 const GEOSGeometry* input);
5518
5519
5520
5521
5523
5524
5525/* ========== Construction Operations ========== */
5530
5544extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
5545
5563extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
5564
5583extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
5584
5624 const GEOSGeometry* g,
5625 double ratio,
5626 unsigned int allowHoles);
5627
5666 const GEOSGeometry* g,
5667 double length,
5668 unsigned int allowHoles);
5669
5714 const GEOSGeometry* g,
5715 double lengthRatio,
5716 unsigned int isTight,
5717 unsigned int isHolesAllowed);
5718
5748 const GEOSGeometry* g,
5749 unsigned int isOuter,
5750 double vertexNumFraction);
5751
5752
5784 const GEOSGeometry* g,
5785 unsigned int isOuter,
5786 unsigned int parameterMode,
5787 double parameter);
5788
5809
5841 const GEOSGeometry* g,
5842 double tolerance);
5843
5883 const GEOSGeometry* obstacles,
5884 const GEOSGeometry* boundary,
5885 double tolerance);
5886
5906extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
5907
5908
5925
5941extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
5942
5962 const GEOSGeometry* g,
5963 double* radius,
5964 GEOSGeometry** center);
5965
5986 const GEOSGeometry *g,
5987 double tolerance,
5988 int onlyEdges);
5989
6010 const GEOSGeometry *g);
6011
6037 const GEOSGeometry *g,
6038 const GEOSGeometry *env,
6039 double tolerance,
6040 int flags);
6041
6043
6044/* ============================================================== */
6049
6066extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
6067
6068
6084extern GEOSGeometry GEOS_DLL *GEOSSplit(const GEOSGeometry* g, const GEOSGeometry* edge);
6085
6132 const GEOSGeometry * const geoms[],
6133 unsigned int ngeoms);
6134
6153 const GEOSGeometry * const geoms[],
6154 unsigned int ngeoms);
6155
6173 const GEOSGeometry * const geoms[],
6174 unsigned int ngeoms);
6175
6194 const GEOSGeometry* input,
6195 GEOSGeometry** cuts,
6196 GEOSGeometry** dangles,
6197 GEOSGeometry** invalid);
6198
6210extern GEOSGeometry GEOS_DLL *GEOSBuildArea(const GEOSGeometry* g);
6211
6213
6214/* ============================================================== */
6219
6239extern GEOSGeometry GEOS_DLL *GEOSDensify(
6240 const GEOSGeometry* g,
6241 double tolerance);
6242
6260extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
6261
6278extern size_t GEOS_DLL *GEOSMinimumSpanningTree(const GEOSGeometry * const geoms[], unsigned int ngeoms);
6279
6299
6316 const GEOSGeometry* g,
6317 double start_fraction,
6318 double end_fraction);
6319
6334extern GEOSGeometry GEOS_DLL *GEOSReverse(const GEOSGeometry* g);
6335
6352 const GEOSGeometry* g,
6353 double tolerance);
6354
6374 const GEOSGeometry* g,
6375 double tolerance);
6376
6394 const GEOSGeometry* g);
6395
6414extern int GEOS_DLL GEOSHilbertCode(
6415 const GEOSGeometry *geom,
6416 const GEOSGeometry* extent,
6417 unsigned int level,
6418 unsigned int *code
6419);
6420
6439 const GEOSGeometry* g,
6440 GEOSTransformXYCallback callback,
6441 void* userdata);
6442
6461 const GEOSGeometry* g,
6462 GEOSTransformXYZCallback callback,
6463 void* userdata);
6464
6486extern GEOSGeometry GEOS_DLL *GEOSSnap(
6487 const GEOSGeometry* input,
6488 const GEOSGeometry* snap_target,
6489 double tolerance);
6490
6524 const GEOSGeometry *g,
6525 double gridSize,
6526 int flags);
6527
6529
6530/* ============================================================== */
6531
6536
6548 const GEOSGeometry* g,
6549 const GEOSCurveToLineParams* params);
6550
6551extern GEOSCurveToLineParams GEOS_DLL *GEOSCurveToLineParams_create();
6552
6553extern void GEOS_DLL GEOSCurveToLineParams_destroy(GEOSCurveToLineParams* params);
6554
6564 GEOSCurveToLineParams* params,
6565 double tolerance);
6566
6576 GEOSCurveToLineParams* params,
6577 double tolerance);
6578
6590 const GEOSGeometry* g,
6591 const GEOSLineToCurveParams* params);
6592
6593extern GEOSLineToCurveParams GEOS_DLL *GEOSLineToCurveParams_create();
6594
6595extern void GEOS_DLL GEOSLineToCurveParams_destroy(GEOSLineToCurveParams* params);
6596
6609 GEOSLineToCurveParams* params,
6610 double tolerance);
6611
6625 GEOSLineToCurveParams* params,
6626 double tolerance);
6627
6643 GEOSLineToCurveParams* params,
6644 double tolerance);
6645
6647
6648/* ============================================================== */
6653
6662extern char GEOS_DLL GEOSDisjoint(const GEOSGeometry* g1, const GEOSGeometry* g2);
6663
6673extern char GEOS_DLL GEOSTouches(const GEOSGeometry* g1, const GEOSGeometry* g2);
6674
6683extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
6684
6694extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
6695
6705extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
6706
6716extern char GEOS_DLL GEOSContains(const GEOSGeometry* g1, const GEOSGeometry* g2);
6717
6727extern char GEOS_DLL GEOSOverlaps(const GEOSGeometry* g1, const GEOSGeometry* g2);
6728
6737extern char GEOS_DLL GEOSEquals(const GEOSGeometry* g1, const GEOSGeometry* g2);
6738
6749extern char GEOS_DLL GEOSCovers(const GEOSGeometry* g1, const GEOSGeometry* g2);
6750
6761extern char GEOS_DLL GEOSCoveredBy(const GEOSGeometry* g1, const GEOSGeometry* g2);
6762
6783extern char GEOS_DLL GEOSEqualsExact(
6784 const GEOSGeometry* g1,
6785 const GEOSGeometry* g2,
6786 double tolerance);
6787
6802extern char GEOS_DLL GEOSEqualsIdentical(
6803 const GEOSGeometry* g1,
6804 const GEOSGeometry* g2);
6805
6821extern char GEOS_DLL GEOSRelatePattern(
6822 const GEOSGeometry* g1,
6823 const GEOSGeometry* g2,
6824 const char *imPattern);
6825
6836extern char GEOS_DLL *GEOSRelate(
6837 const GEOSGeometry* g1,
6838 const GEOSGeometry* g2);
6839
6849extern char GEOS_DLL GEOSRelatePatternMatch(
6850 const char *intMatrix,
6851 const char *imPattern);
6852
6866extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
6867 const GEOSGeometry* g1,
6868 const GEOSGeometry* g2,
6869 int bnr);
6870
6872
6873/* ========== Prepared Geometry Binary predicates ========== */
6874
6886
6900extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(const GEOSGeometry* g);
6901
6910extern void GEOS_DLL GEOSPreparedGeom_destroy(const GEOSPreparedGeometry* g);
6911
6922extern char GEOS_DLL GEOSPreparedContains(
6923 const GEOSPreparedGeometry* pg1,
6924 const GEOSGeometry* g2);
6925
6937extern char GEOS_DLL GEOSPreparedContainsXY(
6938 const GEOSPreparedGeometry* pg1,
6939 double x,
6940 double y);
6941
6952extern char GEOS_DLL GEOSPreparedContainsProperly(
6953 const GEOSPreparedGeometry* pg1,
6954 const GEOSGeometry* g2);
6955
6966extern char GEOS_DLL GEOSPreparedCoveredBy(
6967 const GEOSPreparedGeometry* pg1,
6968 const GEOSGeometry* g2);
6969
6980extern char GEOS_DLL GEOSPreparedCovers(
6981 const GEOSPreparedGeometry* pg1,
6982 const GEOSGeometry* g2);
6983
6994extern char GEOS_DLL GEOSPreparedCrosses(
6995 const GEOSPreparedGeometry* pg1,
6996 const GEOSGeometry* g2);
6997
7008extern char GEOS_DLL GEOSPreparedDisjoint(
7009 const GEOSPreparedGeometry* pg1,
7010 const GEOSGeometry* g2);
7011
7022extern char GEOS_DLL GEOSPreparedIntersects(
7023 const GEOSPreparedGeometry* pg1,
7024 const GEOSGeometry* g2);
7025
7037extern char GEOS_DLL GEOSPreparedIntersectsXY(
7038 const GEOSPreparedGeometry* pg1,
7039 double x,
7040 double y);
7041
7052extern char GEOS_DLL GEOSPreparedOverlaps(
7053 const GEOSPreparedGeometry* pg1,
7054 const GEOSGeometry* g2);
7055
7066extern char GEOS_DLL GEOSPreparedTouches(
7067 const GEOSPreparedGeometry* pg1,
7068 const GEOSGeometry* g2);
7069
7080extern char GEOS_DLL GEOSPreparedWithin(
7081 const GEOSPreparedGeometry* pg1,
7082 const GEOSGeometry* g2);
7083
7097extern char GEOS_DLL * GEOSPreparedRelate(
7098 const GEOSPreparedGeometry* pg1,
7099 const GEOSGeometry* g2);
7100
7117extern char GEOS_DLL GEOSPreparedRelatePattern(
7118 const GEOSPreparedGeometry* pg1,
7119 const GEOSGeometry* g2,
7120 const char* imPattern);
7121
7135 const GEOSPreparedGeometry* pg1,
7136 const GEOSGeometry* g2);
7137
7151extern int GEOS_DLL GEOSPreparedDistance(
7152 const GEOSPreparedGeometry* pg1,
7153 const GEOSGeometry* g2,
7154 double *dist);
7155
7170extern char GEOS_DLL GEOSPreparedDistanceWithin(
7171 const GEOSPreparedGeometry* pg1,
7172 const GEOSGeometry* g2,
7173 double dist);
7174
7176
7177/* ========== STRtree functions ========== */
7183
7196extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
7197
7210extern int GEOS_DLL GEOSSTRtree_build(GEOSSTRtree *tree);
7211
7224extern void GEOS_DLL GEOSSTRtree_insert(
7225 GEOSSTRtree *tree,
7226 const GEOSGeometry *g,
7227 void *item);
7228
7243extern void GEOS_DLL GEOSSTRtree_query(
7244 GEOSSTRtree *tree,
7245 const GEOSGeometry *g,
7246 GEOSQueryCallback callback,
7247 void *userdata);
7248
7263extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(
7264 GEOSSTRtree *tree,
7265 const GEOSGeometry* geom);
7266
7287extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(
7288 GEOSSTRtree *tree,
7289 const void* item,
7290 const GEOSGeometry* itemEnvelope,
7291 GEOSDistanceCallback distancefn,
7292 void* userdata);
7293
7304extern void GEOS_DLL GEOSSTRtree_iterate(
7305 GEOSSTRtree *tree,
7306 GEOSQueryCallback callback,
7307 void *userdata);
7308
7323extern char GEOS_DLL GEOSSTRtree_remove(
7324 GEOSSTRtree *tree,
7325 const GEOSGeometry *g,
7326 void *item);
7327
7338extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
7339
7341
7342/* ========== Algorithms ====================================================== */
7347
7366extern int GEOS_DLL GEOSSegmentIntersection(
7367 double ax0, double ay0,
7368 double ax1, double ay1,
7369 double bx0, double by0,
7370 double bx1, double by1,
7371 double* cx, double* cy);
7372
7388extern int GEOS_DLL GEOSOrientationIndex(
7389 double Ax, double Ay,
7390 double Bx, double By,
7391 double Px, double Py);
7392
7394
7395/* ========= Reader and Writer APIs ========= */
7396
7401/* ========= WKT Reader ========= */
7402
7409
7415extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
7416
7426 GEOSWKTReader* reader,
7427 const char *wkt);
7428
7438 GEOSWKTReader *reader,
7439 char doFix);
7440
7441/* ========= WKT Writer ========= */
7442
7449
7455extern void GEOS_DLL GEOSWKTWriter_destroy(
7456 GEOSWKTWriter* writer);
7457
7467extern char GEOS_DLL *GEOSWKTWriter_write(
7468 GEOSWKTWriter* writer,
7469 const GEOSGeometry* g);
7470
7485extern void GEOS_DLL GEOSWKTWriter_setTrim(
7486 GEOSWKTWriter *writer,
7487 char trim);
7488
7498 GEOSWKTWriter *writer,
7499 int precision);
7500
7510 GEOSWKTWriter *writer,
7511 int dim);
7512
7521
7532extern void GEOS_DLL GEOSWKTWriter_setOld3D(
7533 GEOSWKTWriter *writer,
7534 int useOld3D);
7536
7537/* ============================================================================== */
7542
7543/* ========== WKB Reader ========== */
7550
7556extern void GEOS_DLL GEOSWKBReader_destroy(
7557 GEOSWKBReader* reader);
7558
7568 GEOSWKBReader *reader,
7569 char doFix);
7570
7580 GEOSWKBReader* reader,
7581 const unsigned char *wkb,
7582 size_t size);
7583
7593 GEOSWKBReader* reader,
7594 const unsigned char *hex,
7595 size_t size);
7596
7597/* ========== WKB Writer ========== */
7598
7605
7611extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
7612
7622extern unsigned char GEOS_DLL *GEOSWKBWriter_write(
7623 GEOSWKBWriter* writer,
7624 const GEOSGeometry* g,
7625 size_t *size);
7626
7636extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(
7637 GEOSWKBWriter* writer,
7638 const GEOSGeometry* g,
7639 size_t *size);
7640
7650 const GEOSWKBWriter* writer);
7651
7660 GEOSWKBWriter* writer,
7661 int newDimension);
7662
7672extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
7673 const GEOSWKBWriter* writer);
7674
7682extern void GEOS_DLL GEOSWKBWriter_setByteOrder(
7683 GEOSWKBWriter* writer,
7684 int byteOrder);
7685
7700extern int GEOS_DLL GEOSWKBWriter_getFlavor(
7701 const GEOSWKBWriter* writer);
7702
7711extern void GEOS_DLL GEOSWKBWriter_setFlavor(
7712 GEOSWKBWriter* writer,
7713 int flavor);
7714
7720extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
7721 const GEOSWKBWriter* writer);
7722
7730extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(
7731 GEOSWKBWriter* writer,
7732 const char writeSRID);
7733
7735
7736/* ============================================================================= */
7741/* ========= GeoJSON Reader ========= */
7742
7750
7757extern void GEOS_DLL GEOSGeoJSONReader_destroy(GEOSGeoJSONReader* reader);
7758
7770 GEOSGeoJSONReader* reader,
7771 const char *geojson);
7772
7773/* ========= GeoJSON Writer ========= */
7774
7782
7789extern void GEOS_DLL GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter* writer);
7790
7802 GEOSGeoJSONWriter* writer,
7803 const GEOSGeometry* g,
7804 int indent);
7805
7815 GEOSGeoJSONWriter *writer,
7816 int dim);
7817
7826
7828
7829#endif /* #ifndef GEOS_USE_ONLY_R_API */
7830
7831/* ====================================================================== */
7832/* DEPRECATIONS */
7833/* ====================================================================== */
7834
7840
7845 const GEOSGeometry* g,
7846 double width, int quadsegs,
7847 int joinStyle, double mitreLimit,
7848 int leftSide);
7849
7854 GEOSContextHandle_t handle,
7855 const GEOSGeometry* g,
7856 double width, int quadsegs,
7857 int joinStyle, double mitreLimit,
7858 int leftSide);
7859
7865 GEOSMessageHandler notice_function,
7866 GEOSMessageHandler error_function);
7867
7871extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
7872
7877 GEOSContextHandle_t handle,
7878 const char *wkt);
7879
7883extern char GEOS_DLL *GEOSGeomToWKT_r(
7884 GEOSContextHandle_t handle,
7885 const GEOSGeometry* g);
7886
7890extern int GEOS_DLL GEOS_getWKBOutputDims_r(
7891 GEOSContextHandle_t handle);
7892
7896extern int GEOS_DLL GEOS_setWKBOutputDims_r(
7897 GEOSContextHandle_t handle,
7898 int newDims);
7899
7903extern int GEOS_DLL GEOS_getWKBByteOrder_r(
7904 GEOSContextHandle_t handle);
7905
7909extern int GEOS_DLL GEOS_setWKBByteOrder_r(
7910 GEOSContextHandle_t handle,
7911 int byteOrder);
7912
7917 GEOSContextHandle_t handle,
7918 const unsigned char *wkb,
7919 size_t size);
7920
7924extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(
7925 GEOSContextHandle_t handle,
7926 const GEOSGeometry* g,
7927 size_t *size);
7928
7933 GEOSContextHandle_t handle,
7934 const unsigned char *hex,
7935 size_t size);
7936
7940extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(
7941 GEOSContextHandle_t handle,
7942 const GEOSGeometry* g,
7943 size_t *size);
7944
7948extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(const char *wkt);
7949
7953extern char GEOS_DLL *GEOSGeomToWKT(const GEOSGeometry* g);
7954
7958extern int GEOS_DLL GEOS_getWKBOutputDims(void);
7959
7963extern int GEOS_DLL GEOS_setWKBOutputDims(int newDims);
7964
7968extern int GEOS_DLL GEOS_getWKBByteOrder(void);
7969
7973extern int GEOS_DLL GEOS_setWKBByteOrder(int byteOrder);
7974
7978extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size);
7979
7983extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
7984
7988extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
7989
7993extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(const GEOSGeometry* g, size_t *size);
7994
7999
8004 GEOSContextHandle_t handle,
8005 const GEOSGeometry* g);
8006
8008
8009/* ====================================================================== */
8010/* END DEPRECATIONS */
8011/* ====================================================================== */
8012
8013
8014#ifdef __cplusplus
8015} // extern "C"
8016#endif
8017
8018#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)
GEOSGeometry * GEOSSplit(const GEOSGeometry *g, const GEOSGeometry *edge)
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 * GEOSCoverageCleanWithParams(const GEOSGeometry *input, const GEOSCoverageCleanParams *params)
GEOSGeometry * GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
size_t * GEOSMinimumSpanningTree(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSCoordSequence * GEOSCoordSeq_create(unsigned int size, unsigned int dims)
int GEOSLineToCurveParams_setMaxAngleDifferenceDegrees_r(GEOSContextHandle_t extHandle, GEOSLineToCurveParams *params, double tolerance)
char GEOSPreparedDistanceWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
const GEOSGeometry * GEOSGetCurveN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
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)
GEOSGeometry * GEOSSubdivideByGrid(const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax, unsigned nx, unsigned ny, int includeExterior)
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:121
GEOSGeometry * GEOSDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance, int onlyEdges)
int GEOSGeoJSONWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
GEOSGeometry ** GEOSGeom_releaseCollection(GEOSGeometry *collection, unsigned int *ngeoms)
void GEOSisSimpleParams_setFindAllLocations(GEOSisSimpleParams *params, int findAllLocations)
void * GEOSGeom_getUserData_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSGeoJSONReader_t GEOSGeoJSONReader
Definition geos_c.h:2359
int GEOSCoverageCleanParams_setOverlapMergeStrategy_r(GEOSContextHandle_t extHandle, GEOSCoverageCleanParams *params, int overlapMergeStrategy)
char GEOSRelatePattern_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, const char *imPattern)
int GEOS_getWKBByteOrder(void)
int GEOSLineToCurveParams_setMaxStepDegrees(GEOSLineToCurveParams *params, double tolerance)
void GEOSWKBReader_destroy(GEOSWKBReader *reader)
struct GEOSLineToCurveParams_t GEOSLineToCurveParams
Definition geos_c.h:221
char GEOSPreparedContainsProperly(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
void GEOSCoverageCleanParams_destroy(GEOSCoverageCleanParams *params)
void GEOSSTRtree_iterate_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
GEOSGeometry * GEOSSplit_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *edge)
void GEOSContext_setLineToCurveParams_r(GEOSContextHandle_t extHandle, const GEOSLineToCurveParams *params)
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)
void() GEOSProgressCallback(double progressRatio, const char *message, void *userdata)
Definition geos_c.h:134
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)
int GEOSHausdorffDistanceDensifyWithPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist, double *p1x, double *p1y, double *p2x, double *p2y)
char GEOSisSimpleWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSisSimpleParams *params, GEOSGeometry **location)
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:345
GEOSGeometry * GEOSPolygonize_valid(const GEOSGeometry *const geoms[], unsigned int ngeoms)
int GEOSGridIntersectionFractions_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax, unsigned nx, unsigned ny, float *buf)
GEOSWKTReader * GEOSWKTReader_create(void)
int GEOSDirectedHausdorffDistanceWithin(const GEOSGeometry *g1, const GEOSGeometry *g2, double maxDistance)
struct GEOSWKBReader_t GEOSWKBReader
Definition geos_c.h:2345
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:108
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)
void GEOSisSimpleParams_setBoundaryNodeRule_r(GEOSContextHandle_t handle, GEOSisSimpleParams *params, int bnr)
char GEOSTouches(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSLineToCurveParams_setMaxAngleDifferenceDegrees(GEOSLineToCurveParams *params, double tolerance)
struct GEOSCoordSeq_t GEOSCoordSequence
Definition geos_c.h:173
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)
GEOSCoverageCleanParams * GEOSCoverageCleanParams_create_r(GEOSContextHandle_t extHandle)
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:251
@ GEOS_MULTILINESTRING
Definition geos_c.h:263
@ GEOS_GEOMETRYCOLLECTION
Definition geos_c.h:267
@ GEOS_POINT
Definition geos_c.h:253
@ GEOS_MULTIPOLYGON
Definition geos_c.h:265
@ GEOS_LINEARRING
Definition geos_c.h:257
@ GEOS_POLYGON
Definition geos_c.h:259
@ GEOS_MULTIPOINT
Definition geos_c.h:261
@ GEOS_LINESTRING
Definition geos_c.h:255
GEOSGeometry * GEOSIntersectionPrec(const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
int GEOSGetNumInteriorRings(const GEOSGeometry *g)
void GEOSContext_setCurveToLineParams_r(GEOSContextHandle_t extHandle, const GEOSCurveToLineParams *params)
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)
GEOSGeometry * GEOSGeom_createEmptyCircularString(void)
int GEOSCurveToLineParams_setMaxStepDegrees(GEOSCurveToLineParams *params, double tolerance)
GEOSMessageHandler_r GEOSContext_setNoticeMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r nf, void *userData)
int GEOSCoordSeq_getOrdinate(const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
void GEOSWKBReader_destroy_r(GEOSContextHandle_t handle, GEOSWKBReader *reader)
GEOSGeometry * GEOSCoverageEdges(const GEOSGeometry *input, int edgetype)
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)
char GEOSCoordSeq_hasM(GEOSCoordSequence *s)
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:326
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)
int GEOSHausdorffDistanceDensifyWithPoints(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist, double *p1x, double *p1y, double *p2x, double *p2y)
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:158
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 GEOSCoordSeq_getM_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
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)
GEOSGeometry * GEOSGeom_createEmptyCurvePolygon(void)
GEOSWKBFlavors
Definition geos_c.h:297
@ GEOS_WKB_ISO
Definition geos_c.h:301
@ GEOS_WKB_EXTENDED
Definition geos_c.h:299
GEOSGeometry * GEOSDensify(const GEOSGeometry *g, double tolerance)
void GEOSisSimpleParams_setFindAllLocations_r(GEOSContextHandle_t handle, GEOSisSimpleParams *params, int findAllLocations)
GEOSisSimpleParams * GEOSisSimpleParams_create_r(GEOSContextHandle_t handle)
GEOSProgressCallback * GEOSContext_setProgressCallback_r(GEOSContextHandle_t extHandle, GEOSProgressCallback *cb, void *userData)
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)
char GEOSCoordSeq_hasZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
int GEOS_getWKBOutputDims(void)
char GEOSisSimpleWithParams(const GEOSGeometry *g, const GEOSisSimpleParams *params, GEOSGeometry **locations)
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)
int GEOSCoverageCleanParams_setGapMaximumWidth(GEOSCoverageCleanParams *params, double gapMaximumWidth)
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)
struct GEOSCurveToLineParams_t GEOSCurveToLineParams
Definition geos_c.h:214
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)
GEOSOverlapMerge
Definition geos_c.h:308
@ GEOS_MERGE_MIN_AREA
Definition geos_c.h:314
@ GEOS_MERGE_MIN_INDEX
Definition geos_c.h:316
@ GEOS_MERGE_LONGEST_BORDER
Definition geos_c.h:310
@ GEOS_MERGE_MAX_AREA
Definition geos_c.h:312
char GEOSisSimpleDetail(const GEOSGeometry *g, int findAllLocations, GEOSGeometry **locations)
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)
GEOSCoverageCleanParams * GEOSCoverageCleanParams_create(void)
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 * GEOSCoverageEdges_r(GEOSContextHandle_t handle, const GEOSGeometry *input, int edgetype)
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)
void GEOSisSimpleParams_setBoundaryNodeRule(GEOSisSimpleParams *params, int bnr)
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)
void GEOSGeoJSONWriter_setOutputDimension(GEOSGeoJSONWriter *writer, int dim)
char * GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
int GEOSHausdorffDistanceWithPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist, double *p1x, double *p1y, double *p2x, double *p2y)
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)
GEOSGeometry * GEOSCoverageCleanWithParams_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, const GEOSCoverageCleanParams *params)
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)
GEOSCoordSequence * GEOSCoordSeq_createWithDimensions_r(GEOSContextHandle_t handle, unsigned int size, int hasZ, int hasM)
GEOSBufCapStyles
Definition geos_c.h:794
@ GEOSBUF_CAP_SQUARE
Definition geos_c.h:803
@ GEOSBUF_CAP_FLAT
Definition geos_c.h:800
@ GEOSBUF_CAP_ROUND
Definition geos_c.h:797
GEOSGeometry * GEOSConvexHull(const GEOSGeometry *g)
GEOSVoronoiFlags
Definition geos_c.h:1397
@ GEOS_VORONOI_PRESERVE_ORDER
Definition geos_c.h:1403
@ GEOS_VORONOI_ONLY_EDGES
Definition geos_c.h:1399
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)
int GEOSCurveToLineParams_setMaxStepDegrees_r(GEOSContextHandle_t extHandle, GEOSCurveToLineParams *params, double tolerance)
void GEOSCoverageCleanParams_destroy_r(GEOSContextHandle_t extHandle, GEOSCoverageCleanParams *params)
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:1788
@ GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE
Definition geos_c.h:1790
int GEOSGeoJSONWriter_getOutputDimension(GEOSGeoJSONWriter *writer)
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)
int GEOSDirectedHausdorffDistanceWithPoints(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist, double *p1x, double *p1y, double *p2x, double *p2y)
struct GEOSWKBWriter_t GEOSWKBWriter
Definition geos_c.h:2352
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)
void GEOSisSimpleParams_destroy_r(GEOSContextHandle_t handle, GEOSisSimpleParams *params)
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:2338
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)
int GEOSSymmetricHausdorffDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
void GEOSMakeValidParams_destroy_r(GEOSContextHandle_t handle, GEOSMakeValidParams *parms)
size_t * GEOSMinimumSpanningTree_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
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)
int GEOSCoverageCleanParams_setGapMaximumWidth_r(GEOSContextHandle_t extHandle, GEOSCoverageCleanParams *params, double gapMaximumWidth)
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)
void GEOSisSimpleParams_destroy(GEOSisSimpleParams *params)
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 GEOSDirectedHausdorffDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
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:281
@ GEOS_WKB_NDR
Definition geos_c.h:285
@ GEOS_WKB_XDR
Definition geos_c.h:283
int GEOSGetNumCurves_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
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:2331
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)
const GEOSGeometry * GEOSGetCurveN(const GEOSGeometry *g, int n)
GEOSRelateBoundaryNodeRules
Definition geos_c.h:1745
@ GEOSRELATE_BNR_OGC
Definition geos_c.h:1749
@ GEOSRELATE_BNR_MULTIVALENT_ENDPOINT
Definition geos_c.h:1753
@ GEOSRELATE_BNR_ENDPOINT
Definition geos_c.h:1751
@ GEOSRELATE_BNR_MOD2
Definition geos_c.h:1747
@ GEOSRELATE_BNR_MONOVALENT_ENDPOINT
Definition geos_c.h:1755
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() GEOSContextInterruptCallback(void *)
Definition geos_c.h:409
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 * GEOSCurveToLine(const GEOSGeometry *g, const GEOSCurveToLineParams *params)
GEOSGeometry * GEOSMakeValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSisSimpleParams_t GEOSisSimpleParams
Definition geos_c.h:228
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:1125
@ GEOSHULL_PARAM_AREA_RATIO
Definition geos_c.h:1129
@ GEOSHULL_PARAM_VERTEX_RATIO
Definition geos_c.h:1127
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 GEOSDirectedHausdorffDistanceWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double maxDistance)
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:98
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:810
@ GEOSBUF_JOIN_MITRE
Definition geos_c.h:820
@ GEOSBUF_JOIN_ROUND
Definition geos_c.h:815
@ GEOSBUF_JOIN_BEVEL
Definition geos_c.h:825
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 GEOSCoverageCleanParams_setSnappingDistance_r(GEOSContextHandle_t extHandle, GEOSCoverageCleanParams *params, double snappingDistance)
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)
int GEOSGetNumCurves(const GEOSGeometry *g)
GEOSWKBReader * GEOSWKBReader_create_r(GEOSContextHandle_t handle)
char GEOSisSimpleDetail_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int findAllLocations, GEOSGeometry **location)
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)
GEOSGeometry * GEOSSubdivideByGrid_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax, unsigned nx, unsigned ny, int includeExterior)
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)
int GEOSDirectedHausdorffDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
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 GEOSCoordSeq_getM(const GEOSCoordSequence *s, unsigned int idx, double *val)
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:364
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)
GEOSCoordSequence * GEOSCoordSeq_createWithDimensions(unsigned int size, int hasZ, int hasM)
int GEOSCoverageCleanParams_setSnappingDistance(GEOSCoverageCleanParams *params, double snappingDistance)
int GEOSDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
int GEOSDirectedHausdorffDistanceWithPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist, double *p1x, double *p1y, double *p2x, double *p2y)
GEOSGeometry * GEOSLineToCurve_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSLineToCurveParams *params)
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:207
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:2366
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.
GEOSGeometry * GEOSCoverageClean_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input)
int GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
double GEOSProjectNormalized(const GEOSGeometry *line, const GEOSGeometry *point)
int GEOSGeom_getYMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSGeom_clone_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
const GEOSPreparedGeometry * GEOSPrepare_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSGeom_setUserData(GEOSGeometry *g, void *userData)
GEOSGeometry * GEOSGeom_createCollection(int type, GEOSGeometry **geoms, unsigned int ngeoms)
void GEOSGeoJSONReader_destroy(GEOSGeoJSONReader *reader)
GEOSGeometry * GEOSGeom_createEmptyCompoundCurve(void)
GEOSGeometry * GEOSCurveToLine_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSCurveToLineParams *params)
GEOSGeometry * GEOSGetCentroid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer(const double *buf, unsigned int size, int hasZ, int hasM)
int GEOSGridIntersectionFractions(const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax, unsigned nx, unsigned ny, float *buf)
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)
GEOSGeometry * GEOSLineToCurve(const GEOSGeometry *g, const GEOSLineToCurveParams *params)
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)
int GEOSFrechetDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
struct GEOSBufParams_t GEOSBufferParams
Definition geos_c.h:187
char GEOSPreparedCovers_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSCoordSeq_hasM_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
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:1944
@ GEOS_PREC_NO_TOPO
Definition geos_c.h:1948
@ GEOS_PREC_KEEP_COLLAPSED
Definition geos_c.h:1950
@ GEOS_PREC_VALID_OUTPUT
Definition geos_c.h:1946
int GEOSGetNumGeometries(const GEOSGeometry *g)
int GEOSCoordSeq_setM(GEOSCoordSequence *s, unsigned int idx, double val)
void * GEOSGeom_getUserData(const GEOSGeometry *g)
char GEOSCoordSeq_hasZ(GEOSCoordSequence *s)
int GEOSGetNumCoordinates(const GEOSGeometry *g)
struct GEOSMakeValidParams_t GEOSMakeValidParams
Definition geos_c.h:201
char GEOSRelatePatternMatch(const char *intMatrix, const char *imPattern)
void GEOS_finish_r(GEOSContextHandle_t handle)
GEOSMakeValidMethods
Definition geos_c.h:1825
@ GEOS_MAKE_VALID_LINEWORK
Definition geos_c.h:1829
@ GEOS_MAKE_VALID_STRUCTURE
Definition geos_c.h:1834
GEOSGeometry * GEOSWKBReader_readHEX(GEOSWKBReader *reader, const unsigned char *hex, size_t size)
int GEOSGeom_getYMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSGeom_createEmptyLineString(void)
const GEOSGeometry * GEOSGetInteriorRingN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSGeometry * GEOSInterpolateNormalized(const GEOSGeometry *line, double proportion)
GEOSGeometry * GEOSGeom_clone(const GEOSGeometry *g)
void GEOSGeoJSONWriter_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
int GEOSBufferParams_setSingleSided(GEOSBufferParams *p, int singleSided)
const GEOSGeometry * GEOSGetInteriorRingN(const GEOSGeometry *g, int n)
int GEOSGeomGetZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *z)
GEOSGeometry * GEOSUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeometry * GEOSGeom_createPointFromXY_r(GEOSContextHandle_t handle, double x, double y)
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)
int GEOSCurveToLineParams_setMaxDeviation(GEOSCurveToLineParams *params, double tolerance)
int GEOSLineToCurveParams_setMaxStepDegrees_r(GEOSContextHandle_t extHandle, GEOSLineToCurveParams *params, double tolerance)
int GEOSCoordSeq_setM_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSGeometry * GEOSUnion(const GEOSGeometry *ga, const GEOSGeometry *gb)
void GEOSGeoJSONReader_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader)
GEOSGeometry * GEOSSimplify(const GEOSGeometry *g, double tolerance)
int GEOSLineToCurveParams_setRadiusTolerance_r(GEOSContextHandle_t extHandle, GEOSLineToCurveParams *params, 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 GEOSHausdorffDistanceWithPoints(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist, double *p1x, double *p1y, double *p2x, double *p2y)
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 GEOSLineToCurveParams_setRadiusTolerance(GEOSLineToCurveParams *params, double tolerance)
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)
void GEOSGeoJSONWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer, int dim)
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)
int GEOSCoverageCleanParams_setOverlapMergeStrategy(GEOSCoverageCleanParams *params, int overlapMergeStrategy)
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)
GEOSisSimpleParams * GEOSisSimpleParams_create(void)
GEOSContextInterruptCallback * GEOSContext_setInterruptCallback_r(GEOSContextHandle_t extHandle, GEOSContextInterruptCallback *cb, void *userData)
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:399
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 * GEOSCoverageClean(const GEOSGeometry *input)
GEOSGeometry * GEOSSnap(const GEOSGeometry *input, const GEOSGeometry *snap_target, double tolerance)
GEOSWKBWriter * GEOSWKBWriter_create(void)
struct GEOSSTRtree_t GEOSSTRtree
Definition geos_c.h:180
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 GEOSCurveToLineParams_setMaxDeviation_r(GEOSContextHandle_t extHandle, GEOSCurveToLineParams *params, double tolerance)
int GEOSGeom_getXMax(const GEOSGeometry *g, double *value)
int GEOSSymmetricHausdorffDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
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)
struct GEOSCoverageCleanParams_t GEOSCoverageCleanParams
Definition geos_c.h:194
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)
const char * GEOSrevision(void)
double GEOSProject(const GEOSGeometry *line, const GEOSGeometry *point)
int(* GEOSTransformXYZCallback)(double *x, double *y, double *z, void *userdata)
Definition geos_c.h:383
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:165