Commit Graph

183 Commits

Author SHA1 Message Date
Eric Fischer
c867ce5f32 Stop --drop-smallest-as-needed from always dropping all points 2016-11-23 13:57:32 -08:00
Eric Fischer
e9aa8c1b7d Add an option to prevent tiny polygon reduction 2016-11-21 11:26:37 -08:00
Eric Fischer
dc9e68b128 Make feature-dropping option names a little more consistent 2016-11-17 12:40:11 -08:00
Eric Fischer
5479e59aa9 Save another byte in features that have no metadata 2016-11-17 10:11:59 -08:00
Eric Fischer
439b544c8c Don't serialize the feature sequence number unless needed for -pi 2016-11-16 17:35:25 -08:00
Eric Fischer
9ea29601ab Don't let line simplification reduce a polygon ring to below 3 points 2016-11-14 11:22:21 -08:00
Eric Fischer
32aa653082 Don't spend geometry space on index or extent unless it is needed 2016-11-11 17:37:46 -08:00
Eric Fischer
013e6512b4 Add an option to drop the smallest features to make tiles small enough 2016-11-09 17:09:05 -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
700ca489c7 Fix flakiness: don't decrease the global feature gap 2016-11-03 17:49:32 -07:00
Eric Fischer
a8bdbe8012 Fix the progress indicator when doing two passes over each zoom level 2016-11-03 17:13:11 -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
2e026f9b3b Use float instead of double in tiles if the value comes out the same 2016-10-27 14:37:46 -07:00
Eric Fischer
80e5159144 Remove dead code 2016-10-26 16:00:59 -07:00
Eric Fischer
8296190487 Remove leftovers from early versions of --detect-shared-borders 2016-10-26 15:47:26 -07:00
Eric Fischer
7727b3a92c Start each tile's gamma/mingap at the same point to help flaky tests 2016-10-26 10:40:53 -07:00
Eric Fischer
10fc9254d1 Add an option to discover the minimum workable gap between features 2016-10-25 16:28:32 -07:00
Eric Fischer
db859e8801 Reorder which tile-shrinking strategy to try first 2016-10-25 15:21:00 -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
4b3fc4aebe Track the new identity of merged polygons so they can be merged further 2016-10-25 10:01:18 -07:00
Eric Fischer
057d7b759c Iterate over arcs, not polygons, when merging 2016-10-24 17:58:26 -07:00
Eric Fischer
2798bf7b6f Add an option to merge adjacent polygons together to reduce tile size 2016-10-24 17:22:07 -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
7cb7fc4913 Fix where I was inserting the copied ring in backwards order 2016-10-24 15:06:57 -07:00
Eric Fischer
3cc95231ec Work on merging together adjacent polygons to reduce tile size 2016-10-24 15:06:49 -07:00
Eric Fischer
83e73e8840 Add an option to dynamically increase gamma until tiles are small enough 2016-10-24 12:29:36 -07:00
Eric Fischer
92cc08a554 Fix some compiler warnings about signed comparisons 2016-10-14 17:11:57 -07:00
Eric Fischer
82377944ee Merge branch 'master' into consistent-dropping 2016-10-14 15:35:35 -07:00
Eric Fischer
71bf20b205 Remove debug output 2016-10-14 12:30:54 -07:00
Eric Fischer
feb9b4481a Stabilize edge list order by also comparing ring IDs 2016-10-14 12:27:24 -07:00
Eric Fischer
a5d803aa9a Lots of debug output to try to track down Mac/Linux differences 2016-10-14 12:15:23 -07:00
Eric Fischer
081e330845 Reset counter with each tile, to match old low-zoom feature density 2016-10-12 09:49:25 -07:00
Eric Fischer
5ab41417fc Calculate feature-dropping (except gamma) during geometry reordering 2016-10-10 17:15:33 -07:00
Eric Fischer
c8a1b082e0 Don't serialize the per-feature minzoom until geometry merging time 2016-10-10 15:31:09 -07:00
Eric Fischer
896c9d8398 Rename option to --detect-shared-borders and add a test 2016-10-06 16:16:51 -07:00
Eric Fischer
7258643d5a A sorted list is smaller and faster than a map of sets 2016-10-05 17:16:18 -07:00
Eric Fischer
4c1b135848 Save a little time by only looking up each segment once 2016-10-05 17:16:18 -07:00
Eric Fischer
46b634ce46 Remember to close the polygon 2016-10-05 17:16:18 -07:00
Eric Fischer
6455b6633e Remember to honor --no-line-simplification if it was requested 2016-10-05 17:16:18 -07:00
Eric Fischer
938274aa91 Remove more debugging code 2016-10-05 17:16:18 -07:00
Eric Fischer
2b4280695f Extract common edges, simplify, then reassemble polygon rings 2016-10-05 17:16:18 -07:00
Eric Fischer
d35dc4936a If a point divides one border, it divides any that touch there 2016-10-05 17:16:18 -07:00
Eric Fischer
57cc343855 Most of the way toward TopoJSON-style factoring out of edges 2016-10-05 17:16:18 -07:00
Eric Fischer
91bfc2ca89 Choose a consistent starting point for rings with no shared edges 2016-10-05 17:16:18 -07:00
Eric Fischer
59619fb6cd Crunch out zero-length linetos to improve the match 2016-10-05 17:16:18 -07:00
Eric Fischer
6b4076684c Find a common-edge transition if it's the first point of the ring 2016-10-05 17:16:18 -07:00
Eric Fischer
2bc9e15975 Roll rings around so they start at an intersection transition, if any 2016-10-05 17:16:18 -07:00
Eric Fischer
f7daa05515 Add a critical point where the set of rings using a polygon edge changes 2016-10-05 17:16:18 -07:00
Eric Fischer
4dd3411c64 Merge branch 'master' into named-layer 2016-08-30 15:33:51 -07:00
Eric Fischer
d8ba9db386 Remove unused layer count and layer name list 2016-08-30 15:09:18 -07:00
Eric Fischer
1bed572350 Rename variables for clarity 2016-08-30 15:05:33 -07:00
Eric Fischer
1f53491009 Tile by layer names instead of by layer numbers 2016-08-30 14:59:53 -07:00
Eric Fischer
3e881a428c Make a reverse-mapping table from layer IDs to names 2016-08-30 14:38:30 -07:00
Eric Fischer
31d2a3738a Get rid of the old file_keys 2016-08-30 13:46:37 -07:00
Eric Fischer
531c238c5b Pass the layer maps through into tiling 2016-08-29 17:42:46 -07:00
Eric Fischer
9161b74d99 Don't try to revive a placeholder for a degenerate polygon with negative area 2016-08-24 12:34:28 -07:00
Eric Fischer
8b339abd40 Use the same serialization in both places, and add sanity checks 2016-08-08 17:08:36 -07:00
Eric Fischer
67272bfe4a Move polygon winding fixup out of tiling and into parsing 2016-08-01 17:35:37 -07:00
Eric Fischer
488dff0efb Encode the "id" field of GeoJSON objects as vector tile feature ID 2016-07-15 15:00:56 -07:00
Eric Fischer
9908db5e56 Add an option to vary the level of line and polygon simplification 2016-07-12 16:51:56 -07:00
Eric Fischer
cb45f1c3bd That's still not right. Don't generate a tile with no layers. 2016-07-12 15:56:57 -07:00
Eric Fischer
d127c43566 Be even more careful not to produce features with empty geometry 2016-07-11 17:45:12 -07:00
Eric Fischer
40f2f61d98 Fix double-counted progress in the progress indicator 2016-07-08 15:49:59 -07:00
Eric Fischer
20b0fe1a52 Revert unneeded change 2016-05-27 16:35:46 -07:00
Eric Fischer
692112ec3a Add an option to calculate feature density as a feature attribute 2016-05-27 16:25:40 -07:00
Eric Fischer
1d636e5c0d Consistently treat "prevent" and "additional" options as globals 2016-05-25 11:38:52 -07:00
Eric Fischer
4638c6f273 Merge branch 'master' into inline-meta2
Conflicts:
	tile.cpp
2016-05-23 15:57:28 -07:00
Eric Fischer
f0e90620e4 A little more structure packing 2016-05-11 14:47:23 -07:00
Eric Fischer
c0edefa721 Pack structures tighter to use a little less memory 2016-05-11 14:23:39 -07:00
Eric Fischer
3655a54d22 Add the ability to inline metadata with geometry 2016-05-10 16:46:45 -07:00
Eric Fischer
5cc6d97d9f Don't let polygons with nonzero area disappear during cleaning
If they collapse, turn them into placeholder squares with the
appropriate area so that there aren't visible coverage gaps.
2016-05-05 13:42:32 -07:00
Eric Fischer
0f1d2e4220 Fix additional g++ warnings 2016-05-03 16:39:26 -07:00
Eric Fischer
f1b3f6d231 Fix warnings about shadowed variables 2016-05-03 15:48:42 -07:00
Eric Fischer
271ec3d154 Stop using malloc for layer names 2016-05-03 10:52:49 -07:00
Eric Fischer
adc70341ad Use std::set to track the layer-wide feature attribute types.
Track them during parsing, not tiling.  Remove the old string pool code.
2016-04-28 14:59:58 -07:00
Eric Fischer
5490f3e15f Fix numeric overflow 2016-04-28 11:52:09 -07:00
Eric Fischer
ee97e6c307 Whittle down tile.hpp to the things that actually related to tile.cpp 2016-04-27 15:09:06 -07:00
Eric Fischer
f3b9e15267 Move serialization code to its own file 2016-04-27 14:19:10 -07:00
Eric Fischer
65253cba50 Drag header files into C++ 2016-04-27 14:00:14 -07:00
Eric Fischer
d32d4bb35f No need for line clipping to have its own source file 2016-04-27 12:36:51 -07:00
Eric Fischer
b12413eddb Rename everything from .cc to .cpp to match other projects 2016-04-27 12:22:47 -07:00