Commit Graph
47 Commits
Author SHA1 Message Date
Erica Fischer 47f22e95fc Add test 2022-11-18 14:46:41 -08:00
Erica Fischer 8eec2be462 Improve quality of coalescing-as-needed; add options to limit feature count (#25)
* Add an option to limit geometry vertex count

* Update docs and changelog

* Track desired feature count and geometry size in strategies

* Remove dead code for a long-forgotten inaccessible option

* Fix the option name in changelog

* Refine coalesce-smallest to only coalesce onto other small features

* Clean polygons before coalescing-as-needed

* Don't accumulate tiny polygon holes as negative dust

* Add the option not to limit the feature count at maxzoom

* Add options to limit feature count more abruptly in each tile

* Revert "Add the option not to limit the feature count at maxzoom"

This reverts commit ace173ab7a.

* Revert "Fix the option name in changelog"

This reverts commit 38dbce8405.

* Revert "Add an option to limit geometry vertex count"

This reverts commit d379fdf06b.

* Remove test for reverted option

* Remove more leftovers from geometry size limiting

* Update changelog
2022-11-17 13:09:10 -08:00
Erica Fischer af1a7ed7ae Once features can't possibly fit in a tile, stop trying (#9)
* Stop adding features to a tile if it can't possibly work

* Add --integer and --fraction options to tippecanoe-decode

* Carry the strategies field from tileset metadata through tile-join

* Update changelog

* Assign different codes to different kinds of error exits
2022-09-23 20:01:13 -04:00
Erica Fischer a447dfc089 Extra coordinate precision; feature ordering; compression improvements
* Add an option to retain extra coordinate precision at maxzoom

* Make sure not to shift away the extra detail from coordinates

* Add an option to convert double-precision attributes to single

* Sort attribute values in tiles to make them compress a little better

* Slightly improve polygon simplification

By choosing a point that would be retained after simplification
to be the start/end point that always gets retained

* I regret making all of these tests involve polygons

* Add an option to specify the size of tiny polygons

* Fix accidental requiring of argument for --single-precision

* Guard against duplicate points when generating "sizes" for them

* Restore the intended behavior that tiny polygons don't get simplified

* Make the extra detail settable rather than always maximizing it

* Revert "Improve maxzoom guessing for tightly-clustered point data sources (#4)"

This reverts commit fec5e8354c.

* Add an option to prevent choosing a base zoom higher than the maxzoom

* Keep the drop rate high enough when the basezoom gets constrained

* Revert "Revert "Improve maxzoom guessing for tightly-clustered point data sources (#4)""

This reverts commit db6bc27d9e.

* Add --order-by and --order-descending options

* Accept multiple --order-by and --order-descending-by sort keys
2022-09-06 13:08:11 -07:00
Erica Fischer 86f3e98c02 Track the desired tile size for each zoom level in tileset metadata (#7) 2022-08-11 09:58:00 -07:00
Erica Fischer c65d6938a4 Drop or coalesce points too when dropping or coalescing smallest (#6)
* Handle points too when dropping or coalescing the "smallest" features.

* Add statistics of tile size reduction strategies to tileset metadata

* Update changelog and version

* Update documentation
2022-08-09 15:29:03 -07:00
Eric Fischer 4f7459c797 Record the command line options in the tileset metadata 2019-04-04 17:03:36 -07:00
Eric Fischer 6376c283ba Add Hilbert Curve feature sequencing as an option 2018-12-12 10:51:00 -08:00
Eric Fischer ca4aad0c64 Point features may now be coalesced into MultiPoint features with --coalesce 2018-12-11 17:09:13 -08:00
Eric Fischer 71df4d3e81 Always include tile and layer in tippecanoe-decode, fixing corrupt JSON. 2018-03-14 16:35:59 -07:00
Eric Fischer 18e345efb0 Make clusters look better by averaging locations of clustered points 2018-03-01 16:53:59 -08:00
Eric Fischer bfb6778e07 Add feature density tilestats during tiling instead of as a special case 2018-02-27 17:04:15 -08:00
Eric Fischer f87b71b739 Check the layer before letting a feature be coalsced/clustered/dropped 2018-02-27 15:45:09 -08:00
Eric Fischer 06ed9d14d8 Add an attribute for square root of cluster count 2018-02-26 12:53:43 -08:00
Eric Fischer a8a342f701 Send dot-dropping through the same pipeline.
The first feature in a tile can never be dropped, since there is
no previous feature to attach its properties to.

Remove the previous special case that reset the dropping counter
at the first feature within each tile proper (as opposed to the
first feature in each tile, including its buffer, which is now
the one that is guaranteed to be preserved).
2018-02-23 17:19:54 -08:00
Eric Fischer 27154c8f06 Cluster onto the previous feature instead of onto the next
This also allows doing the attribute and tilestats all at once
at the end of the tile instead of having to update a feature
to handle the last cluster.
2018-02-23 12:26:58 -08:00
Eric Fischer 30a277a43e Always keep the first feature so there is something to coalesce onto 2018-02-22 17:25:54 -08:00
Eric Fischer aaf08a6c55 Add an option to specify the clustering distance directly 2017-12-20 17:33:30 -08:00
Eric Fischer 6524b6510e Credit dangling clustered count at the end of a tile to the last feature 2017-12-18 12:55:22 -08:00
Eric Fischer b03dabe098 Add an option for clustering features 2017-12-14 14:30:08 -08:00
Eric Fischer 748ef3b1d5 Add a tippecanoe-decode option to report tile size and feature count 2017-10-09 17:05:29 -07:00
Eric Fischer f9a007e8c3 Use milo dtoa for consistent string representation of numbers 2017-08-29 14:44:34 -07:00
Eric Fischer c79f19e3ca Merge branch 'master' into plugins 2017-08-08 11:08:10 -07:00
Eric Fischer cc28bbab3a Move the tilestats into the "json" row of the metadata 2017-07-26 09:54:49 -07:00
Eric Fischer 518c8db790 Straighten out the extra tilestat attributes in some joined tilesets
The problem was in the case where the CSV provided a new value for
an attribute that replaced an existing value. Both the old and new
value were being included in the tilestats instead of just the new.
2017-07-20 17:39:41 -07:00
Eric Fischer 97d0b2a1b5 Retain attributes in alphabetical order, for consistency 2017-07-19 16:40:06 -07:00
Eric Fischer 7b03e1ee87 Include tilestats in the metadata table. (Not all tests are passing) 2017-07-19 13:09:47 -07:00
Eric Fischer 834ba19277 Add option for newline-delimited output format to tippecanoe-decode 2017-03-28 16:25:40 -07:00
Eric Fischer 3a1f074c96 Add test and documentation for tippecanoe-decode -l 2017-03-01 16:01:57 -08:00
Eric Fischer c87d6eadfc Associate attributes with the right layer when explicitly tagged (#342) 2017-01-03 12:20:52 -08:00
Eric Fischer 38ce49d2d4 Another option for plain fractional dropping, but across the whole zoom 2016-11-04 12:26:13 -07:00
Eric Fischer ee48be26e0 Rename -k to -M before I regret that the unit for it is not kilobytes 2016-11-04 11:15:53 -07:00
Eric Fischer 689f2ef7e9 Make better guesses about what gap will make a tile small enough 2016-11-02 16:57:35 -07:00
Eric Fischer 2e3ba8f374 Retain original feature index rather than recalculating
For better density calculation of clipped features
2016-11-02 15:11:22 -07:00
Eric Fischer d0db3323fb Binary search to find gap that leaves the desired fraction of features 2016-11-02 14:25:04 -07:00
Eric Fischer 565b5dc6b4 Add a test of discovering the minimum workable feature spacing 2016-10-25 16:39:41 -07:00
Eric Fischer 667e8f7a29 Use the same discovered gamma across all tiles of a zoom level 2016-10-25 14:13:55 -07:00
Eric Fischer f32916c472 Tests of the three current strategies for reducing tile size 2016-10-24 15:33:14 -07:00
Eric Fischer e1655941cc Add a test where the base zoom is beyond the max zoom 2016-10-17 13:53:52 -07:00
Eric Fischer 2e9971c6d5 Remake test standards after inspection 2016-10-12 10:41:01 -07:00
Eric Fischer 76739fd27b Fix a typo so it actually works, and add a test and documentation 2016-08-30 15:32:09 -07:00
Eric Fischer ae50abefc4 Add layer version and extent to tippecanoe-decode output and test standards 2016-06-16 12:50:08 -07:00
Eric Fischer 9d0a41521f Forgot to add the test 2016-05-27 16:33:56 -07:00
Eric Fischer 52f2804122 Make lexical feature ordering work again, and add a test for it 2016-04-25 16:47:30 -07:00
Eric Fischer b10b436ac9 Add a way to test recursive radix sorting. Bump version number. 2016-04-05 13:32:44 -07:00
Eric Fischer d38b5a999e Make base zoom and drop rate guessing more testable, and test them 2016-03-03 17:03:03 -08:00
Eric Fischer e4ab47b3d6 Add a gamma-reduction test 2016-03-03 15:44:07 -08:00