From 6455b6633e8f91f61237bf1dc64fc04a6abe0108 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Mon, 26 Sep 2016 22:45:44 -0700 Subject: [PATCH] Remember to honor --no-line-simplification if it was requested --- tile.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tile.cpp b/tile.cpp index fb1a6a0..38abc77 100644 --- a/tile.cpp +++ b/tile.cpp @@ -580,7 +580,7 @@ static drawvec reverse_subring(drawvec const &dv) { return out; } -void find_common_edges(std::vector &partials, int z, int line_detail, double simplification) { +void find_common_edges(std::vector &partials, int z, int line_detail, double simplification, int maxzoom) { std::map> edges; for (size_t i = 0; i < partials.size(); i++) { @@ -820,7 +820,7 @@ void find_common_edges(std::vector &partials, int z, int line_detail, d arcs.insert(std::pair(arc, added)); partials[i].arc_polygon.push_back(added); } else { - partials[i].arc_polygon.push_back(-(long) f2->second); + partials[i].arc_polygon.push_back(-f2->second); } } else { partials[i].arc_polygon.push_back(f->second); @@ -854,7 +854,11 @@ void find_common_edges(std::vector &partials, int z, int line_detail, d dv[i].op = VT_LINETO; } } - simplified_arcs[ai->second] = simplify_lines(dv, z, line_detail, !(prevent[P_CLIPPING] || prevent[P_DUPLICATION]), simplification, false); + if (!(prevent[P_SIMPLIFY] || (z == maxzoom && prevent[P_SIMPLIFY_LOW]))) { + simplified_arcs[ai->second] = simplify_lines(dv, z, line_detail, !(prevent[P_CLIPPING] || prevent[P_DUPLICATION]), simplification, false); + } else { + simplified_arcs[ai->second] = dv; + } count++; } @@ -1201,7 +1205,7 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s } if (additional[A_SIMPLIFY_TOGETHER]) { - find_common_edges(partials, z, line_detail, simplification); + find_common_edges(partials, z, line_detail, simplification, maxzoom); } int tasks = ceil((double) CPUS / *running);