PostGIS  2.1.10dev-r@@SVN_REVISION@@
static uint8_t* lwcollection_to_wkb_buf ( const LWCOLLECTION col,
uint8_t *  buf,
uint8_t  variant 
)
static

Definition at line 550 of file lwout_wkb.c.

References endian_to_wkb_buf(), LWCOLLECTION::geoms, integer_to_wkb_buf(), lwgeom_to_wkb_buf(), lwgeom_wkb_needs_srid(), lwgeom_wkb_type(), LWCOLLECTION::ngeoms, LWCOLLECTION::srid, and WKB_NO_SRID.

Referenced by lwgeom_to_wkb_buf().

551 {
552  int i;
553 
554  /* Set the endian flag */
555  buf = endian_to_wkb_buf(buf, variant);
556  /* Set the geometry type */
557  buf = integer_to_wkb_buf(lwgeom_wkb_type((LWGEOM*)col, variant), buf, variant);
558  /* Set the optional SRID for extended variant */
559  if ( lwgeom_wkb_needs_srid((LWGEOM*)col, variant) )
560  buf = integer_to_wkb_buf(col->srid, buf, variant);
561  /* Set the number of sub-geometries */
562  buf = integer_to_wkb_buf(col->ngeoms, buf, variant);
563 
564  /* Write the sub-geometries. Sub-geometries do not get SRIDs, they
565  inherit from their parents. */
566  for ( i = 0; i < col->ngeoms; i++ )
567  {
568  buf = lwgeom_to_wkb_buf(col->geoms[i], buf, variant | WKB_NO_SRID);
569  }
570 
571  return buf;
572 }
static int lwgeom_wkb_needs_srid(const LWGEOM *geom, uint8_t variant)
Definition: lwout_wkb.c:47
static uint32_t lwgeom_wkb_type(const LWGEOM *geom, uint8_t variant)
Definition: lwout_wkb.c:66
static uint8_t * integer_to_wkb_buf(const int ival, uint8_t *buf, uint8_t variant)
Definition: lwout_wkb.c:180
static uint8_t * lwgeom_to_wkb_buf(const LWGEOM *geom, uint8_t *buf, uint8_t variant)
Definition: lwout_wkb.c:636
LWGEOM ** geoms
Definition: liblwgeom.h:465
int32_t srid
Definition: liblwgeom.h:462
#define WKB_NO_SRID
Definition: liblwgeom.h:1774
static uint8_t * endian_to_wkb_buf(uint8_t *buf, uint8_t variant)
Definition: lwout_wkb.c:148

Here is the call graph for this function:

Here is the caller graph for this function: