GEOS 3.11.1
geos_c.h
Go to the documentation of this file.
1/************************************************************************
2 *
3 * C-Wrapper for GEOS library
4 *
5 * Copyright (C) 2010 2011 Sandro Santilli <strk@kbt.io>
6 * Copyright (C) 2005 Refractions Research Inc.
7 *
8 * This is free software; you can redistribute and/or modify it under
9 * the terms of the GNU Lesser General Public Licence as published
10 * by the Free Software Foundation.
11 * See the COPYING file for more information.
12 ***********************************************************************/
13
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 11
65#endif
66#ifndef GEOS_VERSION_PATCH
67#define GEOS_VERSION_PATCH 1
68#endif
69#ifndef GEOS_VERSION
70#define GEOS_VERSION "3.11.1"
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 17
78#define GEOS_CAPI_VERSION_PATCH 1
79#define GEOS_CAPI_VERSION "3.11.1-CAPI-1.17.1"
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
106typedef void (*GEOSMessageHandler)(const char *fmt, ...);
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
154typedef struct GEOSCoordSeq_t GEOSCoordSequence;
155
161typedef struct GEOSSTRtree_t GEOSSTRtree;
162
168typedef struct GEOSBufParams_t GEOSBufferParams;
169
175typedef struct GEOSMakeValidParams_t GEOSMakeValidParams;
176
177#endif
178
181/*
182* These are compatibility definitions for source compatibility
183* with GEOS 2.X clients relying on that type.
184*/
185typedef GEOSGeometry* GEOSGeom;
186typedef GEOSCoordSequence* GEOSCoordSeq;
187
215
226 GEOS_WKB_NDR = 1
228
242 GEOS_WKB_ISO = 2
244
252typedef void (*GEOSQueryCallback)(void *item, void *userdata);
253
271typedef int (*GEOSDistanceCallback)(
272 const void* item1,
273 const void* item2,
274 double* distance,
275 void* userdata);
276
277
291 double* x,
292 double* y,
293 void* userdata);
294
295
296/* ========== Interruption ========== */
297
306typedef void (GEOSInterruptCallback)(void);
307
316
320extern void GEOS_DLL GEOS_interruptRequest(void);
321
325extern void GEOS_DLL GEOS_interruptCancel(void);
326
327/* ========== Initialization and Cleanup ========== */
328
334extern GEOSContextHandle_t GEOS_DLL GEOS_init_r(void);
335
341extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
342
350 GEOSContextHandle_t extHandle,
352
362 GEOSContextHandle_t extHandle,
364
373 GEOSContextHandle_t extHandle,
375 void *userData);
376
387 GEOSContextHandle_t extHandle,
389 void *userData);
390
391/* ========== Coordinate Sequence functions ========== */
392
395 GEOSContextHandle_t handle,
396 unsigned int size,
397 unsigned int dims);
398
401 GEOSContextHandle_t handle,
402 const double* buf,
403 unsigned int size,
404 int hasZ,
405 int hasM);
406
409 GEOSContextHandle_t handle,
410 const double* x,
411 const double* y,
412 const double* z,
413 const double* m,
414 unsigned int size);
415
417extern int GEOS_DLL GEOSCoordSeq_copyToBuffer_r(
418 GEOSContextHandle_t handle,
419 const GEOSCoordSequence* s,
420 double* buf,
421 int hasZ,
422 int hasM);
423
425extern int GEOS_DLL GEOSCoordSeq_copyToArrays_r(
426 GEOSContextHandle_t handle,
427 const GEOSCoordSequence* s,
428 double* x,
429 double* y,
430 double* z,
431 double* m);
432
435 GEOSContextHandle_t handle,
436 const GEOSCoordSequence* s);
437
439extern void GEOS_DLL GEOSCoordSeq_destroy_r(
440 GEOSContextHandle_t handle,
442
444extern int GEOS_DLL GEOSCoordSeq_setX_r(
445 GEOSContextHandle_t handle,
446 GEOSCoordSequence* s, unsigned int idx,
447 double val);
448
450extern int GEOS_DLL GEOSCoordSeq_setY_r(
451 GEOSContextHandle_t handle,
452 GEOSCoordSequence* s, unsigned int idx,
453 double val);
454
456extern int GEOS_DLL GEOSCoordSeq_setZ_r(
457 GEOSContextHandle_t handle,
458 GEOSCoordSequence* s, unsigned int idx,
459 double val);
460
462extern int GEOS_DLL GEOSCoordSeq_setXY_r(
463 GEOSContextHandle_t handle,
464 GEOSCoordSequence* s, unsigned int idx,
465 double x, double y);
466
468extern int GEOS_DLL GEOSCoordSeq_setXYZ_r(
469 GEOSContextHandle_t handle,
470 GEOSCoordSequence* s, unsigned int idx,
471 double x, double y, double z);
472
474extern int GEOS_DLL GEOSCoordSeq_setOrdinate_r(
475 GEOSContextHandle_t handle,
477 unsigned int idx,
478 unsigned int dim, double val);
479
481extern int GEOS_DLL GEOSCoordSeq_getX_r(
482 GEOSContextHandle_t handle,
483 const GEOSCoordSequence* s,
484 unsigned int idx, double *val);
485
487extern int GEOS_DLL GEOSCoordSeq_getY_r(
488 GEOSContextHandle_t handle,
489 const GEOSCoordSequence* s,
490 unsigned int idx, double *val);
491
493extern int GEOS_DLL GEOSCoordSeq_getZ_r(
494 GEOSContextHandle_t handle,
495 const GEOSCoordSequence* s,
496 unsigned int idx, double *val);
497
499extern int GEOS_DLL GEOSCoordSeq_getXY_r(
500 GEOSContextHandle_t handle,
501 const GEOSCoordSequence* s,
502 unsigned int idx,
503 double *x, double *y);
504
506extern int GEOS_DLL GEOSCoordSeq_getXYZ_r(
507 GEOSContextHandle_t handle,
508 const GEOSCoordSequence* s,
509 unsigned int idx,
510 double *x, double *y, double *z);
511
513extern int GEOS_DLL GEOSCoordSeq_getOrdinate_r(
514 GEOSContextHandle_t handle,
515 const GEOSCoordSequence* s,
516 unsigned int idx,
517 unsigned int dim, double *val);
518
520extern int GEOS_DLL GEOSCoordSeq_getSize_r(
521 GEOSContextHandle_t handle,
522 const GEOSCoordSequence* s,
523 unsigned int *size);
524
527 GEOSContextHandle_t handle,
528 const GEOSCoordSequence* s,
529 unsigned int *dims);
530
532extern int GEOS_DLL GEOSCoordSeq_isCCW_r(
533 GEOSContextHandle_t handle,
534 const GEOSCoordSequence* s,
535 char* is_ccw);
536
537/* ========= Linear referencing functions ========= */
538
540extern double GEOS_DLL GEOSProject_r(
541 GEOSContextHandle_t handle,
542 const GEOSGeometry *line,
543 const GEOSGeometry *point);
544
547 GEOSContextHandle_t handle,
548 const GEOSGeometry *line,
549 double d);
550
552extern double GEOS_DLL GEOSProjectNormalized_r(
553 GEOSContextHandle_t handle,
554 const GEOSGeometry *g,
555 const GEOSGeometry *p);
556
559 GEOSContextHandle_t handle,
560 const GEOSGeometry *g,
561 double d);
562
563/* ========== Buffer related functions ========== */
564
566extern GEOSGeometry GEOS_DLL *GEOSBuffer_r(
567 GEOSContextHandle_t handle,
568 const GEOSGeometry* g,
569 double width, int quadsegs);
570
576
579
582
586
608
611 GEOSContextHandle_t handle);
612
614extern void GEOS_DLL GEOSBufferParams_destroy_r(
615 GEOSContextHandle_t handle,
616 GEOSBufferParams* parms);
617
620 GEOSContextHandle_t handle,
622 int style);
623
626 GEOSContextHandle_t handle,
628 int joinStyle);
629
632 GEOSContextHandle_t handle,
634 double mitreLimit);
635
638 GEOSContextHandle_t handle,
640 int quadSegs);
641
644 GEOSContextHandle_t handle,
646 int singleSided);
647
650 GEOSContextHandle_t handle,
651 const GEOSGeometry* g,
652 const GEOSBufferParams* p,
653 double width);
654
657 GEOSContextHandle_t handle,
658 const GEOSGeometry* g,
659 double width, int quadsegs, int endCapStyle,
660 int joinStyle, double mitreLimit);
661
664 GEOSContextHandle_t handle,
665 const GEOSGeometry* g,
666 double tolerance);
667
670 GEOSContextHandle_t handle,
671 const GEOSGeometry* g, double width, int quadsegs,
672 int joinStyle, double mitreLimit);
673
674
675/* ========= Geometry Constructors ========= */
676
679 GEOSContextHandle_t handle,
681
684 GEOSContextHandle_t handle,
685 double x, double y);
686
689 GEOSContextHandle_t handle);
690
693 GEOSContextHandle_t handle,
695
698 GEOSContextHandle_t handle,
700
703 GEOSContextHandle_t handle);
704
707 GEOSContextHandle_t handle);
708
711 GEOSContextHandle_t handle,
712 GEOSGeometry* shell,
713 GEOSGeometry** holes,
714 unsigned int nholes);
715
718 GEOSContextHandle_t handle,
719 int type,
720 GEOSGeometry* *geoms,
721 unsigned int ngeoms);
722
725 GEOSContextHandle_t handle, int type);
726
729 GEOSContextHandle_t handle,
730 double xmin, double ymin,
731 double xmax, double ymax);
732
735 GEOSContextHandle_t handle,
736 const GEOSGeometry* g);
737
738/* ========= Memory management ========= */
739
741extern void GEOS_DLL GEOSGeom_destroy_r(
742 GEOSContextHandle_t handle,
743 GEOSGeometry* g);
744
745/* ========= Topology Operations ========= */
746
749 GEOSContextHandle_t handle,
750 const GEOSGeometry* g);
751
754 GEOSContextHandle_t handle,
755 const GEOSGeometry* g1,
756 const GEOSGeometry* g2);
757
760 GEOSContextHandle_t handle,
761 const GEOSGeometry* g1,
762 const GEOSGeometry* g2,
763 double gridSize);
764
767 GEOSContextHandle_t handle,
768 const GEOSGeometry* g);
769
772 GEOSContextHandle_t handle,
773 const GEOSGeometry* g,
774 double ratio,
775 unsigned int allowHoles);
776
779 GEOSContextHandle_t handle,
780 const GEOSGeometry* g,
781 unsigned int isOuter,
782 double vertexNumFraction);
783
786 GEOSContextHandle_t handle,
787 const GEOSGeometry* g,
788 unsigned int isOuter,
789 unsigned int parameterMode,
790 double parameter);
791
794 GEOSContextHandle_t handle,
795 const GEOSGeometry* g,
796 double lengthRatio,
797 unsigned int isTight,
798 unsigned int isHolesAllowed);
799
802 GEOSContextHandle_t handle,
803 const GEOSGeometry* g);
804
807 GEOSContextHandle_t handle,
808 const GEOSGeometry* g,
809 double tolerance);
810
813 GEOSContextHandle_t handle,
814 const GEOSGeometry* g,
815 const GEOSGeometry* boundary,
816 double tolerance);
817
820 GEOSContextHandle_t handle,
821 const GEOSGeometry* g);
822
825 GEOSContextHandle_t handle,
826 const GEOSGeometry* g);
827
829extern int GEOS_DLL GEOSMinimumClearance_r(
830 GEOSContextHandle_t handle,
831 const GEOSGeometry* g,
832 double* distance);
833
836 GEOSContextHandle_t handle,
837 const GEOSGeometry* g1,
838 const GEOSGeometry* g2);
839
842 GEOSContextHandle_t handle,
843 const GEOSGeometry* g1,
844 const GEOSGeometry* g2,
845 double gridSize);
846
849 GEOSContextHandle_t handle,
850 const GEOSGeometry* g1,
851 const GEOSGeometry* g2);
852
855 GEOSContextHandle_t handle,
856 const GEOSGeometry* g1,
857 const GEOSGeometry* g2,
858 double gridSize);
859
862 GEOSContextHandle_t handle,
863 const GEOSGeometry* g);
864
866extern GEOSGeometry GEOS_DLL *GEOSUnion_r(
867 GEOSContextHandle_t handle,
868 const GEOSGeometry* g1,
869 const GEOSGeometry* g2);
870
873 GEOSContextHandle_t handle,
874 const GEOSGeometry* g1,
875 const GEOSGeometry* g2,
876 double gridSize);
877
880 GEOSContextHandle_t handle,
881 const GEOSGeometry* g);
882
885 GEOSContextHandle_t handle,
886 const GEOSGeometry* g,
887 double gridSize);
888
891 GEOSContextHandle_t handle,
892 const GEOSGeometry* g);
893
896 GEOSContextHandle_t handle,
897 const GEOSGeometry* g);
898
901 GEOSContextHandle_t handle,
902 const GEOSGeometry* g);
903
906 GEOSContextHandle_t handle,
907 const GEOSGeometry* g,
908 double* radius,
909 GEOSGeometry** center);
910
912extern GEOSGeometry GEOS_DLL *GEOSNode_r(
913 GEOSContextHandle_t handle,
914 const GEOSGeometry* g);
915
918 GEOSContextHandle_t handle,
919 const GEOSGeometry* g,
920 double xmin, double ymin,
921 double xmax, double ymax);
922
925 GEOSContextHandle_t handle,
926 const GEOSGeometry *const geoms[],
927 unsigned int ngeoms);
928
931 GEOSContextHandle_t handle,
932 const GEOSGeometry *const geoms[],
933 unsigned int ngems);
934
937 GEOSContextHandle_t handle,
938 const GEOSGeometry * const geoms[],
939 unsigned int ngeoms);
940
943 GEOSContextHandle_t handle,
944 const GEOSGeometry* input,
945 GEOSGeometry** cuts,
946 GEOSGeometry** dangles,
947 GEOSGeometry** invalidRings);
948
951 GEOSContextHandle_t handle,
952 const GEOSGeometry* g);
953
956 GEOSContextHandle_t handle,
957 const GEOSGeometry* g);
958
961 GEOSContextHandle_t handle,
962 const GEOSGeometry* g);
963
966 GEOSContextHandle_t handle,
967 const GEOSGeometry* g);
968
971 GEOSContextHandle_t handle,
972 const GEOSGeometry* g,
973 double tolerance);
974
977 GEOSContextHandle_t handle,
978 const GEOSGeometry* g, double tolerance);
979
982 GEOSContextHandle_t handle,
983 const GEOSGeometry* g);
984
987 GEOSContextHandle_t handle,
988 const GEOSGeometry* g1,
989 const GEOSGeometry* g2);
990
992extern GEOSGeometry GEOS_DLL *GEOSSnap_r(
993 GEOSContextHandle_t handle,
994 const GEOSGeometry* g1,
995 const GEOSGeometry* g2,
996 double tolerance);
997
1000 GEOSContextHandle_t handle,
1001 const GEOSGeometry *g,
1002 double tolerance,
1003 int onlyEdges);
1004
1007 GEOSContextHandle_t handle,
1008 const GEOSGeometry *g);
1009
1012 GEOSContextHandle_t extHandle,
1013 const GEOSGeometry *g,
1014 const GEOSGeometry *env,
1015 double tolerance,
1016 int onlyEdges);
1017
1019extern int GEOS_DLL GEOSSegmentIntersection_r(
1020 GEOSContextHandle_t extHandle,
1021 double ax0, double ay0,
1022 double ax1, double ay1,
1023 double bx0, double by0,
1024 double bx1, double by1,
1025 double* cx, double* cy);
1026
1027/* ========= Binary predicates ========= */
1028
1030extern char GEOS_DLL GEOSDisjoint_r(
1031 GEOSContextHandle_t handle,
1032 const GEOSGeometry* g1,
1033 const GEOSGeometry* g2);
1034
1036extern char GEOS_DLL GEOSTouches_r(
1037 GEOSContextHandle_t handle,
1038 const GEOSGeometry* g1,
1039 const GEOSGeometry* g2);
1040
1042extern char GEOS_DLL GEOSIntersects_r(
1043 GEOSContextHandle_t handle,
1044 const GEOSGeometry* g1,
1045 const GEOSGeometry* g2);
1046
1048extern char GEOS_DLL GEOSCrosses_r(
1049 GEOSContextHandle_t handle,
1050 const GEOSGeometry* g1,
1051 const GEOSGeometry* g2);
1052
1054extern char GEOS_DLL GEOSWithin_r(
1055 GEOSContextHandle_t handle,
1056 const GEOSGeometry* g1,
1057 const GEOSGeometry* g2);
1058
1060extern char GEOS_DLL GEOSContains_r(
1061 GEOSContextHandle_t handle,
1062 const GEOSGeometry* g1,
1063 const GEOSGeometry* g2);
1064
1066extern char GEOS_DLL GEOSOverlaps_r(
1067 GEOSContextHandle_t handle,
1068 const GEOSGeometry* g1,
1069 const GEOSGeometry* g2);
1070
1072extern char GEOS_DLL GEOSEquals_r(
1073 GEOSContextHandle_t handle,
1074 const GEOSGeometry* g1,
1075 const GEOSGeometry* g2);
1076
1078extern char GEOS_DLL GEOSEqualsExact_r(
1079 GEOSContextHandle_t handle,
1080 const GEOSGeometry* g1,
1081 const GEOSGeometry* g2,
1082 double tolerance);
1083
1085extern char GEOS_DLL GEOSCovers_r(
1086 GEOSContextHandle_t handle,
1087 const GEOSGeometry* g1,
1088 const GEOSGeometry* g2);
1089
1091extern char GEOS_DLL GEOSCoveredBy_r(
1092 GEOSContextHandle_t handle,
1093 const GEOSGeometry* g1,
1094 const GEOSGeometry* g2);
1095
1096/* ========= Prepared Geometry Binary Predicates ========== */
1097
1100 GEOSContextHandle_t handle,
1101 const GEOSGeometry* g);
1102
1104extern void GEOS_DLL GEOSPreparedGeom_destroy_r(
1105 GEOSContextHandle_t handle,
1106 const GEOSPreparedGeometry* g);
1107
1109extern char GEOS_DLL GEOSPreparedContains_r(
1110 GEOSContextHandle_t handle,
1111 const GEOSPreparedGeometry* pg1,
1112 const GEOSGeometry* g2);
1113
1116 GEOSContextHandle_t handle,
1117 const GEOSPreparedGeometry* pg1,
1118 const GEOSGeometry* g2);
1119
1121extern char GEOS_DLL GEOSPreparedCoveredBy_r(
1122 GEOSContextHandle_t handle,
1123 const GEOSPreparedGeometry* pg1,
1124 const GEOSGeometry* g2);
1125
1127extern char GEOS_DLL GEOSPreparedCovers_r(
1128 GEOSContextHandle_t handle,
1129 const GEOSPreparedGeometry* pg1,
1130 const GEOSGeometry* g2);
1131
1133extern char GEOS_DLL GEOSPreparedCrosses_r(
1134 GEOSContextHandle_t handle,
1135 const GEOSPreparedGeometry* pg1,
1136 const GEOSGeometry* g2);
1137
1139extern char GEOS_DLL GEOSPreparedDisjoint_r(
1140 GEOSContextHandle_t handle,
1141 const GEOSPreparedGeometry* pg1,
1142 const GEOSGeometry* g2);
1143
1145extern char GEOS_DLL GEOSPreparedIntersects_r(
1146 GEOSContextHandle_t handle,
1147 const GEOSPreparedGeometry* pg1,
1148 const GEOSGeometry* g2);
1149
1151extern char GEOS_DLL GEOSPreparedOverlaps_r(
1152 GEOSContextHandle_t handle,
1153 const GEOSPreparedGeometry* pg1,
1154 const GEOSGeometry* g2);
1155
1157extern char GEOS_DLL GEOSPreparedTouches_r(
1158 GEOSContextHandle_t handle,
1159 const GEOSPreparedGeometry* pg1,
1160 const GEOSGeometry* g2);
1161
1163extern char GEOS_DLL GEOSPreparedWithin_r(
1164 GEOSContextHandle_t handle,
1165 const GEOSPreparedGeometry* pg1,
1166 const GEOSGeometry* g2);
1167
1170 GEOSContextHandle_t handle,
1171 const GEOSPreparedGeometry* pg1,
1172 const GEOSGeometry* g2);
1173
1175extern int GEOS_DLL GEOSPreparedDistance_r(
1176 GEOSContextHandle_t handle,
1177 const GEOSPreparedGeometry* pg1,
1178 const GEOSGeometry* g2, double *dist);
1179
1181extern char GEOS_DLL GEOSPreparedDistanceWithin_r(
1182 GEOSContextHandle_t handle,
1183 const GEOSPreparedGeometry* pg1,
1184 const GEOSGeometry* g2, double dist);
1185
1186/* ========== STRtree ========== */
1187
1190 GEOSContextHandle_t handle,
1191 size_t nodeCapacity);
1192
1194extern void GEOS_DLL GEOSSTRtree_insert_r(
1195 GEOSContextHandle_t handle,
1196 GEOSSTRtree *tree,
1197 const GEOSGeometry *g,
1198 void *item);
1199
1201extern void GEOS_DLL GEOSSTRtree_query_r(
1202 GEOSContextHandle_t handle,
1203 GEOSSTRtree *tree,
1204 const GEOSGeometry *g,
1205 GEOSQueryCallback callback,
1206 void *userdata);
1207
1210 GEOSContextHandle_t handle,
1211 GEOSSTRtree *tree,
1212 const GEOSGeometry* geom);
1213
1215extern const void GEOS_DLL *GEOSSTRtree_nearest_generic_r(
1216 GEOSContextHandle_t handle,
1217 GEOSSTRtree *tree,
1218 const void* item,
1219 const GEOSGeometry* itemEnvelope,
1220 GEOSDistanceCallback distancefn,
1221 void* userdata);
1222
1224extern void GEOS_DLL GEOSSTRtree_iterate_r(
1225 GEOSContextHandle_t handle,
1226 GEOSSTRtree *tree,
1227 GEOSQueryCallback callback,
1228 void *userdata);
1229
1231extern char GEOS_DLL GEOSSTRtree_remove_r(
1232 GEOSContextHandle_t handle,
1233 GEOSSTRtree *tree,
1234 const GEOSGeometry *g,
1235 void *item);
1236
1238extern void GEOS_DLL GEOSSTRtree_destroy_r(
1239 GEOSContextHandle_t handle,
1240 GEOSSTRtree *tree);
1241
1242
1243/* ========= Unary predicate ========= */
1244
1246extern char GEOS_DLL GEOSisEmpty_r(
1247 GEOSContextHandle_t handle,
1248 const GEOSGeometry* g);
1249
1251extern char GEOS_DLL GEOSisSimple_r(
1252 GEOSContextHandle_t handle,
1253 const GEOSGeometry* g);
1254
1256extern char GEOS_DLL GEOSisRing_r(
1257 GEOSContextHandle_t handle,
1258 const GEOSGeometry* g);
1259
1261extern char GEOS_DLL GEOSHasZ_r(
1262 GEOSContextHandle_t handle,
1263 const GEOSGeometry* g);
1264
1266extern char GEOS_DLL GEOSisClosed_r(
1267 GEOSContextHandle_t handle,
1268 const GEOSGeometry *g);
1269
1270/* ========== Dimensionally Extended 9 Intersection Model ========== */
1271
1288
1290extern char GEOS_DLL GEOSRelatePattern_r(
1291 GEOSContextHandle_t handle,
1292 const GEOSGeometry* g1,
1293 const GEOSGeometry* g2,
1294 const char *pat);
1295
1297extern char GEOS_DLL *GEOSRelate_r(
1298 GEOSContextHandle_t handle,
1299 const GEOSGeometry* g1,
1300 const GEOSGeometry* g2);
1301
1303extern char GEOS_DLL GEOSRelatePatternMatch_r(
1304 GEOSContextHandle_t handle,
1305 const char *mat,
1306 const char *pat);
1307
1309extern char GEOS_DLL *GEOSRelateBoundaryNodeRule_r(
1310 GEOSContextHandle_t handle,
1311 const GEOSGeometry* g1,
1312 const GEOSGeometry* g2,
1313 int bnr);
1314
1315/* ========= Validity checking ========= */
1316
1319{
1323
1325extern char GEOS_DLL GEOSisValid_r(
1326 GEOSContextHandle_t handle,
1327 const GEOSGeometry* g);
1328
1330extern char GEOS_DLL *GEOSisValidReason_r(
1331 GEOSContextHandle_t handle,
1332 const GEOSGeometry* g);
1333
1335extern char GEOS_DLL GEOSisValidDetail_r(
1336 GEOSContextHandle_t handle,
1337 const GEOSGeometry* g,
1338 int flags,
1339 char** reason,
1340 GEOSGeometry** location);
1341
1342/* ========== Make Valid ========== */
1343
1360
1363 GEOSContextHandle_t extHandle);
1364
1367 GEOSContextHandle_t handle,
1368 GEOSMakeValidParams* parms);
1369
1372 GEOSContextHandle_t handle,
1374 int style);
1375
1378 GEOSContextHandle_t handle,
1380 enum GEOSMakeValidMethods method);
1381
1384 GEOSContextHandle_t handle,
1385 const GEOSGeometry* g);
1386
1389 GEOSContextHandle_t handle,
1390 const GEOSGeometry* g,
1391 const GEOSMakeValidParams* makeValidParams);
1392
1395 GEOSContextHandle_t handle,
1396 const GEOSGeometry* g,
1397 double tolerance);
1398
1399/* ========== Geometry info ========== */
1400
1402/* Return NULL on exception, result must be freed by caller. */
1403extern char GEOS_DLL *GEOSGeomType_r(
1404 GEOSContextHandle_t handle,
1405 const GEOSGeometry* g);
1406
1408extern int GEOS_DLL GEOSGeomTypeId_r(
1409 GEOSContextHandle_t handle,
1410 const GEOSGeometry* g);
1411
1413extern int GEOS_DLL GEOSGetSRID_r(
1414 GEOSContextHandle_t handle,
1415 const GEOSGeometry* g);
1416
1418extern void GEOS_DLL GEOSSetSRID_r(
1419 GEOSContextHandle_t handle,
1420 GEOSGeometry* g, int SRID);
1421
1423extern void GEOS_DLL *GEOSGeom_getUserData_r(
1424 GEOSContextHandle_t handle,
1425 const GEOSGeometry* g);
1426
1428extern void GEOS_DLL GEOSGeom_setUserData_r(
1429 GEOSContextHandle_t handle,
1430 GEOSGeometry* g,
1431 void* userData);
1432
1434extern int GEOS_DLL GEOSGetNumGeometries_r(
1435 GEOSContextHandle_t handle,
1436 const GEOSGeometry* g);
1437
1439extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN_r(
1440 GEOSContextHandle_t handle,
1441 const GEOSGeometry* g, int n);
1442
1444extern int GEOS_DLL GEOSNormalize_r(
1445 GEOSContextHandle_t handle,
1446 GEOSGeometry* g);
1447
1460
1463 GEOSContextHandle_t handle,
1464 const GEOSGeometry *g,
1465 double gridSize,
1466 int flags);
1467
1469extern double GEOS_DLL GEOSGeom_getPrecision_r(
1470 GEOSContextHandle_t handle,
1471 const GEOSGeometry *g);
1472
1474extern int GEOS_DLL GEOSGetNumInteriorRings_r(
1475 GEOSContextHandle_t handle,
1476 const GEOSGeometry* g);
1477
1479extern int GEOS_DLL GEOSGeomGetNumPoints_r(
1480 GEOSContextHandle_t handle,
1481 const GEOSGeometry* g);
1482
1484extern int GEOS_DLL GEOSGeomGetX_r(
1485 GEOSContextHandle_t handle,
1486 const GEOSGeometry *g,
1487 double *x);
1488
1490extern int GEOS_DLL GEOSGeomGetY_r(
1491 GEOSContextHandle_t handle,
1492 const GEOSGeometry *g,
1493 double *y);
1494
1496extern int GEOS_DLL GEOSGeomGetZ_r(
1497 GEOSContextHandle_t handle,
1498 const GEOSGeometry *g,
1499 double *z);
1500
1503 GEOSContextHandle_t handle,
1504 const GEOSGeometry* g, int n);
1505
1508 GEOSContextHandle_t handle,
1509 const GEOSGeometry* g);
1510
1512extern int GEOS_DLL GEOSGetNumCoordinates_r(
1513 GEOSContextHandle_t handle,
1514 const GEOSGeometry* g);
1515
1518 GEOSContextHandle_t handle,
1519 const GEOSGeometry* g);
1520
1522extern int GEOS_DLL GEOSGeom_getDimensions_r(
1523 GEOSContextHandle_t handle,
1524 const GEOSGeometry* g);
1525
1528 GEOSContextHandle_t handle,
1529 const GEOSGeometry* g);
1530
1532extern int GEOS_DLL GEOSGeom_getXMin_r(
1533 GEOSContextHandle_t handle,
1534 const GEOSGeometry* g,
1535 double* value);
1536
1538extern int GEOS_DLL GEOSGeom_getYMin_r(
1539 GEOSContextHandle_t handle,
1540 const GEOSGeometry* g,
1541 double* value);
1542
1544extern int GEOS_DLL GEOSGeom_getXMax_r(
1545 GEOSContextHandle_t handle,
1546 const GEOSGeometry* g,
1547 double* value);
1548
1550extern int GEOS_DLL GEOSGeom_getYMax_r(
1551 GEOSContextHandle_t handle,
1552 const GEOSGeometry* g,
1553 double* value);
1554
1556extern int GEOS_DLL GEOSGeom_getExtent_r(
1557 GEOSContextHandle_t handle,
1558 const GEOSGeometry* g,
1559 double* xmin,
1560 double* ymin,
1561 double* xmax,
1562 double* ymax);
1563
1566 GEOSContextHandle_t handle,
1567 const GEOSGeometry *g,
1568 int n);
1569
1572 GEOSContextHandle_t handle,
1573 const GEOSGeometry *g);
1574
1577 GEOSContextHandle_t handle,
1578 const GEOSGeometry *g);
1579
1580/* ========= Misc functions ========= */
1581
1583extern int GEOS_DLL GEOSArea_r(
1584 GEOSContextHandle_t handle,
1585 const GEOSGeometry* g,
1586 double *area);
1587
1589extern int GEOS_DLL GEOSLength_r(
1590 GEOSContextHandle_t handle,
1591 const GEOSGeometry* g,
1592 double *length);
1593
1595extern int GEOS_DLL GEOSDistance_r(
1596 GEOSContextHandle_t handle,
1597 const GEOSGeometry* g1,
1598 const GEOSGeometry* g2,
1599 double *dist);
1600
1602extern char GEOS_DLL GEOSDistanceWithin_r(
1603 GEOSContextHandle_t handle,
1604 const GEOSGeometry* g1,
1605 const GEOSGeometry* g2,
1606 double dist);
1607
1609extern int GEOS_DLL GEOSDistanceIndexed_r(
1610 GEOSContextHandle_t handle,
1611 const GEOSGeometry* g1,
1612 const GEOSGeometry* g2,
1613 double *dist);
1614
1616extern int GEOS_DLL GEOSHausdorffDistance_r(
1617 GEOSContextHandle_t handle,
1618 const GEOSGeometry *g1,
1619 const GEOSGeometry *g2,
1620 double *dist);
1621
1624 GEOSContextHandle_t handle,
1625 const GEOSGeometry *g1,
1626 const GEOSGeometry *g2,
1627 double densifyFrac, double *dist);
1628
1630extern int GEOS_DLL GEOSFrechetDistance_r(
1631 GEOSContextHandle_t handle,
1632 const GEOSGeometry *g1,
1633 const GEOSGeometry *g2,
1634 double *dist);
1635
1638 GEOSContextHandle_t handle,
1639 const GEOSGeometry *g1,
1640 const GEOSGeometry *g2,
1641 double densifyFrac,
1642 double *dist);
1643
1644
1646extern int GEOS_DLL GEOSHilbertCode_r(
1647 GEOSContextHandle_t handle,
1648 const GEOSGeometry *geom,
1649 const GEOSGeometry* extent,
1650 unsigned int level,
1651 unsigned int *code
1652);
1653
1655extern int GEOS_DLL GEOSGeomGetLength_r(
1656 GEOSContextHandle_t handle,
1657 const GEOSGeometry *g,
1658 double *length);
1659
1662 GEOSContextHandle_t handle,
1663 const GEOSGeometry* g1,
1664 const GEOSGeometry* g2);
1665
1668 GEOSContextHandle_t handle,
1669 const GEOSGeometry* g,
1670 GEOSTransformXYCallback callback,
1671 void* userdata);
1672
1673/* ========= Algorithms ========= */
1674
1676extern int GEOS_DLL GEOSOrientationIndex_r(
1677 GEOSContextHandle_t handle,
1678 double Ax, double Ay,
1679 double Bx, double By,
1680 double Px, double Py);
1681
1682
1683/* ========== Reader and Writer APIs ========== */
1684
1685#ifndef GEOSWKTReader
1686
1692typedef struct GEOSWKTReader_t GEOSWKTReader;
1693
1699typedef struct GEOSWKTWriter_t GEOSWKTWriter;
1700
1706typedef struct GEOSWKBReader_t GEOSWKBReader;
1707
1713typedef struct GEOSWKBWriter_t GEOSWKBWriter;
1714
1720typedef struct GEOSGeoJSONReader_t GEOSGeoJSONReader;
1721
1727typedef struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter;
1728
1729#endif
1730
1731/* ========== WKT Reader ========== */
1732
1735 GEOSContextHandle_t handle);
1736
1739 GEOSWKTReader* reader);
1740
1743 GEOSContextHandle_t handle,
1744 GEOSWKTReader* reader,
1745 const char *wkt);
1746
1749 GEOSContextHandle_t handle,
1750 GEOSWKTReader *reader,
1751 char doFix);
1752
1753/* ========== WKT Writer ========== */
1754
1757 GEOSContextHandle_t handle);
1758
1760extern void GEOS_DLL GEOSWKTWriter_destroy_r(
1761 GEOSContextHandle_t handle,
1762 GEOSWKTWriter* writer);
1763
1765extern char GEOS_DLL *GEOSWKTWriter_write_r(
1766 GEOSContextHandle_t handle,
1767 GEOSWKTWriter* writer,
1768 const GEOSGeometry* g);
1769
1771extern void GEOS_DLL GEOSWKTWriter_setTrim_r(
1772 GEOSContextHandle_t handle,
1773 GEOSWKTWriter *writer,
1774 char trim);
1775
1778 GEOSContextHandle_t handle,
1779 GEOSWKTWriter *writer,
1780 int precision);
1781
1784 GEOSContextHandle_t handle,
1785 GEOSWKTWriter *writer,
1786 int dim);
1787
1790 GEOSContextHandle_t handle,
1791 GEOSWKTWriter *writer);
1792
1794extern void GEOS_DLL GEOSWKTWriter_setOld3D_r(
1795 GEOSContextHandle_t handle,
1796 GEOSWKTWriter *writer,
1797 int useOld3D);
1798
1799/* ========== WKB Reader ========== */
1800
1803 GEOSContextHandle_t handle);
1804
1806extern void GEOS_DLL GEOSWKBReader_destroy_r(
1807 GEOSContextHandle_t handle,
1808 GEOSWKBReader* reader);
1809
1812 GEOSContextHandle_t handle,
1813 GEOSWKBReader *reader,
1814 char doFix);
1815
1818 GEOSContextHandle_t handle,
1819 GEOSWKBReader* reader,
1820 const unsigned char *wkb,
1821 size_t size);
1822
1825 GEOSContextHandle_t handle,
1826 GEOSWKBReader* reader,
1827 const unsigned char *hex,
1828 size_t size);
1829
1830
1831/* ========== WKB Writer ========== */
1832
1835 GEOSContextHandle_t handle);
1836
1838extern void GEOS_DLL GEOSWKBWriter_destroy_r(
1839 GEOSContextHandle_t handle,
1840 GEOSWKBWriter* writer);
1841
1843extern unsigned char GEOS_DLL *GEOSWKBWriter_write_r(
1844 GEOSContextHandle_t handle,
1845 GEOSWKBWriter* writer,
1846 const GEOSGeometry* g,
1847 size_t *size);
1848
1850extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX_r(
1851 GEOSContextHandle_t handle,
1852 GEOSWKBWriter* writer,
1853 const GEOSGeometry* g,
1854 size_t *size);
1855
1858 GEOSContextHandle_t handle,
1859 const GEOSWKBWriter* writer);
1860
1863 GEOSContextHandle_t handle,
1864 GEOSWKBWriter* writer, int newDimension);
1865
1868 GEOSContextHandle_t handle,
1869 const GEOSWKBWriter* writer);
1870
1872extern void GEOS_DLL GEOSWKBWriter_setByteOrder_r(
1873 GEOSContextHandle_t handle,
1874 GEOSWKBWriter* writer,
1875 int byteOrder);
1876
1878extern int GEOS_DLL GEOSWKBWriter_getFlavor_r(
1879 GEOSContextHandle_t handle,
1880 const GEOSWKBWriter* writer);
1881
1883extern void GEOS_DLL GEOSWKBWriter_setFlavor_r(
1884 GEOSContextHandle_t handle,
1885 GEOSWKBWriter* writer,
1886 int flavor);
1887
1890 GEOSContextHandle_t handle,
1891 const GEOSWKBWriter* writer);
1892
1895 GEOSContextHandle_t handle,
1896 GEOSWKBWriter* writer, const char writeSRID);
1897
1898/* ========== GeoJSON Reader ========== */
1899
1902 GEOSContextHandle_t handle);
1903
1906 GEOSGeoJSONReader* reader);
1907
1910 GEOSContextHandle_t handle,
1911 GEOSGeoJSONReader* reader,
1912 const char *geojson);
1913
1914/* ========== GeoJSON Writer ========== */
1915
1918 GEOSContextHandle_t handle);
1919
1922 GEOSGeoJSONWriter* writer);
1923
1926 GEOSContextHandle_t handle,
1927 GEOSGeoJSONWriter* writer,
1928 const GEOSGeometry* g,
1929 int indent);
1930
1932extern void GEOS_DLL GEOSFree_r(
1933 GEOSContextHandle_t handle,
1934 void *buffer);
1935
1942extern const char GEOS_DLL *GEOSversion(void);
1943
1944/*
1945* External code to GEOS can define GEOS_USE_ONLY_R_API
1946* to strip the non-reentrant API functions from this header,
1947* leaving only the "_r" compatible variants.
1948*/
1949#ifndef GEOS_USE_ONLY_R_API
1950
1951/* ========== Initialization, cleanup ================================= */
1957
1969extern void GEOS_DLL initGEOS(
1970 GEOSMessageHandler notice_function,
1971 GEOSMessageHandler error_function);
1972
1977extern void GEOS_DLL finishGEOS(void);
1978
1985extern void GEOS_DLL GEOSFree(void *buffer);
1986
1988
1989/* ========= Coordinate Sequence functions ========= */
1995
2002extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_create(unsigned int size, unsigned int dims);
2003
2012extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromBuffer(const double* buf, unsigned int size, int hasZ, int hasM);
2013
2023extern GEOSCoordSequence GEOS_DLL *GEOSCoordSeq_copyFromArrays(const double* x, const double* y, const double* z, const double* m, unsigned int size);
2024
2033extern int GEOS_DLL GEOSCoordSeq_copyToBuffer(const GEOSCoordSequence* s, double* buf, int hasZ, int hasM);
2034
2044extern int GEOS_DLL GEOSCoordSeq_copyToArrays(const GEOSCoordSequence* s, double* x, double* y, double* z, double* m);
2045
2052
2058
2067 unsigned int idx, double val);
2076 unsigned int idx, double val);
2085 unsigned int idx, double val);
2095 unsigned int idx, double x, double y);
2106 unsigned int idx, double x, double y, double z);
2116 unsigned int idx, unsigned int dim, double val);
2117
2125extern int GEOS_DLL GEOSCoordSeq_getX(const GEOSCoordSequence* s,
2126 unsigned int idx, double *val);
2127
2135extern int GEOS_DLL GEOSCoordSeq_getY(const GEOSCoordSequence* s,
2136 unsigned int idx, double *val);
2144extern int GEOS_DLL GEOSCoordSeq_getZ(const GEOSCoordSequence* s,
2145 unsigned int idx, double *val);
2154extern int GEOS_DLL GEOSCoordSeq_getXY(const GEOSCoordSequence* s,
2155 unsigned int idx, double *x, double *y);
2165extern int GEOS_DLL GEOSCoordSeq_getXYZ(const GEOSCoordSequence* s,
2166 unsigned int idx, double *x, double *y, double *z);
2175extern int GEOS_DLL GEOSCoordSeq_getOrdinate(const GEOSCoordSequence* s,
2176 unsigned int idx, unsigned int dim, double *val);
2177
2184extern int GEOS_DLL GEOSCoordSeq_getSize(
2185 const GEOSCoordSequence* s,
2186 unsigned int *size);
2187
2194extern int GEOS_DLL GEOSCoordSeq_getDimensions(
2195 const GEOSCoordSequence* s,
2196 unsigned int *dims);
2197
2206extern int GEOS_DLL GEOSCoordSeq_isCCW(
2207 const GEOSCoordSequence* s,
2208 char* is_ccw);
2209
2211
2212/* ========= Geometry Constructors ========= */
2218
2226
2234extern GEOSGeometry GEOS_DLL *GEOSGeom_createPointFromXY(double x, double y);
2235
2242
2250
2258
2265
2272
2286 GEOSGeometry* shell,
2287 GEOSGeometry** holes,
2288 unsigned int nholes);
2289
2303 int type,
2304 GEOSGeometry** geoms,
2305 unsigned int ngeoms);
2306
2314
2324 double xmin, double ymin,
2325 double xmax, double ymax);
2326
2333extern GEOSGeometry GEOS_DLL *GEOSGeom_clone(const GEOSGeometry* g);
2334
2339extern void GEOS_DLL GEOSGeom_destroy(GEOSGeometry* g);
2340
2342
2343/* ========== Geometry info ========== */
2348
2357extern char GEOS_DLL *GEOSGeomType(const GEOSGeometry* g);
2358
2364extern int GEOS_DLL GEOSGeomTypeId(const GEOSGeometry* g);
2365
2371extern int GEOS_DLL GEOSGetSRID(const GEOSGeometry* g);
2372
2381extern void GEOS_DLL *GEOSGeom_getUserData(const GEOSGeometry* g);
2382
2392extern int GEOS_DLL GEOSGetNumGeometries(const GEOSGeometry* g);
2393
2408extern const GEOSGeometry GEOS_DLL *GEOSGetGeometryN(
2409 const GEOSGeometry* g,
2410 int n);
2411
2419extern double GEOS_DLL GEOSGeom_getPrecision(const GEOSGeometry *g);
2420
2427extern int GEOS_DLL GEOSGetNumInteriorRings(const GEOSGeometry* g);
2428
2435extern int GEOS_DLL GEOSGeomGetNumPoints(const GEOSGeometry* g);
2436
2444extern int GEOS_DLL GEOSGeomGetX(const GEOSGeometry *g, double *x);
2445
2453extern int GEOS_DLL GEOSGeomGetY(const GEOSGeometry *g, double *y);
2454
2462extern int GEOS_DLL GEOSGeomGetZ(const GEOSGeometry *g, double *z);
2463
2472extern const GEOSGeometry GEOS_DLL *GEOSGetInteriorRingN(
2473 const GEOSGeometry* g,
2474 int n);
2475
2483extern const GEOSGeometry GEOS_DLL *GEOSGetExteriorRing(
2484 const GEOSGeometry* g);
2485
2492extern int GEOS_DLL GEOSGetNumCoordinates(
2493 const GEOSGeometry* g);
2494
2504 const GEOSGeometry* g);
2505
2517extern int GEOS_DLL GEOSGeom_getDimensions(
2518 const GEOSGeometry* g);
2519
2530 const GEOSGeometry* g);
2531
2538extern int GEOS_DLL GEOSGeom_getXMin(const GEOSGeometry* g, double* value);
2539
2546extern int GEOS_DLL GEOSGeom_getYMin(const GEOSGeometry* g, double* value);
2547
2554extern int GEOS_DLL GEOSGeom_getXMax(const GEOSGeometry* g, double* value);
2555
2562extern int GEOS_DLL GEOSGeom_getYMax(const GEOSGeometry* g, double* value);
2563
2575extern int GEOS_DLL GEOSGeom_getExtent(
2576 const GEOSGeometry* g,
2577 double* xmin,
2578 double* ymin,
2579 double* xmax,
2580 double* ymax);
2581
2590extern GEOSGeometry GEOS_DLL *GEOSGeomGetPointN(const GEOSGeometry *g, int n);
2591
2600
2609
2610
2618extern char GEOS_DLL GEOSisEmpty(const GEOSGeometry* g);
2619
2627extern char GEOS_DLL GEOSisRing(const GEOSGeometry* g);
2628
2634extern char GEOS_DLL GEOSHasZ(const GEOSGeometry* g);
2635
2643extern char GEOS_DLL GEOSisClosed(const GEOSGeometry *g);
2644
2646
2647/* ==================================================================================== */
2652
2658extern void GEOS_DLL GEOSSetSRID(GEOSGeometry* g, int SRID);
2659
2666extern void GEOS_DLL GEOSGeom_setUserData(GEOSGeometry* g, void* userData);
2667
2686extern int GEOS_DLL GEOSNormalize(GEOSGeometry* g);
2687
2689
2690/* ========== Validity checking ============================================================ */
2696
2703extern char GEOS_DLL GEOSisSimple(const GEOSGeometry* g);
2704
2717extern char GEOS_DLL GEOSisValid(const GEOSGeometry* g);
2718
2726extern char GEOS_DLL *GEOSisValidReason(const GEOSGeometry *g);
2727
2740extern char GEOS_DLL GEOSisValidDetail(
2741 const GEOSGeometry* g,
2742 int flags,
2743 char** reason,
2744 GEOSGeometry** location);
2745
2752 const GEOSGeometry* g);
2753
2766 const GEOSGeometry* g,
2767 const GEOSMakeValidParams *makeValidParams);
2768
2776
2783
2792 enum GEOSMakeValidMethods method);
2793
2804 int keepCollapsed);
2805
2823extern int GEOS_DLL GEOSMinimumClearance(const GEOSGeometry* g, double* d);
2824
2835
2852 const GEOSGeometry* g,
2853 double tolerance);
2854
2856
2857/* ========= Metric functions ================================================== */
2862
2869extern int GEOS_DLL GEOSArea(
2870 const GEOSGeometry* g,
2871 double *area);
2872
2879extern int GEOS_DLL GEOSLength(
2880 const GEOSGeometry* g,
2881 double *length);
2882
2891extern int GEOS_DLL GEOSGeomGetLength(
2892 const GEOSGeometry *g,
2893 double *length);
2894
2896
2897/* ========== Distance functions ================================================ */
2903
2911extern int GEOS_DLL GEOSDistance(
2912 const GEOSGeometry* g1,
2913 const GEOSGeometry* g2,
2914 double *dist);
2915
2924extern char GEOS_DLL GEOSDistanceWithin(
2925 const GEOSGeometry* g1,
2926 const GEOSGeometry* g2,
2927 double dist);
2928
2940extern int GEOS_DLL GEOSDistanceIndexed(
2941 const GEOSGeometry* g1,
2942 const GEOSGeometry* g2,
2943 double *dist);
2944
2955 const GEOSGeometry* g1,
2956 const GEOSGeometry* g2);
2957
2968extern int GEOS_DLL GEOSHausdorffDistance(
2969 const GEOSGeometry *g1,
2970 const GEOSGeometry *g2,
2971 double *dist);
2972
2987 const GEOSGeometry *g1,
2988 const GEOSGeometry *g2,
2989 double densifyFrac,
2990 double *dist);
2991
3003extern int GEOS_DLL GEOSFrechetDistance(
3004 const GEOSGeometry *g1,
3005 const GEOSGeometry *g2,
3006 double *dist);
3007
3022extern int GEOS_DLL GEOSFrechetDistanceDensify(
3023 const GEOSGeometry *g1,
3024 const GEOSGeometry *g2,
3025 double densifyFrac,
3026 double *dist);
3027
3029
3030/* ========== Linear referencing functions */
3036
3045extern double GEOS_DLL GEOSProject(const GEOSGeometry* line,
3046 const GEOSGeometry* point);
3047
3058extern GEOSGeometry GEOS_DLL *GEOSInterpolate(const GEOSGeometry* line,
3059 double d);
3060
3070extern double GEOS_DLL GEOSProjectNormalized(const GEOSGeometry* line,
3071 const GEOSGeometry* point);
3072
3082 const GEOSGeometry *line,
3083 double proportion);
3084
3086
3087/* ========== Overlay functions ========== */
3093
3103extern GEOSGeometry GEOS_DLL *GEOSIntersection(const GEOSGeometry* g1, const GEOSGeometry* g2);
3104
3117extern GEOSGeometry GEOS_DLL *GEOSIntersectionPrec(const GEOSGeometry* g1, const GEOSGeometry* g2, double gridSize);
3118
3129 const GEOSGeometry* ga,
3130 const GEOSGeometry* gb);
3131
3146 const GEOSGeometry* ga,
3147 const GEOSGeometry* gb,
3148 double gridSize);
3149
3161 const GEOSGeometry* ga,
3162 const GEOSGeometry* gb);
3163
3179 const GEOSGeometry* ga,
3180 const GEOSGeometry* gb,
3181 double gridSize);
3182
3192extern GEOSGeometry GEOS_DLL *GEOSUnion(
3193 const GEOSGeometry* ga,
3194 const GEOSGeometry* gb);
3195
3210 const GEOSGeometry* ga,
3211 const GEOSGeometry* gb,
3212 double gridSize);
3213
3223extern GEOSGeometry GEOS_DLL *GEOSUnaryUnion(const GEOSGeometry* g);
3224
3239 const GEOSGeometry* g,
3240 double gridSize);
3241
3251
3266 const GEOSGeometry* g,
3267 double xmin, double ymin,
3268 double xmax, double ymax);
3269
3287 const GEOSGeometry* g1,
3288 const GEOSGeometry* g2);
3289
3291
3292/* ========== Buffer related functions ========== */
3297
3308extern GEOSGeometry GEOS_DLL *GEOSBuffer(const GEOSGeometry* g,
3309 double width, int quadsegs);
3310
3318
3323extern void GEOS_DLL GEOSBufferParams_destroy(GEOSBufferParams* parms);
3324
3332 int style);
3333
3341 int joinStyle);
3342
3354 double mitreLimit);
3355
3366 int quadSegs);
3367
3378 int singleSided);
3379
3389 const GEOSGeometry* g,
3390 const GEOSBufferParams* p,
3391 double width);
3392
3405 const GEOSGeometry* g,
3406 double width,
3407 int quadsegs,
3408 int endCapStyle,
3409 int joinStyle,
3410 double mitreLimit);
3411
3433 double width, int quadsegs, int joinStyle, double mitreLimit);
3434
3436
3437/* ========== Construction Operations ========== */
3442
3449extern GEOSGeometry GEOS_DLL *GEOSEnvelope(const GEOSGeometry* g);
3450
3463extern GEOSGeometry GEOS_DLL *GEOSBoundary(const GEOSGeometry* g);
3464
3473extern GEOSGeometry GEOS_DLL *GEOSConvexHull(const GEOSGeometry* g);
3474
3496 const GEOSGeometry* g,
3497 double ratio,
3498 unsigned int allowHoles);
3499
3500
3519 const GEOSGeometry* g,
3520 unsigned int isOuter,
3521 double vertexNumFraction);
3522
3523
3533
3552 const GEOSGeometry* g,
3553 unsigned int isOuter,
3554 unsigned int parameterMode,
3555 double parameter);
3556
3591 const GEOSGeometry* g,
3592 double lengthRatio,
3593 unsigned int isTight,
3594 unsigned int isHolesAllowed);
3595
3608
3632 const GEOSGeometry* g,
3633 double tolerance);
3634
3658 const GEOSGeometry* obstacles,
3659 const GEOSGeometry* boundary,
3660 double tolerance);
3661
3673extern GEOSGeometry GEOS_DLL *GEOSMinimumWidth(const GEOSGeometry* g);
3674
3675
3684
3692extern GEOSGeometry GEOS_DLL *GEOSGetCentroid(const GEOSGeometry* g);
3693
3705 const GEOSGeometry* g,
3706 double* radius,
3707 GEOSGeometry** center);
3708
3721 const GEOSGeometry *g,
3722 double tolerance,
3723 int onlyEdges);
3724
3735 const GEOSGeometry *g);
3736
3752 const GEOSGeometry *g,
3753 const GEOSGeometry *env,
3754 double tolerance,
3755 int onlyEdges);
3756
3758
3759/* ============================================================== */
3764
3773extern GEOSGeometry GEOS_DLL *GEOSNode(const GEOSGeometry* g);
3774
3816 const GEOSGeometry * const geoms[],
3817 unsigned int ngeoms);
3818
3830 const GEOSGeometry * const geoms[],
3831 unsigned int ngeoms);
3832
3845 const GEOSGeometry * const geoms[],
3846 unsigned int ngeoms);
3847
3861 const GEOSGeometry* input,
3862 GEOSGeometry** cuts,
3863 GEOSGeometry** dangles,
3864 GEOSGeometry** invalid);
3865
3875extern GEOSGeometry GEOS_DLL *GEOSBuildArea(const GEOSGeometry* g);
3876
3878
3879/* ============================================================== */
3884
3896extern GEOSGeometry GEOS_DLL *GEOSDensify(
3897 const GEOSGeometry* g,
3898 double tolerance);
3899
3908extern GEOSGeometry GEOS_DLL *GEOSLineMerge(const GEOSGeometry* g);
3909
3920
3929extern GEOSGeometry GEOS_DLL *GEOSReverse(const GEOSGeometry* g);
3930
3944 const GEOSGeometry* g,
3945 double tolerance);
3946
3962 const GEOSGeometry* g,
3963 double tolerance);
3964
3974 const GEOSGeometry* g);
3975
3989extern int GEOS_DLL GEOSHilbertCode(
3990 const GEOSGeometry *geom,
3991 const GEOSGeometry* extent,
3992 unsigned int level,
3993 unsigned int *code
3994);
3995
4009 const GEOSGeometry* g,
4010 GEOSTransformXYCallback callback,
4011 void* userdata);
4012
4021extern GEOSGeometry GEOS_DLL *GEOSSnap(
4022 const GEOSGeometry* input,
4023 const GEOSGeometry* snap_target,
4024 double tolerance);
4025
4054 const GEOSGeometry *g,
4055 double gridSize,
4056 int flags);
4057
4059
4060/* ============================================================== */
4065
4073extern char GEOS_DLL GEOSDisjoint(const GEOSGeometry* g1, const GEOSGeometry* g2);
4074
4083extern char GEOS_DLL GEOSTouches(const GEOSGeometry* g1, const GEOSGeometry* g2);
4084
4092extern char GEOS_DLL GEOSIntersects(const GEOSGeometry* g1, const GEOSGeometry* g2);
4093
4102extern char GEOS_DLL GEOSCrosses(const GEOSGeometry* g1, const GEOSGeometry* g2);
4103
4112extern char GEOS_DLL GEOSWithin(const GEOSGeometry* g1, const GEOSGeometry* g2);
4113
4121extern char GEOS_DLL GEOSContains(const GEOSGeometry* g1, const GEOSGeometry* g2);
4122
4131extern char GEOS_DLL GEOSOverlaps(const GEOSGeometry* g1, const GEOSGeometry* g2);
4132
4140extern char GEOS_DLL GEOSEquals(const GEOSGeometry* g1, const GEOSGeometry* g2);
4141
4150extern char GEOS_DLL GEOSCovers(const GEOSGeometry* g1, const GEOSGeometry* g2);
4151
4160extern char GEOS_DLL GEOSCoveredBy(const GEOSGeometry* g1, const GEOSGeometry* g2);
4161
4176extern char GEOS_DLL GEOSEqualsExact(
4177 const GEOSGeometry* g1,
4178 const GEOSGeometry* g2,
4179 double tolerance);
4180
4193extern char GEOS_DLL GEOSRelatePattern(
4194 const GEOSGeometry* g1,
4195 const GEOSGeometry* g2,
4196 const char *pat);
4197
4206extern char GEOS_DLL *GEOSRelate(
4207 const GEOSGeometry* g1,
4208 const GEOSGeometry* g2);
4209
4217extern char GEOS_DLL GEOSRelatePatternMatch(
4218 const char *mat,
4219 const char *pat);
4220
4232extern char GEOS_DLL *GEOSRelateBoundaryNodeRule(
4233 const GEOSGeometry* g1,
4234 const GEOSGeometry* g2,
4235 int bnr);
4236
4238
4239/* ========== Prepared Geometry Binary predicates ========== */
4240
4252
4264extern const GEOSPreparedGeometry GEOS_DLL *GEOSPrepare(const GEOSGeometry* g);
4265
4272extern void GEOS_DLL GEOSPreparedGeom_destroy(const GEOSPreparedGeometry* g);
4273
4282extern char GEOS_DLL GEOSPreparedContains(
4283 const GEOSPreparedGeometry* pg1,
4284 const GEOSGeometry* g2);
4285
4294extern char GEOS_DLL GEOSPreparedContainsProperly(
4295 const GEOSPreparedGeometry* pg1,
4296 const GEOSGeometry* g2);
4297
4306extern char GEOS_DLL GEOSPreparedCoveredBy(
4307 const GEOSPreparedGeometry* pg1,
4308 const GEOSGeometry* g2);
4309
4318extern char GEOS_DLL GEOSPreparedCovers(
4319 const GEOSPreparedGeometry* pg1,
4320 const GEOSGeometry* g2);
4321
4330extern char GEOS_DLL GEOSPreparedCrosses(
4331 const GEOSPreparedGeometry* pg1,
4332 const GEOSGeometry* g2);
4333
4342extern char GEOS_DLL GEOSPreparedDisjoint(
4343 const GEOSPreparedGeometry* pg1,
4344 const GEOSGeometry* g2);
4345
4354extern char GEOS_DLL GEOSPreparedIntersects(
4355 const GEOSPreparedGeometry* pg1,
4356 const GEOSGeometry* g2);
4357
4366extern char GEOS_DLL GEOSPreparedOverlaps(
4367 const GEOSPreparedGeometry* pg1,
4368 const GEOSGeometry* g2);
4369
4378extern char GEOS_DLL GEOSPreparedTouches(
4379 const GEOSPreparedGeometry* pg1,
4380 const GEOSGeometry* g2);
4381
4390extern char GEOS_DLL GEOSPreparedWithin(
4391 const GEOSPreparedGeometry* pg1,
4392 const GEOSGeometry* g2);
4393
4405 const GEOSPreparedGeometry* pg1,
4406 const GEOSGeometry* g2);
4407
4419extern int GEOS_DLL GEOSPreparedDistance(
4420 const GEOSPreparedGeometry* pg1,
4421 const GEOSGeometry* g2,
4422 double *dist);
4423
4436extern char GEOS_DLL GEOSPreparedDistanceWithin(
4437 const GEOSPreparedGeometry* pg1,
4438 const GEOSGeometry* g2,
4439 double dist);
4440
4442
4443/* ========== STRtree functions ========== */
4449
4460extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);
4461
4472extern void GEOS_DLL GEOSSTRtree_insert(
4473 GEOSSTRtree *tree,
4474 const GEOSGeometry *g,
4475 void *item);
4476
4487extern void GEOS_DLL GEOSSTRtree_query(
4488 GEOSSTRtree *tree,
4489 const GEOSGeometry *g,
4490 GEOSQueryCallback callback,
4491 void *userdata);
4492
4503extern const GEOSGeometry GEOS_DLL *GEOSSTRtree_nearest(
4504 GEOSSTRtree *tree,
4505 const GEOSGeometry* geom);
4506
4523extern const void GEOS_DLL *GEOSSTRtree_nearest_generic(
4524 GEOSSTRtree *tree,
4525 const void* item,
4526 const GEOSGeometry* itemEnvelope,
4527 GEOSDistanceCallback distancefn,
4528 void* userdata);
4529
4537extern void GEOS_DLL GEOSSTRtree_iterate(
4538 GEOSSTRtree *tree,
4539 GEOSQueryCallback callback,
4540 void *userdata);
4541
4552extern char GEOS_DLL GEOSSTRtree_remove(
4553 GEOSSTRtree *tree,
4554 const GEOSGeometry *g,
4555 void *item);
4556
4563extern void GEOS_DLL GEOSSTRtree_destroy(GEOSSTRtree *tree);
4564
4566
4567/* ========== Algorithms ====================================================== */
4572
4589extern int GEOS_DLL GEOSSegmentIntersection(
4590 double ax0, double ay0,
4591 double ax1, double ay1,
4592 double bx0, double by0,
4593 double bx1, double by1,
4594 double* cx, double* cy);
4595
4609extern int GEOS_DLL GEOSOrientationIndex(
4610 double Ax, double Ay,
4611 double Bx, double By,
4612 double Px, double Py);
4613
4615
4616/* ========= Reader and Writer APIs ========= */
4617
4622/* ========= WKT Reader ========= */
4623
4629
4634extern void GEOS_DLL GEOSWKTReader_destroy(GEOSWKTReader* reader);
4635
4644 GEOSWKTReader* reader,
4645 const char *wkt);
4646
4654 GEOSWKTReader *reader,
4655 char doFix);
4656
4657/* ========= WKT Writer ========= */
4658
4664
4669extern void GEOS_DLL GEOSWKTWriter_destroy(
4670 GEOSWKTWriter* writer);
4671
4680extern char GEOS_DLL *GEOSWKTWriter_write(
4681 GEOSWKTWriter* writer,
4682 const GEOSGeometry* g);
4683
4692extern void GEOS_DLL GEOSWKTWriter_setTrim(
4693 GEOSWKTWriter *writer,
4694 char trim);
4695
4703 GEOSWKTWriter *writer,
4704 int precision);
4705
4713 GEOSWKTWriter *writer,
4714 int dim);
4715
4722
4730extern void GEOS_DLL GEOSWKTWriter_setOld3D(
4731 GEOSWKTWriter *writer,
4732 int useOld3D);
4734
4735/* ============================================================================== */
4740
4741/* ========== WKB Reader ========== */
4747
4752extern void GEOS_DLL GEOSWKBReader_destroy(
4753 GEOSWKBReader* reader);
4754
4762 GEOSWKBReader *reader,
4763 char doFix);
4764
4773 GEOSWKBReader* reader,
4774 const unsigned char *wkb,
4775 size_t size);
4776
4785 GEOSWKBReader* reader,
4786 const unsigned char *hex,
4787 size_t size);
4788
4789/* ========== WKB Writer ========== */
4790
4796
4801extern void GEOS_DLL GEOSWKBWriter_destroy(GEOSWKBWriter* writer);
4802
4811extern unsigned char GEOS_DLL *GEOSWKBWriter_write(
4812 GEOSWKBWriter* writer,
4813 const GEOSGeometry* g,
4814 size_t *size);
4815
4824extern unsigned char GEOS_DLL *GEOSWKBWriter_writeHEX(
4825 GEOSWKBWriter* writer,
4826 const GEOSGeometry* g,
4827 size_t *size);
4828
4837 const GEOSWKBWriter* writer);
4838
4846 GEOSWKBWriter* writer,
4847 int newDimension);
4848
4857extern int GEOS_DLL GEOSWKBWriter_getByteOrder(
4858 const GEOSWKBWriter* writer);
4859
4866extern void GEOS_DLL GEOSWKBWriter_setByteOrder(
4867 GEOSWKBWriter* writer,
4868 int byteOrder);
4869
4882extern int GEOS_DLL GEOSWKBWriter_getFlavor(
4883 const GEOSWKBWriter* writer);
4884
4891extern void GEOS_DLL GEOSWKBWriter_setFlavor(
4892 GEOSWKBWriter* writer,
4893 int flavor);
4894
4899extern char GEOS_DLL GEOSWKBWriter_getIncludeSRID(
4900 const GEOSWKBWriter* writer);
4901
4908extern void GEOS_DLL GEOSWKBWriter_setIncludeSRID(
4909 GEOSWKBWriter* writer,
4910 const char writeSRID);
4911
4913
4914/* ============================================================================= */
4919/* ========= GeoJSON Reader ========= */
4920
4926
4931extern void GEOS_DLL GEOSGeoJSONReader_destroy(GEOSGeoJSONReader* reader);
4932
4942 GEOSGeoJSONReader* reader,
4943 const char *geojson);
4944
4945/* ========= GeoJSON Writer ========= */
4946
4952
4957extern void GEOS_DLL GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter* writer);
4958
4968 GEOSGeoJSONWriter* writer,
4969 const GEOSGeometry* g,
4970 int indent);
4971
4973
4974#endif /* #ifndef GEOS_USE_ONLY_R_API */
4975
4976/* ====================================================================== */
4977/* DEPRECATIONS */
4978/* ====================================================================== */
4979
4985
4990 const GEOSGeometry* g,
4991 double width, int quadsegs,
4992 int joinStyle, double mitreLimit,
4993 int leftSide);
4994
4999 GEOSContextHandle_t handle,
5000 const GEOSGeometry* g,
5001 double width, int quadsegs,
5002 int joinStyle, double mitreLimit,
5003 int leftSide);
5004
5010 GEOSMessageHandler notice_function,
5011 GEOSMessageHandler error_function);
5012
5016extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
5017
5022 GEOSContextHandle_t handle,
5023 const char *wkt);
5024
5028extern char GEOS_DLL *GEOSGeomToWKT_r(
5029 GEOSContextHandle_t handle,
5030 const GEOSGeometry* g);
5031
5035extern int GEOS_DLL GEOS_getWKBOutputDims_r(
5036 GEOSContextHandle_t handle);
5037
5041extern int GEOS_DLL GEOS_setWKBOutputDims_r(
5042 GEOSContextHandle_t handle,
5043 int newDims);
5044
5048extern int GEOS_DLL GEOS_getWKBByteOrder_r(
5049 GEOSContextHandle_t handle);
5050
5054extern int GEOS_DLL GEOS_setWKBByteOrder_r(
5055 GEOSContextHandle_t handle,
5056 int byteOrder);
5057
5062 GEOSContextHandle_t handle,
5063 const unsigned char *wkb,
5064 size_t size);
5065
5069extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf_r(
5070 GEOSContextHandle_t handle,
5071 const GEOSGeometry* g,
5072 size_t *size);
5073
5078 GEOSContextHandle_t handle,
5079 const unsigned char *hex,
5080 size_t size);
5081
5085extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf_r(
5086 GEOSContextHandle_t handle,
5087 const GEOSGeometry* g,
5088 size_t *size);
5089
5093extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKT(const char *wkt);
5094
5098extern char GEOS_DLL *GEOSGeomToWKT(const GEOSGeometry* g);
5099
5103extern int GEOS_DLL GEOS_getWKBOutputDims(void);
5104
5108extern int GEOS_DLL GEOS_setWKBOutputDims(int newDims);
5109
5113extern int GEOS_DLL GEOS_getWKBByteOrder(void);
5114
5118extern int GEOS_DLL GEOS_setWKBByteOrder(int byteOrder);
5119
5123extern GEOSGeometry GEOS_DLL *GEOSGeomFromWKB_buf(const unsigned char *wkb, size_t size);
5124
5128extern unsigned char GEOS_DLL *GEOSGeomToWKB_buf(const GEOSGeometry* g, size_t *size);
5129
5133extern GEOSGeometry GEOS_DLL *GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size);
5134
5138extern unsigned char GEOS_DLL *GEOSGeomToHEX_buf(const GEOSGeometry* g, size_t *size);
5139
5144
5149 GEOSContextHandle_t handle,
5150 const GEOSGeometry* g);
5151
5153
5154/* ====================================================================== */
5155/* END DEPRECATIONS */
5156/* ====================================================================== */
5157
5158
5159#ifdef __cplusplus
5160} // extern "C"
5161#endif
5162
5163#endif /* #ifndef GEOS_C_H_INCLUDED */
int GEOS_setWKBOutputDims_r(GEOSContextHandle_t handle, int newDims)
GEOSGeometry * GEOSMaximumInscribedCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
int GEOSBufferParams_setEndCapStyle_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int style)
char GEOSisEmpty_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSisSimple(const GEOSGeometry *g)
void GEOSWKBWriter_setByteOrder(GEOSWKBWriter *writer, int byteOrder)
GEOSGeometry * GEOSIntersectionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
const GEOSCoordSequence * GEOSGeom_getCoordSeq(const GEOSGeometry *g)
GEOSGeometry * GEOSVoronoiDiagram_r(GEOSContextHandle_t extHandle, const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int onlyEdges)
int GEOSCoordSeq_setZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
void GEOSGeom_setUserData_r(GEOSContextHandle_t handle, GEOSGeometry *g, void *userData)
GEOSGeometry * GEOSGeom_createEmptyPoint(void)
GEOSGeometry * GEOSReverse_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOS_getWKBOutputDims_r(GEOSContextHandle_t handle)
GEOSGeometry * GEOSPolygonHullSimplify(const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
char GEOSisRing_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSGetCentroid(const GEOSGeometry *g)
void GEOSBufferParams_destroy_r(GEOSContextHandle_t handle, GEOSBufferParams *parms)
GEOSGeometry * GEOSMinimumRotatedRectangle_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_create(unsigned int size, unsigned int dims)
char GEOSPreparedDistanceWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double dist)
GEOSGeometry * GEOSWKBReader_read_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
char * GEOSGeomToWKT_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSBufferWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSBufferParams *p, double width)
int GEOSBufferParams_setQuadrantSegments_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int quadSegs)
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)
GEOSGeometry * GEOSDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance, int onlyEdges)
void * GEOSGeom_getUserData_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSGeoJSONReader_t GEOSGeoJSONReader
Definition: geos_c.h:1720
int GEOS_getWKBByteOrder(void)
void GEOSWKBReader_destroy(GEOSWKBReader *reader)
char GEOSPreparedContainsProperly(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
void GEOSSTRtree_iterate_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, GEOSQueryCallback callback, void *userdata)
GEOSGeoJSONWriter * GEOSGeoJSONWriter_create_r(GEOSContextHandle_t handle)
int GEOSDistanceIndexed(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
int GEOSGeom_getDimensions_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSCoordSeq_getZ(const GEOSCoordSequence *s, unsigned int idx, double *val)
const GEOSGeometry * GEOSSTRtree_nearest_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *geom)
void GEOSWKTWriter_setOld3D_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int useOld3D)
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:271
GEOSGeometry * GEOSPolygonize_valid(const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSWKTReader * GEOSWKTReader_create(void)
struct GEOSWKBReader_t GEOSWKBReader
Definition: geos_c.h:1706
void GEOSGeom_destroy(GEOSGeometry *g)
int GEOS_setWKBByteOrder_r(GEOSContextHandle_t handle, int byteOrder)
GEOSGeometry * GEOSClipByRect(const GEOSGeometry *g, double xmin, double ymin, double xmax, double ymax)
int GEOSDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
char GEOSTouches(const GEOSGeometry *g1, const GEOSGeometry *g2)
struct GEOSCoordSeq_t GEOSCoordSequence
Definition: geos_c.h:154
GEOSGeometry * GEOSGeomGetStartPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSSTRtree_destroy(GEOSSTRtree *tree)
void GEOSBufferParams_destroy(GEOSBufferParams *parms)
int GEOSCoordSeq_setXY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y)
GEOSGeomTypes
Definition: geos_c.h:197
@ GEOS_MULTILINESTRING
Definition: geos_c.h:209
@ GEOS_GEOMETRYCOLLECTION
Definition: geos_c.h:213
@ GEOS_POINT
Definition: geos_c.h:199
@ GEOS_MULTIPOLYGON
Definition: geos_c.h:211
@ GEOS_LINEARRING
Definition: geos_c.h:203
@ GEOS_POLYGON
Definition: geos_c.h:205
@ GEOS_MULTIPOINT
Definition: geos_c.h:207
@ GEOS_LINESTRING
Definition: geos_c.h:201
GEOSGeometry * GEOSIntersectionPrec(const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
int GEOSGetNumInteriorRings(const GEOSGeometry *g)
char GEOSSTRtree_remove_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
void GEOSSTRtree_query_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, GEOSQueryCallback callback, void *userdata)
GEOSGeometry * GEOSGeom_setPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize, int flags)
char GEOSEqualsExact(const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSMessageHandler_r GEOSContext_setNoticeMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r nf, void *userData)
int GEOSCoordSeq_getOrdinate(const GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double *val)
void GEOSWKBReader_destroy_r(GEOSContextHandle_t handle, GEOSWKBReader *reader)
GEOSGeometry * GEOSBoundary(const GEOSGeometry *g)
GEOSGeometry * GEOSUnaryUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSDistanceIndexed_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
void GEOSWKTReader_destroy(GEOSWKTReader *reader)
GEOSGeometry * GEOSMinimumWidth(const GEOSGeometry *g)
char * GEOSWKTWriter_write(GEOSWKTWriter *writer, const GEOSGeometry *g)
GEOSGeometry * GEOSTopologyPreserveSimplify(const GEOSGeometry *g, double tolerance)
void(* GEOSQueryCallback)(void *item, void *userdata)
Definition: geos_c.h:252
int GEOSCoordSeq_getSize_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *size)
GEOSGeometry * GEOSGeomFromWKT(const char *wkt)
GEOSGeometry * GEOSWKBReader_read(GEOSWKBReader *reader, const unsigned char *wkb, size_t size)
char GEOSContains_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
double GEOSProject_r(GEOSContextHandle_t handle, const GEOSGeometry *line, const GEOSGeometry *point)
void GEOSGeom_destroy_r(GEOSContextHandle_t handle, GEOSGeometry *g)
GEOSGeometry * GEOSTopologyPreserveSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSSingleSidedBuffer_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOSContextHandle_t GEOS_init_r(void)
struct GEOSGeom_t GEOSGeometry
Definition: geos_c.h:140
GEOSGeometry * GEOSGeom_createRectangle(double xmin, double ymin, double xmax, double ymax)
GEOSGeometry * GEOSGeom_setPrecision(const GEOSGeometry *g, double gridSize, int flags)
const void * GEOSSTRtree_nearest_generic_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
int GEOSGeomTypeId(const GEOSGeometry *g)
GEOSGeometry * GEOSPolygonize_full_r(GEOSContextHandle_t handle, const GEOSGeometry *input, GEOSGeometry **cuts, GEOSGeometry **dangles, GEOSGeometry **invalidRings)
char GEOSCoveredBy_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGetNumCoordinates_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKTWriter_destroy(GEOSWKTWriter *writer)
int GEOSCoordSeq_getDimensions_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int *dims)
GEOSGeometry * GEOSGeom_createEmptyCollection_r(GEOSContextHandle_t handle, int type)
void GEOSWKBWriter_setOutputDimension(GEOSWKBWriter *writer, int newDimension)
GEOSGeometry * GEOSEnvelope(const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createPoint_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSWKBFlavors
Definition: geos_c.h:238
@ GEOS_WKB_ISO
Definition: geos_c.h:242
@ GEOS_WKB_EXTENDED
Definition: geos_c.h:240
GEOSGeometry * GEOSDensify(const GEOSGeometry *g, double tolerance)
GEOSGeometry * GEOSConstrainedDelaunayTriangulation_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKBReader_setFixStructure_r(GEOSContextHandle_t handle, GEOSWKBReader *reader, char doFix)
void GEOSFree_r(GEOSContextHandle_t handle, void *buffer)
GEOSGeometry * GEOSGeom_extractUniquePoints(const GEOSGeometry *g)
int GEOSHausdorffDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
int GEOSWKBWriter_getOutputDimension(const GEOSWKBWriter *writer)
void GEOSPreparedGeom_destroy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *g)
int GEOS_getWKBOutputDims(void)
GEOSGeometry * GEOSGeom_createPolygon_r(GEOSContextHandle_t handle, GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
GEOSGeometry * GEOSGeomGetPointN(const GEOSGeometry *g, int n)
const char * GEOSversion(void)
const GEOSGeometry * GEOSGetExteriorRing(const GEOSGeometry *g)
int GEOSMakeValidParams_setMethod(GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
void initGEOS(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOSGeometry * GEOSNode(const GEOSGeometry *g)
GEOSGeometry * GEOSOffsetCurve_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit)
GEOSSTRtree * GEOSSTRtree_create(size_t nodeCapacity)
GEOSGeometry * GEOSBoundary_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSFrechetDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
char GEOSPreparedIntersects_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_createLinearRing_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
char GEOSCrosses_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSEquals(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getYMin(const GEOSGeometry *g, double *value)
int GEOSGeomGetX(const GEOSGeometry *g, double *x)
void(* GEOSMessageHandler_r)(const char *message, void *userdata)
Definition: geos_c.h:118
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)
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)
GEOSGeometry * GEOSDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
GEOSGeometry * GEOSGeom_createLineString_r(GEOSContextHandle_t handle, GEOSCoordSequence *s)
GEOSGeometry * GEOSPolygonizer_getCutEdges_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
int GEOSMinimumClearance(const GEOSGeometry *g, double *d)
GEOSGeometry * GEOSDelaunayTriangulation(const GEOSGeometry *g, double tolerance, int onlyEdges)
char GEOSSTRtree_remove(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSGeometry * GEOSBufferWithParams(const GEOSGeometry *g, const GEOSBufferParams *p, double width)
GEOSMessageHandler GEOSContext_setNoticeHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler nf)
int GEOSCoordSeq_getXYZ(const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
char GEOSisValidDetail_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSMakeValidParams * GEOSMakeValidParams_create(void)
GEOSGeometry * GEOSGeom_createEmptyLineString_r(GEOSContextHandle_t handle)
char * GEOSGeomType_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSMinimumClearanceLine(const GEOSGeometry *g)
char * GEOSRelateBoundaryNodeRule_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, int bnr)
char GEOSDisjoint(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSCoordSeq_setX(GEOSCoordSequence *s, unsigned int idx, double val)
int GEOSPreparedDistance(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSGeometry * GEOSUnion_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSMakeValidParams * GEOSMakeValidParams_create_r(GEOSContextHandle_t extHandle)
char GEOSPreparedContains(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSPolygonHullSimplifyMode_r(GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
int GEOSCoordSeq_getXYZ_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y, double *z)
GEOSGeometry * GEOSGeomGetEndPoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKBWriter_setFlavor(GEOSWKBWriter *writer, int flavor)
GEOSContextHandle_t initGEOS_r(GEOSMessageHandler notice_function, GEOSMessageHandler error_function)
GEOSBufCapStyles
Definition: geos_c.h:575
@ GEOSBUF_CAP_SQUARE
Definition: geos_c.h:584
@ GEOSBUF_CAP_FLAT
Definition: geos_c.h:581
@ GEOSBUF_CAP_ROUND
Definition: geos_c.h:578
GEOSGeometry * GEOSConvexHull(const GEOSGeometry *g)
GEOSGeometry * GEOSCoverageUnion(const GEOSGeometry *g)
int GEOSCoordSeq_setY_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
int GEOSMakeValidParams_setMethod_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, enum GEOSMakeValidMethods method)
unsigned char * GEOSWKBWriter_write_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSSymDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
void GEOSPreparedGeom_destroy(const GEOSPreparedGeometry *g)
GEOSGeometry * GEOSNode_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSBufferParams_setJoinStyle(GEOSBufferParams *p, int joinStyle)
void GEOSCoordSeq_destroy(GEOSCoordSequence *s)
GEOSGeometry * GEOSGeomFromWKT_r(GEOSContextHandle_t handle, const char *wkt)
GEOSGeoJSONReader * GEOSGeoJSONReader_create(void)
int GEOSCoordSeq_setOrdinate(GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
int GEOSBufferParams_setMitreLimit_r(GEOSContextHandle_t handle, GEOSBufferParams *p, double mitreLimit)
char GEOSContains(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSBufferWithStyle(const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
GEOSGeometry * GEOSGeom_transformXY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
GEOSGeometry * GEOSBuildArea(const GEOSGeometry *g)
GEOSValidFlags
Definition: geos_c.h:1319
@ GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE
Definition: geos_c.h:1321
void GEOSWKBWriter_setByteOrder_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int byteOrder)
GEOSBufferParams * GEOSBufferParams_create(void)
struct GEOSWKBWriter_t GEOSWKBWriter
Definition: geos_c.h:1713
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)
char GEOSRelatePatternMatch_r(GEOSContextHandle_t handle, const char *mat, const char *pat)
struct GEOSWKTWriter_t GEOSWKTWriter
Definition: geos_c.h:1699
char GEOSPreparedWithin_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSSegmentIntersection(double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
int GEOSCoordSeq_setY(GEOSCoordSequence *s, unsigned int idx, double val)
void GEOSMakeValidParams_destroy_r(GEOSContextHandle_t handle, GEOSMakeValidParams *parms)
char GEOSPreparedCovers(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSMessageHandler_r GEOSContext_setErrorMessageHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler_r ef, void *userData)
GEOSGeometry * GEOSGeoJSONReader_readGeometry(GEOSGeoJSONReader *reader, const char *geojson)
GEOSGeometry * GEOSEnvelope_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSGeomFromHEX_buf(const unsigned char *hex, size_t size)
unsigned char * GEOSWKBWriter_writeHEX(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSInterpolate_r(GEOSContextHandle_t handle, const GEOSGeometry *line, double d)
GEOSGeometry * GEOSSharedPaths_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
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)
int GEOS_setWKBByteOrder(int byteOrder)
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)
char GEOSOverlaps(const GEOSGeometry *g1, const GEOSGeometry *g2)
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:222
@ GEOS_WKB_NDR
Definition: geos_c.h:226
@ GEOS_WKB_XDR
Definition: geos_c.h:224
void GEOSWKBWriter_setIncludeSRID_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, const char writeSRID)
GEOSGeometry * GEOSConstrainedDelaunayTriangulation(const GEOSGeometry *g)
int GEOSCoordSeq_copyToArrays(const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
GEOSGeometry * GEOSMinimumBoundingCircle(const GEOSGeometry *g, double *radius, GEOSGeometry **center)
GEOSGeometry * GEOSSymDifference(const GEOSGeometry *ga, const GEOSGeometry *gb)
char GEOSDistanceWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
GEOSGeometry * GEOSMakeValidWithParams_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSMakeValidParams *makeValidParams)
struct GEOSWKTReader_t GEOSWKTReader
Definition: geos_c.h:1692
GEOSCoordSequence * GEOSNearestPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSPolygonize(const GEOSGeometry *const geoms[], unsigned int ngeoms)
char GEOSPreparedCoveredBy_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_createPointFromXY(double x, double y)
GEOSGeometry * GEOSRemoveRepeatedPoints(const GEOSGeometry *g, double tolerance)
char GEOSRelatePattern(const GEOSGeometry *g1, const GEOSGeometry *g2, const char *pat)
GEOSGeometry * GEOSGeom_createPolygon(GEOSGeometry *shell, GEOSGeometry **holes, unsigned int nholes)
void GEOSWKBWriter_setOutputDimension_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer, int newDimension)
void GEOSSetSRID_r(GEOSContextHandle_t handle, GEOSGeometry *g, int SRID)
void GEOSWKTReader_destroy_r(GEOSContextHandle_t handle, GEOSWKTReader *reader)
void GEOSSTRtree_destroy_r(GEOSContextHandle_t handle, GEOSSTRtree *tree)
char * GEOSGeomType(const GEOSGeometry *g)
char GEOSPreparedDisjoint(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeom_createEmptyPoint_r(GEOSContextHandle_t handle)
GEOSRelateBoundaryNodeRules
Definition: geos_c.h:1276
@ GEOSRELATE_BNR_OGC
Definition: geos_c.h:1280
@ GEOSRELATE_BNR_MULTIVALENT_ENDPOINT
Definition: geos_c.h:1284
@ GEOSRELATE_BNR_ENDPOINT
Definition: geos_c.h:1282
@ GEOSRELATE_BNR_MOD2
Definition: geos_c.h:1278
@ GEOSRELATE_BNR_MONOVALENT_ENDPOINT
Definition: geos_c.h:1286
GEOSGeometry * GEOSSymDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
char * GEOSGeoJSONWriter_writeGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
int GEOSBufferParams_setSingleSided_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int singleSided)
char GEOSCrosses(const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeomGetStartPoint(const GEOSGeometry *g)
int GEOSMakeValidParams_setKeepCollapsed_r(GEOSContextHandle_t handle, GEOSMakeValidParams *p, int style)
int GEOSCoordSeq_setOrdinate_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, unsigned int dim, double val)
void GEOSSetSRID(GEOSGeometry *g, int SRID)
GEOSGeometry * GEOSGeoJSONReader_readGeometry_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader, const char *geojson)
char * GEOSGeoJSONWriter_writeGeometry(GEOSGeoJSONWriter *writer, const GEOSGeometry *g, int indent)
GEOSGeometry * GEOSGeom_createLineString(GEOSCoordSequence *s)
unsigned char * GEOSWKBWriter_write(GEOSWKBWriter *writer, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSMakeValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSVoronoiDiagram(const GEOSGeometry *g, const GEOSGeometry *env, double tolerance, int onlyEdges)
GEOSGeometry * GEOSReverse(const GEOSGeometry *g)
int GEOSWKBWriter_getFlavor(const GEOSWKBWriter *writer)
char GEOSIntersects_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char * GEOSRelate(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSCoordSeq_getSize(const GEOSCoordSequence *s, unsigned int *size)
GEOSPolygonHullParameterModes
Definition: geos_c.h:3527
@ GEOSHULL_PARAM_AREA_RATIO
Definition: geos_c.h:3531
@ GEOSHULL_PARAM_VERTEX_RATIO
Definition: geos_c.h:3529
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:591
@ GEOSBUF_JOIN_MITRE
Definition: geos_c.h:601
@ GEOSBUF_JOIN_ROUND
Definition: geos_c.h:596
@ GEOSBUF_JOIN_BEVEL
Definition: geos_c.h:606
GEOSGeometry * GEOSGeom_createEmptyCollection(int type)
GEOSGeometry * GEOSIntersection(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSWKBWriter_getByteOrder_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
int GEOSGeom_getXMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
void GEOSWKBWriter_destroy(GEOSWKBWriter *writer)
char GEOSEquals_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getXMin(const GEOSGeometry *g, double *value)
char GEOSCovers_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeomGetLength(const GEOSGeometry *g, double *length)
char GEOSOverlaps_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
const GEOSGeometry * GEOSSTRtree_nearest(GEOSSTRtree *tree, const GEOSGeometry *geom)
unsigned char * GEOSGeomToHEX_buf(const GEOSGeometry *g, size_t *size)
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer_r(GEOSContextHandle_t handle, const double *buf, unsigned int size, int hasZ, int hasM)
GEOSWKBReader * GEOSWKBReader_create_r(GEOSContextHandle_t handle)
char GEOSDisjoint_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
char GEOSPreparedContainsProperly_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSCoordSequence * GEOSPreparedNearestPoints_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSGeomFromHEX_buf_r(GEOSContextHandle_t handle, const unsigned char *hex, size_t size)
GEOSCoordSequence * GEOSCoordSeq_clone(const GEOSCoordSequence *s)
int GEOSGeom_getCoordinateDimension_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSNormalize(GEOSGeometry *g)
unsigned char * GEOSGeomToWKB_buf(const GEOSGeometry *g, size_t *size)
int GEOSGetNumGeometries_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSEqualsExact_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double tolerance)
GEOSGeometry * GEOSMinimumBoundingCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *radius, GEOSGeometry **center)
int GEOSWKTWriter_getOutputDimension(GEOSWKTWriter *writer)
char GEOSTouches_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSWKTReader_read(GEOSWKTReader *reader, const char *wkt)
GEOSGeometry * GEOSUnaryUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double gridSize)
int GEOSArea_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *area)
double GEOSGeom_getPrecision_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSWKTWriter_setOutputDimension(GEOSWKTWriter *writer, int dim)
GEOSCoordSequence * GEOSCoordSeq_copyFromArrays(const double *x, const double *y, const double *z, const double *m, unsigned int size)
GEOSWKBReader * GEOSWKBReader_create(void)
int GEOSCoordSeq_getY(const GEOSCoordSequence *s, unsigned int idx, double *val)
int GEOSCoordSeq_setZ(GEOSCoordSequence *s, unsigned int idx, double val)
int GEOSBufferParams_setMitreLimit(GEOSBufferParams *p, double mitreLimit)
int(* GEOSTransformXYCallback)(double *x, double *y, void *userdata)
Definition: geos_c.h:290
char GEOSRelatePatternMatch(const char *mat, const char *pat)
void GEOSWKTWriter_setOld3D(GEOSWKTWriter *writer, int useOld3D)
int GEOSGeom_getExtent(const GEOSGeometry *g, double *xmin, double *ymin, double *xmax, double *ymax)
int GEOSCoordSeq_copyToArrays_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, double *x, double *y, double *z, double *m)
char GEOSWithin(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSNormalize_r(GEOSContextHandle_t handle, GEOSGeometry *g)
void GEOSWKBWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKBWriter *writer)
int GEOSDistance(const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeometry * GEOSGeom_createEmptyPolygon(void)
void finishGEOS_r(GEOSContextHandle_t handle)
char GEOSisClosed(const GEOSGeometry *g)
GEOSGeometry * GEOSPolygonHullSimplifyMode(const GEOSGeometry *g, unsigned int isOuter, unsigned int parameterMode, double parameter)
int GEOSGeom_getCoordinateDimension(const GEOSGeometry *g)
int GEOSFrechetDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
GEOSGeometry * GEOSBufferWithStyle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double width, int quadsegs, int endCapStyle, int joinStyle, double mitreLimit)
char * GEOSRelate_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSConvexHull_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
struct GEOSGeoJSONWriter_t GEOSGeoJSONWriter
Definition: geos_c.h:1727
unsigned char * GEOSGeomToWKB_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
GEOSGeometry * GEOSSingleSidedBuffer(const GEOSGeometry *g, double width, int quadsegs, int joinStyle, double mitreLimit, int leftSide)
GEOSGeometry * GEOSUnionCascaded(const GEOSGeometry *g)
char GEOSPreparedTouches_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSMessageHandler GEOSContext_setErrorHandler_r(GEOSContextHandle_t extHandle, GEOSMessageHandler ef)
int GEOSCoordSeq_setXYZ(GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
int GEOSWKTWriter_getOutputDimension_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
double GEOSProjectNormalized(const GEOSGeometry *line, const GEOSGeometry *point)
int GEOSGeom_getYMin_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSGeom_clone_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
const GEOSPreparedGeometry * GEOSPrepare_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSMinimumClearanceLine_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSGeom_setUserData(GEOSGeometry *g, void *userData)
GEOSGeometry * GEOSGeom_createCollection(int type, GEOSGeometry **geoms, unsigned int ngeoms)
void GEOSGeoJSONReader_destroy(GEOSGeoJSONReader *reader)
char GEOSRelatePattern_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, const char *pat)
GEOSGeometry * GEOSGetCentroid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_copyFromBuffer(const double *buf, unsigned int size, int hasZ, int hasM)
int GEOSGeomGetNumPoints(const GEOSGeometry *g)
void GEOSGeoJSONWriter_destroy(GEOSGeoJSONWriter *writer)
GEOSGeometry * GEOSGeom_transformXY(const GEOSGeometry *g, GEOSTransformXYCallback callback, void *userdata)
double GEOSProjectNormalized_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *p)
char GEOSPreparedCrosses(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSGeomGetNumPoints_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char * GEOSisValidReason_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSPolygonize_valid_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngems)
char GEOSPreparedIntersects(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSWithin_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSConcaveHullOfPolygons_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double lengthRatio, unsigned int isTight, unsigned int isHolesAllowed)
int GEOS_setWKBOutputDims(int newDims)
const GEOSCoordSequence * GEOSGeom_getCoordSeq_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSPointOnSurface_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
int GEOSFrechetDistanceDensify(const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
struct GEOSBufParams_t GEOSBufferParams
Definition: geos_c.h:168
char GEOSPreparedCovers_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
GEOSGeometry * GEOSDifference_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2)
GEOSGeometry * GEOSLargestEmptyCircle_r(GEOSContextHandle_t handle, const GEOSGeometry *g, const GEOSGeometry *boundary, double tolerance)
int GEOSOrientationIndex_r(GEOSContextHandle_t handle, double Ax, double Ay, double Bx, double By, double Px, double Py)
GEOSGeometry * GEOSPolygonHullSimplify_r(GEOSContextHandle_t handle, const GEOSGeometry *g, unsigned int isOuter, double vertexNumFraction)
GEOSPrecisionRules
Definition: geos_c.h:1452
@ GEOS_PREC_NO_TOPO
Definition: geos_c.h:1456
@ GEOS_PREC_KEEP_COLLAPSED
Definition: geos_c.h:1458
@ GEOS_PREC_VALID_OUTPUT
Definition: geos_c.h:1454
int GEOSGetNumGeometries(const GEOSGeometry *g)
void * GEOSGeom_getUserData(const GEOSGeometry *g)
int GEOSGetNumCoordinates(const GEOSGeometry *g)
struct GEOSMakeValidParams_t GEOSMakeValidParams
Definition: geos_c.h:175
void GEOS_finish_r(GEOSContextHandle_t handle)
GEOSMakeValidMethods
Definition: geos_c.h:1349
@ GEOS_MAKE_VALID_LINEWORK
Definition: geos_c.h:1353
@ GEOS_MAKE_VALID_STRUCTURE
Definition: geos_c.h:1358
GEOSGeometry * GEOSWKBReader_readHEX(GEOSWKBReader *reader, const unsigned char *hex, size_t size)
int GEOSGeom_getYMax_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *value)
GEOSGeometry * GEOSGeom_createEmptyLineString(void)
const GEOSGeometry * GEOSGetInteriorRingN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
GEOSGeometry * GEOSInterpolateNormalized(const GEOSGeometry *line, double proportion)
GEOSGeometry * GEOSGeom_clone(const GEOSGeometry *g)
void GEOSGeoJSONWriter_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONWriter *writer)
int GEOSBufferParams_setSingleSided(GEOSBufferParams *p, int singleSided)
const GEOSGeometry * GEOSGetInteriorRingN(const GEOSGeometry *g, int n)
int GEOSGeomGetZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *z)
GEOSGeometry * GEOSUnionPrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
GEOSGeometry * GEOSGeom_createPointFromXY_r(GEOSContextHandle_t handle, double x, double y)
void GEOSWKTWriter_destroy_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer)
const GEOSPreparedGeometry * GEOSPrepare(const GEOSGeometry *g)
int GEOSWKBWriter_getByteOrder(const GEOSWKBWriter *writer)
char GEOSPreparedOverlaps(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSHasZ_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSGeometry * GEOSUnion(const GEOSGeometry *ga, const GEOSGeometry *gb)
void GEOSGeoJSONReader_destroy_r(GEOSContextHandle_t handle, GEOSGeoJSONReader *reader)
GEOSGeometry * GEOSSimplify(const GEOSGeometry *g, double tolerance)
void GEOSSTRtree_insert(GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
char GEOSisSimple_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
GEOSWKBWriter * GEOSWKBWriter_create_r(GEOSContextHandle_t handle)
char GEOSDistanceWithin(const GEOSGeometry *g1, const GEOSGeometry *g2, double dist)
int GEOSCoordSeq_setXYZ_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double x, double y, double z)
int GEOSGeomGetX_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *x)
unsigned char * GEOSGeomToHEX_buf_r(GEOSContextHandle_t handle, const GEOSGeometry *g, size_t *size)
char GEOSPreparedWithin(const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
char GEOSHasZ(const GEOSGeometry *g)
int GEOSWKBWriter_getOutputDimension_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
int GEOSBufferParams_setQuadrantSegments(GEOSBufferParams *p, int quadSegs)
void GEOS_interruptRequest(void)
char GEOSWKBWriter_getIncludeSRID_r(GEOSContextHandle_t handle, const GEOSWKBWriter *writer)
void finishGEOS(void)
int GEOSLength(const GEOSGeometry *g, double *length)
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(* GEOSMessageHandler)(const char *fmt,...)
Definition: geos_c.h:106
int GEOSBufferParams_setJoinStyle_r(GEOSContextHandle_t handle, GEOSBufferParams *p, int joinStyle)
char GEOSisRing(const GEOSGeometry *g)
int GEOSCoordSeq_getXY_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *x, double *y)
const GEOSGeometry * GEOSGetGeometryN_r(GEOSContextHandle_t handle, const GEOSGeometry *g, int n)
int GEOSCoordSeq_getX_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, unsigned int idx, double *val)
int GEOSPreparedDistance_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2, double *dist)
GEOSWKTWriter * GEOSWKTWriter_create(void)
int GEOSSegmentIntersection_r(GEOSContextHandle_t extHandle, double ax0, double ay0, double ax1, double ay1, double bx0, double by0, double bx1, double by1, double *cx, double *cy)
char GEOSisValid(const GEOSGeometry *g)
char GEOSCoveredBy(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSGeom_getDimensions(const GEOSGeometry *g)
char GEOSPreparedDisjoint_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSHausdorffDistance_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double *dist)
void GEOSWKBWriter_setIncludeSRID(GEOSWKBWriter *writer, const char writeSRID)
GEOSGeometry * GEOSBuildArea_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSisEmpty(const GEOSGeometry *g)
const GEOSGeometry * GEOSGetGeometryN(const GEOSGeometry *g, int n)
int GEOSMinimumClearance_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *distance)
int GEOSHilbertCode(const GEOSGeometry *geom, const GEOSGeometry *extent, unsigned int level, unsigned int *code)
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:306
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:161
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)
GEOSGeometry * GEOSDifferencePrec_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double gridSize)
char * GEOSGeomToWKT(const GEOSGeometry *g)
GEOSGeometry * GEOSSharedPaths(const GEOSGeometry *g1, const GEOSGeometry *g2)
int GEOSArea(const GEOSGeometry *g, double *area)
int GEOSGeomGetLength_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *length)
char GEOSPreparedCrosses_r(GEOSContextHandle_t handle, const GEOSPreparedGeometry *pg1, const GEOSGeometry *g2)
int GEOSGeomGetY_r(GEOSContextHandle_t handle, const GEOSGeometry *g, double *y)
int GEOSCoordSeq_isCCW_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s, char *is_ccw)
char GEOSisValid_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
void GEOSSTRtree_insert_r(GEOSContextHandle_t handle, GEOSSTRtree *tree, const GEOSGeometry *g, void *item)
GEOSCoordSequence * GEOSCoordSeq_copyFromArrays_r(GEOSContextHandle_t handle, const double *x, const double *y, const double *z, const double *m, unsigned int size)
int GEOSCoordSeq_setX_r(GEOSContextHandle_t handle, GEOSCoordSequence *s, unsigned int idx, double val)
GEOSGeometry * GEOSLineMerge_r(GEOSContextHandle_t handle, const GEOSGeometry *g)
char GEOSisValidDetail(const GEOSGeometry *g, int flags, char **reason, GEOSGeometry **location)
GEOSGeometry * GEOSPolygonize_r(GEOSContextHandle_t handle, const GEOSGeometry *const geoms[], unsigned int ngeoms)
GEOSGeometry * GEOSLineMerge(const GEOSGeometry *g)
GEOSGeometry * GEOSGeom_createLinearRing(GEOSCoordSequence *s)
void GEOSWKTWriter_setRoundingPrecision_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, int precision)
const void * GEOSSTRtree_nearest_generic(GEOSSTRtree *tree, const void *item, const GEOSGeometry *itemEnvelope, GEOSDistanceCallback distancefn, void *userdata)
int GEOSGeom_getYMax(const GEOSGeometry *g, double *value)
int GEOSHausdorffDistanceDensify_r(GEOSContextHandle_t handle, const GEOSGeometry *g1, const GEOSGeometry *g2, double densifyFrac, double *dist)
double GEOSProject(const GEOSGeometry *line, const GEOSGeometry *point)
char * GEOSWKTWriter_write_r(GEOSContextHandle_t handle, GEOSWKTWriter *writer, const GEOSGeometry *g)
GEOSCoordSequence * GEOSCoordSeq_clone_r(GEOSContextHandle_t handle, const GEOSCoordSequence *s)
GEOSGeometry * GEOSDifferencePrec(const GEOSGeometry *ga, const GEOSGeometry *gb, double gridSize)
GEOSGeometry * GEOSUnaryUnion(const GEOSGeometry *g)
struct GEOSPrepGeom_t GEOSPreparedGeometry
Definition: geos_c.h:147