mirror of
https://github.com/mapbox/tippecanoe.git
synced 2025-02-01 16:58:05 +00:00
Don't serialize the feature sequence number unless needed for -pi
This commit is contained in:
parent
9ea29601ab
commit
439b544c8c
@ -397,7 +397,6 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje
|
||||
serial_feature sf;
|
||||
sf.layer = layer;
|
||||
sf.segment = segment;
|
||||
sf.seq = *layer_seq;
|
||||
sf.t = mb_geometry[t];
|
||||
sf.has_id = has_id;
|
||||
sf.id = id_value;
|
||||
@ -410,6 +409,12 @@ int serialize_geometry(json_object *geometry, json_object *properties, json_obje
|
||||
sf.feature_minzoom = 0; // Will be filled in during index merging
|
||||
sf.extent = (long long) extent;
|
||||
|
||||
if (prevent[P_INPUT_ORDER]) {
|
||||
sf.seq = *layer_seq;
|
||||
} else {
|
||||
sf.seq = 0;
|
||||
}
|
||||
|
||||
// Calculate the center even if off the edge of the plane,
|
||||
// and then mask to bring it back into the addressable area
|
||||
long long midx = (bbox[0] / 2 + bbox[2] / 2) & ((1LL << 32) - 1);
|
||||
|
@ -176,10 +176,10 @@ static void write_geometry(drawvec const &dv, long long *fpos, FILE *out, const
|
||||
|
||||
void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, const char *fname, long long wx, long long wy, bool include_minzoom) {
|
||||
serialize_byte(geomfile, sf->t, geompos, fname);
|
||||
serialize_long_long(geomfile, sf->seq, geompos, fname);
|
||||
|
||||
long long layer = 0;
|
||||
layer |= sf->layer << 5;
|
||||
layer |= sf->layer << 6;
|
||||
layer |= (sf->seq != 0) << 5;
|
||||
layer |= (sf->index != 0) << 4;
|
||||
layer |= (sf->extent != 0) << 3;
|
||||
layer |= sf->has_id << 2;
|
||||
@ -187,6 +187,9 @@ void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, c
|
||||
layer |= sf->has_tippecanoe_maxzoom << 0;
|
||||
|
||||
serialize_long_long(geomfile, layer, geompos, fname);
|
||||
if (sf->seq != 0) {
|
||||
serialize_long_long(geomfile, sf->seq, geompos, fname);
|
||||
}
|
||||
if (sf->has_tippecanoe_minzoom) {
|
||||
serialize_int(geomfile, sf->tippecanoe_minzoom, geompos, fname);
|
||||
}
|
||||
|
11
tile.cpp
11
tile.cpp
@ -1299,11 +1299,14 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s
|
||||
break;
|
||||
}
|
||||
|
||||
long long original_seq;
|
||||
deserialize_long_long_io(geoms, &original_seq, geompos_in);
|
||||
|
||||
long long xlayer;
|
||||
deserialize_long_long_io(geoms, &xlayer, geompos_in);
|
||||
|
||||
long long original_seq = 0;
|
||||
if (xlayer & (1 << 5)) {
|
||||
deserialize_long_long_io(geoms, &original_seq, geompos_in);
|
||||
}
|
||||
|
||||
int tippecanoe_minzoom = -1, tippecanoe_maxzoom = -1;
|
||||
unsigned long long id = 0;
|
||||
bool has_id = false;
|
||||
@ -1317,7 +1320,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s
|
||||
has_id = true;
|
||||
deserialize_ulong_long_io(geoms, &id, geompos_in);
|
||||
}
|
||||
long long layer = xlayer >> 5;
|
||||
long long layer = xlayer >> 6;
|
||||
|
||||
int segment;
|
||||
deserialize_int_io(geoms, &segment, geompos_in);
|
||||
|
Loading…
x
Reference in New Issue
Block a user