Commit Graph
246 Commits
Author SHA1 Message Date
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
Erica Fischer 6978a0e102 Reindent with clang-format (#3) 2022-07-28 11:19:30 -07:00
Brandon Liu f442e403c5 add logging struct with -u json options flag, log tiling progress [#13] 2022-07-05 15:32:11 +08:00
Eric Fischer ed9f844cef Fix calculation of mean when accumulating attributes in clusters 2020-02-06 15:28:10 -08:00
Eric Fischer fc335e2221 Be careful to avoid undefined behavior from shifting negative numbers 2019-06-17 17:50:25 -07:00
Eric Fischer 42ee195bc3 Add an option to keep intersection nodes from being simplified away 2019-05-13 17:39:07 -07:00
Eric Fischer 4d3e30773f Be more consistent about when longitudes beyond 180 are allowed 2019-04-12 12:12:14 -07:00
Eric Fischer ffab876002 Don't run shell filters if the current zoom is below the minzoom 2019-04-08 16:30:19 -07: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 5229990523 Fix gridding of small squares; use less memory for small features 2018-11-21 15:34:43 -08:00
Eric Fischer 5dfbc4a281 Add --clip-bounding-box option to clip input geometry 2018-10-22 16:49:33 -07:00
Eric Fischer 1b75ca33b4 Bug fix: mismatched features could be coalesced if from a prefilter 2018-10-10 14:35:46 -07:00
Eric Fischer 759bceb986 Duplicate features within the buffer of the antimeridian on both sides 2018-07-27 16:14:49 -07:00
Eric Fischer 8d6bd4e10f Add a filter extension to allow filtering individual attributes 2018-06-18 11:26:22 -07:00
Eric Fischer b0229530ac Turn off progress indicators during tests
(For the sake of Travis's 4MB log limit)

Also fix a few places that logged progress even when told not to.
2018-06-07 13:27:49 -07:00
Eric Fischer c9eed0d457 Be careful to remove null attributes from prefilter/postfilter output 2018-06-06 11:48:57 -07:00
Eric Fischer 09565b4632 Fix arithmetic overflows 2018-05-11 17:29:29 -07:00
Eric Fischer 59dd095607 Make file positions and lengths thread-safe 2018-05-07 14:42:49 -07:00
Eric Fischer 8ba884530a Also take note of --force-feature-limit if extending zooms 2018-05-04 12:43:27 -07:00
Eric Fischer 1b26becad9 Clear up some confusion about attribute count and external references
Now the count is always adjacent to whereever the key/value pair is
stored, and is not kept in the serial feature object other than as
the length of the vectors of keys and values.
2018-04-05 15:40:14 -07:00
Eric Fischer d01d8177a0 Allow filtering features by zoom level in conditional expressions
This moves filtering from the serialization stage to the
tiling stage so that the zoom level can be known to the filter.

The side effect is to carry null attributes much further through
the pipeline than previously.
2018-04-05 14:15:19 -07:00
Eric Fischer 1c4aa57ffd Change the JSON writing functions to object methods 2018-03-16 13:43:21 -07:00
Eric Fischer 623e0c90fe More regularization of JSON writing 2018-03-15 17:07:26 -07:00
Eric Fischer fac0ebbf52 All the other places where I used volatile but really wanted atomic 2018-03-13 15:21:21 -07:00
Eric Fischer 834c05038c Add --progress-interval setting to reduce progress indicator frequency 2018-03-13 14:51:48 -07:00
Eric Fischer 2b936af96a Fix indentation 2018-03-02 10:35:58 -08:00
Eric Fischer 18e345efb0 Make clusters look better by averaging locations of clustered points 2018-03-01 16:53:59 -08:00
Eric Fischer 10a1bc8580 Fix use of references into the wrong string pool after parallel input 2018-02-28 13:09:55 -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 d66d05213f Add the mean as an option for accumulating attributes 2018-02-27 16:12:29 -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 c604a51039 Don't coalesce features whose non-string-pool attributes don't match
Fortunately most attributes are in the string pool, but ones that
have passed through the prefilter are not. (Nor are attributes that
are generated by clustering or by attribute accumulation.)
2018-02-27 13:38:37 -08:00
Eric Fischer 45b1a1d9e0 Sum, product, concat, and comma operations work now 2018-02-26 16:47:15 -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 7fe0c87806 Get attribute accmulation by concatenation working 2018-02-23 16:16:11 -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 bc0edec753 Call a function that will eventually preserve the attributes 2018-02-20 17:24:15 -08:00
Eric Fischer b73e710855 Add --accumulate-attribute flag and pass the result to tiling 2018-02-20 16:19:49 -08:00
Eric Fischer 2e5b597ca1 Add --coalesce-fraction-as-needed and --coalesce-densest-as-needed 2018-02-06 14:39:05 -08:00
Eric Fischer e07a4dd51b Fix out-of-bounds error when no threads were needed for a zoom level 2018-01-18 12:12:35 -08:00
Eric Fischer aaf08a6c55 Add an option to specify the clustering distance directly 2017-12-20 17:33:30 -08:00
Eric Fischer 01884a3bf6 Make sure the feature gap always increases when trying to reduce density 2017-12-19 12:09: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 2e32004589 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.
2017-12-13 12:05:53 -08:00
Eric Fischer 2234e37883 Quadkey-order index is a better secondary key for --reorder anyway 2017-11-22 12:49:40 -08:00
Eric Fischer 8230987405 Fix a bug that could cause the wrong features to be coalesced 2017-11-22 11:54:25 -08:00
Eric Fischer 9a12a76855 Fix overflow when iterating through 0-length lists backwards 2017-11-17 15:47:10 -08:00