GEOS 3.14.0dev
geos_c.h
Go to the documentation of this file.
1/************************************************************************
2 *
3 * C-Wrapper for GEOS library
4 *
5 * Copyright (C) 2010 2011 Sandro Santilli <strk@kbt.io>
6 * Copyright (C) 2005 Refractions Research Inc.
7 *
8 * This is free software; you can redistribute and/or modify it under
9 * the terms of the GNU Lesser General Public Licence as published
10 * by the Free Software Foundation.
11 * See the COPYING file for more information.
12 ***********************************************************************/
13
40#ifndef GEOS_C_H_INCLUDED
41#define GEOS_C_H_INCLUDED
42
43#ifndef __cplusplus
44# include <stddef.h> /* for size_t definition */
45#else
46# include <cstddef>
47using std::size_t;
48#endif
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54/* ====================================================================== */
55/* Version */
56/* ====================================================================== */
57
60#ifndef GEOS_VERSION_MAJOR
61#define GEOS_VERSION_MAJOR 3
62#endif
63#ifndef GEOS_VERSION_MINOR
64#define GEOS_VERSION_MINOR 14
65#endif
66#ifndef GEOS_VERSION_PATCH
67#define GEOS_VERSION_PATCH 0dev
68#endif
69#ifndef GEOS_VERSION
70#define GEOS_VERSION "3.14.0dev"
71#endif
72#ifndef GEOS_JTS_PORT
73#define GEOS_JTS_PORT "1.18.0"
74#endif
75
76#define GEOS_CAPI_VERSION_MAJOR 1
77#define GEOS_CAPI_VERSION_MINOR 20
78#define GEOS_CAPI_VERSION_PATCH 0
79#define GEOS_CAPI_VERSION "3.14.0dev-CAPI-1.20.0"
80
81#define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
82#define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
83
86#include <geos/export.h>
87
88
95typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
96
105typedef void (*GEOSMessageHandler)(GEOS_PRINTF_FORMAT const char *fmt, ...)
106 GEOS_PRINTF_FORMAT_ATTR(1, 2);
107
118typedef void (*GEOSMessageHandler_r)(const char *message, void *userdata);
119
120/*
121* When we're included by geos_c.cpp, these types are #defined to the
122* C++ definitions via preprocessor. We don't touch them to allow the
123* compiler to cross-check the declarations. However, for all "normal"
124* C-API users, we need to define these types as "opaque" struct pointers, as
125* those clients don't have access to the original C++ headers, by design.
126*/
127#ifndef GEOSGeometry
128
140typedef struct GEOSGeom_t GEOSGeometry;
141
147typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
148
155typedef struct GEOSCoordSeq_t GEOSCoordSequence;
156
162typedef struct GEOSSTRtree_t GEOSSTRtree;
163
169typedef struct GEOSBufParams_t GEOSBufferParams;
170
176typedef struct GEOSMakeValidParams_t GEOSMakeValidParams;
177
182typedef struct GEOSClusterInfo_t GEOSClusterInfo;
183
184#endif
185
188/*
189* These are compatibility definitions for source compatibility
190* with GEOS 2.X clients relying on that type.
191*/
192typedef GEOSGeometry* GEOSGeom;
193typedef GEOSCoordSequence* GEOSCoordSeq;
194
221 GEOS_CIRCULARSTRING,
222 GEOS_COMPOUNDCURVE,
223 GEOS_CURVEPOLYGON,
224 GEOS_MULTICURVE,
225 GEOS_MULTISURFACE,
226};
227
240
256
264typedef void (*GEOSQueryCallback)(void *item, void *userdata);
265
283typedef int (*GEOSDistanceCallback)(
284 const void* item1,
285 const void* item2,
286 double* distance,
287 void* userdata);
288
289
303 double* x,
304 double* y,
305 void* userdata);
306
307
322 double* x,
323 double* y,
324 double* z,
325 void* userdata);
326
327
328/* ========== Interruption ========== */
329
338typedef void (GEOSInterruptCallback)(void);
339
349
354extern void GEOS_DLL GEOS_interruptRequest(void);
355
360extern void GEOS_DLL GEOS_interruptCancel(void);
361
362/* ========== Initialization and Cleanup ========== */
363
372extern GEOSContextHandle_t GEOS_DLL GEOS_init_r(void);
373
381extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
382
392 GEOSContextHandle_t extHandle,
394
406 GEOSContextHandle_t extHandle,
408
419 GEOSContextHandle_t extHandle,
421 void *userData);
422
435 GEOSContextHandle_t extHandle,
437 void *userData);
438
439/* ========== Coordinate Sequence functions ========== */
440
443 GEOSContextHandle_t handle,
444 unsigned int size,
445 unsigned int dims);
446
449 GEOSContextHandle_t handle,
450 unsigned int size,
451 int hasZ,
452 int hasM);
453
456 GEOSContextHandle_t handle,
457 const double* buf,
458 unsigned int size,
459 int hasZ,
460 int hasM);
461
464 GEOSContextHandle_t handle,
465 const double* x,
466 const double* y,
467 const double* z,
468 const double* m,
469 unsigned int size);
470
472extern int GEOS_DLL GEOSCoordSeq_copyToBuffer_r(
473 GEOSContextHandle_t handle,
474 const GEOSCoordSequence* s,
475 double* buf,
476 int hasZ,
477 int hasM);
478
480extern int GEOS_DLL GEOSCoordSeq_copyToArrays_r(
481 GEOSContextHandle_t handle,
482 const GEOSCoordSequence* s,
483 double* x,
484 double* y,
485 double* z,
486 double* m);
487
490 GEOSContextHandle_t handle,
491 const GEOSCoordSequence* s);
492
494extern void GEOS_DLL GEOSCoordSeq_destroy_r(
495 GEOSContextHandle_t handle,
497
499extern char GEOS_DLL GEOSCoordSeq_hasZ_r(
500 GEOSContextHandle_t handle,
502
504extern char GEOS_DLL GEOSCoordSeq_hasM_r(
505 GEOSContextHandle_t handle,
507
509extern int GEOS_DLL GEOSCoordSeq_setX_r(
510 GEOSContextHandle_t handle,
511 GEOSCoordSequence* s, unsigned int idx,
512 double val);
513
515extern int GEOS_DLL GEOSCoordSeq_setY_r(
516 GEOSContextHandle_t handle,
517 GEOSCoordSequence* s, unsigned int idx,
518 double val);
519
521extern int GEOS_DLL GEOSCoordSeq_setZ_r(
522 GEOSContextHandle_t handle,
523 GEOSCoordSequence* s, unsigned int idx,
524 double val);
525
527extern int GEOS_DLL GEOSCoordSeq_setM_r(
528 GEOSContextHandle_t handle,
529 GEOSCoordSequence* s, unsigned int idx,
530 double val);
531
533extern int GEOS_DLL GEOSCoordSeq_setXY_r(
534 GEOSContextHandle_t handle,
535 GEOSCoordSequence* s, unsigned int idx,
536 double x, double y);
537
539extern int GEOS_DLL GEOSCoordSeq_setXYZ_r(
540 GEOSContextHandle_t handle,
541 GEOSCoordSequence* s, unsigned int idx,
542 double x, double y, double z);
543
545extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(
546 GEOSContextHandle_t handle,
548 unsigned int idx,
549 unsigned int dim, double val);
550
552extern int GEOS_DLL GEOSCoordSeq_getX_r(
553 GEOSContextHandle_t handle,
554 const GEOSCoordSequence* s,
555 unsigned int idx, double *val);
556
558extern int GEOS_DLL GEOSCoordSeq_getY_r(
559 GEOSContextHandle_t handle,
560 const GEOSCoordSequence* s,
561 unsigned int idx, double *val);
562
564extern int GEOS_DLL GEOSCoordSeq_getZ_r(
565 GEOSContextHandle_t handle,
566 const GEOSCoordSequence* s,
567 unsigned int idx, double *val);
568
570extern int GEOS_DLL GEOSCoordSeq_getM_r(
571 GEOSContextHandle_t handle,
572 const GEOSCoordSequence* s,
573 unsigned int idx, double *val);
574
576extern int GEOS_DLL GEOSCoordSeq_getXY_r(
577 GEOSContextHandle_t handle,
578 const GEOSCoordSequence* s,
579 unsigned int idx,
580 double *x, double *y);
581
583extern int GEOS_DLL GEOSCoordSeq_getXYZ_r(
584 GEOSContextHandle_t handle,
585 const GEOSCoordSequence* s,
586 unsigned int idx,
587 double *x, double *y, double *z);
588
590extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(
591 GEOSContextHandle_t handle,
592 const GEOSCoordSequence* s,
593 unsigned int idx,
594 unsigned int dim, double *val);
595
597extern int GEOS_DLL GEOSCoordSeq_getSize_r(
598 GEOSContextHandle_t handle,
599 const GEOSCoordSequence* s,
600 unsigned int *size);
601
604 GEOSContextHandle_t handle,
605 const GEOSCoordSequence* s,
606 unsigned int *dims);
607
609extern int GEOS_DLL GEOSCoordSeq_isCCW_r(
610 GEOSContextHandle_t handle,
611 const GEOSCoordSequence* s,
612 char* is_ccw);
613
614/* ========= Linear referencing functions ========= */
615
617extern double GEOS_DLL GEOSProject_r(
618 GEOSContextHandle_t handle,
619 const GEOSGeometry *line,
620 const GEOSGeometry *point);
621
624 GEOSContextHandle_t handle,
625 const GEOSGeometry *line,
626 double d);
627
629extern double GEOS_DLL GEOSProjectNormalized_r(
630 GEOSContextHandle_t handle,
631 const GEOSGeometry *g,
632 const GEOSGeometry *p);
633
636 GEOSContextHandle_t handle,
637 const GEOSGeometry *g,
638 double d);
639
640/* ========== Buffer related functions ========== */
641
643extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(
644 GEOSContextHandle_t handle,
645 const GEOSGeometry* g,
646 double width, int quadsegs);
647
663
685
688 GEOSContextHandle_t handle);
689
691extern void GEOS_DLL GEOSBufferParams_destroy_r(
692 GEOSContextHandle_t handle,
693 GEOSBufferParams* parms);
694
697 GEOSContextHandle_t handle,
699 int style);
700
703 GEOSContextHandle_t handle,
705 int joinStyle);
706
709 GEOSContextHandle_t handle,
711 double mitreLimit);
712
715 GEOSContextHandle_t handle,
717 int quadSegs);
718
721 GEOSContextHandle_t handle,
723 int singleSided);
724
727 GEOSContextHandle_t handle,
728 const GEOSGeometry* g,
729 const GEOSBufferParams* p,
730 double width);
731
734 GEOSContextHandle_t handle,
735 const GEOSGeometry* g,
736 double width, int quadsegs, int endCapStyle,
737 int joinStyle, double mitreLimit);
738
741 GEOSContextHandle_t handle,
742 const GEOSGeometry* g,
743 double tolerance);
744
747 GEOSContextHandle_t handle,
748 const GEOSGeometry* g, double width, int quadsegs,
749 int joinStyle, double mitreLimit);
750
751
752/* ========= Geometry Constructors ========= */
753
756 GEOSContextHandle_t handle,
758
761 GEOSContextHandle_t handle,
762 double x, double y);
763
766 GEOSContextHandle_t handle);
767
770 GEOSContextHandle_t handle,
772
775 GEOSContextHandle_t handle,
777
780 GEOSContextHandle_t handle);
781
784 GEOSContextHandle_t handle);
785
788 GEOSContextHandle_t handle,
789 GEOSGeometry* shell,
790 GEOSGeometry** holes,
791 unsigned int nholes);
792
795 GEOSContextHandle_t handle,
796 int type,
797 GEOSGeometry* *geoms,
798 unsigned int ngeoms);
799
802 GEOSContextHandle_t handle,
803 GEOSGeometry * collection,
804 unsigned int * ngeoms);
805
808 GEOSContextHandle_t handle, int type);
809
812 GEOSContextHandle_t handle,
813 double xmin, double ymin,
814 double xmax, double ymax);
815
818 GEOSContextHandle_t handle,
819 const GEOSGeometry* g);
820
823 GEOSContextHandle_t handle,
825
828 GEOSContextHandle_t handle);
829
832 GEOSContextHandle_t handle,
833 GEOSGeometry** curves,
834 unsigned int ncurves);
835
838 GEOSContextHandle_t handle);
839
842 GEOSContextHandle_t handle,
843 GEOSGeometry* shell,
844 GEOSGeometry** holes,
845 unsigned int nholes);
846
849 GEOSContextHandle_t handle);
850
851/* ========= Memory management ========= */
852
854extern void GEOS_DLL GEOSGeom_destroy_r(
855 GEOSContextHandle_t handle,
856 GEOSGeometry* g);
857
858/* ========= Coverages ========= */
859
861extern GEOSGeometry GEOS_DLL *
863 GEOSContextHandle_t handle,
864 const GEOSGeometry* g);
865
867extern int GEOS_DLL
869 GEOSContextHandle_t extHandle,
870 const GEOSGeometry* input,
871 double gapWidth,
872 GEOSGeometry** output);
873
875extern GEOSGeometry GEOS_DLL *
877 GEOSContextHandle_t extHandle,
878 const GEOSGeometry* input,
879 double tolerance,
880 int preserveBoundary);
881
882/* ========= Topology Operations ========= */
883
886 GEOSContextHandle_t handle,
887 const GEOSGeometry* g);
888
891 GEOSContextHandle_t handle,
892 const GEOSGeometry* g1,
893 const GEOSGeometry* g2);
894
897 GEOSContextHandle_t handle,
898 const GEOSGeometry* g1,
899 const GEOSGeometry* g2,
900 double gridSize);
901
904 GEOSContextHandle_t handle,
905 const GEOSGeometry* g);
906
909 GEOSContextHandle_t handle,
910 const GEOSGeometry* g,
911 double ratio,
912 unsigned int allowHoles);
913
916 GEOSContextHandle_t handle,
917 const GEOSGeometry* g,
918 double ratio,
919 unsigned int allowHoles);
920
923 GEOSContextHandle_t handle,
924 const GEOSGeometry* g,
925 unsigned int isOuter,
926 double vertexNumFraction);
927
930 GEOSContextHandle_t handle,
931 const GEOSGeometry* g,
932 unsigned int isOuter,
933 unsigned int parameterMode,
934 double parameter);
935
938 GEOSContextHandle_t handle,
939 const GEOSGeometry* g,
940 double lengthRatio,
941 unsigned int isTight,
942 unsigned int isHolesAllowed);
943
946 GEOSContextHandle_t handle,
947 const GEOSGeometry* g);
948
951 GEOSContextHandle_t handle,
952 const GEOSGeometry* g,
953 double tolerance);
954
957 GEOSContextHandle_t handle,
958 const GEOSGeometry* g,
959 const GEOSGeometry* boundary,
960 double tolerance);
961
964 GEOSContextHandle_t handle,
965 const GEOSGeometry* g);
966
969 GEOSContextHandle_t handle,
970 const GEOSGeometry* g);
971
973extern int GEOS_DLL GEOSMinimumClearance_r(
974 GEOSContextHandle_t handle,
975 const GEOSGeometry* g,
976 double* distance);
977
980 GEOSContextHandle_t handle,
981 const GEOSGeometry* g1,
982 const GEOSGeometry* g2);
983
986 GEOSContextHandle_t handle,
987 const GEOSGeometry* g1,
988 const GEOSGeometry* g2,
989 double gridSize);
990
993 GEOSContextHandle_t handle,
994 const GEOSGeometry* g1,
995 const GEOSGeometry* g2);
996
999 GEOSContextHandle_t handle,
1000 const GEOSGeometry* g1,
1001 const GEOSGeometry* g2,
1002 double gridSize);
1003
1006 GEOSContextHandle_t handle,
1007 const GEOSGeometry* g);
1008
1010extern GEOSGeometry GEOS_DLL *GEOSUnion_r(
1011 GEOSContextHandle_t handle,
1012 const GEOSGeometry* g1,
1013 const GEOSGeometry* g2);
1014
1017 GEOSContextHandle_t handle,
1018 const GEOSGeometry* g1,
1019 const GEOSGeometry* g2,
1020 double gridSize);
1021
1024 GEOSContextHandle_t handle,
1025 const GEOSGeometry* g);
1026
1029 GEOSContextHandle_t handle,
1030 const GEOSGeometry* g,
1031 double gridSize);
1032
1035 GEOSContextHandle_t handle,
1036 const GEOSGeometry* g);
1037
1040 GEOSContextHandle_t handle,
1041 const GEOSGeometry* g);
1042
1045 GEOSContextHandle_t handle,
1046 const GEOSGeometry* g);
1047
1050 GEOSContextHandle_t handle,
1051 const GEOSGeometry* g,
1052 double* radius,
1053 GEOSGeometry** center);
1054
1056extern GEOSGeometry GEOS_DLL *GEOSNode_r(
1057 GEOSContextHandle_t handle,
1058 const GEOSGeometry* g);
1059
1062 GEOSContextHandle_t handle,
1063 const GEOSGeometry* g,
1064 double xmin, double ymin,
1065 double xmax, double ymax);
1066
1069 GEOSContextHandle_t handle,
1070 const GEOSGeometry *const geoms[],
1071 unsigned int ngeoms);
1072
1075 GEOSContextHandle_t handle,
1076 const GEOSGeometry *const geoms[],
1077 unsigned int ngems);
1078
1081 GEOSContextHandle_t handle,
1082 const GEOSGeometry * const geoms[],
1083 unsigned int ngeoms);
1084
1087 GEOSContextHandle_t handle,
1088 const GEOSGeometry* input,
1089 GEOSGeometry** cuts,
1090 GEOSGeometry** dangles,
1091 GEOSGeometry** invalidRings);
1092
1095 GEOSContextHandle_t handle,
1096 const GEOSGeometry* g);
1097
1100 GEOSContextHandle_t handle,
1101 const GEOSGeometry* g);
1102
1105 GEOSContextHandle_t handle,
1106 const GEOSGeometry* g);
1107
1110 GEOSContextHandle_t handle,
1111 const GEOSGeometry* g,
1112 double start_fraction,
1113 double end_fdraction);
1114
1117 GEOSContextHandle_t handle,
1118 const GEOSGeometry* g);
1119
1122 GEOSContextHandle_t handle,
1123 const GEOSGeometry* g,
1124 double tolerance);
1125
1128 GEOSContextHandle_t handle,
1129 const GEOSGeometry* g, double tolerance);
1130
1133 GEOSContextHandle_t handle,
1134 const GEOSGeometry* g);
1135
1138 GEOSContextHandle_t handle,
1139 const GEOSGeometry* g1,
1140 const GEOSGeometry* g2);
1141
1143extern GEOSGeometry GEOS_DLL *GEOSSnap_r(
1144 GEOSContextHandle_t handle,
1145 const GEOSGeometry* g1,
1146 const GEOSGeometry* g2,
1147 double tolerance);
1148
1151 GEOSContextHandle_t handle,
1152 const GEOSGeometry *g,
1153 double tolerance,
1154 int onlyEdges);
1155
1158 GEOSContextHandle_t handle,
1159 const GEOSGeometry *g);
1160
1163 GEOSContextHandle_t extHandle,
1164 const GEOSGeometry *g,
1165 const GEOSGeometry *env,
1166 double tolerance,
1167 int flags);
1168
1170extern int GEOS_DLL GEOSSegmentIntersection_r(
1171 GEOSContextHandle_t extHandle,
1172 double ax0, double ay0,
1173 double ax1, double ay1,
1174 double bx0, double by0,
1175 double bx1, double by1,
1176 double* cx, double* cy);
1177
1178/* ========= Binary predicates ========= */
1179
1181extern char GEOS_DLL GEOSDisjoint_r(
1182 GEOSContextHandle_t handle,
1183 const GEOSGeometry* g1,
1184 const GEOSGeometry* g2);
1185
1187extern char GEOS_DLL GEOSTouches_r(
1188 GEOSContextHandle_t handle,
1189 const GEOSGeometry* g1,
1190 const GEOSGeometry* g2);
1191
1193extern char GEOS_DLL GEOSIntersects_r(
1194 GEOSContextHandle_t handle,
1195 const GEOSGeometry* g1,
1196 const GEOSGeometry* g2);
1197
1199extern char GEOS_DLL GEOSCrosses_r(
1200 GEOSContextHandle_t handle,
1201 const GEOSGeometry* g1,
1202 const GEOSGeometry* g2);
1203
1205extern char GEOS_DLL GEOSWithin_r(
1206 GEOSContextHandle_t handle,
1207 const GEOSGeometry* g1,
1208 const GEOSGeometry* g2);
1209
1211extern char GEOS_DLL GEOSContains_r(
1212 GEOSContextHandle_t handle,
1213 const GEOSGeometry* g1,
1214 const GEOSGeometry* g2);
1215
1217extern char GEOS_DLL GEOSOverlaps_r(
1218 GEOSContextHandle_t handle,
1219 const GEOSGeometry* g1,
1220 const GEOSGeometry* g2);
1221
1223extern char GEOS_DLL GEOSEquals_r(
1224 GEOSContextHandle_t handle,
1225 const GEOSGeometry* g1,
1226 const GEOSGeometry* g2);
1227
1229extern char GEOS_DLL GEOSEqualsExact_r(
1230 GEOSContextHandle_t handle,
1231 const GEOSGeometry* g1,
1232 const GEOSGeometry* g2,
1233 double tolerance);
1234
1236extern char GEOS_DLL GEOSEqualsIdentical_r(
1237 GEOSContextHandle_t handle,
1238 const GEOSGeometry* g1,
1239 const GEOSGeometry* g2);
1240
1242extern char GEOS_DLL GEOSCovers_r(
1243 GEOSContextHandle_t handle,
1244 const GEOSGeometry* g1,
1245 const GEOSGeometry* g2);
1246
1248extern char GEOS_DLL GEOSCoveredBy_r(
1249 GEOSContextHandle_t handle,
1250 const GEOSGeometry* g1,
1251 const GEOSGeometry* g2);
1252
1253/* ========= Prepared Geometry Binary Predicates ========== */
1254
1257 GEOSContextHandle_t handle,
1258 const GEOSGeometry* g);
1259
1261extern void GEOS_DLL GEOSPreparedGeom_destroy_r(
1262 GEOSContextHandle_t handle,
1263 const GEOSPreparedGeometry* g);
1264
1266extern char GEOS_DLL GEOSPreparedContains_r(
1267 GEOSContextHandle_t handle,
1268 const GEOSPreparedGeometry* pg1,
1269 const GEOSGeometry* g2);
1270
1272extern char GEOS_DLL GEOSPreparedContainsXY_r(
1273 GEOSContextHandle_t handle,
1274 const GEOSPreparedGeometry* pg1,
1275 double x,
1276 double y);
1277
1280 GEOSContextHandle_t handle,
1281 const GEOSPreparedGeometry* pg1,
1282 const GEOSGeometry* g2);
1283
1285extern char GEOS_DLL GEOSPreparedCoveredBy_r(
1286 GEOSContextHandle_t handle,
1287 const GEOSPreparedGeometry* pg1,
1288 const GEOSGeometry* g2);
1289
1291extern char GEOS_DLL GEOSPreparedCovers_r(
1292 GEOSContextHandle_t handle,
1293 const GEOSPreparedGeometry* pg1,
1294 const GEOSGeometry* g2);
1295
1297extern char GEOS_DLL GEOSPreparedCrosses_r(
1298 GEOSContextHandle_t handle,
1299 const GEOSPreparedGeometry* pg1,
1300 const GEOSGeometry* g2);
1301
1303extern char GEOS_DLL GEOSPreparedDisjoint_r(
1304 GEOSContextHandle_t handle,
1305 const GEOSPreparedGeometry* pg1,
1306 const GEOSGeometry* g2);
1307
1309extern char GEOS_DLL GEOSPreparedIntersects_r(
1310 GEOSContextHandle_t handle,
1311 const GEOSPreparedGeometry* pg1,
1312 const GEOSGeometry* g2);
1313
1315extern char GEOS_DLL GEOSPreparedIntersectsXY_r(
1316 GEOSContextHandle_t handle,
1317 const GEOSPreparedGeometry* pg1,
1318 double x,
1319 double y);
1320
1322extern char GEOS_DLL GEOSPreparedOverlaps_r(
1323 GEOSContextHandle_t handle,
1324 const GEOSPreparedGeometry* pg1,
1325 const GEOSGeometry* g2);
1326
1328extern char GEOS_DLL GEOSPreparedTouches_r(
1329 GEOSContextHandle_t handle,
1330 const GEOSPreparedGeometry* pg1,
1331 const GEOSGeometry* g2);
1332
1334extern char GEOS_DLL GEOSPreparedWithin_r(
1335 GEOSContextHandle_t handle,
1336 const GEOSPreparedGeometry* pg1,
1337 const GEOSGeometry* g2);
1338
1340extern char GEOS_DLL * GEOSPreparedRelate_r(
1341 GEOSContextHandle_t handle,
1342 const GEOSPreparedGeometry* pg1,
1343 const GEOSGeometry* g2);
1344
1346extern char GEOS_DLL GEOSPreparedRelatePattern_r(
1347 GEOSContextHandle_t handle,
1348 const GEOSPreparedGeometry* pg1,
1349 const GEOSGeometry* g2,
1350 const char* im);
1351
1354 GEOSContextHandle_t handle,
1355 const GEOSPreparedGeometry* pg1,
1356 const GEOSGeometry* g2);
1357
1359extern int GEOS_DLL GEOSPreparedDistance_r(
1360 GEOSContextHandle_t handle,
1361 const GEOSPreparedGeometry* pg1,
1362 const GEOSGeometry* g2, double *dist);
1363
1365extern char GEOS_DLL GEOSPreparedDistanceWithin_r(
1366 GEOSContextHandle_t handle,
1367 const GEOSPreparedGeometry* pg1,
1368 const GEOSGeometry* g2, double dist);
1369
1370/* ========== STRtree ========== */
1371
1374 GEOSContextHandle_t handle,
1375 size_t nodeCapacity);
1376
1378extern int GEOS_DLL GEOSSTRtree_build_r(
1379 GEOSContextHandle_t handle,
1380 GEOSSTRtree *tree);
1381
1383extern void GEOS_DLL GEOSSTRtree_insert_r(
1384 GEOSContextHandle_t handle,
1385 GEOSSTRtree *tree,
1386 const GEOSGeometry *g,
1387 void *item);
1388
1390extern void GEOS_DLL GEOSSTRtree_query_r(
1391 GEOSContextHandle_t handle,
1392 GEOSSTRtree *tree,
1393 const GEOSGeometry *g,
1394 GEOSQueryCallback callback,
1395 void *userdata);
1396
1399 GEOSContextHandle_t handle,
1400 GEOSSTRtree *tree,
1401 const GEOSGeometry* geom);
1402
1404extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(
1405 GEOSContextHandle_t handle,
1406 GEOSSTRtree *tree,
1407 const void* item,
1408 const GEOSGeometry* itemEnvelope,
1409 GEOSDistanceCallback distancefn,
1410 void* userdata);
1411
1413extern void GEOS_DLL GEOSSTRtree_iterate_r(
1414 GEOSContextHandle_t handle,
1415 GEOSSTRtree *tree,
1416 GEOSQueryCallback callback,
1417 void *userdata);
1418
1420extern char GEOS_DLL GEOSSTRtree_remove_r(
1421 GEOSContextHandle_t handle,
1422 GEOSSTRtree *tree,
1423 const GEOSGeometry *g,
1424 void *item);
1425
1427extern void GEOS_DLL GEOSSTRtree_destroy_r(
1428 GEOSContextHandle_t handle,
1429 GEOSSTRtree *tree);
1430
1431
1432/* ========= Unary predicate ========= */
1433
1435extern char GEOS_DLL GEOSisEmpty_r(
1436 GEOSContextHandle_t handle,
1437 const GEOSGeometry* g);
1438
1440extern char GEOS_DLL GEOSisSimple_r(
1441 GEOSContextHandle_t handle,
1442 const GEOSGeometry* g);
1443
1445extern char GEOS_DLL GEOSisRing_r(
1446 GEOSContextHandle_t handle,
1447 const GEOSGeometry* g);
1448
1450extern char GEOS_DLL GEOSHasZ_r(
1451 GEOSContextHandle_t handle,
1452 const GEOSGeometry* g);
1453
1455extern char GEOS_DLL GEOSHasM_r(
1456 GEOSContextHandle_t handle,
1457 const GEOSGeometry* g);
1458
1460extern char GEOS_DLL GEOSisClosed_r(
1461 GEOSContextHandle_t handle,
1462 const GEOSGeometry *g);
1463
1464/* ========== Dimensionally Extended 9 Intersection Model ========== */
1465
1482
1484extern char GEOS_DLL GEOSRelatePattern_r(
1485 GEOSContextHandle_t handle,
1486 const GEOSGeometry* g1,
1487 const GEOSGeometry* g2,
1488 const char *imPattern);
1489
1491extern char GEOS_DLL *GEOSRelate_r(
1492 GEOSContextHandle_t handle,
1493 const GEOSGeometry* g1,
1494 const GEOSGeometry* g2);
1495
1497extern char GEOS_DLL GEOSRelatePatternMatch_r(
1498 GEOSContextHandle_t handle,
1499 const char *intMatrix,
1500 const char *imPattern);
1501
1503extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(
1504 GEOSContextHandle_t handle,
1505 const GEOSGeometry* g1,
1506 const GEOSGeometry* g2,
1507 int bnr);
1508
1509/* ========= Validity checking ========= */
1510
1517
1519extern char GEOS_DLL GEOSisValid_r(
1520 GEOSContextHandle_t handle,
1521 const GEOSGeometry* g);
1522
1524extern char GEOS_DLL *GEOSisValidReason_r(
1525 GEOSContextHandle_t handle,
1526 const GEOSGeometry* g);
1527
1529extern char GEOS_DLL GEOSisValidDetail_r(
1530 GEOSContextHandle_t handle,
1531 const GEOSGeometry* g,
1532 int flags,
1533 char** reason,
1534 GEOSGeometry** location);
1535
1536/* ========== Make Valid ========== */
1537
1554
1557 GEOSContextHandle_t extHandle);
1558
1561 GEOSContextHandle_t handle,
1562 GEOSMakeValidParams* parms);
1563
1566 GEOSContextHandle_t handle,
1568 int style);
1569
1572 GEOSContextHandle_t handle,
1574 enum GEOSMakeValidMethods method);
1575
1578 GEOSContextHandle_t handle,
1579 const GEOSGeometry* g);
1580
1583 GEOSContextHandle_t handle,
1584 const GEOSGeometry* g,
1585 const GEOSMakeValidParams* makeValidParams);
1586
1589 GEOSContextHandle_t handle,
1590 const GEOSGeometry* g,
1591 double tolerance);
1592
1593/* ========== Geometry info ========== */
1594
1596/* Return NULL on exception, result must be freed by caller. */
1597extern char GEOS_DLL *GEOSGeomType_r(
1598 GEOSContextHandle_t handle,
1599 const GEOSGeometry* g);
1600
1602extern int GEOS_DLL GEOSGeomTypeId_r(
1603 GEOSContextHandle_t handle,
1604 const GEOSGeometry* g);
1605
1607extern int GEOS_DLL GEOSGetSRID_r(
1608 GEOSContextHandle_t handle,
1609 const GEOSGeometry* g);
1610
1612extern void GEOS_DLL GEOSSetSRID_r(
1613 GEOSContextHandle_t handle,
1614 GEOSGeometry* g, int SRID);
1615
1617extern void GEOS_DLL *GEOSGeom_getUserData_r(
1618 GEOSContextHandle_t handle,
1619 const GEOSGeometry* g);
1620
1622extern void GEOS_DLL GEOSGeom_setUserData_r(
1623 GEOSContextHandle_t handle,
1624 GEOSGeometry* g,
1625 void* userData);
1626
1628extern int GEOS_DLL GEOSGetNumGeometries_r(
1629 GEOSContextHandle_t handle,
1630 const GEOSGeometry* g);
1631
1633extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1634 GEOSContextHandle_t handle,
1635 const GEOSGeometry* g, int n);
1636
1638extern int GEOS_DLL GEOSNormalize_r(
1639 GEOSContextHandle_t handle,
1640 GEOSGeometry* g);
1641
1643extern int GEOS_DLL GEOSOrientPolygons_r(
1644 GEOSContextHandle_t handle,
1645 GEOSGeometry* g,
1646 int exteriorCW);
1647
1660
1663 GEOSContextHandle_t handle,
1664 const GEOSGeometry *g,
1665 double gridSize,
1666 int flags);
1667
1669extern double GEOS_DLL GEOSGeom_getPrecision_r(
1670 GEOSContextHandle_t handle,
1671 const GEOSGeometry *g);
1672
1674extern int GEOS_DLL GEOSGetNumInteriorRings_r(
1675 GEOSContextHandle_t handle,
1676 const GEOSGeometry* g);
1677
1679extern int GEOS_DLL GEOSGeomGetNumPoints_r(
1680 GEOSContextHandle_t handle,
1681 const GEOSGeometry* g);
1682
1684extern int GEOS_DLL GEOSGeomGetX_r(
1685 GEOSContextHandle_t handle,
1686 const GEOSGeometry *g,
1687 double *x);
1688
1690extern int GEOS_DLL GEOSGeomGetY_r(
1691 GEOSContextHandle_t handle,
1692 const GEOSGeometry *g,
1693 double *y);
1694
1696extern int GEOS_DLL GEOSGeomGetZ_r(
1697 GEOSContextHandle_t handle,
1698 const GEOSGeometry *g,
1699 double *z);
1700
1702extern int GEOS_DLL GEOSGeomGetM_r(
1703 GEOSContextHandle_t handle,
1704 const GEOSGeometry *g,
1705 double *m);
1706
1709 GEOSContextHandle_t handle,
1710 const GEOSGeometry* g, int n);
1711
1714 GEOSContextHandle_t handle,
1715 const GEOSGeometry* g);
1716
1718extern int GEOS_DLL GEOSGetNumCoordinates_r(
1719 GEOSContextHandle_t handle,
1720 const GEOSGeometry* g);
1721
1724 GEOSContextHandle_t handle,
1725 const GEOSGeometry* g);
1726
1728extern int GEOS_DLL GEOSGeom_getDimensions_r(
1729 GEOSContextHandle_t handle,
1730 const GEOSGeometry* g);
1731
1734 GEOSContextHandle_t handle,
1735 const GEOSGeometry* g);
1736
1738extern int GEOS_DLL GEOSGeom_getXMin_r(
1739 GEOSContextHandle_t handle,
1740 const GEOSGeometry* g,
1741 double* value);
1742
1744extern int GEOS_DLL GEOSGeom_getYMin_r(
1745 GEOSContextHandle_t handle,
1746 const GEOSGeometry* g,
1747 double* value);
1748
1750extern int GEOS_DLL GEOSGeom_getXMax_r(
1751 GEOSContextHandle_t handle,
1752 const GEOSGeometry* g,
1753 double* value);
1754
1756extern int GEOS_DLL GEOSGeom_getYMax_r(
1757 GEOSContextHandle_t handle,
1758 const GEOSGeometry* g,
1759 double* value);
1760
1762extern int GEOS_DLL GEOSGeom_getExtent_r(
1763 GEOSContextHandle_t handle,
1764 const GEOSGeometry* g,
1765 double* xmin,
1766 double* ymin,
1767 double* xmax,
1768 double* ymax);
1769
1772 GEOSContextHandle_t handle,
1773 const GEOSGeometry *g,
1774 int n);
1775
1778 GEOSContextHandle_t handle,
1779 const GEOSGeometry *g);
1780
1783 GEOSContextHandle_t handle,
1784 const GEOSGeometry *g);
1785
1786/* ========= Misc functions ========= */
1787
1789extern int GEOS_DLL GEOSArea_r(
1790 GEOSContextHandle_t handle,
1791 const GEOSGeometry* g,
1792 double *area);
1793
1795extern int GEOS_DLL GEOSLength_r(
1796 GEOSContextHandle_t handle,
1797 const GEOSGeometry* g,
1798 double *length);
1799
1801extern int GEOS_DLL GEOSDistance_r(
1802 GEOSContextHandle_t handle,
1803 const GEOSGeometry* g1,
1804 const GEOSGeometry* g2,
1805 double *dist);
1806
1808extern char GEOS_DLL GEOSDistanceWithin_r(
1809 GEOSContextHandle_t handle,
1810 const GEOSGeometry* g1,
1811 const GEOSGeometry* g2,
1812 double dist);
1813
1815extern int GEOS_DLL GEOSDistanceIndexed_r(
1816 GEOSContextHandle_t handle,
1817 const GEOSGeometry* g1,
1818 const GEOSGeometry* g2,
1819 double *dist);
1820
1822extern int GEOS_DLL GEOSHausdorffDistance_r(
1823 GEOSContextHandle_t handle,
1824 const GEOSGeometry *g1,
1825 const GEOSGeometry *g2,
1826 double *dist);
1827
1830 GEOSContextHandle_t handle,
1831 const GEOSGeometry *g1,
1832 const GEOSGeometry *g2,
1833 double densifyFrac, double *dist);
1834
1836extern int GEOS_DLL GEOSFrechetDistance_r(
1837 GEOSContextHandle_t handle,
1838 const GEOSGeometry *g1,
1839 const GEOSGeometry *g2,
1840 double *dist);
1841
1844 GEOSContextHandle_t handle,
1845 const GEOSGeometry *g1,
1846 const GEOSGeometry *g2,
1847 double densifyFrac,
1848 double *dist);
1849
1850
1852extern int GEOS_DLL GEOSHilbertCode_r(
1853 GEOSContextHandle_t handle,
1854 const GEOSGeometry *geom,
1855 const GEOSGeometry* extent,
1856 unsigned int level,
1857 unsigned int *code
1858);
1859
1861extern int GEOS_DLL GEOSGeomGetLength_r(
1862 GEOSContextHandle_t handle,
1863 const GEOSGeometry *g,
1864 double *length);
1865
1868 GEOSContextHandle_t handle,
1869 const GEOSGeometry* g1,
1870 const GEOSGeometry* g2);
1871
1874 GEOSContextHandle_t handle,
1875 const GEOSGeometry* g,
1876 GEOSTransformXYCallback callback,
1877 void* userdata);
1878
1881 GEOSContextHandle_t handle,
1882 const GEOSGeometry* g,
1883 GEOSTransformXYZCallback callback,
1884 void* userdata);
1885
1888 GEOSContextHandle_t handle,
1889 const GEOSGeometry* g,
1890 double eps,
1891 unsigned minPoints);
1892
1895 GEOSContextHandle_t handle,
1896 const GEOSGeometry* g,
1897 double d);
1898
1901 GEOSContextHandle_t handle,
1902 const GEOSGeometry* g);
1903
1906 GEOSContextHandle_t handle,
1907 const GEOSGeometry* g,
1908 double d);
1909
1912 GEOSContextHandle_t handle,
1913 const GEOSGeometry* g);
1914
1917
1919extern size_t GEOS_DLL GEOSClusterInfo_getClusterSize_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters, size_t i);
1920
1923
1925extern const size_t GEOS_DLL* GEOSClusterInfo_getInputsForClusterN_r(GEOSContextHandle_t, const GEOSClusterInfo* clusters, size_t i);
1926
1929
1930/* ========= Algorithms ========= */
1931
1933extern int GEOS_DLL GEOSOrientationIndex_r(
1934 GEOSContextHandle_t handle,
1935 double Ax, double Ay,
1936 double Bx, double By,
1937 double Px, double Py);
1938
1939
1940/* ========== Reader and Writer APIs ========== */
1941
1942#ifndef GEOSWKTReader
1943
1949typedef struct GEOSWKTReader_t GEOSWKTReader;
1950
1956typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1957
1963typedef struct GEOSWKBReader_t GEOSWKBReader;
1964
1970typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1971
1977typedef struct GEOSGeoJSONReader_t GEOSGeoJSONReader;
1978
1984typedef struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter;
1985
1986#endif
1987
1988/* ========== WKT Reader ========== */
1989
1992 GEOSContextHandle_t handle);
1993
1996 GEOSWKTReader* reader);
1997
2000 GEOSContextHandle_t handle,
2001 GEOSWKTReader* reader,
2002 const char *wkt);
2003
2006 GEOSContextHandle_t handle,
2007 GEOSWKTReader *reader,
2008 char doFix);
2009
2010
2011/* ========== WKT Writer ========== */
2012
2015 GEOSContextHandle_t handle);
2016
2018extern void GEOS_DLL GEOSWKTWriter_destroy_r(
2019 GEOSContextHandle_t handle,
2020 GEOSWKTWriter* writer);
2021
2023extern char GEOS_DLL *GEOSWKTWriter_write_r(
2024 GEOSContextHandle_t handle,
2025 GEOSWKTWriter* writer,
2026 const GEOSGeometry* g);
2027
2029extern void GEOS_DLL GEOSWKTWriter_setTrim_r(
2030 GEOSContextHandle_t handle,
2031 GEOSWKTWriter *writer,
2032 char trim);
2033
2036 GEOSContextHandle_t handle,
2037 GEOSWKTWriter *writer,
2038 int precision);
2039
2042 GEOSContextHandle_t handle,
2043 GEOSWKTWriter *writer,
2044 int dim);
2045
2048 GEOSContextHandle_t handle,
2049 GEOSWKTWriter *writer);
2050
2052extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(
2053 GEOSContextHandle_t handle,
2054 GEOSWKTWriter *writer,
2055 int useOld3D);
2056
2066extern int GEOS_DLL GEOS_printDouble(
2067 double d,
2068 unsigned int precision,
2069 char *result
2070);
2071
2072/* ========== WKB Reader ========== */
2073
2076 GEOSContextHandle_t handle);
2077
2079extern void GEOS_DLL GEOSWKBReader_destroy_r(
2080 GEOSContextHandle_t handle,
2081 GEOSWKBReader* reader);
2082
2085 GEOSContextHandle_t handle,
2086 GEOSWKBReader *reader,
2087 char doFix);
2088
2091 GEOSContextHandle_t handle,
2092 GEOSWKBReader* reader,
2093 const unsigned char *wkb,
2094 size_t size);
2095
2098 GEOSContextHandle_t handle,
2099 GEOSWKBReader* reader,
2100 const unsigned char *hex,
2101 size_t size);
2102
2103
2104/* ========== WKB Writer ========== */
2105
2108 GEOSContextHandle_t handle);
2109
2111extern void GEOS_DLL GEOSWKBWriter_destroy_r(
2112 GEOSContextHandle_t handle,
2113 GEOSWKBWriter* writer);
2114
2116extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
2117 GEOSContextHandle_t handle,
2118 GEOSWKBWriter* writer,
2119 const GEOSGeometry* g,
2120 size_t *size);
2121
2123extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
2124 GEOSContextHandle_t handle,
2125 GEOSWKBWriter* writer,
2126 const GEOSGeometry* g,
2127 size_t *size);
2128
2131 GEOSContextHandle_t handle,
2132 const GEOSWKBWriter* writer);
2133
2136 GEOSContextHandle_t handle,
2137 GEOSWKBWriter* writer, int newDimension);
2138
2141 GEOSContextHandle_t handle,
2142 const GEOSWKBWriter* writer);
2143
2145extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(
2146 GEOSContextHandle_t handle,
2147 GEOSWKBWriter* writer,
2148 int byteOrder);
2149
2151extern int GEOS_DLL GEOSWKBWriter_getFlavor_r(
2152 GEOSContextHandle_t handle,
2153 const GEOSWKBWriter* writer);
2154
2156extern void GEOS_DLL GEOSWKBWriter_setFlavor_r(
2157 GEOSContextHandle_t handle,
2158 GEOSWKBWriter* writer,
2159 int flavor);
2160
2163 GEOSContextHandle_t handle,
2164 const GEOSWKBWriter* writer);
2165
2168 GEOSContextHandle_t handle,
2169 GEOSWKBWriter* writer, const char writeSRID);
2170
2171/* ========== GeoJSON Reader ========== */
2172
2175 GEOSContextHandle_t handle);
2176
2179 GEOSGeoJSONReader* reader);
2180
2183 GEOSContextHandle_t handle,
2184 GEOSGeoJSONReader* reader,
2185 const char *geojson);
2186
2187/* ========== GeoJSON Writer ========== */
2188
2191 GEOSContextHandle_t handle);
2192
2195 GEOSGeoJSONWriter* writer);
2196
2199 GEOSContextHandle_t handle,
2200 GEOSGeoJSONWriter* writer,
2201 const GEOSGeometry* g,
2202 int indent);
2203
2206 GEOSContextHandle_t handle,
2207 GEOSGeoJSONWriter *writer,
2208 int dim);
2209
2212 GEOSContextHandle_t handle,
2213 GEOSGeoJSONWriter *writer);
2214
2216extern void GEOS_DLL GEOSFree_r(
2217 GEOSContextHandle_t handle,
2218 void *buffer);
2219
2227extern const char GEOS_DLL *GEOSversion(void);
2228
2229/*
2230* External code to GEOS can define GEOS_USE_ONLY_R_API
2231* to strip the non-reentrant API functions from this header,
2232* leaving only the "_r" compatible variants.
2233*/
2234#ifndef GEOS_USE_ONLY_R_API
2235
2236/* ========== Initialization, cleanup ================================= */
2242
2255extern void GEOS_DLL initGEOS(
2256 GEOSMessageHandler notice_function,
2257 GEOSMessageHandler error_function);
2258
2264extern void GEOS_DLL finishGEOS(void);
2265
2275extern void GEOS_DLL GEOSFree(void *buffer);
2276
2278
2279/* ========= Coordinate Sequence functions ========= */
2285
2293extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(unsigned int size, unsigned int dims);
2294
2303extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_createWithDimensions(unsigned int size, int hasZ, int hasM);
2304
2315extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromBuffer(const double* buf, unsigned int size, int hasZ, int hasM);
2316
2328extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromArrays(const double* x, const double* y, const double* z, const double* m, unsigned int size);
2329
2340extern int GEOS_DLL GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence* s, double* buf, int hasZ, int hasM);
2341
2353extern int GEOS_DLL GEOSCoordSeq_copyToArrays(const GEOSCoordSequence* s, double* x, double* y, double* z, double* m);
2354
2362
2369
2377extern char GEOS_DLL GEOSCoordSeq_hasZ(GEOSCoordSequence* s);
2378
2386extern char GEOS_DLL GEOSCoordSeq_hasM(GEOSCoordSequence* s);
2387
2397 unsigned int idx, double val);
2407 unsigned int idx, double val);
2417 unsigned int idx, double val);
2418
2428 unsigned int idx, double val);
2429
2441 unsigned int idx, double x, double y);
2454 unsigned int idx, double x, double y, double z);
2465 unsigned int idx, unsigned int dim, double val);
2466
2475extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
2476 unsigned int idx, double *val);
2477
2486extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
2487 unsigned int idx, double *val);
2488
2497extern int GEOS_DLL GEOSCoordSeq_getZ(const GEOSCoordSequence* s,
2498 unsigned int idx, double *val);
2499
2508extern int GEOS_DLL GEOSCoordSeq_getM(const GEOSCoordSequence* s,
2509 unsigned int idx, double *val);
2510
2521extern int GEOS_DLL GEOSCoordSeq_getXY(const GEOSCoordSequence* s,
2522 unsigned int idx, double *x, double *y);
2534extern int GEOS_DLL GEOSCoordSeq_getXYZ(const GEOSCoordSequence* s,
2535 unsigned int idx, double *x, double *y, double *z);
2545extern int GEOS_DLL GEOSCoordSeq_getOrdinate(const GEOSCoordSequence* s,
2546 unsigned int idx, unsigned int dim, double *val);
2547
2555extern int GEOS_DLL GEOSCoordSeq_getSize(
2556 const GEOSCoordSequence* s,
2557 unsigned int *size);
2558
2566extern int GEOS_DLL GEOSCoordSeq_getDimensions(
2567 const GEOSCoordSequence* s,
2568 unsigned int *dims);
2569
2579extern int GEOS_DLL GEOSCoordSeq_isCCW(
2580 const GEOSCoordSequence* s,
2581 char* is_ccw);
2582
2584
2585/* ========= Geometry Constructors ========= */
2591
2600
2610extern GEOSGeometry GEOS_DLL *GEOSGeom_createPointFromXY(double x, double y);
2611
2620
2629
2638
2647
2656
2671 GEOSGeometry* shell,
2672 GEOSGeometry** holes,
2673 unsigned int nholes);
2674
2683
2691
2701 unsigned int ncurves);
2702
2710
2725 GEOSGeometry* shell,
2726 GEOSGeometry** holes,
2727 unsigned int nholes);
2728
2736
2751 int type,
2752 GEOSGeometry** geoms,
2753 unsigned int ngeoms);
2754
2772 GEOSGeometry * collection,
2773 unsigned int * ngeoms);
2774
2784
2796 double xmin, double ymin,
2797 double xmax, double ymax);
2798
2806extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(const GEOSGeometry* g);
2807
2813extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
2814
2816
2817/* ========== Geometry info ========== */
2822
2832extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
2833
2840extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
2841
2848extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
2849
2860extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
2861
2874extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
2875
2891extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
2892 const GEOSGeometry* g,
2893 int n);
2894
2904extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
2905
2913extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
2914
2922extern int GEOS_DLL GEOSGeomGetNumPoints(const GEOSGeometry* g);
2923
2932extern int GEOS_DLL GEOSGeomGetX(const GEOSGeometry *g, double *x);
2933
2942extern int GEOS_DLL GEOSGeomGetY(const GEOSGeometry *g, double *y);
2943
2953extern int GEOS_DLL GEOSGeomGetZ(const GEOSGeometry *g, double *z);
2954
2964extern int GEOS_DLL GEOSGeomGetM(const GEOSGeometry *g, double *m);
2965
2975extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
2976 const GEOSGeometry* g,
2977 int n);
2978
2987extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
2988 const GEOSGeometry* g);
2989
2997extern int GEOS_DLL GEOSGetNumCoordinates(
2998 const GEOSGeometry* g);
2999
3010 const GEOSGeometry* g);
3011
3024extern int GEOS_DLL GEOSGeom_getDimensions(
3025 const GEOSGeometry* g);
3026
3039 const GEOSGeometry* g);
3040
3049extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
3050
3059extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
3060
3069extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
3070
3079extern int GEOS_DLL GEOSGeom_getYMax(const GEOSGeometry* g, double* value);
3080
3094extern int GEOS_DLL GEOSGeom_getExtent(
3095 const GEOSGeometry* g,
3096 double* xmin,
3097 double* ymin,
3098 double* xmax,
3099 double* ymax);
3100
3110extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
3111
3121
3131
3132
3141extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g);
3142
3151extern char GEOS_DLL GEOSisRing(const GEOSGeometry* g);
3152
3159extern char GEOS_DLL GEOSHasZ(const GEOSGeometry* g);
3160
3168extern char GEOS_DLL GEOSHasM(const GEOSGeometry* g);
3169
3178extern char GEOS_DLL GEOSisClosed(const GEOSGeometry *g);
3179
3181
3182/* ==================================================================================== */
3187
3194extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
3195
3203extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
3204
3224extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
3225
3236extern int GEOS_DLL GEOSOrientPolygons(GEOSGeometry* g,
3237 int exteriorCW);
3238
3240
3241/* ========== Validity checking ============================================================ */
3247
3255extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g);
3256
3270extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
3271
3281extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g);
3282
3297extern char GEOS_DLL GEOSisValidDetail(
3298 const GEOSGeometry* g,
3299 int flags,
3300 char** reason,
3301 GEOSGeometry** location);
3302
3311 const GEOSGeometry* g);
3312
3327 const GEOSGeometry* g,
3328 const GEOSMakeValidParams *makeValidParams);
3329
3339
3348
3359 enum GEOSMakeValidMethods method);
3360
3373 int keepCollapsed);
3374
3394extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
3395
3408
3427 const GEOSGeometry* g,
3428 double tolerance);
3429
3431
3432/* ========= Metric functions ================================================== */
3437
3445extern int GEOS_DLL GEOSArea(
3446 const GEOSGeometry* g,
3447 double *area);
3448
3456extern int GEOS_DLL GEOSLength(
3457 const GEOSGeometry* g,
3458 double *length);
3459
3469extern int GEOS_DLL GEOSGeomGetLength(
3470 const GEOSGeometry *g,
3471 double *length);
3472
3474
3475/* ========== Distance functions ================================================ */
3481
3490extern int GEOS_DLL GEOSDistance(
3491 const GEOSGeometry* g1,
3492 const GEOSGeometry* g2,
3493 double *dist);
3494
3505extern char GEOS_DLL GEOSDistanceWithin(
3506 const GEOSGeometry* g1,
3507 const GEOSGeometry* g2,
3508 double dist);
3509
3523extern int GEOS_DLL GEOSDistanceIndexed(
3524 const GEOSGeometry* g1,
3525 const GEOSGeometry* g2,
3526 double *dist);
3527
3540 const GEOSGeometry* g1,
3541 const GEOSGeometry* g2);
3542
3554extern int GEOS_DLL GEOSHausdorffDistance(
3555 const GEOSGeometry *g1,
3556 const GEOSGeometry *g2,
3557 double *dist);
3558
3574 const GEOSGeometry *g1,
3575 const GEOSGeometry *g2,
3576 double densifyFrac,
3577 double *dist);
3578
3592extern int GEOS_DLL GEOSFrechetDistance(
3593 const GEOSGeometry *g1,
3594 const GEOSGeometry *g2,
3595 double *dist);
3596
3613extern int GEOS_DLL GEOSFrechetDistanceDensify(
3614 const GEOSGeometry *g1,
3615 const GEOSGeometry *g2,
3616 double densifyFrac,
3617 double *dist);
3618
3620
3621/* ========== Linear referencing functions */
3627
3637extern double GEOS_DLL GEOSProject(const GEOSGeometry* line,
3638 const GEOSGeometry* point);
3639
3651extern GEOSGeometry GEOS_DLL *GEOSInterpolate(const GEOSGeometry* line,
3652 double d);
3653
3664extern double GEOS_DLL GEOSProjectNormalized(const GEOSGeometry* line,
3665 const GEOSGeometry* point);
3666
3677 const GEOSGeometry *line,
3678 double proportion);
3679
3681
3682/* ========== Overlay functions ========== */
3688
3699extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
3700
3715extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec(const GEOSGeometry* g1, const GEOSGeometry* g2, double gridSize);
3716
3728 const GEOSGeometry* ga,
3729 const GEOSGeometry* gb);
3730
3747 const GEOSGeometry* ga,
3748 const GEOSGeometry* gb,
3749 double gridSize);
3750
3763 const GEOSGeometry* ga,
3764 const GEOSGeometry* gb);
3765
3783 const GEOSGeometry* ga,
3784 const GEOSGeometry* gb,
3785 double gridSize);
3786
3797extern GEOSGeometry GEOS_DLL *GEOSUnion(
3798 const GEOSGeometry* ga,
3799 const GEOSGeometry* gb);
3800
3817 const GEOSGeometry* ga,
3818 const GEOSGeometry* gb,
3819 double gridSize);
3820
3832extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(const GEOSGeometry* g);
3833
3850 const GEOSGeometry* g,
3851 double gridSize);
3852
3864
3881 const GEOSGeometry* g,
3882 double xmin, double ymin,
3883 double xmax, double ymax);
3884
3904 const GEOSGeometry* g1,
3905 const GEOSGeometry* g2);
3907
3908/* ========== Clustering functions ========== */
3916static const size_t GEOS_CLUSTER_NONE = (size_t) -1;
3917
3919
3929extern GEOSClusterInfo GEOS_DLL* GEOSClusterDBSCAN(const GEOSGeometry* g, double eps, unsigned minPoints);
3930
3940extern GEOSClusterInfo GEOS_DLL* GEOSClusterGeometryDistance(const GEOSGeometry* g, double d);
3941
3951
3961extern GEOSClusterInfo GEOS_DLL* GEOSClusterEnvelopeDistance(const GEOSGeometry* g, double d);
3962
3972
3981extern size_t GEOS_DLL GEOSClusterInfo_getNumClusters(const GEOSClusterInfo* clusters);
3982
3992extern size_t GEOS_DLL GEOSClusterInfo_getClusterSize(const GEOSClusterInfo* clusters, size_t i );
3993
4003extern size_t GEOS_DLL* GEOSClusterInfo_getClustersForInputs(const GEOSClusterInfo* clusters);
4004
4013extern const size_t GEOS_DLL* GEOSClusterInfo_getInputsForClusterN(const GEOSClusterInfo* clusters, size_t i);
4014
4022extern void GEOS_DLL GEOSClusterInfo_destroy(GEOSClusterInfo* clusters);
4023
4025
4026/* ========== Buffer related functions ========== */
4031
4043extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g,
4044 double width, int quadsegs);
4045
4055
4062extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
4063
4073 int style);
4074
4084 int joinStyle);
4085
4099 double mitreLimit);
4100
4113 int quadSegs);
4114
4127 int singleSided);
4128
4140 const GEOSGeometry* g,
4141 const GEOSBufferParams* p,
4142 double width);
4143
4158 const GEOSGeometry* g,
4159 double width,
4160 int quadsegs,
4161 int endCapStyle,
4162 int joinStyle,
4163 double mitreLimit);
4164
4188 double width, int quadsegs, int joinStyle, double mitreLimit);
4189
4191
4192
4193/* ====================================================================== */
4199
4212
4213
4237extern int GEOS_DLL GEOSCoverageIsValid(
4238 const GEOSGeometry* input,
4239 double gapWidth,
4240 GEOSGeometry** invalidEdges);
4241
4268 const GEOSGeometry* input,
4269 double tolerance,
4270 int preserveBoundary);
4271
4273
4274/* ========== Construction Operations ========== */
4279
4288extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
4289
4303extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
4304
4314extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
4315
4347 const GEOSGeometry* g,
4348 double ratio,
4349 unsigned int allowHoles);
4350
4381 const GEOSGeometry* g,
4382 double length,
4383 unsigned int allowHoles);
4384
4424 const GEOSGeometry* g,
4425 double lengthRatio,
4426 unsigned int isTight,
4427 unsigned int isHolesAllowed);
4428
4449 const GEOSGeometry* g,
4450 unsigned int isOuter,
4451 double vertexNumFraction);
4452
4453
4463
4486 const GEOSGeometry* g,
4487 unsigned int isOuter,
4488 unsigned int parameterMode,
4489 double parameter);
4490
4505
4531 const GEOSGeometry* g,
4532 double tolerance);
4533
4568 const GEOSGeometry* obstacles,
4569 const GEOSGeometry* boundary,
4570 double tolerance);
4571
4585extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
4586
4587
4598
4608extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
4609
4623 const GEOSGeometry* g,
4624 double* radius,
4625 GEOSGeometry** center);
4626
4641 const GEOSGeometry *g,
4642 double tolerance,
4643 int onlyEdges);
4644
4657 const GEOSGeometry *g);
4658
4669
4691 const GEOSGeometry *g,
4692 const GEOSGeometry *env,
4693 double tolerance,
4694 int flags);
4695
4697
4698/* ============================================================== */
4703
4714extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
4715
4759 const GEOSGeometry * const geoms[],
4760 unsigned int ngeoms);
4761
4777 const GEOSGeometry * const geoms[],
4778 unsigned int ngeoms);
4779
4794 const GEOSGeometry * const geoms[],
4795 unsigned int ngeoms);
4796
4812 const GEOSGeometry* input,
4813 GEOSGeometry** cuts,
4814 GEOSGeometry** dangles,
4815 GEOSGeometry** invalid);
4816
4828extern GEOSGeometry GEOS_DLL *GEOSBuildArea(const GEOSGeometry* g);
4829
4831
4832/* ============================================================== */
4837
4851extern GEOSGeometry GEOS_DLL *GEOSDensify(
4852 const GEOSGeometry* g,
4853 double tolerance);
4854
4866extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
4867
4882
4895 const GEOSGeometry* g,
4896 double start_fraction,
4897 double end_fraction);
4898
4909extern GEOSGeometry GEOS_DLL *GEOSReverse(const GEOSGeometry* g);
4910
4926 const GEOSGeometry* g,
4927 double tolerance);
4928
4946 const GEOSGeometry* g,
4947 double tolerance);
4948
4960 const GEOSGeometry* g);
4961
4977extern int GEOS_DLL GEOSHilbertCode(
4978 const GEOSGeometry *geom,
4979 const GEOSGeometry* extent,
4980 unsigned int level,
4981 unsigned int *code
4982);
4983
4999 const GEOSGeometry* g,
5000 GEOSTransformXYCallback callback,
5001 void* userdata);
5002
5018 const GEOSGeometry* g,
5019 GEOSTransformXYZCallback callback,
5020 void* userdata);
5021
5043extern GEOSGeometry GEOS_DLL *GEOSSnap(
5044 const GEOSGeometry* input,
5045 const GEOSGeometry* snap_target,
5046 double tolerance);
5047
5078 const GEOSGeometry *g,
5079 double gridSize,
5080 int flags);
5081
5083
5084/* ============================================================== */
5089
5098extern char GEOS_DLL GEOSDisjoint(const GEOSGeometry* g1, const GEOSGeometry* g2);
5099
5109extern char GEOS_DLL GEOSTouches(const GEOSGeometry* g1, const GEOSGeometry* g2);
5110
5119extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
5120
5130extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
5131
5141extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
5142
5152extern char GEOS_DLL GEOSContains(const GEOSGeometry* g1, const GEOSGeometry* g2);
5153
5163extern char GEOS_DLL GEOSOverlaps(const GEOSGeometry* g1, const GEOSGeometry* g2);
5164
5173extern char GEOS_DLL GEOSEquals(const GEOSGeometry* g1, const GEOSGeometry* g2);
5174
5185extern char GEOS_DLL GEOSCovers(const GEOSGeometry* g1, const GEOSGeometry* g2);
5186
5197extern char GEOS_DLL GEOSCoveredBy(const GEOSGeometry* g1, const GEOSGeometry* g2);
5198
5216extern char GEOS_DLL GEOSEqualsExact(
5217 const GEOSGeometry* g1,
5218 const GEOSGeometry* g2,
5219 double tolerance);
5220
5233extern char GEOS_DLL GEOSEqualsIdentical(
5234 const GEOSGeometry* g1,
5235 const GEOSGeometry* g2);
5236
5252extern char GEOS_DLL GEOSRelatePattern(
5253 const GEOSGeometry* g1,
5254 const GEOSGeometry* g2,
5255 const char *imPattern);
5256
5267extern char GEOS_DLL *GEOSRelate(
5268 const GEOSGeometry* g1,
5269 const GEOSGeometry* g2);
5270
5280extern char GEOS_DLL GEOSRelatePatternMatch(
5281 const char *intMatrix,
5282 const char *imPattern);
5283
5297extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
5298 const GEOSGeometry* g1,
5299 const GEOSGeometry* g2,
5300 int bnr);
5301
5303
5304/* ========== Prepared Geometry Binary predicates ========== */
5305
5317
5331extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(const GEOSGeometry* g);
5332
5341extern void GEOS_DLL GEOSPreparedGeom_destroy(const GEOSPreparedGeometry* g);
5342
5353extern char GEOS_DLL GEOSPreparedContains(
5354 const GEOSPreparedGeometry* pg1,
5355 const GEOSGeometry* g2);
5356
5368extern char GEOS_DLL GEOSPreparedContainsXY(
5369 const GEOSPreparedGeometry* pg1,
5370 double x,
5371 double y);
5372
5383extern char GEOS_DLL GEOSPreparedContainsProperly(
5384 const GEOSPreparedGeometry* pg1,
5385 const GEOSGeometry* g2);
5386
5397extern char GEOS_DLL GEOSPreparedCoveredBy(
5398 const GEOSPreparedGeometry* pg1,
5399 const GEOSGeometry* g2);
5400
5411extern char GEOS_DLL GEOSPreparedCovers(
5412 const GEOSPreparedGeometry* pg1,
5413 const GEOSGeometry* g2);
5414
5425extern char GEOS_DLL GEOSPreparedCrosses(
5426 const GEOSPreparedGeometry* pg1,
5427 const GEOSGeometry* g2);
5428
5439extern char GEOS_DLL GEOSPreparedDisjoint(
5440 const GEOSPreparedGeometry* pg1,
5441 const GEOSGeometry* g2);
5442
5453extern char GEOS_DLL GEOSPreparedIntersects(
5454 const GEOSPreparedGeometry* pg1,
5455 const GEOSGeometry* g2);
5456
5468extern char GEOS_DLL GEOSPreparedIntersectsXY(
5469 const GEOSPreparedGeometry* pg1,
5470 double x,
5471 double y);
5472
5483extern char GEOS_DLL GEOSPreparedOverlaps(
5484 const GEOSPreparedGeometry* pg1,
5485 const GEOSGeometry* g2);
5486
5497extern char GEOS_DLL GEOSPreparedTouches(
5498 const GEOSPreparedGeometry* pg1,
5499 const GEOSGeometry* g2);
5500
5511extern char GEOS_DLL GEOSPreparedWithin(
5512 const GEOSPreparedGeometry* pg1,
5513 const GEOSGeometry* g2);
5514
5528extern char GEOS_DLL * GEOSPreparedRelate(
5529 const GEOSPreparedGeometry* pg1,
5530 const GEOSGeometry* g2);
5531
5548extern char GEOS_DLL GEOSPreparedRelatePattern(
5549 const GEOSPreparedGeometry* pg1,
5550 const GEOSGeometry* g2,
5551 const char* imPattern);
5552
5566 const GEOSPreparedGeometry* pg1,
5567 const GEOSGeometry* g2);
5568
5582extern int GEOS_DLL GEOSPreparedDistance(
5583 const GEOSPreparedGeometry* pg1,
5584 const GEOSGeometry* g2,
5585 double *dist);
5586
5601extern char GEOS_DLL GEOSPreparedDistanceWithin(
5602 const GEOSPreparedGeometry* pg1,
5603 const GEOSGeometry* g2,
5604 double dist);
5605
5607
5608/* ========== STRtree functions ========== */
5614
5627extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
5628
5641extern int GEOS_DLL GEOSSTRtree_build(GEOSSTRtree *tree);
5642
5655extern void GEOS_DLL GEOSSTRtree_insert(
5656 GEOSSTRtree *tree,
5657 const GEOSGeometry *g,
5658 void *item);
5659
5674extern void GEOS_DLL GEOSSTRtree_query(
5675 GEOSSTRtree *tree,
5676 const GEOSGeometry *g,
5677 GEOSQueryCallback callback,
5678 void *userdata);
5679
5694extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(
5695 GEOSSTRtree *tree,
5696 const GEOSGeometry* geom);
5697
5718extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(
5719 GEOSSTRtree *tree,
5720 const void* item,
5721 const GEOSGeometry* itemEnvelope,
5722 GEOSDistanceCallback distancefn,
5723 void* userdata);
5724
5735extern void GEOS_DLL GEOSSTRtree_iterate(
5736 GEOSSTRtree *tree,
5737 GEOSQueryCallback callback,
5738 void *userdata);
5739
5754extern char GEOS_DLL GEOSSTRtree_remove(
5755 GEOSSTRtree *tree,
5756 const GEOSGeometry *g,
5757 void *item);
5758
5769extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
5770
5772
5773/* ========== Algorithms ====================================================== */
5778
5797extern int GEOS_DLL GEOSSegmentIntersection(
5798 double ax0, double ay0,
5799 double ax1, double ay1,
5800 double bx0, double by0,
5801 double bx1, double by1,
5802 double* cx, double* cy);
5803
5819extern int GEOS_DLL GEOSOrientationIndex(
5820 double Ax, double Ay,
5821 double Bx, double By,
5822 double Px, double Py);
5823
5825
5826/* ========= Reader and Writer APIs ========= */
5827
5832/* ========= WKT Reader ========= */
5833
5840
5846extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
5847
5857 GEOSWKTReader* reader,
5858 const char *wkt);
5859
5869 GEOSWKTReader *reader,
5870 char doFix);
5871
5872/* ========= WKT Writer ========= */
5873
5880
5886extern void GEOS_DLL GEOSWKTWriter_destroy(
5887 GEOSWKTWriter* writer);
5888
5898extern char GEOS_DLL *GEOSWKTWriter_write(
5899 GEOSWKTWriter* writer,
5900 const GEOSGeometry* g);
5901
5916extern void GEOS_DLL GEOSWKTWriter_setTrim(
5917 GEOSWKTWriter *writer,
5918 char trim);
5919
5929 GEOSWKTWriter *writer,
5930 int precision);
5931
5941 GEOSWKTWriter *writer,
5942 int dim);
5943
5952
5963extern void GEOS_DLL GEOSWKTWriter_setOld3D(
5964 GEOSWKTWriter *writer,
5965 int useOld3D);
5967
5968/* ============================================================================== */
5973
5974/* ========== WKB Reader ========== */
5981
5987extern void GEOS_DLL GEOSWKBReader_destroy(
5988 GEOSWKBReader* reader);
5989
5999 GEOSWKBReader *reader,
6000 char doFix);
6001
6011 GEOSWKBReader* reader,
6012 const unsigned char *wkb,
6013 size_t size);
6014
6024 GEOSWKBReader* reader,
6025 const unsigned char *hex,
6026 size_t size);
6027
6028/* ========== WKB Writer ========== */
6029
6036
6042extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
6043
6053extern unsigned char GEOS_DLL *GEOSWKBWriter_write(
6054 GEOSWKBWriter* writer,
6055 const GEOSGeometry* g,
6056 size_t *size);
6057
6067extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(
6068 GEOSWKBWriter* writer,
6069 const GEOSGeometry* g,
6070 size_t *size);
6071
6081 const GEOSWKBWriter* writer);
6082
6091 GEOSWKBWriter* writer,
6092 int newDimension);
6093
6103extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
6104 const GEOSWKBWriter* writer);
6105
6113extern void GEOS_DLL GEOSWKBWriter_setByteOrder(
6114 GEOSWKBWriter* writer,
6115 int byteOrder);
6116
6131extern int GEOS_DLL GEOSWKBWriter_getFlavor(
6132 const GEOSWKBWriter* writer);
6133
6142extern void GEOS_DLL GEOSWKBWriter_setFlavor(
6143 GEOSWKBWriter* writer,
6144 int flavor);
6145
6151extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
6152 const GEOSWKBWriter* writer);
6153
6161extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(
6162 GEOSWKBWriter* writer,
6163 const char writeSRID);
6164
6166
6167/* ============================================================================= */
6172/* ========= GeoJSON Reader ========= */
6173
6181
6188extern void GEOS_DLL GEOSGeoJSONReader_destroy(GEOSGeoJSONReader* reader);
6189
6201 GEOSGeoJSONReader* reader,
6202 const char *geojson);
6203
6204/* ========= GeoJSON Writer ========= */
6205
6213
6220extern void GEOS_DLL GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter* writer);
6221
6233 GEOSGeoJSONWriter* writer,
6234 const GEOSGeometry* g,
6235 int indent);
6236
6246 GEOSGeoJSONWriter *writer,
6247 int dim);
6248
6257
6259
6260#endif /* #ifndef GEOS_USE_ONLY_R_API */
6261
6262/* ====================================================================== */
6263/* DEPRECATIONS */
6264/* ====================================================================== */
6265
6271
6276 const GEOSGeometry* g,
6277 double width, int quadsegs,
6278 int joinStyle, double mitreLimit,
6279 int leftSide);
6280
6285 GEOSContextHandle_t handle,
6286 const GEOSGeometry* g,
6287 double width, int quadsegs,
6288 int joinStyle, double mitreLimit,
6289 int leftSide);
6290
6296 GEOSMessageHandler notice_function,
6297 GEOSMessageHandler error_function);
6298
6302extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
6303
6308 GEOSContextHandle_t handle,
6309 const char *wkt);
6310
6314extern char GEOS_DLL *GEOSGeomToWKT_r(
6315 GEOSContextHandle_t handle,
6316 const GEOSGeometry* g);
6317
6321extern int GEOS_DLL GEOS_getWKBOutputDims_r(
6322 GEOSContextHandle_t handle);
6323
6327extern int GEOS_DLL GEOS_setWKBOutputDims_r(
6328 GEOSContextHandle_t handle,
6329 int newDims);
6330
6334extern int GEOS_DLL GEOS_getWKBByteOrder_r(
6335 GEOSContextHandle_t handle);
6336
6340extern int GEOS_DLL GEOS_setWKBByteOrder_r(
6341 GEOSContextHandle_t handle,
6342 int byteOrder);
6343
6348 GEOSContextHandle_t handle,
6349 const unsigned char *wkb,
6350 size_t size);
6351
6355extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(
6356 GEOSContextHandle_t handle,
6357 const GEOSGeometry* g,
6358 size_t *size);
6359
6364 GEOSContextHandle_t handle,
6365 const unsigned char *hex,
6366 size_t size);
6367
6371extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(
6372 GEOSContextHandle_t handle,
6373 const GEOSGeometry* g,
6374 size_t *size);
6375
6379extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(const char *wkt);
6380
6384extern char GEOS_DLL *GEOSGeomToWKT(const GEOSGeometry* g);
6385
6389extern int GEOS_DLL GEOS_getWKBOutputDims(void);
6390
6394extern int GEOS_DLL GEOS_setWKBOutputDims(int newDims);
6395
6399extern int GEOS_DLL GEOS_getWKBByteOrder(void);
6400
6404extern int GEOS_DLL GEOS_setWKBByteOrder(int byteOrder);
6405
6409extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size);
6410
6414extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
6415
6419extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
6420
6424extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(const GEOSGeometry* g, size_t *size);
6425
6430
6435 GEOSContextHandle_t handle,
6436 const GEOSGeometry* g);
6437
6439
6440/* ====================================================================== */
6441/* END DEPRECATIONS */
6442/* ====================================================================== */
6443
6444
6445#ifdef __cplusplus
6446} // extern "C"
6447#endif
6448
6449#endif /* #ifndef GEOS_C_H_INCLUDED */
int GEOS_setWKBOutputDims_r(GEOSContextHandle_t handle, int newDims)
GEOSGeometry * GEOSMaximumInscribedCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
int GEOSBufferParams_setEndCapStyle_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int style)
char GEOSisEmpty_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSisSimple(const GEOSGeometry *g)
void GEOSWKBWriter_setByteOrder(GEOSWKBWriter *writer, int byteOrder)
GEOSGeometry * GEOSIntersectionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
const GEOSCoordSequence * GEOSGeom_getCoordSeq(const GEOSGeometry *g)
int GEOSCoordSeq_setZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
void GEOSGeom_setUserData_r(GEOSContextHandle_t handle, GEOSGeometry *g, void *userData)
GEOSGeometry * GEOSGeom_createEmptyPoint(void)
GEOSGeometry * GEOSReverse_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOS_getWKBOutputDims_r(GEOSContextHandle_t handle)
GEOSGeometry * GEOSGeom_createEmptyCompoundCurve_r(GEOSContextHandle_t handle)
int GEOSGeomGetM(const GEOSGeometry *g, double *m)
GEOSGeometry * GEOSPolygonHullSimplify(const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
char GEOSisRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSSTRtree_build_r(GEOSContextHandle_t handle, GEOSSTRtree *tree)
GEOSGeometry * GEOSGetCentroid(const GEOSGeometry *g)
void GEOSBufferParams_destroy_r(GEOSContextHandle_t handle, GEOSBufferParams *parms)
GEOSGeometry * GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_create(unsigned int size, unsigned int dims)
char GEOSPreparedDistanceWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
GEOSGeometry * GEOSWKBReader_read_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
GEOSClusterInfo * GEOSClusterEnvelopeIntersects(const GEOSGeometry *g)
GEOSClusterEnvelopeIntersects.
char * GEOSGeomToWKT_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSBufferWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSBufferParams *p, double width)
int GEOSBufferParams_setQuadrantSegments_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int quadSegs)
GEOSGeometry * GEOSConcaveHull_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
void GEOSSTRtree_iterate(GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
const GEOSGeometry * GEOSGetExteriorRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence * GEOSPreparedNearestPoints(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
void(*) typedef void(* GEOSMessageHandler_r)(const char *message, void *userdata)
Definition geos_c.h:118
GEOSGeometry * GEOSDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance, int onlyEdges)
int GEOSGeoJSONWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
GEOSGeometry ** GEOSGeom_releaseCollection(GEOSGeometry *collection, unsigned int *ngeoms)
void * GEOSGeom_getUserData_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSGeoJSONReader_t GEOSGeoJSONReader
Definition geos_c.h:1977
char GEOSRelatePattern_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, const char *imPattern)
int GEOS_getWKBByteOrder(void)
void GEOSWKBReader_destroy(GEOSWKBReader *reader)
char GEOSPreparedContainsProperly(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
void GEOSSTRtree_iterate_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
int GEOS_printDouble(double d, unsigned int precision, char *result)
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create_r(GEOSContextHandle_t handle)
int GEOSDistanceIndexed(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
int GEOSGeom_getDimensions_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSClusterInfo * GEOSClusterEnvelopeDistance(const GEOSGeometry *g, double d)
GEOSClusterEnvelopeDistance.
int GEOSCoordSeq_getZ(const GEOSCoordSequence *s, unsigned int idx, double *val)
const GEOSGeometry * GEOSSTRtree_nearest_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *geom)
void GEOSWKTWriter_setOld3D_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int useOld3D)
GEOSGeometry * GEOSGeom_createRectangle_r(GEOSContextHandle_t handle, double xmin, double ymin, double xmax, double ymax)
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create(void)
int(* GEOSDistanceCallback)(const void *item1, const void *item2, double *distance, void *userdata)
Definition geos_c.h:283
GEOSGeometry * GEOSPolygonize_valid(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSWKTReader * GEOSWKTReader_create(void)
struct GEOSWKBReader_t GEOSWKBReader
Definition geos_c.h:1963
char GEOSHasM(const GEOSGeometry *g)
GEOSGeometry * GEOSConcaveHullByLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double ratio, unsigned int allowHoles)
void GEOSGeom_destroy(GEOSGeometry *g)
int GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle, int byteOrder)
GEOSGeometry * GEOSClipByRect(const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
GEOSGeometry * GEOSCoverageSimplifyVW_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, double tolerance, int preserveBoundary)
void(* GEOSMessageHandler)(GEOS_PRINTF_FORMAT const char *fmt,...) GEOS_PRINTF_FORMAT_ATTR(1
Definition geos_c.h:105
int GEOSDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
int GEOSGeomGetM_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *m)
char GEOSTouches(const GEOSGeometry *g1, const GEOSGeometry *g2)
struct GEOSCoordSeq_t GEOSCoordSequence
Definition geos_c.h:155
GEOSGeometry * GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSRelatePatternMatch_r(GEOSContextHandle_t handle, const char *intMatrix, const char *imPattern)
void GEOSSTRtree_destroy(GEOSSTRtree *tree)
GEOSGeometry * GEOSGeom_createCircularString_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
void GEOSBufferParams_destroy(GEOSBufferParams *parms)
const size_t * GEOSClusterInfo_getInputsForClusterN_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters, size_t i)
int GEOSCoordSeq_setXY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSGeomTypes
Definition geos_c.h:204
@ GEOS_MULTILINESTRING
Definition geos_c.h:216
@ GEOS_GEOMETRYCOLLECTION
Definition geos_c.h:220
@ GEOS_POINT
Definition geos_c.h:206
@ GEOS_MULTIPOLYGON
Definition geos_c.h:218
@ GEOS_LINEARRING
Definition geos_c.h:210
@ GEOS_POLYGON
Definition geos_c.h:212
@ GEOS_MULTIPOINT
Definition geos_c.h:214
@ GEOS_LINESTRING
Definition geos_c.h:208
GEOSGeometry * GEOSIntersectionPrec(const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
int GEOSGetNumInteriorRings(const GEOSGeometry *g)
char GEOSSTRtree_remove_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
void GEOSSTRtree_query_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
GEOSGeometry * GEOSGeom_setPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize, int flags)
char GEOSEqualsExact(const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSGeometry * GEOSDisjointSubsetUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSMessageHandler_r GEOSContext_setNoticeMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r nf, void *userData)
int GEOSCoordSeq_getOrdinate(const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
void GEOSWKBReader_destroy_r(GEOSContextHandle_t handle, GEOSWKBReader *reader)
GEOSGeometry * GEOSBoundary(const GEOSGeometry *g)
GEOSGeometry * GEOSUnaryUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSDistanceIndexed_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
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:264
int GEOSCoordSeq_getSize_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *size)
GEOSGeometry * GEOSGeomFromWKT(const char *wkt)
GEOSGeometry * GEOSWKBReader_read(GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
GEOSGeometry * GEOSCoverageSimplifyVW(const GEOSGeometry *input, double tolerance, int preserveBoundary)
char GEOSContains_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
double GEOSProject_r(GEOSContextHandle_t handle, const GEOSGeometry *line, const GEOSGeometry *point)
void GEOSGeom_destroy_r(GEOSContextHandle_t handle, GEOSGeometry *g)
GEOSGeometry * GEOSTopologyPreserveSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSSingleSidedBuffer_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOSContextHandle_t GEOS_init_r(void)
struct GEOSGeom_t GEOSGeometry
Definition geos_c.h:140
char GEOSPreparedContainsXY_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
GEOSGeometry * GEOSGeom_createRectangle(double xmin, double ymin, double xmax, double ymax)
GEOSGeometry * GEOSGeom_setPrecision(const GEOSGeometry *g, double gridSize, int flags)
const void * GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
int 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)
GEOSWKBFlavors
Definition geos_c.h:250
@ GEOS_WKB_ISO
Definition geos_c.h:254
@ GEOS_WKB_EXTENDED
Definition geos_c.h:252
GEOSGeometry * GEOSDensify(const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSConstrainedDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKBReader_setFixStructure_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, char doFix)
void GEOSFree_r(GEOSContextHandle_t handle, void *buffer)
GEOSGeometry * GEOSGeom_extractUniquePoints(const GEOSGeometry *g)
int GEOSHausdorffDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
int GEOSWKBWriter_getOutputDimension(const GEOSWKBWriter *writer)
void GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *g)
char GEOSCoordSeq_hasZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
int GEOS_getWKBOutputDims(void)
GEOSGeometry * GEOSGeom_createPolygon_r(GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSGeometry * GEOSGeomGetPointN(const GEOSGeometry *g, int n)
const char * GEOSversion(void)
const GEOSGeometry * GEOSGetExteriorRing(const GEOSGeometry *g)
int GEOSMakeValidParams_setMethod(GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
void initGEOS(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOSGeometry * GEOSNode(const GEOSGeometry *g)
int GEOSOrientPolygons_r(GEOSContextHandle_t handle, GEOSGeometry *g, int exteriorCW)
GEOSGeometry * GEOSOffsetCurve_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
GEOSSTRtree * GEOSSTRtree_create(size_t nodeCapacity)
GEOSGeometry * GEOSBoundary_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSFrechetDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
char GEOSPreparedRelatePattern_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, const char *im)
char GEOSPreparedIntersects_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_createLinearRing_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
char GEOSCrosses_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSEquals(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getYMin(const GEOSGeometry *g, double *value)
int GEOSGeomGetX(const GEOSGeometry *g, double *x)
char GEOSPreparedDistanceWithin_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
void GEOSSTRtree_query(GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
GEOSGeometry * GEOSOffsetCurve(const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
GEOSGeometry * GEOSCoverageUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOS_interruptCancel(void)
void GEOSMakeValidParams_destroy(GEOSMakeValidParams *parms)
int GEOSGeomGetY(const GEOSGeometry *g, double *y)
GEOSGeometry * GEOSLineMergeDirected_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
size_t * GEOSClusterInfo_getClustersForInputs_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters)
int GEOSFrechetDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
void GEOSWKTReader_setFixStructure_r(GEOSContextHandle_t handle, GEOSWKTReader *reader, char doFix)
GEOSWKTWriter * GEOSWKTWriter_create_r(GEOSContextHandle_t handle)
GEOSGeometry * GEOSGeomGetPointN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
void GEOSClusterInfo_destroy_r(GEOSContextHandle_t, GEOSClusterInfo *info)
GEOSGeometry * GEOSDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
GEOSGeometry * GEOSGeom_createLineString_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSGeometry * GEOSPolygonizer_getCutEdges_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
int GEOSMinimumClearance(const GEOSGeometry *g, double *d)
size_t GEOSClusterInfo_getNumClusters_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters)
GEOSGeometry * GEOSDelaunayTriangulation(const GEOSGeometry *g, double tolerance, int onlyEdges)
GEOSGeometry * GEOSGeom_createCurvePolygon_r(GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
char GEOSSTRtree_remove(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSGeometry * GEOSBufferWithParams(const GEOSGeometry *g, const GEOSBufferParams *p, double width)
GEOSMessageHandler GEOSContext_setNoticeHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler nf)
int GEOSCoordSeq_getXYZ(const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
char GEOSisValidDetail_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSMakeValidParams * GEOSMakeValidParams_create(void)
GEOSGeometry * GEOSGeom_createEmptyLineString_r(GEOSContextHandle_t handle)
char * GEOSGeomType_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSMinimumClearanceLine(const GEOSGeometry *g)
void GEOSGeoJSONWriter_setOutputDimension(GEOSGeoJSONWriter *writer, int dim)
char * GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
char GEOSDisjoint(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSCoordSeq_setX(GEOSCoordSequence *s, unsigned int idx, double val)
int GEOSCoverageIsValid(const GEOSGeometry *input, double gapWidth, GEOSGeometry **invalidEdges)
int GEOSPreparedDistance(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSGeometry * GEOSUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSMakeValidParams * GEOSMakeValidParams_create_r(GEOSContextHandle_t extHandle)
char GEOSPreparedContains(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSPolygonHullSimplifyMode_r(GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
int GEOSCoordSeq_getXYZ_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
GEOSGeometry * GEOSGeomGetEndPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKBWriter_setFlavor(GEOSWKBWriter *writer, int flavor)
GEOSContextHandle_t initGEOS_r(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOSCoordSequence * GEOSCoordSeq_createWithDimensions_r(GEOSContextHandle_t handle, unsigned int size, int hasZ, int hasM)
GEOSBufCapStyles
Definition geos_c.h:652
@ GEOSBUF_CAP_SQUARE
Definition geos_c.h:661
@ GEOSBUF_CAP_FLAT
Definition geos_c.h:658
@ GEOSBUF_CAP_ROUND
Definition geos_c.h:655
GEOSGeometry * GEOSConvexHull(const GEOSGeometry *g)
GEOSVoronoiFlags
Definition geos_c.h:4661
@ GEOS_VORONOI_PRESERVE_ORDER
Definition geos_c.h:4667
@ GEOS_VORONOI_ONLY_EDGES
Definition geos_c.h:4663
GEOSGeometry * GEOSCoverageUnion(const GEOSGeometry *g)
int GEOSCoordSeq_setY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
int GEOSMakeValidParams_setMethod_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
unsigned char * GEOSWKBWriter_write_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSSymDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
void GEOSPreparedGeom_destroy(const GEOSPreparedGeometry *g)
GEOSGeometry * GEOSNode_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSBufferParams_setJoinStyle(GEOSBufferParams *p, int joinStyle)
void GEOSCoordSeq_destroy(GEOSCoordSequence *s)
GEOSGeometry * GEOSGeomFromWKT_r(GEOSContextHandle_t handle, const char *wkt)
GEOSGeoJSONReader * GEOSGeoJSONReader_create(void)
int GEOSCoordSeq_setOrdinate(GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
char GEOSPreparedIntersectsXY(const GEOSPreparedGeometry *pg1, double x, double y)
int GEOSBufferParams_setMitreLimit_r(GEOSContextHandle_t handle, GEOSBufferParams *p, double mitreLimit)
char GEOSContains(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_transformXYZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYZCallback callback, void *userdata)
char GEOSPreparedIntersectsXY_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, double x, double y)
GEOSGeometry * GEOSBufferWithStyle(const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
GEOSGeometry * GEOSGeom_transformXY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
GEOSGeometry * GEOSBuildArea(const GEOSGeometry *g)
GEOSClusterInfo * GEOSClusterEnvelopeDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
GEOSValidFlags
Definition geos_c.h:1513
@ GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE
Definition geos_c.h:1515
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)
struct GEOSWKBWriter_t GEOSWKBWriter
Definition geos_c.h:1970
void GEOSWKBWriter_setFlavor_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int flavor)
char GEOSPreparedOverlaps_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
void GEOSWKTReader_setFixStructure(GEOSWKTReader *reader, char doFix)
GEOSGeometry * GEOSConcaveHullOfPolygons(const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
int GEOSGeomTypeId_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKTReader * GEOSWKTReader_create_r(GEOSContextHandle_t handle)
GEOSGeometry * GEOSGeom_createCompoundCurve_r(GEOSContextHandle_t handle, GEOSGeometry **curves, unsigned int ncurves)
struct GEOSWKTWriter_t GEOSWKTWriter
Definition geos_c.h:1956
char GEOSPreparedWithin_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSSegmentIntersection(double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
int GEOSCoordSeq_setY(GEOSCoordSequence *s, unsigned int idx, double val)
void GEOSMakeValidParams_destroy_r(GEOSContextHandle_t handle, GEOSMakeValidParams *parms)
char GEOSPreparedCovers(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSMessageHandler_r GEOSContext_setErrorMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r ef, void *userData)
GEOSGeometry ** GEOSGeom_releaseCollection_r(GEOSContextHandle_t handle, GEOSGeometry *collection, unsigned int *ngeoms)
GEOSGeometry * GEOSGeoJSONReader_readGeometry(GEOSGeoJSONReader *reader, const char *geojson)
GEOSGeometry * GEOSEnvelope_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSEqualsIdentical(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size)
unsigned char * GEOSWKBWriter_writeHEX(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSInterpolate_r(GEOSContextHandle_t handle, const GEOSGeometry *line, double d)
GEOSGeometry * GEOSSharedPaths_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getExtent_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
GEOSGeometry * GEOSWKTReader_read_r(GEOSContextHandle_t handle, GEOSWKTReader *reader, const char *wkt)
char GEOSPreparedRelatePattern(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, const char *imPattern)
int GEOS_setWKBByteOrder(int byteOrder)
int GEOSCoverageIsValid_r(GEOSContextHandle_t extHandle, const GEOSGeometry *input, double gapWidth, GEOSGeometry **output)
void GEOSWKBReader_setFixStructure(GEOSWKBReader *reader, char doFix)
GEOSGeometry * GEOSInterpolate(const GEOSGeometry *line, double d)
char GEOSPreparedContains_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSInterpolateNormalized_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
int GEOSCoordSeq_getY_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
GEOSGeometry * GEOSGeomGetEndPoint(const GEOSGeometry *g)
GEOSGeometry * GEOSSnap_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSGeometry * GEOSPolygonize_full(const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalid)
char * GEOSRelateBoundaryNodeRule(const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
double GEOSGeom_getPrecision(const GEOSGeometry *g)
GEOSGeometry * GEOSLargestEmptyCircle(const GEOSGeometry *obstacles, const GEOSGeometry *boundary, double tolerance)
char GEOSIntersects(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSCoordSeq_getDimensions(const GEOSCoordSequence *s, unsigned int *dims)
char GEOSPreparedCoveredBy(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSCovers(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSInterruptCallback * GEOS_interruptRegisterCallback(GEOSInterruptCallback *cb)
int GEOSGeom_getXMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
int GEOSCoordSeq_getOrdinate_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
int GEOSCoordSeq_getXY(const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
GEOSGeometry * GEOSSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSIntersection_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSOrientPolygons(GEOSGeometry *g, int exteriorCW)
char GEOSOverlaps(const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSHasM_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKTWriter_setTrim_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, char trim)
GEOSGeometry * GEOSLineMergeDirected(const GEOSGeometry *g)
GEOSGeometry * GEOSMakeValidWithParams(const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
GEOSGeometry * GEOSGeomFromWKB_buf_r(GEOSContextHandle_t handle, const unsigned char *wkb, size_t size)
GEOSGeometry * GEOSPointOnSurface(const GEOSGeometry *g)
GEOSGeometry * GEOSUnaryUnionPrec(const GEOSGeometry *g, double gridSize)
void GEOSWKTWriter_setTrim(GEOSWKTWriter *writer, char trim)
GEOSGeometry * GEOSBuffer_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs)
GEOSGeometry * GEOSMinimumWidth_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSWKBReader_readHEX_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *hex, size_t size)
GEOSWKBByteOrders
Definition geos_c.h:234
@ GEOS_WKB_NDR
Definition geos_c.h:238
@ GEOS_WKB_XDR
Definition geos_c.h:236
GEOSGeometry * GEOSVoronoiDiagram_r(GEOSContextHandle_t extHandle, const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
void GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const char writeSRID)
GEOSClusterInfo * GEOSClusterDBSCAN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double eps, unsigned minPoints)
GEOSGeometry * GEOSConstrainedDelaunayTriangulation(const GEOSGeometry *g)
int GEOSCoordSeq_copyToArrays(const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
GEOSGeometry * GEOSMinimumBoundingCircle(const GEOSGeometry *g, double *radius, GEOSGeometry **center)
GEOSGeometry * GEOSSymDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
char GEOSDistanceWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
GEOSGeometry * GEOSMakeValidWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
struct GEOSWKTReader_t GEOSWKTReader
Definition geos_c.h:1949
GEOSCoordSequence * GEOSNearestPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSPolygonize(const GEOSGeometry *const geoms[], unsigned int ngeoms)
char GEOSPreparedCoveredBy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSDisjointSubsetUnion(const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createPointFromXY(double x, double y)
GEOSGeometry * GEOSRemoveRepeatedPoints(const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSVoronoiDiagram(const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int flags)
GEOSGeometry * GEOSGeom_createPolygon(GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
void GEOSWKBWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int newDimension)
void GEOSSetSRID_r(GEOSContextHandle_t handle, GEOSGeometry *g, int SRID)
void GEOSWKTReader_destroy_r(GEOSContextHandle_t handle, GEOSWKTReader *reader)
void GEOSSTRtree_destroy_r(GEOSContextHandle_t handle, GEOSSTRtree *tree)
char * GEOSGeomType(const GEOSGeometry *g)
char GEOSPreparedDisjoint(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_createEmptyPoint_r(GEOSContextHandle_t handle)
GEOSRelateBoundaryNodeRules
Definition geos_c.h:1470
@ GEOSRELATE_BNR_OGC
Definition geos_c.h:1474
@ GEOSRELATE_BNR_MULTIVALENT_ENDPOINT
Definition geos_c.h:1478
@ GEOSRELATE_BNR_ENDPOINT
Definition geos_c.h:1476
@ GEOSRELATE_BNR_MOD2
Definition geos_c.h:1472
@ GEOSRELATE_BNR_MONOVALENT_ENDPOINT
Definition geos_c.h:1480
const size_t * GEOSClusterInfo_getInputsForClusterN(const GEOSClusterInfo *clusters, size_t i)
GEOSClusterInfo_getInputsForClusterN.
GEOSGeometry * GEOSSymDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
char * GEOSGeoJSONWriter_writeGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
int GEOSBufferParams_setSingleSided_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int singleSided)
char GEOSCrosses(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeomGetStartPoint(const GEOSGeometry *g)
int GEOSMakeValidParams_setKeepCollapsed_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, int style)
int GEOSCoordSeq_setOrdinate_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
void GEOSSetSRID(GEOSGeometry *g, int SRID)
GEOSGeometry * GEOSGeoJSONReader_readGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader, const char *geojson)
char * GEOSGeoJSONWriter_writeGeometry(GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
GEOSGeometry * GEOSGeom_createLineString(GEOSCoordSequence *s)
unsigned char * GEOSWKBWriter_write(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSMakeValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSLineSubstring_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double start_fraction, double end_fdraction)
GEOSGeometry * GEOSReverse(const GEOSGeometry *g)
int GEOSWKBWriter_getFlavor(const GEOSWKBWriter *writer)
char GEOSIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char * GEOSRelate(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSCoordSeq_getSize(const GEOSCoordSequence *s, unsigned int *size)
GEOSPolygonHullParameterModes
Definition geos_c.h:4457
@ GEOSHULL_PARAM_AREA_RATIO
Definition geos_c.h:4461
@ GEOSHULL_PARAM_VERTEX_RATIO
Definition geos_c.h:4459
int GEOSOrientationIndex(double Ax, double Ay, double Bx, double By, double Px, double Py)
GEOSGeometry * GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size)
void GEOSWKTWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int dim)
GEOSGeometry * GEOSClipByRect_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
int GEOSGetNumInteriorRings_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSGeomGetZ(const GEOSGeometry *g, double *z)
GEOSGeometry * GEOSDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
int GEOSWKBWriter_getFlavor_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
int GEOSCoordSeq_isCCW(const GEOSCoordSequence *s, char *is_ccw)
struct GEOSContextHandle_HS * GEOSContextHandle_t
Definition geos_c.h:95
int GEOSCoordSeq_copyToBuffer_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *buf, int hasZ, int hasM)
int GEOSCoordSeq_setXY(GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSGeometry * GEOSMakeValid(const GEOSGeometry *g)
void GEOSCoordSeq_destroy_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSGeometry * GEOSPolygonizer_getCutEdges(const GEOSGeometry *const geoms[], unsigned int ngeoms)
int GEOSGetSRID_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSHilbertCode_r(GEOSContextHandle_t handle, const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
GEOSSTRtree * GEOSSTRtree_create_r(GEOSContextHandle_t handle, size_t nodeCapacity)
int GEOSMakeValidParams_setKeepCollapsed(GEOSMakeValidParams *p, int keepCollapsed)
GEOSGeometry * GEOSUnionPrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
int GEOSHausdorffDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
GEOSGeometry * GEOSMinimumRotatedRectangle(const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createEmptyPolygon_r(GEOSContextHandle_t handle)
GEOSBufJoinStyles
Definition geos_c.h:668
@ GEOSBUF_JOIN_MITRE
Definition geos_c.h:678
@ GEOSBUF_JOIN_ROUND
Definition geos_c.h:673
@ GEOSBUF_JOIN_BEVEL
Definition geos_c.h:683
GEOSGeometry * GEOSGeom_createEmptyCollection(int type)
GEOSGeometry * GEOSIntersection(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
int GEOSGeom_getXMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
void GEOSWKBWriter_destroy(GEOSWKBWriter *writer)
char GEOSEquals_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getXMin(const GEOSGeometry *g, double *value)
char GEOSCovers_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeomGetLength(const GEOSGeometry *g, double *length)
char GEOSOverlaps_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
const GEOSGeometry * GEOSSTRtree_nearest(GEOSSTRtree *tree, const GEOSGeometry *geom)
GEOSClusterInfo * GEOSClusterGeometryIntersects(const GEOSGeometry *g)
GEOSClusterGeometryIntersects.
unsigned char * GEOSGeomToHEX_buf(const GEOSGeometry *g, size_t *size)
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer_r(GEOSContextHandle_t handle, const double *buf, unsigned int size, int hasZ, int hasM)
GEOSWKBReader * GEOSWKBReader_create_r(GEOSContextHandle_t handle)
char GEOSDisjoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSCoordSequence * GEOSPreparedNearestPoints_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeomFromHEX_buf_r(GEOSContextHandle_t handle, const unsigned char *hex, size_t size)
GEOSClusterInfo * GEOSClusterGeometryDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double d)
GEOSCoordSequence * GEOSCoordSeq_clone(const GEOSCoordSequence *s)
int GEOSGeom_getCoordinateDimension_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSNormalize(GEOSGeometry *g)
unsigned char * GEOSGeomToWKB_buf(const GEOSGeometry *g, size_t *size)
int GEOSGetNumGeometries_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSEqualsExact_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSGeometry * GEOSMinimumBoundingCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *radius, GEOSGeometry **center)
int GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer)
char GEOSTouches_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSWKTReader_read(GEOSWKTReader *reader, const char *wkt)
GEOSGeometry * GEOSUnaryUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize)
int 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:302
void GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer, int useOld3D)
int GEOSGeom_getExtent(const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
int GEOSCoordSeq_copyToArrays_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
char GEOSWithin(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSNormalize_r(GEOSContextHandle_t handle, GEOSGeometry *g)
void GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer)
GEOSCoordSequence * GEOSCoordSeq_createWithDimensions(unsigned int size, int hasZ, int hasM)
int GEOSDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeometry * GEOSGeom_createEmptyPolygon(void)
void finishGEOS_r(GEOSContextHandle_t handle)
char GEOSisClosed(const GEOSGeometry *g)
GEOSGeometry * GEOSPolygonHullSimplifyMode(const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
int GEOSGeom_getCoordinateDimension(const GEOSGeometry *g)
size_t GEOSClusterInfo_getClusterSize(const GEOSClusterInfo *clusters, size_t i)
GEOSClusterInfo_getSize.
struct GEOSClusterInfo_t GEOSClusterInfo
Definition geos_c.h:182
int GEOSFrechetDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
char GEOSRelatePattern(const GEOSGeometry *g1, const GEOSGeometry *g2, const char *imPattern)
GEOSGeometry * GEOSBufferWithStyle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
char * GEOSRelate_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSConvexHull_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter
Definition geos_c.h:1984
unsigned char * GEOSGeomToWKB_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSSingleSidedBuffer(const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOSGeometry * GEOSUnionCascaded(const GEOSGeometry *g)
char GEOSPreparedTouches_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSMessageHandler GEOSContext_setErrorHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler ef)
int GEOSCoordSeq_setXYZ(GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
size_t * GEOSClusterInfo_getClustersForInputs(const GEOSClusterInfo *clusters)
GEOSClusterInfo_getClustersForInputs.
int GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
double GEOSProjectNormalized(const GEOSGeometry *line, const GEOSGeometry *point)
GEOSGeometry * GEOSGeom_createEmptyCircularString()
int GEOSGeom_getYMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSGeom_clone_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
const GEOSPreparedGeometry * GEOSPrepare_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSGeom_setUserData(GEOSGeometry *g, void *userData)
GEOSGeometry * GEOSGeom_createCollection(int type, GEOSGeometry **geoms, unsigned int ngeoms)
void GEOSGeoJSONReader_destroy(GEOSGeoJSONReader *reader)
GEOSGeometry * GEOSGetCentroid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer(const double *buf, unsigned int size, int hasZ, int hasM)
int GEOSGeomGetNumPoints(const GEOSGeometry *g)
void GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter *writer)
GEOSGeometry * GEOSGeom_transformXY(const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
size_t GEOSClusterInfo_getNumClusters(const GEOSClusterInfo *clusters)
GEOSClusterInfo_getNumClusters.
double GEOSProjectNormalized_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *p)
char GEOSPreparedCrosses(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSGeomGetNumPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char * GEOSisValidReason_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSPolygonize_valid_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngems)
GEOSGeometry * GEOSGeom_createCurvePolygon(GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSGeometry * GEOSLineSubstring(const GEOSGeometry *g, double start_fraction, double end_fraction)
char GEOSPreparedIntersects(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSClusterInfo * GEOSClusterDBSCAN(const GEOSGeometry *g, double eps, unsigned minPoints)
GEOSClusterDBSCAN.
GEOSGeometry * GEOSConcaveHullOfPolygons_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
int GEOS_setWKBOutputDims(int newDims)
const GEOSCoordSequence * GEOSGeom_getCoordSeq_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSPointOnSurface_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createEmptyCurvePolygon()
int GEOSFrechetDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
struct GEOSBufParams_t GEOSBufferParams
Definition geos_c.h:169
char GEOSPreparedCovers_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
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:1652
@ GEOS_PREC_NO_TOPO
Definition geos_c.h:1656
@ GEOS_PREC_KEEP_COLLAPSED
Definition geos_c.h:1658
@ GEOS_PREC_VALID_OUTPUT
Definition geos_c.h:1654
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:176
char GEOSRelatePatternMatch(const char *intMatrix, const char *imPattern)
void GEOS_finish_r(GEOSContextHandle_t handle)
GEOSMakeValidMethods
Definition geos_c.h:1543
@ GEOS_MAKE_VALID_LINEWORK
Definition geos_c.h:1547
@ GEOS_MAKE_VALID_STRUCTURE
Definition geos_c.h:1552
GEOSGeometry * GEOSWKBReader_readHEX(GEOSWKBReader *reader, const unsigned char *hex, size_t size)
int GEOSGeom_getYMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSGeom_createEmptyLineString(void)
const GEOSGeometry * GEOSGetInteriorRingN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSGeometry * GEOSInterpolateNormalized(const GEOSGeometry *line, double proportion)
GEOSGeometry * GEOSGeom_createEmptyCompoundCurve()
GEOSGeometry * GEOSGeom_clone(const GEOSGeometry *g)
void GEOSGeoJSONWriter_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
int GEOSBufferParams_setSingleSided(GEOSBufferParams *p, int singleSided)
const GEOSGeometry * GEOSGetInteriorRingN(const GEOSGeometry *g, int n)
int GEOSGeomGetZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *z)
GEOSGeometry * GEOSUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeometry * GEOSGeom_createPointFromXY_r(GEOSContextHandle_t handle, double x, double y)
char GEOSEqualsIdentical_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSClusterInfo * GEOSClusterGeometryDistance(const GEOSGeometry *g, double d)
GEOSClusterGeometryDistance.
GEOSClusterInfo * GEOSClusterEnvelopeIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
const GEOSPreparedGeometry * GEOSPrepare(const GEOSGeometry *g)
int GEOSWKBWriter_getByteOrder(const GEOSWKBWriter *writer)
char GEOSPreparedOverlaps(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSHasZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
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)
void GEOSSTRtree_insert(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
char GEOSisSimple_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBWriter * GEOSWKBWriter_create_r(GEOSContextHandle_t handle)
char GEOSDistanceWithin(const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
int GEOSCoordSeq_setXYZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
int GEOSGeomGetX_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *x)
unsigned char * GEOSGeomToHEX_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
char GEOSPreparedWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSHasZ(const GEOSGeometry *g)
int GEOSWKBWriter_getOutputDimension_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
int GEOSBufferParams_setQuadrantSegments(GEOSBufferParams *p, int quadSegs)
void GEOS_interruptRequest(void)
char GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
void finishGEOS(void)
int GEOSLength(const GEOSGeometry *g, double *length)
GEOSGeometry * GEOSConcaveHull(const GEOSGeometry *g, double ratio, unsigned int allowHoles)
int GEOSCoordSeq_getZ_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
int GEOSBufferParams_setEndCapStyle(GEOSBufferParams *p, int style)
GEOSGeometry * GEOSUnionCascaded_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSGetSRID(const GEOSGeometry *g)
GEOSGeometry * GEOSBuffer(const GEOSGeometry *g, double width, int quadsegs)
unsigned char * GEOSWKBWriter_writeHEX_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
void GEOSWKTWriter_setRoundingPrecision(GEOSWKTWriter *writer, int precision)
char GEOSisClosed_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char * GEOSisValidReason(const GEOSGeometry *g)
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)
const GEOSGeometry * GEOSGetGeometryN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
int GEOSCoordSeq_getX_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
int GEOSPreparedDistance_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSWKTWriter * GEOSWKTWriter_create(void)
char * GEOSPreparedRelate_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSSegmentIntersection_r(GEOSContextHandle_t extHandle, double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
char GEOSisValid(const GEOSGeometry *g)
char GEOSCoveredBy(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getDimensions(const GEOSGeometry *g)
char GEOSPreparedDisjoint_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSHausdorffDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeometry * GEOSGeom_createCircularString(GEOSCoordSequence *s)
void GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter *writer, const char writeSRID)
GEOSGeometry * GEOSBuildArea_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSisEmpty(const GEOSGeometry *g)
const GEOSGeometry * GEOSGetGeometryN(const GEOSGeometry *g, int n)
int GEOSMinimumClearance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *distance)
int GEOSHilbertCode(const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
GEOSGeometry * GEOSConcaveHullByLength(const GEOSGeometry *g, double length, unsigned int allowHoles)
GEOSGeometry * GEOSGeom_createCollection_r(GEOSContextHandle_t handle, int type, GEOSGeometry **geoms, unsigned int ngeoms)
GEOSGeometry * GEOSMaximumInscribedCircle(const GEOSGeometry *g, double tolerance)
GEOSGeoJSONReader * GEOSGeoJSONReader_create_r(GEOSContextHandle_t handle)
void() GEOSInterruptCallback(void)
Definition geos_c.h:338
GEOSGeometry * GEOSGeom_createPoint(GEOSCoordSequence *s)
int GEOS_getWKBByteOrder_r(GEOSContextHandle_t handle)
char GEOSPreparedTouches(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSWKBWriter_getIncludeSRID(const GEOSWKBWriter *writer)
GEOSGeometry * GEOSSnap(const GEOSGeometry *input, const GEOSGeometry *snap_target, double tolerance)
GEOSWKBWriter * GEOSWKBWriter_create(void)
struct GEOSSTRtree_t GEOSSTRtree
Definition geos_c.h:162
GEOSCoordSequence * GEOSCoordSeq_create_r(GEOSContextHandle_t handle, unsigned int size, unsigned int dims)
GEOSCoordSequence * GEOSNearestPoints(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSSymDifferencePrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
int GEOSGeom_getXMax(const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSRemoveRepeatedPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSGeom_extractUniquePoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSFree(void *buffer)
GEOSBufferParams * GEOSBufferParams_create_r(GEOSContextHandle_t handle)
int GEOSCoordSeq_getX(const GEOSCoordSequence *s, unsigned int idx, double *val)
char * GEOSPreparedRelate(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
char * GEOSGeomToWKT(const GEOSGeometry *g)
GEOSGeometry * GEOSSharedPaths(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSArea(const GEOSGeometry *g, double *area)
int GEOSGeomGetLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
char GEOSPreparedCrosses_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_createCompoundCurve(GEOSGeometry **curves, unsigned int ncurves)
int GEOSGeomGetY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *y)
int GEOSCoordSeq_isCCW_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, char *is_ccw)
char GEOSisValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSSTRtree_insert_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSCoordSequence * GEOSCoordSeq_copyFromArrays_r(GEOSContextHandle_t handle, const double *x, const double *y, const double *z, const double *m, unsigned int size)
int GEOSCoordSeq_setX_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSGeometry * GEOSLineMerge_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSisValidDetail(const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSGeometry * GEOSPolygonize_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSGeometry * GEOSLineMerge(const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createEmptyCurvePolygon_r(GEOSContextHandle_t handle)
size_t GEOSClusterInfo_getClusterSize_r(GEOSContextHandle_t, const GEOSClusterInfo *clusters, size_t i)
GEOSGeometry * GEOSGeom_createLinearRing(GEOSCoordSequence *s)
void GEOSClusterInfo_destroy(GEOSClusterInfo *clusters)
GEOSClusterInfo_destroy.
void GEOSWKTWriter_setRoundingPrecision_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int precision)
const void * GEOSSTRtree_nearest_generic(GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
int GEOSGeom_getYMax(const GEOSGeometry *g, double *value)
int GEOSHausdorffDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
double GEOSProject(const GEOSGeometry *line, const GEOSGeometry *point)
int(* GEOSTransformXYZCallback)(double *x, double *y, double *z, void *userdata)
Definition geos_c.h:321
char * GEOSWKTWriter_write_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_clone_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s)
GEOSGeometry * GEOSDifferencePrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
GEOSGeometry * GEOSUnaryUnion(const GEOSGeometry *g)
struct GEOSPrepGeom_t GEOSPreparedGeometry
Definition geos_c.h:147