Skip to content

Releases: onthegomap/planetiler

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

v0.2.0

23 Dec 12:03
Compare
Choose a tag to compare

What's Changed

Flatmap has been renamed to "Planetiler" (#40) to better convey what the project does, and to be more unique and easy to find. Thanks to @danlarkin for the name suggestion!

Starting with version 0.2.0, planetiler releases are available from maven central. To use as a library (see the example project) add this dependency to your java project:

<dependency>
  <groupId>com.onthegomap.planetiler</groupId>
  <artifactId>planetiler-core</artifactId>
  <version>0.2.0</version>
</dependency>

Other User-Facing Improvements

Internal Improvements

Dependencies

@dependabot has been busy keeping dependencies on their latest versions. Notably, log4j has been upgraded to version 2.17.0 to mitigate Log4Shell vulnerability (CVE-2021-44228).

Other dependency upgrades

Full Changelog: v0.1.0...v0.2.0

v0.1.0

25 Oct 10:46
7420c76
Compare
Choose a tag to compare

Initial flatmap release, see the README for more details.

To run using Java 16 or later:

wget https://github.com/onthegomap/flatmap/releases/download/v0.1.0/flatmap.jar
java -Xmx1g -jar flatmap.jar --download --area=monaco

Or using docker:

docker run -e JAVA_TOOL_OPTIONS="-Xmx1g" -v "$(pwd)/data":/data ghcr.io/onthegomap/flatmap:0.1.0 --download --area=monaco

Attached are logs and VisualVM profile from running flatmap over the planet-211011.osm.pbf snapshot from the AWS Registry of Open Data on a Digital Ocean memory-optimized droplet with 16 vCPUs and 128GB RAM in 3h21m.

v0.1.0-pre2

24 Oct 18:41
Compare
Choose a tag to compare
v0.1.0-pre2 Pre-release
Pre-release

What's Changed

Full Changelog: v0.1.0-pre1...v0.1.0-pre2

v0.1.0-pre1

20 Oct 10:05
Compare
Choose a tag to compare
v0.1.0-pre1 Pre-release
Pre-release

Initial test release.