CHANGELOG.md 7.25 KB
Newer Older
Richard Fairhurst's avatar
Richard Fairhurst committed
1
2
# Changelog

systemed's avatar
systemed committed
3
## [2.0.0] - 2021-07-09
systemed's avatar
systemed committed
4

5
### Added
systemed's avatar
systemed committed
6
- Optionally use on-disk workspace with new --store option (@kleunen)
systemed's avatar
systemed committed
7
- Load .pbf in parallel (@kleunen)
systemed's avatar
systemed committed
8
9
10
11
- Static executable build for github CI (@kleunen)
- Mac and Windows CI builds (@kleunen)
- Write metadata.json for file output (@kleunen)
- Merge tile contents when using --merge switch
systemed's avatar
systemed committed
12
- Mapsplit (.msf) source data support
13
- `obj:MinZoom(z)` to set the minimum zoom at which a feature will be rendered
systemed's avatar
systemed committed
14
- `obj:Centroid` to get the central lat/lon of an OSM object
systemed's avatar
systemed committed
15
16
17
18
- `filter_below` to skip small areas at low zooms
- Make layer name available in shapefile `attribute_function`
- Set minimum zoom at which attributes are written
- Set minimum zoom for shapefile processing
systemed's avatar
systemed committed
19
- Set minimum zooms for placenames, waterways, buildings, and landcover in OpenMapTiles processing (@typebrook, @systemed)
systemed's avatar
systemed committed
20
- Render roads under construction on OpenMapTiles processing (@meromisi, @Beck-berry)
systemed's avatar
systemed committed
21
22
- Support any (post-5.1) version of Lua
- Build with Github Action (@typebrook)
systemed's avatar
systemed committed
23
- Use a shared key/value dictionary across OutputObjects to reduce memory usage (@kleunen)
systemed's avatar
systemed committed
24
25

### Changed
systemed's avatar
systemed committed
26
- C++14 required
systemed's avatar
systemed committed
27
- Remove Lua scale functions now that we return metres
systemed's avatar
systemed committed
28
- Improve OpenMapTiles tag processing (@leonardehrenfried, @typebrook, @systemed, @QuentinC, @keichan34)
systemed's avatar
systemed committed
29
- Use OpenMapTiles processing as default in tilemaker directory
systemed's avatar
systemed committed
30
- Change OpenMapTiles minzoom to 0
systemed's avatar
systemed committed
31
- Default simplify_ratio to 2
systemed's avatar
systemed committed
32
33
- Ignore Lake Saimaa and USFS National Forest complex polygons in OpenMapTiles script
- Rewrite linestring/polygon combining, with zoom level control (`combine_below` and `combine_polygons_below`)
systemed's avatar
systemed committed
34
- Use boost::geometry::intersection for clipping (faster than clipper)
systemed's avatar
systemed committed
35
- New simplify code (@kleunen)
systemed's avatar
systemed committed
36
- Use boost::asio::thread_pool for tile generation (@kleunen)
systemed's avatar
systemed committed
37
- Fallback to valid polygons if simplification produces invalid ones
systemed's avatar
systemed committed
38
39
- Consistently use 1TBS in source
- Only output validity errors in verbose mode
systemed's avatar
systemed committed
40
- Various speedups (don't add objects to output list that fail minZoom, optimise clipping)
systemed's avatar
systemed committed
41
42
43

### Fixed
- Don't filter out ABCA areas (@rdsa)
systemed's avatar
systemed committed
44
- Don't break with old versions of sqlite
systemed's avatar
systemed committed
45
- Don't generate tiles outside bounding box (@kleunen)
systemed's avatar
systemed committed
46
- Dissolve problematic geometries (@kleunen)
systemed's avatar
systemed committed
47
48
49
- Assign multipolygon inners to correct outers, including multiple way inners
- Significant performance improvements (@kleunen)
- Support nodes in LayerAsCentroid
50

systemed's avatar
systemed committed
51
## [1.6.0] - 2020-05-22
systemed's avatar
systemed committed
52
53
54
55
56
57
58

### Added
- Specify `source_columns: true` for shapefiles to import all attributes
- Support creating tiles from shapefiles only (i.e. no .osm.pbf)
- `attribute_function` to rewrite shapefile attributes from Lua
- Improved diagnostics for invalid multipolygons
- Output shapefile layer names when reading
systemed's avatar
systemed committed
59
- Report memory usage in verbose mode
systemed's avatar
systemed committed
60
- Out-of-the-box test tileserver and OpenMapTiles-compatible resources
systemed's avatar
systemed committed
61
62
63
64
65
66

### Changed
- Rewrite OpenMapTiles-compatible processing (@systemed, @sasfeat, @typebrook, @leonardehrenfried)
- `--combine` flag now off by default
- 32-bit ways and 16-bit tile index by default, change with `-DFAT_WAYS -DFAT_TILE_INDEX`
- Use tsl::sparse_map instead of std::unordered_map for ~7% memory saving
systemed's avatar
systemed committed
67
- Don't write invalid small polygons
systemed's avatar
systemed committed
68
69
70
- Speedup for shapefile reading (@TimSC)
- Move to Github Actions instead of Travis (@leonardehrenfried)
- Reduce size of Docker image, use Ubuntu 20.04 (@leonardehrenfried)
systemed's avatar
systemed committed
71
72
- Improve area and length calculation (@typebrook, @systemed)
- Overwrite existing .mbtiles file by default
systemed's avatar
systemed committed
73
74
75
76
77
78
79
80

### Fixed
- CMake build fixed (@ogre)
- Compatibility with pre-1.59 Boost Geometry
- Typo fixes (@bezineb5)
- Fix return value for --help (@typebrook)
- Use supercover (modified Bresenham) algorithm for which tiles are affected by diagonal lines

systemed's avatar
systemed committed
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
## [1.5.0] - 2018-02-18

### Added
- Support mbtiles 1.3 specification
- Write `extent` field to tiles
- Ability to specify MVT version (defaults to 2)
- OpenMapTiles-like Lua/JSON files (@TimSC)
- Dockerfile (@thomasbrueggemann)
- Better error messages (@TimSC)
- Support 64-bit way IDs (@TimSC)

### Changed
- Significant refactoring (@TimSC)

### Fixed
- Robustness fixes and error checking for invalid geometries, using clipper inter alia (@TimSC)
- Don't break if config files not found
- Don't break on massive .pbfs (e.g. France extract)
- Don't break if .pbf only contains nodes, not ways
- Fix build issues on some versions of OS X
- Makefile fixes (@pnorman, @thomersch)

systemed's avatar
systemed committed
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
## [1.4.0] - 2016-11-07

### Added
- Use threads when creating output tiles for massive speedup (@grafi-tt)
- Bundle kaguya - no need for Luabind any more
- Report how many output objects were stored
- Add glug support to mbtileserver

### Changed
- `way:FindContaining()` now returns a Lua table rather than an iterator

### Fixed
- Polygon filling algorithm rewritten to work consistently (@grafi-tt)

### Removed
- Mapbox Studio-compatible file layout removed (licensing debatable)
- Vagrantfile removed (dependency problems)

systemed's avatar
systemed committed
121
## [1.3.0] - 2016-07-11
Takeshi Inoue's avatar
Takeshi Inoue committed
122
123
124
125
126
127
128
129

### Added
- Add cmake scripts and support MSVC on Windows (@alex85k)
- Support `way:IsClosed()`, `way:Area()`, `way:Length()`, and `way:ScaleToKm()` (@grafi-tt)
- Optionally call lua functions `init_function()` and `exit_function()` (@tinoue)
- Support `simplify_ratio`, and calculate the actual simplify level by
  the formula `simplify_level * pow(simplify_ratio, (simplify_below-1) - <current zoom>)` (@tinoue)
- Support `simplify_length`, that is simplify threshold in meters, instead of in degrees (its length changes corresponding to the latitude) (@grafi-tt)
systemed's avatar
systemed committed
130
131
132
133
- Support 64-bit node IDs, with compile-time flag to use 32-bit (@systemed)
- Merge polygons with identical attributes (@grafi-tt)
- Error-handling for shapefile polygons and non-existent Lua layers (@grafi-tt)
- Support shapefile polygons with multiple exterior rings (@fofanov)
Takeshi Inoue's avatar
Takeshi Inoue committed
134
135
136
137
138
139
140
141

### Changed
- Optimized SQLite output (@grafi-tt)
- Refactored OSM object implementation (@grafi-tt)

### Fixed
- Add initialization to database class (avoid crash on shutdown) (@alex85k)
- Documentation issues (@AndreMiras, @rory)
systemed's avatar
systemed committed
142
- Clip shapefile geometries to tile boundaries (@grafi-tt)
Takeshi Inoue's avatar
Takeshi Inoue committed
143

Richard Fairhurst's avatar
Richard Fairhurst committed
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
## [1.2.0] - 2015-10-08

### Added
- Load shapefiles into layers
- Spatial queries (Intersects, FindIntersecting) on shapefiles
- Choose deflate, gzip or no compression (@tinoue)
- Show trace on Luabind errors (@tinoue)

### Changed
- Suppress "missing way" errors unless --verbose specified

### Fixed
- Die less horribly on Lua syntax errors
- Don't add attributes if no Layer set
- AttributeNumeric error (@tinoue)

Richard Fairhurst's avatar
Richard Fairhurst committed
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
## [1.1.0] - 2015-09-28

### Added
- `LayerAsCentroid` method to write centroid of polygons (for labelling and POIs)
- Option: simplify geometries on output
- Option: `write_to` combines multiple input layers in one output layer
- Option: gzip output compression
- Option: user-specified output metadata
- Vagrant config to ease creating VMs (@zerebubuth)
- Compile sources to .o temporary files, for faster recompiles (@zerebubuth)
- Lua/JSON config for Mapbox GL style-compatible output (@flamed0011)
- Simple Ruby .mbtiles server for testing

### Changed
- Store nodes with projected latitudes
- 10% speedup by using unordered_map (@zerebubuth)

### Fixed
- Don't die when `keys_vals` is empty in source .pbf (fixes bbbike/metro compatibility)
- Code correctness, esp. avoiding reallocating arrays (@zerebubuth)
- Build improvements (@zerebubuth)
- Documentation improvements

## [1.0.0] - 2015-06-29

### Added
- Initial release