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

◆ 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
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: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
#define TRIANGLETYPE
Definition liblwgeom.h:115
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_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: