From f11b63395a00cee851786e9cb1be71cd6add975e Mon Sep 17 00:00:00 2001 From: systemed Date: Tue, 15 Apr 2025 15:51:09 +0100 Subject: [PATCH 1/2] Filter after all parts have been assembled --- src/tile_worker.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tile_worker.cpp b/src/tile_worker.cpp index bd0eb877..1de872f5 100644 --- a/src/tile_worker.cpp +++ b/src/tile_worker.cpp @@ -329,11 +329,6 @@ void ProcessObjects( continue; } - if (oo.oo.geomType == POLYGON_ && filterArea > 0.0) { - RemovePartsBelowSize(boost::get(g), filterArea); - if (geom::is_empty(g)) continue; - } - //This may increment the jt iterator if (oo.oo.geomType == LINESTRING_ && zoom < sharedData.config.combineBelow) { // Append successive linestrings, then reorder afterwards @@ -361,6 +356,11 @@ void ProcessObjects( oo = *jt; } + if (oo.oo.geomType == POLYGON_ && filterArea > 0.0) { + RemovePartsBelowSize(boost::get(g), filterArea); + if (geom::is_empty(g)) return; + } + if (oo.oo.geomType == LINESTRING_ || oo.oo.geomType == MULTILINESTRING_) writeMultiLinestring(attributeStore, sharedData, vtLayer, bbox, oo, zoom, simplifyLevel, simplifyAlgo, boost::get(g)); else if (oo.oo.geomType == POLYGON_) From 2915da2464ccac3c1759b40957f991977b9417de Mon Sep 17 00:00:00 2001 From: systemed Date: Tue, 15 Apr 2025 17:31:33 +0100 Subject: [PATCH 2/2] Don't drop out prematurely --- src/tile_worker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tile_worker.cpp b/src/tile_worker.cpp index 1de872f5..72738b3f 100644 --- a/src/tile_worker.cpp +++ b/src/tile_worker.cpp @@ -358,7 +358,7 @@ void ProcessObjects( if (oo.oo.geomType == POLYGON_ && filterArea > 0.0) { RemovePartsBelowSize(boost::get(g), filterArea); - if (geom::is_empty(g)) return; + if (geom::is_empty(g)) continue; } if (oo.oo.geomType == LINESTRING_ || oo.oo.geomType == MULTILINESTRING_)