From b754e987467f0c32bbf806b000211c0a155709de Mon Sep 17 00:00:00 2001 From: Oliver Wipfli Date: Wed, 4 Jun 2025 14:21:43 +0200 Subject: [PATCH 1/7] Update --- .../com/protomaps/basemap/layers/Landuse.java | 20 +++---------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java index c9138320..1a035543 100644 --- a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java +++ b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java @@ -248,10 +248,10 @@ public void processOsm(SourceFeature sf, FeatureCollector features) { String kind = getString(sf, matches, "kind", "other"); features.polygon(this.name()) - .setId(FeatureId.create(sf)) + .setId(1) // Core Tilezen schema properties .setAttr("kind", kind) - .setAttr("sort_rank", 189) + // .setAttr("sort_rank", 189) // NOTE: (nvkelso 20230622) Consider zoom 5 instead... // But to match Protomaps v2 we do earlier .setZoomRange(2, 15) @@ -269,20 +269,6 @@ public String name() { @Override public List postProcess(int zoom, List items) throws GeometryException { - if (zoom == 15) - return items; - int minArea = 400 / (4096 * 4096) * (256 * 256); - if (zoom == 6) - minArea = 600 / (4096 * 4096) * (256 * 256); - else if (zoom <= 5) - minArea = 800 / (4096 * 4096) * (256 * 256); - items = Area.filterArea(items, minArea); - - // We only care about park boundaries inside groups of adjacent parks at higher zooms when they are labeled - // so at lower zooms we merge them to reduce file size - if (zoom <= 6) { - return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5); - } - return items; + return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5); } } From c6348fc6ca8bf57d3bd237a3ac37c0ebb10bdf99 Mon Sep 17 00:00:00 2001 From: Oliver Wipfli Date: Wed, 4 Jun 2025 15:37:08 +0200 Subject: [PATCH 2/7] Updates --- .../com/protomaps/basemap/layers/Landuse.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java index 1a035543..054d910d 100644 --- a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java +++ b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java @@ -9,11 +9,16 @@ import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.FeatureMerge; +import com.onthegomap.planetiler.geo.VWSimplifier; +import com.onthegomap.planetiler.geo.DouglasPeuckerSimplifier; +import com.onthegomap.planetiler.geo.MidpointSmoother; +import com.onthegomap.planetiler.geo.DualMidpointSmoother; import com.onthegomap.planetiler.ForwardingProfile; import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.expression.MultiExpression; import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.reader.SourceFeature; +import com.onthegomap.planetiler.stats.Stats; import com.protomaps.basemap.feature.FeatureId; import com.protomaps.basemap.postprocess.Area; import java.util.List; @@ -23,6 +28,11 @@ @SuppressWarnings("java:S1192") public class Landuse implements ForwardingProfile.LayerPostProcessor { + private static final DouglasPeuckerSimplifier dp = new DouglasPeuckerSimplifier(10 * 0.0625); + private static final VWSimplifier vw = new VWSimplifier().setTolerance(15 * 0.0625); + private static final MidpointSmoother ms = new MidpointSmoother(0.5); + private static final DualMidpointSmoother dms = DualMidpointSmoother.chaikin(1); + private static final String US_FOREST_OPERATORS = """ operator United States Forest Service @@ -249,13 +259,10 @@ public void processOsm(SourceFeature sf, FeatureCollector features) { features.polygon(this.name()) .setId(1) - // Core Tilezen schema properties .setAttr("kind", kind) - // .setAttr("sort_rank", 189) - // NOTE: (nvkelso 20230622) Consider zoom 5 instead... - // But to match Protomaps v2 we do earlier .setZoomRange(2, 15) - .setMinPixelSize(2.0); + .setPixelTolerance(0.0) + .setMinPixelSize(1.0); } } @@ -269,6 +276,9 @@ public String name() { @Override public List postProcess(int zoom, List items) throws GeometryException { + if (zoom < 15) { + return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5, Stats.inMemory(), vw.andThen(ms)); + } return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5); } } From 76d3af7d13adb12a738179f7ef4d2b3f78ef43ef Mon Sep 17 00:00:00 2001 From: Oliver Wipfli Date: Wed, 4 Jun 2025 15:48:35 +0200 Subject: [PATCH 3/7] Format --- .../java/com/protomaps/basemap/layers/Landuse.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java index 054d910d..a185e0b9 100644 --- a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java +++ b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java @@ -9,18 +9,16 @@ import com.onthegomap.planetiler.FeatureCollector; import com.onthegomap.planetiler.FeatureMerge; -import com.onthegomap.planetiler.geo.VWSimplifier; -import com.onthegomap.planetiler.geo.DouglasPeuckerSimplifier; -import com.onthegomap.planetiler.geo.MidpointSmoother; -import com.onthegomap.planetiler.geo.DualMidpointSmoother; import com.onthegomap.planetiler.ForwardingProfile; import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.expression.MultiExpression; +import com.onthegomap.planetiler.geo.DouglasPeuckerSimplifier; +import com.onthegomap.planetiler.geo.DualMidpointSmoother; import com.onthegomap.planetiler.geo.GeometryException; +import com.onthegomap.planetiler.geo.MidpointSmoother; +import com.onthegomap.planetiler.geo.VWSimplifier; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; -import com.protomaps.basemap.feature.FeatureId; -import com.protomaps.basemap.postprocess.Area; import java.util.List; import java.util.Map; @@ -279,6 +277,6 @@ public List postProcess(int zoom, List i if (zoom < 15) { return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5, Stats.inMemory(), vw.andThen(ms)); } - return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5); + return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5, Stats.inMemory(), vw); } } From 30befdcc33955959d887959d21fb89e87e863a33 Mon Sep 17 00:00:00 2001 From: Oliver Wipfli Date: Wed, 4 Jun 2025 15:52:15 +0200 Subject: [PATCH 4/7] Remove --- tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java index a185e0b9..ef1116fc 100644 --- a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java +++ b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java @@ -12,8 +12,6 @@ import com.onthegomap.planetiler.ForwardingProfile; import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.expression.MultiExpression; -import com.onthegomap.planetiler.geo.DouglasPeuckerSimplifier; -import com.onthegomap.planetiler.geo.DualMidpointSmoother; import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.geo.MidpointSmoother; import com.onthegomap.planetiler.geo.VWSimplifier; @@ -26,10 +24,8 @@ @SuppressWarnings("java:S1192") public class Landuse implements ForwardingProfile.LayerPostProcessor { - private static final DouglasPeuckerSimplifier dp = new DouglasPeuckerSimplifier(10 * 0.0625); private static final VWSimplifier vw = new VWSimplifier().setTolerance(15 * 0.0625); private static final MidpointSmoother ms = new MidpointSmoother(0.5); - private static final DualMidpointSmoother dms = DualMidpointSmoother.chaikin(1); private static final String US_FOREST_OPERATORS = """ operator From 0cda397070748ed928758491ff0f5a84c6f55a71 Mon Sep 17 00:00:00 2001 From: Oliver Wipfli Date: Thu, 5 Jun 2025 09:59:00 +0200 Subject: [PATCH 5/7] Do not smooth --- .../com/protomaps/basemap/layers/Landuse.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java index ef1116fc..e891b307 100644 --- a/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java +++ b/tiles/src/main/java/com/protomaps/basemap/layers/Landuse.java @@ -13,7 +13,6 @@ import com.onthegomap.planetiler.VectorTile; import com.onthegomap.planetiler.expression.MultiExpression; import com.onthegomap.planetiler.geo.GeometryException; -import com.onthegomap.planetiler.geo.MidpointSmoother; import com.onthegomap.planetiler.geo.VWSimplifier; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.stats.Stats; @@ -24,9 +23,6 @@ @SuppressWarnings("java:S1192") public class Landuse implements ForwardingProfile.LayerPostProcessor { - private static final VWSimplifier vw = new VWSimplifier().setTolerance(15 * 0.0625); - private static final MidpointSmoother ms = new MidpointSmoother(0.5); - private static final String US_FOREST_OPERATORS = """ operator United States Forest Service @@ -270,9 +266,13 @@ public String name() { @Override public List postProcess(int zoom, List items) throws GeometryException { - if (zoom < 15) { - return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5, Stats.inMemory(), vw.andThen(ms)); - } - return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5, Stats.inMemory(), vw); + double resolution = 0.0625; + double tolerance = switch (zoom) { + case 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 -> 5 * resolution; + case 11 -> 10 * resolution; + default -> 15 * resolution; + }; + var simplifier = new VWSimplifier().setTolerance(tolerance); + return FeatureMerge.mergeNearbyPolygons(items, 3.125, 3.125, 0.5, 0.5, Stats.inMemory(), simplifier); } } From b2d734f850a2f64e6f56334c5621ae430aa9f83e Mon Sep 17 00:00:00 2001 From: Oliver Wipfli Date: Thu, 5 Jun 2025 10:06:51 +0200 Subject: [PATCH 6/7] Update render test --- .../tests/landuse/grassland/expected.png | Bin 5961 -> 5878 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/render-tests/tests/landuse/grassland/expected.png b/render-tests/tests/landuse/grassland/expected.png index f14d9c614947b973b7240a518ac52ff5b026ad33..6a2b746f8cfae9f658cd295f6705f73a98b4d462 100644 GIT binary patch literal 5878 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 literal 5961 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 From 051c8b0c6bbf5a3ea57b8bfb42c53e650a59aec0 Mon Sep 17 00:00:00 2001 From: Oliver Wipfli Date: Thu, 5 Jun 2025 10:11:00 +0200 Subject: [PATCH 7/7] bump --- CHANGELOG.md | 4 ++++ tiles/src/main/java/com/protomaps/basemap/Basemap.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54a5a892..c1d638a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +Tiles 4.11.10 +------ +- Landuse geometry simplification [#500] + Tiles 4.11.9 ------ - Remove extra large buffer at z15 POIs to reduce tile size [#493] diff --git a/tiles/src/main/java/com/protomaps/basemap/Basemap.java b/tiles/src/main/java/com/protomaps/basemap/Basemap.java index c6b432e2..de123df4 100644 --- a/tiles/src/main/java/com/protomaps/basemap/Basemap.java +++ b/tiles/src/main/java/com/protomaps/basemap/Basemap.java @@ -119,7 +119,7 @@ public String description() { @Override public String version() { - return "4.11.9"; + return "4.11.10"; } @Override