Skip to content

Releases: onthegomap/planetiler

v0.8.2

02 Jul 11:57
a74f274
Compare
Choose a tag to compare

What's Changed

Minor bug fixes:

New Contributors

Full Changelog: v0.8.1...v0.8.2

v0.8.1

29 Jun 09:21
09374db
Compare
Choose a tag to compare

What's Changed

Minor improvements since 0.8.0 release:

  • More efficient geoparquet geoarrow conversion by @msbarry in #933, #934
  • Encode OSM node/way/relation in vector tile feature ids by @msbarry in #826
  • Fallback when tile weights are missing by @msbarry in #937
And dependency upgrades:
  • Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.5 to 3.3.0 in /.github/planetiler-examples-dependabot by @dependabot in #925
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.3.0 by @dependabot in #926
  • Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.5 to 3.3.0 by @dependabot in #927
  • Bump blue.strategic.parquet:parquet-floor from 1.44 to 1.45 by @dependabot in #929
  • Bump com.carrotsearch:hppc from 0.9.1 to 0.10.0 by @dependabot in #930
  • Bump org.roaringbitmap:RoaringBitmap from 1.0.6 to 1.1.0 by @dependabot in #931
  • Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2 by @dependabot in #932
  • Bump org.junit.jupiter:junit-jupiter-api from 5.10.2 to 5.10.3 in /.github/planetiler-examples-dependabot by @dependabot in #936
  • Bump junit.version from 5.10.2 to 5.10.3 by @dependabot in #935

Full Changelog: v0.8.0...v0.8.1

v0.8.0

18 Jun 09:50
437afe6
Compare
Choose a tag to compare

What's Changed

This release adds support for geoparquet sources like Overture Maps. It also adds support for writing custom Java profiles without any build tools. See https://github.com/onthegomap/planetiler-examples for instructions getting started and examples using OpenStreetMap and Overture data.

To run this release from Java, download the attached planetiler.jar, or from docker use ghcr.io/onthegomap/planetiler:0.8.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!

⚠️ Planetiler now requires Java 21 or later to run, or Java 22 for no-build-tool Java Profiles ⚠️

New Features and Improvements

  • Add geoparquet/Overture support
    • Iniitial geoparquet support by @msbarry in #888
    • Remove primary geometry from parquet feature tags by @msbarry in #893
    • Attach parquet schema to features by @msbarry in #897
    • Avoid deserializing entire parquet geometry just to determine type by @msbarry in #898
    • Make sure FeatureCollector can handle structs by @msbarry in #904
    • Structured tag api by @msbarry in #895
    • Add support for linear-referenced tags for Overture Maps Data by @msbarry in #900
  • Java API improvements
    • Min polygon area centroid by @msbarry in #720
    • Add API for maximum inscribed circle/pole of inaccessibility centerpoint of a polygon by @msbarry in #723
    • Add setAttrWithMinSize to feature API by @msbarry in #725
    • add extraMetadata to profile interface [#794] by @bdon in #795
    • Add whole-tile postprocess hook by @msbarry in #802
    • Add omit() feature collector api and --refresh-sources arg by @msbarry in #810
    • Add tile post-process hook to forwarding profile by @msbarry in #813
    • Add firstCoordinate vector tile feature helper by @msbarry in #814
    • Add polygon index intersection utility by @msbarry in #866
    • Attach sources to fat jar to improve no-build IDE experience by @msbarry in #892
    • Make VectorTile.Feature implement WithTags by @msbarry in #896
    • Parquet/no-build-tool java profile usability improvements by @msbarry in #914
    • Handle immutable output from post process layer/tile feature methods by @msbarry in #920
  • YAML Schema improvements
  • Generate deterministic output for the same input
  • Upgrade to OpenMapTiles 3.15 by @msbarry and @phanecak-maptiler in #764, #764, #835, #880, #923
  • Use maven build time for docker image by @msbarry in #744
  • Use push-down bbox filter for shapefiles by @msbarry in #757
  • Add support for "files"-archive by @bbilger in #761
  • Use snappy compression for --compress-temp flag by @msbarry in #905
  • Log more details on feature processing errors by @msbarry in #884

Bugs

Contributor/Documentation improvements

Dependencies

Once again, @dependabot has been busy keeping dependencies up-to-date.

Dependency upgrades in this release
  • Bump com.diffplug.spotless:spotless-maven-plugin from 2.39.0 to 2.40.0 by @dependabot in #678
  • Bump styfle/cancel-workflow-action from 0.11.0 to 0.12.0 by @dependabot in #680
  • Bump mil.nga.geopackage:geopackage from 6.6.2 to 6.6.3 by @dependabot in #681
  • Bump com.google.protobuf:protobuf-java from 3.24.3 to 3.24.4 by @dependabot in #682
  • Bump org.mockito:mockito-core from 5.5.0 to 5.6.0 by @dependabot in #683
  • Bump com.google.guava:guava from 32.1.2-jre to 32.1.3-jre by @dependabot in #684
  • Bump geotools.version from 29.2 to 30.0 by @dependabot in #685
  • Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.1.2 to 3.2.1 in /.github/planetiler-examples-dependabot by @dependabot in #689
  • Bump actions/setup-node from 3 to 4 by @dependabot in #688
  • Bump jackson.version from 2.15.2 to 2.15.3 by @dependabot in #687
  • Bump org.xerial:sqlite-jdbc from 3.43.0.0 to 3.43.2.1 by @dependabot in #692
  • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.1.2 to 3.2.1 in /.github/planetiler-examples-dependabot by @dependabot in #691
  • Bump log4j.version from 2.20.0 to 2.21.1 by @dependabot in #694
  • Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.1.2 to 3.2.1 by @...
Read more

v0.8.0-pre.2

11 Jun 13:06
bd5e527
Compare
Choose a tag to compare
v0.8.0-pre.2 Pre-release
Pre-release

Built a few no-build-tool java profiles using Overture and OSM data in https://github.com/onthegomap/planetiler-examples and addressed a few bugs and usability improvements in #914

v0.8.0-pre.1

30 May 11:06
c8c4cb7
Compare
Choose a tag to compare
v0.8.0-pre.1 Pre-release
Pre-release

Bug fixes, performance improvements, dependency upgrades, plus:

  • Add --layer-stats option to output a layer stats tsv
  • Make output deterministic for the same input
  • Upgrade to openmaptiles 3.15 (including ~50% tile size reduction from layer stats debugging)
  • Add support for geoparquet (ie. overture) sources and structured feature attributes
  • Improve support for writing a java profile against planetiler.jar without any build tools (will add an example repo)
  • profile API improvements: omit(), whole tile post-process hook, partial-line attributes (used by overture)

Putting out a pre-release to test no-build-tool java profiles against attached planetiler.jar

v0.7.0

02 Oct 10:26
79ba9d9
Compare
Choose a tag to compare

What's Changed

This release reduces openmaptiles tile sizes by 40-50% and includes tools other profiles can use to use to optimize their tile sizes:

  • --max-point-buffer=4 argument to remove points outside the tile boundary if your client handles label collisions between tiles (web/native but not raster)
  • --output-layerstats to write a layer stats tsv.gz file you can analyze with duckdb to look for improvements
  • FeatureMerge Utilities to to merge geometries with the same attributes into multigeometries. See openmaptiles/planetiler-openmaptiles#112 which applies these improvements to openmaptiles profile for close to 90% savings on some dense housenumber/building layers.

This release also adds support for writing plugins in other languages to send tiles to other data stores. See #639 for examples of how to write to mysql, postgres, or s3.

⚠️ This will be the last release with Java 17 support, the next release will target Java 21. Upgrade now to avoid any interruptions! ⚠️

To run this release from Java, download the attached planetiler.jar, or from docker use ghcr.io/onthegomap/planetiler:0.7.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

Bug Fixes

Contributor/Documentation Improvements

Dependencies

Once again, @dependabot has been busy keeping dependencies up-to-date.

Dependency upgrades in this release
Read more

v0.6.0

01 Apr 17:20
72f86c8
Compare
Choose a tag to compare

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 the openmaptiles 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
    • TileCoord supports up to zoom 15 using alternate ordering by @bdon in #266
    • Support zoom levels up to 15 by @msbarry in #303
  • 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 and minzoomForRendering 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

Contributor/Documentation Improvements

Read more

v0.5.0

06 Jun 10:01
74b7474
Compare
Choose a tag to compare

What's Changed

This release improves performance on high-end machines by 20% (from 47 to 38 minutes with 64 cpus/128GB ram) by addressing several single-threaded bottlenecks, reduces mbtiles output size by 25% (from 104 to 78GB) by deduplicating repeated ocean tiles, and upgrades the basemap profile to OpenMapTiles 3.13.1.

To run this release from Java, download the attached planetiler.jar, or from docker use ghcr.io/onthegomap/planetiler:0.5.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!

Performance Improvements

  • Reduce synchronized work in transportation_name layer by @msbarry in #180
  • Minimize number of temp feature chunk files by @msbarry in #199
  • Add --mmap-temp option to use memory-mapped IO for temp feature files by @msbarry in #209
  • Enable --mmap-temp by default by @msbarry in #236
  • Parallel temp feature writes using --write-threads argument by @msbarry in #213
  • Use custom min-heap to improve k-way merge by 30-50% by @msbarry in #217
  • add compact DB mode (--compact-db) to de-duplicate mbtiles output by @bbilger in #219
  • Improve DB Indexes and Fix Deferred Index Logging in Compact DB Mode by @bbilger in #245
  • Use fnv1a64 for tile hash by @msbarry in #253
  • Add --feature-read-threads option to read features in parallel when writing tiles by @msbarry in #225
  • Unsynchronize ICU4j transliterate by @msbarry in #246
  • Cheap isFill check and add --skip-filled-tiles option by @msbarry in #234
  • Gather v0.5.0 benchmarks by @msbarry in #256

Improvements and Bug Fixes

  • Upgrade basemap profile to OpenMapTiles v3.13.1 by @msbarry in #227
  • Reduce forest/wood landcover min zoom to 7 by @msbarry in #176
  • Handle elevations in units besides meters by @msbarry in #226
  • Merge overlapping water polygons by @msbarry in #235
  • Data type support for Expression / MultiExpression by @ZeLonewolf in #190
  • Implement matchField testing for Expression.not by @ZeLonewolf in #201
  • More robust multiexpression filtering by @msbarry in #206
  • Change terminology around "rendering" to be consistent with MapLibre vision by @ZeLonewolf in #238
  • Fix is convex negated by @msbarry in #241
  • Fall back to parsing bounds from all nodes by @msbarry in #251

Contributor Improvements

Dependencies

Once again, @dependabot has been busy keeping dependencies up-to-date.

Dependency upgrades in this release

New Contributors

What's Next?

After this release, we'll merge #160 which is the first step to defining custom profiles through a config file, stay tuned!

Full Changelog: v0.4.0...v0.5.0

v0.4.0

31 Mar 11:51
Compare
Choose a tag to compare

What's Changed

This release improves performance and reduces memory requirements:

  • Generating a map of the world on a high-end machine (64 cpu/128GB RAM) now takes as little as 47 minutes instead of an hour
  • You can now run with as little as 32GB of RAM instead of 128 using --storage=mmap to store temporary data in memory-mapped files

To run this release from Java, download the attached planetiler.jar, or from docker use ghcr.io/onthegomap/planetiler:0.4.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!

Performance Improvements

  • Custom PBF parsing by @msbarry in #82
  • Memory-mapped file improvements by @msbarry in #103
  • Node location cache: off-heap storage and “array” implementation that supports parallel inserts by @msbarry in #131
  • Offload multipolygon storage to disk (reduce memory usage by 10-15gb) by @msbarry in #141

Improvements and Bug Fixes

Contributor Improvements

  • Support for each loop in workers by @msbarry in #83
  • Add intellij file settings instructions on Linux by @wipfli in #89
  • Update adoptium links by @wipfli in #94
  • Remove graphhopper dependency by @msbarry in #101
  • Test for --free-osm-after-read by @msbarry in #107
  • Migrate to eclipse formatter to support multiple IDEs by @msbarry in #122

Dependencies

Once again, @dependabot has been busy keeping dependencies up-to-date.

Dependency upgrades in this release

New Contributors

Full Changelog: v0.3.0...v0.4.0

v0.3.0

17 Feb 11:32
9f97ecd
Compare
Choose a tag to compare

What's Changed

This release upgrades the basemap profile to be compatible with OpenMapTiles v3.13 (#49). People also started using the project a bit and discovered a few bugs that are fixed in this release. Keep 'em coming!

To run this release from Java, download the attached planetiler.jar, or from docker use ghcr.io/onthegomap/planetiler:0.3.0.

Also 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!

Improvements and Bug Fixes

  • Upgrade planetiler-basemap to be compatible with OpenMapTiles 3.13 by @msbarry in #49
  • Add hooks for preprocessing nodes and ways by @msbarry in #56 (needed for highway junctions in basemap profile)
  • Include route relations without a network type by @msbarry in #68
  • Treat boundary and land_area relation types as multipolygons by @msbarry in #50
  • Fix pedestrian area polygons by @msbarry in #63
  • Fix unit tests in other locales by @msbarry in #64
  • Gracefully handle exceptions from profiles by @msbarry in #65
  • Handle highways with man_made=bridge by @msbarry in #66
  • Fix service/man_made npe by @msbarry in #72

Dependencies

Once again, @dependabot has been busy keeping dependencies up-to-date.

Dependency upgrades in this release

Full Changelog: v0.2.0...v0.3.0