PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ analyze_geometry()

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

Definition at line 477 of file geobuf.c.

478 {
479  uint32_t i, type;
480  LWLINE *lwline;
481  LWPOLY *lwpoly;
482  LWCOLLECTION *lwcollection;
483  type = lwgeom->type;
484  switch (type)
485  {
486  case POINTTYPE:
487  case LINETYPE:
488  case TRIANGLETYPE:
489  lwline = (LWLINE*) lwgeom;
490  analyze_pa(ctx, lwline->points);
491  break;
492  case POLYGONTYPE:
493  lwpoly = (LWPOLY*) lwgeom;
494  for (i = 0; i < lwpoly->nrings; i++)
495  analyze_pa(ctx, lwpoly->rings[i]);
496  break;
497  case MULTIPOINTTYPE:
498  case MULTILINETYPE:
499  case MULTIPOLYGONTYPE:
500  case COLLECTIONTYPE:
501  case TINTYPE:
502  lwcollection = (LWCOLLECTION*) lwgeom;
503  for (i = 0; i < lwcollection->ngeoms; i++)
504  analyze_geometry(ctx, lwcollection->geoms[i]);
505  break;
506  default:
507  elog(ERROR, "analyze_geometry: '%s' geometry type not supported",
508  lwtype_name(type));
509  }
510 }
static void analyze_pa(struct geobuf_agg_context *ctx, POINTARRAY *pa)
Definition: geobuf.c:462
static void analyze_geometry(struct geobuf_agg_context *ctx, LWGEOM *lwgeom)
Definition: geobuf.c:477
#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 TINTYPE
Definition: liblwgeom.h:130
#define MULTIPOLYGONTYPE
Definition: liblwgeom.h:121
#define POLYGONTYPE
Definition: liblwgeom.h:118
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:129
type
Definition: ovdump.py:42
uint32_t ngeoms
Definition: liblwgeom.h:566
LWGEOM ** geoms
Definition: liblwgeom.h:561
uint8_t type
Definition: liblwgeom.h:448
POINTARRAY * points
Definition: liblwgeom.h:469
POINTARRAY ** rings
Definition: liblwgeom.h:505
uint32_t nrings
Definition: liblwgeom.h:510

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: