PostGIS  3.7.0dev-r@@SVN_REVISION@@

◆ vectortile_tile_combine()

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

Definition at line 1224 of file mvt.c.

1225 {
1226  uint32_t i, j;
1227  VectorTile__Tile *tile;
1228 
1229  /* Hopelessly messing up memory ownership here */
1230  if (tile1->n_layers == 0 && tile2->n_layers == 0)
1231  return tile1;
1232  else if (tile1->n_layers == 0)
1233  return tile2;
1234  else if (tile2->n_layers == 0)
1235  return tile1;
1236 
1237  tile = palloc(sizeof(VectorTile__Tile));
1238  vector_tile__tile__init(tile);
1239  tile->layers = palloc(sizeof(void*));
1240  tile->n_layers = 0;
1241 
1242  /* Merge all matching layers in the files (basically always only one) */
1243  for (i = 0; i < tile1->n_layers; i++)
1244  {
1245  for (j = 0; j < tile2->n_layers; j++)
1246  {
1247  VectorTile__Tile__Layer *l1 = tile1->layers[i];
1248  VectorTile__Tile__Layer *l2 = tile2->layers[j];
1249  if (strcmp(l1->name, l2->name)==0)
1250  {
1251  VectorTile__Tile__Layer *layer = vectortile_layer_combine(l1, l2);
1252  if (!layer)
1253  continue;
1254  tile->layers[tile->n_layers++] = layer;
1255  /* Add a spare slot at the end of the array */
1256  tile->layers = repalloc(tile->layers, (tile->n_layers+1) * sizeof(void*));
1257  }
1258  }
1259  }
1260  return tile;
1261 }
static VectorTile__Tile__Layer * vectortile_layer_combine(VectorTile__Tile__Layer *layer, VectorTile__Tile__Layer *layer2)
Combine 2 layers.
Definition: mvt.c:1165

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: