PostGIS  2.5.0dev-r@@SVN_REVISION@@
static size_t asgeojson_multipolygon_size ( const LWMPOLY mpoly,
char *  srs,
GBOX bbox,
int  precision 
)
static

MultiPolygon Geometry.

Definition at line 461 of file lwout_geojson.c.

References asgeojson_bbox_size(), asgeojson_srs_size(), LWMPOLY::flags, FLAGS_GET_Z, LWMPOLY::geoms, LWMPOLY::ngeoms, LWPOLY::nrings, pointArray_geojson_size(), and LWPOLY::rings.

Referenced by asgeojson_geom_size(), and asgeojson_multipolygon().

462 {
463  LWPOLY *poly;
464  int size;
465  uint32_t i, j;
466 
467  size = sizeof("{'type':'MultiPolygon',");
468  if (srs) size += asgeojson_srs_size(srs);
469  if (bbox) size += asgeojson_bbox_size(FLAGS_GET_Z(mpoly->flags), precision);
470  size += sizeof("'coordinates':[]}");
471 
472  for (i=0; i < mpoly->ngeoms; i++)
473  {
474  poly = mpoly->geoms[i];
475  for (j=0 ; j <poly->nrings ; j++)
476  {
477  size += pointArray_geojson_size(poly->rings[j], precision);
478  size += sizeof("[]");
479  }
480  size += sizeof("[]");
481  }
482  size += sizeof(",") * i;
483  size += sizeof("]}");
484 
485  return size;
486 }
uint32_t ngeoms
Definition: liblwgeom.h:493
static size_t asgeojson_bbox_size(int hasz, int precision)
Handle Bbox.
uint32_t nrings
Definition: liblwgeom.h:454
unsigned int uint32_t
Definition: uthash.h:78
LWPOLY ** geoms
Definition: liblwgeom.h:495
uint8_t flags
Definition: liblwgeom.h:490
POINTARRAY ** rings
Definition: liblwgeom.h:456
uint8_t precision
Definition: cu_in_twkb.c:25
#define FLAGS_GET_Z(flags)
Macros for manipulating the 'flags' byte.
Definition: liblwgeom.h:139
static size_t asgeojson_srs_size(char *srs)
Handle SRS.
Definition: lwout_geojson.c:95
static size_t pointArray_geojson_size(POINTARRAY *pa, int precision)
Returns maximum size of rendered pointarray in bytes.

Here is the call graph for this function:

Here is the caller graph for this function: