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

◆ lwcollection_ngeoms()

int lwcollection_ngeoms ( const LWCOLLECTION col)

Definition at line 319 of file lwcollection.c.

320{
321 uint32_t i;
322 int ngeoms = 0;
323
324 if ( ! col )
325 {
326 lwerror("Null input geometry.");
327 return 0;
328 }
329
330 for ( i = 0; i < col->ngeoms; i++ )
331 {
332 if ( col->geoms[i])
333 {
334 switch (col->geoms[i]->type)
335 {
336 case POINTTYPE:
337 case LINETYPE:
338 case CIRCSTRINGTYPE:
339 case POLYGONTYPE:
340 ngeoms += 1;
341 break;
342 case MULTIPOINTTYPE:
343 case MULTILINETYPE:
344 case MULTICURVETYPE:
345 case MULTIPOLYGONTYPE:
346 ngeoms += col->ngeoms;
347 break;
348 case COLLECTIONTYPE:
349 ngeoms += lwcollection_ngeoms((LWCOLLECTION*)col->geoms[i]);
350 break;
351 }
352 }
353 }
354 return ngeoms;
355}
#define COLLECTIONTYPE
Definition liblwgeom.h:122
#define MULTILINETYPE
Definition liblwgeom.h:120
#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
int lwcollection_ngeoms(const LWCOLLECTION *col)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
Definition lwutil.c:190
uint32_t ngeoms
Definition liblwgeom.h:566
LWGEOM ** geoms
Definition liblwgeom.h:561
uint8_t type
Definition liblwgeom.h:448

References CIRCSTRINGTYPE, COLLECTIONTYPE, LWCOLLECTION::geoms, LINETYPE, lwcollection_ngeoms(), lwerror(), MULTICURVETYPE, MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, LWCOLLECTION::ngeoms, POINTTYPE, POLYGONTYPE, and LWGEOM::type.

Referenced by lwcollection_ngeoms().

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