PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ analyze_geometry()

static void analyze_geometry ( struct geobuf_agg_context ctx,
LWGEOM lwgeom 
)
static

Definition at line 476 of file geobuf.c.

477 {
478  uint32_t i, type;
479  LWLINE *lwline;
480  LWPOLY *lwpoly;
481  LWCOLLECTION *lwcollection;
482  type = lwgeom->type;
483  switch (type)
484  {
485  case POINTTYPE:
486  case LINETYPE:
487  case TRIANGLETYPE:
488  lwline = (LWLINE*) lwgeom;
489  analyze_pa(ctx, lwline->points);
490  break;
491  case POLYGONTYPE:
492  lwpoly = (LWPOLY*) lwgeom;
493  for (i = 0; i < lwpoly->nrings; i++)
494  analyze_pa(ctx, lwpoly->rings[i]);
495  break;
496  case MULTIPOINTTYPE:
497  case MULTILINETYPE:
498  case MULTIPOLYGONTYPE:
499  case COLLECTIONTYPE:
500  case TINTYPE:
501  lwcollection = (LWCOLLECTION*) lwgeom;
502  for (i = 0; i < lwcollection->ngeoms; i++)
503  analyze_geometry(ctx, lwcollection->geoms[i]);
504  break;
505  default:
506  elog(ERROR, "analyze_geometry: '%s' geometry type not supported",
507  lwtype_name(type));
508  }
509 }
static void analyze_pa(struct geobuf_agg_context *ctx, POINTARRAY *pa)
Definition: geobuf.c:461
static void analyze_geometry(struct geobuf_agg_context *ctx, LWGEOM *lwgeom)
Definition: geobuf.c:476
#define COLLECTIONTYPE
Definition: liblwgeom.h:108
#define MULTILINETYPE
Definition: liblwgeom.h:106
#define LINETYPE
Definition: liblwgeom.h:103
#define MULTIPOINTTYPE
Definition: liblwgeom.h:105
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition: liblwgeom.h:102
#define TINTYPE
Definition: liblwgeom.h:116
#define MULTIPOLYGONTYPE
Definition: liblwgeom.h:107
#define POLYGONTYPE
Definition: liblwgeom.h:104
const char * lwtype_name(uint8_t type)
Return the type name string associated with a type number (e.g.
Definition: lwutil.c:216
#define TRIANGLETYPE
Definition: liblwgeom.h:115
type
Definition: ovdump.py:42
uint32_t ngeoms
Definition: liblwgeom.h:580
LWGEOM ** geoms
Definition: liblwgeom.h:575
uint8_t type
Definition: liblwgeom.h:462
POINTARRAY * points
Definition: liblwgeom.h:483
POINTARRAY ** rings
Definition: liblwgeom.h:519
uint32_t nrings
Definition: liblwgeom.h:524

References analyze_pa(), COLLECTIONTYPE, LWCOLLECTION::geoms, LINETYPE, lwtype_name(), MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, LWCOLLECTION::ngeoms, LWPOLY::nrings, LWLINE::points, POINTTYPE, POLYGONTYPE, LWPOLY::rings, TINTYPE, TRIANGLETYPE, LWGEOM::type, and ovdump::type.

Referenced by geobuf_agg_transfn().

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