Commit Graph
100 Commits
Author SHA1 Message Date
Eric Fischer 2bd0cb9f43 Don't override PREFIX if it is set in the environment 2014-11-24 10:35:06 -08:00
Eric Fischer bb13dc03e5 Gzip -9 tiles. Don't bother writing tiles whose features all got clipped away. 2014-11-20 14:33:45 -08:00
Eric Fischer 82c0f67813 Explicitly use /usr/local, as Yosemite apparently needs 2014-11-15 23:46:39 -08:00
Eric Fischer a1769416d1 Fix operator precedence warning 2014-11-14 15:26:59 -08:00
Eric Fischer 896f05aea6 Use gzip tile compression to match current tile server 2014-11-14 14:21:12 -08:00
Eric Fischer ffe4c95376 Calculate point dropping during encoding instead of tiling
so it is consistent across tile boundaries, and so every point
that exists at zoom x always also exists at zoom x+1.
2014-11-14 12:42:50 -08:00
Eric Fischer 428be06442 Accept gzip compression as well as zlib 2014-11-13 22:47:54 -08:00
Eric Fischer 8210f83912 Make the progress indicator less chatty 2014-11-13 10:48:59 -08:00
Eric Fischer e7aa05e7e4 Don't immediately fail when a very low tile resolution is specified manually 2014-11-12 17:06:58 -08:00
Eric Fischer 5595a087c7 Quick reject by bounding box of linear features too small to draw 2014-11-12 15:57:45 -08:00
Eric Fischer 2b6ad9968f Add a flag to exclude all properties except ones explicitly named 2014-11-12 12:41:56 -08:00
Eric Fischer b05c5a9583 Skip over properties with null values instead of considering it an error 2014-11-12 12:19:39 -08:00
Eric Fischer 1aea522ef5 Fix another overflow that broke line clipping at zoom level 1. 2014-11-07 12:51:26 -08:00
Eric Fischer 575a24b095 Use a set instead of a map to reduce needless memory overhead 2014-11-06 11:29:11 -08:00
Eric Fischer ea292def47 Make duplicate trimming less bad: only trim features indexed >1 time 2014-11-06 11:27:10 -08:00
Eric Fischer 7f6a5dc005 The maxzoom=0 case couldn't have worked 2014-11-06 11:05:09 -08:00
Eric Fischer 241d96e57c Save a few more bytes per geometry in the temporary file
by using bytes instead of ints for the drawing operations
2014-11-05 14:37:54 -08:00
Eric Fischer c24cfada61 Move feature type to index so point skipping can avoid looking up geometry
Which should avoid having to page the geometry in if there is
more data than will fit in memory
2014-11-05 12:18:03 -08:00
Eric Fischer bc4527b25d Add an option to set the directory for the temporary files 2014-11-05 10:34:44 -08:00
Eric Fischer 097d6ccf7d Use a bitfield to make the index 2/3 the size, to save some disk churn 2014-11-05 10:07:05 -08:00
Eric Fischer a039aca860 Read-only memory map for merging, since there's no reason to write 2014-11-04 10:08:30 -08:00
Eric Fischer 3e3fdcbab4 Bring over the multistage sort from datamaps to avoid Mac crashes 2014-11-03 22:47:41 -08:00
Eric Fischer 3f9f50258c Just use a standard C++ type for deduplicating instead of reinventing the wheel 2014-10-31 16:50:28 -07:00
Eric Fischer 8e84a8ffda I forgot how bad sorted data is in binary trees.
Swizzle the bits so deduplicating features isn't so terrible.
2014-10-31 16:41:11 -07:00
Eric Fischer ea7216641b If the requested tile doesn't exist, try climbing up to a lower zoom 2014-10-27 16:00:16 -07:00
Eric Fischer 984ac17d6c Use the same default ground precision whatever the base zoom is. 2014-10-27 14:36:13 -07:00
Eric Fischer a09bf3469d Fix line clipping overflow bug 2014-10-27 14:24:11 -07:00
Eric Fischer 3cd6fcfbe0 Add option to set buffer size. Pass it through to clipping functions. 2014-10-27 13:20:17 -07:00
Eric Fischer 4cb56a6b11 The indexing side of buffering features at the edges of tiles 2014-10-27 12:56:51 -07:00
Eric Fischer e0826a12c6 Much faster at low zooms to check for duplicates before simplifying 2014-10-27 10:00:46 -07:00
Eric Fischer be94bd0dd5 Remove an unused field from the index structure 2014-10-27 09:52:25 -07:00
Eric Fischer 4b171c74b7 Constrain calculated center point to be within the bounding box
It could come out bigger because it is calculated from the center
of the densest tile, not actually the centroid.
2014-10-26 13:12:29 -07:00
Eric Fischer 9bb4a549ca Silence warnings about unused variables 2014-10-24 17:24:04 -07:00
Eric Fischer 46100c34df Move projection and tile arithmetic to its own file 2014-10-24 17:22:14 -07:00
Eric Fischer 754dbf152a Remove dead code 2014-10-24 15:23:35 -07:00
Eric Fischer 17384d5da7 Move geometric transformations into their own file 2014-10-24 15:12:02 -07:00
Eric Fischer 75b7af8f79 Minimal tile decoder, only geometry for the moment 2014-10-23 15:40:27 -07:00
Eric Fischer 4e1eacc5b2 Simple enumerate command like the datamaps one 2014-10-23 14:04:57 -07:00
Eric Fischer ac00c84fb2 Save a little more space by sub-ordering within the same index
to put the lowest-numbered endpoint last
within lines that start at the same point,
since that is the one that might come next.
2014-10-21 17:59:42 -07:00
Eric Fischer 1cae0e85b3 Reindex features by their first coordinates so they coalesce better 2014-10-21 16:16:09 -07:00
Eric Fischer 9dab4b9fb6 Reverse lines that point the "wrong" direction so they coalesce better 2014-10-21 16:09:51 -07:00
Eric Fischer 4bb441ce41 Speed up reading further by reading buffers instead of characters 2014-10-19 15:35:28 -07:00
Eric Fischer 84b9dea51e Buffer the next character internally to make reading faster 2014-10-19 15:15:36 -07:00
Eric Fischer 043b35eede Take another opportunity to simplify lines after coalescing features 2014-10-18 11:40:09 -07:00
Eric Fischer 151f0c116c Fix clipping of polygons with multiple rings. 2014-10-16 15:17:18 -07:00
Eric Fischer 3bdcc3ca90 Heavy-handedly fix clipping errors at the edges of z0 and z1 tiles 2014-10-15 17:03:30 -07:00
Eric Fischer 8fec4ef9fc Return immediately instead of failing to clip polygons to the z0 tile 2014-10-15 16:34:49 -07:00
Eric Fischer 43b27e2dfd Don't closepath twice in multipolygons 2014-10-15 16:30:33 -07:00
Eric Fischer dc3c6138d1 Fix failure to close polygons. 2014-10-15 16:15:24 -07:00
Eric Fischer e561931d53 Fix bug that would always index for z14 regardless of actual max zoom 2014-10-15 15:49:03 -07:00
Eric Fischer 1502e5832c More option documentation cleanup 2014-10-09 17:26:16 -07:00
Eric Fischer ea99ae8db3 Document -X and improve option formatting in general 2014-10-09 17:22:22 -07:00
Eric Fischer ac34a292e9 Add an flag to remove all properties and use only geometry 2014-10-09 15:11:43 -07:00
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