PostGIS  3.1.6dev-r@@SVN_REVISION@@

◆ lwgeom_make_geos_friendly()

static LWGEOM* lwgeom_make_geos_friendly ( LWGEOM geom)
static

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

159 {
160  LWDEBUGF(2, "lwgeom_make_geos_friendly enter (type %d)", geom->type);
161  switch (geom->type)
162  {
163  case POINTTYPE:
165  return geom;
166 
167  case LINETYPE:
168  /* lines need at least 2 points */
169  return lwline_make_geos_friendly((LWLINE*)geom);
170  break;
171 
172  case POLYGONTYPE:
173  /* polygons need all rings closed and with npoints > 3 */
174  return lwpoly_make_geos_friendly((LWPOLY*)geom);
175  break;
176 
177  case MULTILINETYPE:
178  case MULTIPOLYGONTYPE:
179  case COLLECTIONTYPE:
180  case MULTIPOINTTYPE:
182  break;
183 
184  case CIRCSTRINGTYPE:
185  case COMPOUNDTYPE:
186  case CURVEPOLYTYPE:
187  case MULTISURFACETYPE:
188  case MULTICURVETYPE:
189  default:
190  lwerror("lwgeom_make_geos_friendly: unsupported input geometry type: %s (%d)",
191  lwtype_name(geom->type),
192  geom->type);
193  break;
194  }
195  return 0;
196 }
LWGEOM * lwline_make_geos_friendly(LWLINE *line)
LWGEOM * lwpoly_make_geos_friendly(LWPOLY *poly)
LWGEOM * lwcollection_make_geos_friendly(LWCOLLECTION *g)
static void ptarray_strip_nan_coords_in_place(POINTARRAY *pa)
#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
const char * lwtype_name(uint8_t type)
Return the type name string associated with a type number (e.g.
Definition: lwutil.c:216
#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:476

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, ptarray_strip_nan_coords_in_place(), LWGEOM::type, and LWPOINT::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: