Commit Graph
100 Commits
Author SHA1 Message Date
Eric Fischer dea4335162 Less accurate but much faster estimate of size savings from excluding metadata 2014-10-09 14:02:20 -07:00
Eric Fischer 65ec829de6 Report every 10000 features on input, since parsing GeoJSON is slow. 2014-10-09 12:23:43 -07:00
Eric Fischer 389c89bdf9 Put the suggestions in order 2014-10-08 16:59:00 -07:00
Eric Fischer 67b8b984e5 Suggest properties you could drop to make the tiles smaller 2014-10-08 16:39:44 -07:00
Eric Fischer e1c5bfe3e1 Factor out aspects of tile creation 2014-10-08 14:01:47 -07:00
Eric Fischer 376bab74a5 Larger minimum polygon size looks better than dropping to larger pixels 2014-10-07 16:19:18 -07:00
Eric Fischer 49b36e09cc Tiny polygons (smaller than a pixel) decay into probabilities. 2014-10-07 15:38:06 -07:00
Eric Fischer adbd9f6edb Add a flag to select the rate at which points are dropped at low zooms. 2014-10-07 13:54:13 -07:00
Eric Fischer 8f71604fe6 If reading from standard input, use the .mbtiles as default layer name 2014-10-07 12:02:12 -07:00
Eric Fischer 8594dbe56b If a tile is too big, try backing off to lower resolutions before failing 2014-10-07 10:27:17 -07:00
Eric Fischer bda20fe8a6 Improve error reporting 2014-10-06 10:55:40 -07:00
Eric Fischer 41447a4678 Be clearer about error reporting 2014-10-04 14:11:59 -07:00
Eric Fischer 3433d17a96 Clip polygons to just outside the tile boundary 2014-10-03 16:33:22 -07:00
Eric Fischer 722e5f16eb Dashing: better than shortening, but still too visible 2014-10-01 14:01:58 -07:00
Eric Fischer 6922a57aea Still looks terrible, but make segment shortening work again 2014-10-01 11:09:35 -07:00
Eric Fischer b292b66a7c Fix more (small) memory leaks 2014-10-01 10:33:22 -07:00
Eric Fischer 7df269219c Fix memory leak of field names 2014-10-01 10:20:04 -07:00
Eric Fischer 6a64cf1b04 Convert metadata to use a vector too. 2014-09-30 17:24:34 -07:00
Eric Fischer 6bbe023187 Return to sorting features before coalescing 2014-09-30 17:18:23 -07:00
Eric Fischer 3ad8a919d9 Crash if the geometry is corrupted 2014-09-30 16:37:09 -07:00
Eric Fischer c32b0207f2 Use a constructor, and fix an encoding bug for lines clipped away entirely 2014-09-30 16:27:00 -07:00
Eric Fischer 1b3620dabc Start converting C arrays to C++ vectors 2014-09-30 15:53:45 -07:00
Eric Fischer 04c8a4441d Remove no-ops after coalescing, which will often generate empty moves. 2014-09-29 17:32:01 -07:00
Eric Fischer e09bec0824 Don't coalesce point features, because multipoints don't seem to draw right. 2014-09-29 16:18:20 -07:00
Eric Fischer 099623cd32 Arrays for coalescing can get too big for the stack. 2014-09-29 15:59:36 -07:00
Eric Fischer 98b0cb5e3f Tiles are smaller if coalesced features are sorted geographically 2014-09-29 15:38:33 -07:00
Eric Fischer a08e57357a Coalesce geometries of features with the same attributes 2014-09-29 15:33:14 -07:00
Eric Fischer f0d2dbd2a8 Add -f option to overwrite existing mbtiles file 2014-09-29 15:09:21 -07:00
Eric Fischer c02c91df5a Make an array of features in each tile to prepare to coalesce features 2014-09-29 14:46:45 -07:00
Eric Fischer 26e9feda02 Move mbtiles code to its own source file 2014-09-29 12:48:58 -07:00
Eric Fischer 5e64040859 Remove dead code 2014-09-29 12:18:58 -07:00
Eric Fischer 8118c13a71 Give the constant pool its own source file 2014-09-29 12:17:35 -07:00
Eric Fischer fabeb4588d Stop duplicating pool initialization code 2014-09-29 12:12:54 -07:00
Eric Fischer 5ab7f89465 Add an option to exclude specified properties 2014-09-29 10:50:24 -07:00
Eric Fischer ca6c491c6f More readme clarifications and examples 2014-09-27 10:36:45 -07:00
Eric Fischer c326762b6f Crunch out spaces and most punctuation from autogenerated layer names 2014-09-27 09:39:20 -07:00
Eric Fischer 120809b004 Clip large LineString features down to the bounds of the tile 2014-09-26 17:07:52 -07:00
Eric Fischer 2d34916fca Clipping code from datamaps 2014-09-26 16:35:18 -07:00
Eric Fischer 69fa9e5f22 Remove jsoncat since it doesn't belong in this project 2014-09-26 16:14:13 -07:00
Eric Fischer 9f3666472e More README clarification 2014-09-26 15:36:41 -07:00
Eric Fischer be397b0391 Mention line simplification 2014-09-26 15:27:20 -07:00
Eric Fischer 0f593d8fdf Fix build errors on Mac 2014-09-26 15:25:12 -07:00
Eric Fischer 1a7d2f6d00 Expand README 2014-09-26 15:20:08 -07:00
Eric Fischer c083d2f9f8 Commit to a name 2014-09-26 14:53:10 -07:00
Eric Fischer 7052378613 Remember to finalize statements 2014-09-26 14:51:29 -07:00
Eric Fischer a2f3dd4769 Correct example 2014-09-26 14:51:19 -07:00
Eric Fischer 02b85931f6 Replace README with something appropriate 2014-09-26 14:45:45 -07:00
Eric Fischer 6edaaa1104 Restrict to one input file, since that's all that will work 2014-09-26 14:33:03 -07:00
Eric Fischer 0a8420cc2e Add options to specify the base and low-zoom level of detail 2014-09-26 10:52:19 -07:00
Eric Fischer 528e0575e2 Actually write tiles directly to the .mbtiles file! 2014-09-25 16:34:17 -07:00
Eric Fischer ce485148fe String formatting mess to encode the JSON metadata 2014-09-25 16:07:03 -07:00
Eric Fischer 86f4f2dd05 More metadata adding, and boilerplate from mbutil 2014-09-25 15:38:20 -07:00
Eric Fischer eec0e14447 Start putting data into mbtiles instead of separate files 2014-09-25 15:20:17 -07:00
Eric Fischer e722ee487e More useful progress indicator 2014-09-25 14:36:25 -07:00
Eric Fischer 201708f19c Add command line options for zoom, title, layer name, name, output dir 2014-09-25 12:09:31 -07:00
Eric Fischer 0b23e65803 Hardcode layer name a little less. 2014-09-24 23:22:14 -07:00
Eric Fischer dc7c58169f Use a constant instead of assuming everything goes to z0 2014-09-24 22:58:17 -07:00
Eric Fischer 1bcbd0661c Curves look a lot better keeping 1/4-pixel detail at any zoom 2014-09-24 17:57:18 -07:00
Eric Fischer 4de57b960d Bump up tolerance. Anything higher is visibly off. 2014-09-24 17:40:32 -07:00
Eric Fischer ed05bc9f7e Fix overflow that was leaving some lines too far away 2014-09-24 17:23:40 -07:00
Eric Fischer 41fcd4c82f Mostly working line simplification 2014-09-24 16:51:53 -07:00
Eric Fischer 509171b470 Optimize out line movetos that don't actually move 2014-09-24 15:43:24 -07:00
Eric Fischer e65eb0b310 Looks terrible, but drop pieces of lines to maintain density across zooms 2014-09-24 14:58:26 -07:00
Eric Fischer 5cde832ec6 Stay in (tile-relative) world-scaled coordinates initially 2014-09-24 14:15:04 -07:00
Eric Fischer ce3cdfc5e9 Choose the center of the busiest tile for the map center 2014-09-24 12:14:35 -07:00
Eric Fischer fbf60b6d80 Factor out and improve no-op drawing elimination 2014-09-24 11:42:20 -07:00
Eric Fischer ef3d9867fc This can just be a regular loop now 2014-09-23 21:40:23 -07:00
Eric Fischer a8907362bd Count drawing operations, not ops and coordinates equally 2014-09-23 18:19:06 -07:00
Eric Fischer e8c3177725 Separate translation to tile coordinates from vector feature generation 2014-09-23 18:08:31 -07:00
Eric Fischer 95c2fb67b2 Fix large features getting included multiple times at low zooms 2014-09-23 17:18:36 -07:00
Eric Fischer 8f77376b58 Calculate a bounding box and hopefully reasonable center point 2014-09-23 16:41:38 -07:00
Eric Fischer 5d7a2f50a9 Write the metadata file 2014-09-23 16:12:41 -07:00
Eric Fischer 91eefcbd16 Drop more points at each lower zoom level 2014-09-23 14:42:17 -07:00
Eric Fischer 7fc1c0cd24 Fix index mixup that kept points from working at all 2014-09-23 14:02:18 -07:00
Eric Fischer 454a5dd3c7 Index anything that entirely fits within the tile by its centroid 2014-09-23 13:33:40 -07:00
Eric Fischer dd8f43a697 Bail if the tile size is larger than the uploader will accept 2014-09-23 12:17:18 -07:00
Eric Fischer 3170616f6d Fix encoding of attribute values. They do have their own pool. 2014-09-23 11:41:36 -07:00
Eric Fischer 405889317e Optimize away any features that don't draw at all 2014-09-23 11:32:36 -07:00
Eric Fischer 8ebeada364 Fix inconsistent indentation 2014-09-23 10:57:50 -07:00
Eric Fischer 00a42796b4 Use lower resolution at lower zooms. Not sure it's worth it. 2014-09-23 10:57:01 -07:00
Eric Fischer 7bb79dab8e Optimize away deltas of 0 2014-09-23 10:37:18 -07:00
Eric Fischer 581105dc9a Much faster to search and add to the string pool as a binary tree 2014-09-22 22:31:55 -07:00
Eric Fischer d7cdbec980 Fix bit shifting errors at z0 2014-09-22 18:08:37 -07:00
Eric Fischer 6851e914a9 Write out the tile as PBF 2014-09-22 17:46:48 -07:00
Eric Fischer 3df523a588 Write out geometry 2014-09-22 17:12:38 -07:00
Eric Fischer 78304d6385 Start writing a feature 2014-09-22 16:50:24 -07:00
Eric Fischer 27f99a1322 Inline so there is access to the tile object the whole time 2014-09-22 16:39:25 -07:00
Eric Fischer c679fa176b Move whole tile-producing function onto the C++ side 2014-09-22 16:27:31 -07:00
Eric Fischer 74bdbfc76a Serialize geometry before tags
To make it easier to skip the tags if the geometry is optimized away
2014-09-22 16:17:55 -07:00
Eric Fischer baf364dd53 Write string pool to tile 2014-09-22 16:06:44 -07:00
Eric Fischer b8e7d3edf8 Start toward actually writing out tiles 2014-09-22 15:41:13 -07:00
Eric Fischer 41981ec8e9 Make the string pools within each tile 2014-09-22 12:22:58 -07:00
Eric Fischer 94ef6afc17 Identify the start and end of each tile 2014-09-22 11:22:23 -07:00
Eric Fischer 95ff8de6d9 Add vector tile boilerplate 2014-09-22 10:45:34 -07:00
Eric Fischer 647edc36d6 Index each feature in each tile rather than looking up features by tile later 2014-09-19 15:40:07 -07:00
Eric Fischer eedb0850b2 Factor out code for finding ranges within the index 2014-09-18 17:25:33 -07:00
Eric Fischer 7c5254b1e3 Add progress indicator for tile iteration too 2014-09-18 17:02:09 -07:00
Eric Fischer 1554a59153 Add a progress indicator. Remember to run the optimizer. 2014-09-18 16:27:34 -07:00
Eric Fischer 9fd4da4f7d Unlink tmp files early in case the tiling doesn't run to completion 2014-09-18 14:04:52 -07:00
Eric Fischer b5d28af005 Iterate through the bbox and look up geometries by tile 2014-09-18 14:01:22 -07:00