PostGIS 3.0.6dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ encode_mpoly()

static void encode_mpoly ( mvt_agg_context ctx,
LWMPOLY lwmpoly 
)
static

Definition at line 253 of file mvt.c.

254{
255 uint32_t i, j;
256 int32_t px = 0, py = 0;
257 size_t c = 0, offset = 0;
258 LWPOLY *poly;
259 VectorTile__Tile__Feature *feature = ctx->feature;
260 feature->type = VECTOR_TILE__TILE__GEOM_TYPE__POLYGON;
261 feature->has_type = 1;
262 for (i = 0; i < lwmpoly->ngeoms; i++)
263 for (j = 0; poly = lwmpoly->geoms[i], j < poly->nrings; j++)
264 c += 3 + ((poly->rings[j]->npoints - 1) * 2);
265 feature->geometry = palloc(sizeof(*feature->geometry) * c);
266 for (i = 0; i < lwmpoly->ngeoms; i++)
267 for (j = 0; poly = lwmpoly->geoms[i], j < poly->nrings; j++)
268 offset += encode_ptarray(ctx, MVT_RING,
269 poly->rings[j], feature->geometry + offset,
270 &px, &py);
271 feature->n_geometry = offset;
272}
@ MVT_RING
Definition mvt.c:60
static uint32_t encode_ptarray(__attribute__((__unused__)) mvt_agg_context *ctx, enum mvt_type type, POINTARRAY *pa, uint32_t *buffer, int32_t *px, int32_t *py)
Definition mvt.c:122
uint32_t ngeoms
Definition liblwgeom.h:552
LWPOLY ** geoms
Definition liblwgeom.h:547
POINTARRAY ** rings
Definition liblwgeom.h:505
uint32_t nrings
Definition liblwgeom.h:510
uint32_t npoints
Definition liblwgeom.h:413
VectorTile__Tile__Feature * feature
Definition mvt.h:66

References encode_ptarray(), mvt_agg_context::feature, LWMPOLY::geoms, MVT_RING, LWMPOLY::ngeoms, POINTARRAY::npoints, LWPOLY::nrings, and LWPOLY::rings.

Referenced by encode_geometry().

Here is the call graph for this function:
Here is the caller graph for this function: