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

◆ 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
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 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
#define TRIANGLETYPE
Definition liblwgeom.h:129
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_geometry(), analyze_pa(), COLLECTIONTYPE, LWCOLLECTION::geoms, LINETYPE, lwtype_name(), MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, LWCOLLECTION::ngeoms, LWPOLY::nrings, LWLINE::points, POINTTYPE, POLYGONTYPE, LWPOLY::rings, TINTYPE, TRIANGLETYPE, and LWGEOM::type.

Referenced by analyze_geometry(), and geobuf_agg_transfn().

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