mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-02 08:25:40 +02:00
Don't coalesce features that have different IDs.
Remove the 700-point limit on coalesced features, since polygon merging is no longer a performance problem.
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
## 1.27.4
|
||||||
|
|
||||||
|
* Support CSV point input
|
||||||
|
* Don't coalesce features that have different IDs but are otherwise identical
|
||||||
|
* Remove the 700-point limit on coalesced features, since polygon merging
|
||||||
|
is no longer a performance problem
|
||||||
|
|
||||||
## 1.27.3
|
## 1.27.3
|
||||||
|
|
||||||
* Clean up duplicated code for reading tiles from a directory
|
* Clean up duplicated code for reading tiles from a directory
|
||||||
|
|||||||
@@ -240,8 +240,8 @@ tippecanoe -z5 -o filtered.mbtiles -j '{ "ne_10m_admin_0_countries": [ "all", [
|
|||||||
### Reordering features within each tile
|
### Reordering features within each tile
|
||||||
|
|
||||||
* `-pi` or `--preserve-input-order`: Preserve the original input order of features as the drawing order instead of ordering geographically. (This is implemented as a restoration of the original order at the end, so that dot-dropping is still geographic, which means it also undoes `-ao`).
|
* `-pi` or `--preserve-input-order`: Preserve the original input order of features as the drawing order instead of ordering geographically. (This is implemented as a restoration of the original order at the end, so that dot-dropping is still geographic, which means it also undoes `-ao`).
|
||||||
* `-ao` or `--reorder`: Reorder features to put ones with the same properties in sequence, to try to get them to coalesce. You probably don't want to use this.
|
* `-ao` or `--reorder`: Reorder features to put ones with the same properties in sequence, to try to get them to coalesce. You probably want to use this if you use `--coalesce`.
|
||||||
* `-ac` or `--coalesce`: Coalesce adjacent line and polygon features that have the same properties. You probably don't want to use this.
|
* `-ac` or `--coalesce`: Coalesce adjacent line and polygon features that have the same properties. This can be useful if you have lots of small polygons with identical attributes and you would like to merge them together.
|
||||||
* `-ar` or `--reverse`: Try reversing the directions of lines to make them coalesce and compress better. You probably don't want to use this.
|
* `-ar` or `--reverse`: Try reversing the directions of lines to make them coalesce and compress better. You probably don't want to use this.
|
||||||
|
|
||||||
### Adding calculated attributes
|
### Adding calculated attributes
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+11
-75
File diff suppressed because one or more lines are too long
@@ -116,6 +116,19 @@ int coalcmp(const void *v1, const void *v2) {
|
|||||||
return cmp;
|
return cmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (c1->has_id != c2->has_id) {
|
||||||
|
return (int) c1->has_id - (int) c2->has_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (c1->has_id && c2->has_id) {
|
||||||
|
if (c1->id < c2->id) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (c1->id > c2->id) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return metacmp(c1->m, c1->keys, c1->values, c1->stringpool, c2->m, c2->keys, c2->values, c2->stringpool);
|
return metacmp(c1->m, c1->keys, c1->values, c1->stringpool, c2->m, c2->keys, c2->values, c2->stringpool);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1765,7 +1778,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (additional[A_COALESCE] && out.size() > 0 && out[y].geom.size() + layer_features[x].geom.size() < 700 && coalcmp(&layer_features[x], &out[y]) == 0 && layer_features[x].type != VT_POINT) {
|
if (additional[A_COALESCE] && out.size() > 0 && coalcmp(&layer_features[x], &out[y]) == 0 && layer_features[x].type != VT_POINT) {
|
||||||
for (size_t g = 0; g < layer_features[x].geom.size(); g++) {
|
for (size_t g = 0; g < layer_features[x].geom.size(); g++) {
|
||||||
out[y].geom.push_back(layer_features[x].geom[g]);
|
out[y].geom.push_back(layer_features[x].geom[g]);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
#ifndef VERSION_HPP
|
#ifndef VERSION_HPP
|
||||||
#define VERSION_HPP
|
#define VERSION_HPP
|
||||||
|
|
||||||
#define VERSION "tippecanoe v1.27.3\n"
|
#define VERSION "tippecanoe v1.27.4\n"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user