PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ 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_triangle(struct geobuf_agg_context *ctx, LWTRIANGLE *lwtri)
Definition: geobuf.c:256
static Data__Geometry * encode_line(struct geobuf_agg_context *ctx, LWLINE *lwline)
Definition: geobuf.c:236
static Data__Geometry * encode_mline(struct geobuf_agg_context *ctx, LWMLINE *lwmline)
Definition: geobuf.c:272
static Data__Geometry * encode_mpoly(struct geobuf_agg_context *ctx, LWMPOLY *lwmpoly)
Definition: geobuf.c:347
static Data__Geometry * encode_poly(struct geobuf_agg_context *ctx, LWPOLY *lwpoly)
Definition: geobuf.c:309
static Data__Geometry * encode_collection(struct geobuf_agg_context *ctx, LWCOLLECTION *lwcollection)
Definition: geobuf.c:398
static Data__Geometry * encode_mpoint(struct geobuf_agg_context *ctx, LWMPOINT *lwmpoint)
Definition: geobuf.c:208
static Data__Geometry * encode_point(struct geobuf_agg_context *ctx, LWPOINT *lwpoint)
Definition: geobuf.c:187
#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
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:115
type
Definition: ovdump.py:42
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, 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: