SpatiaLite  5.1.0
gg_advanced.h
Go to the documentation of this file.
1 /*
2  gg_advanced.h -- Gaia common support for geometries: advanced
3 
4  version 5.1.0, 2023 August 4
5 
6  Author: Sandro Furieri a.furieri@lqt.it
7 
8  ------------------------------------------------------------------------------
9 
10  Version: MPL 1.1/GPL 2.0/LGPL 2.1
11 
12  The contents of this file are subject to the Mozilla Public License Version
13  1.1 (the "License"); you may not use this file except in compliance with
14  the License. You may obtain a copy of the License at
15  http://www.mozilla.org/MPL/
16 
17 Software distributed under the License is distributed on an "AS IS" basis,
18 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
19 for the specific language governing rights and limitations under the
20 License.
21 
22 The Original Code is the SpatiaLite library
23 
24 The Initial Developer of the Original Code is Alessandro Furieri
25 
26 Portions created by the Initial Developer are Copyright (C) 2008-2023
27 the Initial Developer. All Rights Reserved.
28 
29 Contributor(s):
30 
31 
32 Alternatively, the contents of this file may be used under the terms of
33 either the GNU General Public License Version 2 or later (the "GPL"), or
34 the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
35 in which case the provisions of the GPL or the LGPL are applicable instead
36 of those above. If you wish to allow use of your version of this file only
37 under the terms of either the GPL or the LGPL, and not to allow others to
38 use your version of this file under the terms of the MPL, indicate your
39 decision by deleting the provisions above and replace them with the notice
40 and other provisions required by the GPL or the LGPL. If you do not delete
41 the provisions above, a recipient may use your version of this file under
42 the terms of any one of the MPL, the GPL or the LGPL.
43 
44 */
45 
46 /*
47 
48 CREDITS:
49 
50 this module has been partly funded by:
51 Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale
52 (wrapping liblwgeom APIs)
53 
54 */
55 
56 
63 #ifndef _GG_ADVANCED_H
64 #ifndef DOXYGEN_SHOULD_SKIP_THIS
65 #define _GG_ADVANCED_H
66 #endif
67 
69 #define GAIA2GEOS_ALL 0
70 
72 #define GAIA2GEOS_ONLY_POINTS 1
73 
75 #define GAIA2GEOS_ONLY_LINESTRINGS 2
76 
78 #define GAIA2GEOS_ONLY_POLYGONS 3
79 
80 #ifdef __cplusplus
81 extern "C"
82 {
83 #endif
84 
85 #if defined(_WIN32) && !defined(__MINGW32__)
86 #include <spatialite/gaiaconfig-msvc.h>
87 #else
88 #include <spatialite/gaiaconfig.h>
89 #endif
90 
91 #ifndef OMIT_PROJ /* including PROJ */
92 
104  GAIAGEO_DECLARE void gaiaResetProjErrorMsg_r (const void *p_cache);
105 
118  GAIAGEO_DECLARE void gaiaSetProjErrorMsg_r (const void *p_cache,
119  const char *msg);
120 
135  GAIAGEO_DECLARE const char *gaiaGetProjErrorMsg_r (const void *p_cache);
136 
152  GAIAGEO_DECLARE const char *gaiaSetProjDatabasePath (const void *p_cache,
153  const char *path);
154 
169  GAIAGEO_DECLARE const char *gaiaGetProjDatabasePath (const void *p_cache);
170 
188  GAIAGEO_DECLARE char *gaiaGetProjString (const void *p_cache,
189  const char *auth_name,
190  int auth_srid);
191 
217  GAIAGEO_DECLARE char *gaiaGetProjWKT (const void *p_cache,
218  const char *auth_name,
219  int auth_srid, int style,
220  int indented, int indentation);
221 
235  GAIAGEO_DECLARE int gaiaGuessSridFromWKT (sqlite3 * db_handle,
236  const void *p_cache,
237  const char *wkt, int *srid);
238 
249  GAIAGEO_DECLARE double gaiaRadsToDegs (double rads);
250 
261  GAIAGEO_DECLARE double gaiaDegsToRads (double degs);
262 
285  const char *proj_from,
286  const char *proj_to);
287 
310  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r (const void *p_cache,
311  gaiaGeomCollPtr org,
312  const char *proj_from,
313  const char *proj_to);
314 
342  const char *proj_string_1,
343  const char *proj_string_2,
344  gaiaProjAreaPtr proj_bbox);
345 
373  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformEx_r (const void *p_cache,
374  gaiaGeomCollPtr org,
375  const char
376  *proj_string_1,
377  const char
378  *proj_string_2,
380  proj_bbox);
381 
406  const char *proj_from,
407  const char *proj_to);
408 
433  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXY_r (const void *p_cache,
434  gaiaGeomCollPtr org,
435  const char *proj_from,
436  const char *proj_to);
437 
463  const char *proj_from,
464  const char *proj_to);
465 
491  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXYZ_r (const void *p_cache,
492  gaiaGeomCollPtr org,
493  const char *proj_from,
494  const char *proj_to);
495 
496 
497 #endif /* end including PROJ */
498 
499 #ifndef OMIT_GEOS /* including GEOS */
500 
512  GAIAGEO_DECLARE void gaiaResetGeosMsg (void);
513 
527  GAIAGEO_DECLARE void gaiaResetGeosMsg_r (const void *p_cache);
528 
544  GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg (void);
545 
563  GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg_r (const void *p_cache);
564 
580  GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg (void);
581 
599  GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg_r (const void *p_cache);
600 
615  GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg (void);
616 
633  GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg_r (const void *p_cache);
634 
651 
670  *p_cache);
671 
685  GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg);
686 
701  GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r (const void *p_cache,
702  const char *msg);
703 
717  GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg);
718 
733  GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r (const void *p_cache,
734  const char *msg);
735 
749  GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg);
750 
765  GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r (const void *p_cache,
766  const char *msg);
767 
783  GAIAGEO_DECLARE void *gaiaToGeos (const gaiaGeomCollPtr gaia);
784 
801  GAIAGEO_DECLARE void *gaiaToGeos_r (const void *p_cache,
802  const gaiaGeomCollPtr gaia);
803 
822  GAIAGEO_DECLARE void *gaiaToGeosSelective (const gaiaGeomCollPtr gaia,
823  int mode);
824 
844  GAIAGEO_DECLARE void *gaiaToGeosSelective_r (const void *p_cache,
845  const gaiaGeomCollPtr gaia,
846  int mode);
847 
864  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *geos);
865 
883  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r (const void *p_cache,
884  const void *geos);
885 
902  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *geos);
903 
921  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r (const void *p_cache,
922  const void *geos);
923 
940  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *geos);
941 
959  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r (const void *p_cache,
960  const void *geos);
961 
978  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *geos);
979 
997  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r (const void *p_cache,
998  const void *geos);
999 
1014  GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom);
1015 
1031  GAIAGEO_DECLARE int gaiaIsSimple_r (const void *p_cache,
1032  gaiaGeomCollPtr geom);
1033 
1049  GAIAGEO_DECLARE int gaiaIsClosed (gaiaLinestringPtr line);
1050 
1065  GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom);
1066 
1082  GAIAGEO_DECLARE int gaiaIsClosedGeom_r (const void *p_cache,
1083  gaiaGeomCollPtr geom);
1084 
1099  GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line);
1100 
1116  GAIAGEO_DECLARE int gaiaIsRing_r (const void *p_cache,
1117  gaiaLinestringPtr line);
1118 
1133  GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom);
1134 
1150  GAIAGEO_DECLARE char *gaiaIsValidReason (gaiaGeomCollPtr geom);
1151 
1168  GAIAGEO_DECLARE char *gaiaIsValidReason_r (const void *p_cache,
1169  gaiaGeomCollPtr geom);
1170 
1186 
1204  int esri_flag);
1205 
1206 
1222  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r (const void *p_cache,
1223  gaiaGeomCollPtr geom);
1224 
1225 
1243  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetailEx_r (const void
1244  *p_cache,
1246  geom, int esri_flag);
1247 
1263  GAIAGEO_DECLARE int gaiaIsValid_r (const void *p_cache,
1264  gaiaGeomCollPtr geom);
1265 
1281  GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom,
1282  double *length);
1283 
1300  GAIAGEO_DECLARE int gaiaGeomCollLength_r (const void *p_cache,
1301  gaiaGeomCollPtr geom,
1302  double *length);
1303 
1323  int perimeter,
1324  double *length);
1325 
1345  GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r (const void *p_cache,
1346  gaiaGeomCollPtr geom,
1347  int perimeter,
1348  double *length);
1349 
1365  GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *area);
1366 
1383  GAIAGEO_DECLARE int gaiaGeomCollArea_r (const void *p_cache,
1384  gaiaGeomCollPtr geom, double *area);
1385 
1405  int force_multi);
1406 
1426  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r (const void *p_cache,
1427  gaiaGeomCollPtr geom,
1428  int force_multi);
1445  GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1,
1446  gaiaGeomCollPtr geom2);
1464  GAIAGEO_DECLARE int gaiaGeomCollEquals_r (const void *p_cache,
1465  gaiaGeomCollPtr geom1,
1466  gaiaGeomCollPtr geom2);
1467 
1484  GAIAGEO_DECLARE int gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1,
1485  gaiaGeomCollPtr geom2);
1486 
1504  GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r (const void *p_cache,
1505  gaiaGeomCollPtr geom1,
1506  gaiaGeomCollPtr geom2);
1507 
1527  GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (const void *p_cache,
1528  gaiaGeomCollPtr geom1,
1529  unsigned char *blob1,
1530  int size1,
1531  gaiaGeomCollPtr geom2,
1532  unsigned char *blob2,
1533  int size2);
1534 
1552  GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1,
1553  gaiaGeomCollPtr geom2);
1554 
1573  GAIAGEO_DECLARE int gaiaGeomCollIntersects_r (const void *p_cache,
1574  gaiaGeomCollPtr geom1,
1575  gaiaGeomCollPtr geom2);
1576 
1596  GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (const void *p_cache,
1597  gaiaGeomCollPtr geom1,
1598  unsigned char *blob1,
1599  int size1,
1600  gaiaGeomCollPtr geom2,
1601  unsigned char *blob2,
1602  int size2);
1603 
1621  GAIAGEO_DECLARE int gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1,
1622  gaiaGeomCollPtr geom2);
1623 
1642  GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r (const void *p_cache,
1643  gaiaGeomCollPtr geom1,
1644  gaiaGeomCollPtr geom2);
1645 
1665  GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (const void *p_cache,
1666  gaiaGeomCollPtr geom1,
1667  unsigned char *blob1,
1668  int size1,
1669  gaiaGeomCollPtr geom2,
1670  unsigned char *blob2,
1671  int size2);
1672 
1690  GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1,
1691  gaiaGeomCollPtr geom2);
1692 
1711  GAIAGEO_DECLARE int gaiaGeomCollCrosses_r (const void *p_cache,
1712  gaiaGeomCollPtr geom1,
1713  gaiaGeomCollPtr geom2);
1714 
1734  GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (const void *p_cache,
1735  gaiaGeomCollPtr geom1,
1736  unsigned char *blob1,
1737  int size1,
1738  gaiaGeomCollPtr geom2,
1739  unsigned char *blob2,
1740  int size2);
1741 
1759  GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1,
1760  gaiaGeomCollPtr geom2);
1761 
1780  GAIAGEO_DECLARE int gaiaGeomCollContains_r (const void *p_cache,
1781  gaiaGeomCollPtr geom1,
1782  gaiaGeomCollPtr geom2);
1783 
1803  GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (const void *p_cache,
1804  gaiaGeomCollPtr geom1,
1805  unsigned char *blob1,
1806  int size1,
1807  gaiaGeomCollPtr geom2,
1808  unsigned char *blob2,
1809  int size2);
1810 
1828  GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1,
1829  gaiaGeomCollPtr geom2);
1830 
1849  GAIAGEO_DECLARE int gaiaGeomCollWithin_r (const void *p_cache,
1850  gaiaGeomCollPtr geom1,
1851  gaiaGeomCollPtr geom2);
1852 
1872  GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (const void *p_cache,
1873  gaiaGeomCollPtr geom1,
1874  unsigned char *blob1,
1875  int size1,
1876  gaiaGeomCollPtr geom2,
1877  unsigned char *blob2,
1878  int size2);
1879 
1897  GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1,
1898  gaiaGeomCollPtr geom2);
1899 
1918  GAIAGEO_DECLARE int gaiaGeomCollTouches_r (const void *p_cache,
1919  gaiaGeomCollPtr geom1,
1920  gaiaGeomCollPtr geom2);
1921 
1941  GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (const void *p_cache,
1942  gaiaGeomCollPtr geom1,
1943  unsigned char *blob1,
1944  int size1,
1945  gaiaGeomCollPtr geom2,
1946  unsigned char *blob2,
1947  int size2);
1948 
1968  GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1,
1969  gaiaGeomCollPtr geom2,
1970  const char *pattern);
1971 
1991  GAIAGEO_DECLARE int gaiaGeomCollRelate_r (const void *p_cache,
1992  gaiaGeomCollPtr geom1,
1993  gaiaGeomCollPtr geom2,
1994  const char *pattern);
1995 
2019  geom1,
2021  geom2, int mode);
2022 
2045  GAIAGEO_DECLARE char *gaiaGeomCollRelateBoundaryNodeRule_r (const void
2046  *p_cache,
2048  geom1,
2050  geom2,
2051  int mode);
2052 
2069  GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch (const char
2070  *matrix,
2071  const char
2072  *pattern);
2073 
2090  GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch_r (const void
2091  *p_cache,
2092  const char
2093  *matrix,
2094  const char
2095  *pattern);
2096 
2114  GAIAGEO_DECLARE int gaiaGeomCollDistance (gaiaGeomCollPtr geom1,
2115  gaiaGeomCollPtr geom2,
2116  double *dist);
2117 
2137  GAIAGEO_DECLARE int gaiaGeomCollDistance_r (const void *p_cache,
2138  gaiaGeomCollPtr geom1,
2139  gaiaGeomCollPtr geom2,
2140  double *dist);
2141 
2163  GAIAGEO_DECLARE int gaiaGeomCollPreparedDistance (const void *p_cache,
2164  gaiaGeomCollPtr geom1,
2165  unsigned char *blob1,
2166  int size1,
2167  gaiaGeomCollPtr geom2,
2168  unsigned char *blob2,
2169  int size2, double *dist);
2170 
2192  GAIAGEO_DECLARE int gaiaGeomCollPreparedDistanceWithin (const void *p_cache,
2194  geom1,
2195  unsigned char
2196  *blob1, int size1,
2198  geom2,
2199  unsigned char
2200  *blob2, int size2,
2201  double dist);
2202 
2223  geom1,
2225  geom2);
2226 
2247  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r (const void
2248  *p_cache,
2250  geom1,
2252  geom2);
2253 
2273  gaiaGeomCollPtr geom2);
2274 
2294  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r (const void *p_cache,
2296  geom1,
2297  gaiaGeomCollPtr geom2);
2298 
2319 
2340  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r (const void *p_cache,
2341  gaiaGeomCollPtr geom);
2342 
2361  geom1,
2363  geom2);
2364 
2383  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r (const void
2384  *p_cache,
2386  geom1,
2388  geom2);
2389 
2408  geom1,
2410  geom2);
2411 
2430  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r (const void
2431  *p_cache,
2433  geom1,
2435  geom2);
2436 
2454 
2472  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r (const void *p_cache,
2473  gaiaGeomCollPtr geom);
2474 
2490  GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x,
2491  double *y);
2492 
2509  GAIAGEO_DECLARE int gaiaGeomCollCentroid_r (const void *p_cache,
2510  gaiaGeomCollPtr geom,
2511  double *x, double *y);
2512 
2528  GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom,
2529  double *x, double *y);
2530 
2547  GAIAGEO_DECLARE int gaiaGetPointOnSurface_r (const void *p_cache,
2548  gaiaGeomCollPtr geom,
2549  double *x, double *y);
2550 
2570  geom,
2571  double tolerance);
2572 
2592  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r (const void
2593  *p_cache,
2595  geom,
2596  double tolerance);
2597 
2616  GAIAGEO_DECLARE gaiaGeomCollPtr
2618  double tolerance);
2619 
2639  GAIAGEO_DECLARE gaiaGeomCollPtr
2641  gaiaGeomCollPtr geom,
2642  double tolerance);
2643 
2661 
2679  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r (const void *p_cache,
2680  gaiaGeomCollPtr geom);
2681 
2702  double radius,
2703  int points);
2704 
2725  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r (const void *p_cache,
2727  geom, double radius,
2728  int points);
2729 
2730 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
2731 #ifdef GEOS_ADVANCED
2732 #endif
2733 
2750  GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1,
2751  gaiaGeomCollPtr geom2,
2752  double *dist);
2753 
2771  GAIAGEO_DECLARE int gaiaHausdorffDistance_r (const void *p_cache,
2772  gaiaGeomCollPtr geom1,
2773  gaiaGeomCollPtr geom2,
2774  double *dist);
2775 
2796  GAIAGEO_DECLARE int gaiaHausdorffDistanceDensify (gaiaGeomCollPtr geom1,
2797  gaiaGeomCollPtr geom2,
2798  double densify_fract,
2799  double *dist);
2800 
2822  GAIAGEO_DECLARE int gaiaHausdorffDistanceDensify_r (const void *p_cache,
2823  gaiaGeomCollPtr geom1,
2824  gaiaGeomCollPtr geom2,
2825  double densify_fract,
2826  double *dist);
2827 
2844  GAIAGEO_DECLARE int gaiaFrechetDistance (gaiaGeomCollPtr geom1,
2845  gaiaGeomCollPtr geom2,
2846  double *dist);
2847 
2865  GAIAGEO_DECLARE int gaiaFrechetDistance_r (const void *p_cache,
2866  gaiaGeomCollPtr geom1,
2867  gaiaGeomCollPtr geom2,
2868  double *dist);
2869 
2890  GAIAGEO_DECLARE int gaiaFrechetDistanceDensify (gaiaGeomCollPtr geom1,
2891  gaiaGeomCollPtr geom2,
2892  double densify_fract,
2893  double *dist);
2894 
2916  GAIAGEO_DECLARE int gaiaFrechetDistanceDensify_r (const void *p_cache,
2917  gaiaGeomCollPtr geom1,
2918  gaiaGeomCollPtr geom2,
2919  double densify_fract,
2920  double *dist);
2921 
2936  geom);
2937 
2953  *p_cache,
2955  geom);
2956 
2972  geom,
2973  double
2974  tolerance);
2975 
2991  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMaximumInscribedCircle_r (const void
2992  *p_cache,
2994  geom,
2995  double
2996  tolerance);
2997 
3019  geom,
3020  double *radius,
3021  gaiaGeomCollPtr *
3022  center);
3023 
3045  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumBoundingCircle_r (const void
3046  *p_cache,
3048  geom,
3049  double *radius,
3051  * center);
3052 
3068  geom,
3070  boundary,
3071  double tolerance);
3072 
3088  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLargestEmptyCircle_r (const void
3089  *p_cache,
3091  geom,
3093  boundary,
3094  double tolerance);
3095 
3110 
3125  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumWidth_r (const void *p_cache,
3126  gaiaGeomCollPtr geom);
3127 
3143  GAIAGEO_DECLARE int gaiaMinimumClearance (gaiaGeomCollPtr geom,
3144  double *clearance);
3145 
3162  GAIAGEO_DECLARE int gaiaMinimumClearance_r (const void *p_cache,
3163  gaiaGeomCollPtr geom,
3164  double *clearance);
3165 
3180  geom);
3181 
3196  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumClearanceLine_r (const void
3197  *p_cache,
3199  geom);
3200 
3223  double radius,
3224  int points,
3225  int left_right);
3226 
3249  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r (const void *p_cache,
3250  gaiaGeomCollPtr geom,
3251  double radius,
3252  int points,
3253  int left_right);
3254 
3277  geom,
3278  double radius,
3279  int points,
3280  int left_right);
3281 
3304  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r (const void
3305  *p_cache,
3307  geom,
3308  double radius,
3309  int points,
3310  int left_right);
3311 
3330  gaiaGeomCollPtr geom2);
3331 
3350  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r (const void *p_cache,
3351  gaiaGeomCollPtr geom1,
3352  gaiaGeomCollPtr geom2);
3353 
3374  ln_geom,
3375  double fraction);
3376 
3397  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r (const void
3398  *p_cache,
3400  ln_geom,
3401  double
3402  fraction);
3403 
3425  GAIAGEO_DECLARE gaiaGeomCollPtr
3427  double distance);
3428 
3451  GAIAGEO_DECLARE gaiaGeomCollPtr
3453  gaiaGeomCollPtr ln_geom,
3454  double distance);
3455 
3478  ln_geom,
3479  double start_fraction,
3480  double end_fraction);
3481 
3504  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r (const void *p_cache,
3506  ln_geom,
3507  double
3508  start_fraction,
3509  double end_fraction);
3510 
3531  gaiaGeomCollPtr geom2);
3532 
3553  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r (const void *p_cache,
3554  gaiaGeomCollPtr geom1,
3555  gaiaGeomCollPtr geom2);
3556 
3576  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap (gaiaGeomCollPtr geom1,
3577  gaiaGeomCollPtr geom2,
3578  double tolerance);
3579 
3600  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r (const void *p_cache,
3601  gaiaGeomCollPtr geom1,
3602  gaiaGeomCollPtr geom2,
3603  double tolerance);
3604 
3622 
3640  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r (const void *p_cache,
3641  gaiaGeomCollPtr geom);
3642 
3661  geom1,
3662  gaiaGeomCollPtr geom2);
3663 
3683 
3703  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r (const void *p_cache,
3704  gaiaGeomCollPtr geom);
3705 
3723  GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom,
3724  gaiaGeomCollPtr pt_geom);
3725 
3744  GAIAGEO_DECLARE double gaiaLineLocatePoint_r (const void *p_cache,
3745  gaiaGeomCollPtr ln_geom,
3746  gaiaGeomCollPtr pt_geom);
3747 
3762  GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1,
3763  gaiaGeomCollPtr geom2);
3764 
3780  GAIAGEO_DECLARE int gaiaGeomCollCovers_r (const void *p_cache,
3781  gaiaGeomCollPtr geom1,
3782  gaiaGeomCollPtr geom2);
3783 
3803  GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (const void *p_cache,
3804  gaiaGeomCollPtr geom1,
3805  unsigned char *blob1,
3806  int size1,
3807  gaiaGeomCollPtr geom2,
3808  unsigned char *blob2,
3809  int size2);
3810 
3826  GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1,
3827  gaiaGeomCollPtr geom2);
3828 
3845  GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r (const void *p_cache,
3846  gaiaGeomCollPtr geom1,
3847  gaiaGeomCollPtr geom2);
3848 
3869  GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (const void *p_cache,
3870  gaiaGeomCollPtr geom1,
3871  unsigned char *blob1,
3872  int size1,
3873  gaiaGeomCollPtr geom2,
3874  unsigned char *blob2,
3875  int size2);
3876 
3900  double origin_x,
3901  double origin_y,
3902  double size, int mode);
3903 
3927  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r (const void *p_cache,
3928  gaiaGeomCollPtr geom,
3929  double origin_x,
3930  double origin_y,
3931  double size, int mode);
3932 
3956  double origin_x,
3957  double origin_y,
3958  double size, int mode);
3959 
3983  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r (const void *p_cache,
3985  geom,
3986  double origin_x,
3987  double origin_y,
3988  double size,
3989  int mode);
3990 
4014  double origin_x,
4015  double origin_y,
4016  double size, int mode);
4017 
4041  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r (const void *p_cache,
4042  gaiaGeomCollPtr geom,
4043  double origin_x,
4044  double origin_y,
4045  double size, int mode);
4046 
4047 #endif /* end GEOS advanced features */
4048 
4049 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
4050 #ifdef GEOS_3100
4051 #endif
4052 
4072  geom, double tolerance);
4073 
4093  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeosDensify_r (const void
4094  *p_cache,
4096  geom, double tolerance);
4097 
4116  GAIAGEO_DECLARE gaiaGeomCollPtr
4118 
4138  GAIAGEO_DECLARE gaiaGeomCollPtr
4140  gaiaGeomCollPtr geom);
4141 
4162  int keep_discarded);
4163 
4184  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeosMakeValid_r (const void *p_cache,
4185  gaiaGeomCollPtr geom,
4186  int keep_discarded);
4187 
4205  double grid_size);
4206 
4224  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaReducePrecision_r (const void *p_cache,
4225  gaiaGeomCollPtr geom,
4226  double grid_size);
4227 
4228 #endif /* end GEOS_3100 features */
4229 
4230 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
4231 #ifdef GEOS_3110
4232 #endif
4233 
4248  GAIAGEO_DECLARE int gaiaHilbertCode (gaiaGeomCollPtr geom1,
4249  gaiaGeomCollPtr geom2, int level,
4250  unsigned int *code);
4251 
4267  GAIAGEO_DECLARE int gaiaHilbertCode_r (const void *p_cache,
4268  gaiaGeomCollPtr geom1,
4269  gaiaGeomCollPtr geom2, int level,
4270  unsigned int *code);
4271 
4294  double ratio,
4295  int allow_holes);
4296 
4319  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeosConcaveHull_r (const void *p_cache,
4320  gaiaGeomCollPtr geom,
4321  double ratio,
4322  int allow_holes);
4323 
4324 #endif /* end GEOS_3110 features */
4325 
4326 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
4327 #ifdef GEOS_TRUNK
4328 #endif
4329 
4351  geom,
4352  double
4353  tolerance,
4354  int only_edges);
4355 
4377  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r (const void
4378  *p_cache,
4380  geom,
4381  double
4382  tolerance,
4383  int
4384  only_edges);
4385 
4407  double
4408  extra_frame_size,
4409  double tolerance,
4410  int only_edges);
4411 
4433  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r (const void *p_cache,
4435  geom,
4436  double
4437  extra_frame_size,
4438  double tolerance,
4439  int only_edges);
4440 
4470  double factor,
4471  double tolerance,
4472  int allow_holes);
4473 
4503  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r (const void *p_cache,
4504  gaiaGeomCollPtr geom,
4505  double factor,
4506  double tolerance,
4507  int allow_holes);
4508 
4509 #endif /* end GEOS experimental features */
4510 
4511 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
4512 #ifdef ENABLE_RTTOPO
4513 #endif
4514 
4525  GAIAGEO_DECLARE void gaiaResetRtTopoMsg (const void *p_cache);
4526 
4540  GAIAGEO_DECLARE const char *gaiaGetRtTopoErrorMsg (const void *p_cache);
4541 
4557  GAIAGEO_DECLARE const char *gaiaGetRtTopoWarningMsg (const void *p_cache);
4558 
4570  GAIAGEO_DECLARE void gaiaSetRtTopoErrorMsg (const void *p_cache,
4571  const char *msg);
4572 
4584  GAIAGEO_DECLARE void gaiaSetRtTopoWarningMsg (const void *p_cache,
4585  const char *msg);
4586 
4606  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid (const void *p_cache,
4607  gaiaGeomCollPtr geom);
4608 
4629  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded (const void
4630  *p_cache,
4632  geom);
4633 
4654  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize (const void *p_cache,
4655  gaiaGeomCollPtr geom,
4656  double dist);
4657 
4676  GAIAGEO_DECLARE int gaiaAzimuth (const void *p_cache, double xa,
4677  double ya, double xb, double yb,
4678  double *azimuth);
4679 
4700  GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (const void *p_cache, double xa,
4701  double ya, double xb, double yb,
4702  double a, double b,
4703  double *azimuth);
4704 
4725  GAIAGEO_DECLARE int gaiaProjectedPoint (const void *p_cache, double x1,
4726  double y1, double a, double b,
4727  double distance, double azimuth,
4728  double *x2, double *y2);
4729 
4744  GAIAGEO_DECLARE char *gaiaGeoHash (const void *p_cache,
4745  gaiaGeomCollPtr geom, int precision);
4746 
4764  GAIAGEO_DECLARE char *gaiaAsX3D (const void *p_cache,
4765  gaiaGeomCollPtr geom, const char *srs,
4766  int precision, int options,
4767  const char *refid);
4768 
4785  GAIAGEO_DECLARE int gaia3DDistance (const void *p_cache,
4786  gaiaGeomCollPtr geom1,
4787  gaiaGeomCollPtr geom2, double *dist);
4788 
4805  GAIAGEO_DECLARE int gaiaMaxDistance (const void *p_cache,
4806  gaiaGeomCollPtr geom1,
4807  gaiaGeomCollPtr geom2, double *dist);
4808 
4825  GAIAGEO_DECLARE int gaia3DMaxDistance (const void *p_cache,
4826  gaiaGeomCollPtr geom1,
4827  gaiaGeomCollPtr geom2, double *dist);
4828 
4843  GAIAGEO_DECLARE int gaia3dLength (const void *p_cache,
4844  gaiaGeomCollPtr geom, double *length);
4845 
4865  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit (const void *p_cache,
4866  gaiaGeomCollPtr input,
4867  gaiaGeomCollPtr blade);
4868 
4889  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft (const void *p_cache,
4890  gaiaGeomCollPtr input,
4891  gaiaGeomCollPtr blade);
4892 
4913  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (const void *p_cache,
4914  gaiaGeomCollPtr input,
4915  gaiaGeomCollPtr blade);
4916 
4934  GAIAGEO_DECLARE int gaiaGeodesicArea (const void *p_cache,
4935  gaiaGeomCollPtr geom, double a,
4936  double b, int use_ellipsoid,
4937  double *area);
4938 
4956  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines (const void *p_cache,
4957  gaiaGeomCollPtr input);
4958 
4976  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSubdivide (const void *p_cache,
4977  gaiaGeomCollPtr input,
4978  int max_vertices);
4979 
5004  GAIAGEO_DECLARE int gaiaToTWKB (const void *p_cache,
5005  gaiaGeomCollPtr geom,
5006  unsigned char precision_xy,
5007  unsigned char precision_z,
5008  unsigned char precision_m, int with_size,
5009  int with_bbox, unsigned char **twkb,
5010  int *size_twkb);
5011 
5029  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromTWKB (const void *p_cache,
5030  const unsigned char *twkb,
5031  int twkb_size, int srid);
5032 
5053  GAIAGEO_DECLARE int gaiaAsEncodedPolyLine (const void *p_cache,
5054  gaiaGeomCollPtr geom,
5055  unsigned char precision,
5056  char **encoded, int *len);
5057 
5074  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineFromEncodedPolyline (const void
5075  *p_cache,
5076  const char
5077  *encoded,
5078  unsigned char
5079  precision);
5080 
5081 #endif /* end RTTOPO support */
5082 
5104  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLine (sqlite3 * db_handle,
5105  gaiaGeomCollPtr geom1,
5106  gaiaGeomCollPtr geom2,
5107  double tolerance);
5108 
5131  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLineExceptions (sqlite3 *
5132  db_handle,
5134  geom1,
5136  geom2,
5137  double tolerance,
5138  int interpolated);
5139 
5140 #endif /* end including GEOS */
5141 
5171  double origin_x,
5172  double origin_y,
5173  double origin_z,
5174  double origin_m,
5175  double size_x,
5176  double size_y,
5177  double size_z,
5178  double size_m);
5179 
5180 #ifdef __cplusplus
5181 }
5182 #endif
5183 
5184 #endif /* _GG_ADVANCED_H */
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLineExceptions(sqlite3 *db_handle, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance, int interpolated)
Utility function: DrapeLineExceptions.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXY_r(const void *p_cache, gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection] This is a special "f...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg(void)
Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning messag...
GAIAGEO_DECLARE int gaiaProjectedPoint(const void *p_cache, double x1, double y1, double a, double b, double distance, double azimuth, double *x2, double *y2)
Utility function: ProjectedPoint.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Single Sided Buffer.
GAIAGEO_DECLARE int gaiaGeomCollEquals_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Equals.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumRotatedRectangle(gaiaGeomCollPtr geom)
Calculates the minimum rotated rectangular POLYGON which encloses the input geometry.
GAIAGEO_DECLARE int gaiaFrechetDistanceDensify_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double densify_fract, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaiaGeomCollWithin(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Within.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint(gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r(const void *p_cache, gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
GAIAGEO_DECLARE double gaiaRadsToDegs(double rads)
Converts and angle from Radians into Degrees.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumBoundingCircle_r(const void *p_cache, gaiaGeomCollPtr geom, double *radius, gaiaGeomCollPtr *center)
Constructs the Minimum Bounding Circle for a generic geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XYM dims].
GAIAGEO_DECLARE int gaiaGeomCollDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMaximumInscribedCircle_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Constructs the Maximum Inscribed Circle for a polygonal geometry, up to a specified tolerance.
GAIAGEO_DECLARE double gaiaLineLocatePoint(gaiaGeomCollPtr ln_geom, gaiaGeomCollPtr pt_geom)
Determines the location of the closest Point on Linestring to the given Point.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformEx(gaiaGeomCollPtr org, const char *proj_string_1, const char *proj_string_2, gaiaProjAreaPtr proj_bbox)
Tansforms a Geometry object into a different Reference System [aka Reprojection].
GAIAGEO_DECLARE double gaiaDegsToRads(double degs)
Converts and angle from Degrees into Radians.
GAIAGEO_DECLARE int gaiaMaxDistance(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum 2D distance intercurring between two Geometry objects.
GAIAGEO_DECLARE const char * gaiaGetRtTopoWarningMsg(const void *p_cache)
Return the latest RTTOPO warning message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Intersection.
GAIAGEO_DECLARE int gaiaGeomCollWithin_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Within.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: TriangularGrid.
GAIAGEO_DECLARE const char * gaiaGetRtTopoErrorMsg(const void *p_cache)
Return the latest RTTOPO error message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetailEx(gaiaGeomCollPtr geom, int esri_flag)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
GAIAGEO_DECLARE int gaiaHausdorffDistanceDensify(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double densify_fract, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch_r(const void *p_cache, const char *matrix, const char *pattern)
Spatial relationship evalution: comparing two intersection matrices.
GAIAGEO_DECLARE int gaiaGeomCollCrosses_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Crosses.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMaximumInscribedCircle(gaiaGeomCollPtr geom, double tolerance)
Constructs the Maximum Inscribed Circle for a polygonal geometry, up to a specified tolerance.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Intersection.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumRotatedRectangle_r(const void *p_cache, gaiaGeomCollPtr geom)
Calculates the minimum rotated rectangular POLYGON which encloses the input geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge(gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
GAIAGEO_DECLARE const char * gaiaSetProjDatabasePath(const void *p_cache, const char *path)
Sets the PATH leading to the private PROJ.6 database.
GAIAGEO_DECLARE int gaiaGeomCollTouches(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Touches.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring(gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg_r(const void *p_cache)
Return the latest GEOS warning message (if any)
GAIAGEO_DECLARE int gaia3DDistance(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the minimum 3D distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZM dims].
GAIAGEO_DECLARE int gaiaGeomCollEquals(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Equals.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformEx_r(const void *p_cache, gaiaGeomCollPtr org, const char *proj_string_1, const char *proj_string_2, gaiaProjAreaPtr proj_bbox)
Tansforms a Geometry object into a different Reference System [aka Reprojection].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded(gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
GAIAGEO_DECLARE const char * gaiaGetProjErrorMsg_r(const void *p_cache)
Return the latest PROJ error message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail(gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Line Cut At Nodes.
GAIAGEO_DECLARE int gaiaGuessSridFromWKT(sqlite3 *db_handle, const void *p_cache, const char *wkt, int *srid)
Return the SRID corresponding to a given WKT expression (if any)
GAIAGEO_DECLARE char * gaiaGetProjString(const void *p_cache, const char *auth_name, int auth_srid)
Return the proj-string corresponding to a given CRS defined within the private PROJ....
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConstrainedDelaunayTriangulation(gaiaGeomCollPtr geom)
Constrained Delaunay Triangulation.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromTWKB(const void *p_cache, const unsigned char *twkb, int twkb_size, int srid)
Converts a compressed TWKB Geometry into a native binary Geometry.
GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg(void)
Return the latest GEOS (auxiliary) error message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
GAIAGEO_DECLARE int gaiaGeomCollDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeosDensify(gaiaGeomCollPtr geom, double tolerance)
Densifies a geometry using a given distance tolerance.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZ dims].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY(const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
GAIAGEO_DECLARE int gaia3dLength(const void *p_cache, gaiaGeomCollPtr geom, double *length)
Calculates the 2D or 3D Length for a Linestring or Multilinestring accordingly to the dimensions of G...
GAIAGEO_DECLARE int gaiaFrechetDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE void gaiaResetProjErrorMsg_r(const void *p_cache)
Resets the PROJ error messages to an empty state.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
GAIAGEO_DECLARE int gaiaHausdorffDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaiaFrechetDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXY(gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection] This is a special "f...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: SquareGrid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnapToGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double origin_z, double origin_m, double size_x, double size_y, double size_z, double size_m)
Utility function: SnapToGrid.
GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r(const void *p_cache, const char *msg)
Set the current GEOS error message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull(gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeosDensify_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Densifies a geometry using a given distance tolerance.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumWidth_r(const void *p_cache, gaiaGeomCollPtr geom)
Returns a LINESTRING geometry which represents the minimum diameter of the geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r(const void *p_cache, gaiaGeomCollPtr geom, int force_multi)
Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull(gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaReducePrecision_r(const void *p_cache, gaiaGeomCollPtr geom, double grid_size)
Change the coordinate precision of a geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram(gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
GAIAGEO_DECLARE int gaiaIsSimple(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r(const void *p_cache, gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg_r(const void *p_cache)
Return the latest GEOS error message (if any)
GAIAGEO_DECLARE int gaiaGeomCollCovers_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry covers another one.
GAIAGEO_DECLARE int gaiaGeomCollIntersects_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intersects.
GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg(void)
Return the latest GEOS warning message (if any)
GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter(gaiaGeomCollPtr geom, int perimeter, double *length)
Measures the total Length or Perimeter for a Geometry object.
GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry is covered by another one.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineFromEncodedPolyline(const void *p_cache, const char *encoded, unsigned char precision)
Converts a GoogleMaps encoded PolyLine into a native binary Geometry (Linestring)
GAIAGEO_DECLARE int gaiaGeomCollContains(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Contains.
GAIAGEO_DECLARE int gaiaGeomCollCoveredBy(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry is covered by another one.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r(const void *p_cache, gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE int gaiaGeomCollPreparedDistance(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2, double *dist)
Spatial relationship evalution: Distance (GEOSPreparedGeometry)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: SplitLeft.
GAIAGEO_DECLARE char * gaiaAsX3D(const void *p_cache, gaiaGeomCollPtr geom, const char *srs, int precision, int options, const char *refid)
Utility function: AsX3D.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetailEx_r(const void *p_cache, gaiaGeomCollPtr geom, int esri_flag)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
GAIAGEO_DECLARE int gaiaHausdorffDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
GAIAGEO_DECLARE char * gaiaIsValidReason_r(const void *p_cache, gaiaGeomCollPtr geom)
return a TEXT string stating if a Geometry is valid and if not valid, a reason why
GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Topology check: test if a Geometry is covered by another one (GEOSPreparedGeometry)
GAIAGEO_DECLARE char * gaiaGeomCollRelateBoundaryNodeRule(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, int mode)
Spatial relationship evalution: Relate Boundary Node Rule.
GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Crosses (GEOSPreparedGeometry)
GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch(const char *matrix, const char *pattern)
Spatial relationship evalution: comparing two intersection matrices.
GAIAGEO_DECLARE void gaiaSetProjErrorMsg_r(const void *p_cache, const char *msg)
Set the current PROJ error message.
GAIAGEO_DECLARE int gaiaIsRing_r(const void *p_cache, gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
GAIAGEO_DECLARE double gaiaLineLocatePoint_r(const void *p_cache, gaiaGeomCollPtr ln_geom, gaiaGeomCollPtr pt_geom)
Determines the location of the closest Point on Linestring to the given Point.
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r(const void *p_cache, const char *msg)
Set the current GEOS (auxiliary) error message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer(gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Single Sided Buffer.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYM dims].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Offset Curve.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded(const void *p_cache, gaiaGeomCollPtr geom)
Utility function: MakeValidDiscarded.
GAIAGEO_DECLARE int gaiaGeomCollRelate(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
GAIAGEO_DECLARE void * gaiaToGeosSelective(const gaiaGeomCollPtr gaia, int mode)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE int gaiaFrechetDistanceDensify(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double densify_fract, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaiaGeomCollArea_r(const void *p_cache, gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: SymDifference.
GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Intersects (GEOSPreparedGeometry)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaReducePrecision(gaiaGeomCollPtr geom, double grid_size)
Change the coordinate precision of a geometry.
GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r(const void *p_cache, const char *msg)
Set the current GEOS warning message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: HexagonalGrid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints(gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
GAIAGEO_DECLARE int gaiaGeomCollPreparedContains(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Contains (GEOSPreparedGeometry)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize(gaiaGeomCollPtr geom, int force_multi)
Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon.
GAIAGEO_DECLARE void * gaiaToGeos_r(const void *p_cache, const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE void * gaiaToGeosSelective_r(const void *p_cache, const gaiaGeomCollPtr gaia, int mode)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE int gaiaHilbertCode_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, int level, unsigned int *code)
Hillbert Code.
GAIAGEO_DECLARE void gaiaSetRtTopoErrorMsg(const void *p_cache, const char *msg)
Set the current RTTOPO error message.
GAIAGEO_DECLARE void * gaiaToGeos(const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shared Paths.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConstrainedDelaunayTriangulation_r(const void *p_cache, gaiaGeomCollPtr geom)
Constrained Delaunay Triangulation.
GAIAGEO_DECLARE void gaiaResetGeosMsg_r(const void *p_cache)
Resets the GEOS error and warning messages to an empty state.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shared Paths.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumWidth(gaiaGeomCollPtr geom)
Returns a LINESTRING geometry which represents the minimum diameter of the geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: HexagonalGrid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary(gaiaGeomCollPtr geom)
Spatial operator: Boundary.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform(gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection].
GAIAGEO_DECLARE int gaiaAsEncodedPolyLine(const void *p_cache, gaiaGeomCollPtr geom, unsigned char precision, char **encoded, int *len)
Converts a native binary Geometry into a GoogleMaps encoded PolyLine.
GAIAGEO_DECLARE int gaiaHausdorffDistanceDensify_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double densify_fract, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaiaGeomCollArea(gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
GAIAGEO_DECLARE void gaiaSetGeosWarningMsg(const char *msg)
Set the current GEOS warning message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve(gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Offset Curve.
GAIAGEO_DECLARE int gaiaGeomCollCentroid_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
GAIAGEO_DECLARE int gaiaIsRing(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
GAIAGEO_DECLARE int gaia3DMaxDistance(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum 3D distance intercurring between two Geometry objects.
GAIAGEO_DECLARE char * gaiaIsValidReason(gaiaGeomCollPtr geom)
return a TEXT string stating if a Geometry is valid and if not valid, a reason why
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: Split.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZ dims].
GAIAGEO_DECLARE int gaiaMinimumClearance(gaiaGeomCollPtr geom, double *clearance)
Computes the minimum clearance of a geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer(gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
GAIAGEO_DECLARE int gaiaGeomCollOverlaps(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeosMakeValid_r(const void *p_cache, gaiaGeomCollPtr geom, int keep_discarded)
Utility function: GeosMakeValid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid(const void *p_cache, gaiaGeomCollPtr geom)
Utility function: MakeValid.
GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Within (GEOSPreparedGeometry)
GAIAGEO_DECLARE int gaiaHilbertCode(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, int level, unsigned int *code)
Hillbert Code.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeosConcaveHull(gaiaGeomCollPtr geom, double ratio, int allow_holes)
Concave Hull (the GEOS way)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.
GAIAGEO_DECLARE char * gaiaGeoHash(const void *p_cache, gaiaGeomCollPtr geom, int precision)
Utility function: GeoHash.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumBoundingCircle(gaiaGeomCollPtr geom, double *radius, gaiaGeomCollPtr *center)
Constructs the Minimum Bounding Circle for a generic geometry.
GAIAGEO_DECLARE int gaiaGeomCollPreparedDistanceWithin(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2, double dist)
Spatial operator: DistanceWithin (GEOSPreparedGeometry)
GAIAGEO_DECLARE int gaiaGeomCollCovers(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry covers another one.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation(gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
GAIAGEO_DECLARE int gaiaGeomCollCrosses(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Crosses.
GAIAGEO_DECLARE int gaiaGeomCollLength(gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumClearanceLine(gaiaGeomCollPtr geom)
Returns a LINESTRING geometry which represents the minimum clearance of a geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r(const void *p_cache)
Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning messag...
GAIAGEO_DECLARE char * gaiaGeomCollRelateBoundaryNodeRule_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, int mode)
Spatial relationship evalution: Relate Boundary Node Rule.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: TriangularGrid.
GAIAGEO_DECLARE int gaiaGetPointOnSurface(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
GAIAGEO_DECLARE void gaiaResetRtTopoMsg(const void *p_cache)
Resets the RTTOPO error and warning messages to an empty state.
GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg_r(const void *p_cache)
Return the latest GEOS (auxiliary) error message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion(gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: SymDifference.
GAIAGEO_DECLARE int gaiaGeomCollLength_r(const void *p_cache, gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
GAIAGEO_DECLARE int gaiaGeomCollContains_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Contains.
GAIAGEO_DECLARE int gaiaGeomCollRelate_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
GAIAGEO_DECLARE int gaiaGeodesicArea(const void *p_cache, gaiaGeomCollPtr geom, double a, double b, int use_ellipsoid, double *area)
Measures the total Area for a Geometry object (geodesic)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: SplitRight.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r(const void *p_cache, gaiaGeomCollPtr geom, int perimeter, double *length)
Measures the total Length or Perimeter for a Geometry object.
GAIAGEO_DECLARE const char * gaiaGetProjDatabasePath(const void *p_cache)
Return the currently set PATH leading to the private PROJ.6 database.
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg(void)
Return the latest GEOS error message (if any)
GAIAGEO_DECLARE int gaiaIsValid_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
GAIAGEO_DECLARE int gaiaGetPointOnSurface_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: SquareGrid.
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg(const char *msg)
Set the current GEOS (auxiliary) error message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXYZ_r(const void *p_cache, gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection] This is a special "f...
GAIAGEO_DECLARE int gaiaGeomCollCentroid(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Touches (GEOSPreparedGeometry)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines(const void *p_cache, gaiaGeomCollPtr input)
Utility function: re-noding lines.
GAIAGEO_DECLARE int gaiaIsClosed(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Closed Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXYZ(gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection] This is a special "f...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize(const void *p_cache, gaiaGeomCollPtr geom, double dist)
Utility function: Segmentize.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMinimumClearanceLine_r(const void *p_cache, gaiaGeomCollPtr geom)
Returns a LINESTRING geometry which represents the minimum clearance of a geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLargestEmptyCircle(gaiaGeomCollPtr geom, gaiaGeomCollPtr boundary, double tolerance)
Constructs the Largest Empty Circle for a set of obstacle geometries, up to a specified tolerance.
GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Topology check: test if a Geometry covers another one (GEOSPreparedGeometry)
GAIAGEO_DECLARE int gaiaToTWKB(const void *p_cache, gaiaGeomCollPtr geom, unsigned char precision_xy, unsigned char precision_z, unsigned char precision_m, int with_size, int with_bbox, unsigned char **twkb, int *size_twkb)
Converts a native binary Geometry into a compressed TWKB Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLine(sqlite3 *db_handle, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Utility function: DrapeLine.
GAIAGEO_DECLARE int gaiaIsSimple_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
GAIAGEO_DECLARE int gaiaEllipsoidAzimuth(const void *p_cache, double xa, double ya, double xb, double yb, double a, double b, double *azimuth)
Utility function: EllipsoidAzimuth.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
GAIAGEO_DECLARE int gaiaIsClosedGeom_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeosMakeValid(gaiaGeomCollPtr geom, int keep_discarded)
Utility function: GeosMakeValid.
GAIAGEO_DECLARE int gaiaMinimumClearance_r(const void *p_cache, gaiaGeomCollPtr geom, double *clearance)
Computes the minimum clearance of a geometry.
GAIAGEO_DECLARE int gaiaIsClosedGeom(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeosConcaveHull_r(const void *p_cache, gaiaGeomCollPtr geom, double ratio, int allow_holes)
Concave Hull (the GEOS way)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
GAIAGEO_DECLARE int gaiaGeomCollIntersects(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intesects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZM dims].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Boundary.
GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Disjoint (GEOSPreparedGeometry)
GAIAGEO_DECLARE void gaiaSetGeosErrorMsg(const char *msg)
Set the current GEOS error message.
GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Overlaps (GEOSPreparedGeometry)
GAIAGEO_DECLARE void gaiaResetGeosMsg(void)
Resets the GEOS error and warning messages to an empty state.
GAIAGEO_DECLARE char * gaiaGetProjWKT(const void *p_cache, const char *auth_name, int auth_srid, int style, int indented, int indentation)
Return the WKT expression corresponding to a given CRS defined within the private PROJ....
GAIAGEO_DECLARE void gaiaSetRtTopoWarningMsg(const void *p_cache, const char *msg)
Set the current RTTOPO warning message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLargestEmptyCircle_r(const void *p_cache, gaiaGeomCollPtr geom, gaiaGeomCollPtr boundary, double tolerance)
Constructs the Largest Empty Circle for a set of obstacle geometries, up to a specified tolerance.
GAIAGEO_DECLARE int gaiaAzimuth(const void *p_cache, double xa, double ya, double xb, double yb, double *azimuth)
Utility function: Azimuth.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSubdivide(const void *p_cache, gaiaGeomCollPtr input, int max_vertices)
Utility function: subdividing Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r(const void *p_cache, gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection].
GAIAGEO_DECLARE int gaiaGeomCollDisjoint(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
GAIAGEO_DECLARE int gaiaGeomCollTouches_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Touches.
GAIAGEO_DECLARE int gaiaIsValid(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
Container for OGC GEOMETRYCOLLECTION Geometry.
Definition: gg_structs.h:227
Container for OGC LINESTRING Geometry.
Definition: gg_structs.h:129
BBOX corresponding to PROJ.6 AREA.
Definition: gg_structs.h:862