diff options
Diffstat (limited to 'src/mbgl/renderer/symbol_bucket.cpp')
-rw-r--r-- | src/mbgl/renderer/symbol_bucket.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/mbgl/renderer/symbol_bucket.cpp b/src/mbgl/renderer/symbol_bucket.cpp index 60315c8fe0..462ac72ab7 100644 --- a/src/mbgl/renderer/symbol_bucket.cpp +++ b/src/mbgl/renderer/symbol_bucket.cpp @@ -97,15 +97,14 @@ std::vector<SymbolFeature> SymbolBucket::processFeatures(const util::ptr<Geometr auto &multiline = ft.geometry; - Geometry geometry = feature->nextGeometry(); - const GeometryLine& line = geometry.get<GeometryLine>(); - bool first = true; - for (auto point_it = line.begin(); point_it != line.end(); point_it++) { - if (first) { - multiline.emplace_back(); - first = false; + GeometryCollection geometryCollection = feature->nextGeometry(); + multiline.emplace_back(); + for (auto& geometry : geometryCollection) { + const GeometryLine& line = geometry.get<GeometryLine>(); + multiline.emplace_back(); + for (auto& point : line) { + multiline.back().emplace_back(point.x, point.y); } - multiline.back().emplace_back(point_it->x, point_it->y); } features.push_back(std::move(ft)); |