PostGIS  3.0.6dev-r@@SVN_REVISION@@

◆ 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_triangle(struct geobuf_agg_context *ctx, LWTRIANGLE *lwtri)
Definition: geobuf.c:257
static Data__Geometry * encode_line(struct geobuf_agg_context *ctx, LWLINE *lwline)
Definition: geobuf.c:237
static Data__Geometry * encode_mline(struct geobuf_agg_context *ctx, LWMLINE *lwmline)
Definition: geobuf.c:273
static Data__Geometry * encode_mpoly(struct geobuf_agg_context *ctx, LWMPOLY *lwmpoly)
Definition: geobuf.c:348
static Data__Geometry * encode_poly(struct geobuf_agg_context *ctx, LWPOLY *lwpoly)
Definition: geobuf.c:310
static Data__Geometry * encode_collection(struct geobuf_agg_context *ctx, LWCOLLECTION *lwcollection)
Definition: geobuf.c:399
static Data__Geometry * encode_mpoint(struct geobuf_agg_context *ctx, LWMPOINT *lwmpoint)
Definition: geobuf.c:209
static Data__Geometry * encode_point(struct geobuf_agg_context *ctx, LWPOINT *lwpoint)
Definition: geobuf.c:188
#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
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, LWGEOM::type, and ovdump::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: