PostGIS 3.7.0dev-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 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: