Include the layer number in the serialized geometry

This commit is contained in:
Eric Fischer 2015-03-23 15:37:49 -07:00
parent 8002609f0c
commit eb24c6e21e
2 changed files with 10 additions and 7 deletions

View File

@ -542,7 +542,8 @@ int read_json(FILE *f, const char *fname, const char *layername, int maxzoom, in
long long geomstart = geompos;
serialize_int(geomfile, mb_geometry[t], &geompos, fname, jp);
serialize_byte(geomfile, mb_geometry[t], &geompos, fname, jp);
serialize_byte(geomfile, 0, &geompos, fname, jp); // XXX layer
serialize_long_long(geomfile, metastart, &geompos, fname, jp);
parse_geometry(t, coordinates, bbox, &geompos, geomfile, VT_MOVETO, fname, jp);
serialize_byte(geomfile, VT_END, &geompos, fname, jp);
@ -809,7 +810,7 @@ int read_json(FILE *f, const char *fname, const char *layername, int maxzoom, in
}
/* end of tile */
serialize_int(geomfile, -2, &geompos, fname, jp);
serialize_byte(geomfile, -2, &geompos, fname, jp);
fclose(geomfile);
}

12
tile.cc
View File

@ -385,13 +385,14 @@ long long write_tile(char **geoms, char *metabase, unsigned *file_bbox, int z, u
*geoms = og;
while (1) {
int t;
deserialize_int(geoms, &t);
signed char t;
deserialize_byte(geoms, &t);
if (t < 0) {
break;
}
int layer = 0; // XXX layer
signed char layer;
deserialize_byte(geoms, &layer);
long long metastart;
deserialize_long_long(geoms, &metastart);
@ -470,7 +471,8 @@ long long write_tile(char **geoms, char *metabase, unsigned *file_bbox, int z, u
}
//printf("type %d, meta %lld\n", t, metastart);
serialize_int(geomfile[j], t, &geompos[j], fname, jp);
serialize_byte(geomfile[j], t, &geompos[j], fname, jp);
serialize_byte(geomfile[j], layer, &geompos[j], fname, jp);
serialize_long_long(geomfile[j], metastart, &geompos[j], fname, jp);
for (unsigned u = 0; u < geom.size(); u++) {
@ -590,7 +592,7 @@ long long write_tile(char **geoms, char *metabase, unsigned *file_bbox, int z, u
int j;
for (j = 0; j < 4; j++) {
if (within[j]) {
serialize_int(geomfile[j], -2, &geompos[j], fname, jp);
serialize_byte(geomfile[j], -2, &geompos[j], fname, jp);
within[j] = 0;
}
}