diff --git a/src/mbgl/style/style_layer.cpp b/src/mbgl/style/style_layer.cpp index 54dfff30040..8f580715dfd 100644 --- a/src/mbgl/style/style_layer.cpp +++ b/src/mbgl/style/style_layer.cpp @@ -188,8 +188,16 @@ void StyleLayer::applyStyleProperties(const float z, const times applyStyleProperty(PropertyKey::LineDashArray, line.dash_array, z, now); applyStyleProperty(PropertyKey::LineImage, line.image, z, now); - // for scaling dasharrays - applyStyleProperty(PropertyKey::LineWidth, line.dash_line_width, std::floor(z), now + 10000); + // scale dash width by line-gap-width if present + applyStyleProperty(PropertyKey::LineGapWidth, line.dash_line_width, std::floor(z), now + 10000); + if (line.dash_line_width <= 0) { + // otherwise scale by line-width + applyStyleProperty(PropertyKey::LineWidth, line.dash_line_width, std::floor(z), now + 10000); + if (line.dash_line_width <= 0) { + // otherwise scale by default line-width value + line.dash_line_width = line.width; + } + } } template <> diff --git a/src/mbgl/style/style_properties.hpp b/src/mbgl/style/style_properties.hpp index c5149b2d1c4..fe6a2c25031 100644 --- a/src/mbgl/style/style_properties.hpp +++ b/src/mbgl/style/style_properties.hpp @@ -38,7 +38,7 @@ struct LineProperties { float gap_width = 0; float blur = 0; std::vector dash_array; - float dash_line_width = 1; + float dash_line_width = 0; std::string image; inline bool isVisible() const {