SpatiaLite  5.0.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.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-2020
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 #ifndef DOXYGEN_SHOULD_SKIP_THIS
86 #ifndef OMIT_PROJ /* including PROJ */
87 #endif
88 
100  GAIAGEO_DECLARE void gaiaResetProjErrorMsg_r (const void *p_cache);
101 
114  GAIAGEO_DECLARE void gaiaSetProjErrorMsg_r (const void *p_cache,
115  const char *msg);
116 
131  GAIAGEO_DECLARE const char *gaiaGetProjErrorMsg_r (const void *p_cache);
132 
148  GAIAGEO_DECLARE const char *gaiaSetProjDatabasePath (const void *p_cache,
149  const char *path);
150 
165  GAIAGEO_DECLARE const char *gaiaGetProjDatabasePath (const void *p_cache);
166 
184  GAIAGEO_DECLARE char *gaiaGetProjString (const void *p_cache,
185  const char *auth_name,
186  int auth_srid);
187 
213  GAIAGEO_DECLARE char *gaiaGetProjWKT (const void *p_cache,
214  const char *auth_name,
215  int auth_srid, int style,
216  int indented, int indentation);
217 
231  GAIAGEO_DECLARE int gaiaGuessSridFromWKT (sqlite3 * db_handle,
232  const void *p_cache,
233  const char *wkt, int *srid);
234 
245  GAIAGEO_DECLARE double gaiaRadsToDegs (double rads);
246 
257  GAIAGEO_DECLARE double gaiaDegsToRads (double degs);
258 
280  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform (gaiaGeomCollPtr org,
281  const char *proj_from,
282  const char *proj_to);
283 
306  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r (const void *p_cache,
307  gaiaGeomCollPtr org,
308  const char *proj_from,
309  const char *proj_to);
310 
337  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformEx (gaiaGeomCollPtr org,
338  const char *proj_string_1,
339  const char *proj_string_2,
340  gaiaProjAreaPtr proj_bbox);
341 
369  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformEx_r (const void *p_cache,
370  gaiaGeomCollPtr org,
371  const char
372  *proj_string_1,
373  const char
374  *proj_string_2,
376  proj_bbox);
377 
401  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXY (gaiaGeomCollPtr org,
402  const char *proj_from,
403  const char *proj_to);
404 
429  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXY_r (const void *p_cache,
430  gaiaGeomCollPtr org,
431  const char *proj_from,
432  const char *proj_to);
433 
458  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXYZ (gaiaGeomCollPtr org,
459  const char *proj_from,
460  const char *proj_to);
461 
487  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXYZ_r (const void *p_cache,
488  gaiaGeomCollPtr org,
489  const char *proj_from,
490  const char *proj_to);
491 
492 
493 #endif /* end including PROJ */
494 
495 #ifndef OMIT_GEOS /* including GEOS */
496 
508  GAIAGEO_DECLARE void gaiaResetGeosMsg (void);
509 
523  GAIAGEO_DECLARE void gaiaResetGeosMsg_r (const void *p_cache);
524 
540  GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg (void);
541 
559  GAIAGEO_DECLARE const char *gaiaGetGeosErrorMsg_r (const void *p_cache);
560 
576  GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg (void);
577 
595  GAIAGEO_DECLARE const char *gaiaGetGeosWarningMsg_r (const void *p_cache);
596 
611  GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg (void);
612 
629  GAIAGEO_DECLARE const char *gaiaGetGeosAuxErrorMsg_r (const void *p_cache);
630 
646  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg (void);
647 
665  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg_r (const void
666  *p_cache);
667 
681  GAIAGEO_DECLARE void gaiaSetGeosErrorMsg (const char *msg);
682 
697  GAIAGEO_DECLARE void gaiaSetGeosErrorMsg_r (const void *p_cache,
698  const char *msg);
699 
713  GAIAGEO_DECLARE void gaiaSetGeosWarningMsg (const char *msg);
714 
729  GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r (const void *p_cache,
730  const char *msg);
731 
745  GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg (const char *msg);
746 
761  GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r (const void *p_cache,
762  const char *msg);
763 
779  GAIAGEO_DECLARE void *gaiaToGeos (const gaiaGeomCollPtr gaia);
780 
797  GAIAGEO_DECLARE void *gaiaToGeos_r (const void *p_cache,
798  const gaiaGeomCollPtr gaia);
799 
818  GAIAGEO_DECLARE void *gaiaToGeosSelective (const gaiaGeomCollPtr gaia,
819  int mode);
820 
840  GAIAGEO_DECLARE void *gaiaToGeosSelective_r (const void *p_cache,
841  const gaiaGeomCollPtr gaia,
842  int mode);
843 
860  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY (const void *geos);
861 
879  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY_r (const void *p_cache,
880  const void *geos);
881 
898  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ (const void *geos);
899 
917  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ_r (const void *p_cache,
918  const void *geos);
919 
936  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM (const void *geos);
937 
955  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM_r (const void *p_cache,
956  const void *geos);
957 
974  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM (const void *geos);
975 
993  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZM_r (const void *p_cache,
994  const void *geos);
995 
1010  GAIAGEO_DECLARE int gaiaIsSimple (gaiaGeomCollPtr geom);
1011 
1027  GAIAGEO_DECLARE int gaiaIsSimple_r (const void *p_cache,
1028  gaiaGeomCollPtr geom);
1029 
1045  GAIAGEO_DECLARE int gaiaIsClosed (gaiaLinestringPtr line);
1046 
1061  GAIAGEO_DECLARE int gaiaIsClosedGeom (gaiaGeomCollPtr geom);
1062 
1078  GAIAGEO_DECLARE int gaiaIsClosedGeom_r (const void *p_cache,
1079  gaiaGeomCollPtr geom);
1080 
1095  GAIAGEO_DECLARE int gaiaIsRing (gaiaLinestringPtr line);
1096 
1112  GAIAGEO_DECLARE int gaiaIsRing_r (const void *p_cache,
1113  gaiaLinestringPtr line);
1114 
1129  GAIAGEO_DECLARE int gaiaIsValid (gaiaGeomCollPtr geom);
1130 
1146  GAIAGEO_DECLARE char *gaiaIsValidReason (gaiaGeomCollPtr geom);
1147 
1164  GAIAGEO_DECLARE char *gaiaIsValidReason_r (const void *p_cache,
1165  gaiaGeomCollPtr geom);
1166 
1181  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail (gaiaGeomCollPtr geom);
1182 
1199  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetailEx (gaiaGeomCollPtr geom,
1200  int esri_flag);
1201 
1202 
1218  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r (const void *p_cache,
1219  gaiaGeomCollPtr geom);
1220 
1221 
1239  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetailEx_r (const void
1240  *p_cache,
1242  geom, int esri_flag);
1243 
1259  GAIAGEO_DECLARE int gaiaIsValid_r (const void *p_cache,
1260  gaiaGeomCollPtr geom);
1261 
1277  GAIAGEO_DECLARE int gaiaGeomCollLength (gaiaGeomCollPtr geom,
1278  double *length);
1279 
1296  GAIAGEO_DECLARE int gaiaGeomCollLength_r (const void *p_cache,
1297  gaiaGeomCollPtr geom,
1298  double *length);
1299 
1318  GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter (gaiaGeomCollPtr geom,
1319  int perimeter,
1320  double *length);
1321 
1341  GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter_r (const void *p_cache,
1342  gaiaGeomCollPtr geom,
1343  int perimeter,
1344  double *length);
1345 
1361  GAIAGEO_DECLARE int gaiaGeomCollArea (gaiaGeomCollPtr geom, double *area);
1362 
1379  GAIAGEO_DECLARE int gaiaGeomCollArea_r (const void *p_cache,
1380  gaiaGeomCollPtr geom, double *area);
1381 
1400  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize (gaiaGeomCollPtr geom,
1401  int force_multi);
1402 
1422  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize_r (const void *p_cache,
1423  gaiaGeomCollPtr geom,
1424  int force_multi);
1441  GAIAGEO_DECLARE int gaiaGeomCollEquals (gaiaGeomCollPtr geom1,
1442  gaiaGeomCollPtr geom2);
1460  GAIAGEO_DECLARE int gaiaGeomCollEquals_r (const void *p_cache,
1461  gaiaGeomCollPtr geom1,
1462  gaiaGeomCollPtr geom2);
1463 
1480  GAIAGEO_DECLARE int gaiaGeomCollDisjoint (gaiaGeomCollPtr geom1,
1481  gaiaGeomCollPtr geom2);
1482 
1500  GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r (const void *p_cache,
1501  gaiaGeomCollPtr geom1,
1502  gaiaGeomCollPtr geom2);
1503 
1523  GAIAGEO_DECLARE int gaiaGeomCollPreparedDisjoint (const void *p_cache,
1524  gaiaGeomCollPtr geom1,
1525  unsigned char *blob1,
1526  int size1,
1527  gaiaGeomCollPtr geom2,
1528  unsigned char *blob2,
1529  int size2);
1530 
1548  GAIAGEO_DECLARE int gaiaGeomCollIntersects (gaiaGeomCollPtr geom1,
1549  gaiaGeomCollPtr geom2);
1550 
1569  GAIAGEO_DECLARE int gaiaGeomCollIntersects_r (const void *p_cache,
1570  gaiaGeomCollPtr geom1,
1571  gaiaGeomCollPtr geom2);
1572 
1592  GAIAGEO_DECLARE int gaiaGeomCollPreparedIntersects (const void *p_cache,
1593  gaiaGeomCollPtr geom1,
1594  unsigned char *blob1,
1595  int size1,
1596  gaiaGeomCollPtr geom2,
1597  unsigned char *blob2,
1598  int size2);
1599 
1617  GAIAGEO_DECLARE int gaiaGeomCollOverlaps (gaiaGeomCollPtr geom1,
1618  gaiaGeomCollPtr geom2);
1619 
1638  GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r (const void *p_cache,
1639  gaiaGeomCollPtr geom1,
1640  gaiaGeomCollPtr geom2);
1641 
1661  GAIAGEO_DECLARE int gaiaGeomCollPreparedOverlaps (const void *p_cache,
1662  gaiaGeomCollPtr geom1,
1663  unsigned char *blob1,
1664  int size1,
1665  gaiaGeomCollPtr geom2,
1666  unsigned char *blob2,
1667  int size2);
1668 
1686  GAIAGEO_DECLARE int gaiaGeomCollCrosses (gaiaGeomCollPtr geom1,
1687  gaiaGeomCollPtr geom2);
1688 
1707  GAIAGEO_DECLARE int gaiaGeomCollCrosses_r (const void *p_cache,
1708  gaiaGeomCollPtr geom1,
1709  gaiaGeomCollPtr geom2);
1710 
1730  GAIAGEO_DECLARE int gaiaGeomCollPreparedCrosses (const void *p_cache,
1731  gaiaGeomCollPtr geom1,
1732  unsigned char *blob1,
1733  int size1,
1734  gaiaGeomCollPtr geom2,
1735  unsigned char *blob2,
1736  int size2);
1737 
1755  GAIAGEO_DECLARE int gaiaGeomCollContains (gaiaGeomCollPtr geom1,
1756  gaiaGeomCollPtr geom2);
1757 
1776  GAIAGEO_DECLARE int gaiaGeomCollContains_r (const void *p_cache,
1777  gaiaGeomCollPtr geom1,
1778  gaiaGeomCollPtr geom2);
1779 
1799  GAIAGEO_DECLARE int gaiaGeomCollPreparedContains (const void *p_cache,
1800  gaiaGeomCollPtr geom1,
1801  unsigned char *blob1,
1802  int size1,
1803  gaiaGeomCollPtr geom2,
1804  unsigned char *blob2,
1805  int size2);
1806 
1824  GAIAGEO_DECLARE int gaiaGeomCollWithin (gaiaGeomCollPtr geom1,
1825  gaiaGeomCollPtr geom2);
1826 
1845  GAIAGEO_DECLARE int gaiaGeomCollWithin_r (const void *p_cache,
1846  gaiaGeomCollPtr geom1,
1847  gaiaGeomCollPtr geom2);
1848 
1868  GAIAGEO_DECLARE int gaiaGeomCollPreparedWithin (const void *p_cache,
1869  gaiaGeomCollPtr geom1,
1870  unsigned char *blob1,
1871  int size1,
1872  gaiaGeomCollPtr geom2,
1873  unsigned char *blob2,
1874  int size2);
1875 
1893  GAIAGEO_DECLARE int gaiaGeomCollTouches (gaiaGeomCollPtr geom1,
1894  gaiaGeomCollPtr geom2);
1895 
1914  GAIAGEO_DECLARE int gaiaGeomCollTouches_r (const void *p_cache,
1915  gaiaGeomCollPtr geom1,
1916  gaiaGeomCollPtr geom2);
1917 
1937  GAIAGEO_DECLARE int gaiaGeomCollPreparedTouches (const void *p_cache,
1938  gaiaGeomCollPtr geom1,
1939  unsigned char *blob1,
1940  int size1,
1941  gaiaGeomCollPtr geom2,
1942  unsigned char *blob2,
1943  int size2);
1944 
1964  GAIAGEO_DECLARE int gaiaGeomCollRelate (gaiaGeomCollPtr geom1,
1965  gaiaGeomCollPtr geom2,
1966  const char *pattern);
1967 
1987  GAIAGEO_DECLARE int gaiaGeomCollRelate_r (const void *p_cache,
1988  gaiaGeomCollPtr geom1,
1989  gaiaGeomCollPtr geom2,
1990  const char *pattern);
1991 
2015  geom1,
2017  geom2, int mode);
2018 
2041  GAIAGEO_DECLARE char *gaiaGeomCollRelateBoundaryNodeRule_r (const void
2042  *p_cache,
2044  geom1,
2046  geom2,
2047  int mode);
2048 
2065  GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch (const char
2066  *matrix,
2067  const char
2068  *pattern);
2069 
2086  GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch_r (const void
2087  *p_cache,
2088  const char
2089  *matrix,
2090  const char
2091  *pattern);
2092 
2110  GAIAGEO_DECLARE int gaiaGeomCollDistance (gaiaGeomCollPtr geom1,
2111  gaiaGeomCollPtr geom2,
2112  double *dist);
2113 
2132  GAIAGEO_DECLARE int gaiaGeomCollDistance_r (const void *p_cache,
2133  gaiaGeomCollPtr geom1,
2134  gaiaGeomCollPtr geom2,
2135  double *dist);
2136 
2157  geom1,
2159  geom2);
2160 
2181  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection_r (const void
2182  *p_cache,
2184  geom1,
2186  geom2);
2187 
2206  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion (gaiaGeomCollPtr geom1,
2207  gaiaGeomCollPtr geom2);
2208 
2228  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r (const void *p_cache,
2230  geom1,
2231  gaiaGeomCollPtr geom2);
2232 
2252  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded (gaiaGeomCollPtr geom);
2253 
2274  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r (const void *p_cache,
2275  gaiaGeomCollPtr geom);
2276 
2295  geom1,
2297  geom2);
2298 
2317  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r (const void
2318  *p_cache,
2320  geom1,
2322  geom2);
2323 
2342  geom1,
2344  geom2);
2345 
2364  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r (const void
2365  *p_cache,
2367  geom1,
2369  geom2);
2370 
2387  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary (gaiaGeomCollPtr geom);
2388 
2406  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary_r (const void *p_cache,
2407  gaiaGeomCollPtr geom);
2408 
2424  GAIAGEO_DECLARE int gaiaGeomCollCentroid (gaiaGeomCollPtr geom, double *x,
2425  double *y);
2426 
2443  GAIAGEO_DECLARE int gaiaGeomCollCentroid_r (const void *p_cache,
2444  gaiaGeomCollPtr geom,
2445  double *x, double *y);
2446 
2462  GAIAGEO_DECLARE int gaiaGetPointOnSurface (gaiaGeomCollPtr geom,
2463  double *x, double *y);
2464 
2481  GAIAGEO_DECLARE int gaiaGetPointOnSurface_r (const void *p_cache,
2482  gaiaGeomCollPtr geom,
2483  double *x, double *y);
2484 
2504  geom,
2505  double tolerance);
2506 
2526  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r (const void
2527  *p_cache,
2529  geom,
2530  double tolerance);
2531 
2550  GAIAGEO_DECLARE gaiaGeomCollPtr
2552  double tolerance);
2553 
2573  GAIAGEO_DECLARE gaiaGeomCollPtr
2574  gaiaGeomCollSimplifyPreserveTopology_r (const void *p_cache,
2575  gaiaGeomCollPtr geom,
2576  double tolerance);
2577 
2594  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull (gaiaGeomCollPtr geom);
2595 
2613  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r (const void *p_cache,
2614  gaiaGeomCollPtr geom);
2615 
2635  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer (gaiaGeomCollPtr geom,
2636  double radius,
2637  int points);
2638 
2659  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r (const void *p_cache,
2661  geom, double radius,
2662  int points);
2663 
2664 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
2665 #ifdef GEOS_ADVANCED
2666 #endif
2667 
2684  GAIAGEO_DECLARE int gaiaHausdorffDistance (gaiaGeomCollPtr geom1,
2685  gaiaGeomCollPtr geom2,
2686  double *dist);
2687 
2705  GAIAGEO_DECLARE int gaiaHausdorffDistance_r (const void *p_cache,
2706  gaiaGeomCollPtr geom1,
2707  gaiaGeomCollPtr geom2,
2708  double *dist);
2709 
2730  GAIAGEO_DECLARE int gaiaHausdorffDistanceDensify (gaiaGeomCollPtr geom1,
2731  gaiaGeomCollPtr geom2,
2732  double densify_fract,
2733  double *dist);
2734 
2756  GAIAGEO_DECLARE int gaiaHausdorffDistanceDensify_r (const void *p_cache,
2757  gaiaGeomCollPtr geom1,
2758  gaiaGeomCollPtr geom2,
2759  double densify_fract,
2760  double *dist);
2761 
2778  GAIAGEO_DECLARE int gaiaFrechetDistance (gaiaGeomCollPtr geom1,
2779  gaiaGeomCollPtr geom2,
2780  double *dist);
2781 
2799  GAIAGEO_DECLARE int gaiaFrechetDistance_r (const void *p_cache,
2800  gaiaGeomCollPtr geom1,
2801  gaiaGeomCollPtr geom2,
2802  double *dist);
2803 
2824  GAIAGEO_DECLARE int gaiaFrechetDistanceDensify (gaiaGeomCollPtr geom1,
2825  gaiaGeomCollPtr geom2,
2826  double densify_fract,
2827  double *dist);
2828 
2850  GAIAGEO_DECLARE int gaiaFrechetDistanceDensify_r (const void *p_cache,
2851  gaiaGeomCollPtr geom1,
2852  gaiaGeomCollPtr geom2,
2853  double densify_fract,
2854  double *dist);
2855 
2877  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve (gaiaGeomCollPtr geom,
2878  double radius,
2879  int points,
2880  int left_right);
2881 
2904  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r (const void *p_cache,
2905  gaiaGeomCollPtr geom,
2906  double radius,
2907  int points,
2908  int left_right);
2909 
2932  geom,
2933  double radius,
2934  int points,
2935  int left_right);
2936 
2959  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r (const void
2960  *p_cache,
2962  geom,
2963  double radius,
2964  int points,
2965  int left_right);
2966 
2984  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths (gaiaGeomCollPtr geom1,
2985  gaiaGeomCollPtr geom2);
2986 
3005  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r (const void *p_cache,
3006  gaiaGeomCollPtr geom1,
3007  gaiaGeomCollPtr geom2);
3008 
3029  ln_geom,
3030  double fraction);
3031 
3052  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r (const void
3053  *p_cache,
3055  ln_geom,
3056  double
3057  fraction);
3058 
3080  GAIAGEO_DECLARE gaiaGeomCollPtr
3082  double distance);
3083 
3106  GAIAGEO_DECLARE gaiaGeomCollPtr
3107  gaiaLineInterpolateEquidistantPoints_r (const void *p_cache,
3108  gaiaGeomCollPtr ln_geom,
3109  double distance);
3110 
3133  ln_geom,
3134  double start_fraction,
3135  double end_fraction);
3136 
3159  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r (const void *p_cache,
3161  ln_geom,
3162  double
3163  start_fraction,
3164  double end_fraction);
3165 
3185  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine (gaiaGeomCollPtr geom1,
3186  gaiaGeomCollPtr geom2);
3187 
3208  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r (const void *p_cache,
3209  gaiaGeomCollPtr geom1,
3210  gaiaGeomCollPtr geom2);
3211 
3231  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap (gaiaGeomCollPtr geom1,
3232  gaiaGeomCollPtr geom2,
3233  double tolerance);
3234 
3255  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r (const void *p_cache,
3256  gaiaGeomCollPtr geom1,
3257  gaiaGeomCollPtr geom2,
3258  double tolerance);
3259 
3276  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge (gaiaGeomCollPtr geom);
3277 
3295  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r (const void *p_cache,
3296  gaiaGeomCollPtr geom);
3297 
3316  geom1,
3317  gaiaGeomCollPtr geom2);
3318 
3337  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion (gaiaGeomCollPtr geom);
3338 
3358  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r (const void *p_cache,
3359  gaiaGeomCollPtr geom);
3360 
3378  GAIAGEO_DECLARE double gaiaLineLocatePoint (gaiaGeomCollPtr ln_geom,
3379  gaiaGeomCollPtr pt_geom);
3380 
3399  GAIAGEO_DECLARE double gaiaLineLocatePoint_r (const void *p_cache,
3400  gaiaGeomCollPtr ln_geom,
3401  gaiaGeomCollPtr pt_geom);
3402 
3417  GAIAGEO_DECLARE int gaiaGeomCollCovers (gaiaGeomCollPtr geom1,
3418  gaiaGeomCollPtr geom2);
3419 
3435  GAIAGEO_DECLARE int gaiaGeomCollCovers_r (const void *p_cache,
3436  gaiaGeomCollPtr geom1,
3437  gaiaGeomCollPtr geom2);
3438 
3458  GAIAGEO_DECLARE int gaiaGeomCollPreparedCovers (const void *p_cache,
3459  gaiaGeomCollPtr geom1,
3460  unsigned char *blob1,
3461  int size1,
3462  gaiaGeomCollPtr geom2,
3463  unsigned char *blob2,
3464  int size2);
3465 
3481  GAIAGEO_DECLARE int gaiaGeomCollCoveredBy (gaiaGeomCollPtr geom1,
3482  gaiaGeomCollPtr geom2);
3483 
3500  GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r (const void *p_cache,
3501  gaiaGeomCollPtr geom1,
3502  gaiaGeomCollPtr geom2);
3503 
3524  GAIAGEO_DECLARE int gaiaGeomCollPreparedCoveredBy (const void *p_cache,
3525  gaiaGeomCollPtr geom1,
3526  unsigned char *blob1,
3527  int size1,
3528  gaiaGeomCollPtr geom2,
3529  unsigned char *blob2,
3530  int size2);
3531 
3554  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid (gaiaGeomCollPtr geom,
3555  double origin_x,
3556  double origin_y,
3557  double size, int mode);
3558 
3582  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid_r (const void *p_cache,
3583  gaiaGeomCollPtr geom,
3584  double origin_x,
3585  double origin_y,
3586  double size, int mode);
3587 
3610  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid (gaiaGeomCollPtr geom,
3611  double origin_x,
3612  double origin_y,
3613  double size, int mode);
3614 
3638  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid_r (const void *p_cache,
3640  geom,
3641  double origin_x,
3642  double origin_y,
3643  double size,
3644  int mode);
3645 
3668  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid (gaiaGeomCollPtr geom,
3669  double origin_x,
3670  double origin_y,
3671  double size, int mode);
3672 
3696  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r (const void *p_cache,
3697  gaiaGeomCollPtr geom,
3698  double origin_x,
3699  double origin_y,
3700  double size, int mode);
3701 
3702 #endif /* end GEOS advanced features */
3703 
3704 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3705 #ifdef GEOS_TRUNK
3706 #endif
3707 
3729  geom,
3730  double
3731  tolerance,
3732  int only_edges);
3733 
3755  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r (const void
3756  *p_cache,
3758  geom,
3759  double
3760  tolerance,
3761  int
3762  only_edges);
3763 
3784  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram (gaiaGeomCollPtr geom,
3785  double
3786  extra_frame_size,
3787  double tolerance,
3788  int only_edges);
3789 
3811  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r (const void *p_cache,
3813  geom,
3814  double
3815  extra_frame_size,
3816  double tolerance,
3817  int only_edges);
3818 
3847  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull (gaiaGeomCollPtr geom,
3848  double factor,
3849  double tolerance,
3850  int allow_holes);
3851 
3881  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r (const void *p_cache,
3882  gaiaGeomCollPtr geom,
3883  double factor,
3884  double tolerance,
3885  int allow_holes);
3886 
3887 #endif /* end GEOS experimental features */
3888 
3889 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3890 #ifdef ENABLE_RTTOPO
3891 #endif
3892 
3903  GAIAGEO_DECLARE void gaiaResetRtTopoMsg (const void *p_cache);
3904 
3918  GAIAGEO_DECLARE const char *gaiaGetRtTopoErrorMsg (const void *p_cache);
3919 
3935  GAIAGEO_DECLARE const char *gaiaGetRtTopoWarningMsg (const void *p_cache);
3936 
3948  GAIAGEO_DECLARE void gaiaSetRtTopoErrorMsg (const void *p_cache,
3949  const char *msg);
3950 
3962  GAIAGEO_DECLARE void gaiaSetRtTopoWarningMsg (const void *p_cache,
3963  const char *msg);
3964 
3984  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid (const void *p_cache,
3985  gaiaGeomCollPtr geom);
3986 
4007  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded (const void
4008  *p_cache,
4010  geom);
4011 
4032  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize (const void *p_cache,
4033  gaiaGeomCollPtr geom,
4034  double dist);
4035 
4054  GAIAGEO_DECLARE int gaiaAzimuth (const void *p_cache, double xa,
4055  double ya, double xb, double yb,
4056  double *azimuth);
4057 
4078  GAIAGEO_DECLARE int gaiaEllipsoidAzimuth (const void *p_cache, double xa,
4079  double ya, double xb, double yb,
4080  double a, double b,
4081  double *azimuth);
4082 
4103  GAIAGEO_DECLARE int gaiaProjectedPoint (const void *p_cache, double x1,
4104  double y1, double a, double b,
4105  double distance, double azimuth,
4106  double *x2, double *y2);
4107 
4122  GAIAGEO_DECLARE char *gaiaGeoHash (const void *p_cache,
4123  gaiaGeomCollPtr geom, int precision);
4124 
4142  GAIAGEO_DECLARE char *gaiaAsX3D (const void *p_cache,
4143  gaiaGeomCollPtr geom, const char *srs,
4144  int precision, int options,
4145  const char *refid);
4146 
4163  GAIAGEO_DECLARE int gaia3DDistance (const void *p_cache,
4164  gaiaGeomCollPtr geom1,
4165  gaiaGeomCollPtr geom2, double *dist);
4166 
4183  GAIAGEO_DECLARE int gaiaMaxDistance (const void *p_cache,
4184  gaiaGeomCollPtr geom1,
4185  gaiaGeomCollPtr geom2, double *dist);
4186 
4203  GAIAGEO_DECLARE int gaia3DMaxDistance (const void *p_cache,
4204  gaiaGeomCollPtr geom1,
4205  gaiaGeomCollPtr geom2, double *dist);
4206 
4221  GAIAGEO_DECLARE int gaia3dLength (const void *p_cache,
4222  gaiaGeomCollPtr geom, double *length);
4223 
4243  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit (const void *p_cache,
4244  gaiaGeomCollPtr input,
4245  gaiaGeomCollPtr blade);
4246 
4267  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft (const void *p_cache,
4268  gaiaGeomCollPtr input,
4269  gaiaGeomCollPtr blade);
4270 
4291  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight (const void *p_cache,
4292  gaiaGeomCollPtr input,
4293  gaiaGeomCollPtr blade);
4294 
4312  GAIAGEO_DECLARE int gaiaGeodesicArea (const void *p_cache,
4313  gaiaGeomCollPtr geom, double a,
4314  double b, int use_ellipsoid,
4315  double *area);
4316 
4334  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines (const void *p_cache,
4335  gaiaGeomCollPtr input);
4336 
4354  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSubdivide (const void *p_cache,
4355  gaiaGeomCollPtr input,
4356  int max_vertices);
4357 
4382  GAIAGEO_DECLARE int gaiaToTWKB (const void *p_cache,
4383  gaiaGeomCollPtr geom,
4384  unsigned char precision_xy,
4385  unsigned char precision_z,
4386  unsigned char precision_m, int with_size,
4387  int with_bbox, unsigned char **twkb,
4388  int *size_twkb);
4389 
4407  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromTWKB (const void *p_cache,
4408  const unsigned char *twkb,
4409  int twkb_size, int srid);
4410 
4431  GAIAGEO_DECLARE int gaiaAsEncodedPolyLine (const void *p_cache,
4432  gaiaGeomCollPtr geom,
4433  unsigned char precision,
4434  char **encoded, int *len);
4435 
4452  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineFromEncodedPolyline (const void
4453  *p_cache,
4454  const char
4455  *encoded,
4456  unsigned char
4457  precision);
4458 
4459 #endif /* end RTTOPO support */
4460 
4482  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLine (sqlite3 * db_handle,
4483  gaiaGeomCollPtr geom1,
4484  gaiaGeomCollPtr geom2,
4485  double tolerance);
4486 
4509  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLineExceptions (sqlite3 *
4510  db_handle,
4512  geom1,
4514  geom2,
4515  double tolerance,
4516  int interpolated);
4517 
4518 #endif /* end including GEOS */
4519 
4548  GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnapToGrid (gaiaGeomCollPtr geom,
4549  double origin_x,
4550  double origin_y,
4551  double origin_z,
4552  double origin_m,
4553  double size_x,
4554  double size_y,
4555  double size_z,
4556  double size_m);
4557 
4558 #ifdef __cplusplus
4559 }
4560 #endif
4561 
4562 #endif /* _GG_ADVANCED_H */
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 int gaiaGeomCollRelate_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg(const char *msg)
Set the current GEOS (auxiliary) error message.
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 int gaiaGeomCollLengthOrPerimeter(gaiaGeomCollPtr geom, int perimeter, double *length)
Measures the total Length or Perimeter for a Geometry object.
GAIAGEO_DECLARE int gaiaGetPointOnSurface_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
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 gaiaGeomCollPtr gaiaFromGeos_XY_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
GAIAGEO_DECLARE void gaiaSetGeosErrorMsg(const char *msg)
Set the current GEOS error message.
GAIAGEO_DECLARE void gaiaSetGeosWarningMsg_r(const void *p_cache, const char *msg)
Set the current GEOS warning message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge(gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg(void)
Return the latest GEOS warning message (if any)
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 gaiaGeomCollPtr gaiaGeometryDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
GAIAGEO_DECLARE int gaiaHausdorffDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaiaGeomCollLength(gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull_r(const void *p_cache, gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
GAIAGEO_DECLARE int gaiaGeomCollArea_r(const void *p_cache, gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid(const void *p_cache, gaiaGeomCollPtr geom)
Utility function: MakeValid.
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 gaiaShortestLine_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shared Paths.
GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg_r(const void *p_cache)
Return the latest GEOS warning message (if any)
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 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 gaiaGeomCollPtr gaiaSingleSidedBuffer(gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Single Sided Buffer.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary(gaiaGeomCollPtr geom)
Spatial operator: Boundary.
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 gaiaGeomCollPtr gaiaSnap(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
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 const char * gaiaGetRtTopoWarningMsg(const void *p_cache)
Return the latest RTTOPO warning message (if any)
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 gaiaLineInterpolateEquidistantPoints_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
GAIAGEO_DECLARE int gaiaGeomCollDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaiaGeomCollContains_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Contains.
GAIAGEO_DECLARE int gaiaGeomCollEquals(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Equals.
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 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 int gaiaGeomCollCentroid_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
GAIAGEO_DECLARE char * gaiaGeoHash(const void *p_cache, gaiaGeomCollPtr geom, int precision)
Utility function: GeoHash.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull(gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
GAIAGEO_DECLARE int gaiaGeomCollTouches(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Touches.
GAIAGEO_DECLARE void * gaiaToGeosSelective(const gaiaGeomCollPtr gaia, int mode)
Converts a Geometry object into a GEOS Geometry.
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 gaiaGeometryDifference_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitRight(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: SplitRight.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shared Paths.
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 gaiaGeomCollEquals_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Equals.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLine(sqlite3 *db_handle, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Utility function: DrapeLine.
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 gaiaDelaunayTriangulation(gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize(gaiaGeomCollPtr geom, int force_multi)
Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: SymDifference.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion(gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
GAIAGEO_DECLARE int gaiaIsRing(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
GAIAGEO_DECLARE int gaiaGeomCollWithin_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Within.
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 gaiaGeomCollPtr gaiaBoundary_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Boundary.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail(gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetailEx(gaiaGeomCollPtr geom, int esri_flag)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYM dims].
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 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 gaiaGeomCollPtr gaiaLinesCutAtNodes(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Line Cut At Nodes.
GAIAGEO_DECLARE int gaiaIsRing_r(const void *p_cache, gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
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 void * gaiaToGeosSelective_r(const void *p_cache, const gaiaGeomCollPtr gaia, int mode)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY(const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYZ(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZ dims].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines(const void *p_cache, gaiaGeomCollPtr input)
Utility function: re-noding lines.
GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
GAIAGEO_DECLARE int gaiaGeomCollContains(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Contains.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
GAIAGEO_DECLARE int gaiaGeomCollIntersects_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intersects.
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 int gaiaGeomCollCoveredBy(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry is covered by another one.
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 int gaiaGeomCollOverlaps(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
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 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 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 void gaiaSetGeosErrorMsg_r(const void *p_cache, const char *msg)
Set the current GEOS error message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint(gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
GAIAGEO_DECLARE int gaiaGeomCollArea(gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
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 int gaiaGeomCollDisjoint(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
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 gaiaGeomCollPtr gaiaSnap_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded(gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
GAIAGEO_DECLARE int gaiaGeomCollCrosses(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Crosses.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometrySymDifference_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: SymDifference.
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 gaiaHexagonalGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: HexagonalGrid.
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 gaiaGeomCollPtr gaiaGeomCollBuffer(gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaOffsetCurve_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Offset Curve.
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 gaiaGeomCollSimplify_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
GAIAGEO_DECLARE int gaiaIsClosed(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Closed Geometry.
Container for OGC LINESTRING Geometry.
Definition: gg_structs.h:128
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 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 int gaiaIsValid_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
GAIAGEO_DECLARE int gaiaFrechetDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int gaiaGeomCollCentroid(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
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 const char * gaiaGetGeosAuxErrorMsg_r(const void *p_cache)
Return the latest GEOS (auxiliary) error message (if any)
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 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 gaiaGeomCollPtr gaiaOffsetCurve(gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Offset Curve.
GAIAGEO_DECLARE int gaiaGeomCollCrosses_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Crosses.
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 gaiaIsSimple(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram(gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCriticalPointFromGEOSmsg(void)
Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning messag...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLineExceptions(sqlite3 *db_handle, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance, int interpolated)
Utility function: DrapeLineExceptions.
GAIAGEO_DECLARE int gaiaGeomCollIntersects(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intesects.
GAIAGEO_DECLARE int gaiaGetPointOnSurface(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail_r(const void *p_cache, gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE int gaiaAzimuth(const void *p_cache, double xa, double ya, double xb, double yb, double *azimuth)
Utility function: Azimuth.
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 gaiaGeomCollWithin(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Within.
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 gaiaHausdorffDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: SquareGrid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r(const void *p_cache, gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull(gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
GAIAGEO_DECLARE void * gaiaToGeos(const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring(gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r(const void *p_cache, const char *msg)
Set the current GEOS (auxiliary) error message.
GAIAGEO_DECLARE void gaiaResetRtTopoMsg(const void *p_cache)
Resets the RTTOPO error and warning messages to an empty state.
GAIAGEO_DECLARE void * gaiaToGeos_r(const void *p_cache, const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE const char * gaiaGetRtTopoErrorMsg(const void *p_cache)
Return the latest RTTOPO error message (if any)
GAIAGEO_DECLARE int gaiaIsSimple_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
GAIAGEO_DECLARE int gaiaFrechetDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
BBOX corresponding to PROJ.6 AREA.
Definition: gg_structs.h:861
GAIAGEO_DECLARE int gaiaIsClosedGeom(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded(const void *p_cache, gaiaGeomCollPtr geom)
Utility function: MakeValidDiscarded.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplit(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: Split.
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 int gaiaIsValid(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
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 gaiaGeomCollCovers_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry covers another one.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize(const void *p_cache, gaiaGeomCollPtr geom, double dist)
Utility function: Segmentize.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints(gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
GAIAGEO_DECLARE void gaiaSetRtTopoErrorMsg(const void *p_cache, const char *msg)
Set the current RTTOPO error message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg_r(const void *p_cache)
Return the latest GEOS error message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg(void)
Return the latest GEOS (auxiliary) error message (if any)
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 gaiaGeomCollPtr gaiaSplitLeft(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: SplitLeft.
GAIAGEO_DECLARE void gaiaSetGeosWarningMsg(const char *msg)
Set the current GEOS warning message.
GAIAGEO_DECLARE int gaiaGeomCollLength_r(const void *p_cache, gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
Container for OGC GEOMETRYCOLLECTION Geometry.
Definition: gg_structs.h:226
GAIAGEO_DECLARE int gaiaIsClosedGeom_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
GAIAGEO_DECLARE int gaiaGeomCollRelate(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
GAIAGEO_DECLARE void gaiaResetGeosMsg(void)
Resets the GEOS error and warning messages to an empty state.
GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch_r(const void *p_cache, const char *matrix, const char *pattern)
Spatial relationship evalution: comparing two intersection matrices.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSubdivide(const void *p_cache, gaiaGeomCollPtr input, int max_vertices)
Utility function: subdividing Geometry.
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg(void)
Return the latest GEOS error message (if any)
GAIAGEO_DECLARE int gaiaGeomCollCovers(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry covers another one.
GAIAGEO_DECLARE int gaiaGeomCollTouches_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Touches.
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 gaiaGeomCollPtr gaiaFromGeos_XYZM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZM dims].
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 char * gaiaGeomCollRelateBoundaryNodeRule(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, int mode)
Spatial relationship evalution: Relate Boundary Node Rule.
GAIAGEO_DECLARE void gaiaSetRtTopoWarningMsg(const void *p_cache, const char *msg)
Set the current RTTOPO warning message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Intersection.
GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch(const char *matrix, const char *pattern)
Spatial relationship evalution: comparing two intersection matrices.
GAIAGEO_DECLARE void gaiaResetGeosMsg_r(const void *p_cache)
Resets the GEOS error and warning messages to an empty state.
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 gaiaGeometryIntersection_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Intersection.
GAIAGEO_DECLARE int gaiaFrechetDistanceDensify(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double densify_fract, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.