diff options
author | zmiao <zmiao.jamie@gmail.com> | 2019-08-16 15:59:45 +0300 |
---|---|---|
committer | zmiao <zmiao.jamie@gmail.com> | 2019-08-28 13:51:50 +0300 |
commit | a71905aefcb8ee19049b27e34484ae915ca9a216 (patch) | |
tree | fbfe4c7805442137f3886827bba640e1969b533c | |
parent | 066304d83cf86c8a58c2d802a4fdc7740ad0afb4 (diff) | |
download | qtlocation-mapboxgl-a71905aefcb8ee19049b27e34484ae915ca9a216.tar.gz |
fix bug for collision circle
-rw-r--r-- | src/mbgl/style/layers/symbol_layer.cpp | 1 | ||||
-rw-r--r-- | src/mbgl/text/placement.cpp | 10 |
2 files changed, 5 insertions, 6 deletions
diff --git a/src/mbgl/style/layers/symbol_layer.cpp b/src/mbgl/style/layers/symbol_layer.cpp index d3c27ae264..4b335ead3c 100644 --- a/src/mbgl/style/layers/symbol_layer.cpp +++ b/src/mbgl/style/layers/symbol_layer.cpp @@ -9,7 +9,6 @@ #include <mbgl/style/conversion/transition_options.hpp> #include <mbgl/style/conversion/json.hpp> #include <mbgl/style/conversion_impl.hpp> -#include <mbgl/style/expression/dsl.hpp> #include <mapbox/eternal.hpp> diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp index 9c6fbea210..f5ca23dc7a 100644 --- a/src/mbgl/text/placement.cpp +++ b/src/mbgl/text/placement.cpp @@ -159,8 +159,6 @@ void Placement::placeBucket( const bool rotateWithMap = layout.get<style::TextRotationAlignment>() == style::AlignmentType::Map; const bool pitchWithMap = layout.get<style::TextPitchAlignment>() == style::AlignmentType::Map; const bool hasIconTextFit = layout.get<style::IconTextFit>() != style::IconTextFitType::None; - const bool hasIconCollisionCircleData = bucket.hasIconCollisionCircleData(); - const bool hasTextCollisionCircleData = bucket.hasTextCollisionCircleData(); const bool zOrderByViewportY = layout.get<style::SymbolZOrder>() == style::SymbolZOrderType::ViewportY; std::vector<ProjectedCollisionBox> textBoxes; @@ -419,7 +417,9 @@ void Placement::placeBucket( } } - + const bool hasIconCollisionCircleData = bucket.hasIconCollisionCircleData(); + const bool hasTextCollisionCircleData = bucket.hasTextCollisionCircleData(); + if (hasIconCollisionCircleData && symbolInstance.iconCollisionFeature.alongLine && !iconBoxes.empty()) { collisionCircles[&symbolInstance.iconCollisionFeature] = iconBoxes; } @@ -846,8 +846,8 @@ void Placement::updateBucketOpacities(SymbolBucket& bucket, const TransformState } else { // This feature was not placed, because it was not loaded or from a fading tile. Apply default values. static const auto dynamicVertex = CollisionBoxProgram::dynamicVertex(placed, false /*not used*/, {}); - isText ? bucket.textCollisionCircle->dynamicVertices.extend(4, dynamicVertex): - bucket.iconCollisionCircle->dynamicVertices.extend(4, dynamicVertex); + isText ? bucket.textCollisionCircle->dynamicVertices.extend(4 * feature.boxes.size(), dynamicVertex): + bucket.iconCollisionCircle->dynamicVertices.extend(4 * feature.boxes.size(), dynamicVertex); } }; Point<float> textShift{0.0f, 0.0f}; |