File: CHANGELOG.md

package info (click to toggle)
tilemaker 3.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 83,488 kB
  • sloc: cpp: 29,461; ansic: 12,510; makefile: 229; ruby: 77; sh: 43
file content (325 lines) | stat: -rw-r--r-- 13,342 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
# Changelog

## [3.0.0] - 2024-01-15

3.0 is a major release that significantly reduces tilemaker's memory footprint and improves running time. Note that it has __breaking changes__ in the way you write your Lua scripts (`way:Layer` becomes simply `Layer`, and so on).

### Added
- PMTiles output (@systemed)
- C++ tilemaker-server for quick prototyping (@bdon)
- GeoJSON supported as an alternative to shapefiles (@systemed)
- Support nodes in relations and relation roles (@cldellow)
- Nested relations support (@systemed/@cldellow)
- `LayerAsCentroid` can use positions from relation child nodes (@cldellow)
- Add polylabel algorithm to `LayerAsCentroid` (@cldellow)
- Filter input .pbf by way keys (@cldellow)
- GeoJSON writer for debugging (@systemed)
- Warn about PBFs with large blocks (@cldellow)
- Unit tests for various features (@cldellow)
- `RestartRelations()` to reset relation iterator (@systemed)
- Per-layer, zoom-dependent feature_limit (@systemed after an original by @keichan34)
- Report OSM ID on Lua processing error (@systemed)
- Docker OOM killer warning (@Firefishy)
- Push Docker image to Github package (@JinIgarashi)
- Support `type=boundary` relations as native multipolygons (@systemed)

### Changed
- __BREAKING__: Lua calls use the global namespace, so `Layer` instead of `way:Layer` etc. (@cldellow)
- __BREAKING__: Mapsplit (.msf) support removed (@systemed)
- Widespread speed improvements (@cldellow, @systemed)
- Reduced memory consumption (@cldellow)
- protobuf dependency removed: protozero/vtzero used instead (@cldellow)
- Better Lua detection in Makefile (@systemed)
- z-order is now a lossy float: compile-time flag not needed (@systemed)
- --input and --output parameter names no longer required explicitly (@systemed)
- Docker image improvements (@Booligoosh)

### Fixed
- Improved polygon correction (@systemed)
- Add missing attributes to OMT layers (@Nakaner)
- Use different OSM tags for OMT subclasses (@Nakaner)
- Add access and mtb_scale attributes to OMT (@dschep)
- Fix CMake build on Arch Linux (@holzgeist)


## [2.4.0] - 2023-03-28

### Added
- Option to reverse object sort order (@Nakaner, @systemed)
- Compile-time option to use floats for ZOrder (@Nakaner, @systemed)
- Advisory note if user tries to generate tiles at z16+ (@systemed)

### Changed
- Faster tile clipping (@systemed based on code by @mourner)
- Use rtree to index large polygons (@systemed, @kleunen)

### Fixed
- Update use of access in OpenMapTiles-compatible schema (@dschep)
- Align path/track transportation classes with OpenMapTiles (@dschep)
- Add missing paved/unpaved values as per OpenMapTiles (@dschep)


## [2.3.0] - 2023-03-08

### Added
- Send project name to init_function (@systemed)
- Remove zero-width spikes after simplification (@systemed)
- Remove multipolygon inners below filter area size (@systemed)

### Changed
- Move centroid and "no indexed layer" errors to verbose mode only (@systemed)
- Report missing layers consistently (@akx)
- Update Ruby server to Rack 3 (@typebrook)
- Move mmap shutdown to end of PBF reading (@systemed)

### Fixed
- Use std::ofstream instead of boost::filesystem (@milovanderlinden)
- Scale geometries before simplifying to avoid reintroducing self-intersections (@systemed)
- Fix manpage in makefiles (@xamanu)
- Intersect multipolygons part-by-part with clipping box to fix Boost.Geometry issue (@systemed)
- Windows issues (@roundby)
- Add libatomic for rare architectures (@xamanu)
- Ignore nodes in ways with --skip-integrity (@systemed)
- Correctly mask IDs for output with include_ids (@systemed)


## [2.2.0] - 2022-03-11

### Added
- Calculate center and write to metadata (@yuiseki)
- Option to use high-resolution geometries at max zoom (@systemed)
- Output slow geometries and allow user interrupt (@systemed, @billysan)
- Support osmium locations-on-ways format (@systemed)
- CORS support in server.rb (@Kimiru)

### Changed
- Faster multipolygon combining (@systemed)
- Faster multilinestring combining (@systemed)

### Fixed
- Correctly store and write points from .shp (@systemed)
- Relation scan is now thread-safe (@systemed)
- Remove unused variable in OMT profile (@leonardehrenfried)


## [2.1.0] - 2022-02-11

### Added
- Relation support via new Lua functions (@systemed)
- Restore --compact mode for memory-efficient sequential store (@kleunen)
- Give objects a ZOrder which is sorted on output (@Nakaner)
- Add man page (@xamanu)
- Configurable language support in OMT-compatible schema (@systemed)
- Support highway=pedestrian (@leonardehrenfried)
- New --skip-integrity option to disable way-node check (@systemed)
- New --bbox option which overwrites any other bounding box (@systemed)

### Changed
- Reduce Docker image size (@guillaumerose)
- Build no longer requires git (@xamanu)
- Faster multipolygon assembly (@systemed)
- Faster simplify (@kleunen)
- Faster shutdown and delete mmap file (@kleunen)
- Reduce memory usage by optimising OutputObject (@kleunen)
- Reduce memory usage by not storing ways unless used by relations (@systemed)
- Unbundle rapidjson and expect it as a dependency (@xamanu, @kleunen)
- simplify_level used consistently through OMT-compatible schema (@systemed)
- Use destdir and prefix variables in Makefile (@xamanu)

### Fixed
- Load JSON module in example Ruby server (@Silvercast)
- Support multiple types of entities in a single PBF block (@irnc)
- Correctly output OSM object IDs (@typebrook)
- Improve POI output in OMT-compatible schema (@systemed)
- Don't write 'meta'-layers (using write_to attribute) to metadata.json (@Nakaner)
- Handle nan issue in MinZoom/ZOrder with invalid values (@kleunen)
- Use real relation IDs in processing (@systemed)
- Support new homebrew paths on Apple Silicon Macs (@prebm)
- Improve Lua support in Makefile (@kleunen, @zidel)
- Clamp latitude to range valid for spherical Mercator (@kleunen)
- Documentation updates (@xamanu, @systemed)

## [2.0.0] - 2021-07-09

### Added
- Optionally use on-disk workspace with new --store option (@kleunen)
- Load .pbf in parallel (@kleunen)
- 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
- Mapsplit (.msf) source data support
- `obj:MinZoom(z)` to set the minimum zoom at which a feature will be rendered
- `obj:Centroid` to get the central lat/lon of an OSM object
- `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
- Set minimum zooms for placenames, waterways, buildings, and landcover in OpenMapTiles processing (@typebrook, @systemed)
- Render roads under construction on OpenMapTiles processing (@meromisi, @Beck-berry)
- Support any (post-5.1) version of Lua
- Build with Github Action (@typebrook)
- Use a shared key/value dictionary across OutputObjects to reduce memory usage (@kleunen)

### Changed
- C++14 required
- Remove Lua scale functions now that we return metres
- Improve OpenMapTiles tag processing (@leonardehrenfried, @typebrook, @systemed, @QuentinC, @keichan34)
- Use OpenMapTiles processing as default in tilemaker directory
- Change OpenMapTiles minzoom to 0
- Default simplify_ratio to 2
- 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`)
- Use boost::geometry::intersection for clipping (faster than clipper)
- New simplify code (@kleunen)
- Use boost::asio::thread_pool for tile generation (@kleunen)
- Fallback to valid polygons if simplification produces invalid ones
- Consistently use 1TBS in source
- Only output validity errors in verbose mode
- Various speedups (don't add objects to output list that fail minZoom, optimise clipping)

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

## [1.6.0] - 2020-05-22

### 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
- Report memory usage in verbose mode
- Out-of-the-box test tileserver and OpenMapTiles-compatible resources

### 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
- Don't write invalid small polygons
- Speedup for shapefile reading (@TimSC)
- Move to Github Actions instead of Travis (@leonardehrenfried)
- Reduce size of Docker image, use Ubuntu 20.04 (@leonardehrenfried)
- Improve area and length calculation (@typebrook, @systemed)
- Overwrite existing .mbtiles file by default

### 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

## [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)

## [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)

## [1.3.0] - 2016-07-11

### 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)
- 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)

### 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)
- Clip shapefile geometries to tile boundaries (@grafi-tt)

## [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)

## [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