summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzmiao <zmiao.jamie@gmail.com>2019-08-16 15:59:45 +0300
committerzmiao <zmiao.jamie@gmail.com>2019-08-28 13:51:50 +0300
commita71905aefcb8ee19049b27e34484ae915ca9a216 (patch)
treefbfe4c7805442137f3886827bba640e1969b533c
parent066304d83cf86c8a58c2d802a4fdc7740ad0afb4 (diff)
downloadqtlocation-mapboxgl-a71905aefcb8ee19049b27e34484ae915ca9a216.tar.gz
fix bug for collision circle
-rw-r--r--src/mbgl/style/layers/symbol_layer.cpp1
-rw-r--r--src/mbgl/text/placement.cpp10
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};