From a8ee3782e2e816fc553fb5431c9411ab4febca42 Mon Sep 17 00:00:00 2001 From: Brandon Liu Date: Fri, 2 Feb 2024 11:12:11 +0800 Subject: [PATCH] Simplify code and remove area filter for water features [#198] (#215) * Simplify code and remove area filter for water features [#198] We can't do any pre-filtering of water areas, because sometimes they are parts of linear features. Let the polygon merge routine do its work, and change the threshold to 1.0 pixels. * tiles 3.3.0 --- CHANGELOG.md | 4 ++++ app/src/examples.json | 14 ++++++++++++++ .../main/java/com/protomaps/basemap/Basemap.java | 2 +- .../java/com/protomaps/basemap/layers/Water.java | 13 +------------ 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 246162b7..5465e3ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +Tiles v3.3.0 +------ +- Improve water generalization detail by doing area filtering post-merge [#198] + Tiles v3.2.0 ------ - Add `village_green` and `allotments` to landuse layer via @lenalebt [#206] diff --git a/app/src/examples.json b/app/src/examples.json index 9470bdf1..40c79903 100644 --- a/app/src/examples.json +++ b/app/src/examples.json @@ -47,5 +47,19 @@ "tags": ["boundaries"], "center": [37.382, -1.592], "zoom": 7 + }, + { + "name": "colombia-rivers", + "description": "water features west of Bogota should not be broken", + "tags": ["water"], + "center": [-74.422, 4.62], + "zoom": 7.8 + }, + { + "name": "river-thames", + "description": "River Thames should not have pieces missing", + "tags": ["water"], + "center": [-0.3, 51.4], + "zoom": 8.9 } ] diff --git a/tiles/src/main/java/com/protomaps/basemap/Basemap.java b/tiles/src/main/java/com/protomaps/basemap/Basemap.java index 019c698b..9f330935 100644 --- a/tiles/src/main/java/com/protomaps/basemap/Basemap.java +++ b/tiles/src/main/java/com/protomaps/basemap/Basemap.java @@ -92,7 +92,7 @@ public String description() { @Override public String version() { - return "3.2.0"; + return "3.3.0"; } @Override diff --git a/tiles/src/main/java/com/protomaps/basemap/layers/Water.java b/tiles/src/main/java/com/protomaps/basemap/layers/Water.java index 4c3186fd..1399ee51 100644 --- a/tiles/src/main/java/com/protomaps/basemap/layers/Water.java +++ b/tiles/src/main/java/com/protomaps/basemap/layers/Water.java @@ -7,7 +7,6 @@ import com.onthegomap.planetiler.geo.GeometryException; import com.onthegomap.planetiler.reader.SourceFeature; import com.onthegomap.planetiler.util.Parse; -import com.protomaps.basemap.postprocess.Area; import java.util.List; public class Water implements ForwardingProfile.FeatureProcessor, ForwardingProfile.FeaturePostProcessor { @@ -144,7 +143,7 @@ public void processFeature(SourceFeature sf, FeatureCollector features) { .setAttr("water", sf.getString("water")) .setAttr("waterway", sf.getString("waterway")) .setZoomRange(6, 15) - .setMinPixelSize(3.0) + .setMinPixelSize(1.0) .setBufferPixels(8); // Core Tilezen schema properties @@ -168,16 +167,6 @@ public void processFeature(SourceFeature sf, FeatureCollector features) { @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); - return FeatureMerge.mergeOverlappingPolygons(items, 1); } }