mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-02 16:35:40 +02:00
Oh, I didn't git add the code changes
This commit is contained in:
@@ -744,6 +744,7 @@ int serialize_feature(struct serialization_state *sst, serial_feature &sf, std::
|
||||
additional[A_GENERATE_POLYGON_LABEL_POINTS] ||
|
||||
sst->uses_gamma ||
|
||||
retain_points_multiplier > 1 ||
|
||||
preserve_multiplier_density_threshold > 0 ||
|
||||
cluster_distance != 0) {
|
||||
sf.index = bbox_index;
|
||||
} else {
|
||||
|
||||
@@ -1055,7 +1055,7 @@ static bool skip_next_feature(decompressor *geoms, std::atomic<long long> *geomp
|
||||
|
||||
struct next_feature_state {
|
||||
unsigned long long previndex = 0;
|
||||
unsigned long long prev_kept_index = 0;
|
||||
unsigned long long prev_not_dropped_index = 0;
|
||||
};
|
||||
|
||||
// This function is called repeatedly from write_tile() to retrieve the next feature
|
||||
@@ -1243,7 +1243,7 @@ static serial_feature next_feature(decompressor *geoms, std::atomic<long long> *
|
||||
count->second++;
|
||||
sf.dropped = count->second;
|
||||
} else if (preserve_multiplier_density_threshold > 0 &&
|
||||
sf.gap > ((1LL << (32 - z)) / preserve_multiplier_density_threshold) * ((1LL << (32 - z)) / preserve_multiplier_density_threshold)) {
|
||||
sf.index - next_feature_state.prev_not_dropped_index > ((1LL << (32 - z)) / preserve_multiplier_density_threshold) * ((1LL << (32 - z)) / preserve_multiplier_density_threshold)) {
|
||||
sf.dropped = FEATURE_ADDED_FOR_MULTIPLIER_DENSITY;
|
||||
} else {
|
||||
sf.dropped = FEATURE_DROPPED;
|
||||
@@ -1252,6 +1252,10 @@ static serial_feature next_feature(decompressor *geoms, std::atomic<long long> *
|
||||
sf.dropped = FEATURE_KEPT;
|
||||
}
|
||||
|
||||
if (sf.dropped != FEATURE_DROPPED) {
|
||||
next_feature_state.prev_not_dropped_index = sf.index;
|
||||
}
|
||||
|
||||
// Remove nulls, now that the expression evaluation filter has run
|
||||
|
||||
for (ssize_t i = (ssize_t) sf.keys.size() - 1; i >= 0; i--) {
|
||||
|
||||
Reference in New Issue
Block a user