Commit Graph

158 Commits

Author SHA1 Message Date
Eric Fischer
6a5461763c Fix reordering of attributes and failure to update layer name table 2016-12-20 16:41:23 -08:00
Eric Fischer
4fc671f1d1 Merge branch 'master' into plugins 2016-12-14 11:29:58 -08:00
Eric Fischer
56e1f55bb6 Fix warnings identified by g++ 2016-12-13 17:54:55 -08:00
Eric Fischer
af3d48e5b3 Fix integer overflow identified by -fsanitize=integer 2016-12-13 16:19:38 -08:00
Eric Fischer
c2fa8e3633 Switch the segment and layer ID based on prefilter output 2016-12-12 17:00:45 -08:00
Eric Fischer
9c0e2cdfa7 Fill out layermaps when reading the output of the prefilter 2016-12-12 16:08:08 -08:00
Eric Fischer
5e7f718afc Fill out layermaps when reading the output of the postfilter 2016-12-12 15:21:05 -08:00
Eric Fischer
5dc773ffae Carry attribute keys and values through from the prefilter 2016-12-09 15:54:47 -08:00
Eric Fischer
0e5b513637 Start getting features (just geometry so far) back from the prefilter 2016-12-09 15:35:57 -08:00
Eric Fischer
a338f5390f Fix where I was closing the prefilter pipe in the wrong thread 2016-12-09 14:15:17 -08:00
Eric Fischer
c8a8915064 Push prefilter writing into a thread (but something is crashing) 2016-12-09 14:01:07 -08:00
Eric Fischer
9f10f48bfb Pull feature deserialization and rewriting out of the loop 2016-12-09 11:53:50 -08:00
Eric Fischer
5194a39c16 Factor out clipping to tile boundaries; test random attributes & layers 2016-12-09 10:47:03 -08:00
Eric Fischer
daf1941ba9 Add missing #include 2016-12-08 17:22:07 -08:00
Eric Fischer
569825324a Factor out feature deserialization 2016-12-08 17:11:37 -08:00
Eric Fischer
16df86c26e Set up and tear down the prefilter pipeline 2016-12-08 16:13:02 -08:00
Eric Fischer
d1dc310bbc The GeoJSON-producing part of prefiltering 2016-12-08 15:13:38 -08:00
Eric Fischer
5960a15fcd Add magic #defines to avoid default small Mac stdio limits 2016-12-08 12:33:02 -08:00
Eric Fischer
3f14a0dd55 Factor out conversion from JSON types to vector tile attribute types 2016-12-07 16:17:17 -08:00
Eric Fischer
5554b9cbba Add the command-line option to specify the filter 2016-12-07 12:15:57 -08:00
Eric Fischer
58e268777c Missed a file for the close-on-exec flag 2016-12-07 11:19:29 -08:00
Eric Fischer
87d86ecfc9 Set close-on-exec flag for most file descriptors 2016-12-07 10:57:56 -08:00
Eric Fischer
94bebbd276 Write GeoJSON to the filter and read (but don't parse) what comes back 2016-12-06 17:19:22 -08:00
Eric Fischer
e8c5759f70 Dot-dropping doesn't apply if there is a per-feature minzoom tag 2016-12-06 15:36:10 -08:00
Eric Fischer
0db8d9ed8b Option to snap low zooms to a stairstep grid 2016-11-28 15:45:38 -08:00
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