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

◆ encode_geometry()

static Data__Geometry * encode_geometry ( struct geobuf_agg_context ctx,
LWGEOM lwgeom 
)
static

Definition at line 425 of file geobuf.c.

427{
428 int type = lwgeom->type;
429 switch (type)
430 {
431 case POINTTYPE:
432 return encode_point(ctx, (LWPOINT*)lwgeom);
433 case LINETYPE:
434 return encode_line(ctx, (LWLINE*)lwgeom);
435 case TRIANGLETYPE:
436 return encode_triangle(ctx, (LWTRIANGLE *)lwgeom);
437 case POLYGONTYPE:
438 return encode_poly(ctx, (LWPOLY*)lwgeom);
439 case MULTIPOINTTYPE:
440 return encode_mpoint(ctx, (LWMPOINT*)lwgeom);
441 case MULTILINETYPE:
442 return encode_mline(ctx, (LWMLINE*)lwgeom);
443 case MULTIPOLYGONTYPE:
444 return encode_mpoly(ctx, (LWMPOLY*)lwgeom);
445 case COLLECTIONTYPE:
446 case TINTYPE:
447 return encode_collection(ctx, (LWCOLLECTION*)lwgeom);
448 default:
449 elog(ERROR, "encode_geometry: '%s' geometry type not supported",
450 lwtype_name(type));
451 }
452 return NULL;
453}
static Data__Geometry * encode_mline(struct geobuf_agg_context *ctx, LWMLINE *lwmline)
Definition geobuf.c:273
static Data__Geometry * encode_collection(struct geobuf_agg_context *ctx, LWCOLLECTION *lwcollection)
Definition geobuf.c:399
static Data__Geometry * encode_poly(struct geobuf_agg_context *ctx, LWPOLY *lwpoly)
Definition geobuf.c:310
static Data__Geometry * encode_mpoly(struct geobuf_agg_context *ctx, LWMPOLY *lwmpoly)
Definition geobuf.c:348
static Data__Geometry * encode_point(struct geobuf_agg_context *ctx, LWPOINT *lwpoint)
Definition geobuf.c:188
static Data__Geometry * encode_line(struct geobuf_agg_context *ctx, LWLINE *lwline)
Definition geobuf.c:237
static Data__Geometry * encode_triangle(struct geobuf_agg_context *ctx, LWTRIANGLE *lwtri)
Definition geobuf.c:257
static Data__Geometry * encode_mpoint(struct geobuf_agg_context *ctx, LWMPOINT *lwmpoint)
Definition geobuf.c:209
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
uint8_t type
Definition liblwgeom.h:448

References COLLECTIONTYPE, encode_collection(), encode_line(), encode_mline(), encode_mpoint(), encode_mpoly(), encode_point(), encode_poly(), encode_triangle(), LINETYPE, lwtype_name(), MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, POINTTYPE, POLYGONTYPE, TINTYPE, TRIANGLETYPE, and LWGEOM::type.

Referenced by encode_collection(), and geobuf_agg_finalfn().

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