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

◆ vectortile_tile_combine()

static VectorTile__Tile * vectortile_tile_combine ( VectorTile__Tile *  tile1,
VectorTile__Tile *  tile2 
)
static

Definition at line 1509 of file mvt.c.

1510{
1511 uint32_t i, j;
1512 VectorTile__Tile *tile;
1513
1514 /* Hopelessly messing up memory ownership here */
1515 if (tile1->n_layers == 0 && tile2->n_layers == 0)
1516 return tile1;
1517 else if (tile1->n_layers == 0)
1518 return tile2;
1519 else if (tile2->n_layers == 0)
1520 return tile1;
1521
1522 tile = palloc(sizeof(VectorTile__Tile));
1523 vector_tile__tile__init(tile);
1524 tile->layers = palloc(sizeof(void*));
1525 tile->n_layers = 0;
1526
1527 /* Merge all matching layers in the files (basically always only one) */
1528 for (i = 0; i < tile1->n_layers; i++)
1529 {
1530 for (j = 0; j < tile2->n_layers; j++)
1531 {
1532 VectorTile__Tile__Layer *l1 = tile1->layers[i];
1533 VectorTile__Tile__Layer *l2 = tile2->layers[j];
1534 if (strcmp(l1->name, l2->name)==0)
1535 {
1536 VectorTile__Tile__Layer *layer = vectortile_layer_combine(l1, l2);
1537 if (!layer)
1538 continue;
1539 tile->layers[tile->n_layers++] = layer;
1540 /* Add a spare slot at the end of the array */
1541 tile->layers = repalloc(tile->layers, (tile->n_layers+1) * sizeof(void*));
1542 }
1543 }
1544 }
1545 return tile;
1546}
static VectorTile__Tile__Layer * vectortile_layer_combine(const VectorTile__Tile__Layer *layer1, const VectorTile__Tile__Layer *layer2)
Definition mvt.c:1460

References vectortile_layer_combine().

Referenced by mvt_ctx_combine().

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