Go to the documentation of this file.
63 #ifndef _GG_ADVANCED_H
64 #ifndef DOXYGEN_SHOULD_SKIP_THIS
65 #define _GG_ADVANCED_H
69 #define GAIA2GEOS_ALL 0
72 #define GAIA2GEOS_ONLY_POINTS 1
75 #define GAIA2GEOS_ONLY_LINESTRINGS 2
78 #define GAIA2GEOS_ONLY_POLYGONS 3
85 #if defined(_WIN32) && !defined(__MINGW32__)
86 #include <spatialite/gaiaconfig-msvc.h>
88 #include <spatialite/gaiaconfig.h>
189 const char *auth_name,
218 const char *auth_name,
219 int auth_srid,
int style,
220 int indented,
int indentation);
237 const char *wkt,
int *srid);
285 const char *proj_from,
286 const char *proj_to);
312 const char *proj_from,
313 const char *proj_to);
342 const char *proj_string_1,
343 const char *proj_string_2,
406 const char *proj_from,
407 const char *proj_to);
435 const char *proj_from,
436 const char *proj_to);
463 const char *proj_from,
464 const char *proj_to);
493 const char *proj_from,
494 const char *proj_to);
1246 geom,
int esri_flag);
1529 unsigned char *blob1,
1532 unsigned char *blob2,
1598 unsigned char *blob1,
1601 unsigned char *blob2,
1667 unsigned char *blob1,
1670 unsigned char *blob2,
1736 unsigned char *blob1,
1739 unsigned char *blob2,
1805 unsigned char *blob1,
1808 unsigned char *blob2,
1874 unsigned char *blob1,
1877 unsigned char *blob2,
1943 unsigned char *blob1,
1946 unsigned char *blob2,
1970 const char *pattern);
1994 const char *pattern);
2449 double *x,
double *y);
2467 double *x,
double *y);
2487 double *x,
double *y);
2665 geom,
double radius,
2668 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
2669 #ifdef GEOS_ADVANCED
2736 double densify_fract,
2763 double densify_fract,
2830 double densify_fract,
2857 double densify_fract,
3138 double start_fraction,
3139 double end_fraction);
3168 double end_fraction);
3464 unsigned char *blob1,
3467 unsigned char *blob2,
3530 unsigned char *blob1,
3533 unsigned char *blob2,
3561 double size,
int mode);
3590 double size,
int mode);
3617 double size,
int mode);
3675 double size,
int mode);
3704 double size,
int mode);
3708 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3893 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
3894 #ifdef ENABLE_RTTOPO
4059 double ya,
double xb,
double yb,
4083 double ya,
double xb,
double yb,
4108 double y1,
double a,
double b,
4109 double distance,
double azimuth,
4110 double *x2,
double *y2);
4148 int precision,
int options,
4318 double b,
int use_ellipsoid,
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,
4412 const unsigned char *twkb,
4413 int twkb_size,
int srid);
4437 unsigned char precision,
4438 char **encoded,
int *len);
GAIAGEO_DECLARE void gaiaSetProjErrorMsg_r(const void *p_cache, const char *msg)
Set the current PROJ error message.
GAIAGEO_DECLARE int gaiaIsSimple_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
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 void gaiaSetGeosWarningMsg_r(const void *p_cache, const char *msg)
Set the current GEOS warning message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetail(gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE int gaiaGetPointOnSurface(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg(const char *msg)
Set the current GEOS (auxiliary) error message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
GAIAGEO_DECLARE int gaiaGeomCollIntersects_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intersects.
GAIAGEO_DECLARE int gaiaIsRing_r(const void *p_cache, gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
GAIAGEO_DECLARE int gaiaAzimuth(const void *p_cache, double xa, double ya, double xb, double yb, double *azimuth)
Utility function: Azimuth.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTriangularGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: TriangularGrid.
GAIAGEO_DECLARE int gaiaGeomCollCoveredBy(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry is covered by another one.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XY(const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
GAIAGEO_DECLARE int gaiaGeomCollArea_r(const void *p_cache, gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
GAIAGEO_DECLARE const char * gaiaGetGeosWarningMsg(void)
Return the latest GEOS warning message (if any)
GAIAGEO_DECLARE char * gaiaGeoHash(const void *p_cache, gaiaGeomCollPtr geom, int precision)
Utility function: GeoHash.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaNodeLines(const void *p_cache, gaiaGeomCollPtr input)
Utility function: re-noding lines.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConcaveHull(gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
GAIAGEO_DECLARE int gaiaIsClosedGeom(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation(gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDelaunayTriangulation_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance, int only_edges)
Delaunay Triangulation.
BBOX corresponding to PROJ.6 AREA.
Definition: gg_structs.h:862
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValid(const void *p_cache, gaiaGeomCollPtr geom)
Utility function: MakeValid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaPolygonize(gaiaGeomCollPtr geom, int force_multi)
Attempts to rearrange a generic Geometry object into a Polygon or MultiPolygon.
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 gaiaFromGeos_XY_r(const void *p_cache, const void *geos)
Converts a GEOS Geometry into a Geometry object [XY dims].
GAIAGEO_DECLARE int gaiaGeomCollPreparedContains(const void *p_cache, gaiaGeomCollPtr geom1, unsigned char *blob1, int size1, gaiaGeomCollPtr geom2, unsigned char *blob2, int size2)
Spatial relationship evalution: Contains (GEOSPreparedGeometry)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints(gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
GAIAGEO_DECLARE int gaiaIsClosedGeom_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Closed Linestring.
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 char * gaiaIsValidReason_r(const void *p_cache, gaiaGeomCollPtr geom)
return a TEXT string stating if a Geometry is valid and if not valid, a reason why
GAIAGEO_DECLARE int 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 int gaiaIntersectionMatrixPatternMatch_r(const void *p_cache, const char *matrix, const char *pattern)
Spatial relationship evalution: comparing two intersection matrices.
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 gaiaGeomCollPtr gaiaSingleSidedBuffer(gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Single Sided Buffer.
GAIAGEO_DECLARE int gaiaGeomCollDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
GAIAGEO_DECLARE int gaiaMaxDistance(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the maximum 2D distance intercurring between two Geometry objects.
GAIAGEO_DECLARE const char * gaiaGetGeosAuxErrorMsg(void)
Return the latest GEOS (auxiliary) error message (if any)
GAIAGEO_DECLARE int gaiaGeomCollArea(gaiaGeomCollPtr geom, double *area)
Measures the total Area for a Geometry object.
GAIAGEO_DECLARE int gaiaGeomCollEquals(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Equals.
GAIAGEO_DECLARE void gaiaResetProjErrorMsg_r(const void *p_cache)
Resets the PROJ error 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 void gaiaSetGeosWarningMsg(const char *msg)
Set the current GEOS warning message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.
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 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 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 const char * gaiaGetGeosAuxErrorMsg_r(const void *p_cache)
Return the latest GEOS (auxiliary) error message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaBoundary(gaiaGeomCollPtr geom)
Spatial operator: Boundary.
GAIAGEO_DECLARE int gaiaIsRing(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Ring Geometry.
GAIAGEO_DECLARE int gaiaIsSimple(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Simple Geometry.
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 gaiaLineInterpolatePoint_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaConvexHull(gaiaGeomCollPtr geom)
Spatial operator: ConvexHull.
GAIAGEO_DECLARE void gaiaResetGeosMsg_r(const void *p_cache)
Resets the GEOS error and warning messages to an empty state.
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 const char * gaiaGetProjErrorMsg_r(const void *p_cache)
Return the latest PROJ error message (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
GAIAGEO_DECLARE int gaiaFrechetDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSquareGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: SquareGrid.
GAIAGEO_DECLARE int gaiaGeomCollDisjoint(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLine(sqlite3 *db_handle, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Utility function: DrapeLine.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSharedPaths_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shared Paths.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSnap_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance)
Spatial operator: Snap.
GAIAGEO_DECLARE char * gaiaGeomCollRelateBoundaryNodeRule_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, int mode)
Spatial relationship evalution: Relate Boundary Node Rule.
GAIAGEO_DECLARE void * gaiaToGeos_r(const void *p_cache, const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram(gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
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 double gaiaRadsToDegs(double rads)
Converts and angle from Radians into Degrees.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaIsValidDetailEx(gaiaGeomCollPtr geom, int esri_flag)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE int gaiaGeomCollContains(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Contains.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSingleSidedBuffer_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Single Sided Buffer.
GAIAGEO_DECLARE int gaiaGeomCollCoveredBy_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry is covered by another one.
GAIAGEO_DECLARE int gaiaGeomCollLength(gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
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 gaiaTransformXY(gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection] This is a special "f...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolatePoint(gaiaGeomCollPtr ln_geom, double fraction)
Spatial operator: Line Interpolate Point.
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 gaiaGeomCollPtr gaiaFromGeos_XYZ(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZ dims].
GAIAGEO_DECLARE int gaiaGeomCollCentroid_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
GAIAGEO_DECLARE void gaiaSetGeosAuxErrorMsg_r(const void *p_cache, const char *msg)
Set the current GEOS (auxiliary) error message.
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 int gaiaIsValid_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
GAIAGEO_DECLARE int gaiaGeomCollCentroid(gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: Centroid.
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 gaiaUnaryUnion(gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
GAIAGEO_DECLARE int gaiaIsValid(gaiaGeomCollPtr geom)
Checks if a Geometry object represents an OGC Valid Geometry.
GAIAGEO_DECLARE int gaiaFrechetDistanceDensify_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double densify_fract, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSplitLeft(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: SplitLeft.
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 gaiaBoundary_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Boundary.
GAIAGEO_DECLARE int gaiaGeomCollLength_r(const void *p_cache, gaiaGeomCollPtr geom, double *length)
Measures the total Length for a Geometry object.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinesCutAtNodes(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Line Cut At Nodes.
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg(void)
Return the latest GEOS error message (if any)
GAIAGEO_DECLARE void * gaiaToGeosSelective_r(const void *p_cache, const gaiaGeomCollPtr gaia, int mode)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE int 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 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 gaiaFromGeos_XYZM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYZM dims].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransform_r(const void *p_cache, gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection].
GAIAGEO_DECLARE char * gaiaGetProjWKT(const void *p_cache, const char *auth_name, int auth_srid, int style, int indented, int indentation)
Return the WKT expression corresponding to a given CRS defined within the private PROJ....
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology(gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
GAIAGEO_DECLARE void * gaiaToGeos(const gaiaGeomCollPtr gaia)
Converts a Geometry object into a GEOS Geometry.
GAIAGEO_DECLARE double gaiaDegsToRads(double degs)
Converts and angle from Degrees into Radians.
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 gaiaGeomCollPtr gaiaGeometrySymDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: SymDifference.
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...
Container for OGC LINESTRING Geometry.
Definition: gg_structs.h:129
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaFromGeos_XYM(const void *geos)
Converts a GEOS Geometry into a Geometry object [XYM dims].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDrapeLineExceptions(sqlite3 *db_handle, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double tolerance, int interpolated)
Utility function: DrapeLineExceptions.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineMerge_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
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 gaiaGeomCollPtr gaiaTransform(gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection].
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformEx_r(const void *p_cache, gaiaGeomCollPtr org, const char *proj_string_1, const char *proj_string_2, gaiaProjAreaPtr proj_bbox)
Tansforms a Geometry object into a different Reference System [aka Reprojection].
GAIAGEO_DECLARE 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 gaiaGeomCollPtr gaiaLineMerge(gaiaGeomCollPtr geom)
Spatial operator: Line Merge.
GAIAGEO_DECLARE int gaiaGeomCollOverlaps(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaVoronojDiagram_r(const void *p_cache, gaiaGeomCollPtr geom, double extra_frame_size, double tolerance, int only_edges)
Voronoj Diagram.
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 gaiaTransformXYZ(gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection] This is a special "f...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineSubstring(gaiaGeomCollPtr ln_geom, double start_fraction, double end_fraction)
Spatial operator: Line Substring.
GAIAGEO_DECLARE int gaiaGeomCollOverlaps_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Overlaps.
GAIAGEO_DECLARE char * gaiaGetProjString(const void *p_cache, const char *auth_name, int auth_srid)
Return the proj-string corresponding to a given CRS defined within the private PROJ....
GAIAGEO_DECLARE int gaiaIntersectionMatrixPatternMatch(const char *matrix, const char *pattern)
Spatial relationship evalution: comparing two intersection matrices.
GAIAGEO_DECLARE int gaiaFrechetDistance_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE const char * gaiaGetGeosErrorMsg_r(const void *p_cache)
Return the latest GEOS error message (if any)
GAIAGEO_DECLARE int gaiaFrechetDistanceDensify(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double densify_fract, double *dist)
Calculates the Frechet distance intercurring between two Geometry objects.
GAIAGEO_DECLARE int 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 gaiaGeomCollPtr gaiaConcaveHull_r(const void *p_cache, gaiaGeomCollPtr geom, double factor, double tolerance, int allow_holes)
Concave Hull.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplifyPreserveTopology_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify [preserving topology].
GAIAGEO_DECLARE int gaiaGeomCollRelate_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
GAIAGEO_DECLARE char * gaiaIsValidReason(gaiaGeomCollPtr geom)
return a TEXT string stating if a Geometry is valid and if not valid, a reason why
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid_r(const void *p_cache, gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: HexagonalGrid.
GAIAGEO_DECLARE int gaiaGeomCollLengthOrPerimeter(gaiaGeomCollPtr geom, int perimeter, double *length)
Measures the total Length or Perimeter for a Geometry object.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaShortestLine_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Shortest Line.
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 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 const char * gaiaGetGeosWarningMsg_r(const void *p_cache)
Return the latest GEOS warning message (if any)
GAIAGEO_DECLARE char * gaiaAsX3D(const void *p_cache, gaiaGeomCollPtr geom, const char *srs, int precision, int options, const char *refid)
Utility function: AsX3D.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded(gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
GAIAGEO_DECLARE void gaiaSetGeosErrorMsg(const char *msg)
Set the current GEOS error message.
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 gaiaGeomCollPtr gaiaTransformXY_r(const void *p_cache, gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection] This is a special "f...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaHexagonalGrid(gaiaGeomCollPtr geom, double origin_x, double origin_y, double size, int mode)
Utility function: HexagonalGrid.
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 gaiaCriticalPointFromGEOSmsg(void)
Attempts to (possibile) return a Point Geometry extracted from the latest GEOS error / warning messag...
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryDifference(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Difference.
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 gaiaSubdivide(const void *p_cache, gaiaGeomCollPtr input, int max_vertices)
Utility function: subdividing Geometry.
Container for OGC GEOMETRYCOLLECTION Geometry.
Definition: gg_structs.h:227
GAIAGEO_DECLARE void gaiaSetRtTopoErrorMsg(const void *p_cache, const char *msg)
Set the current RTTOPO error message.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnionCascaded_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Union Cascaded.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaUnaryUnion_r(const void *p_cache, gaiaGeomCollPtr geom)
Spatial operator: Unary Union.
GAIAGEO_DECLARE int gaiaGeomCollDisjoint_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Disjoint.
GAIAGEO_DECLARE int gaiaIsClosed(gaiaLinestringPtr line)
Checks if a Linestring object represents an OGC Closed Geometry.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformXYZ_r(const void *p_cache, gaiaGeomCollPtr org, const char *proj_from, const char *proj_to)
Tansforms a Geometry object into a different Reference System [aka Reprojection] This is a special "f...
GAIAGEO_DECLARE void gaiaResetRtTopoMsg(const void *p_cache)
Resets the RTTOPO error and warning messages to an empty state.
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 const char * gaiaGetRtTopoErrorMsg(const void *p_cache)
Return the latest RTTOPO error message (if any)
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 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 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 int gaiaGeomCollRelate(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, const char *pattern)
Spatial relationship evalution: Relate.
GAIAGEO_DECLARE int gaiaGetPointOnSurface_r(const void *p_cache, gaiaGeomCollPtr geom, double *x, double *y)
Spatial operator: PointOnSurface.
GAIAGEO_DECLARE void gaiaResetGeosMsg(void)
Resets the GEOS error and warning messages to an empty state.
GAIAGEO_DECLARE int gaiaGuessSridFromWKT(sqlite3 *db_handle, const void *p_cache, const char *wkt, int *srid)
Return the SRID corresponding to a given WKT expression (if any)
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeValidDiscarded(const void *p_cache, gaiaGeomCollPtr geom)
Utility function: MakeValidDiscarded.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollBuffer(gaiaGeomCollPtr geom, double radius, int points)
Spatial operator: Buffer.
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_r(const void *p_cache, gaiaGeomCollPtr geom, double radius, int points, int left_right)
Spatial operator: Offset Curve.
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 gaiaSplit(const void *p_cache, gaiaGeomCollPtr input, gaiaGeomCollPtr blade)
Utility function: Split.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineInterpolateEquidistantPoints_r(const void *p_cache, gaiaGeomCollPtr ln_geom, double distance)
Spatial operator: Line Interpolate Equidistant Points.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeomCollSimplify_r(const void *p_cache, gaiaGeomCollPtr geom, double tolerance)
Spatial operator: Simplify.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLineFromEncodedPolyline(const void *p_cache, const char *encoded, unsigned char precision)
Converts a GoogleMaps encoded PolyLine into a native binary Geometry (Linestring)
GAIAGEO_DECLARE int gaiaGeomCollIntersects(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial relationship evalution: Intesects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSegmentize(const void *p_cache, gaiaGeomCollPtr geom, double dist)
Utility function: Segmentize.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryIntersection(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Intersection.
GAIAGEO_DECLARE int gaiaHausdorffDistance(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the Hausdorff distance intercurring between two Geometry objects.
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 gaiaIsValidDetail_r(const void *p_cache, gaiaGeomCollPtr geom)
return a Geometry detail causing a Geometry to be invalid
GAIAGEO_DECLARE int gaia3DDistance(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2, double *dist)
Calculates the minimum 3D distance intercurring between two Geometry objects.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaTransformEx(gaiaGeomCollPtr org, const char *proj_string_1, const char *proj_string_2, gaiaProjAreaPtr proj_bbox)
Tansforms a Geometry object into a different Reference System [aka Reprojection].
GAIAGEO_DECLARE int gaiaGeomCollCovers(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Topology check: test if a Geometry covers another one.
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaGeometryUnion_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Spatial operator: Union.
GAIAGEO_DECLARE const char * gaiaSetProjDatabasePath(const void *p_cache, const char *path)
Sets the PATH leading to the private PROJ.6 database.
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 * gaiaGetProjDatabasePath(const void *p_cache)
Return the currently set PATH leading to the private PROJ.6 database.