From 25b9c51ac899f52d3da9584af862270a0b92942c Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 18 Mar 2019 18:01:32 -0700 Subject: [PATCH 1/8] Fix -Z and -z for tile directories in tile-join and tippecanoe-decode --- Makefile | 9 ++++++- decode.cpp | 2 +- dirtiles.cpp | 7 ++--- dirtiles.hpp | 2 +- serial.cpp | 1 - tests/raw-tiles/raw-tiles-z67-join.json | 36 +++++++++++++++++++++++++ tests/raw-tiles/raw-tiles-z67.json | 36 +++++++++++++++++++++++++ tile-join.cpp | 2 +- 8 files changed, 87 insertions(+), 8 deletions(-) create mode 100644 tests/raw-tiles/raw-tiles-z67-join.json create mode 100644 tests/raw-tiles/raw-tiles-z67.json diff --git a/Makefile b/Makefile index 24f150ec..0447bc89 100644 --- a/Makefile +++ b/Makefile @@ -142,7 +142,14 @@ raw-tiles-test: ./tippecanoe -q -f -e tests/raw-tiles/raw-tiles -r1 -pC tests/raw-tiles/hackspots.geojson ./tippecanoe-decode -x generator tests/raw-tiles/raw-tiles > tests/raw-tiles/raw-tiles.json.check cmp tests/raw-tiles/raw-tiles.json.check tests/raw-tiles/raw-tiles.json - rm -rf tests/raw-tiles/raw-tiles tests/raw-tiles/compare.json.check + # Test that -z and -Z work in tippecanoe-decode + ./tippecanoe-decode -x generator -Z6 -z7 tests/raw-tiles/raw-tiles > tests/raw-tiles/raw-tiles-z67.json.check + cmp tests/raw-tiles/raw-tiles-z67.json.check tests/raw-tiles/raw-tiles-z67.json + # Test that -z and -Z work in tile-join + ./tile-join -q -f -Z6 -z7 -e tests/raw-tiles/raw-tiles-z67 tests/raw-tiles/raw-tiles + ./tippecanoe-decode -x generator tests/raw-tiles/raw-tiles-z67 > tests/raw-tiles/raw-tiles-z67-join.json.check + cmp tests/raw-tiles/raw-tiles-z67-join.json.check tests/raw-tiles/raw-tiles-z67-join.json + rm -rf tests/raw-tiles/raw-tiles tests/raw-tiles/raw-tiles-z67 tests/raw-tiles/raw-tiles.json.check raw-tiles-z67.json.check tests/raw-tiles/raw-tiles-z67-join.json.check # Test that metadata.json is created even if all features are clipped away ./tippecanoe -q -f -e tests/raw-tiles/nothing tests/raw-tiles/nothing.geojson ./tippecanoe-decode -x generator tests/raw-tiles/nothing > tests/raw-tiles/nothing.json.check diff --git a/decode.cpp b/decode.cpp index 86e58fbd..e75248c1 100644 --- a/decode.cpp +++ b/decode.cpp @@ -268,7 +268,7 @@ void decode(char *fname, int z, unsigned x, unsigned y, std::set co isdir = true; db = dirmeta2tmp(fname); - tiles = enumerate_dirtiles(fname); + tiles = enumerate_dirtiles(fname, minzoom, maxzoom); } else { if (sqlite3_open(fname, &db) != SQLITE_OK) { fprintf(stderr, "%s: %s\n", fname, sqlite3_errmsg(db)); diff --git a/dirtiles.cpp b/dirtiles.cpp index b946e07c..a5418a12 100644 --- a/dirtiles.cpp +++ b/dirtiles.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include "jsonpull/jsonpull.h" @@ -84,7 +85,7 @@ void check_dir(const char *dir, char **argv, bool force, bool forcetable) { return; } - std::vector tiles = enumerate_dirtiles(dir); + std::vector tiles = enumerate_dirtiles(dir, INT_MIN, INT_MAX); for (size_t i = 0; i < tiles.size(); i++) { std::string fn = std::string(dir) + "/" + tiles[i].path(); @@ -101,14 +102,14 @@ void check_dir(const char *dir, char **argv, bool force, bool forcetable) { } } -std::vector enumerate_dirtiles(const char *fname) { +std::vector enumerate_dirtiles(const char *fname, int minzoom, int maxzoom) { std::vector tiles; DIR *d1 = opendir(fname); if (d1 != NULL) { struct dirent *dp; while ((dp = readdir(d1)) != NULL) { - if (numeric(dp->d_name)) { + if (numeric(dp->d_name) && atoi(dp->d_name) >= minzoom && atoi(dp->d_name) <= maxzoom) { std::string z = std::string(fname) + "/" + dp->d_name; int tz = atoi(dp->d_name); diff --git a/dirtiles.hpp b/dirtiles.hpp index 52b7f47b..6855f9aa 100644 --- a/dirtiles.hpp +++ b/dirtiles.hpp @@ -42,7 +42,7 @@ struct zxy { } }; -std::vector enumerate_dirtiles(const char *fname); +std::vector enumerate_dirtiles(const char *fname, int minzoom, int maxzoom); sqlite3 *dirmeta2tmp(const char *fname); std::string dir_read_tile(std::string pbfPath, struct zxy tile); diff --git a/serial.cpp b/serial.cpp index 98ac1ef0..149de01c 100644 --- a/serial.cpp +++ b/serial.cpp @@ -633,7 +633,6 @@ int serialize_feature(struct serialization_state *sst, serial_feature &sf) { sf.full_values.erase(sf.full_values.begin() + i); continue; } - } if (!sst->filters) { diff --git a/tests/raw-tiles/raw-tiles-z67-join.json b/tests/raw-tiles/raw-tiles-z67-join.json new file mode 100644 index 00000000..a9da6850 --- /dev/null +++ b/tests/raw-tiles/raw-tiles-z67-join.json @@ -0,0 +1,36 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-123.750000,45.089036,-120.937500,47.040182", +"center": "-122.662354,45.514045,7", +"description": "tests/raw-tiles/raw-tiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"hackspots\", \"description\": \"\", \"minzoom\": 6, \"maxzoom\": 7, \"fields\": {\"Address\": \"String\", \"Name\": \"String\", \"Notes\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"hackspots\",\"count\": 8,\"geometry\": \"Point\",\"attributeCount\": 3,\"attributes\": [{\"attribute\": \"Address\",\"count\": 4,\"type\": \"string\",\"values\": [\"1507 N Rosa Parks Way Portland, OR 97217\",\"201 SE 12th Ave, Portland, OR 97214\",\"4637 N Albina Ave Portland, OR 97217\",\"915 SE Hawthorne Blvd. Portland, OR 97214\"]},{\"attribute\": \"Name\",\"count\": 4,\"type\": \"string\",\"values\": [\"Albina Press\",\"Arbor Lodge\",\"Lucky Labrador Brew Pub\",\"Three Friends Coffeehouse\"]},{\"attribute\": \"Notes\",\"count\": 3,\"type\": \"string\",\"values\": [\"\",\"Dog friendly\",\"usually busy, outlets on side wall only\"]}]}]}}", +"maxzoom": "7", +"minzoom": "6", +"name": "tests/raw-tiles/raw-tiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 6, "x": 10, "y": 22 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "hackspots", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "Name": "Arbor Lodge", "Address": "1507 N Rosa Parks Way Portland, OR 97217", "Notes": "" }, "geometry": { "type": "Point", "coordinates": [ -122.682953, 45.570794 ] } } +, +{ "type": "Feature", "properties": { "Name": "Albina Press", "Address": "4637 N Albina Ave Portland, OR 97217", "Notes": "usually busy, outlets on side wall only" }, "geometry": { "type": "Point", "coordinates": [ -122.676086, 45.557333 ] } } +, +{ "type": "Feature", "properties": { "Name": "Three Friends Coffeehouse", "Address": "201 SE 12th Ave, Portland, OR 97214", "Notes": "" }, "geometry": { "type": "Point", "coordinates": [ -122.655487, 45.521744 ] } } +, +{ "type": "Feature", "properties": { "Name": "Lucky Labrador Brew Pub", "Address": "915 SE Hawthorne Blvd. Portland, OR 97214", "Notes": "Dog friendly" }, "geometry": { "type": "Point", "coordinates": [ -122.656860, 45.513084 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 7, "x": 20, "y": 45 }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "hackspots", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "Name": "Arbor Lodge", "Address": "1507 N Rosa Parks Way Portland, OR 97217", "Notes": "" }, "geometry": { "type": "Point", "coordinates": [ -122.682953, 45.570313 ] } } +, +{ "type": "Feature", "properties": { "Name": "Albina Press", "Address": "4637 N Albina Ave Portland, OR 97217", "Notes": "usually busy, outlets on side wall only" }, "geometry": { "type": "Point", "coordinates": [ -122.675400, 45.556853 ] } } +, +{ "type": "Feature", "properties": { "Name": "Three Friends Coffeehouse", "Address": "201 SE 12th Ave, Portland, OR 97214", "Notes": "" }, "geometry": { "type": "Point", "coordinates": [ -122.655487, 45.521263 ] } } +, +{ "type": "Feature", "properties": { "Name": "Lucky Labrador Brew Pub", "Address": "915 SE Hawthorne Blvd. Portland, OR 97214", "Notes": "Dog friendly" }, "geometry": { "type": "Point", "coordinates": [ -122.656860, 45.512602 ] } } +] } +] } +] } diff --git a/tests/raw-tiles/raw-tiles-z67.json b/tests/raw-tiles/raw-tiles-z67.json new file mode 100644 index 00000000..45900887 --- /dev/null +++ b/tests/raw-tiles/raw-tiles-z67.json @@ -0,0 +1,36 @@ +{ "type": "FeatureCollection", "properties": { +"bounds": "-122.682427,45.512331,-122.654961,45.569975", +"center": "-122.662354,45.514045,14", +"description": "tests/raw-tiles/raw-tiles", +"format": "pbf", +"json": "{\"vector_layers\": [ { \"id\": \"hackspots\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 14, \"fields\": {\"Address\": \"String\", \"Name\": \"String\", \"Notes\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"hackspots\",\"count\": 4,\"geometry\": \"Point\",\"attributeCount\": 3,\"attributes\": [{\"attribute\": \"Address\",\"count\": 4,\"type\": \"string\",\"values\": [\"1507 N Rosa Parks Way Portland, OR 97217\",\"201 SE 12th Ave, Portland, OR 97214\",\"4637 N Albina Ave Portland, OR 97217\",\"915 SE Hawthorne Blvd. Portland, OR 97214\"]},{\"attribute\": \"Name\",\"count\": 4,\"type\": \"string\",\"values\": [\"Albina Press\",\"Arbor Lodge\",\"Lucky Labrador Brew Pub\",\"Three Friends Coffeehouse\"]},{\"attribute\": \"Notes\",\"count\": 3,\"type\": \"string\",\"values\": [\"\",\"Dog friendly\",\"usually busy, outlets on side wall only\"]}]}]}}", +"maxzoom": "14", +"minzoom": "0", +"name": "tests/raw-tiles/raw-tiles", +"type": "overlay", +"version": "2" +}, "features": [ +{ "type": "FeatureCollection", "properties": { "zoom": 6, "x": 10, "y": 22, "compressed": false }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "hackspots", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "Name": "Arbor Lodge", "Address": "1507 N Rosa Parks Way Portland, OR 97217", "Notes": "" }, "geometry": { "type": "Point", "coordinates": [ -122.682953, 45.570794 ] } } +, +{ "type": "Feature", "properties": { "Name": "Albina Press", "Address": "4637 N Albina Ave Portland, OR 97217", "Notes": "usually busy, outlets on side wall only" }, "geometry": { "type": "Point", "coordinates": [ -122.676086, 45.557333 ] } } +, +{ "type": "Feature", "properties": { "Name": "Three Friends Coffeehouse", "Address": "201 SE 12th Ave, Portland, OR 97214", "Notes": "" }, "geometry": { "type": "Point", "coordinates": [ -122.655487, 45.521744 ] } } +, +{ "type": "Feature", "properties": { "Name": "Lucky Labrador Brew Pub", "Address": "915 SE Hawthorne Blvd. Portland, OR 97214", "Notes": "Dog friendly" }, "geometry": { "type": "Point", "coordinates": [ -122.656860, 45.513084 ] } } +] } +] } +, +{ "type": "FeatureCollection", "properties": { "zoom": 7, "x": 20, "y": 45, "compressed": false }, "features": [ +{ "type": "FeatureCollection", "properties": { "layer": "hackspots", "version": 2, "extent": 4096 }, "features": [ +{ "type": "Feature", "properties": { "Name": "Arbor Lodge", "Address": "1507 N Rosa Parks Way Portland, OR 97217", "Notes": "" }, "geometry": { "type": "Point", "coordinates": [ -122.682953, 45.570313 ] } } +, +{ "type": "Feature", "properties": { "Name": "Albina Press", "Address": "4637 N Albina Ave Portland, OR 97217", "Notes": "usually busy, outlets on side wall only" }, "geometry": { "type": "Point", "coordinates": [ -122.675400, 45.556853 ] } } +, +{ "type": "Feature", "properties": { "Name": "Three Friends Coffeehouse", "Address": "201 SE 12th Ave, Portland, OR 97214", "Notes": "" }, "geometry": { "type": "Point", "coordinates": [ -122.655487, 45.521263 ] } } +, +{ "type": "Feature", "properties": { "Name": "Lucky Labrador Brew Pub", "Address": "915 SE Hawthorne Blvd. Portland, OR 97214", "Notes": "Dog friendly" }, "geometry": { "type": "Point", "coordinates": [ -122.656860, 45.512602 ] } } +] } +] } +] } diff --git a/tile-join.cpp b/tile-join.cpp index 2a1c62fd..9597c1c2 100644 --- a/tile-join.cpp +++ b/tile-join.cpp @@ -409,7 +409,7 @@ struct reader *begin_reading(char *fname) { r->stmt = NULL; r->next = NULL; - r->dirtiles = enumerate_dirtiles(fname); + r->dirtiles = enumerate_dirtiles(fname, minzoom, maxzoom); r->dirbase = fname; if (r->dirtiles.size() == 0) { From 7419d64aab039ea057b0495ee37ea556a5aa41cc Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 19 Mar 2019 10:06:46 -0700 Subject: [PATCH 2/8] Suggest https instead of ssh for "git clone" to avoid the need for authentication --- README.md | 2 +- man/tippecanoe.1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 29f1ece2..5ca7de18 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ $ brew install tippecanoe On Ubuntu it will usually be easiest to build from the source repository: ```sh -$ git clone git@github.com:mapbox/tippecanoe.git +$ git clone https://github.com/mapbox/tippecanoe.git $ cd tippecanoe $ make -j $ make install diff --git a/man/tippecanoe.1 b/man/tippecanoe.1 index c6865f60..2a8b601b 100644 --- a/man/tippecanoe.1 +++ b/man/tippecanoe.1 @@ -40,7 +40,7 @@ On Ubuntu it will usually be easiest to build from the source repository: .PP .RS .nf -$ git clone git@github.com:mapbox/tippecanoe.git +$ git clone https://github.com/mapbox/tippecanoe.git $ cd tippecanoe $ make \-j $ make install From ac129320895047d37814157049552742ba76a180 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 19 Mar 2019 10:13:44 -0700 Subject: [PATCH 3/8] Return a successful error status for --help and --version --- main.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/main.cpp b/main.cpp index eeda5c32..17280a99 100644 --- a/main.cpp +++ b/main.cpp @@ -2626,7 +2626,7 @@ int main(int argc, char **argv) { {"check-polygons", no_argument, &additional[A_DEBUG_POLYGON], 1}, {"no-polygon-splitting", no_argument, &prevent[P_POLYGON_SPLIT], 1}, {"prefer-radix-sort", no_argument, &additional[A_PREFER_RADIX_SORT], 1}, - {"help", no_argument, 0, '?'}, + {"help", no_argument, 0, 'H'}, {0, 0, 0, 0}, }; @@ -2961,7 +2961,7 @@ int main(int argc, char **argv) { case 'v': fprintf(stderr, "tippecanoe %s\n", VERSION); - exit(EXIT_FAILURE); + exit(EXIT_SUCCESS); case 'P': read_parallel = 1; @@ -3004,7 +3004,7 @@ int main(int argc, char **argv) { break; default: { - if (i != '?') { + if (i != 'H') { fprintf(stderr, "Unknown option -%c\n", i); } int width = 7 + strlen(argv[0]); @@ -3034,7 +3034,11 @@ int main(int argc, char **argv) { width = 8; } fprintf(stderr, "\n"); - exit(EXIT_FAILURE); + if (i == 'H') { + exit(EXIT_SUCCESS); + } else { + exit(EXIT_FAILURE); + } } } } From e051c530512fec50c9050c54f2f7c2da554b963c Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 19 Mar 2019 10:16:14 -0700 Subject: [PATCH 4/8] Fix duplicated error message for unknown option --- main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index 17280a99..7320d010 100644 --- a/main.cpp +++ b/main.cpp @@ -3004,7 +3004,7 @@ int main(int argc, char **argv) { break; default: { - if (i != 'H') { + if (i != 'H' && i != '?') { fprintf(stderr, "Unknown option -%c\n", i); } int width = 7 + strlen(argv[0]); From 99dc019d929922232e20ebb9b3263987ba6d6190 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 8 Apr 2019 16:29:56 -0700 Subject: [PATCH 5/8] Fix tests after merge --- tests/raw-tiles/raw-tiles-z67-join.json | 1 + tests/raw-tiles/raw-tiles-z67.json | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/raw-tiles/raw-tiles-z67-join.json b/tests/raw-tiles/raw-tiles-z67-join.json index a9da6850..ad8b596c 100644 --- a/tests/raw-tiles/raw-tiles-z67-join.json +++ b/tests/raw-tiles/raw-tiles-z67-join.json @@ -3,6 +3,7 @@ "center": "-122.662354,45.514045,7", "description": "tests/raw-tiles/raw-tiles", "format": "pbf", +"generator_options": "./tippecanoe -q -f -e tests/raw-tiles/raw-tiles -r1 -pC tests/raw-tiles/hackspots.geojson; ./tile-join -q -f -Z6 -z7 -e tests/raw-tiles/raw-tiles-z67 tests/raw-tiles/raw-tiles", "json": "{\"vector_layers\": [ { \"id\": \"hackspots\", \"description\": \"\", \"minzoom\": 6, \"maxzoom\": 7, \"fields\": {\"Address\": \"String\", \"Name\": \"String\", \"Notes\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"hackspots\",\"count\": 8,\"geometry\": \"Point\",\"attributeCount\": 3,\"attributes\": [{\"attribute\": \"Address\",\"count\": 4,\"type\": \"string\",\"values\": [\"1507 N Rosa Parks Way Portland, OR 97217\",\"201 SE 12th Ave, Portland, OR 97214\",\"4637 N Albina Ave Portland, OR 97217\",\"915 SE Hawthorne Blvd. Portland, OR 97214\"]},{\"attribute\": \"Name\",\"count\": 4,\"type\": \"string\",\"values\": [\"Albina Press\",\"Arbor Lodge\",\"Lucky Labrador Brew Pub\",\"Three Friends Coffeehouse\"]},{\"attribute\": \"Notes\",\"count\": 3,\"type\": \"string\",\"values\": [\"\",\"Dog friendly\",\"usually busy, outlets on side wall only\"]}]}]}}", "maxzoom": "7", "minzoom": "6", diff --git a/tests/raw-tiles/raw-tiles-z67.json b/tests/raw-tiles/raw-tiles-z67.json index 45900887..b16760b4 100644 --- a/tests/raw-tiles/raw-tiles-z67.json +++ b/tests/raw-tiles/raw-tiles-z67.json @@ -3,6 +3,7 @@ "center": "-122.662354,45.514045,14", "description": "tests/raw-tiles/raw-tiles", "format": "pbf", +"generator_options": "./tippecanoe -q -f -e tests/raw-tiles/raw-tiles -r1 -pC tests/raw-tiles/hackspots.geojson", "json": "{\"vector_layers\": [ { \"id\": \"hackspots\", \"description\": \"\", \"minzoom\": 0, \"maxzoom\": 14, \"fields\": {\"Address\": \"String\", \"Name\": \"String\", \"Notes\": \"String\"} } ],\"tilestats\": {\"layerCount\": 1,\"layers\": [{\"layer\": \"hackspots\",\"count\": 4,\"geometry\": \"Point\",\"attributeCount\": 3,\"attributes\": [{\"attribute\": \"Address\",\"count\": 4,\"type\": \"string\",\"values\": [\"1507 N Rosa Parks Way Portland, OR 97217\",\"201 SE 12th Ave, Portland, OR 97214\",\"4637 N Albina Ave Portland, OR 97217\",\"915 SE Hawthorne Blvd. Portland, OR 97214\"]},{\"attribute\": \"Name\",\"count\": 4,\"type\": \"string\",\"values\": [\"Albina Press\",\"Arbor Lodge\",\"Lucky Labrador Brew Pub\",\"Three Friends Coffeehouse\"]},{\"attribute\": \"Notes\",\"count\": 3,\"type\": \"string\",\"values\": [\"\",\"Dog friendly\",\"usually busy, outlets on side wall only\"]}]}]}}", "maxzoom": "14", "minzoom": "0", From ffab8760029d30d79a550b4db23cec9e8d068d9a Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 5 Apr 2019 15:10:39 -0700 Subject: [PATCH 6/8] Don't run shell filters if the current zoom is below the minzoom --- tile.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tile.cpp b/tile.cpp index 72672f74..6e76c504 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1786,6 +1786,11 @@ long long write_tile(FILE *geoms, std::atomic *geompos_in, char *meta FILE *prefilter_read_fp = NULL; json_pull *prefilter_jp = NULL; + if (z < minzoom) { + prefilter = NULL; + postfilter = NULL; + } + if (prefilter != NULL) { setup_filter(prefilter, &prefilter_write, &prefilter_read, &prefilter_pid, z, tx, ty); prefilter_fp = fdopen(prefilter_write, "w"); From a8a183df2d8e5b0c32643a4cfc72cf2e693a50f7 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 8 Apr 2019 16:32:39 -0700 Subject: [PATCH 7/8] Update changelog and version --- CHANGELOG.md | 6 ++++++ version.hpp | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91c17c3b..108fa820 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.34.1 + +* Don't run shell filters if the current zoom is below the minzoom +* Fix -Z and -z for tile directories in tile-join and tippecanoe-decode +* Return a successful error status for --help and --version + ## 1.34.0 * Record the command line options in the tileset metadata diff --git a/version.hpp b/version.hpp index 8df8062f..799d28ad 100644 --- a/version.hpp +++ b/version.hpp @@ -1,6 +1,6 @@ #ifndef VERSION_HPP #define VERSION_HPP -#define VERSION "v1.34.0" +#define VERSION "v1.34.1" #endif From 7be3710b405d3386bce83f85f18babb737874b3c Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 8 Apr 2019 16:33:11 -0700 Subject: [PATCH 8/8] Rebuild documentation --- man/tippecanoe.1 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/man/tippecanoe.1 b/man/tippecanoe.1 index 2a8b601b..af528c0a 100644 --- a/man/tippecanoe.1 +++ b/man/tippecanoe.1 @@ -781,6 +781,14 @@ the filename or name specified using \fB\fC\-\-layer\fR, like this: } .fi .RE +.PP +If your source GeoJSON only has \fB\fCminzoom\fR, \fB\fCmaxzoom\fR and/or \fB\fClayer\fR within \fB\fCproperties\fR you can use ndjson\-cli \[la]https://github.com/mbostock/ndjson-cli/blob/master/README.md\[ra] to move them into the required \fB\fCtippecanoe\fR object by piping the GeoJSON like this: +.PP +.RS +.nf +ndjson\-map 'd.tippecanoe = { minzoom: d.properties.minzoom, maxzoom: d.properties.maxzoom, layer: d.properties.layer }, delete d.properties.minzoom, delete d.properties.maxzoom, delete d.properties.layer, d' +.fi +.RE .SH Geometric simplifications .PP At every zoom level, line and polygon features are subjected to Douglas\-Peucker