From b1e7e7c3f215ececd2a1bd15024ccbfb24931ccd Mon Sep 17 00:00:00 2001 From: Erica Fischer Date: Tue, 10 Dec 2024 16:07:05 -0800 Subject: [PATCH] Fix clipping bug when the clip region doesn't intersect the tile --- CHANGELOG.md | 4 +++ Makefile | 4 +++ overzoom.cpp | 52 ++++++++++++++++----------- platform.hpp | 6 ++-- tests/pbf/squirrels-13-2413-3077.pbf | Bin 0 -> 121179 bytes tests/pbf/squirrels-clip.json | 1 + version.hpp | 2 +- 7 files changed, 45 insertions(+), 24 deletions(-) create mode 100644 tests/pbf/squirrels-13-2413-3077.pbf create mode 100644 tests/pbf/squirrels-clip.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 81ef86c5..1fd1024b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 2.73.0 + +* Correctly clip features down to nothing when the clip region doesn't intersect the tile at all + # 2.72.0 * Add --clip-polygon-file and --feature-filter-file options to tippecanoe-overzoom diff --git a/Makefile b/Makefile index 8679691b..2f522d00 100644 --- a/Makefile +++ b/Makefile @@ -439,6 +439,10 @@ overzoom-test: tippecanoe-overzoom ./tippecanoe-decode tests/pbf/countries-8-135-86-bigclip.pbf 8 135 86 > tests/pbf/countries-8-135-86-bigclip.json.check cmp tests/pbf/countries-8-135-86-bigclip.json.check tests/pbf/countries-8-135-86-bigclip.json rm tests/pbf/countries-8-135-86-bigclip.pbf tests/pbf/countries-8-135-86-bigclip.json.check + # Clip region that does not intersect with the tile + ./tippecanoe-overzoom -o tests/pbf/squirrels-13-2413-3077-clip.pbf --clip-polygon-file tests/pbf/squirrels-clip.json tests/pbf/squirrels-13-2413-3077.pbf 13/2413/3077 13/2413/3077 + cmp tests/pbf/squirrels-13-2413-3077-clip.pbf /dev/null # clipped away + rm tests/pbf/squirrels-13-2413-3077-clip.pbf join-test: tippecanoe tippecanoe-decode tile-join ./tippecanoe -q -f -z12 -o tests/join-population/tabblock_06001420.mbtiles -YALAND10:'Land area' -L'{"file": "tests/join-population/tabblock_06001420.json", "description": "population"}' diff --git a/overzoom.cpp b/overzoom.cpp index 112f0187..c7eb922d 100644 --- a/overzoom.cpp +++ b/overzoom.cpp @@ -294,6 +294,7 @@ int main(int argc, char **argv) { // clip the clip polygons, if any, to the tile bounds, // to reduce their complexity + bool clipped_to_nothing = false; if (clipbboxes.size() > 0) { long long wx1 = (nx - buffer / 256.0) * (1LL << (32 - nz)); long long wy1 = (ny - buffer / 256.0) * (1LL << (32 - nz)); @@ -315,38 +316,47 @@ int main(int argc, char **argv) { if (c.dv.size() > 0) { c.dv = clip_poly_poly(c.dv, tile_bounds); + + if (c.dv.size() == 0) { + clipped_to_nothing = true; + break; + } } } } - json_object *json_filter = NULL; - if (filter.size() > 0) { - json_filter = parse_filter(filter.c_str()); - } - - for (auto const &s : sources) { - std::string tile; - char buf[1000]; - int len; + std::string out; - FILE *f = fopen(s.tile.c_str(), "rb"); - if (f == NULL) { - perror(s.tile.c_str()); - exit(EXIT_FAILURE); + if (!clipped_to_nothing) { + json_object *json_filter = NULL; + if (filter.size() > 0) { + json_filter = parse_filter(filter.c_str()); } - while ((len = fread(buf, sizeof(char), 1000, f)) > 0) { - tile.append(std::string(buf, len)); + for (auto const &s : sources) { + std::string tile; + char buf[1000]; + int len; + + FILE *f = fopen(s.tile.c_str(), "rb"); + if (f == NULL) { + perror(s.tile.c_str()); + exit(EXIT_FAILURE); + } + + while ((len = fread(buf, sizeof(char), 1000, f)) > 0) { + tile.append(std::string(buf, len)); + } + fclose(f); + + input_tile t = s; + t.tile = std::move(tile); + its.push_back(std::move(t)); } - fclose(f); - input_tile t = s; - t.tile = std::move(tile); - its.push_back(std::move(t)); + out = overzoom(its, nz, nx, ny, detail, buffer, keep, exclude, exclude_prefix, do_compress, NULL, demultiply, json_filter, preserve_input_order, attribute_accum, unidecode_data, simplification, tiny_polygon_size, bins, bin_by_id_list, accumulate_numeric, SIZE_MAX, clipbboxes); } - std::string out = overzoom(its, nz, nx, ny, detail, buffer, keep, exclude, exclude_prefix, do_compress, NULL, demultiply, json_filter, preserve_input_order, attribute_accum, unidecode_data, simplification, tiny_polygon_size, bins, bin_by_id_list, accumulate_numeric, SIZE_MAX, clipbboxes); - FILE *f = fopen(outfile, "wb"); if (f == NULL) { perror(outfile); diff --git a/platform.hpp b/platform.hpp index a62d1cb5..7fa4033b 100644 --- a/platform.hpp +++ b/platform.hpp @@ -11,6 +11,8 @@ size_t calc_memsize(); size_t get_max_open_files(); -constexpr const char *get_null_device() { return "/dev/null"; } +constexpr const char *get_null_device() { + return "/dev/null"; +} -#endif // PLATFORM_HPP \ No newline at end of file +#endif // PLATFORM_HPP \ No newline at end of file diff --git a/tests/pbf/squirrels-13-2413-3077.pbf b/tests/pbf/squirrels-13-2413-3077.pbf new file mode 100644 index 0000000000000000000000000000000000000000..20e0216827685b61eb4418b9b87fe57d10a067f1 GIT binary patch literal 121179 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