[BUG] `skip_filled_tiles=true` doesn't seem to work
Describe the bug
When generating tiles with skip_filled_tiles=true, the option doesn't seem to do anything.
To Reproduce E.g. generate Protomaps Basemaps tiles with the option turned on https://github.com/protomaps/basemaps/
Make sure that it is set to true in the log:
argument: skip_filled_tiles=true (Skip writing tiles containing only polygon fills to the output)
Expected behavior No tiles that are just filled water polygon squares are encoded in the output file.
Screenshots
I'm still seeing all the filled tiles encoded in the result:
Environment (please complete the following information):
- Hardware: Macbook Pro 15 M1 Pro
- OS: MacOS Sequoia 15.5
- Java version and distribution: openjdk 23.0.2 2025-01-21, OpenJDK Runtime Environment Temurin-23.0.2+7 (build 23.0.2+7)
- Maven version: 3.9.10
Additional context I'm just trying to reduce the size of the file as much as possible, and the water layer currently takes too much — I thought this option would make a difference but it doesn't seem to do anything.
I just tested this on the built-in openmaptiles profile and it properly omits filled tiles. Looks like this might be an issue in protomaps basemap? The water_big layer might have an issue with it that prevents geometries from getting merged. @bdon any idea what might be going on here?
Also if you're using pmtiles, filled tiles shouldn't have a huge effect on the output size since the actual tile content only gets stored once, and filled tiles that are repeated in hilbert tile ordering get collapsed into a single run in the tile index. Using openmaptiles to generate a pmtiles including Massachusetts and a large chunk of the Atlantic Ocean is 170MB but gets only 23KB smaller with skip-filled-tiles set to true.
This doesn't address the skip_filled_tiles=true bug directly, but you can visualize how filled tiles are deduplicated on https://pmtiles.io/archive/ - RLE-deduplicated water areas in a Ukraine basemap build look like this: