What's Changed
This release adds several new features:
- YAML-driven configuration schemas
- Generate Shortbread Schema with shortbread.yml that uses the new YAML configuration language
- Generate OSM QA Tiles by running
planetiler.jar osm-qa
- Switch between PMTiles or MBTiles output by specifying
--output=output.pmtiles
or--output=output.mbtiles
(see #520 for more usage details) - Increase
--maxzoom
limit from 14 to 15 - Extract openmaptiles profile to openmaptiles/planetiler-openmaptiles repo, but
planetiler.jar
and the docker container still generate openmaptiles 3.14 by default or with theopenmaptiles
argument - Filter output by polygon by running with
--polygon bounds.poly
- Support for GeoPackage input files. Interested in adding support for more input formats? Use #413 as a template.
To run this release from Java, download the attached planetiler.jar, or from docker use ghcr.io/onthegomap/planetiler:0.6.0
There is ongoing discussion about the project in the #planetiler channel on OSM-US slack. If you are interested in joining, get an invite here!
New Features and Improvements
- YAML configuration schemas
- PMTiles output format
- Tile archive refactor by @bdon in #443
- add VarInt encoder for unsigned longs [#98] by @bdon in #449
- refactor VectorLayers from mbtiles into util.LayerStats [#98] by @bdon in #456
- FeatureGroup can emit in either TMS or Hilbert order. [#98] by @bdon in #455
- Speed up VarInt encoding, remove emitTilesInOrder option [#98] by @bdon in #460
- Pmtiles package low level header and directory serialization/deserialization [#98] by @bdon in #466
- Finish PMTiles write implementation and basic reader by @bdon in #502
- Expose pmtiles writer by @msbarry in #520
- Increase max zoom from z14 to z15
- Extract OpenMapTiles schema to openmpatiles/planetiler-openmaptiles and upgrade to 3.14
- Decrease power sample minzoom from 12 to 7 by @wipfli in #268
- Allow more than 256 attribute keys by @ZeLonewolf in #275
- feat: added
maxzoomForRendering
andminzoomForRendering
by @farfromrefug in #272 - OSM QA Tiles Example Profile by @msbarry in #278
- feat:
--polygon
argument to constrain mbtiles to a poly shape by @farfromrefug in #280 - Cli add version argument by @ttomasz in #376
- Add shapefile directory source by @erik in #406
- Add planetiler-specific metadata by @msbarry in #428
- Add layer to shapefile by @msbarry in #429
- Add basic support for reading GeoPackage files. by @erik in #413
- Add geopackage to supported data sources by @wipfli in #442
- Support unzipping GeoPackage sources at runtime by @erik in #430
- Add
--download-max-bandwidth
option by @msbarry in #467 - Support disabling colors in terminal output by @msbarry in #501
- Expose setId in FeatureCollector [#377] by @bdon in #514
Performance Improvements
- Memory-mapped lazy reads by default by @msbarry in #300
- Lazy primitive group deserialization by @msbarry in #309
- Add --keep-unzipped option to avoid unzipping sources each time by @msbarry in #522
Bug Fixes
- fix: merge line if it needs to be simplified by @farfromrefug in #244
- Fix memoize bug by @msbarry in #279
- Fix bounds check on dense nodes by @msbarry in #301
- Improve shapefile zip reads by @msbarry in #314
- Fix NPE for
OsmReader#estimateMemoryUsageBytes()
by @erik in #389 - Move NumberFormat to thread-local variable by @erik in #387
- Fix max tile size in stats output. by @erik in #399
- Switch ordering of translation providers by @msbarry in #403
- Fix timeout issues by @msbarry in #435
- Tile hashing fix by @phanecak-maptiler in #436
- Revert "fix is convex negated (#241)" by @erik in #458
- Improve is convex logic by @msbarry in #459
- Detect certain kinds of invalid polygons when slicing into tiles by @msbarry in #499
- Fix madvise bug by @msbarry in #523
- Fix geometry errors by @msbarry in #526
- Fall back to slower transliterator by @msbarry in #543
Contributor/Documentation Improvements
- Fix flaky windows test by @msbarry in #264
- Rename README subtitle from custom map to examples by @wipfli in #267
- small readme cleanups by @bdon in #265
- Add instructions for using Planetiler with gradle by @ZeLonewolf in #274
- Generate protobuf during build by @msbarry in #310
- Publish test zip files by @msbarry in #313
- Submodule followups by @msbarry in #312
- Add
quickstart.sh
script to run with recommended settings by @msbarry in #318 - Bump version to 0.6-SNAPSHOT by @msbarry in #342
- Fix build by @msbarry in #344
- Custommap readme tweaks by @msbarry in #346
- Describe anchors and aliases in readme by @msbarry in #354
- Logging deps by @msbarry in #327
- use current repo for update-pr/dawidd6/action-download-artifact by @phanecak-maptiler in #380
- Fix linux install link by @msbarry in #395
- Remove outdated reference to "relation_member" type by @erik in #397
- Update README.md by @msbarry in #400
- Link to pyosmium-up-to-date by @wipfli in #402
- Fix typo by @wipfli in #420
- Extract ZIP file walker out of ShapefileReader. by @erik in #423
- fix CloseableConsumer class name by @bdon in #454
- Convert get all tile coords to iterator by @msbarry in #463
- Remove snakeyaml dependency by @msbarry in #473
- Require minimum java 17 by @msbarry in #477
- Update ReadableTileArchive.java javadoc by @msbarry in #486
- Add
metadataTable
alias by @msbarry in #517 - Run CI on java 20 by @msbarry in #539
- Update notice.md by @msbarry in #544
Dependencies
Once again, @dependabot has been busy keeping dependencies up-to-date.
Dependency upgrades in this release
Benchmarks
Test runs on an r7g.metal
ec2 instance for entire planet:
- openmaptiles 69GB output 23m12s
- osm-qa 63GB output 12m42s
- shortbread.yml 62GB output 16m20s
- power.yml 980MB output 3m39s
New Contributors
- @bdon made their first contribution in #265
- @farfromrefug made their first contribution in #244
- @lazaa32 made their first contribution in #258
- @phanecak-maptiler made their first contribution in #380
- @erik made their first contribution in #389
- @ttomasz made their first contribution in #376
What's next?
Stay tuned for more output formats, a high-performance archive conversion utility, and support for generating contour lines from DEM datasets!
Full Changelog: v0.5.0...v0.6.0