diff --git a/src/tile_worker.cpp b/src/tile_worker.cpp index bd0eb877..72738b3f 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)) continue; + } + 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_)