You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -128,11 +128,13 @@ Bug reports, suggestions and (especially!) pull requests are very welcome on the
128
128
129
129
Formatting: braces and indents as shown, hard tabs (4sp). (Yes, I know.) Please be conservative about adding dependencies or increasing the memory requirement.
130
130
131
+
The Makefile does not currently pick up changes to header files (.h). If you change these, you may need to run `make clean` before building with `make` and `sudo make install`.
132
+
131
133
## Copyright
132
134
133
135
tilemaker is maintained by Richard Fairhurst and supported by [many contributors](https://github.com/systemed/tilemaker/graphs/contributors). We particularly celebrate the invaluable contributions of Wouter van Kleunen, who passed away in 2022.
134
136
135
-
Copyright tilemaker contributors, 2015-2024.
137
+
Copyright tilemaker contributors, 2015-2025.
136
138
137
139
The tilemaker code is licensed as FTWPL; you may do anything you like with this code and there is no warranty.
Copy file name to clipboardExpand all lines: docs/CONFIGURATION.md
+8-5Lines changed: 8 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,12 +33,12 @@ It also includes these global settings:
33
33
*`basezoom` - the zoom level for which tilemaker will generate tiles internally (should usually be the same as `maxzoom`)
34
34
*`include_ids` - whether you want to store the OpenStreetMap IDs for each way/node within your vector tiles. This option is not compatible with the merging options defined by the `combine_xxx` settings (see the dedicated paragraph below)
35
35
*`compress` - for mbtiles output, whether to compress vector tiles (Any of "gzip","deflate" or "none"(default)). For pmtiles output, compression is hardcoded to gzip
36
-
*`combine_below` - whether to merge adjacent linestrings of the same type: will be done at zoom levels below that specified here (e.g. `"combine_below": 14` to merge at z1-13)
37
36
*`name`, `version` and `description` - about your project (these are written into the MBTiles file)
38
37
*`high_resolution` (optional) - whether to use extra coordinate precision at the maximum zoom level (makes tiles a bit bigger)
39
38
*`bounding_box` (optional) - the bounding box to output, in [minlon, minlat, maxlon, maxlat] order
40
39
*`default_view` (optional) - the default location for the client to view, in [lon, lat, zoom] order (MBTiles only)
41
40
*`mvt_version` (optional) - the version of the [Mapbox Vector Tile](https://github.com/mapbox/vector-tile-spec) spec to use; defaults to 2
41
+
*`combine_below` (deprecated) - whether to merge all linestrings in the tile with the same attributes: will be done at zoom levels below that specified here (e.g. `"combine_below": 14` to merge at z1-13). Please use the layer-specific parameter `combine_lines_below` instead.
42
42
43
43
A typical config file would look like this:
44
44
@@ -83,6 +83,7 @@ You can add optional parameters to layers:
83
83
*`feature_limit` - restrict the number of features written to each tile
84
84
*`feature_limit_below` - restrict only below this zoom level
85
85
*`combine_polygons_below` - merge adjacent polygons with the same attributes below this zoom level
86
+
*`combine_lines_below` - whether to merge all linestrings in the tile with the same attributes. If not defined, the global setting `combine_below` will be used.
86
87
*`combine_points` - merge points with the same attributes (defaults to `true`: specify `false` to disable)
87
88
*`z_order_ascending` - sort features in ascending order by a numeric value set in the Lua processing script (defaults to `true`: specify `false` for descending order)
88
89
@@ -118,12 +119,14 @@ For example:
118
119
119
120
### Including IDs
120
121
121
-
Be careful when using both the `include_ids: true` setting to include IDs and the `combine_xxx` settings to lighten tiles : they are not compatible. During the merging process, items with identical tags are combined in a collection, with only 1 ID being retained for all the merged items. If you need to have the exact ID for each item (for example, for a clickable map), you need to remove the merging settings in the target levels and layers:
122
+
You can carry the original OpenStreetMap object ID through to each vector tile feature with the global `include_ids` option.
123
+
124
+
Note that this is not compatible with the `combine_xxx` settings to reduce tilesize. These settings merge items with identical tags into a collection, so only one ID will be retained for all the merged items. If you need to have the exact ID for each item, remove the merging settings in the target levels and layers:
122
125
123
126
* set `combine_points: false` (`true` is the default value) in the target layers
124
-
* set `combine_below` and `combine_polygons_below` below the target zoom level (or remove them)
127
+
* set `combine_lines_below` and `combine_polygons_below` in layer properties below the target zoom level (or remove them)
125
128
126
-
If you need the include OSM types as well, you will need to modify the `process.lua` script, check issue [#740](https://github.com/systemed/tilemaker/issues/740) for more information.
129
+
If you need to include OSM object types as well, you can use the `OsmType()` function in your `process.lua` script.
127
130
128
131
## Lua processing reference
129
132
@@ -163,7 +166,7 @@ To do that, you use these methods:
163
166
*`OsmType()`: get the OSM type of the current object.
164
167
*`IsClosed()`: returns true if the current object is a closed area.
165
168
*`IsMultiPolygon()`: returns true if the current object is a multipolygon.
166
-
*`ZOrder(number)`: Set a numeric value (default 0) used to sort features within a layer. Use this feature to ensure a proper rendering order if the rendering engine itself does not support sorting. Sorting is not supported across layers merged with `write_to`. Features with different z-order are not merged if `combine_below` or `combine_polygons_below` is used. Use this in conjunction with `feature_limit` to only write the most important (highest z-order) features within a tile. (Values can be -50,000,000 to 50,000,000 and are lossy, particularly beyond -1000 to 1000.)
169
+
*`ZOrder(number)`: Set a numeric value (default 0) used to sort features within a layer. Use this feature to ensure a proper rendering order if the rendering engine itself does not support sorting. Sorting is not supported across layers merged with `write_to`. Features with different z-order are not merged if `combine_below`, `combine_lines_below` or `combine_polygons_below` is used. Use this in conjunction with `feature_limit` to only write the most important (highest z-order) features within a tile. (Values can be -50,000,000 to 50,000,000 and are lossy, particularly beyond -1000 to 1000.)
167
170
*`MinZoom(zoom)`: set the minimum zoom level (0-15) at which this object will be written. Note that the JSON layer configuration minimum still applies (so `:MinZoom(5)` will have no effect if your layer only starts at z6).
168
171
*`Length()` and `Area()`: return the length (metres)/area (square metres) of the current object. Requires Boost 1.67+.
169
172
*`Centroid()`: return the lat/lon of the centre of the current object as a two-element Lua table (element 1 is lat, 2 is lon).
0 commit comments