PostGIS 3.7.0dev-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 424 of file geobuf.c.

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

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: