PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ lwgeom_make_geos_friendly()

static LWGEOM * lwgeom_make_geos_friendly ( LWGEOM geom)
static

Definition at line 126 of file liblwgeom/lwgeom_geos_clean.c.

127{
128 LWDEBUGF(2, "lwgeom_make_geos_friendly enter (type %d)", geom->type);
129 switch (geom->type)
130 {
131 case POINTTYPE:
132 case MULTIPOINTTYPE:
133 /* a point is always valid */
134 return geom;
135 break;
136
137 case LINETYPE:
138 /* lines need at least 2 points */
139 return lwline_make_geos_friendly((LWLINE*)geom);
140 break;
141
142 case POLYGONTYPE:
143 /* polygons need all rings closed and with npoints > 3 */
144 return lwpoly_make_geos_friendly((LWPOLY*)geom);
145 break;
146
147 case MULTILINETYPE:
148 case MULTIPOLYGONTYPE:
149 case COLLECTIONTYPE:
151 break;
152
153 case CIRCSTRINGTYPE:
154 case COMPOUNDTYPE:
155 case CURVEPOLYTYPE:
156 case MULTISURFACETYPE:
157 case MULTICURVETYPE:
158 default:
159 lwerror("lwgeom_make_geos_friendly: unsupported input geometry type: %s (%d)",
160 lwtype_name(geom->type),
161 geom->type);
162 break;
163 }
164 return 0;
165}
LWGEOM * lwline_make_geos_friendly(LWLINE *line)
LWGEOM * lwpoly_make_geos_friendly(LWPOLY *poly)
LWGEOM * lwcollection_make_geos_friendly(LWCOLLECTION *g)
const char * lwtype_name(uint8_t type)
Return the type name string associated with a type number (e.g.
Definition lwutil.c:216
#define COLLECTIONTYPE
Definition liblwgeom.h:122
#define COMPOUNDTYPE
Definition liblwgeom.h:124
#define CURVEPOLYTYPE
Definition liblwgeom.h:125
#define MULTILINETYPE
Definition liblwgeom.h:120
#define MULTISURFACETYPE
Definition liblwgeom.h:127
#define LINETYPE
Definition liblwgeom.h:117
#define MULTIPOINTTYPE
Definition liblwgeom.h:119
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition liblwgeom.h:116
#define MULTIPOLYGONTYPE
Definition liblwgeom.h:121
#define POLYGONTYPE
Definition liblwgeom.h:118
#define CIRCSTRINGTYPE
Definition liblwgeom.h:123
#define MULTICURVETYPE
Definition liblwgeom.h:126
#define LWDEBUGF(level, msg,...)
Definition lwgeom_log.h:88
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
Definition lwutil.c:190
uint8_t type
Definition liblwgeom.h:448

References CIRCSTRINGTYPE, COLLECTIONTYPE, COMPOUNDTYPE, CURVEPOLYTYPE, LINETYPE, lwcollection_make_geos_friendly(), LWDEBUGF, lwerror(), lwline_make_geos_friendly(), lwpoly_make_geos_friendly(), lwtype_name(), MULTICURVETYPE, MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, MULTISURFACETYPE, POINTTYPE, POLYGONTYPE, LWGEOM::type, and LWLINE::type.

Referenced by lwcollection_make_geos_friendly(), and lwgeom_make_valid().

Here is the call graph for this function:
Here is the caller graph for this function: