SpatiaLite  5.0.1
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.0, 2020 August 1
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-2021
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 
2136  GAIAGEO_DECLARE int gaiaGeomCollDistance_r (const void *p_cache,
2137  gaiaGeomCollPtr geom1,
2138  gaiaGeomCollPtr geom2,
2139  double *dist);
2140 
2161  geom1,
2163  geom2);
2164 
2185  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r (const void
2186  *p_cache,
2188  geom1,
2190  geom2);
2191 
2211  gaiaGeomCollPtr geom2);
2212 
2232  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r (const void *p_cache,
2234  geom1,
2235  gaiaGeomCollPtr geom2);
2236 
2257 
2278  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r (const void *p_cache,
2279  gaiaGeomCollPtr geom);
2280 
2299  geom1,
2301  geom2);
2302 
2321  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r (const void
2322  *p_cache,
2324  geom1,
2326  geom2);
2327 
2346  geom1,
2348  geom2);
2349 
2368  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r (const void
2369  *p_cache,
2371  geom1,
2373  geom2);
2374 
2392 
2410  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r (const void *p_cache,
2411  gaiaGeomCollPtr geom);
2412 
2428  GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x,
2429  double *y);
2430 
2447  GAIAGEO_DECLARE int gaiaGeomCollCentroid_r (const void *p_cache,
2448  gaiaGeomCollPtr geom,
2449  double *x, double *y);
2450 
2466  GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom,
2467  double *x, double *y);
2468 
2485  GAIAGEO_DECLARE int gaiaGetPointOnSurface_r (const void *p_cache,
2486  gaiaGeomCollPtr geom,
2487  double *x, double *y);
2488 
2508  geom,
2509  double tolerance);
2510 
2530  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r (const void
2531  *p_cache,
2533  geom,
2534  double tolerance);
2535 
2554  GAIAGEO_DECLARE gaiaGeomCollPtr
2556  double tolerance);
2557 
2577  GAIAGEO_DECLARE gaiaGeomCollPtr
2579  gaiaGeomCollPtr geom,
2580  double tolerance);
2581 
2599 
2617  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r (const void *p_cache,
2618  gaiaGeomCollPtr geom);
2619 
2640  double radius,
2641  int points);
2642 
2663  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r (const void *p_cache,
2665  geom, double radius,
2666  int points);
2667 
2668 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
2669 #ifdef GEOS_ADVANCED
2670 #endif
2671 
2688  GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1,
2689  gaiaGeomCollPtr geom2,
2690  double *dist);
2691 
2709  GAIAGEO_DECLARE int gaiaHausdorffDistance_r (const void *p_cache,
2710  gaiaGeomCollPtr geom1,
2711  gaiaGeomCollPtr geom2,
2712  double *dist);
2713 
2734  GAIAGEO_DECLARE int gaiaHausdorffDistanceDensify (gaiaGeomCollPtr geom1,
2735  gaiaGeomCollPtr geom2,
2736  double densify_fract,
2737  double *dist);
2738 
2760  GAIAGEO_DECLARE int gaiaHausdorffDistanceDensify_r (const void *p_cache,
2761  gaiaGeomCollPtr geom1,
2762  gaiaGeomCollPtr geom2,
2763  double densify_fract,
2764  double *dist);
2765 
2782  GAIAGEO_DECLARE int gaiaFrechetDistance (gaiaGeomCollPtr geom1,
2783  gaiaGeomCollPtr geom2,
2784  double *dist);
2785 
2803  GAIAGEO_DECLARE int gaiaFrechetDistance_r (const void *p_cache,
2804  gaiaGeomCollPtr geom1,
2805  gaiaGeomCollPtr geom2,
2806  double *dist);
2807 
2828  GAIAGEO_DECLARE int gaiaFrechetDistanceDensify (gaiaGeomCollPtr geom1,
2829  gaiaGeomCollPtr geom2,
2830  double densify_fract,
2831  double *dist);
2832 
2854  GAIAGEO_DECLARE int gaiaFrechetDistanceDensify_r (const void *p_cache,
2855  gaiaGeomCollPtr geom1,
2856  gaiaGeomCollPtr geom2,
2857  double densify_fract,
2858  double *dist);
2859 
2882  double radius,
2883  int points,
2884  int left_right);
2885 
2908  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r (const void *p_cache,
2909  gaiaGeomCollPtr geom,
2910  double radius,
2911  int points,
2912  int left_right);
2913 
2936  geom,
2937  double radius,
2938  int points,
2939  int left_right);
2940 
2963  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r (const void
2964  *p_cache,
2966  geom,
2967  double radius,
2968  int points,
2969  int left_right);
2970 
2989  gaiaGeomCollPtr geom2);
2990 
3009  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r (const void *p_cache,
3010  gaiaGeomCollPtr geom1,
3011  gaiaGeomCollPtr geom2);
3012 
3033  ln_geom,
3034  double fraction);
3035 
3056  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r (const void
3057  *p_cache,
3059  ln_geom,
3060  double
3061  fraction);
3062 
3084  GAIAGEO_DECLARE gaiaGeomCollPtr
3086  double distance);
3087 
3110  GAIAGEO_DECLARE gaiaGeomCollPtr
3112  gaiaGeomCollPtr ln_geom,
3113  double distance);
3114 
3137  ln_geom,
3138  double start_fraction,
3139  double end_fraction);
3140 
3163  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r (const void *p_cache,
3165  ln_geom,
3166  double
3167  start_fraction,
3168  double end_fraction);
3169 
3190  gaiaGeomCollPtr geom2);
3191 
3212  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r (const void *p_cache,
3213  gaiaGeomCollPtr geom1,
3214  gaiaGeomCollPtr geom2);
3215 
3235  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap (gaiaGeomCollPtr geom1,
3236  gaiaGeomCollPtr geom2,
3237  double tolerance);
3238 
3259  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r (const void *p_cache,
3260  gaiaGeomCollPtr geom1,
3261  gaiaGeomCollPtr geom2,
3262  double tolerance);
3263 
3281 
3299  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r (const void *p_cache,
3300  gaiaGeomCollPtr geom);
3301 
3320  geom1,
3321  gaiaGeomCollPtr geom2);
3322 
3342 
3362  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r (const void *p_cache,
3363  gaiaGeomCollPtr geom);
3364 
3382  GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom,
3383  gaiaGeomCollPtr pt_geom);
3384 
3403  GAIAGEO_DECLARE double gaiaLineLocatePoint_r (const void *p_cache,
3404  gaiaGeomCollPtr ln_geom,
3405  gaiaGeomCollPtr pt_geom);
3406 
3421  GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1,
3422  gaiaGeomCollPtr geom2);
3423 
3439  GAIAGEO_DECLARE int gaiaGeomCollCovers_r (const void *p_cache,
3440  gaiaGeomCollPtr geom1,
3441  gaiaGeomCollPtr geom2);
3442 
3462  GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (const void *p_cache,
3463  gaiaGeomCollPtr geom1,
3464  unsigned char *blob1,
3465  int size1,
3466  gaiaGeomCollPtr geom2,
3467  unsigned char *blob2,
3468  int size2);
3469 
3485  GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1,
3486  gaiaGeomCollPtr geom2);
3487 
3504  GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r (const void *p_cache,
3505  gaiaGeomCollPtr geom1,
3506  gaiaGeomCollPtr geom2);
3507 
3528  GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (const void *p_cache,
3529  gaiaGeomCollPtr geom1,
3530  unsigned char *blob1,
3531  int size1,
3532  gaiaGeomCollPtr geom2,
3533  unsigned char *blob2,
3534  int size2);
3535 
3559  double origin_x,
3560  double origin_y,
3561  double size, int mode);
3562 
3586  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r (const void *p_cache,
3587  gaiaGeomCollPtr geom,
3588  double origin_x,
3589  double origin_y,
3590  double size, int mode);
3591 
3615  double origin_x,
3616  double origin_y,
3617  double size, int mode);
3618 
3642  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r (const void *p_cache,
3644  geom,
3645  double origin_x,
3646  double origin_y,
3647  double size,
3648  int mode);
3649 
3673  double origin_x,
3674  double origin_y,
3675  double size, int mode);
3676 
3700  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r (const void *p_cache,
3701  gaiaGeomCollPtr geom,
3702  double origin_x,
3703  double origin_y,
3704  double size, int mode);
3705 
3706 #endif /* end GEOS advanced features */
3707 
3708 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3709 #ifdef GEOS_TRUNK
3710 #endif
3711 
3733  geom,
3734  double
3735  tolerance,
3736  int only_edges);
3737 
3759  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r (const void
3760  *p_cache,
3762  geom,
3763  double
3764  tolerance,
3765  int
3766  only_edges);
3767 
3789  double
3790  extra_frame_size,
3791  double tolerance,
3792  int only_edges);
3793 
3815  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r (const void *p_cache,
3817  geom,
3818  double
3819  extra_frame_size,
3820  double tolerance,
3821  int only_edges);
3822 
3852  double factor,
3853  double tolerance,
3854  int allow_holes);
3855 
3885  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r (const void *p_cache,
3886  gaiaGeomCollPtr geom,
3887  double factor,
3888  double tolerance,
3889  int allow_holes);
3890 
3891 #endif /* end GEOS experimental features */
3892 
3893 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3894 #ifdef ENABLE_RTTOPO
3895 #endif
3896 
3907  GAIAGEO_DECLARE void gaiaResetRtTopoMsg (const void *p_cache);
3908 
3922  GAIAGEO_DECLARE const char *gaiaGetRtTopoErrorMsg (const void *p_cache);
3923 
3939  GAIAGEO_DECLARE const char *gaiaGetRtTopoWarningMsg (const void *p_cache);
3940 
3952  GAIAGEO_DECLARE void gaiaSetRtTopoErrorMsg (const void *p_cache,
3953  const char *msg);
3954 
3966  GAIAGEO_DECLARE void gaiaSetRtTopoWarningMsg (const void *p_cache,
3967  const char *msg);
3968 
3988  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid (const void *p_cache,
3989  gaiaGeomCollPtr geom);
3990 
4011  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded (const void
4012  *p_cache,
4014  geom);
4015 
4036  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize (const void *p_cache,
4037  gaiaGeomCollPtr geom,
4038  double dist);
4039 
4058  GAIAGEO_DECLARE int gaiaAzimuth (const void *p_cache, double xa,
4059  double ya, double xb, double yb,
4060  double *azimuth);
4061 
4082  GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (const void *p_cache, double xa,
4083  double ya, double xb, double yb,
4084  double a, double b,
4085  double *azimuth);
4086 
4107  GAIAGEO_DECLARE int gaiaProjectedPoint (const void *p_cache, double x1,
4108  double y1, double a, double b,
4109  double distance, double azimuth,
4110  double *x2, double *y2);
4111 
4126  GAIAGEO_DECLARE char *gaiaGeoHash (const void *p_cache,
4127  gaiaGeomCollPtr geom, int precision);
4128 
4146  GAIAGEO_DECLARE char *gaiaAsX3D (const void *p_cache,
4147  gaiaGeomCollPtr geom, const char *srs,
4148  int precision, int options,
4149  const char *refid);
4150 
4167  GAIAGEO_DECLARE int gaia3DDistance (const void *p_cache,
4168  gaiaGeomCollPtr geom1,
4169  gaiaGeomCollPtr geom2, double *dist);
4170 
4187  GAIAGEO_DECLARE int gaiaMaxDistance (const void *p_cache,
4188  gaiaGeomCollPtr geom1,
4189  gaiaGeomCollPtr geom2, double *dist);
4190 
4207  GAIAGEO_DECLARE int gaia3DMaxDistance (const void *p_cache,
4208  gaiaGeomCollPtr geom1,
4209  gaiaGeomCollPtr geom2, double *dist);
4210 
4225  GAIAGEO_DECLARE int gaia3dLength (const void *p_cache,
4226  gaiaGeomCollPtr geom, double *length);
4227 
4247  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit (const void *p_cache,
4248  gaiaGeomCollPtr input,
4249  gaiaGeomCollPtr blade);
4250 
4271  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft (const void *p_cache,
4272  gaiaGeomCollPtr input,
4273  gaiaGeomCollPtr blade);
4274 
4295  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (const void *p_cache,
4296  gaiaGeomCollPtr input,
4297  gaiaGeomCollPtr blade);
4298 
4316  GAIAGEO_DECLARE int gaiaGeodesicArea (const void *p_cache,
4317  gaiaGeomCollPtr geom, double a,
4318  double b, int use_ellipsoid,
4319  double *area);
4320 
4338  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines (const void *p_cache,
4339  gaiaGeomCollPtr input);
4340 
4358  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSubdivide (const void *p_cache,
4359  gaiaGeomCollPtr input,
4360  int max_vertices);
4361 
4386  GAIAGEO_DECLARE int gaiaToTWKB (const void *p_cache,
4387  gaiaGeomCollPtr geom,
4388  unsigned char precision_xy,
4389  unsigned char precision_z,
4390  unsigned char precision_m, int with_size,
4391  int with_bbox, unsigned char **twkb,
4392  int *size_twkb);
4393 
4411  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromTWKB (const void *p_cache,
4412  const unsigned char *twkb,
4413  int twkb_size, int srid);
4414 
4435  GAIAGEO_DECLARE int gaiaAsEncodedPolyLine (const void *p_cache,
4436  gaiaGeomCollPtr geom,
4437  unsigned char precision,
4438  char **encoded, int *len);
4439 
4456  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineFromEncodedPolyline (const void
4457  *p_cache,
4458  const char
4459  *encoded,
4460  unsigned char
4461  precision);
4462 
4463 #endif /* end RTTOPO support */
4464 
4486  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLine (sqlite3 * db_handle,
4487  gaiaGeomCollPtr geom1,
4488  gaiaGeomCollPtr geom2,
4489  double tolerance);
4490 
4513  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLineExceptions (sqlite3 *
4514  db_handle,
4516  geom1,
4518  geom2,
4519  double tolerance,
4520  int interpolated);
4521 
4522 #endif /* end including GEOS */
4523 
4553  double origin_x,
4554  double origin_y,
4555  double origin_z,
4556  double origin_m,
4557  double size_x,
4558  double size_y,
4559  double size_z,
4560  double size_m);
4561 
4562 #ifdef __cplusplus
4563 }
4564 #endif
4565 
4566 #endif /* _GG_ADVANCED_H */
gaiaSetProjErrorMsg_r
GAIAGEO_DECLARE void gaiaSetProjErrorMsg_r(const void *p_cache, const char *msg)
Set the current PROJ error message.
gaiaIsSimple_r
GAIAGEO_DECLARE int gaiaIsSimple_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
gaiaFromGeos_XYZM_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZM dims].
gaiaSetGeosWarningMsg_r
GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r(const void *p_cache, const char *msg)
Set the current GEOS warning message.
gaiaIsValidDetail
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail(gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
gaiaGetPointOnSurface
GAIAGEO_DECLARE int gaiaGetPointOnSurface(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
gaiaSetGeosAuxErrorMsg
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg(const char *msg)
Set the current GEOS (auxiliary) error message.
gaiaSnap
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
gaiaGeomCollIntersects_r
GAIAGEO_DECLARE int gaiaGeomCollIntersects_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intersects.
gaiaIsRing_r
GAIAGEO_DECLARE int gaiaIsRing_r(const void *p_cache, gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
gaiaAzimuth
GAIAGEO_DECLARE int gaiaAzimuth(const void *p_cache, double xa, double ya, double xb, double yb, double *azimuth)
Utility function: Azimuth.
gaiaTriangularGrid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: TriangularGrid.
gaiaGeomCollCoveredBy
GAIAGEO_DECLARE int gaiaGeomCollCoveredBy(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry is covered by another one.
gaiaFromGeos_XY
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY(const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
gaiaGeomCollArea_r
GAIAGEO_DECLARE int gaiaGeomCollArea_r(const void *p_cache, gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
gaiaGetGeosWarningMsg
GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg(void)
Return the latest GEOS warning message (if any)
gaiaGeoHash
GAIAGEO_DECLARE char * gaiaGeoHash(const void *p_cache, gaiaGeomCollPtr geom, int precision)
Utility function: GeoHash.
gaiaNodeLines
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines(const void *p_cache, gaiaGeomCollPtr input)
Utility function: re-noding lines.
gaiaConcaveHull
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull(gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
gaiaConvexHull_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
gaiaIsClosedGeom
GAIAGEO_DECLARE int gaiaIsClosedGeom(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
gaiaDelaunayTriangulation
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation(gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
gaiaDelaunayTriangulation_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
gaiaProjAreaStr
BBOX corresponding to PROJ.6 AREA.
Definition: gg_structs.h:862
gaiaMakeValid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid(const void *p_cache, gaiaGeomCollPtr geom)
Utility function: MakeValid.
gaiaPolygonize
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize(gaiaGeomCollPtr geom, int force_multi)
Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon.
gaia3DMaxDistance
GAIAGEO_DECLARE int gaia3DMaxDistance(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum 3D distance intercurring between two Geometry objects.
gaiaFromGeos_XY_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
gaiaGeomCollPreparedContains
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)
gaiaLineInterpolateEquidistantPoints
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints(gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
gaiaIsClosedGeom_r
GAIAGEO_DECLARE int gaiaIsClosedGeom_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
gaiaPolygonize_r
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.
gaiaIsValidReason_r
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
gaiaGeomCollTouches
GAIAGEO_DECLARE int gaiaGeomCollTouches(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Touches.
gaiaToGeosSelective
GAIAGEO_DECLARE void * gaiaToGeosSelective(const gaiaGeomCollPtr gaia, int mode)
Converts a Geometry object into a GEOS Geometry.
gaiaIntersectionMatrixPatternMatch_r
GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch_r(const void *p_cache, const char *matrix, const char *pattern)
Spatial relationship evalution: comparing two intersection matrices.
gaiaFromTWKB
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.
gaiaSingleSidedBuffer
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer(gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Single Sided Buffer.
gaiaGeomCollDistance_r
GAIAGEO_DECLARE int gaiaGeomCollDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum distance intercurring between two Geometry objects.
gaiaGeometryUnion
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
gaiaMaxDistance
GAIAGEO_DECLARE int gaiaMaxDistance(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum 2D distance intercurring between two Geometry objects.
gaiaGetGeosAuxErrorMsg
GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg(void)
Return the latest GEOS (auxiliary) error message (if any)
gaiaGeomCollArea
GAIAGEO_DECLARE int gaiaGeomCollArea(gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
gaiaGeomCollEquals
GAIAGEO_DECLARE int gaiaGeomCollEquals(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Equals.
gaiaResetProjErrorMsg_r
GAIAGEO_DECLARE void gaiaResetProjErrorMsg_r(const void *p_cache)
Resets the PROJ error messages to an empty state.
gaiaLineLocatePoint
GAIAGEO_DECLARE double gaiaLineLocatePoint(gaiaGeomCollPtr ln_geom, gaiaGeomCollPtr pt_geom)
Determines the location of the closest Point on Linestring to the given Point.
gaiaGeometryIntersection_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Intersection.
gaiaSetGeosWarningMsg
GAIAGEO_DECLARE void gaiaSetGeosWarningMsg(const char *msg)
Set the current GEOS warning message.
gaiaShortestLine
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.
gaiaGeomCollCrosses
GAIAGEO_DECLARE int gaiaGeomCollCrosses(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Crosses.
gaiaGeometrySymDifference_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: SymDifference.
gaiaLineLocatePoint_r
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.
gaiaGeomCollPreparedIntersects
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)
gaiaGetGeosAuxErrorMsg_r
GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg_r(const void *p_cache)
Return the latest GEOS (auxiliary) error message (if any)
gaiaBoundary
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary(gaiaGeomCollPtr geom)
Spatial operator: Boundary.
gaiaIsRing
GAIAGEO_DECLARE int gaiaIsRing(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
gaiaIsSimple
GAIAGEO_DECLARE int gaiaIsSimple(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
gaiaGeomCollRelateBoundaryNodeRule
GAIAGEO_DECLARE char * gaiaGeomCollRelateBoundaryNodeRule(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, int mode)
Spatial relationship evalution: Relate Boundary Node Rule.
gaiaSetRtTopoWarningMsg
GAIAGEO_DECLARE void gaiaSetRtTopoWarningMsg(const void *p_cache, const char *msg)
Set the current RTTOPO warning message.
gaiaLineInterpolatePoint_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
gaiaConvexHull
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull(gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
gaiaResetGeosMsg_r
GAIAGEO_DECLARE void gaiaResetGeosMsg_r(const void *p_cache)
Resets the GEOS error and warning messages to an empty state.
gaiaGeodesicArea
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)
gaiaGetProjErrorMsg_r
GAIAGEO_DECLARE const char * gaiaGetProjErrorMsg_r(const void *p_cache)
Return the latest PROJ error message (if any)
gaiaGeomCollSimplify
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
gaiaFrechetDistance
GAIAGEO_DECLARE int gaiaFrechetDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
gaiaSquareGrid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: SquareGrid.
gaiaGeomCollDisjoint
GAIAGEO_DECLARE int gaiaGeomCollDisjoint(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
gaiaDrapeLine
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLine(sqlite3 *db_handle, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Utility function: DrapeLine.
gaiaSharedPaths_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shared Paths.
gaiaSnap_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
gaiaGeomCollRelateBoundaryNodeRule_r
GAIAGEO_DECLARE char * gaiaGeomCollRelateBoundaryNodeRule_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, int mode)
Spatial relationship evalution: Relate Boundary Node Rule.
gaiaToGeos_r
GAIAGEO_DECLARE void * gaiaToGeos_r(const void *p_cache, const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
gaiaVoronojDiagram
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram(gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
gaiaAsEncodedPolyLine
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.
gaiaRadsToDegs
GAIAGEO_DECLARE double gaiaRadsToDegs(double rads)
Converts and angle from Radians into Degrees.
gaiaIsValidDetailEx
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetailEx(gaiaGeomCollPtr geom, int esri_flag)
return a Geometry detail causing a Geometry to be invalid
gaiaGeomCollContains
GAIAGEO_DECLARE int gaiaGeomCollContains(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Contains.
gaiaSingleSidedBuffer_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Single Sided Buffer.
gaiaGeomCollCoveredBy_r
GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry is covered by another one.
gaiaGeomCollLength
GAIAGEO_DECLARE int gaiaGeomCollLength(gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
gaiaProjectedPoint
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.
gaiaTransformXY
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...
gaiaLineInterpolatePoint
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint(gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
gaiaGeomCollDistance
GAIAGEO_DECLARE int gaiaGeomCollDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum distance intercurring between two Geometry objects.
gaiaGeomCollContains_r
GAIAGEO_DECLARE int gaiaGeomCollContains_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Contains.
gaiaFromGeos_XYZ
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZ dims].
gaiaGeomCollCentroid_r
GAIAGEO_DECLARE int gaiaGeomCollCentroid_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
gaiaGeometryDifference_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
gaiaSetGeosAuxErrorMsg_r
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r(const void *p_cache, const char *msg)
Set the current GEOS (auxiliary) error message.
gaiaGeomCollLengthOrPerimeter_r
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.
gaiaSetGeosErrorMsg_r
GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r(const void *p_cache, const char *msg)
Set the current GEOS error message.
gaiaIsValid_r
GAIAGEO_DECLARE int gaiaIsValid_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
gaiaGeomCollCentroid
GAIAGEO_DECLARE int gaiaGeomCollCentroid(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
gaiaSnapToGrid
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.
gaiaUnaryUnion
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion(gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
gaiaIsValid
GAIAGEO_DECLARE int gaiaIsValid(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
gaiaFrechetDistanceDensify_r
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.
gaiaLineSubstring_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
gaiaSplitLeft
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: SplitLeft.
gaiaGetRtTopoWarningMsg
GAIAGEO_DECLARE const char * gaiaGetRtTopoWarningMsg(const void *p_cache)
Return the latest RTTOPO warning message (if any)
gaiaEllipsoidAzimuth
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.
gaiaBoundary_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Boundary.
gaiaGeomCollLength_r
GAIAGEO_DECLARE int gaiaGeomCollLength_r(const void *p_cache, gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
gaiaLinesCutAtNodes
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Line Cut At Nodes.
gaiaGetGeosErrorMsg
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg(void)
Return the latest GEOS error message (if any)
gaiaToGeosSelective_r
GAIAGEO_DECLARE void * gaiaToGeosSelective_r(const void *p_cache, const gaiaGeomCollPtr gaia, int mode)
Converts a Geometry object into a GEOS Geometry.
gaiaGeomCollTouches_r
GAIAGEO_DECLARE int gaiaGeomCollTouches_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Touches.
gaiaSquareGrid_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: SquareGrid.
gaiaHausdorffDistance_r
GAIAGEO_DECLARE int gaiaHausdorffDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
gaiaFromGeos_XYZM
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZM dims].
gaiaTransform_r
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].
gaiaGetProjWKT
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....
gaiaGeomCollSimplifyPreserveTopology
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
gaiaToGeos
GAIAGEO_DECLARE void * gaiaToGeos(const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
gaiaDegsToRads
GAIAGEO_DECLARE double gaiaDegsToRads(double degs)
Converts and angle from Degrees into Radians.
gaiaFromGeos_XYM_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XYM dims].
gaiaGeometrySymDifference
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: SymDifference.
gaiaGeomCollWithin_r
GAIAGEO_DECLARE int gaiaGeomCollWithin_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Within.
gaiaCriticalPointFromGEOSmsg_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r(const void *p_cache)
Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning messag...
gaiaLinestringStruct
Container for OGC LINESTRING Geometry.
Definition: gg_structs.h:129
gaiaFromGeos_XYM
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYM dims].
gaiaDrapeLineExceptions
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLineExceptions(sqlite3 *db_handle, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance, int interpolated)
Utility function: DrapeLineExceptions.
gaiaLineMerge_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
gaiaTriangularGrid_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: TriangularGrid.
gaiaTransform
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].
gaiaTransformEx_r
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].
gaiaGeomCollPreparedWithin
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)
gaiaLineMerge
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge(gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
gaiaGeomCollOverlaps
GAIAGEO_DECLARE int gaiaGeomCollOverlaps(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
gaiaVoronojDiagram_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r(const void *p_cache, gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
gaiaGeomCollCovers_r
GAIAGEO_DECLARE int gaiaGeomCollCovers_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry covers another one.
gaiaTransformXYZ
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...
gaiaLineSubstring
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring(gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
gaiaGeomCollOverlaps_r
GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
gaiaGetProjString
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....
gaiaIntersectionMatrixPatternMatch
GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch(const char *matrix, const char *pattern)
Spatial relationship evalution: comparing two intersection matrices.
gaiaFrechetDistance_r
GAIAGEO_DECLARE int gaiaFrechetDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
gaiaGetGeosErrorMsg_r
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg_r(const void *p_cache)
Return the latest GEOS error message (if any)
gaiaFrechetDistanceDensify
GAIAGEO_DECLARE int gaiaFrechetDistanceDensify(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double densify_fract, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
gaiaGeomCollWithin
GAIAGEO_DECLARE int gaiaGeomCollWithin(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Within.
gaiaHausdorffDistanceDensify_r
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.
gaiaConcaveHull_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r(const void *p_cache, gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
gaiaGeomCollSimplifyPreserveTopology_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
gaiaGeomCollRelate_r
GAIAGEO_DECLARE int gaiaGeomCollRelate_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
gaiaIsValidReason
GAIAGEO_DECLARE char * gaiaIsValidReason(gaiaGeomCollPtr geom)
return a TEXT string stating if a Geometry is valid and if not valid, a reason why
gaiaHexagonalGrid_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: HexagonalGrid.
gaiaGeomCollLengthOrPerimeter
GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter(gaiaGeomCollPtr geom, int perimeter, double *length)
Measures the total Length or Perimeter for a Geometry object.
gaiaShortestLine_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.
gaia3dLength
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...
gaiaGeomCollPreparedCoveredBy
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)
gaiaGetGeosWarningMsg_r
GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg_r(const void *p_cache)
Return the latest GEOS warning message (if any)
gaiaAsX3D
GAIAGEO_DECLARE char * gaiaAsX3D(const void *p_cache, gaiaGeomCollPtr geom, const char *srs, int precision, int options, const char *refid)
Utility function: AsX3D.
gaiaUnionCascaded
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded(gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
gaiaSetGeosErrorMsg
GAIAGEO_DECLARE void gaiaSetGeosErrorMsg(const char *msg)
Set the current GEOS error message.
gaiaGeomCollPreparedDisjoint
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)
gaiaTransformXY_r
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...
gaiaHexagonalGrid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: HexagonalGrid.
gaiaGeomCollPreparedCovers
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)
gaiaCriticalPointFromGEOSmsg
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg(void)
Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning messag...
gaiaGeometryDifference
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
gaiaGeomCollPreparedCrosses
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)
gaiaSubdivide
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSubdivide(const void *p_cache, gaiaGeomCollPtr input, int max_vertices)
Utility function: subdividing Geometry.
gaiaGeomCollStruct
Container for OGC GEOMETRYCOLLECTION Geometry.
Definition: gg_structs.h:227
gaiaSetRtTopoErrorMsg
GAIAGEO_DECLARE void gaiaSetRtTopoErrorMsg(const void *p_cache, const char *msg)
Set the current RTTOPO error message.
gaiaGeomCollBuffer_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
gaiaUnionCascaded_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
gaiaUnaryUnion_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
gaiaGeomCollDisjoint_r
GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
gaiaIsClosed
GAIAGEO_DECLARE int gaiaIsClosed(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Closed Geometry.
gaiaTransformXYZ_r
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...
gaiaResetRtTopoMsg
GAIAGEO_DECLARE void gaiaResetRtTopoMsg(const void *p_cache)
Resets the RTTOPO error and warning messages to an empty state.
gaiaSplitRight
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: SplitRight.
gaiaSharedPaths
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shared Paths.
gaiaGetRtTopoErrorMsg
GAIAGEO_DECLARE const char * gaiaGetRtTopoErrorMsg(const void *p_cache)
Return the latest RTTOPO error message (if any)
gaiaHausdorffDistanceDensify
GAIAGEO_DECLARE int gaiaHausdorffDistanceDensify(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double densify_fract, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
gaiaGeomCollEquals_r
GAIAGEO_DECLARE int gaiaGeomCollEquals_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Equals.
gaiaToTWKB
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.
gaiaGeomCollPreparedTouches
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)
gaiaGeomCollRelate
GAIAGEO_DECLARE int gaiaGeomCollRelate(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
gaiaGetPointOnSurface_r
GAIAGEO_DECLARE int gaiaGetPointOnSurface_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
gaiaResetGeosMsg
GAIAGEO_DECLARE void gaiaResetGeosMsg(void)
Resets the GEOS error and warning messages to an empty state.
gaiaGuessSridFromWKT
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)
gaiaMakeValidDiscarded
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded(const void *p_cache, gaiaGeomCollPtr geom)
Utility function: MakeValidDiscarded.
gaiaGeomCollBuffer
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer(gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
gaiaGeomCollPreparedOverlaps
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)
gaiaOffsetCurve_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Offset Curve.
gaiaOffsetCurve
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve(gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Offset Curve.
gaiaGeomCollCrosses_r
GAIAGEO_DECLARE int gaiaGeomCollCrosses_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Crosses.
gaiaSplit
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: Split.
gaiaLineInterpolateEquidistantPoints_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
gaiaGeomCollSimplify_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
gaiaLineFromEncodedPolyline
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)
gaiaGeomCollIntersects
GAIAGEO_DECLARE int gaiaGeomCollIntersects(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intesects.
gaiaSegmentize
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize(const void *p_cache, gaiaGeomCollPtr geom, double dist)
Utility function: Segmentize.
gaiaGeometryIntersection
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Intersection.
gaiaHausdorffDistance
GAIAGEO_DECLARE int gaiaHausdorffDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
gaiaIsValidDetailEx_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetailEx_r(const void *p_cache, gaiaGeomCollPtr geom, int esri_flag)
return a Geometry detail causing a Geometry to be invalid
gaiaIsValidDetail_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r(const void *p_cache, gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
gaia3DDistance
GAIAGEO_DECLARE int gaia3DDistance(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the minimum 3D distance intercurring between two Geometry objects.
gaiaTransformEx
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].
gaiaGeomCollCovers
GAIAGEO_DECLARE int gaiaGeomCollCovers(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry covers another one.
gaiaGeometryUnion_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
gaiaSetProjDatabasePath
GAIAGEO_DECLARE const char * gaiaSetProjDatabasePath(const void *p_cache, const char *path)
Sets the PATH leading to the private PROJ.6 database.
gaiaFromGeos_XYZ_r
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZ dims].
gaiaGetProjDatabasePath
GAIAGEO_DECLARE const char * gaiaGetProjDatabasePath(const void *p_cache)
Return the currently set PATH leading to the private PROJ.6 database.