mirror of
https://github.com/mapbox/tippecanoe.git
synced 2025-02-01 16:58:05 +00:00
Make base zoom and drop rate guessing more testable, and test them
This commit is contained in:
parent
e4ab47b3d6
commit
d38b5a999e
@ -81,7 +81,7 @@ Options
|
|||||||
* -B _zoom_: Base zoom, the level at and above which all points are included in the tiles (default maxzoom).
|
* -B _zoom_: Base zoom, the level at and above which all points are included in the tiles (default maxzoom).
|
||||||
If you use -Bg, it will guess a zoom level that will keep at most 50,000 features in the densest tile.
|
If you use -Bg, it will guess a zoom level that will keep at most 50,000 features in the densest tile.
|
||||||
You can also specify a marker-width with -Bg*width* to allow fewer features in the densest tile to
|
You can also specify a marker-width with -Bg*width* to allow fewer features in the densest tile to
|
||||||
compensate for the larger marker.
|
compensate for the larger marker, or -Bf*number* to allow at most *number* features in the densest tile.
|
||||||
* -d _detail_: Detail at max zoom level (default 12, for tile resolution of 4096)
|
* -d _detail_: Detail at max zoom level (default 12, for tile resolution of 4096)
|
||||||
* -D _detail_: Detail at lower zoom levels (default 12, for tile resolution of 4096)
|
* -D _detail_: Detail at lower zoom levels (default 12, for tile resolution of 4096)
|
||||||
* -m _detail_: Minimum detail that it will try if tiles are too big at regular detail (default 7)
|
* -m _detail_: Minimum detail that it will try if tiles are too big at regular detail (default 7)
|
||||||
@ -97,6 +97,8 @@ Options
|
|||||||
|
|
||||||
* -r _rate_: Rate at which dots are dropped at zoom levels below basezoom (default 2.5).
|
* -r _rate_: Rate at which dots are dropped at zoom levels below basezoom (default 2.5).
|
||||||
If you use -rg, it will guess a drop rate that will keep at most 50,000 features in the densest tile.
|
If you use -rg, it will guess a drop rate that will keep at most 50,000 features in the densest tile.
|
||||||
|
You can also specify a marker-width with -rg*width* to allow fewer features in the densest tile to
|
||||||
|
compensate for the larger marker, or -rf*number* to allow at most *number* features in the densest tile.
|
||||||
* -g _gamma_: Rate at which especially dense dots are dropped (default 0, for no effect). A gamma of 2 reduces the number of dots less than a pixel apart to the square root of their original number.
|
* -g _gamma_: Rate at which especially dense dots are dropped (default 0, for no effect). A gamma of 2 reduces the number of dots less than a pixel apart to the square root of their original number.
|
||||||
|
|
||||||
### Doing more
|
### Doing more
|
||||||
|
24
geojson.c
24
geojson.c
@ -2105,12 +2105,15 @@ int main(int argc, char **argv) {
|
|||||||
case 'B':
|
case 'B':
|
||||||
if (strcmp(optarg, "g") == 0) {
|
if (strcmp(optarg, "g") == 0) {
|
||||||
basezoom = -2;
|
basezoom = -2;
|
||||||
basezoom_marker_width = 1;
|
} else if (optarg[0] == 'g' || optarg[0] == 'f') {
|
||||||
} else if (optarg[0] == 'g') {
|
|
||||||
basezoom = -2;
|
basezoom = -2;
|
||||||
basezoom_marker_width = atof(optarg + 1);
|
if (optarg[0] == 'g') {
|
||||||
if (basezoom_marker_width == 0) {
|
basezoom_marker_width = atof(optarg + 1);
|
||||||
fprintf(stderr, "%s: Must specify marker width >0 with -Bg\n", argv[0]);
|
} else {
|
||||||
|
basezoom_marker_width = sqrt(50000 / atof(optarg + 1));
|
||||||
|
}
|
||||||
|
if (basezoom_marker_width == 0 || atof(optarg + 1) == 0) {
|
||||||
|
fprintf(stderr, "%s: Must specify value >0 with -B%c\n", argv[0], optarg[0]);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -2154,6 +2157,17 @@ int main(int argc, char **argv) {
|
|||||||
case 'r':
|
case 'r':
|
||||||
if (strcmp(optarg, "g") == 0) {
|
if (strcmp(optarg, "g") == 0) {
|
||||||
droprate = -2;
|
droprate = -2;
|
||||||
|
} else if (optarg[0] == 'g' || optarg[0] == 'f') {
|
||||||
|
droprate = -2;
|
||||||
|
if (optarg[0] == 'g') {
|
||||||
|
basezoom_marker_width = atof(optarg + 1);
|
||||||
|
} else {
|
||||||
|
basezoom_marker_width = sqrt(50000 / atof(optarg + 1));
|
||||||
|
}
|
||||||
|
if (basezoom_marker_width == 0 || atof(optarg + 1) == 0) {
|
||||||
|
fprintf(stderr, "%s: Must specify value >0 with -r%c\n", argv[0], optarg[0]);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
droprate = atof(optarg);
|
droprate = atof(optarg);
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ rather than a stream that can only be read sequentially.
|
|||||||
\-B \fIzoom\fP: Base zoom, the level at and above which all points are included in the tiles (default maxzoom).
|
\-B \fIzoom\fP: Base zoom, the level at and above which all points are included in the tiles (default maxzoom).
|
||||||
If you use \-Bg, it will guess a zoom level that will keep at most 50,000 features in the densest tile.
|
If you use \-Bg, it will guess a zoom level that will keep at most 50,000 features in the densest tile.
|
||||||
You can also specify a marker\-width with \-Bg\fIwidth\fP to allow fewer features in the densest tile to
|
You can also specify a marker\-width with \-Bg\fIwidth\fP to allow fewer features in the densest tile to
|
||||||
compensate for the larger marker.
|
compensate for the larger marker, or \-Bf\fInumber\fP to allow at most \fInumber\fP features in the densest tile.
|
||||||
.IP \(bu 2
|
.IP \(bu 2
|
||||||
\-d \fIdetail\fP: Detail at max zoom level (default 12, for tile resolution of 4096)
|
\-d \fIdetail\fP: Detail at max zoom level (default 12, for tile resolution of 4096)
|
||||||
.IP \(bu 2
|
.IP \(bu 2
|
||||||
@ -116,6 +116,8 @@ compensate for the larger marker.
|
|||||||
.IP \(bu 2
|
.IP \(bu 2
|
||||||
\-r \fIrate\fP: Rate at which dots are dropped at zoom levels below basezoom (default 2.5).
|
\-r \fIrate\fP: Rate at which dots are dropped at zoom levels below basezoom (default 2.5).
|
||||||
If you use \-rg, it will guess a drop rate that will keep at most 50,000 features in the densest tile.
|
If you use \-rg, it will guess a drop rate that will keep at most 50,000 features in the densest tile.
|
||||||
|
You can also specify a marker\-width with \-rg\fIwidth\fP to allow fewer features in the densest tile to
|
||||||
|
compensate for the larger marker, or \-rf\fInumber\fP to allow at most \fInumber\fP features in the densest tile.
|
||||||
.IP \(bu 2
|
.IP \(bu 2
|
||||||
\-g \fIgamma\fP: Rate at which especially dense dots are dropped (default 0, for no effect). A gamma of 2 reduces the number of dots less than a pixel apart to the square root of their original number.
|
\-g \fIgamma\fP: Rate at which especially dense dots are dropped (default 0, for no effect). A gamma of 2 reduces the number of dots less than a pixel apart to the square root of their original number.
|
||||||
.RE
|
.RE
|
||||||
|
24028
tests/muni/out/-Z11_-z13_-Bf2000.json
Normal file
24028
tests/muni/out/-Z11_-z13_-Bf2000.json
Normal file
File diff suppressed because it is too large
Load Diff
21676
tests/muni/out/-Z11_-z13_-rf2000.json
Normal file
21676
tests/muni/out/-Z11_-z13_-rf2000.json
Normal file
File diff suppressed because it is too large
Load Diff
24756
tests/muni/out/-Z11_-z13_-rf2000_-Bg.json
Normal file
24756
tests/muni/out/-Z11_-z13_-rf2000_-Bg.json
Normal file
File diff suppressed because it is too large
Load Diff
21266
tests/muni/out/-Z11_-z13_-rf2000_-g2.json
Normal file
21266
tests/muni/out/-Z11_-z13_-rf2000_-g2.json
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user